SlideShare une entreprise Scribd logo
1  sur  78
Chapter  28 Formal Methods   Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
Problems with  Conventional Specification ,[object Object],[object Object],[object Object],[object Object],[object Object]
Formal Specification ,[object Object],[object Object],[object Object],[object Object]
Formal Methods Concepts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
An Example—Print Spooler
States and Data Invariant The state of the spooler is represented by the four components  Queues, OutputDevices, Limits,  and  Sizes.   The data invariant has five components: • Each output device is associated with an upper limit of print lines • Each output device is associated with a possibly nonempty queue of files awaiting printing • Each file is associated with a size • Each queue associated with an output device contains files that have a size less than the upper limit of the output device • There will be no more than  MaxDevs  output devices administered by the spooler
Operations ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pre- & Postconditions For the first operation (adds a new output device to the spooler together with its associated print limit): Precondition:   the output device name does not already exist and that there are currently less than  MaxDevs  output devices known to the spooler Postcondition:  the name of the new device is added to the collection of existing device names, a new entry is formed for the device with no files being associated with its queue, and the device is associated with its print limit.
Mathematical Concepts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sets and Constructive Specification ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Set Operators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Logic Operators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sequences ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Formal Specification ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Formal Specification Languages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Object Constraint Language (OCL) ,[object Object],[object Object],[object Object]
OCL Overview ,[object Object],[object Object],[object Object],[object Object]
BlockHandler using UML
BlockHandler in OCL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Z Language ,[object Object],[object Object],[object Object],[object Object],[object Object]
BlockHandler in Z ——— BlockHandler—————————————— used, free  :  P   BLOCKS BlockQueue  : seq  P   BLOCKS ——————————————————————— used   >   free  =    used   <   free   =  AllBlocks   i : dom  BlockQueue   BlockQueue   i   #   used   i, j  : dom  BlockQueue   i   ≠   j  =>  BlockQueue i   >   BlockQueue j  =    ———————————————————————— The following example of a schema describes the state of the block handler and the data invariant: See Section 28.6.2 for further expansion of the specification
Chapter  29 Cleanroom Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
The Cleanroom Process Model
The Cleanroom Strategy-I Increment Planning —adopts the incremental strategy Requirements Gathering —defines a description of customer level requirements (for each increment) Box Structure Specification —describes the functional specification Formal Design —specifications (called “black boxes”) are iteratively refined (with an increment) to become analogous to architectural and procedural designs (called “state boxes” and “clear boxes,” respectively). Correctness Verification —verification begins with the highest level box structure (specification) and moves toward design detail and code using a set of “correctness questions.” If  these do not demonstrate that the specification is correct, more  formal (mathematical) methods for verification are used. Code Generation, Inspection and Verification —the box structure specifications, represented in a specialized language, are transmitted into the appropriate  programming  language.
The Cleanroom Strategy-II Statistical Test Planning —a suite of test cases that exercise of “probability distribution” of usage are planned and designed Statistical Usage Testing —execute a series of tests derived from a statistical sample (the probability distribution noted above) of all possible program executions by all users from a targeted population Certification —once verification, inspection and usage testing have been completed (and  all errors are corrected) the increment is certified as ready for integration.
Box Structure Specification black box state box clear box
Box Structures black box state box clear box
Design Refinement & Verification If a function f is expanded into a sequence g and h, the correctness condition for all input to f is: •  Does g followed by h do f? When a function f is refined into a conditional (if-then-else), the correctness condition for all input to f is: •  Whenever condition <c> is true does g do f and whenever <c> is false, does h do f? When function f is refined as a loop, the correctness conditions for all input to f is: • Is termination guaranteed? •  Whenever <c> is true does g followed by f do f, and whenever <c> is false, does skipping the loop still do f?
Advantages of Design Verification ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cleanroom Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Certification 1. Usage scenarios must be created. 2. A usage profile is specified. 3. Test cases are generated from the profile. 4. Tests are executed and failure data are  recorded and analyzed. 5. Reliability is computed and certified.
Certification Models Sampling model.   Software testing executes  m  random test cases and is certified if no failures or a specified numbers of failures occur. The value of  m  is derived mathematically to ensure that required reliability is achieved. Component model.   A system composed of  n  components is to be certified. The component model enables the analyst to determine the probability that component  i  will fail prior to completion. Certification model.   The overall reliability of the system is projected and certified.
Chapter  30 Component-Based Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
The Key Questions ,[object Object],[object Object],[object Object],[object Object],[object Object]
Impediments to Reuse ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The CBSE Process
Domain Engineering 1.  Define the domain to be investigated. 2.  Categorize the items extracted from the domain. 3.  Collect a representative sample of applications in the domain. 4.  Analyze each application in the sample. 5.  Develop an analysis model for the objects .
Identifying Reusable Components •  Is component functionality required on future implementations? •  How common is the component's function within the domain? •  Is there duplication of the component's function within the domain? •  Is the component hardware-dependent? •  Does the hardware remain unchanged between implementations? •  Can the hardware specifics be removed to another component? •  Is the design optimized enough for the next implementation? •  Can we parameterize a non-reusable component so that it becomes reusable? •  Is the component reusable in many implementations with only minor changes? •  Is reuse through modification feasible? •  Can a non-reusable component be decomposed to yield reusable components? •  How valid is component decomposition for reuse?
Structural Modeling ,[object Object],[object Object],[object Object],[object Object],[object Object]
Structural Patterns ,[object Object],[object Object],[object Object],[object Object],[object Object]
Component-Based Development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CBSE Activities ,[object Object],[object Object],[object Object],[object Object]
Qualification Before a component can be used, you must consider: •  application programming interface (API) •  development and integration tools required by the component •  run-time requirements including resource usage (e.g., memory or storage), timing or speed, and network protocol •  service requirements including operating system interfaces and support from other components •  security features including access controls and authentication protocol •  embedded design assumptions including the use of specific numerical or non-numerical algorithms •  exception handling
Adaptation The implication of “easy integration” is:  (1) that consistent methods of resource management have been implemented for all components in the library;  (2) that common activities such as data management exist for all components, and  (3) that interfaces within the architecture and with the external environment have been implemented in a consistent manner.
Composition ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OMG/ CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object]
ORB Architecture
Microsoft COM ,[object Object],[object Object],[object Object],[object Object]
Sun JavaBeans ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Classification ,[object Object],[object Object],[object Object]
Indexing
The Reuse Environment ,[object Object],[object Object],[object Object],[object Object]
Reuse Economics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reuse Metrics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter  31 Reengineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
Reengineering Business  processes IT systems Software applications Reengineering
Business Process Reengineering ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Business Process Reengineering
BPR Principles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Software Reengineering Forward engineering Data restructuring code restructuring reverse engineering document restructuring inventory analysis
Inventory Analysis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Document Restructuring ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reverse Engineering
Code Restructuring ,[object Object],[object Object],[object Object],[object Object],[object Object]
Data Restructuring ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Forward Engineering 1.  The cost to maintain one line of source code may be 20 to 40 times the cost of initial development of that line.  2.  Redesign of the software architecture (program and/or data structure), using modern design concepts, can greatly facilitate future maintenance. 3.  Because a prototype of the software already exists, development productivity should be much higher than average.  4.  The user now has experience with the software. Therefore, new requirements and the direction of change can be ascertained with greater ease. 5. CASE tools for reengineering will automate some parts of the job.  6.  A complete software configuration (documents, programs and data) will exist upon completion of preventive maintenance.
Economics of Reengineering-I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Economics of Reengineering-II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter  32 The Road Ahead Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
Importance of Software-Revisited ,[object Object],[object Object],[object Object],[object Object]
The Scope of Change ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
People - Building Systems ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The “New” SE Process ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
An Information Spectrum
Technology Trends ,[object Object],[object Object],[object Object],[object Object],[object Object]
Software Engineering Ethics-I ,[object Object],[object Object]
Software Engineering Ethics-I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ethics-On a Personal level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Couplingand cohesion student
Couplingand cohesion studentCouplingand cohesion student
Couplingand cohesion studentsaurabh kumar
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software EngineeringPurvik Rana
 
Object oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysisObject oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysisAbhilasha Lahigude
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
Object Oriented Software Engineering
Object Oriented Software EngineeringObject Oriented Software Engineering
Object Oriented Software EngineeringMichelle Azuelo
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and ModularityDanyal Ahmad
 
Software System Engineering - Chapter 13
Software System Engineering - Chapter 13Software System Engineering - Chapter 13
Software System Engineering - Chapter 13Fadhil Ismail
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV pkaviya
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12koolkampus
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysisMahesh Bhalerao
 
CakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesionCakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesionCarl Sutton
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software EngineeringKourosh Sajjadi
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 

Tendances (20)

Design final
Design finalDesign final
Design final
 
Couplingand cohesion student
Couplingand cohesion studentCouplingand cohesion student
Couplingand cohesion student
 
1 introduction of OOAD
1 introduction of OOAD1 introduction of OOAD
1 introduction of OOAD
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Object oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysisObject oriented analysis &design - requirement analysis
Object oriented analysis &design - requirement analysis
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Object Oriented Software Engineering
Object Oriented Software EngineeringObject Oriented Software Engineering
Object Oriented Software Engineering
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Software System Engineering - Chapter 13
Software System Engineering - Chapter 13Software System Engineering - Chapter 13
Software System Engineering - Chapter 13
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Software design
Software designSoftware design
Software design
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
CakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesionCakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesion
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Ch09
Ch09Ch09
Ch09
 

En vedette

En vedette (12)

Slides chapters 21-23
Slides chapters 21-23Slides chapters 21-23
Slides chapters 21-23
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Lecture 3 software process model
Lecture 3   software process modelLecture 3   software process model
Lecture 3 software process model
 
Slides chapter 5
Slides chapter 5Slides chapter 5
Slides chapter 5
 
Slides chapters 24-25
Slides chapters 24-25Slides chapters 24-25
Slides chapters 24-25
 
Slides chapters 6-7
Slides chapters 6-7Slides chapters 6-7
Slides chapters 6-7
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Slides chapter 1
Slides chapter 1Slides chapter 1
Slides chapter 1
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development Methodologies
 
Personal Hygiene
Personal HygienePersonal Hygiene
Personal Hygiene
 
Unified Process
Unified ProcessUnified Process
Unified Process
 

Similaire à Slides chapters 28-32

C++ Interview Question And Answer
C++ Interview Question And AnswerC++ Interview Question And Answer
C++ Interview Question And AnswerJagan Mohan Bishoyi
 
C++ questions And Answer
C++ questions And AnswerC++ questions And Answer
C++ questions And Answerlavparmar007
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxcargillfilberto
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxdrandy1
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxmonicafrancis71118
 
SystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.pptSystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.pptravi446393
 
CSC8503 Principles of Programming Languages Semester 1, 2015.docx
CSC8503 Principles of Programming Languages Semester 1, 2015.docxCSC8503 Principles of Programming Languages Semester 1, 2015.docx
CSC8503 Principles of Programming Languages Semester 1, 2015.docxfaithxdunce63732
 
1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answers1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answersAkash Gawali
 
PE1 Module 4.ppt
PE1 Module 4.pptPE1 Module 4.ppt
PE1 Module 4.pptbalewayalew
 
C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1ReKruiTIn.com
 
03 Synthesis (1).ppt
03 Synthesis  (1).ppt03 Synthesis  (1).ppt
03 Synthesis (1).pptShreyasMahesh
 
A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationCoen De Roover
 
Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language Prachi Pandey
 
Lecture 9_Classes.pptx
Lecture 9_Classes.pptxLecture 9_Classes.pptx
Lecture 9_Classes.pptxNelyJay
 
A software agent controlling 2 robot arms in co-operating concurrent tasks
A software agent controlling 2 robot arms in co-operating concurrent tasksA software agent controlling 2 robot arms in co-operating concurrent tasks
A software agent controlling 2 robot arms in co-operating concurrent tasksRuleML
 
Ive posted 3 classes after the instruction that were given at star.pdf
Ive posted 3 classes after the instruction that were given at star.pdfIve posted 3 classes after the instruction that were given at star.pdf
Ive posted 3 classes after the instruction that were given at star.pdfdeepaarora22
 
DocumentationofchangesondocumentparsingofBlueHOUND
DocumentationofchangesondocumentparsingofBlueHOUNDDocumentationofchangesondocumentparsingofBlueHOUND
DocumentationofchangesondocumentparsingofBlueHOUNDXulang Wan
 

Similaire à Slides chapters 28-32 (20)

C++ Interview Question And Answer
C++ Interview Question And AnswerC++ Interview Question And Answer
C++ Interview Question And Answer
 
C++ questions And Answer
C++ questions And AnswerC++ questions And Answer
C++ questions And Answer
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
SystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.pptSystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.ppt
 
CSC8503 Principles of Programming Languages Semester 1, 2015.docx
CSC8503 Principles of Programming Languages Semester 1, 2015.docxCSC8503 Principles of Programming Languages Semester 1, 2015.docx
CSC8503 Principles of Programming Languages Semester 1, 2015.docx
 
1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answers1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answers
 
PE1 Module 4.ppt
PE1 Module 4.pptPE1 Module 4.ppt
PE1 Module 4.ppt
 
C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1
 
03 Synthesis (1).ppt
03 Synthesis  (1).ppt03 Synthesis  (1).ppt
03 Synthesis (1).ppt
 
A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X Transformation
 
DSD
DSDDSD
DSD
 
Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language
 
Technical Interview
Technical InterviewTechnical Interview
Technical Interview
 
Lecture 9_Classes.pptx
Lecture 9_Classes.pptxLecture 9_Classes.pptx
Lecture 9_Classes.pptx
 
A software agent controlling 2 robot arms in co-operating concurrent tasks
A software agent controlling 2 robot arms in co-operating concurrent tasksA software agent controlling 2 robot arms in co-operating concurrent tasks
A software agent controlling 2 robot arms in co-operating concurrent tasks
 
slide8.ppt
slide8.pptslide8.ppt
slide8.ppt
 
Ive posted 3 classes after the instruction that were given at star.pdf
Ive posted 3 classes after the instruction that were given at star.pdfIve posted 3 classes after the instruction that were given at star.pdf
Ive posted 3 classes after the instruction that were given at star.pdf
 
DocumentationofchangesondocumentparsingofBlueHOUND
DocumentationofchangesondocumentparsingofBlueHOUNDDocumentationofchangesondocumentparsingofBlueHOUND
DocumentationofchangesondocumentparsingofBlueHOUND
 

Plus de Priyanka Shetty

Plus de Priyanka Shetty (10)

Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14
 
Slides chapter 19
Slides chapter 19Slides chapter 19
Slides chapter 19
 
Slides chapter 17
Slides chapter 17Slides chapter 17
Slides chapter 17
 
Slides chapter 16
Slides chapter 16Slides chapter 16
Slides chapter 16
 
Slides chapter 15
Slides chapter 15Slides chapter 15
Slides chapter 15
 
Slides chapter 12
Slides chapter 12Slides chapter 12
Slides chapter 12
 
Slides chapter 11
Slides chapter 11Slides chapter 11
Slides chapter 11
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Slides chapter 8
Slides chapter 8Slides chapter 8
Slides chapter 8
 

Slides chapters 28-32

  • 1. Chapter 28 Formal Methods Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
  • 2.
  • 3.
  • 4.
  • 6. States and Data Invariant The state of the spooler is represented by the four components Queues, OutputDevices, Limits, and Sizes. The data invariant has five components: • Each output device is associated with an upper limit of print lines • Each output device is associated with a possibly nonempty queue of files awaiting printing • Each file is associated with a size • Each queue associated with an output device contains files that have a size less than the upper limit of the output device • There will be no more than MaxDevs output devices administered by the spooler
  • 7.
  • 8. Pre- & Postconditions For the first operation (adds a new output device to the spooler together with its associated print limit): Precondition: the output device name does not already exist and that there are currently less than MaxDevs output devices known to the spooler Postcondition: the name of the new device is added to the collection of existing device names, a new entry is formed for the device with no files being associated with its queue, and the device is associated with its print limit.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 19.
  • 20.
  • 21. BlockHandler in Z ——— BlockHandler—————————————— used, free : P BLOCKS BlockQueue : seq P BLOCKS ——————————————————————— used > free = used < free = AllBlocks i : dom BlockQueue BlockQueue i # used i, j : dom BlockQueue i ≠ j => BlockQueue i > BlockQueue j = ———————————————————————— The following example of a schema describes the state of the block handler and the data invariant: See Section 28.6.2 for further expansion of the specification
  • 22. Chapter 29 Cleanroom Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
  • 24. The Cleanroom Strategy-I Increment Planning —adopts the incremental strategy Requirements Gathering —defines a description of customer level requirements (for each increment) Box Structure Specification —describes the functional specification Formal Design —specifications (called “black boxes”) are iteratively refined (with an increment) to become analogous to architectural and procedural designs (called “state boxes” and “clear boxes,” respectively). Correctness Verification —verification begins with the highest level box structure (specification) and moves toward design detail and code using a set of “correctness questions.” If these do not demonstrate that the specification is correct, more formal (mathematical) methods for verification are used. Code Generation, Inspection and Verification —the box structure specifications, represented in a specialized language, are transmitted into the appropriate programming language.
  • 25. The Cleanroom Strategy-II Statistical Test Planning —a suite of test cases that exercise of “probability distribution” of usage are planned and designed Statistical Usage Testing —execute a series of tests derived from a statistical sample (the probability distribution noted above) of all possible program executions by all users from a targeted population Certification —once verification, inspection and usage testing have been completed (and all errors are corrected) the increment is certified as ready for integration.
  • 26. Box Structure Specification black box state box clear box
  • 27. Box Structures black box state box clear box
  • 28. Design Refinement & Verification If a function f is expanded into a sequence g and h, the correctness condition for all input to f is: • Does g followed by h do f? When a function f is refined into a conditional (if-then-else), the correctness condition for all input to f is: • Whenever condition <c> is true does g do f and whenever <c> is false, does h do f? When function f is refined as a loop, the correctness conditions for all input to f is: • Is termination guaranteed? • Whenever <c> is true does g followed by f do f, and whenever <c> is false, does skipping the loop still do f?
  • 29.
  • 30.
  • 31. Certification 1. Usage scenarios must be created. 2. A usage profile is specified. 3. Test cases are generated from the profile. 4. Tests are executed and failure data are recorded and analyzed. 5. Reliability is computed and certified.
  • 32. Certification Models Sampling model. Software testing executes m random test cases and is certified if no failures or a specified numbers of failures occur. The value of m is derived mathematically to ensure that required reliability is achieved. Component model. A system composed of n components is to be certified. The component model enables the analyst to determine the probability that component i will fail prior to completion. Certification model. The overall reliability of the system is projected and certified.
  • 33. Chapter 30 Component-Based Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
  • 34.
  • 35.
  • 37. Domain Engineering 1. Define the domain to be investigated. 2. Categorize the items extracted from the domain. 3. Collect a representative sample of applications in the domain. 4. Analyze each application in the sample. 5. Develop an analysis model for the objects .
  • 38. Identifying Reusable Components • Is component functionality required on future implementations? • How common is the component's function within the domain? • Is there duplication of the component's function within the domain? • Is the component hardware-dependent? • Does the hardware remain unchanged between implementations? • Can the hardware specifics be removed to another component? • Is the design optimized enough for the next implementation? • Can we parameterize a non-reusable component so that it becomes reusable? • Is the component reusable in many implementations with only minor changes? • Is reuse through modification feasible? • Can a non-reusable component be decomposed to yield reusable components? • How valid is component decomposition for reuse?
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. Qualification Before a component can be used, you must consider: • application programming interface (API) • development and integration tools required by the component • run-time requirements including resource usage (e.g., memory or storage), timing or speed, and network protocol • service requirements including operating system interfaces and support from other components • security features including access controls and authentication protocol • embedded design assumptions including the use of specific numerical or non-numerical algorithms • exception handling
  • 44. Adaptation The implication of “easy integration” is: (1) that consistent methods of resource management have been implemented for all components in the library; (2) that common activities such as data management exist for all components, and (3) that interfaces within the architecture and with the external environment have been implemented in a consistent manner.
  • 45.
  • 46.
  • 48.
  • 49.
  • 50.
  • 52.
  • 53.
  • 54.
  • 55. Chapter 31 Reengineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
  • 56. Reengineering Business processes IT systems Software applications Reengineering
  • 57.
  • 59.
  • 60. Software Reengineering Forward engineering Data restructuring code restructuring reverse engineering document restructuring inventory analysis
  • 61.
  • 62.
  • 64.
  • 65.
  • 66. Forward Engineering 1. The cost to maintain one line of source code may be 20 to 40 times the cost of initial development of that line. 2. Redesign of the software architecture (program and/or data structure), using modern design concepts, can greatly facilitate future maintenance. 3. Because a prototype of the software already exists, development productivity should be much higher than average. 4. The user now has experience with the software. Therefore, new requirements and the direction of change can be ascertained with greater ease. 5. CASE tools for reengineering will automate some parts of the job. 6. A complete software configuration (documents, programs and data) will exist upon completion of preventive maintenance.
  • 67.
  • 68.
  • 69. Chapter 32 The Road Ahead Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
  • 70.
  • 71.
  • 72.
  • 73.
  • 75.
  • 76.
  • 77.
  • 78.