【正文】
the development and delivery is broken down into increments with each increment delivering part of the required functionality ? User requirements are prioritised and the highest priority requirements are included in early increments ? Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve 55 Incremental development 56 V a l i d a t ei n c r e m e n tD e v e l o p s y s t e mi n c r e m e n tD e s i g n s y s t e ma r c h i t e c t u r eI n t e g r a t ei n c r e m e n tV a l i d a t es y s t e mD e f i n e o u t l i n e r e q u i r e m e n t sA s s i g n r e q u i r e m e n t s t o i n c r e m e n t sS y s t e m i n c o m p l e t eF i n a ls y s t e mIncremental development advantages ? Customer value can be delivered with each increment so system functionality is available earlier ? Early increments act as a prototype to help elicit requirements for later increments ? Lower risk of overall project failure ? The highest priority system services tend to receive the most testing 57 Extreme programming (終極 programming) ? One hot process in recent years. ? New approach to development based on the development and delivery of very small increments of functionality ? Relies on constant code improvement, user involvement in the development team and pairwise programming ? extreme programming believes 既然軟體變動難以避免。計畫常常變的沒有用,那麼就別詳細的計畫浪費時間。只有粗略的計畫。 58 Spiral development ? Process is represented as a spiral rather than as a sequence of activities with backtracking ? Each loop in the spiral represents a phase in the process. ? No fixed phases such as specification or design loops in the spiral are chosen depending on what is required ? Risks are explicitly assessed and resolved throughout the process 59 Spiral model of the software process 60 R i s ka n a l y s i sR i s ka n a l y s i sR i s ka n a l y s i sRi s kan a l y s i sP r o t o t y p e 1P r o t o t y p e 2P r o t o t y p e 3O p e r a t i o n a lp r o t o y p eC o n c e p t o fO p e r a t i o nS i m u l a t i o n s , m o d e l s , b e n c h m a r k sS / Wr e q u i r e m e n t sR e q u i r e m e n tv a l i d a t i o nD e s i g nV amp。 VP r o d u c td e s i g nD e t a i l e dd e s i g nC o d eU n i t t e s tI n t e g r a t i o nt e s tA c c e p t a n c et e s tS e r v i c eD e v e l o p , v e r i f yn e x t l e v e l p r o d u c tE v a l u a t e a l t e r n a t i v e si d e n t i f y , r e s o l v e r i s k sD e t e r m i n e o b j e c t i v e sa l t e r n a t i v e s a n dc o n s t r a i n t sP l a n n e x t p h a s eI n t e g r a t i o na n d t e s t p l a nD e v e l o p m e n tp l a nR e q u i r e m e n t s p l a nL i f e c y c l e p l a nR E V I E WSpiral model sectors ? Objective setting – Specific objectives for the phase are identified ? Risk assessment and reduction – Risks are assessed and activities put in place to reduce the key risks ? Development and validation – A development model for the system is chosen which can be any of the generic models ? Planning – The project is reviewed and the next phase of the spiral is planned 61 Software specification ? The process of establishing what services are required and the constraints on the system’s operation and development ? Requirements engineering process – Feasibility study – Requirements elicitation and analysis – Requirements specification – Requirements validation 62 Formal systems development (正規(guī)系統(tǒng)開發(fā)) ? Based on the transformation of a mathematical specification through different representations to an executable program ? Transformations are ‘correctnesspreserving’ so it is straightforward to show that the program conforms to its specification ? Embodied in the ‘Cleanroom’ approach to software development 63 Formal methods ? suitable for systems which require high reliability. ? The problems: – Formal specification is difficult to use in practice. – Too many software features cannot be described and defined in mathematical specification – writing formal specification requires high skills 64