PI2134 Software Engineering IT Telkom Definition Model Process ◦ Waterfall Model ◦ Incremental Model Incremental Model RAD Model ◦ Evolutionary Model Prototyping Model Spiral Model ◦ Component Based Development ◦ V Shapes Model ◦ The Unified Process Software Model Process is an abstract representation of a software process. Software Model Process provide a useful roadmap for software engineering work All software models can accommodate the generic framework activity (fundamental activity) in SE, but each applies different emphasis to these activities and defines workflow that invokes each framework activity in different manner The Oldest paradigm (process model), sometime called the Classic life cycle The Principle Stage are ◦ ◦ ◦ ◦ ◦ Requirement analysis and definition System and SW design Implementation and unit testing Integration and system testing Operation and maintenance The following phase should not start until the previous phase has finished ◦ In practice, the stage could overlap The problem with waterfall model is its inflexible partitioning of the project into these distinct stages Advantages Simple and easy to use. Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. Disadvantages Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Poor model for complex and object-oriented projects. Poor model for long and ongoing projects. Poor model where requirements are at a moderate to high risk of changing. Buat 6 Kelompok Diskusikan masing2 model yang di pilih pada tiap kelompok Combines elements of the waterfall model applied in an iterative fashion Applies linear sequences in a staggered fashion as calendar time progresses Each linear sequence produces deliverables ‘increments’ of the software. When an incremental model is used, the first increment is often a core product. 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 Advantages Generates working software quickly and early during the software life cycle. More flexible – less costly to change scope and requirements. Easier to test and debug during a smaller iteration. Easier to manage risk because risky pieces are identified and handled during its iteration. Each iteration is an easily managed milestone. Disadvantages Each phase of an iteration is rigid and do not overlap each other. Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. RAD is an incremental software process model that emphasizes a short development cycle Using Component based construction approach 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 The advantages and disadvantages of RAD RAD reduces the development time Reusability of components help to speed up development. All functions are modularized so it is easy to work with. For large projects RAD require highly skilled engineers in the team. Both end customer and developer should be committed to complete the system in a much abbreviated time frame If commitment is lacking RAD will fail. RAD is based on Object Oriented approach and if it is difficult to modularize the project the RAD may not work well. Business and product requirement often change as development proceed Software engineer need a process model that has been explicitly designed to accommodate a product that evolves over time Evolutionary models are iterative. Enables software engineers to develop increasingly more complete version of the software Customer defines a set of general objectives for software but doesn’t identify the detail Assist the software engineer and the customer to better understand what is to be built when requirement are fuzzy 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 Proposed by Boehm Evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspect of the waterfall model Each loop in the spiral represents a phase of the software process. The important distinction between spiral model and other software models is the explicit consideration of risk planning estimation scheduling risk analysis communication modeling analysis design start deployment delivery feedback construction code test Advantages High amount of risk analysis Good for large and mission-critical projects. Software is produced early in the software life cycle. Disadvantages Can be a costly model to use. Risk analysis requires highly specific expertise. Project’s success is highly dependent on the risk analysis phase. Doesn’t work well for smaller projects. development—the process to apply when reuse is a development objective The model composes applications from prepackage software components Components can be designed as either conventional software module or OO classes or Package of classes. The V-Shaped life cycle is a sequential path of execution of processes Testing is emphasized in this model in every stages Advantages Simple and easy to use. Each phase has specific deliverables. Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle. Works well for small projects where requirements are easily understood. Disadvantages Very rigid, like the waterfall model. Little flexibility and adjusting scope is difficult and expensive. Software is developed during the implementation phase, so no early prototypes of the software are produced. Model doesn’t provide a clear path for problems found during testing phases. a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) Detail Discussion in OOT Model Process ◦ Waterfall Model ◦ Incremental Model Incremental Model RAD Model ◦ Evolutionary Model Prototyping Model Spiral Model ◦ Component-Based Development ◦ V Shapes Model ◦ The Unified Process