Sei sulla pagina 1di 6

Stages involved in Software development process 1. System Engineering and Modeling 2. Software Requirements Analysis 3.

Systems Analysis and Design 4. Code Generation 5. Unit Testing 6. Integration Testing 7. System Testing 8. Operation 9. Maintenance The waterfall model derives its name due to the cascading effect from one phase to the other as is illustrated in the Figure. In this model each phase has a well defined starting and ending point, with identifiable deliveries to the next phase. System/Information Engineering As software is always of a large system (or business), work begins by establishing requirements for all system elements and then allocating some subset of these requirements to software. This system view is essential when software must interface with other elements such as hardware, people and other resources. System is the basic and very critical requirement for the existence of software in any entity. So if the system is not in place, the system should be engineered and put in place. In some cases, to extract the maximum output, the system should be re-engineered and spruced up. Once the ideal system is engineered or tuned, the development team studies the software requirement for the system. Feasibility: Defining a preferred concept for the software product and determining its life-cycle feasibility and superiority to alternative concepts. Requirements: A complete, verified specification of the required functions, interfaces, and performance for the software product. Product Design: A complete verified specification of the overall hardware-software architecture, control structure, and data structure for the product, along with such other necessary components as draft user's manuals and test plans. Detailed Design:

A complete verified specification of the control structure, data structure, interface relations, sizing, key algorithms and assumptions of each program component. Coding: A complete, verified set of program components. A proper functional software product composed of the software components. Implementation: A fully functioning operational hardware-software system, including such objectives as program and data conversion, installation and training. Maintenance: A fully functioning update of the hardware-software system repeated for each update. Phaseout: A clean transition of the functions performed by the product to its successors. Advantages * Testing is inherent to every phase of the waterfall model * It is an enforced disciplined approach * It is documentation driven, that is, documentation is produced at every stage Disadvantages * It only incorporates iteration indirectly, thus changes may cause considerable confusion as the project progresses. * As the client usually has a vague idea of exactly what is required from the software product, the Waterfall Model has difficulty accommodating the natural uncertainty that exists at the beginning of the project. * The customer only sees a working version of the product after it has been coded which may result in disaster. Any undetected problems are precipitated to this stage. Strengths and Weakness of different Software Development Life Cycle Models: Waterfall Model: waterfall performs well for products with clearly understood requirements or when working with well understood technical tools, architectures and infrastructures. It's weaknesses frequently make it inadvisable when rapid development is needed. In those cases, modified models may be more effective. Strengths * Minimizes planning overhead since it can be done up front.

* Structure minimizes wasted effort, so it works well for technically weak or inexperienced staff. Weaknesses * Inflexible. * Only the final phase produces a non-documentation deliverable. * Backing up to address mistakes is difficult Spiral Model The spiral is a risk-reduction oriented model that breaks a software project up into mini-projects, each addressing one or more major risks. After major risks have been addressed, the spiral model terminates as a waterfall model. Strengths * Early iterations of the project are the cheapest, enabling the highest risks to be addressed at the lowest total cost. This ensures that as costs increase, risks decrease. * Each iteration of the spiral can be tailored to suit the needs of the project. Weaknesses * It is complicated and requires attentive and knowledgeable management to pull it off. Prototype Models: Prototyping uses multiple iterations of requirements gathering and analysis, design and prototype development. After each iteration, the result is analyzed by the customer. Their response creates the next level of requirements and defines the next iteration. Strengths * Customers can see steady progress. * This is useful when requirements are changing rapidly, when the customer is reluctant to commit to a set of requirements or when no one fully understands the application area. Weaknesses * It is impossible to know at the outset of the project how long it will take. * There is no way to know the number of iterations that will be required. Code-and-Fix If you don't use a methodology, it's likely you are doing code-and-fix. Code-and-fix rarely produces useful results. It is very dangerous as there is no way to assess progress, quality or risk. Code-and-fix is only appropriate for small throwaway

projects like proof-of-concept, short-lived demos or throwaway prototypes. Strengths * No time spent on "overhead" like planning, documentation, quality assurance, standards enforcement or other non-coding activities. * Requires little experience. Weaknesses * Dangerous. * No means of assessing quality or identifying risks. * Fundamental flaws in approach do not show up quickly, often requiring work to be thrown out.

Software SDLC Phases


SDLC Phases and Software development Life cycle & SDLC Interview Questions and Answers The Software Development Life Cycle, or Systems Development Life Cycle (SDLC) is the process of creating or modifying a software system. It typically refers to information and computer systems and includes the models and methodologies use to develop these systems. This includes requirements, validation, training, and user ownership. Using the SDLC should ensure a high quality system that fulfills customer expectations, completion within time and cost limitations, and reasonable maintenance and enhancement costs. SDLC Phases Overview in software development The SDLC consists phases in which each progressive step utilizes the results of the previous phase. These phases include planning, analysis, design, and implementation. Several SDLC models have been created (i.e. waterfall, spiral, etc.) The waterfall model is the oldest and most commonly used. The SDLC phases for this model is characterized by a sequence of stages in which the output of one stage is the input for the next. The way these stages are divided up varies from organization to organization but a common way to layout the SDLC The SDLC phases are depicted in the diagram below.

phases-of-testing SDLC Phase Details Project Planning A high-level view of project is established, and project goals are set. Some organizations create preliminary project schedules in this phase. System/Requirements Analysis The purpose of system analysis is to examine the system in pieces in order to investigate project goals and determining what should be done to fulfill them. Requirements analysis is usually more effective when it involves all stakeholders (developers, client representatives, service providers, etc.). Communication between these groups can help foster deeper understanding and to develop more accurate requirements. Communication gaps in this phase can lead to errors and bugs in later SDLC phases. Design In this phase, software functions are described in detail. This includes interface screen layouts, process diagrams, business rules, etc. This phase utilizes requirements defined in the requirements document produced in the previous phase as the initial input. Design elements are developed from each requirement and describe the features of the software in detail. The completion of this stage should yield a description of the system as a compilation of modules and subsystems. Implementation programmers use the modules and subsystems produced in the previous SDLC phase in order to produce code. The developers also and perform unit testing. Since some level of testing is done during implementation, this stage is often overlaps with the next phase. Integration and Testing Put all pieces together and check for errors/bugs. During this phase, code modules are integrated to ensure that they function together in the expected manner.

Several different types of testing such as unit, systems, and user acceptance testing, etc. performed. Operation- In the operation phase of the SDLC, the system is deployed. Maintenance Maintaining the software is an important part of SDLC. System updates are often required to fix bugs and provide enhancements. Sequential execution of SDLC Phases is not required for every project. The phases are, however, interdependent. Depending upon the complexity and size of the project, SDLC phases may overlap or may be combined. Final Note: SDLC phases are very important to followin any software development life cycle and this is a must interview questions to explain in detail what is SDLC and you need to explain each steps and their inputs and outputs and among these the important things to know are implementation stage in sdlc and cost analysis software bugs and fix and the difference between all phases.