Requirements Engineering CSE 491 602 Fall 2006 Instructor

  • Slides: 48
Download presentation
Requirements Engineering CSE 491 -602 (Fall 2006) Instructor: Dr. B. Cheng © 2006 -07

Requirements Engineering CSE 491 -602 (Fall 2006) Instructor: Dr. B. Cheng © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Acknowledgments l l l Waterloo Software Engineering Team (Atlee, Berry, Day, Svetinovic, Godfrey Steve

Acknowledgments l l l Waterloo Software Engineering Team (Atlee, Berry, Day, Svetinovic, Godfrey Steve Easterbrook Tony Torre, Detroit Diesel Corp. © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

What is Software Engineering ? ? ? l The study of systematic and effective

What is Software Engineering ? ? ? l The study of systematic and effective processes and technologies for supporting software development and maintenance activities n Improve quality n Reduce costs © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Historical Perspective l 1940 s: computers invented l 1950 s: assembly language, Fortran l

Historical Perspective l 1940 s: computers invented l 1950 s: assembly language, Fortran l 1960 s: COBOL, ALGOL, PL/1, operating systems 1969: First conference on Software Eng l 1970 s: multi-user systems, databases, structured programming © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Historical Perspective (cont. ) l 1980 s: networking, personal computing, embedded systems, parallel architectures

Historical Perspective (cont. ) l 1980 s: networking, personal computing, embedded systems, parallel architectures l 1990 s: information superhighway, distributed systems, OO in widespread use. l 2000 s: virtual reality, voice recognition, video conferencing, global computing, . . . © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Hardware Costs vs Software Costs (% of overall costs) s/w costs h/w costs Time

Hardware Costs vs Software Costs (% of overall costs) s/w costs h/w costs Time © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Why is software so expensive? l Hardware has made great advances l But, software

Why is software so expensive? l Hardware has made great advances l But, software has made great advances. . . l We do the least understood tasks in software l When task is simple & understood, encode it in hardware l Demand more of software © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Size of programs continues to grow l Trivial: 1 month, 1 programmer, 500 LOC,

Size of programs continues to grow l Trivial: 1 month, 1 programmer, 500 LOC, n l Very small: 4 months, 1 programmer, 2000 LOC n l Course project Small: 2 years, 3 programmers, 50 K LOC n l Intro programming assignments Nuclear power plant, pace maker Medium: 3 years, 10 s of programmers, 100 K LOC n Optimizing compiler © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Size of programs continues to grow * l Large: 5 years, 100 s of

Size of programs continues to grow * l Large: 5 years, 100 s of programmers, 1 M LOC n l l MS Word, Excel Very large: 10 years, 1000 s of programmers, 10 M LOC n Air traffic control, n Telecommunications, space shuttle Unbelievable: ? years, ? programmers, 35 M LOC n W 2 K © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Goals of this Course l Gain a better understanding of requirements and requirements engineering

Goals of this Course l Gain a better understanding of requirements and requirements engineering l Expose you to some of the RE techniques that have been found to be effective l Give you hands-on experience with performing requirements engineering © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Overview of Course l l l Emphasis on analysis and design Learn/apply new techniques

Overview of Course l l l Emphasis on analysis and design Learn/apply new techniques for engineering requirements Learn to work with a group Improve technical writing skills Become up to date on current trends in RE Explore presentation media and techniques © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

What’s the problem? l l Software cannot be built fast enough to keep up

What’s the problem? l l Software cannot be built fast enough to keep up with n H/W advances n Rising expectations n Feature explosion Increasing need for high reliability software n Cell phones n Transportation systems (cars, planes, trains) n Information systems (medical records, financial/banking) © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

What’s the problem? l Software is difficult to maintain “aging software” l Difficult to

What’s the problem? l Software is difficult to maintain “aging software” l Difficult to estimate software costs and schedules l Too many projects fail n Arianne Missile n Denver Airport Baggage System n Therac-25 © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Why is software engineering needed? l To predict time, effort, and cost l To

Why is software engineering needed? l To predict time, effort, and cost l To improve software quality l To improve maintainability l To meet increasing demands l To lower software costs l To successfully build large, complex software systems l To facilitate group effort in developing software © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Structure of Course l l Weekly reading assignments Short assignments n n l l

Structure of Course l l Weekly reading assignments Short assignments n n l l l Written critiques over reading assignments Specification and modeling problems Group projects (prototype, analysis) Two - one hour exams (mid-semester and end) Presentations: oral presentations, prototype demos © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Grading of course Exams (2) n Homework and Design Exercises n Term project =

Grading of course Exams (2) n Homework and Design Exercises n Term project = n Class participation n = 40% = 35% 20% = 5% u Attendance u Participation in class discussion © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Software Engineering A Brief Introduction © 2006 -07 Betty H. C. Cheng. This presentation

Software Engineering A Brief Introduction © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l

Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities: Throughout lifecycle © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Definition l Requirements definition and analysis n Developer must understand u Application domain u

Definition l Requirements definition and analysis n Developer must understand u Application domain u Required functionality u Required performance u User interface © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Definition (cont. ) l Project planning n n Allocate resources Estimate costs Define work

Definition (cont. ) l Project planning n n Allocate resources Estimate costs Define work tasks Define schedule l System analysis n Allocate system resources to u Hardware u Software u Users © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Development l Software design n User interface design n High-level design n u Define

Development l Software design n User interface design n High-level design n u Define modular components u Define major data structures Detailed design u Define algorithms and procedural detail © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Development (cont. ) l Coding n n l Integration Develop code for each n

Development (cont. ) l Coding n n l Integration Develop code for each n Combine modules module n System testing Unit testing © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Maintenance l Correction - Fix software defects l Adaptation - Accommodate changes n New

Maintenance l Correction - Fix software defects l Adaptation - Accommodate changes n New hardware n New company policies l Enhancement - Add functionality l Prevention - make more maintainable © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Umbrella Activities l Reviews - assure quality l Documentation - improve maintainability l Version

Umbrella Activities l Reviews - assure quality l Documentation - improve maintainability l Version control - track changes l Configuration management - integrity of collection of components © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Software Engineering Costs © 2006 -07 Betty H. C. Cheng. This presentation is available

Software Engineering Costs © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Relative Costs to Fix Errors This is why software process pays off © 2006

Relative Costs to Fix Errors This is why software process pays off © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Waterfall Process Model Requirements Design Coding Testing Maintenance © 2006 -07 Betty H. C.

Waterfall Process Model Requirements Design Coding Testing Maintenance © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Prototyping Process Model Requirements Quick Design Prototype Evaluate Design © 2006 -07 Betty H.

Prototyping Process Model Requirements Quick Design Prototype Evaluate Design © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

When to use prototyping? l l Help the customer pin down the requirements n

When to use prototyping? l l Help the customer pin down the requirements n Concrete model to “test out” n Often done via the user interface Explore alternative solutions to a troublesome component n l e. g. , determine if an approach gives acceptable performance Improve morale n Partially running system provides visibility into a project NEVER Press a prototype into production © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Spiral Process Model Planning Customer Evaluation Risk Analysis Engineering © 2006 -07 Betty H.

Spiral Process Model Planning Customer Evaluation Risk Analysis Engineering © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Process Models l Idealized views of the process l Different models are often used

Process Models l Idealized views of the process l Different models are often used for different subprocesses n may use spiral model for overall development prototyping for a particularly complex component u waterfall model for other components u See Evolution of the Frameworks Quagmire, Computer, July 2001, p. 96 © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Capability Maturity Model l Level 1: Initial n l success depends on people Level

Capability Maturity Model l Level 1: Initial n l success depends on people Level 2: Repeatable n l track cost, schedule, functionality Level 4: Managed n l Level 5: Optimizing n l Level 3: Defined n use standardized processes collect detailed metrics n continuous process improvement “built-in” process improvement © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Why is software development so difficult? l Communication n Between customer and developer u

Why is software development so difficult? l Communication n Between customer and developer u n Poor problem definition is largest cause of failed software projects l Project characteristics n n u u Within development team u u More people = more communication New programmers need training Novelty Changing requirements n n 5 x cost during development up to 100 x cost during maintenance Hardware/software configuration Security requirements Real time requirements Reliability requirements © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Why is software development difficult? l Personnel characteristics n n n l Ability Prior

Why is software development difficult? l Personnel characteristics n n n l Ability Prior experience Communication skills Team cooperation Training Facilities and resources n n Identification Acquisition l Management issues n n n n Realistic goals Cost estimation Scheduling Resource allocation Quality assurance Version control Contracts © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. (cont. )

Summary l Software lifecycle consist of n n n l Different process models concentrate

Summary l Software lifecycle consist of n n n l Different process models concentrate on different aspects n n n l Definition (what) Development (how) Maintenance (change) Waterfall model: maintainability Prototype model: clarifying requirements Spiral model: identifying risk Maintenance costs much more than development © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Bottom Line l U. S. software is a major part of our societal infrastructure

Bottom Line l U. S. software is a major part of our societal infrastructure n l Costs upwards of $200 billion/year Need to n n Improve software quality Reduce software costs/risks © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Systems Engineering © 2006 -07 Betty H. C. Cheng. This presentation is available free

Systems Engineering © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Computer System Engineering * Customer goals; constraints Derive representation that can be allocated Allocate

Computer System Engineering * Customer goals; constraints Derive representation that can be allocated Allocate functions to system elements Itemize Functions Analyze Functions Problem solving © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Criteria for System Configuration: Technical l Technical Analysis: (existence of necessary technology, function and

Criteria for System Configuration: Technical l Technical Analysis: (existence of necessary technology, function and performance assured, maintainability) l Environmental Interfaces: (proposed configuration integrate with external environment, interoperability) l Off-the-shelf options must be considered. l Manufacturing evaluation: (facilities and equipment available, quality assured? ) © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Criteria for System Configuration: Business Issues l Project Considerations: (cost, schedules, risks) l Business

Criteria for System Configuration: Business Issues l Project Considerations: (cost, schedules, risks) l Business Considerations: (marketability, profitability) l Legal Considerations: (liability, proprietary issues, infringement? ) l Human issues: (personnel trained? political problems, customer understanding of problem) © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Hardware and Hardware Engineering test results Well defined © 2006 -07 Betty H. C.

Hardware and Hardware Engineering test results Well defined © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Hardware Engineering l Phases to system engineering of hardware: n Development Planning and requirements

Hardware Engineering l Phases to system engineering of hardware: n Development Planning and requirements analysis: u u n best classes of hardware for problem, availability of hardware type of interface required identification of what needs to be designed and built Establish a Plan or "road map" for design implementation u u May involve a hardware specification. Use CAE/CAD to develop a prototype (breadboard) Develop printed circuit (PC) boards Manufacturing of boards © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Software and Software Engineering l l l Function may be the implementation of a

Software and Software Engineering l l l Function may be the implementation of a sequential procedure for data manipulation Performance may not be explicitly defined (exception in real-time systems) Software element of computer-based system consists of two classes of programs, data, and documentation n Application_Software: u n implements the procedure that is required to accommodate information processing functions System Software: u implements control functions that enable application software to interface with other system elements © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Three high-level phases of Software Engineering l Definition phase: n Software planning step u

Three high-level phases of Software Engineering l Definition phase: n Software planning step u u n u u u n scope of project, risk, resource identification cost and schedule estimates Software Requirements Analysis u Software Project Plan Requirements Specification System element allocated to software is defined in detail. Formal information domain analysis to establish models of information flow and structure (expand to produce specification) Prototype of software is built and evaluated by customer Performance requirements or resource limits defined in terms of software characteristics Definition and Requirements must be performed in cooperation © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Third Phase of Software Engineering l Development Phase: n Translate set of requirements into

Third Phase of Software Engineering l Development Phase: n Translate set of requirements into an operational system element u u n l Design Specification Coding (appropriate programming language or CASE tool) Should be able to directly trace detail design descriptions from code. Verification, release, and maintenance phase: n Testing software: u n n Testing Plan to find maximum number of errors before shipping Prepare software for release Quality Assurance Maintain software throughout its lifetime © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Structured Design: Design Issues l Modularity Criteria: n n n Decomposability: decompose large problem

Structured Design: Design Issues l Modularity Criteria: n n n Decomposability: decompose large problem into easier to solve subproblems Composability: how well modules can be reused to create other systems Understandability: how easily understood without other reference info Continuity: make small changes and have them reflected in corresponding changes in one or a few modules Protection: architectural characteristic to reduce propagation of side effects of a given error in a module. © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Design Issues l Basic Design Principle: n n n Linguistic modular units: correspond to

Design Issues l Basic Design Principle: n n n Linguistic modular units: correspond to syntactic units in implementation language Few interfaces: minimize the number of interfaces between modules Small interfaces (weak coupling): minimize amount of info moving across interfaces Explicit interfaces: when modules do interact, should be in obvious way Information hiding: all info about module is hidden from outside access © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.

Design Postprocessing l After Transaction or transform analysis: complete documentation to be l l

Design Postprocessing l After Transaction or transform analysis: complete documentation to be l l l included as part of architectural design Processing narrative for each module Interface description for each module Definition of local and global data structures Description of all design restrictions Perform review of preliminary design "optimization" (as required or necessary) © 2006 -07 Betty H. C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license.