You are on page 1of 7
Software Engineering BCATY) VI Sem Unit I Software Development Life Cycles (SDLC) and Methodologies * Software Development Life Cycle (SDLC): A software life cyele model (also termed process model) is a pictorial and diagrammatic representation of the sofiware life cycle. A life eycle model represents all the methods required to hake a software product transit through its life eycle stages. It also captures the structure in which nethods are to be undertaker In other words, « life cycle model maps the various activities performed on a software product from its inception to retirement, Different life cycle models may plan the necessary development activities to phases in different ways. Thus, no element which life cycle model is followed, the essential activities are contained in all life cycle models though the action may be carried out in distinct orders in different life cycle models. During any life eycle stage, more than one activity may also be carried out thes * Activities of SDLC: SDLC provides a series of steps to be followed to design and develop @ software product efficiently. SDLC framework includes the following steps Communication Requirement Gathering Feasibility Study System Analysis Software Design SDLC Coding Testing Integration Implementation Operations & Maintenance Disposition Communication This is the first step where the user initiates the request for a desired software product. He contacts the service provider and tries to negotiate the terms. He submits his request to the service providing organization in writing. Requirement Gathering ‘This step onwards the software development team works to carry on the project. The team holds discussions with various stakeholders from problem domain and tries to bring out as much information as possible on their requirements. ‘The requirements are contemplated and segregated into user requirements, system requirements and functional requirements. The requirements are collected using a number of practices as given - > studying the existing or obsolete system and software, > conducting interviews of users and developers, Page 1 Software Engineering (BCATY) VI Sem > referring to the database or > collecting answers from the questionnaires. y Study a ‘After requirement gathering, the team comes up with a rough plan of software process. At this step the team analyz if a software can be made to fulfill all requirements of the user andl there's any possibility of software being no more usefull, It is found out, if the project is financially, practically and technologically feasible for the organization to take up. There are many algorithms available, which help the developers to conclude the feasibility of a software project. System Analysis ; ‘At this step the developers decide a roadmap of their plan and try to bring up the best software model suitable for the project. System analysis includes Understanding of software product Timitations, learning system related problems or changes to be done in existing systems beforehand, identifying and addressing the impact of project on organization and personnel etc. The project team analyzes the scope of the project and plans the schedule and resources accordingly Software Design Next step is to bring down whole knowledge of requirements and analysis on the desk and design the software product. The inputs from users and information gathered in requirement gathering phase are the inputs of this step. The output of this step comes in the form of two designs; logical design and physical design. Engincers produce meta-data and data dictionaries, logical diagrams, data- flow diagrams and in some cases pseudo codes. Coding This step is also known as programming phase. The implementation of software design starts in terms of writing program code in the suitable programming language and developing error-free executable programs efficiently. Testing "An estimate says that 50% of whole software development process should be tested. Errors may ruin the software from critical level to its own removal. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user's end. Early discovery of errors and their remedy is the key to reliable software. Integration Software may need to be integrated with the libraries, databases and other program(s). This stage of SDLC is involved in the integration of software with outer world entities, Implementation This means installing the software on user machines. At times, software needs post-installation configurations at user end. Software is tested for portability and adaptability and integration related issues are solved during implementation. Operation and Maintenance This phase confirms the software operation in terms of more efficiency and less errors. If required, the users are trained on, or aided with the documentation on how to operate the software and how to keep the software operatiénal. The software is maintained timely by updating the code according to the changes taking place in user end environment or technology. This phase may face challenges from hidden bugs and real-world unidentified problems. . Disposition ‘As time elapses, the software may decline on the performance front. It may go completely obsolete or may need intense upgradation. Hence a pressing need to eliminate a major portion of the system arises, This phase includes archiving data and required software components, closing down the system, planning disposition activity and terminating system at appropriate end-of-system time, ee Page 2 Software Engineering (BCATY) VI Sem * Generic Process Model: “The Generic process model is an abstraction of the software development process. It specifies the stages and order of a process. Generic Process Model will define the following: Software Proces: This a set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products, As a Software Organization, the software process becomes better defined and more consistently implemented throughout the organization. Example: Project plans, Design-Documents, Code, Test cases, and User-manuals Generic Process Framework Activities: TL establishes the foundation for a complete software process by identifying a small number of framework activities, It also includes a set of umbrella activities that are applicable across the entire software process. Each framework activity is populated by a set of software engineering actions. A Generic Process Framework for Software Engineering encompasses five activities os Sw ig: Generic Process Mode! 1 Communication: This framework activity involves heavy communication and collaboration with the customer. It encompasses requirements gathering and other related activities. 2: Planning: This activity establishes a plan for the software engineering work that follows. It describes the technical tasks which are conduet. The resource requires and the work proxlucts are producing with a work schedule. F Modeling: It encompasses the creation of models that allow the developer and the customer. It is casy to better understand Software requirements and the design that will achieve those requirements. § Construction: This activity combines code generation and the testing that is required to uncover errors in the code. 5. Deployment: The software delivered to the customer who evaluates the delivered product, It also provides feedback based on the evaluation. * Prescriptive process models: Prescriptive process models prescribe a set of framework and other activities, quality assurance points, and software process-related elements. ‘They define a workflow among these elements that shows their inter-relationship. ‘The process models described here are, > Waterfall Model > Incremental Pro\ + Evolutionary Proc ss Model sss Model. Eee Page 3 Software Engineering (BCATY) VI Sem 1) The Waterfall Model or Linear Sequential Model or Classic Life Cycle Model: . The Waterfall model is also known as "Linear sequential model* or *Classic life eycle model It is used in small projects where requirements are well defined and known before starting the project. Activities are carried out in a linear and systematic fashion. > Communication . ser ‘ceaury > Deployment The process and recorded. Then goes to the planning stage where the cost and time constraints are estimated, a schedule is outlined and project tracking variables are defined. $ with communication, where requirements are gathered from the customer Modelling is where a design based on the requirements and keeping the project constraints in mind is created. After this, code is generated and the actual building of the product is started in the construction phas Testing (unit testing, integration testing)’ is done after code completion in this phase. Deployment is the last stage where the product is delivered, customer feedback is received and, support and maintenance for the product are provided. Advantages of the waterfall model ¥ A simple model to use and implement ¥ Easily understandable workflow . Y Easy to manage since requirements are known prior to the start of the project. Y Can be applied to projects where quality is preferred over cost Disadvantages of the waterfall model It may be difficult for the customer to provide all the specific requirements beforehand, Cannot be used for complex and object-oriented projects, Testing ind customer evaluation are done at the last stages and hence the risk is high. eration of activities is not promoted which is unavoidable for certain projects May lead to “blocking states” in which some project team members must wait for other ‘members of the team to complete dependent tasks. KKK 2) Incremental Process Model or Successive Version Model The Incremental process model is also known as “Successive version model’. In the Incremental process model, a series of releases, called increments, are built and delivered to the customer. First, a simple working system (core product), that addresses. basic requirements, is delivered. Customer feedback is recorded afier each incremental delivery. Many increments are delivered, by adding more functions, until the required system is released. This model is used when a user demands a model of product with limited functionality quickly Advantages of incremental process model Flexible to change requirements. Changes'can be done throughout the development stages Errors are reduced since the product is tested by the customer in each phase, Working software available at the early stage of the process. Easy to test because of small iterations. ‘The initial cost is lower. KKKKSS ——————— Page 4 q Software Enginee g (BCATY) VI Sem Poring ete capgnetan —¥ ai cermnt tne ° rains "> . emanate —* papoyrent gant actment raring a neers camaro eseryet ‘arene Disadvantages of incremental process model Requires good planning and design. Modules and interfaces should be well defined. The total cost is high, Demands a complete planning strategy before commencemet Refining requirements in each iteration may affect system architecture. Brea KKK KS ing the problem into increments needs skilful management supervising. 3) Evolutionary Process Models Evolutionary pro models are opted when the requirements may tend to change and also when the somplete sophisticated produet delivery cannot be done before a given deadline, but the delivery of a limited version of itis possible ‘is the incremental model, complete requirements are specified beforehand and these requirements are refined over time for each increment. The evolutionary model permits requirements, plans and estimates to evolve over time. Here,we diseuss prototyping and the spiral model 3.1) Prototyping: Th cates when the requirements are unclear and are likely to change or when the developer is doubtful about working of an algorithm, solution is to build a prototype and find out what is actually ‘heeded, Hence, in this model, one or more prototypes are made with unrefined currently known requirements before the actual product is made. \ { Boptoyment | | constrction | Be Bomatac |) | Sfpnstotme ——S——__———————— — Page S oe Software Engi neering (BCATY) VI Sem Aquick design is what occurs in a prototype model. The client evaluates the proiotyPe an ives feedback and other requirements which are incorporated in the next prototype. This is peat intl the prototype becomes a complete product that is acceptable to the client. Some provokyP: puilt as “throwaways", others are “evolutionary” in nature as they evolve into the actual system. Advantages of prototyping ¥ Active involvement of the user ¥ Errors are detected earlier. Y Feedback after each prototype helps in understanding the ¥ Does not need 10 know detailed processes, input and output from the beginning. Disadvantages of prototyping Multiple prototyp n slow down the process. Frequent changes can increase complexity. Unsatisfied client leads to multiple throwaways, The customer may not be interested or satisfied after evaluating the initial prototype. jem better, SAK 8 3.2) Spiral Model: In spiral model, the software is developed through a series of increments. The diagram looks like a spiral with loops where each loop is a phase. Each phase is split into four sectors/quadrant ‘The first circuit around the spiral might result in the development of product specification. ‘The subsequent passes around the spiral might be used to develop « prototype and then progressively more mature versions of the software. Planning is where the objectives, alternatives and other constraints are determined. The altematives are considered, risks in each alternative are analysed and prototypes are refined in the risk analysis sector. At the development quadrant level risks are known and it proceeds with developing and testing the product. In the assessment sector, customer evaluation of product developed is reviewed and the next phase is planned. This loop continues until acceptable software is built and deployed. Hence, the spiral model follows an incremental process methodology and unlike other process models, it deals with the uncertainty by applying a series of risk analysis strategies throughout the process. . —_——$—$—$ ——_ $$ Page 6 Software Engineering (BCATY) VI Sem Advantages of spiral model ¥ Reduces risk ¥ Recommended for complex projects. ¥ Changes can be incorporated at a later stage. ¥ Strong documentation helps in better management, Disadvantages of spiral model ¥ Costly and not recommended for small projects ¥ Demands risk assessment expertise. ¥ Looping is a complex process Y Heavy documentation * Concurrent Model: The concurrent development model, sometimes called concurrent engineering, allows a software team to represent iterative and concurrent elements of any of the process models. The concurrent model is often more appropriate for product engineering projects where different engineering teams are involved. These models provides a schematic representation of one sofiware engineering activity withi the modeling activity using a concurrent modeling approach. The activity modeling may be in any one of the states noted at any given time. Similarly, other activities, actions, or tasks (communication or construction) can be represented in an analo yous manner, All software engineering activities exist concurrently but reside in different states. Concurrent modeling defines a series of events that will trigger transitions from state to state for each of the software engineering activities, actions, or tasks. This generates the event analysis model correction, P! scriptive Process Model which will + the requirements analysis action from the done state into the awaiting changes state. Concurrent modeling is applicable to all types of software development and provides an urate picture of the current state of a project. Each activity, action, or task on the network exists simultaneously with other activities, actions, or tasks. Events generated at one point in the process network trigger transitions among the states. tri ac Page 7

You might also like