660 likes | 671 Views
This lecture provides an introduction to software process models, including build-and-fix, waterfall, rapid prototyping, and incremental models. It emphasizes the importance of people, processes, and tools in software engineering and highlights the essential qualities and potential consequences of software development. The lecture also discusses the strengths and weaknesses of build-and-fix and waterfall models.
E N D
Informatics 43Introduction to Software EngineeringLecture 8-1 November 17, 2015 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
Today’s lecture • Reminders • Software Process Models • Build-and-fix • Waterfall • Rapid Prototyping • Incremental • Homework 3
Today’s lecture • Reminders • Software Process Models • Build-and-fix • Waterfall • Rapid Prototyping • Incremental • Homework 3
Reminder: Essential Ingredients of Software Engineering • People • who else would do the work? • range from novice to very experienced • Processes • to organize and manage the efforts of individuals • range from informal to very formal • Tools • to support the people and the processes • range from simple to very advanced
Reminder: Processes • Essential to achieve a quality product • Scarce resource • quality • suitability • cost • Many different kinds of processes • bug tracking • change approval • quality assurance • software life cycle
More Reminders • Essential qualities • Complexity • Conformity • Changeability • Intangibility • Potentially drastic or disastrous consequences Software engineering is hard, and we need processes to help!
Today’s lecture • Reminders • Software Process Models • Build-and-fix • Waterfall • Rapid Prototyping • Incremental • Homework 3
Processes as a Remedy • Software is engineered via a defined process • Cover all steps from initial idea and requirements to delivery, maintenance, and final retirement • Make sure we do the right things/we do things right • Make sure we do not forget to do anything • Different processes for different kinds of software • Not a silver bullet [Brooks “No Silver Bullet”] • Software is still intrinsically difficult to deal with • Processes help, but cannot guarantee anything Remember: People + Processes + Tools Product
Processes • Elements • Activities (“Phases”) • Artifacts • Requirements document, design document, code, test cases… • Resources • People (their time and their cost) • Tools (their time and their cost) • Relationships between the elements • Precedence, requires, provides, refines to, … • Constraints • Time • Cost • Qualities (repeatable process?)
Fun with Models Fashion Student
Fun with Models Fashion Student Model = Ideal
Fun with Models Model = Simplified Representation Software Process Model Waterfall Prototype Spiral Architecture Model Layered Client Server Model View Controller
Fun with Models Model = Simplified Representation public class Elephant { int weight; // in kg String name; Species species; public void forage() { . . . . } }
What is Software Process Model for? • “Prescriptive” – enforcing rules • “Descriptive” – serving to describe or characterize
Software Life Cycle Models • Build-and-fix • Waterfall • Rapid prototyping • Incremental • Spiral • Rational Unified Process (RUP) • Open Source Software (OSS) • Extreme Programming (XP) • Agile A software life cycle model is a high-level process
Today’s Lecture • Reminders • Software Process Models • Build-and-fix • Waterfall • Rapid Prototyping • Incremental • Homework 3
Build-and-Fix Operations mode Retirement Build first version Modify until client is satisfied Development Maintenance
Build-and-Fix Operations mode Retirement Build first version Modify until client is satisfied Development Maintenance
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
So… • What is it good for? (strengths) • What is it bad for? (weaknesses)
So… • What is it good for? (strengths) • Small programs that do not require much maintenance • What is it bad for? (weaknesses)
So… • What is it good for? (strengths) • Small programs that do not require much maintenance • What is it bad for? (weaknesses) • Any nontrivial project
Today’s Lecture • Reminders • Software Process Models • Build-and-fix • Waterfall • Rapid Prototyping • Incremental • Homework 3
Waterfall • First documented by Royce in 1970 (!) • Has withstood the test of time • Still being used worldwide… • But not without problems…
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement
Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement