Aarogya: Instructor: Prof. Pranav Joshi
Aarogya: Instructor: Prof. Pranav Joshi
AAROGYA
SDLC Model v1.0
Document Description:
The goal of this phase is to decide a suitable SDLC Model for our project. Choosing a life cycle model will help in proper functioning of the development of the product.
Revision History
Date
12th Feb 2014
Document
SDLC Model
Version
1.0
Created By Reviewed By
Vipul , Pavithra Nikhil, Satyam
AAROGYA
Team 13
Table of Contents
Project Objective: .............................................................................................. 4 Document Conventions4 Software Development Life Cycle (SDLC): ...................................................... 4 Waterfall Model:.................................................................................................. 5 -Merits: .......................................................................................................6 -Demerits: ................................................................................................. 6 -Reasons for REJECTING: ........ 7 Iterative Model: ............................................................................................... 7 -Merits:....................................................................................................... 8 -Demerits: ................................................................................................. 8 -Reasons for ACCEPTING: ..... 9 Spiral Model: ...................................................................................................... 9 -Merits: .................................................................................................... 10 -Demerits: ............................................................................................... 10 -Reasons for REJECTING:.........10 Scrum Model: ................................................................................................ 10 -Scrum Software Development Methodology11 -Merits: .....................................................................................................12 -Demerits: ................................................................................................12 -Reasons for REJECTING: .12 Conclusion: .......................................................................................................13
AAROGYA
Team 13
Project Objective:
We have proposed to build a website for the health care management system. The system will have three sets of users: the medical store owner, doctors, and patients. The medical stores can use this website to hold a record of all the stock inventories of the store, which can be updated by the store owner. The patients can use this website to maintain their treatment history and all their lab reports online. The doctor can use this website to have look at a patients medical history who has come to him for treatment. The doctor can also schedule his appointments on this website.
Document Conventions:
The following conventions would be followed throughout the document:
Title: Arial, 72, Bold, Blue Heading 1: Arial , 20, Bold, Blue Heading 2: Arial, 16, Bold, Light Blue Heading 3: Arial, 14, Bold, Underlined, Light Blue Body: Times New Roman, 12, Black
AAROGYA
Team 13
Since different types of projects have different requirements. Therefore, it may be required to choose the SDLC phases according to the specific needs of the project. These different requirements and needs give us various software development approaches to choose from during software implementation. Due to importance of the Software Development Life Cycle, various models have been proposed. Large development teams cannot function without formal definitions of work. Defining life cycle model encourages development of software in systematic and disciplined manner. Following are the most important and popular SDLC models followed in the industry: Waterfall Model Iterative Model Spiral Model Scrum Model
Waterfall Model
Waterfall model is the earliest SDLC approach that was used for software development. The waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a linear-sequential life cycle model. This means that any phase in the development process begins only if the previous phase is complete and the outcome of one phase acts as the input for the next phase sequentially. In waterfall model phases do not overlap. The sequential phases in Waterfall model are: Requirement Gathering and analysis System Design Implementation Integration and Testing Deployment of system Maintenance
AAROGYA
Team 13
Merits
-Works well for smaller projects where requirements are very well understood. -Easy to understand and follow -Phases are processed and completed one at a time. -Verification at each stage ensures early detection of errors / misunderstanding -Process and results are well documented.
Demerits
-Inflexible: requirements cannot be changed once defined -Software is generated much later in the software cycle -High level of risk and uncertainty involved -It is difficult to measure progress within stages -Poor model for long and ongoing projects
AAROGYA
Team 13
Iterative Model
The iterative model uses multiple cycles and an incremental approach for developing a system. Iterative process starts with a simple implementation of a subset of the software requirements and iteratively enhances the evolving versions until the full system is implemented. At each iteration, design modifications are made and new functional capabilities are added. The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental).
AAROGYA
Team 13
The key to successful use of an iterative software development lifecycle is rigorous validation of requirements, and verification & testing of each version of the software against those requirements within each cycle of the model. As the software evolves through successive cycles, tests have to be repeated and extended to verify each version of the software.
Merits
-Output is generated after each stage, therefore it has high visibility. -Amount of rework is minimized. -Timely evaluation of each and every artefact generated. -Less costly to change the scope/requirements. -Testing and debugging during smaller iteration is easy.
Demerits
-Amount of time spent on testing is high. -Even a small change in any previous stage can cause big problem for subsequent phases as all phases are dependent on each-other -Applicable only to large and bulky software development projects. This is because it is hard to break a small software system into further small serviceable increments/modules -Partitioning the functions and features might be problematic - Integration between iteration can be an issue if this is not considered during the development.
AAROGYA
Team 13
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. It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral. In each iteration of the spiral approach, software development process follows the phase-wise linear approach. At the end of first iteration, the customer evaluates the software and provides the feedback. Based on the feedback, software development process enters into the next iteration and subsequently follows the linear approach to implement the feedback suggested by the customer. The process of iteration continues throughout the life of the software. The spiral model has four phases: Planning Risk Analysis Engineering Evaluation.
AAROGYA
Team 13
10
Merits
- Changing requirements can be accommodated. -Software is produced early in the software life cycle. -Requirements can be captured more accurately. -Development can be divided into smaller parts and more risky parts can be developed earlier which helps better risk management.
Demerits
-End of project may not be known early. -Spiral may go indefinitely -Risk analysis requires highly specific expertise. -Projects success is highly dependent on the risk analysis phase. -Large number of intermediate stages requires excessive documentation
Scrum Model
SCRUM is a management, enhancement and maintenance methodology for an existing system or production prototype. SCRUM initially plans the context and broad deliverable definition, and then evolve the deliverable during the project based on the environment. SCRUM acknowledges that the underlying development processes are incompletely defined and uses control mechanisms to improve flexibility.
AAROGYA
Team 13
11
AAROGYA
Team 13
12
Merits
It is a lightly controlled method which insists on frequent updating of the progress in work through regular meetings. Thus there is clear visibility of the project development. This is also iterative in nature. It requires continuous feedback from the user. Due to short sprints and constant feedback, it becomes easier to cope with the changes. Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members. Issues are identified well in advance through the daily meetings and hence can be resolved in speedily. It is easier to deliver a quality product in a scheduled time. The overhead cost in terms of process and management is minimal thus leading to a quicker, cheaper result.
Demerits
Scrum is one of the leading causes of scope creep because unless there is a definite end date, the project management stakeholders will be tempted to keep demanding that new functionality be delivered. If a task is not well defined, estimating project costs and time will not be accurate. In such a case, the task can be spread over several sprints. If the team members are not committed, the project will either never complete or fail. It is good for small, fast moving projects as it works well only with small team. This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed in time. Scrum works well for project management when the Scrum Master trusts the team they are managing. If they practice too strict control over the team members, it can be extremely frustrating for them, leading to demoralization and the failure of the project. If any of the team members leave during a development it can have a huge inverse effect on the project development
AAROGYA
Team 13
IT314 Software Engineering beneficial as most of the members would be more focused on adopting the web technologies instead of actually developing the website.
13
Conclusion
After studying all the SDLC models, the model we have chosen for our project is the Iterative Model. The classical waterfall model assumes certain amount of experience and confidence in the developer team. As a team of Software Engineering students, implementing this model is too risky as most of our team members are new to web development tools. Our project is not serving the requirements of one particular user from whom we could get the prototype reviewed. The prototype model works best with a system with maximum user interaction. The spiral model appears to be very complex. It requires competent professional management. Also risk assessment is an integral part of this model. But our project does not require risk analysis. Thus, again not a very appropriate model for our project. Using the Scrum Methodology helps break our project into smaller, manageable parts. But it can be difficult for the Scrum master to plan, structure and organize a project that lacks a clear definition. In addition, frequent changes, frequent product delivery and uncertainty regarding the precise nature of the finished product make for a rather intense project life cycle for everyone involved. Furthermore, the daily Scrum meetings and frequent reviews require substantial resources. A successful project depends on the maturity and dedication of all participants, and their ability to maintain consistently high levels of communication through each backlog and review. The Iterative model seems to be the model best suited for our project. We can plan the project out in iterations, by setting deadlines for each phase. Also, the iterative model takes care of risks and changing requirements. As our product is meaningful for more than one user, requirements can vary at some later stage. Hence, iterative model fits best for our project.
AAROGYA
Team 13