Software Development (1)

Get Started. It's Free
or sign up with your email address
Software Development (1) by Mind Map: Software Development (1)

1. Waterfall Cycle

1.1. - Requirement Gathering and Analysis: All possible requirements of the system to be developed are captured in this phase and documented in specification. - System Design - The requirements specification from first phase are studied and the system design is developed. - Implementation - with inputs from system design, the system is first developed in small programs called units. Each unit is developed and tested for its functionality (Unit testing. - Integration and testing: All units developed in implementation are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures. - Development of system - Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market. - Maintenance: There are some issues which come up in the client environment. To fix those issues, patches are released. To enhance product new version maybe released. Maintenance delivers changes to customers environment.

1.1.1. Application: Some situation are most appropriate for this type of software development. - Requirements are very well documented, clear and fixed. - Product definition is stable. - Technology is understood and is not dynamic. - There are no ambiguous requirements. - The project is short.

1.1.2. Advantages: - Simple & easy to understand & use - Easy to manage due to rigidity of the model. Each phase has specific deliverables and a review process. - Phases are processed & completed one at a time. - Work well for smaller projects where requirements are very well understood. - Clearly defined. - Well understood milestones. - Easy to arrange tasks. - Process and results are well documented.

1.1.3. Disadvantages: - No working software is produced until late during the life cycle. - High amounts of risk and uncertainty. - Not a good model for complex and object-oriented projects. - Poor model for long and ongoing projects - Not suitable for projects where requirements are at a moderate to high risk of changing. As you have to restart at a different point. - It is difficult to measure progress within stages. - Adjusting scope during the life cycle can end project.

1.2. All these phases are cascaded to each other in which progress is seen as flowing steadily downwards (Like a waterfall). The next phase only starts after the defined goal is achieved and is signed off.

2. Spiral Model

2.1. The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals. - Identification: This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase. This phase also includes understanding the system requirements by continuous communication between the customer and the system analyst. At the end of the spiral, the product is deployed in the identified market. - Design: The design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and final design in subsequent spirals. - Construct or Build: The construct phase refers to production of actual software product at every spiral. In the baseline spiral, when the product is just thought of and the design is being developed a proof of concept is developed in this phase to get customer feed back. Then in subsequent spirals with higher clarity on requirements and design details a working model of the software called 'build' is produced with a version number. These build are sent to the customer for feedback. - Evaluation and Risk Analysis: Risk analysis includes identifying, estimating and monitoring the technical feasibility and mangement risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.

2.1.1. Application: - When there is a budget constraint and risk evaluation is important. - For medium to high-risk projects. - Long-term project commitment because of potential changes to economic priorities as the requirements which is usually the case. - Customer is not sure of their requirements which is usually the case. - New product line which should be released in phases to get enough customer feedback. - Significant changes are expected in the product during the development cycle.

2.1.2. Advantages: - Changing requirements can be accommodated. - Allows extensive use of prototypes. - Requirements can be captured more accurately. - Users see the systems early. - Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management.

2.1.3. Disadvantages: - Managements is more complex. - End of projects may not be known early. - Not suitable for small or low risk projects and could be expensive for small projects. - Processes is complex. - Spiral may go on indefinitely. - Large number of intermediate stages requires excessive documentation.