Object-Oriented Software Engineering THE TOOLS OF THE TRADE CHAPTER 5. Stephen R. Schach srs@vuse.vanderbilt.edu. 5.1 Stepwise Refinement.



Similar documents
Object-Oriented Software Engineering

Slide 2.1. Slide 2.3. Slide 2.5

Object-Oriented and Classical Software Engineering

Example IEEE software project management plan (SPMP)

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

Configuration & Build Management

CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

What is a life cycle model?

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

Software Configuration Management. Addendum zu Kapitel 13

Project Planning and Project Estimation Techniques. Naveen Aggarwal

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

GE Fanuc Automation CIMPLICITY

10.1 Determining What the Client Needs. Determining What the Client Needs (contd) Determining What the Client Needs (contd)

Chapter 13: Program Development and Programming Languages

Chapter 13 Configuration Management

To introduce software process models To describe three generic process models and when they may be used

Computer Organization

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Introduction to Visual Basic

System Structures. Services Interface Structure

CDC UNIFIED PROCESS JOB AID

Software Development Tools & Environments

Using Karel with Eclipse

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Software Engineering. What is a system?

Software testing. Objectives

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Terms and Definitions for CMS Administrators, Architects, and Developers

Building Applications Using Micro Focus COBOL

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

CHAPTER 02 SOFTWARE LIFE-CYCLE MODELS

IV. Software Lifecycles

Software Engineering talk

Introduction to the course, Eclipse and Python

Pseudo code Tutorial and Exercises Teacher s Version

Chapter 12. Development Tools for Microcontroller Applications

Software Processes. Topics covered

A system is a set of integrated components interacting with each other to serve a common purpose.

Instrumentation Software Profiling

Configuration management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 29 Slide 1

Chapter 13: Program Development and Programming Languages

Before you can use the Duke Ambient environment to start working on your projects or

Operating System Structures

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

Peer Review Process Description

CASE workbenches. . Software tools to support specific process phases. Objectives. Chapter 26. Chapter 26 CASE Workbenches

Testing, Debugging, and Verification

For Introduction to Java Programming, 5E By Y. Daniel Liang

Fourth generation techniques (4GT)

What is BPM? Software tools enabling BPM

Example of Standard API

(Refer Slide Time: 01:52)

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Analysis Of Source Lines Of Code(SLOC) Metric

CommonSpot Content Server Version 6.2 Release Notes

Test Executive And Development Studio Integrated Test Executive and Application Development Environment

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Business Insight Report Authoring Getting Started Guide

Peer Review Process Description

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

F15. Towards a More Mature Test Process. Anne Mette-Hass. P r e s e n t a t i o n

Object-Oriented and Classical Software Engineering

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

Overview and History of Software Engineering

The Elective Part of the NSS ICT Curriculum D. Software Development

How To Use Syntheticys User Management On A Pc Or Mac Or Macbook Powerbook (For Mac) On A Computer Or Mac (For Pc Or Pc) On Your Computer Or Ipa (For Ipa) On An Pc Or Ipad

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

Xcode Project Management Guide. (Legacy)

Designing and Developing Microsoft SharePoint Server 2010 Applications (MS10232)

Axivion Bauhaus Suite Technical Factsheet

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

CHAPTER 11 REQUIREMENTS

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

CS3600 SYSTEMS AND NETWORKS

Introduction to Automated Testing

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

IAR Embedded Workbench

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

OPERATING SYSTEM SERVICES

Model Based System Engineering (MBSE) For Accelerating Software Development Cycle

Glossary of Object Oriented Terms

Modeling Guidelines Manual

Systems Engineering and Integration for the NSG (SEIN) SharePoint Developer

<Insert Picture Here>

Freescale Semiconductor, I

Special Edition for FastTrack Software

Theme 1 Software Processes. Software Configuration Management

Transcription:

Slide 5.1 CHAPTER 5 Slide 5.2 Object-Oriented Software Engineering THE TOOLS OF THE TRADE WCB/McGraw-Hill, 2008 Stephen R. Schach srs@vuse.vanderbilt.edu Overview Slide 5.3 5.1 Stepwise Refinement Slide 5.4 Stepwise refinement skim - Cost benefit analysis skim - Software metrics CASE Taxonomy of CASE Scope of CASE Software versions Configuration control Build tools Productivity gains with CASE technology 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 Miller s law (1956) A human being can concentrate on 7 ± 2 items at a time 5.1.1 Stepwise Refinement Mini Case Study Slide 5.5 Typical File of Input Transactions Slide 5.6 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, and by transaction code within alphabetical order Figure 5.1 1

Decompose Process Slide 5.7 First Refinement Slide 5.8 Figure 5.3 No further refinement is possible Figure 5.2 Slide 5.9 Slide 5.10 Assumptions INPUT - we believe we can produce the right record when needed by PROCESS and OUTPUT - we believe we can write the correct record to the correct file at the right time when PROCESS says to What is this PROCESS? Example: concentrate on PROCESS Figure 5.4 Slide 5.11 Second Refinement Slide 5.12 More formally: Figure 5.5 Figure 5.6 2

Third Refinement Slide 5.13 Slide 5.14 Now we work on refinement of I/O boxes. But this design has a major fault. Consider 2 Jones and 3 Jones The third refinement is WRONG Modify JONES followed by Delete JONES is incorrectly handled We find this because we check each successive refinement before proceeding to the next If a fault is found, go back to previous refinement and proceed from there to create another third refinement Figure 5.7 Slide 5.15 Appraisal of Stepwise Refinement Slide 5.16 After the third refinement has been corrected Details like opening and closing files have been ignored up to now Fix these in the fourth refinement after the logic of the design is complete The stage at which an item is handled is vital Opening and closing files is Ignored in early steps (to keep within Miller s Law s limits, but Essential later A basic principle used in Every workflow Every representation The power of stepwise refinement The software engineer can concentrate on the relevant aspects Warning Miller s Law is a fundamental restriction on the mental powers of human beings 5.2 Cost Benefit Analysis Slide 5.17 5.3 Software Metrics - skim Slide 5.18 Outside of scope of this class Outside of scope of this course Used for project and process management and improvement To detect problems early, it is essential to measure Examples: LOC per month Defects per 1000 lines of code 3

Different Types of Metrics - skim Slide 5.19 The Five Basic Metrics - skim Slide 5.20 Product metrics Examples:» Size of product» Reliability of product Process metrics Example:» Efficiency of fault detection during development Metrics specific to a given workflow Example:» Number of defects detected per hour in specification reviews Size In lines of code, or better Cost In dollars Duration In months Effort In person months Quality Number of faults detected 5.4 CASE (Computer-Aided Software Engineering) Slide 5.21 5.5 Taxonomy of CASE Slide 5.22 Scope of CASE (not A for automated) CASE can support the entire life-cycle» Estimating resource req.» Drawing up the req. specification doc.» Performing integration testing» Writing the user manual» Etc. Tool - product that assists in just one aspect of the creation of software UpperCASE (front-end tool such as during requirements, analysis, design workflows) versus LowerCASE (back-end tool such as during implementation workflow and postdelivery maintenance) The computer assists with drudge work It manages all the details Human intervention still needed Some Useful Tools Slide 5.23 Taxonomy of CASE (contd) Slide 5.24 Data dictionary Computerized list of all data defined within the product» Variable name, type, definition location, description» Procedure name, parameters, parameter types, prototype desc Consistency checker - checks that every data item is found in the design and every design item has been defined in spec. doc. Report generator, screen generator - produces code for report or for screen capture of data (a) Tool versus (b) workbench (Software through Pictures) versus (c) environment (Oracle Developer Suite) Figure 5.9 4

5.6 Scope of CASE Slide 5.25 Scope of CASE (contd) Slide 5.26 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 Programmers need to have: General purpose tools» E-mail systems» Spreadsheets» Word processors Coding tools» Structure editors - understands the implementation language» Pretty printers - part of structure editor that formats code for good visual appearance» Online interface checkers - part of structure editor that checks full interface information (method names, # parms, parm types) sometimes with template generation when method name is typed Online Interface Checker Slide 5.27 Online Interface Checker (contd) Slide 5.28 Programming-in-the-small (programming at the individual module level by 1 programmer) uses structure editors and pretty printers Interface checking is an important part of programming-in-the-large (programming multiple modules which involves aspects of architecture and integration) and of programming-in-the-many (sw production by a team involves both aspects of programming-in-the-small and programmingin-the-large) Example The user enters the call average = dataarray.computeaverage (numberofvalues); The editor immediately responds Method computeaverage not known The programmer is given two choices Correct the name of the method to computemean Declare new procedure computeaverage and specify its parameters This enables full interface checking Online Interface Checker (contd) Slide 5.29 Online Interface Checker (contd) Slide 5.30 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 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 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 Essential when software is produced by a team If one programmer changes an interface specification, all components calling that changed artifact must be disabled 5

Online Interface Checker (contd) Slide 5.31 Operating System Front-End in Editor Slide 5.32 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 Solution: Incorporate an operating system frontend into the structure editor Single command go or run Use of the mouse to choose» An icon, or» A menu selection This one command causes the editor to invoke the compiler, linker, loader, and execute the product Source Level Debugger Slide 5.33 Source Level Debugger (contd) Slide 5.34 Example: Product executes terminates abruptly and prints Overflow at 4B06 or Core dumped or Segmentation fault The programmer works in a high-level language, but must examine Machine-code core dumps Assembler listings Linker listings Similar low-level documentation This destroys the advantage of programming in a high-level language We need An interactive source level debugger (like dbx) Source Level Debugger (contd) Slide 5.35 Programming Workbench Slide 5.36 Output from a typical source-level debugger Structure editor with Pretty printer Online interface checking capabilities Operating system front-end Online documentation Source level debugger Figure 5.10 This constitutes a simple programming environment 6

Programming Workbench (contd) Slide 5.37 5.7 Software Versions Slide 5.38 This is by no means new All the above features are supported by FLOW (1980) The technology has been in place for years Surprisingly, some programmers still implement code the old-fashioned way Commercial - Sun Java Studio Open-source - Eclipse 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 (written to replace its predecessor) and Variations (designed to coexist) 5.7.1 Revisions Slide 5.39 5.7.2 Variations Slide 5.40 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 A variation is a version for a different operating system hardware Variations are designed to coexist in parallel Perfective and adaptive maintenance also result in revisions Figure 5.11 5.8 Configuration Control Slide 5.41 Version-Control Tool Slide 5.42 Every code artifact exists in three forms Source code Compiled code (object) Executable load image Configuration A version of each artifact from which a given version of a product is built Figure 5.12 Essential for programming-in-the-many A first step toward configuration management A version-control tool must handle Updates Parallel versions 7

Version-Control Tool (contd) Slide 5.43 Version-Control Tool (contd) Slide 5.44 Notation for file name, revision, and variation Problem of multiple variations Deltas (list of differences from stored variation to another variation) Version control is not enough because of maintenance issues we need configuration control Figure 5.13 5.8.1 Configuration Control during Postdelivery Maintenance Slide 5.45 5.8.2 Baselines Slide 5.46 Two programmers are working on the same artifact mdual/16 (mdual version 16) The changes of the first programmer approved and are saved as mdual/17 The changes of the second programmer are approved and saved as mdual/18 The changes of the first programmer are lost The maintenance manager must set up Baseline (set of versions of all artifacts in product) Private workspaces (place where prog. Investigates maintenance ideas) When an artifact is to be changed, the current version is frozen by one programmer Thereafter, it can never be changed Baselines (contd) Slide 5.47 5.8.3 Configuration Control during Development Slide 5.48 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 While an artifact is being coded The programmer performs informal unit testing Then the artifact is given to the SQA group for methodical testing An artifact must be subject to configuration control from the time it is passed by SQA 8

Configuration-Control Tools Slide 5.49 5.9 Build Tools Slide 5.50 UNIX version-control tools sccs rcs cvs subversion (svn) Popular commercial configuration-control tools PVCS SourceSafe Open-source configuration-control tool cvs subversion If no configuration control tool, then use version control with build tool - example UNIX make A build tool compares the date and time stamp on Source code, compiled code It calls the appropriate compiler only if necessary The tool then compares the date and time stamp on Compiled code, executable load image It calls the linker only if necessary 5.10 Productivity Gains with CASE Tools Survey of 45 companies in 10 industries (Myers, 1992) Half information systems Quarter scientific software Quarter real-time aerospace software Slide 5.51 Productivity Gains with CASE Tools (contd) Justifications for CASE Faster development Fewer faults Easier maintenance Improved morale Slide 5.52 Results About 10% annual productivity gains Cost of introducing CASE technology: $125,000 per user 5.10 Productivity Gains with CASE Tools Slide 5.53 Summary of Tools in Chapter 5 Slide 5.54 Newer results on fifteen Fortune 500 companies (1997) It is vital to have Training, and A software process Results confirm that CASE environments should be used at CMM level 3 (managerial and technical aspects are defined and measured, improvements are attempted, and reviews are used for quality) or higher A fool with a tool is still a fool Figure 5.14 9