Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Testing Workflow Purpose
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Lecture # 2 : Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
CLEANROOM SOFTWARE ENGINEERING
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Copyright © 2003 Software Quality Research Laboratory Software Production Essentials Seeing Past the Buzz Words.
Documentation Testing
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Software Testing and Quality Assurance
Software Reengineering
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Testing and Quality Assurance Lecture 14 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Lecture Nine Database Planning, Design, and Administration
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Andy Moyer. Cleanroom Software Engineering  What is it?  Goals  Properties of Cleanroom  Cleanroom Technologies  Case Studies  Critiques.
Cleanroom Software Engineering Crystal Donald. Origins Developed by Dr. Harlan Mills in 1987 Developed by Dr. Harlan Mills in 1987 Name derived from hardware.
Software Reengineering
Chapter 29 Maintenance and Reengineering
Software Integration and Documenting
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Extreme Programming Software Development Written by Sanjay Kumar.
Chapter 2 The process Process, Methods, and Tools
CLEANROOM SOFTWARE ENGINEERING.
CPIS 357 Software Quality & Testing
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
ITEC 3220M Using and Designing Database Systems
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Configuration Management (CM)
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing Workflow In the Unified Process and Agile/Scrum processes.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Construction Lecture 18 Software Testing.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Testing and Quality Assurance Software Quality Assurance 1.
Chapter 3: Software Project Management Metrics
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Next week Tuesday Report on the project Demo of the working model. Today at the conclusion of lecture, class get together to figure out how you will present.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Lecture 3 Prescriptive Process Models
Operations Consulting and Reengineering
The Development Process of Web Applications
Software Life Cycle “What happens in the ‘life’ of software”
IEEE Std 1074: Standard for Software Lifecycle
Software Requirements
Software Maintenance
Business Process Reengineering
Lecture 09:Software Testing
Chapter 28 Formal Modeling and Verification
Chapter 10 – Software Testing
Unit 5 15SE202 Software engineering Principles
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
For University Use Only
Presentation transcript:

Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering

Reengineering

Business Process Reengineering Business definition Process identification Process Evaluation Process Specification and Design Prototyping Refinement & Instantiation

BPR Principles Organize around outcomes, not tasks. Have those who use the output of the process perform the process. Incorporate information processing work into the real work that produces the raw information. Treat geographically dispersed resources as though they were centralized. Link parallel activities instead of integrated their results. Put the decision point where the work is performed, and build control into the process. Capture data once, at its source.

Software Reengineering inventory analysis document restructuring data restructuring reverse engineering code engineering restructuring forward

Inventory Analysis build a table that contains all applications establish a list of criteria, e.g., name of the application year it was originally created number of substantive changes made to it total effort applied to make these changes date of last substantive change effort applied to make the last change system(s) in which it resides applications to which it interfaces,... analyze and prioritize to select candidates for reengineering

Restructuring Document Restructuring options range from doing nothing to regeneration of all documentation for critical system Reverse Engineering the intent here is to achieve design recovery Code Restructuring rebuild spaghetti bowl code Data Restructuring data architecture

Reverse Engineering dirty source code restructure code extract abstractions refine & simplify clean source code initial specification final specification processing interface database

Forward Engineering 1.Redesign using modern design concepts, can greatly facilitate future maintenance. 2.Because a prototype of the software already exists, development productivity should be much higher than average. 3.The user now has experience with the software. Therefore, new requirements and the direction of change can be ascertained with greater ease. 4.CASE tools for reengineering will automate some parts of the job. 5.A complete software configuration will exist upon completion of preventive maintenance.

Computer-Aided Software Engineering

CASE … in its idealized form, CASE combines a set of software development tools that are integrated with a database to form an environment … … the tools address each important step in the software engineering process … … the tools increase insight thereby improving quality; reduce drudgery thereby improving productivity; and enhance control, thereby leading to on-time projects …

CASE Environment Model Operating System Portability Services CASE Tools Hardware Platform Operating System Portability Services CASE Tools Environment Architecture Integration Framework

Challenge: Putting it Together

An Integration Framework user interface layer object management layer shared repository layer tools layer interface tool kit presentation protocol tools management services CASE tool integration services configuration management services CASE database access control functions

Data Integration: The CASE Repository CASE Database Objects Object Management Layer integration services SCM services Shared Repository Layer database access control functions

A Taxonomy of CASE Tools business systems planning project management support analysis and design integration &testing re–engineering prototyping/simulation tools CASE Database programming framework

Cleanroom Software Engineering

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.

The Cleanroom Strategy-II Code Generation, Inspection and Verification—the box structure specifications, represented in a specialized language, are transmitted into the appropriate programming language. 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 S R black box, g State T

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 is true does g do f and whenever 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 is true does g followed by f do f, and whenever is false, does skipping the loop still do f?

Advantages of Design Verification It reduces verification to a finite process. It lets cleanroom teams verify every line of design and code. It results in a near zero defect level. It scales up. It produces better code than unit testing.

Cleanroom Testing statistical use testing tests the actual usage of the program determine a “usage probability distribution” analyze the specification to identify a set of stimuli stimuli cause software to change behavior create usage scenarios assign probability of use to each stimuli test cases are generated for each stimuli according to the usage probability distribution

Certification Usage scenarios must be created. A usage profile is specified. Test cases are generated from the profile. Tests are executed and failure data are recorded and analyzed. 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. m is derived mathematically to ensure that required reliability is achieved. Component model—A system composed of n components is to be certified and 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.