
Requirements Engineering CSE491-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 ? 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 ??? ? The study of systematic and effective processes and technologies for supporting software development and maintenance activities ? Improve quality ? Reduce costs © 2006-07 Betty H.C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Historical Perspective ? 1940s: computers invented ? 1950s: assembly language, Fortran ? 1960s: COBOL, ALGOL, PL/1, operating systems 1969: First conference on Software Eng ? 1970s: 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.) ? 1980s: networking, personal computing, embedded systems, parallel architectures ? 1990s: information superhighway, distributed systems, OO in widespread use. ? 2000s: 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 © 2006-07 Betty H.C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 Why is software so expensive? ? Hardware has made great advances ? But, software has made great advances ... ? We do the least understood tasks in software ? When task is simple & understood, encode it in hardware ? Demand more and 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 ? Trivial: 1 month, 1 programmer, 500 LOC, ? Intro programming assignments ? Very small: 4 months, 1 programmer, 2000 LOC ? Course project ? Small: 2 years, 3 programmers, 50K LOC ? Nuclear power plant, pace maker ? Medium: 3 years, 10s of programmers, 100K LOC ? 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 * ? Large: 5 years, 100s of programmers, 1M LOC ? MS Word, Excel ? Very large: 10 years, 1000s of programmers, 10M LOC ? Air traffic control, ? Telecommunications, space shuttle ? Unbelievable: ? years, ? programmers, 35M LOC ? W2K © 2006-07 Betty H.C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 Goals of this Course ? Gain a better understanding of requirements and requirements engineering ? Expose you to some of the RE techniques that have been found to be effective ? 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 ? 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? ? Software cannot be built fast enough to keep up with ? H/W advances ? Rising expectations ? Feature explosion ? Increasing need for high reliability software ? Cell phones ? Transportation systems (cars, planes, trains) ? 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. 4 What’s the problem? ? Software is difficult to maintain “aging software” ? Difficult to estimate software costs and schedules ? Too many projects fail ? Arianne Missile ? Denver Airport Baggage System ? 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? ? To predict time, effort, and cost ? To improve software quality ? To improve maintainability ? To meet increasing demands ? To lower software costs ? To successfully build large, complex software systems ? 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 ? Weekly reading assignments ? Short assignments ? 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. 5 Grading of course ? Exams (2) = 40% ? Homework and Design Exercises = 35% ? Term project = 20% ? Class participation = 5% ? Attendance ? 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 is available free for non-commercial use with attribution under a creative commons license. Software Engineering Phases ? Definition: What? ? Development: How? ? Maintenance: Managing change ? 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. 6 Definition ? Requirements definition and analysis ? Developer must understand ? Application domain ? Required functionality ? Required performance ? 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.) ? Project planning ? System analysis ? Allocate resources ? Allocate system ? Estimate costs resources to ? Define work tasks ? Hardware ? Define schedule ? Software ? Users © 2006-07 Betty H.C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. Development ? Software design ? User interface design ? High-level design ? Define modular components ? Define major data structures ? Detailed design ? 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. 7 Development (cont.) ? Coding ? Integration ? Develop code for each ? Combine modules module ? 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 ? Correction - Fix software defects ? Adaptation - Accommodate changes ? New hardware ? New company policies ? Enhancement - Add functionality ? 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 ? Reviews - assure quality ? Documentation - improve maintainability ? Version control - track changes ? 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. 8 Software Engineering Costs Maintenance Development Defintiion © 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 80 70 60 50 40 Cost 30 20 10 0 Code Design Testing Delivery Requirements © 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. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 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? ? Help the customer pin down the requirements ? Concrete model to “test out” ? Often done via the user interface ? Explore alternative solutions to a troublesome component ? e.g., determine if an approach gives acceptable performance ? Improve morale ? 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
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages16 Page
-
File Size-