2. Classical Problem-solving approach Study and understand the problem, its context, and its impact. Define the requirements that must be meet by any solution. Identify candidate solutions that fulfill the requirements and select the “best” solution. Design and/or implement the chosen solution. Observe and evaluate the solution’s impact, and refine the solution accordingly.
3. SDLC SDLC stands for System Development Life Cycle. A System Development Life Cycle is simply a series of orderly, interrelated activities leading to the successful completion of a set of programs. The periods of time during which these activities take place are called phases. The different phases of System Development Life Cycle are Definition, Analysis, Design, Coding, Testing, System Installation / Acceptance
4. Preliminary Survey System Analysis System Running SYSTEM DEVELOPMENT LIFE CYCLE System Design System Installation System Development System Testing System Development Life Cycle
5. SDLC Preliminary Survey: Key question: What is the problem? Initial investigations are done. Output is statement specifying the scope and objective of the problem. Feasibility Study: Feasibility study is a test for system proposal according to its workability, impact on organization, ability to meet user needs & effective use of resources. Key questions are: What are the demonstrable needs? Is the problem worth solving? Cost & Benefits are estimated.
6. SDLC Analysis: Analysis is a detailed study of various operations performed by a system and their relationships within and outside of the system. Key questions are: what must be done to solve the problem? The tools used are Data flow diagrams, interviews, on-site questions and observations After this phase, the analyst has the clear understanding of what is to be done. The output of this phase is logical modelof the system.
7. SDLC Design: Most creative and challenging phase. Key questions are: How the problem will be solved? What is the system flow? Does user approve the system? This stage specifies technical specification, program construction and testing. The format of output is decided. Accordingly, input is decided and files are designed. All details are documented and evaluated by management. The output consists of procedural flowcharts, file layouts and report layouts. The projected cost is compared with actual cost.
8. SDLC Implementation: Less creative phase. Performs activities like testing, user training, site preparation, network installation etc. User acceptance is tested. Extensive user training is given if required. During testing, diagnostic procedures are used to locate and correct errors.
9. SDLC Post-implementation & Maintenance: The user staff is adjusted to changes due to software. Because of aging process, periodic maintenance of hardware and software is required. Due to maintenance activity, standards of new system is maintained.
10. SDLC Project termination: A system project may be dropped at any time because of some unavoidable conditions. Projects are dropped because of following conditions: changing objectives and requirements. Benefits of software are not sufficient. Sudden change in user’s budget or increased design cost. Exceeding the time schedule.
12. Waterfall Model Suggests a systematic, sequential approach to software development. Oldest paradigm. Consists of phases like Analysis Design Code Generation Testing Support: Software will undergo change after it is delivered to the customer. Change will occur because errors or enhancements.
13. Waterfall Model Advantages: Helps project management, documentation Complex systems are well-defined and structured Encourages a discipline of modelling Disadvantages: The requirements must be completely specified before programming begins. Rather inflexible Impossible to deal with changes
15. Incremental model The incremental model combines elements of the linear sequential model with the iterative approach.
16. Incremental model Incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable “increment” of the software. E.g. Word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more sophisticated editing. When an incremental model is used, the first increment is often a core product. In core product basic requirements are addressed, but many advanced features remain undelivered.
17. Incremental model The core product is used by the customer. As a result of use, a plan is developed for the next increment. More modifications are performed to better meet the needs of the customer. This process is repeated following the delivery of each increment, until the complete product is produced. Advantage: Incremental development is particularly useful when staffing is unavailable for a complete implementation.
18. Incremental model Advantage: Early increments can be implemented with fewer people. increments can be planned to manage technical risks The incremental model delivers software in small but usable pieces, called “increments.” In general, each increment builds on those that have already been delivered.
20. Spiral Model An evolutionary software process model. It combines the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. Software is developed in a series of incremental releases. During early iterations, the release may be a paper model or prototype. During later iterations, more complete versions of the engineered system are produced. The phases are called task regions.
21. Spiral Model Customer communication— tasks required to establish effective communication between developer and customer. Planning—tasks required to define resources, timelines, and other project related information. Risk analysis—tasks required to assess both technical and management risks. Engineering—tasks required to build one or more representations of the application.
22. Spiral Model Construction and release—tasks required to construct, test, install, and provide user support (e.g., documentation and training). Customer evaluation—tasks required to obtain customer feedback. Each pass through the planning region results in adjustments to the project plan. Cost and schedule are adjusted based on feedback derived from customer evaluation. The spiral model can be adapted to apply throughout the life of the computer software.
23. Spiral Model Advantages: A realistic approach to the development of large-scale systems and software. Because software evolves as the process progresses, the developer and customer better understand and react to risks at each evolutionary level. It demands a direct consideration of technical risks at all stages of the project. Disadvantage: It may be difficult to convince customers. The Schedule may not be completed due to iterative nature.
25. RAD Model It is an incremental model with short development cycle. It is a high speed adaptation of waterfall model. It follows concept of component based construction approach. If requirements are well understood and project scope is limited, development is possible within 60-90 days. Each major module is handled by separate RAD team. All modules are integrated after completion.
26. RAD Model Activities: Communication Planning Modeling Business modeling Data modeling Process modeling Construction Deployment
27. RAD Model Disadvantages: 1. Large number of human resources 2. If decomposition is not proper then project may fail. 3. The project may fail if technical risks are high.
29. Concurrent Model The activities of software development will undergo all stages. The activities lie in any one of the state at any time. All activities may exist concurrently. This process model is applicable to all types of software development. This model provides an accurate picture of current state of a project.