1 The Tools of the Trade Xiaojun Qi. 2 Stepwise Refinement Stepwise refinement is a basic problem- solving principle underlying many software engineering.

Slides:



Advertisements
Similar presentations
Slide 5.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
Advertisements

Testing Relational Database
Ch 3: Unified Process CSCI 4320: Software Engineering.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
CHAPTER 5 THE TOOLS OF THE TRADE.
5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,
Slide 11A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,
Software Configuration Management
Guide To UNIX Using Linux Third Edition
Chapter 1 Program Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Configuration Management
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Introduction to Systems Analysis and Design Trisha Cummings.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Managing Software Quality
PHASE 4 SYSTEMS IMPLEMENTATION Application Development SYSTEMS ANALYSIS & DESIGN.
1 Shawlands Academy Higher Computing Software Development Unit.
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Software Configuration Management
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
RUP Implementation and Testing
Slide 5.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Chapter 6 : Software Metrics
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Configuration Management (CM)
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Slide 10.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Slide 5.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Study Problem Solutions CSCI 6231 Mid Term. Chapter 1 1.1:Postdelivery maintenance will cost about 3 times as much as the original develop­ment, that.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Systems Development Life Cycle
Slide 5B.18 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Slide 5.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Slide 5.1 © The McGraw-Hill Companies, 2002 CASE (Computer-Aided Software Engineering) l Scope of CASE –Can support the entire life-cycle l Graphical display.
Slide 5.1 Lecture 5 THE TOOLS OF THE TRADE. Slide 5.2 Overview l Stepwise refinement l Cost–benefit analysis l Divide-and-conquer l Separation of concerns.
Objectives Understand Corrective, Perfective and Preventive maintenance Discuss the general concepts of software configuration management.
Configuration Management
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
CASE Tools and their Effect on Software Quality
CASE (Computer-Aided Software Engineering) Tools
MANAGEMENT INFORMATION SYSTEM
Slide 10.1 CHAPTER 10 OVERVIEW OF THE PREVIOUS CHAPTERS.
Software Configuration Management
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
8.4 Management of Postdelivery Maintenance
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
About the Presentations
Maintaining software solutions
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Tools of Software Development
Introduction to Systems Analysis and Design
Chapter 1 Introduction(1.1)
Outline Chapter 2 (cont) OS Design OS structure
Chapter # 6 Software Configuration Management
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Presentation transcript:

1 The Tools of the Trade Xiaojun Qi

2 Stepwise Refinement Stepwise refinement is a basic problem- solving principle underlying many software engineering techniques. It can be defined as: –A means to postpone decisions as to details as late as possible to be able to concentrate on the important issues Miller’s law (1956) –A human being can concentrate on approximately 7 (i.e., 7 ± 2) items at a time

3 Stepwise Refinement Mini Case Design a product to update a sequential master file containing name and address data for the monthly magazine True Life Software Disasters Three types of transactions –Type 1:INSERT (a new subscriber into the master file) –Type 2:MODIFY (an existing subscriber record) –Type 3:DELETE (an existing subscriber record) Transactions are sorted into alphabetical order by name of subscriber, and by transaction code within alphabetical order

4 Mini Case: Decompose Process Figure 5.2 Typical Input Transaction File

5 Mini Case: The First Refinement Figure 5.3 Assumption We can produce a record when PROCESS requires it Solution Separate INPUT and OUTPUT, concentrate on PROCESS

6 Mini Case: What is this PROCESS? Example: Figure 5.4

7 Mini Case: The Second Refinement Figure 5.6

8 Mini Case: The Third Refinement This design has a major fault since: “Modify JONES” followed by “Delete JONES” is incorrectly handled Figure 5.7

9 Mini Case: The Fourth Refinement Opening and closing files is –Ignored in early steps, but –Essential later After the third refinement has been corrected –Details like opening and closing files have to be introduced –Fix these after the logic of the design is complete The important issue is to decide which item should be handled at each stage!

10 Appraisal of Stepwise Refinement It can be considered a technique for setting the priorities of the various problems that have to be solved within a workflow. It ensures that every problem is solved and each is solved at the appropriate time, without having to handle more than 7 ± 2 chunks at any one time. It is a basic and general principle used in every workflow and every representation (e.g., flowchart and pseudocode) The power of stepwise refinement –The software engineer can concentrate on the relevant aspects

11 Cost–Benefit Analysis Compare costs and future benefits –Estimate costs –Estimate benefits –State all assumptions explicitly Figure 5.8

12 Cost–Benefit Analysis (Cont.) Tangible costs/benefits are easy to measure Make assumptions to estimate intangible costs/benefits –Improving the assumptions will improve the estimates

13 Software Metrics (Measurements) To detect problems early in the software process, it is essential to measure –LOC (Lines of Code) per month –Defects per 1000 lines of code Once the product has been installed on the client’s computer, it essential to have product metrics –Size of product –Mean time between failures: Measure the reliability of product It is important to have process metrics to help developers to deduce information about the software process. –Efficiency of fault detection during development Metrics specific to a given workflow –Number of defects detected per hour in specification reviews

14 The Five Basic Metrics Size –In lines of code, or better Cost –In dollars Duration –In months Effort –In person months Quality –Number of faults detected

15 CASE (Computer-Aided Software Engineering) Scope of CASE –CASE can support the entire life-cycle The computer assists with drudge work –It manages all the details including plans, contracts, specifications, designs, source code, and management information

16 Scope of CASE Programmers need to have: –Accurate, up-to-date versions of all documents –Online help information regarding the operating system, editor, and programming language. –Online programming standards –Online manuals including editor manuals and programming manuals –Online interface checkers – systems –Spreadsheets, word processors –Structure editors –Pretty printers

17 CASE Tool: Online Interface Checker A structure editor must support online interface checking –The editor must know the name of every procedure Interface checking is an important part of programming-in-the-large (software development at the module level)

18 CASE Tool: Online Interface Checker - Example 1 The user enters the call: Average = dataArray.computeAverage(Values) The editor immediately responds Method computeAverage not known The programmer is given two choices –Correct the method name to computeMean –Declare new procedure computeAverage and specify its parameters This enables full interface checking

19 CASE Tool: Online Interface Checker - Example 2 Declaration of method q is void q (float floatVar, int intVar, String s1, String s2); Call (invocation) is q (intVar, floatVar, s1, s2); The online interface checker detects the fault Help facility –Online information for the parameters of q –Better: Editor generates a template for the call The template shows the type of each parameter The programmer replaces formal by actual parameters

20 CASE Tool: Online Interface Checker - Summary Advantages –Hard-to-detect faults are immediately flagged for correction Wrong number of parameters Parameters of the wrong type –Essential when software is produced by a team If one programmer changes an interface specification, all components calling that changed artifact must be disabled

21 CASE Tool: Operating System Front-End within the Editor Single command – go or run –Use of the mouse to choose An appropriate icon, or An appropriate menu selection This one command causes the editor to invoke the compiler, linker, loader, and execute the product

22 CASE Tool: Source Level Debugger An interactive source level debugger (like dbx ) can generate output from a typical source level

23 Other Useful CASE Tools Data dictionary: A computerized list of all data defined within the product Consistency checker: A tool to check that every data item in the specification document is reflected in the design, and conversely, every item in the design has been defined in the specification document. Report generator: Generate the code needed for producing a report. Screen generator: Assist the software developer in producing the code for a data capture screen.

24 Programming Workbench Structure editor with –Online interface checking capabilities –Operating system front-end –Online documentation –Source level debugger This constitutes a simple, adequate, and effective programming environment

25 Taxonomy of CASE UpperCASE (front-end tool): Help the developer during the earlier workflows of the process (the requirements, analysis, and design workflows) LowerCASE (back-end tool): Assist with the implementation workflow and postdelivery maintenance.

26 Tool vs. Workbench vs. Environment (a) Tool (b) Workbench (c) Environment Figure 5.9

27 Software Versions During maintenance, at all times there are at least two versions of the product: –The old version, and –The new version There are two types of versions: revisions and variations

28 Revisions Revision –A version to fix a fault in the artifact (Corrective Maintenance) –We cannot throw away an incorrect version The new version may be no better Some sites may not install the new version Perfective and adaptive maintenance also result in revisions

29 Variations A variation is a version for different operating systems – hardware Variations are designed to coexist in parallel Figure 5.11

30 Configuration Control Every code artifact exists in three forms –Source code –Object code –Executable load image Configuration –A version of each artifact from which a given version of a complete product is built Figure 5.12

31 Version-Control Tool Essential for programming-in-the-many (software production by a team) –A first step toward configuration management A version-control tool must handle –Updates –Parallel versions Examples of Notation for file name, variation, and version (see the left diagram)

32 Version-Control Tool: Advantages and Problems Version control is a great help in managing multiple versions of artifacts and the product as a whole. However, additional problem associated with maintaining multiple variations –The fault occurs in a part of the artifact common to both variations –Solution: The variation is stored in terms of the list of changes that have to be made to go from the original to that variation. That is, save the Deltas! Version control is not enough — maintenance issues

33 Configuration Control During Postdelivery Maintenance: Problems Two programmers are working on the same artifact mDual/16 The changes of the first programmer are contained in mDual/17 The changes of the second programmer are contained in mDual/18 –The changes of the first programmer are lost

34 Solution: Baselines The maintenance manager must set up –Baselines: A configuration (set of versions) of all the artifacts in the product –Private workspaces When an artifact is to be changed, the current version is frozen –Thereafter, it can never be changed Both programmers make their changes to mDual/16 –The first programmer Freezes mDual/16 and makes changes to it The resulting revision is mDual/17 After testing, mDual/17 becomes the new baseline –The second programmer Freezes mDual/17 and makes changes to it The resulting revision is mDual/18 After testing, mDual/18 becomes the new baseline

35 Configuration Control during Development While an artifact is being coded –The programmer performs informal testing Then the artifact is given to the SQA group for methodical testing –Changes from now on can impact the product An artifact must be subject to configuration control from the time it is passed by SQA

36 Configuration-Control Tools: Examples UNIX version-control tools –sccs –rcs –cvs Popular commercial configuration-control tools –PVCS –SourceSafe Open-source configuration-control tool –cvs

37 Build Tools A build tool assists in selecting the correct version of each compiled-code artifact to be linked to form a specific version of the product. Example: UNIX make It compares the date and time stamp on –Source code, object code –It calls the appropriate compiler only if necessary It then compares the date and time stamp on –Object code, executable load image –It calls the linker only if necessary

38 Productivity Gains with CASE Tools Introducing CASE technology into a software organization leads to: –Faster development –Fewer faults –Better usability –Easier maintenance –Improved morale Results confirm that CASE environments should be used at CMM level 3 or higher