Prescriptive Software Models Recall Boehm’s paper • Why did they “invent” the waterfall model? – Distinction between programmer and user – Increased application, higher risks – Large systems: development is a group activity • Bring order to chaos: – Increased system and company size requires a design phase – Different end users demands a requirements phase – Need for quality demands an orderly approach Prescriptive models • Several variants of the waterfall model exist – All depend on stable requirements – All focus on deliverables and documentation • These models are still popular today – For contracts that require documentation (DoD, government, etc) – For large systems with many developers – But they frequently “fail” • What are the benefits and drawbacks of each? Types of Prescriptive Models • Waterfall Com m unic a t ion proje c t init ia t ion re quire m e nt ga t he ring Planning es timating sc heduling track ing Mode ling analysis design Const r uc t ion code t est De ploy m e nt de liv e ry s upport f e e dba c k Types of Prescriptive Models • Incremental increment # n Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k deliv ery of nt h increment increment # 2 Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode De p l o y m e n t t es t d e l i v e ry fe e dba c k increment # 1 Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode De p l o y m e n t t es t d e l i v e ry fe e dba c k deliv ery of 1st increment project calendar t ime deliv ery of 2nd increment Types of Prescriptive Models • Rapid Application Development (RAD) Team # n M o d e lin g busines s m odeling dat a m odeling process m odeling C o n s t r u c t io n com ponent reuse aut om at ic code generat ion t est ing Team # 2 Com m unicat ion Mo d eling b u si n e ss m o d e l i n g dat a m odeling p ro ce ss m o d e l i n g Planning Co nst r uct io n Team # 1 co m p o n e n t re u se a u t o m a t i c co d e g e n e ra t i o n t e st i n g Mode ling business modeling dat a modeling process modeling Const r uct ion component reuse aut omat ic code generat ion t est ing 6 0 - 9 0 days De ploym e nt int egrat ion deliv ery feedback Types of Prescriptive Models • Evolutionary models: spiral planning estimation scheduling risk analysis communication modeling analysis design start deployment delivery feedback construction code test Types of Prescriptive Models • Prototyping Qu ick p lan Com m unicat ion Mo d e lin g Qu ick d e sig n Deployment De live r y & Fe e dback Const r uct ion of pr ot ot ype Types of Prescriptive Models • Unified Process Model UP Phases Incept ion Elaborat ion Const ruct ion Transit ion Workflows Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n Product ion In-class exercise • Which prescriptive model would you use to: – Developing software to automatically drive racecars through a track without crashing. This has never been attempted before under software control. The requirements are stable. – Developing software to track the financial bailout. The software requirements are very clear. You need to create a system to perform 3 distinct tasks. All functions will interface with each other and the same underlying database.