1 / 53

Chapter 5: Specification

Chapter 5: Specification. Yuanfang Cai CS751 Jan 29, 2003. Overview. Definition 5.1 The Uses of Specification 5.2 Specification Qualities 5.3 Classification of Specification Styles 5.4 Verification of Specification 5.5 Operational Specifications 5.6 Descriptive Specifications

darci
Download Presentation

Chapter 5: Specification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 5: Specification Yuanfang Cai CS751 Jan 29, 2003

  2. Overview Definition 5.1 The Uses of Specification 5.2 Specification Qualities 5.3 Classification of Specification Styles 5.4 Verification of Specification 5.5 Operational Specifications 5.6 Descriptive Specifications 5.7 Building and Using Specifications in Practice

  3. Overview Definition 5.1 The Uses of Specification 5.2 Specification Qualities 5.3 Classification of Specification Styles 5.4 Verification of Specification 5.5 Operational Specifications 5.6 Descriptive Specifications 5.7 Building and Using Specifications in Practice

  4. Overview Definition 5.1 The Uses of Specification 5.2 Specification Qualities 5.3 Classification of Specification Styles 5.4 Verification of Specification 5.5 Operational Specifications 5.5.1 Data Flow Diagram (DFD): Function 5.5.2 Unified Modeling Language (UML): Behavior 5.5.3 Finite State Machine (FSM): Control Flow 5.5.4 Petri Nets: Asynchronous Systems 5.6 Descriptive Specifications 5.7 Building and Using Specifications in Practice

  5. Overview Definition 5.1 The Uses of Specification 5.2 Specification Qualities 5.3 Classification of Specification Styles 5.4 Verification of Specification 5.5 Operational Specifications 5.6 Descriptive Specifications 5.6.1 Entity Relationship Diagrams 5.6.2 Logic Specification 5.6.3 Algebraic Specifications 5.7 Building and Using Specifications in Practice

  6. Definition • The statement of an agreement between a producer of a service and the consumer of the service or between an implementer and a user • Requirement specification • Design specification • Module specification • Requirements, Specification and Design

  7. Definition • The statement of an agreement between a producer of a service and the consumer of the service or between an implementer and a user • Requirement specification • Between end user and the system architect/developer • Design specification • Module specification • Requirements, Specification and Design

  8. Definition • The statement of an agreement between a producer of a service and the consumer of the service or between an implementer and a user • Requirement specification • Between end user and the system architect/developer • Design specification • Between the architect and the implementers • Module specification • Requirements, Specification and Design

  9. Definition • The statement of an agreement between a producer of a service and the consumer of the service or between an implementer and a user • Requirement specification • Between end user and the system architect/developer • Design specification • Between the architect and the implementers • Module specification • Between the implementer and the user of a module • Requirements, Specification and Design

  10. 5.1 The use of Specifications • A statement of user requirement • A statement of interface between the machine and the controlled environment • A statement of requirements for the implementation • A reference point during product maintenance.

  11. 5.2 Specification Quality • Clear, unambiguous and understandable • Consistency • Complete • Internally complete • Externally complete

  12. 5.3 Classification of Specification Styles • Formal, informal and Semiformal Specifications • Operational and descriptive specifications • Operational specifications: desired behavior • Descriptive specifications: desired properties

  13. 5.4 Verification of Specifications • Dynamic analysis • Static analysis • Formalism and verification • Simulation • Prototype • Verify all three aspects: • Functional • Consistency • completeness

  14. 5.5 Operational Specifications 5.5.1 Data Flow diagrams • Features • Example • limitations 5.5.2 UML Diagram for Specifying Behaviors 5.5.3 Finite State Machine: Describing Control Flow 5.5.4 Pretri Nets: Specifying Asynchronous Systems

  15. 5.5.1 Data Flow Diagram: Specifying Functions of Information Systems • Features • Describe systems as collections of functions that manipulate data • Can be expressed by means of graphical notation • Elements: Function symbol Input device symbol Output device symbol Data flow Data store symbol

  16. 5.5.1 DFD Example c d b a + * (a + b) * ( c + a * d) + *

  17. 5.5.1 DFD limitations • The semantics of the symbol is specified only by the identifiers chosen by the user. • Control aspects are not defined by the model A E D B F C

  18. 5.5.1 DFD Limitations • The semantics of the symbol is specified only by the identifiers chosen by the user. • Control aspects are not defined by the model A E D B F C

  19. 5.5.1 DFD Limitations • The semantics of the symbol is specified only by the identifiers chosen by the user. • Control aspects are not defined by the model A E D B F C

  20. 5.5 Operational Specifications 5.5.1 Data Flow diagrams 5.5.2 UML Diagram for Specifying Behaviors • Features • Example • Limitations 5.5.3 Finite State Machine: Describing Control Flow 5.5.4 Pretri Nets: Specifying Asynchronous Systems

  21. 5.5 Operational Specifications 5.5.1 Data Flow diagrams 5.5.2 UML Diagram for Specifying Behaviors 5.5.3 Finite State Machine: Describing Control Flow • Definiation • Features • Example • Limitations 5.5.4 Pretri Nets: Specifying Asynchronous Systems

  22. 5.5.3 Finite State Machines: Describing Control Flow • Definition A finite automata is a 5-tuple (Q, , , q0, F), where • Q is a finite set called the states, •  is a finite set called the alphabet (inputs), •  : Q  Q is the transition function, • q0  Q is thestart state, and • F  Q is theset of accept states (final states).

  23. 5.5.3 Finite State Machines: Describing Control Flow • Features • Formal notation • Suitable for describing systems that can be in a finite set of states and that can go from one state into another as a consequence of some event, modeled by an input symbol. • Widely used: specification of control systems, compilation, pattern matching, etc.

  24. Push switch Push switch 5.5.3 Finite State Machines: Describing Control Flow • Example Off On

  25. High-pressure alarm High-temperature alarm Restart 5.5.3 Finite State Machines: Describing Control Flow • Example: Chemical plant Off On

  26. Temperature signal Pressure signal Unsuccessful recovery Successful recovery Successful recovery Unsuccessful recovery Pressure signal Temperature signal 5.5.3 Finite State Machines: Describing Control Flow • Example: Chemical plant Pressure Recovery Off Normal Temperature Recovery

  27. 5.5.3 Finite State Machines: Describing Control Flow • Limitations • Finite states: need assistance such as natural language or accompanied by action descriptions, like: Cooling_effort := k * (present_temperature – standard temperature) • Can’t describe concurrent, asynchronous systems. consume write C2 P2 C1 P1 read produce write write 1 2 0 full empty read read

  28. 5.5.3 FSM: Describing Control Flow write write <2,p1,c1> <0,p1,c1> <1,p1,c1> • Example continued: the Cartesian Product of the component state sets: consume consume consume Produce Produce Produce <0,p2,c1> <0,p2,c1> <1,p2,c1> <2,p1,c2> <0,p1,c2> <1,p1,c2> read read Produce read Produce Produce read write consume consume consume <2,p2,c2> <0,p2,c2> <1,p2,c2>

  29. 5.5.3 Finite State Machines: Describing Control Flow • Limitations: • The cardinality of the state space grows dramatically: if we have n subsystems, each with ki states, the resulting system has a cardinality of k1*k2*…Kn • FSM are essentially a synchronous model: at any time, a global state of the system must be defined and a single transition must occur.

  30. 5.5 Operational Specifications 5.5.1 Data Flow diagrams 5.5.2 UML Diagram for Specifying Behaviors 5.5.3 Finite State Machine: Describing Control Flow 5.5.4 Pretri Nets: Specifying Asynchronous Systems • Definition • Example • Features • Limitations

  31. 5.5.4 Petri Nets: Specifying Asynchronous System • Definition A Petri Net is a quadruple (P, T, F, W), where • P is the finite set of places; • T is a finite set of transitions; • P  T  ; • F  { P  T}  { T  P} is the flow relation; and • W: F N – {0} is the weight function, which associates a nonzero natural value to each element of F. If no weight value is explicitly associated with a flow element, the default value 1 is assumed for the function

  32. 5.5.4 Petri Nets: Specifying Asynchronous System • Example: p2 is the input place of transition write Transition p1 is the output place of transition write write Produce is the enabled, so transitionproducemayfire Place p2 p1 Token produce

  33. 5.5.4 Petri Nets: Specifying Asynchronous System • Example: p2 is the input place of transition write Transition p1 is the output place of transition write write Produce is the enabled, so transitionproducemayfire Place p2 p1 2 Token produce

  34. 5.5.4 Petri Nets: Specifying Asynchronous System • Example: After produce fired p2 is the input place of transition write Transition p1 is the output place of transition write write Now, write is the enabled, so transitionwritemayfire Place p2 p1 2 Token produce

  35. 5.5.4 PN: Specifying Asynchronous System write consume • Example: producer and consumer p2 c2 p1 c1 produce read read read 2 1 0 write write

  36. 5.5.4 PN: Specifying Asynchronous System consume c2 c1 • Example continued: producer and consumer: read read Now the system is at the state <0, p1, c1> 2 1 0 write write p2 p1 produce

  37. 5.5.4 PN: Specifying Asynchronous System consume c2 c1 • Example continued: producer and consumer: read read Now the system is at the state <0, p2, c1> 2 1 0 write write p2 p1 produce

  38. 5.5.4 PN: Specifying Asynchronous System consume c2 c1 • Example continued: producer and consumer: read read Now the system is at the state <1, p2, c1> 2 1 0 write write p2 p1 produce

  39. 5.5.4 Petri Nets: Specifying Asynchronous System • Features Good at describing concurrent and asynchronous system • Limitations • Tokens are anonymous • Can’t specify a selection policy • Can’t resolve deadlock or starving…

  40. 5.6 Descriptive Specifications 5.6.1 Entity Relationship (ER) Diagrams A semiformal notation 5.6.2 Logic Specification 5.6.3 Algebraic Specifications

  41. 5.6.1 Entity Relationship Diagrams NAME Entities: a collection of items that share common properties Relations: A set of pairs <a, b>, where a is an element of STUDENT and b is an element of CLASS Attribute: AGE STUDENT SEX ENROLLED_IN SUBJECT CLASS COURSE_ID MAX_ENROLLMENT

  42. 5.6.1 Entity Relationship Diagrams Relation Attributes: R B A A R B is one to one R A R B is one to many B A R B A A R B is many to one R B A A R B is many to many

  43. Unified Modeling Language • A general-purpose visual modeling language that is used to specify, visualize, construct and document the artifacts of a software system. • Static Structure (Descriptive) • Dynamic behavior (Operational)

  44. Unified Modeling Language • Static Structure (Descriptive) • Static view: class diagram • User Case View • Physical Views • Implementation view • Deployment view • Dynamic behavior (Operational) • Interaction view • Sequence diagram • Collaboration diagram • State machine view • Activity view

  45. Unified Modeling Language • Static Structure (Operational) • Static View: class diagram • User Case View • Physical Views • Implementation view • Deployment view • Dynamic behavior (Descriptive) • Interaction view • Sequence diagram • Collaboration diagram • State machine view • Activity view

  46. Class Class Diagram: attributes class-scope operation 1 association * generalization 1 multiplicities 0..1 0..1 1..* 3..6 1 Seat: Sting * 1 qualifier

  47. Use Case Diagram: system actor buy tickets Clerk <<include>> buy subscription relationship <<include>> make charges Kiosk Credit card service Use case survey sales Supervisor

  48. Unified Modeling Language • Static Structure (Operational) • Static View: class diagram • User Case View • Physical Views • Implementation view • Deployment view • Dynamic behavior (Descriptive) • Interaction view • Sequence diagram • Collaboration diagram • State machine view • Activity view

  49. Request (count, performance) Show availability (seat-list) Select(seats) Demand payment(cost) Insert card(card number) charge(card number,cost)) authorized Print tickets (performance, seats) Eject card Sequence Diagram Active object credit card service box office Kiosk lifeline (active) message

  50. 1:request (count, performance) 4: offer(seat-list) 5:buy(seats) 8:confirm (seats, cost) 2: db := findDB(performance) Collaboration Diagram: active object Kiosk link 3: seat-list := lock(count)  6: claim (seats)  passive object 7: unlock(seat-list)  ticketseller Db: performanceDB <<local>>db transient link message multi object Db: performanceDB performanceGuide

More Related