Life cycle modelTo Describes the steps followed by the project team to produce a tangible software product that fully meets the requirements of the component or the part that the project set forth to build.
Software ProcessA set of activities, together with ordering constraints among them, such that if the activities are performed properly and in accordance with the ordering constraints.The process that deals with the technical and management issues of software development is called SWP.Successful project talks about Cost, schedule and quality.
Contd..A set of activities that leads to the production of a software product.There are many software processes, some fundamental activities are common to all software processes:Software SpecificationSoftware design and ImplementationSoftware ValidationSoftware evolution.
Software processProduct Engineering process(produce desired product) Development process Project Management process Software Configuration ManagementProcess Management process
ETVX Approach for process specificationEntry CriteriaTaskVerificationExit Criteria
A step in Development processPredictability.Input Output Process V&V
SDLCA software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product.
Waterfall ModelLinear Sequential ModelWater – tight phasesOne phase is Completed before the next phase starts
Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
Limitations of Waterfall modelIt assumes that the requirements of a system can be frozen before the design begins.Freezing the requirements usually requires choosing the hardware(because it forms a part of the requirements specification). A large project might take a few years to complete.“Big bang approach” – an entire software is delivered in one shot at the end.It encourages “requirements bloating”.It is a document-driven process that requires formal documents at each phase.
Prototyping Model• Attractive idea for complicated and large systems for which there is no manual process or existing system to help determine the requirements..• Based on Currently known requirements.• Customer can get actual feel of the system.Types:1. Throwaway Prototype2. Evolutionary Prototype
Contd..Horizontal PrototypeA common term for a user interface prototype is the horizontal prototypeIt provides a broad view of an entire system or subsystem, focusing on user interaction more than low-level system functionality, such as database accessVertical PrototypeA vertical prototype is a more complete elaboration of a single subsystem or function.
Contd..Types of prototypingMajor types: first two..Throwaway prototypingEvolutionary prototypingIncremental prototypingExtreme prototyping
Adv and Dis-AdvAdvantagesReduced time and costs:Improved and increased user involvementDisadvantages of prototypingInsufficient analysisUser confusion of prototype and finished systemDeveloper misunderstanding of user objectivesExpense of implementing prototyping:Excessive development time of the prototype
RAD ModelCombines the features of waterfall model and prototyping model.Rapid application development (RAD) is a software dev.methodology that uses minimal planning in favor of rapid prototyping.WYSIWYG mannerThe "planning" of software developed using RAD is interleaved with writing the software itself.Each units Developed in a short time.Developments, using modelling tools and CASE, translates to product.
Contd..Speed and Responsiveness.Loop continually, Changes and feedback reflected.Key to the success of RAD lies in application decomposition, automatic generation and effective re-use.DisAdv: Modelling tools add expenses and Place restrictions(decompose, re-use..)Not applicable in little or no customer involvement, Co- existence of new application in legacy system.
Iterative DevelopmentCounters the Third and fourth limitation of waterfall model, tries to combine the benefits of prototyping and Waterfall.Based on incrementing and add some functional capability to system until it satisfies.Project control list, gives an idea of how far the projects moves.
Spiral ModelEach cycle in the spiral begins with the identification of objectives for that cycle.Next step is to evaluate the different alternatives based on objectives and constraints.Resolve uncertainties and risksSoftware developedFinal stage Planned.
Time Boxing ModelThe Timeboxing model for iterative software development in which each iteration is done in a time box of fixed duration, and the functionality to be built is adjusted to fit the time box.
RUPRational Unified ProcessDesigned for Object Oriented Development using UML.Divided into Cycles, each cycle delivering a fully working system.Each cycle have four phases: Inception Elaboration Construction Transition
RUP Phases Inception: Goals and scope of project(life cycle objectives milestone) Elaboration: Architecture of the system is designed, based on the detailed requirement analysis (lifecycle Architecture milestone). Construction: software is built and tested(Initial operational capability milestone) Transition: To move the software from development environment to client’s environment(product release milestone).
Agile processes Extreme Programming Extreme Programming is successful because it stresses customer satisfaction. Extreme Programming emphasizes teamwork. Extreme Programming improves a software project in five essential ways;1. Communication2. Simplicity3. Feedback4. Respect5. Courage.
Principles of agile processesWorking software is the key measure of progressSoftware should be developed and delivered in small increments.Late changes in requirements should be entertained.Face to face communication over documentation.Continuous feedback and involvement of customer.Simple design is better than elaborate design upfront.Delivery dates are decided by the empowered teams.