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,

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.
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 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Slide 14.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
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.
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.
Slide 12.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
CSE 303 – Software Design and Architecture
CS540 Software Design Lecture 8 1 Lecture 8: Structured Design Anita S. Malik Adapted from Schach (2004) Chapter 13 and Appendix.
Chapter 6 : Software Metrics
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
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,
Cohesion and Coupling CS 4311
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 6 Using Methods.
Slide 5.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Slide 13B.22 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 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.
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.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
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.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
Chapter – 8 Software Tools.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Slide 7B.31 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
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.
Principles of Programming & Software Engineering
CompSci 280 S Introduction to Software Development
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Data Abstraction: The Walls
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.
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
System calls….. C-program->POSIX call
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change 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:

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, 2011 Stephen R. Schach

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

Slide 5.3 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Overview l Stepwise refinement l Cost–benefit analysis l Divide-and-conquer l Separation of concerns l Software metrics l CASE l Taxonomy of CASE l Scope of CASE

Slide 5.4 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Overview (contd) l Software versions l Configuration control l Build tools l Productivity gains with CASE technology

Slide 5.5 Copyright © 2011 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.6 Copyright © 2011 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.7 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Typical File of Input Transactions Figure 5.1

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

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

Slide 5.10 Copyright © 2011 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.11 Copyright © 2011 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.12 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Stepwise Refinement Case Study (contd) l More formally: Figure 5.5

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

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

Slide 5.15 Copyright © 2011 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.16 Copyright © 2011 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.17 Copyright © 2011 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.18 Copyright © 2011 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.19 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Cost–Benefit Analysis (contd) l Example: Computerizing KCEC Figure 5.8

Slide 5.20 Copyright © 2011 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.21 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.3 Divide-and-Conquer l Solve a large, hard problem by breaking up into smaller subproblems that hopefully will be easier to solve l Divide-and-conquer is used in the Unified Process to handle a large, complex system – Analysis workflow » Partition the software product into analysis packages – Design workflow » Break up the upcoming implementation workflow into manageable pieces, termed subsystems

Slide 5.22 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Divide-and-Conquer (contd) l A problem with divide-and-conquer – The approach does not tell us how to break up a software product into appropriate smaller components

Slide 5.23 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.4 Separation of Concerns l The process of breaking a software product into components with minimal overlap of functionality – Minimizes regression faults – Promotes reuse l Separation of concerns underlies much of software engineering

Slide 5.24 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Separation of Concerns (contd) l Instances include: – Modularization with maximum interaction within each module (“high cohesion”) (Chapter 7) – Modularization with minimum interaction between modules (“low coupling”) (Chapter 7) – Information hiding (or physical independence) – Encapsulation (or conceptual independence) – Three-tier architecture (Section 8.5.4) – Model-view-controller (MVC) architecture pattern, (Section 8.5.4)

Slide 5.25 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.5 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.26 Copyright © 2011 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.27 Copyright © 2011 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.28 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.6 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.29 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.7 Taxonomy of CASE l UpperCASE (front-end tool) versus l LowerCASE (back-end tool)

Slide 5.30 Copyright © 2011 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.31 Copyright © 2011 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.32 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.8 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.33 Copyright © 2011 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.34 Copyright © 2011 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.35 Copyright © 2011 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.36 Copyright © 2011 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.37 Copyright © 2011 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.38 Copyright © 2011 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.39 Copyright © 2011 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.40 Copyright © 2011 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.41 Copyright © 2011 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.42 Copyright © 2011 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.43 Copyright © 2011 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.44 Copyright © 2011 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.45 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 5.9 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.46 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved Revisions l Revision – A version 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.47 Copyright © 2011 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.48 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved 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.49 Copyright © 2011 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.50 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Version-Control Tool (contd) l Notation for file name, variation, and version Figure 5.13

Slide 5.51 Copyright © 2011 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.52 Copyright © 2011 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.53 Copyright © 2011 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.54 Copyright © 2011 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.55 Copyright © 2011 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.56 Copyright © 2011 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 tools – cvs – Subversion

Slide 5.57 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved 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.58 Copyright © 2011 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.59 Copyright © 2011 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.60 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Productivity Gains with CASE Tools (contd) 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.61 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Summary of Tools in Chapter 5 Figure 5.14