Download presentation
Presentation is loading. Please wait.
1
Methodologies and Algorithms
Dzidula Keteku
2
The Waterfall lifecycle
The Waterfall lifecycle (also known as the linear-sequential lifecycle) is a simple methodology. In the lifecycle, each phase can has to be completed in order without doing any at the same time. This diagram shows the waterfall lifecycle phases
3
The Waterfall lifecycle (Phases)
Requirement Analysis: This is where all the possible requirements of the system are developed and documented in a requirements specification document. System Design: The requirement specification is studied to help produce the system design. The system will help specify the hardware and the system requirements. It also helps define the overall system architecture. Implementation: With help from help form the system design, the system is developed in small programs called units. Each unit is then tested. This is called “Unit Testing”.
4
The Waterfall lifecycle (Phases)
Testing: All the units developed in the implementation phase are integrated into a system after testing of each unit. After integrating the units, the entire system is tested for any faults and failures. Deployment: Once the functional and non functional testing is done, the product is deployed in the customer environment or released into the market. Maintenance: This is done to make the product better for clients to use.
5
The Waterfall lifecycle(advantages and disadvantages)
Simple and easy to understand and use No working software is produced until late during the life cycle. Easy to manage due to the rigidity of the model . each phase has specific deliverables and a review process. High amounts of risk and uncertainty. Phases are processed and completed one at a time. Not a good model for complex and object-oriented projects. Works well for smaller projects where requirements are very well understood. Poor model for long and ongoing projects.
6
Agile methodologies Agile methodologies handles every project differently and the existing methods need to be tailored to best suit the project requirements. In agile the tasks are divided to time boxes (small time frames) to deliver specific features for a release. The is an illustration of the Agile model.
7
Agile methodologies (advantages and disadvantages)
Is a very realistic approach to software development Not suitable for handling complex dependencies. Promotes teamwork and cross training. More risk of sustainability, maintainability and extensibility. Functionality can be developed rapidly and demonstrated. An overall plan, an agile leader and agile PM practice is a must without which it will not work. Resource requirements are minimum. Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines. Suitable for fixed or changing requirements Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction. Delivers early partial working solutions. There is very high individual dependency, since there is minimum documentation generated. Good model for environments that change steadily. Transfer of technology to new team members may be quite challenging due to lack of documentation.
8
Extreme programming Extreme programming (XP) is a methodology that uses to improve software quality and responsiveness to changing customer requirements. XP is a for small and medium sized teams who are developing software with vague or rapidly changing requirements. It is an agile process that can Extreme Programming consists of: Pair Programming Code Review Unit Testing Integration Testing
9
Extreme programming (phases)
Pair Programming: This is when two programmers work together on the same station , One programmer (the driver) writes the code while the other (the observer or navigator) reviews each line of code as it is typed in. The two programmers switch roles frequently. Code Review: This is a continuous method used to find mistakes overlooked in the initial development phase and improve the overall quality of the software. Unit Testing: This is when units are individually and independently inspected for proper operation. Integration testing: This when units are combined and tested together. So when the first part of the code is complete it is then tested. When the second part of the code is complete you test it combined with the first part of the cod and it goes on like that.
10
Extreme programming (advantages and disadvantages)
Fast delivery of results Requires discipline Work well in projects with undefined or changing requirements Requires much user input
11
The Spiral Model Spiral model is a combination of iterative development process model and sequential linear development model i.e. waterfall model with very high emphasis on risk analysis. The Spiral model is mainly used for risky projects. This diagram shows the spiral model with all the activities in each phase
12
The Spiral Model (phases)
Identification: This phase starts with gathering the business requirements in the baseline spiral. Identification of system requirements, subsystem requirements and unit requirements are all done in this phase. This 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: 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 the subsequent spirals.
13
The Spiral Model (phases)
Construct or Build: Construct phase refers to production of the actual software product at every spiral. In the baseline spiral the design is being developed and a POC (Proof of Concept) is developed in this phase to get customer feedback. Evaluation and Risk Analysis: Risk Analysis includes identifying, estimating, and monitoring technical feasibility and management 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.
14
The Spiral model (advantages and disadvantages)
Changing requirements can be accommodated. Management is more complex. Allows for extensive use of prototypes End of project may not be known early. Requirements can be captured more accurately. Not suitable for small or low risk projects and could be expensive for small projects. Development can be divided into smaller parts and more risky parts can be developed earlier which helps better risk management. Large number of intermediate stages requires excessive documentation. Users see the system early. Process is complex
15
Rapid Application Development
The Rapid Application Development model (RAD) is based on prototyping and iterative development with no specific planning involved. The process of writing the software itself involves the planning required for developing the product. This diagram shows the RAD model
16
RAD (phases) Business Modelling: The business model for the product under development is designed depending on how information is passed on. A complete business analysis is performed to find the vital information for business. This includes: how it can be obtained; how and when is the information processed and what are the factors driving successful flow of information. Data Modelling: The information gathered in the Business Modelling phase is reviewed and analysed to form sets of data objects that are vital for the business. The attributes of all data sets are identified and defined. The relation between these data objects are established and defined in detail in relevance to the business model.
17
RAD (phases) Process Modelling: The data object sets defined in the Data Modelling phase are converted to establish the business information flow needed to achieve specific business objectives as per the business model. The process model for any changes or enhancements to the data object sets is defined in this phase. Process descriptions for adding , deleting, retrieving or modifying a data object are given. Application Generation: The actual system is built and coding is done by using automation tools to convert process and data models into actual prototypes. Testing and Turnover: The overall testing time is reduced in RAD model as the prototypes are independently tested during every iteration. However the data flow and the interfaces between all the components need to be thoroughly tested with complete test coverage. Since most of the programming components have already been tested, it reduces the risk of any major issues.
18
RAD (advantages and disadvantages)
Changing requirements can be accommodated. Dependency on technically strong team members for identifying business requirements. Progress can be measured. Requires highly skilled developers/designers. Iteration time can be short with use of powerful RAD tools. High dependency on modelling skills. Productivity with fewer people in short time. Requires user involvement throughout the life cycle. Reduced development time. Increases reusability of components Suitable for project requiring shorter development times.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.