Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang [email protected] Assistant...
-
Upload
scot-blair -
Category
Documents
-
view
217 -
download
2
Transcript of Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang [email protected] Assistant...
![Page 1: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/1.jpg)
Software EngineeringSoftware Engineering
Chapter 10Chapter 10Formal SpecificationFormal Specification
Ku-Yaw ChangKu-Yaw [email protected]@mail.dyu.edu.tw
Assistant ProfessorAssistant ProfessorDepartment of Computer Science and Information EngineeringDepartment of Computer Science and Information Engineering
Da-Yeh UniversityDa-Yeh University
![Page 2: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/2.jpg)
22Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
ObjectivesObjectives
Understand why formal specification techniques help Understand why formal specification techniques help discover problems in system requirements;discover problems in system requirements;
Understand the use of algebraic techniques of formal Understand the use of algebraic techniques of formal specification to define interface specifications;specification to define interface specifications;
Understand how formal, model-based formal techniques Understand how formal, model-based formal techniques are used for behavioral specfication.are used for behavioral specfication.
![Page 3: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/3.jpg)
33Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
PreamblePreamble
Traditional engineering disciplinesTraditional engineering disciplines Mathematical analysisMathematical analysis
A routine part of the process of developing and validating a A routine part of the process of developing and validating a product designproduct design
Software engineering has not followed the same Software engineering has not followed the same pathpath Formal methods are not widely usedFormal methods are not widely used
![Page 4: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/4.jpg)
44Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
PreamblePreamble
Formal methodsFormal methods Mathematical representation of softwareMathematical representation of software Expressed in a language whose vocabulary, syntax Expressed in a language whose vocabulary, syntax
and semantics are formally definedand semantics are formally defined
Most software developments do not use formal Most software developments do not use formal methodsmethods Successful software engineeringSuccessful software engineering Market changesMarket changes
Quality vs. time to marketQuality vs. time to market Limited scope of formal methodsLimited scope of formal methods Limited scalability of formal methodsLimited scalability of formal methods
![Page 5: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/5.jpg)
55Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
ContentsContents
10.1 Formal specification in the software process10.1 Formal specification in the software process
10.2 Sub-system interface specification10.2 Sub-system interface specification
10.3 Behavioral specification10.3 Behavioral specification
![Page 6: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/6.jpg)
66Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Formal SpecificationFormal Specification
Formal specificationFormal specification After system requirementsAfter system requirements Before detailed system designBefore detailed system design A tight feedback loop betweenA tight feedback loop between
the detailed requirements specificationthe detailed requirements specification
the formal specificationthe formal specification
One of the main benefitsOne of the main benefits Ability to uncover problems and ambiguities in the Ability to uncover problems and ambiguities in the
system requirementssystem requirements
![Page 7: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/7.jpg)
77Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Specification and DesignSpecification and Design
Increasing contractor involvement
Decreasing client involvement
Specification
Design
Userrequirements
definition
Systemrequirementsspecification
Architecturaldesign
Formalspecification
High-leveldesign
![Page 8: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/8.jpg)
88Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Formal SpecificationFormal Specificationin the Software Processin the Software Process
Systemrequirementsspecification
Formalspecification
High-leveldesign
Userrequirements
definition
Systemmodelling
Architecturaldesign
![Page 9: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/9.jpg)
99Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Software Development CostsSoftware Development Costswith Formal Specificationwith Formal Specification
Specification
Specification
Design andimplementation
Design andimplementation
Validation
Validation
Cost
![Page 10: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/10.jpg)
1010Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Formal SpecificationFormal Specification
Two fundamental approachesTwo fundamental approaches An algebraic approachAn algebraic approach
In terms of operations and their relationshipsIn terms of operations and their relationships A model-based approachA model-based approach
A model is built using mathematical constructsA model is built using mathematical constructs
![Page 11: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/11.jpg)
1111Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Formal SpecificationFormal Specification
Different languagesDifferent languages
![Page 12: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/12.jpg)
1212Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
ContentsContents
10.1 Formal specification in the software process10.1 Formal specification in the software process
10.2 Sub-system interface specification10.2 Sub-system interface specification
10.3 Behavioral specification10.3 Behavioral specification
![Page 13: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/13.jpg)
1313Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Sub-system Interface SpecificationSub-system Interface Specification
A large systemA large system Be decomposed into sub-systemsBe decomposed into sub-systems
Sub-systems make use of other sub-systemsSub-systems make use of other sub-systems
Define sub-system interfacesDefine sub-system interfaces An essential part of the specification processAn essential part of the specification process Sub-systems can be designed and implemented Sub-systems can be designed and implemented
independentlyindependently Clear and unambiguous sub-system interface Clear and unambiguous sub-system interface
specificationsspecifications
![Page 14: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/14.jpg)
1414Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Sub-system Interface ObjectsSub-system Interface Objects
Interfaceobjects
Sub-systemA
Sub-systemB
![Page 15: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/15.jpg)
1515Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
Structure of an Object SpecificationStructure of an Object Specification
IntroductionIntroduction Defines the sort (the type name) and declares other Defines the sort (the type name) and declares other
specifications that are used.specifications that are used.
DescriptionDescription Informally describes the operations on the type.Informally describes the operations on the type.
SignatureSignature Defines the syntax of the operations in the interface and their Defines the syntax of the operations in the interface and their
parameters.parameters.
AxiomsAxioms Defines the operation semantics by defining axioms which Defines the operation semantics by defining axioms which
characterize behavior.characterize behavior.
![Page 16: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/16.jpg)
1616Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
The Structure ofThe Structure ofan Algebraic Specificationan Algebraic Specification
sort < name >imports < LIST OF SPECIFICATION NAMES >
Informal description of the sort and its operations
Operation signatures setting out the names and the types ofthe parameters to the operations defined over the sort
Axioms defining the operations over the sort
< SPECIFICATION NAME >
![Page 17: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/17.jpg)
1717Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
A Simple List SpecificationA Simple List Specification
Head (Create) = Undefined exception (empty list)Head (Cons (L, v)) = if L = Create then v else Head (L)Length (Create) = 0Length (Cons (L, v)) = Length (L) + 1Tail (Create ) = CreateTail (Cons (L, v)) = if L = Create then Create else Cons (Tail (L), v)
sort Listimports INTEGER
Defines a list where elements are added at the end and removedfrom the front. The operations are Create, which brings an empty listinto existence, Cons, which creates a new list with an added member,Length, which evaluates the list size, Head, which evaluates the frontelement of the list, and Tail, which creates a list by removing the head fromits input list. Undefined represents an undefined value of type Elem.
Create ListCons (List, Elem) ListHead (List) ElemLength (List) IntegerTail (List) List
LIST ( Elem )
![Page 18: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/18.jpg)
1818Ku-Yaw ChangKu-Yaw Chang Formal SepcificationFormal Sepcification
ContentsContents
10.1 Formal specification in the software process10.1 Formal specification in the software process
10.2 Sub-system interface specification10.2 Sub-system interface specification
10.3 Behavioral specification10.3 Behavioral specification
![Page 19: Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information.](https://reader035.fdocuments.net/reader035/viewer/2022062518/5697bf811a28abf838c856b6/html5/thumbnails/19.jpg)
The EndThe End