Software Engineering. Reading. Effort estimation CS / COE 1530. Finish chapter 3 Start chapter 5

Similar documents
Software Engineering. Dilbert on Project Planning. Overview CS / COE Reading: chapter 3 in textbook Requirements documents due 9/20

TECH. Tracking Progress. Project Schedule PHASE 1 STEP 1 ACTIVITY 1.1. Activity and Milestone STEP 1 STEP 2 : ACTIVITY 2.2 : ACTIVITY 1.

Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

Identifying Factors Affecting Software Development Cost

Topics. Project plan development. The theme. Planning documents. Sections in a typical project plan. Maciaszek, Liong - PSE Chapter 4

SoftwareCostEstimation. Spring,2012

Software cost estimation. Predicting the resources required for a software development process

MTAT Software Economics. Lecture 5: Software Cost Estimation

Cost Estimation Strategies COST ESTIMATION GUIDELINES

How To Manage Project Management

Software cost estimation

COCOMO-SCORM Interactive Courseware Project Cost Modeling

Project Management. Massimo Felici Room 1402, JCMB, KB

CSSE 372 Software Project Management: Software Estimation With COCOMO-II

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Project management. Objectives. Topics covered. Organizing, planning and scheduling software projects DISCUSSION

Chapter 23 Software Cost Estimation

CISC 322 Software Architecture

How To Develop Software

Process Models and Metrics

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

Software cost estimation

Introduction to Embedded Systems. Software Update Problem

ICS 121 Lecture Notes Spring Quarter 96

Software Engineering

Finally, Article 4, Creating the Project Plan describes how to use your insight into project cost and schedule to create a complete project plan.

Software Migration Project Cost Estimation using COCOMO II and Enterprise Architecture Modeling

Software Engineering Question Bank

COCOMO II and Big Data

Karunya University Dept. of Information Technology

Software design (Cont.)

Operating Systems 4 th Class

Masters in Information Technology

Risk Management (3C05/D22) Unit 3: Risk Management. What is risk?

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

Software Testing Interview Questions

Lecture 14: Cost Estimation

10 Keys to Successful Software Projects: An Executive Guide

School of Computer Science

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Patterns in Software Engineering

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

(Refer Slide Time: 01:52)

Chapter 11: Integrationand System Testing

Introduction and Overview

Project management. Objectives

Extending Change Impact Analysis Approach for Change Effort Estimation in the Software Development Phase

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Project Plan 1.0 Airline Reservation System

Chapter 13: Program Development and Programming Languages

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

Cost Estimation Driven Software Development Process

Advanced Analysis and Design

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Course Descriptions. preparation.

IV. Software Lifecycles

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11

Project Planning and Project Estimation Techniques. Naveen Aggarwal

Computer Science Course Descriptions Page 1

Project management. Organising, planning and scheduling software projects. Ian Sommerville 2000 Software Engineering, 6th edition.

Unit 15: Risk Management

NOVA COLLEGE-WIDE COURSE CONTENT SUMMARY ITE INTRODUCTION TO COMPUTER APPLICATIONS & CONCEPTS (3 CR.)

Masters in Human Computer Interaction

Project Management. Lecture 3. Software Engineering CUGS. Spring 2012 (slides made by David Broman) Kristian Sandahl

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Project Plan. Online Book Store. Version 1.0. Vamsi Krishna Mummaneni. CIS 895 MSE Project KSU. Major Professor. Dr.Torben Amtoft

Masters in Networks and Distributed Systems

Masters in Computing and Information Technology

Project management. Organizing, planning and scheduling software projects

Lecture Slides for Managing and Leading Software Projects. Chapter 5: Project Planning Techniques

Chapter 11: Integration- and System Testing

Masters in Artificial Intelligence

Real Time Programming: Concepts

Vendor briefing Business Intelligence and Analytics Platforms Gartner 15 capabilities

IT3205: Fundamentals of Software Engineering (Compulsory)

Software Development Cost and Time Forecasting Using a High Performance Artificial Neural Network Model

Quiz Examination in Software Engineering Theory

Software Development Life Cycle (SDLC)

CSC 408F/CSC2105F Lecture Notes

Pearson Education Limited 2003

Software testing. Objectives

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

Certified Software Quality Engineer (CSQE) Body of Knowledge

Chapter 13: Program Development and Programming Languages

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

Service Oriented Architecture

Application Architectures

CHAPTER 24 SOFTWARE PROJECT SCHEDULING. Overview

Fundamentals of Measurements

Transcription:

Software Engineering CS / COE 1530 Lecture 5 Project Management (finish) & Design CS 1530 Software Engineering Fall 2004 Reading Finish chapter 3 Start chapter 5 CS 1530 Software Engineering Fall 2004 Effort estimation Expert judgment analogy proportion Delphi technique Wolverton model Algorithmic methods: E = (a + bs c ) m(x) S size, X cost vector, m multiplier a,b,c constants Walston and Felix model: E = 5.25S 0.91 Bailey and Basili model: E = 5.5 + 0.73S 1.16 1

Table 3.6. Wolverton model cost matrix. Difficulty Type of software OE OM OH NE NM NH Control 21 27 30 33 40 49 Input/output 17 24 27 28 35 43 Pre/post processor 16 23 26 28 34 42 Algorithm 15 20 22 25 30 35 Data management 24 31 35 37 46 57 Time-critical 75 75 75 75 75 75 Table 3.7. Walston and Felix model productivity factors. 1. Customer interface complexity 16. Use of design and code inspections 2. User participation in requirements 17. Use of top-down development definition 3. Customer-originated program design 18. Use of a chief programmer team changes 4. Customer experience with the 19. Overall complexity of code application area 5. Overall personnel experience 20. Complexity of application processing 6. Percentage of development 21. Complexity of program flow programmers who participated in the design of functional specifications 7. Previous experience with the 22. Overall constraints on program s operational computer design 8. Previous experience with the 23. Design constraints on the program s programming language main storage 9. Previous experience with applications 24. Design constraints on the program s of similar size and complexity timing 10. Ratio of average staff size to project 25. Code for real-time or interactive duration (people per month) operation or for execution under severe time constraints 11. Hardware under concurrent 26. Percentage of code for delivery development 12. Access to development computer open 27. Code classified as nonmathematical under special request application and input/output formatting programs 13. Access to development computer 28. Number of classes of items in the closed database per 1000 lines of code 14. Classified security environment for 29. Number of pages of delivered computer and at least 25% of programs documentation per 1000 lines of code and data 15. Use of structured programming Bailey-Basili technique Minimize standard error estimate to produce an equation such as: E = 5.5 + 0.73S 1.16 Adjust initial estimate based on the ratio of errors. If R is the ratio between the actual effort, E, and the predicted effort, E, then the effort adjustment is defined as ERadj = R 1 if R > 1 = 1 1/R if R < 1 Then adjust the initial effort estimate E: Eadj = (1 + ERadj)E if R > 1 = E/(1 + ERadj) if R < 1 2

Table 3.8. Bailey-Basili effort modifiers. Total methodology (METH) Cumulative complexity (CPLX) Cumulative experience (EXP) Tree charts Customer interface Programmer qualifications complexity Top-down design Application complexity Programmer machine experience Formal documentation Program flow complexity Programmer language experience Chief programmer teams Internal communication complexity Programmer application experience Formal training Database complexity Team experience Formal test plans External communication complexity Design formalisms Customer-initiated program design changes Code reading Unit development folders COCOMO model: stages of development application composition: prototyping to resolve high-risk user interface issues size estimates in object points early design: to explore alternative architectures and concepts size estimates in function points postarchitecture: development has begun size estimates in lines of code TABLE 3.9 Three Stages of COCOMO II Stage 1: Stage 2: Application Early Stage 3: Model Aspect Composition Design Post-architecture Size Application Function points (FP) FP and language or source lines points and language of code (SLOC) Reuse Implicit in Equivalent SLOC as Equivalent SLOC as function of model function of other other variables variables Requirements Implicit in % change expressed as % change expressed as a change model a cost factor cost factor Maintenance Application Function of ACT, software Function of ACT, software Point understanding, understanding, Annual unfamiliarity unfamiliarity Change Traffic Scale (c) in 1.0 0.91 to 1.23, depending 0.91 to 1.23, depending on nominal effort on precedentedness, precedentedness, conformity, equation conformity, early early architecture, risk resolution, architecture, risk team cohesion, and SEI process resolution, team maturity cohesion, and SEI process maturity Product cost None Complexity, required Reliability, database size, drivers reusability documentation needs, required reuse, and product complexity Platform cost None Platform difficulty Execution time constraints, main drivers storage constraints, and virtual machine volatility Personnel None Personnel capability Analyst capability, applications cost drivers and experience experience, programmer capability, programmer experience, language and tool experience, and personnel continuity Project cost None Required development Use of software tools, required drivers schedule, development development schedule, and environment multisite development 3

For Screens Number and source of data tables Number of views contained Total < 4 (<2 server, <3 client) Table 3.10. Application point complexity levels. Total < 8 (2-3 server, 3-5 client) Total 8+ (>3 server, >5 client) For Reports Number of sections contained Number and source of data tables Total < 4 Total < 8 Total 8+ (<2 (2-3 (>3 server, server, 3- server, <3 5 client) >5 client) client) <3 simple simple medium 0 or 1 simple simple medium 3-7 simple medium difficult 2 or 3 simple medium difficult 8 + medium difficult difficult 4 + medium difficult difficult Table 3.11. Complexity weights for application points. Object type Simple Medium Difficult Screen 1 2 3 Report 2 5 8 3GL component - - 10 Table 3.12. Productivity estimate calculation. Developers experience and capability Very low Low Nominal High Very high CASE maturity and capability Very low Low Nominal High Very high Productivity factor 4 7 13 25 50 Table 3.13. Tool use categories. Category Very low Low Nominal High Very high Meaning Edit, code, debug Simple front-end, back-end CASE, little integration Basic life-cycle tools, moderately integrated Strong, mature life-cycle tools, moderately integrated Strong, mature, proactive life-cycle tools, well-integrated with processes, methods, reuse Machine learning techniques Example: case-based reasoning user identifies new problem as a case system retrieves similar cases from repository system reuses knowledge from previous cases system suggests solution for new case Example: neural network cause-effect network trained with data from past history 4

Evaluating models Mean magnitude of relative error (MMRE) absolute value of mean of [(actual - estimate)/actual] goal: should be.25 or less Pred(x/100): percentage of projects for which estimate is within x% of the actual goal: should be.75 or greater for x =.25 Table 3.14. Summary of model performance. Model PRED(0.25) MMRE Walston-Felix 0.30 0.48 Basic COCOMO 0.27 0.60 Intermediate COCOMO 0.63 0.22 Intermediate COCOMO (variation) 0.76 0.19 Bailey-Basili 0.78 0.18 Pfleeger 0.50 0.29 SLIM 0.06-0.24 0.78-1.04 Jensen 0.06-0.33 0.70-1.01 COPMO 0.38-0.63 0.23-5.7 General COPMO 0.78 0.25 Risk management requirements Risk impact: the loss associated with the event Risk probability: the likelihood that the event will occur Risk control: the degree to which we can change the outcome Risk exposure = (risk probability) x (risk impact) 5

Three strategies for risk reduction avoiding the risk: change requirements for performance or functionality transferring the risk: transfer to other system, or buy insurance assuming the risk: accept and control it risk leverage = difference in risk exposure divided by cost of reducing the risk Boehm s top ten risk items Personnel shortfalls Unrealistic schedules and budgets Developing the wrong functions Developing the wrong user interfaces Gold-plating Continuing stream of requirements changes Shortfalls in externally-performed tasks Shortfalls in externally-furnished components Real-time performance shortfalls Straining computer science capabilities Project plan contents project scope project schedule project team organization technical description of system project standards and procedures quality assurance plan configuration management plan documentation plan data management plan resource management plan test plan training plan security plan risk management plan maintenance plan 6

Digital Alpha AXP: Enrollment management model Establish an appropriately large shared vision Delegate completely and elicit specific commitments from participants Inspect vigorously and provide supportive feedback Acknowledge every advance and learn as the program progresses Lockheed Martin: Accountability modeling Matrix organization Each engineer belongs to a functional unit based on type of skill Integrated product development team Combines people from different functional units into interdisciplinary work unit Each activity tracked using cost estimation, critical path analysis, schedule tracking Earned value a common measure for progress Anchoring milestones Objectives: Why is the system being developed? Milestones and schedules: What will be done by when? Responsibilities: Who is responsible for a function? Approach: How will the job be done, technically and managerially? Resources: How much of each resource is needed? Feasibility: Can this be done, and is there a good business reason for doing it? 7

Designing the System CS 1530 Software Engineering Fall 2004 Conceptual design Tells the customer what the system will do Answers: Where will the data come from? What will happen to the data in the system? What will the system look like to users? What choices will be offered to users? What is the timing of events? What will the reports and screens look like? Characteristics of good conceptual design in customer language with no technical jargon describes system functions independent of implementation linked to requirements Technical design Tells the programmers what the system will do Includes: major hardware components and their function hierarchy and function of software components data structures data flow 8

Five ways to create designs Modular decomposition Data-oriented decomposition Event-oriented decomposition Outside-in design Object-oriented design Three design levels Architecture: associates system components with capabilities Code design: specifies algorithms and data structures for each component Executable design: lowest level of design, including memory allocation, data formats, bit patterns Design styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories Interpreters Process control Client-server 9

Example of implicit invocation DEBUG VALUE <system><file><line><var><value> DEBUG ENTER <system><file><func><line><value> DEBUG EXIT <system><file><func><line><value> EVENT ADD <system><id#><event_type><file><line><text> EVENT REMOVE <system><id#><event_type><file><line><text> STOP-ERROR <signal><file><line> DEBUG AT <system><file><func><line> DEBUG FOCUS <system><file><func><line> DEBUG CLEAR <system> DEBUG RESET <system> WHERE <system><level><file><func><line><addr><args> WHERE_DUMP <system><level><name><value> WHERE_BEGIN <system> WHERE_END <system><level> DEBUG SYSTEM <system> DEBUG NOSYSTEM <system> UPDATE <system><file><line> Example of abstraction Rearrange L in non-decreasing order DO WHILE I is between 1 and (length of L)-1: Set LOW to index of smallest value in L(I),..., L(length of L) Interchange L(I) and L(LOW) END DO DO WHILE I is between 1 and (length of L)-1 Set LOW to current value of I DO WHILE J is between I+1 and (length of L)-1: IF L(LOW) is greater than L(J) THEN set LOW to current value of J ENDIF ENDDO Set TEMP to L(LOW) Set L(LOW) to L(I) Set L(I) to TEMP ENDDO Important design issues Modularity and levels of abstraction Collaborative design Designing the user interface metaphors, mental model, navigation rules, look and feel cultural issues user preferences Concurrency Design patterns and reuse 10

Table 5.1. Issues to consider in trade-off analysis. (Lane, in Shaw and Garlan 1996) Functional dimensions External event handling: No external events Process events while waiting for input External events preempt user commands User customizability High Medium Low User interface adaptability across devices None Local behavior changes Global behavior change Application semantics change Computer system organization Uniprocessing Multiprocessing Distributed processing Basic interface class Menu selection Form filling Command language Natural language Direct manipulation Application portability across user interface styles High Medium Low Structural dimensions Application interface abstraction level Monolithic program Abstract device Toolkit Interaction manager with fixed data types Interaction manager with extensible data types Extensible interaction manager Abstract device variability Ideal device Parameterized device Device with variable operations Ad hoc device Notation for user interface definition Implicit in shared user interface code Implicit in application code External declarative notation External procedural notation Internal declarative notation Internal procedural notation Basis of communication Events Pure state State with hints State plus events Control thread mechanisms None Standard processes Lightweight processes Non-preemptive processes Event handlers Interrupt service routines Characteristics of good design Component independence coupling cohesion Exception identification and handling Fault prevention and tolerance active passive Techniques for improving design Reducing complexity Design by contract Prototyping design Fault-tree analysis 11

Design evaluation and validation Mathematical validation Measuring design quality Comparing designs one specification, many designs comparison table Design reviews Table 5.5. Weighted comparison of Shaw and Garlan designs. Attribute Priority Shared Abstract data Implicit Pipe and filter data type invocation Easy to change 1 1 2 4 5 algorithm Easy to change 4 1 5 2 1 data representation Easy to change 3 4 1 4 5 function Good 3 5 4 2 2 performance Easy to reuse 5 1 4 2 5 Design reviews Preliminary design review examines conceptual design with customer and users Critical design review presents technical design to developers Program design review programmers get feedback on their designs before implementation 12

Questions for any design review Is it a solution to the problem? Is it modular, well-structured, and easy to understand? Can we improve the structure and understandability? Is it portable to other platforms? Is it reusable? Is it easy to modify or expand? Does it support ease of testing? Does it maximize performance, where appropriate? Does it reuse components from other projects, where appropriate? Are the algorithms appropriate, or can they be improved? If this system is to have a phased development, are the phases interfaced sufficiently so that there is an easy transition from one phase to the next? Is it well-documented, including design choices and rationale? Does it cross-reference the components and data with the requirements? Does it use appropriate techniques for handling faults and preventing failures? Documenting the design design rationale menus and other display-screen formats human interfaces: function keys, touch screen descriptions, keyboard layouts, use of a mouse or joystick report formats input: where data come from, how they are formatted, on what media they are stored output: where data are sent, how they are formatted, on what media they are stored general functional characteristics performance constraints archival procedures fault-handling approach 13