Slide 5.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.

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

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.
1 The Tools of the Trade Xiaojun Qi. 2 Stepwise Refinement Stepwise refinement is a basic problem- solving principle underlying many software engineering.
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.
Slide 6C.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 1.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 10B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
System Design and Analysis
Chapter 6 Prototyping, RAD, and Extreme Programming
Chapter 8 Prototyping and Rapid Application Development
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Slide 12E.121 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Cost Management Week 6-7 Learning Objectives
Your Interactive Guide to the Digital World Discovering Computers 2012.
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.
PHASE 4 SYSTEMS IMPLEMENTATION Application Development SYSTEMS ANALYSIS & DESIGN.
Software Configuration Management
Objectives Overview Define the term, database, and explain how a database interacts with data and information Define the term, data integrity, and describe.
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
Slide 10.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Discovering Computers Fundamentals Fifth Edition Chapter 9 Database Management.
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Slide 6.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
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.
Slide 20.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
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.
Slide 5B.18 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
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.
Configuration Management
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Chapter – 8 Software Tools.
Project Planning. Overview Planning and the software process Estimating duration and cost Software project management plan components Software project.
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
Slide 13A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
Slide 10.1 CHAPTER 10 OVERVIEW OF THE PREVIOUS CHAPTERS.
8.4 Management of Postdelivery Maintenance
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
About the Presentations
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Tools of Software Development
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Introduction to Systems Analysis and Design
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
SYSTEMS ANALYSIS & DESIGN
Outline Chapter 2 (cont) OS Design OS structure
Chapter # 6 Software Configuration Management
Chapter 8 Prototyping and Rapid Application Development
©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:

Slide 5.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach

Slide 5.2 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. CHAPTER 5 THE TOOLS OF THE TRADE

Slide 5.3 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Overview l Stepwise refinement l Cost–benefit analysis l Software metrics l CASE l Taxonomy of CASE l Scope of CASE l Software versions l Configuration control l Build tools l Productivity gains with CASE technology

Slide 5.4 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.1 Stepwise Refinement l A basic principle underlying many software engineering techniques – “Postpone decisions as to details as late as possible to be able to concentrate on the important issues” l Miller’s law (1956) – A human being can concentrate on 7 ± 2 items at a time

Slide 5.5 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Stepwise Refinement Mini Case Study l Design a product to update a sequential master file containing name and address data for the monthly magazine True Life Software Disasters l 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) l Transactions are sorted into alphabetical order, and by transaction code within alphabetical order

Slide 5.6 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Typical File of Input Transactions Figure 5.1

Slide 5.7 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Decompose Process l No further refinement is possible Figure 5.2

Slide 5.8 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. First Refinement Figure 5.3

Slide 5.9 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Stepwise Refinement Case Study (contd) l Assumption – We can produce a record when PROCESS requires it l Separate INPUT and OUTPUT, concentrate on PROCESS

Slide 5.10 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Stepwise Refinement Case Study (contd) l What is this PROCESS? l Example: Figure 5.4

Slide 5.11 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Stepwise Refinement Case Study (contd) l More formally: Figure 5.5

Slide 5.12 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Second Refinement Figure 5.6

Slide 5.13 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Third Refinement l This design has a major fault Figure 5.7

Slide 5.14 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Stepwise Refinement Case Study (contd) l The third refinement is WRONG – “Modify JONES” followed by “Delete JONES” is incorrectly handled

Slide 5.15 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Stepwise Refinement Case Study (contd) l After the third refinement has been corrected – Details like opening and closing files have been ignored up to now – Fix these after the logic of the design is complete – The stage at which an item is handled is vital l Opening and closing files is – Ignored in early steps, but – Essential later

Slide 5.16 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Appraisal of Stepwise Refinement l A basic principle used in – Every workflow – Every representation l The power of stepwise refinement – The software engineer can concentrate on the relevant aspects l Warning – Miller’s Law is a fundamental restriction on the mental powers of human beings

Slide 5.17 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.2 Cost–Benefit Analysis l Compare costs and future benefits – Estimate costs – Estimate benefits – State all assumptions explicitly

Slide 5.18 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Cost–Benefit Analysis (contd) l Example: Computerizing KCEC Figure 5.8

Slide 5.19 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Cost–Benefit Analysis (contd) l Tangible costs/benefits are easy to measure l Make assumptions to estimate intangible costs/benefits – Improving the assumptions will improve the estimates

Slide 5.20 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.3 Software Metrics l To detect problems early, it is essential to measure l Examples: – LOC per month – Defects per 1000 lines of code

Slide 5.21 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Different Types of Metrics l Product metrics – Examples: » Size of product » Reliability of product l Process metrics – Example: » Efficiency of fault detection during development l Metrics specific to a given workflow – Example: » Number of defects detected per hour in specification reviews

Slide 5.22 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. The Five Basic Metrics l Size – In lines of code, or better l Cost – In dollars l Duration – In months l Effort – In person months l Quality – Number of faults detected

Slide 5.23 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.4 CASE (Computer-Aided Software Engineering) l Scope of CASE – CASE can support the entire life-cycle l The computer assists with drudge work – It manages all the details

Slide 5.24 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.5 Taxonomy of CASE l UpperCASE (front-end tool) versus l LowerCASE (back-end tool)

Slide 5.25 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Some Useful Tools l Data dictionary – Computerized list of all data defined within the product l Consistency checker l Report generator, screen generator

Slide 5.26 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Taxonomy of CASE (contd) l (a) Tool versus (b) workbench versus (c) environment Figure 5.9

Slide 5.27 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.6 Scope of CASE l Programmers need to have: – Accurate, up-to-date versions of all project documents – Online help information regarding the » Operating system » Editor » Programming language – Online programming standards – Online manuals » Editor manuals » Programming manuals

Slide 5.28 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Scope of CASE (contd) l Programmers need to have: – systems – Spreadsheets – Word processors – Structure editors – Pretty printers – Online interface checkers

Slide 5.29 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Online Interface Checker l A structure editor must support online interface checking – The editor must know the name of every code artifact l Interface checking is an important part of programming-in-the-large

Slide 5.30 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Online Interface Checker (contd) l Example – The user enters the call average = dataArray.computeAverage (numberOfValues); – The editor immediately responds Method computeAverage not known l The programmer is given two choices – Correct the name of the method to computeMean – Declare new procedure computeAverage and specify its parameters l This enables full interface checking

Slide 5.31 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Online Interface Checker (contd) l Example – Declaration of 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 l Help facility – Online information for the parameters of method q – Better: Editor generates a template for the call » The template shows type of each parameter » The programmer replaces formal by actual parameters

Slide 5.32 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Online Interface Checker (contd) l Advantages – There is no need for different tools with different interfaces – Hard-to-detect faults are immediately flagged for correction » Wrong number of parameters » Parameters of the wrong type l Essential when software is produced by a team – If one programmer changes an interface specification, all components calling that changed artifact must be disabled

Slide 5.33 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Online Interface Checker (contd) l Even when a structure editor incorporates an online interface checker, a problem remains – The programmer still has to exit from the editor to invoke the compiler (to generate code) – Then, the linker must be called to link the product – The programmer must adjust to the JCL, compiler, and linker output l Solution: Incorporate an operating system front- end into the structure editor

Slide 5.34 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Operating System Front-End in Editor l Single command – go or run – Use of the mouse to choose » An icon, or » A menu selection l This one command causes the editor to invoke the compiler, linker, loader, and execute the product

Slide 5.35 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Source Level Debugger l Example: – Product executes terminates abruptly and prints Overflow at 4B06 or Core dumped or Segmentation fault

Slide 5.36 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Source Level Debugger (contd) l The programmer works in a high-level language, but must examine – Machine-code core dumps – Assembler listings – Linker listings – Similar low-level documentation l This destroys the advantage of programming in a high-level language l We need – An interactive source level debugger (like dbx )

Slide 5.37 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Source Level Debugger (contd) l Output from a typical source-level debugger Figure 5.10

Slide 5.38 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Programming Workbench l Structure editor with – Online interface checking capabilities – Operating system front-end – Online documentation – Source level debugger l This constitutes a simple programming environment

Slide 5.39 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Programming Workbench (contd) l This is by no means new – All the above features are supported by FLOW (1980) – The technology has been in place for years l Surprisingly, some programmers still implement code the old-fashioned way

Slide 5.40 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.7 Software Versions l During maintenance, at all times there are at least two versions of the product: – The old version, and – The new version l There are two types of versions: revisions and variations

Slide 5.41 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Revisions l Revision – A version constructed to fix a fault in the artifact – We cannot throw away an incorrect version » The new version may be no better » Some sites may not install the new version l Perfective and adaptive maintenance also result in revisions

Slide 5.42 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Variations l A variation is a version for a different operating system–hardware l Variations are designed to coexist in parallel Figure 5.11

Slide 5.43 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.8 Configuration Control l Every code artifact exists in three forms – Source code – Compiled code – Executable load image l Configuration – A version of each artifact from which a given version of a product is built Figure 5.12

Slide 5.44 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Version-Control Tool l Essential for programming-in-the-many – A first step toward configuration management l A version-control tool must handle – Updates – Parallel versions

Slide 5.45 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Version-Control Tool (contd) l Notation for file name, variation, and revision Figure 5.13

Slide 5.46 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Version-Control Tool (contd) l Problem of multiple variations – Deltas l Version control is not enough — maintenance issues

Slide 5.47 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Configuration Control during Postdelivery Maintenance 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

Slide 5.48 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Baselines l The maintenance manager must set up – Baselines – Private workspaces l When an artifact is to be changed, the current version is frozen – Thereafter, it can never be changed

Slide 5.49 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Baselines (contd) Both programmers make their changes to mDual/16 l 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 l 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

Slide 5.50 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Configuration Control during Development l While an artifact is being coded – The programmer performs informal testing l Then the artifact is given to the SQA group for methodical testing – Changes from now on can impact the product l An artifact must be subject to configuration control from the time it is passed by SQA

Slide 5.51 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Configuration-Control Tools l UNIX version-control tools – sccs – rcs – cvs l Popular commercial configuration-control tools – PVCS – SourceSafe l Open-source configuration-control tool – cvs

Slide 5.52 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. 5.9 Build Tools l Example – UNIX make l A build tool compares the date and time stamp on – Source code, compiled code – It calls the appropriate compiler only if necessary l The tool then compares the date and time stamp on – Compiled code, executable load image – It calls the linker only if necessary

Slide 5.53 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Productivity Gains with CASE Tools l Survey of 45 companies in 10 industries (1992) – Half information systems – Quarter scientific software – Quarter real-time aerospace software l Results – About 10% annual productivity gains – Cost: $125,000 per seat

Slide 5.54 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Productivity Gains with CASE Tools (contd) l Justifications for CASE – Faster development – Fewer faults – Easier maintenance – Improved morale

Slide 5.55 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved Productivity Gains with CASE Tools l Newer results on fifteen Fortune 500 companies (1997) l It is vital to have – Training, and – A software process l Results confirm that CASE environments should be used at CMM level 3 or higher l “A fool with a tool is still a fool”

Slide 5.56 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Summary of Tools in Chapter 5 Figure 5.14