CHAPTER 1: PLANNING A SOFTWARE DEVELOPMENT LIFECYCLE 1.1 Software lifecycle models P1 1.1.1 Waterfall model The Waterfall Model was the first Process Model to be introduced.. Design W
Trang 1
INFORMATION TECHNOLOGY FINAL REPORT OF ASSIGNMENT 1
UNIT: SOFTWARE DEVELOPMENT LIFECYCLES
STUDENT : Nguyen Van Hieu CLASS : BDAF-2005-1 STUDENT ID : BDAF190023 SUPERVISOR : NGUYEN HOANG ANH VU
DANANG, March 2021
Trang 2
Qualification BTEC Levels 4 and 5 Higher Nationals in Computing
Unit number and title Unit 9: Software Development Lifecycles
Assignment due Assignment
Trang 3Learning Outcomes and Assessment Criteria
LO1 Describe different software development lifecycles
D1 Assess the merits of
apply-ing the Waterfall lifecycle model to a large software de- velopment project
P1 Describe two iterative
and two sequential
soft-ware lifecycle models
P2 Explain how risk is
managed in the Spiral
lifecycle model
M1 Describe, with an
exam-ple, why a particular lifecycle model is selected for a devel- opment environment
LO2 Explain the importance of a feasibility study
D2 Assess the impact of
differ-ent feasibility criteria on a software investigation
P3 Explain the purpose of
a feasibility report
P4 Describe how technical
solutions can be
com-pared
M2 Discuss the components
of a feasibility report
Trang 4Summative feedback:
Assignment title Assignment 2: Undertake a Software Development
Lifecy-cle
Trang 5Learning Outcomes and Assessment Criteria
LO3Undertake a software development lifecycle
D 3 Critically evaluate
how the use of the function design paradigm
in the software development lifecycle can improve software quality.
M4Discuss two approaches to improving software quality.
LO4 Discuss the suitability of software behavioural
design techniques
D4 Present justifications
of how data driven software can improve the reliability and
effectiveness of software.
P7 Explain how user and
software requirements
have been addressed.
M5 Suggest two software
behavioural specification methods and illustrate their use with an example
M6Differentiate between
a finite state machine (FSM) and an extended- FSM, providing an application for both.
Trang 6Summative feedback:
Trang 7PREFACE/ ACKNOWLEDGEMENT
I sincerely thank NGUYEN HOANG ANH VU who wholeheartedly guided me
through the course of learning and imparting knowledge about the subject so that I
could apply and complete this exercise
However, in the process of doing the lesson, due to limited professional
knowledge, I still lack knowledge, evaluation, and presentation about the work I hope
to receive the attention and suggestions of the teachers and teachers of the subject to
make my work more complete and complete
Trang 8Nguyen Van Hieu
Trang 9
Contents
SOFTWARE INTRODUCTION 9
CHAPTER 1: PLANNING A SOFTWARE DEVELOPMENT LIFECYCLE 10
1.1 Software lifecycle models (P1) 10
1.1.1 Waterfall model 10
1.1.2 Interative model 13
1.1.3 The spiral model 17
1.1.4 V model 20
1.2 The risk in spiral lifecycle model (P2) 25
1.3 Feasibility report (P3) 28
1.4 DESCRIBING HOW TECHNICAL SOLUTIONS CAN BE COMPARED (P4) 30 1.4.1 How to apply the three feasibility criteria in the project 30
1.4.2 The feasibility of the project 33
1.4.3 Alternative technical solutions 34
CONCLUSION 36
REFERENCES 37
Trang 10SOFTWARE INTRODUCTION
Commodity management is a must in any business The management of goods takes a lot of time, causing a lot of costs With the development of information technol-ogy, businesses are gradually applying technology to management to improve the ef-ficiency of their jobs The requirement for inventory management software is inventory management, so you can know how much inventory is in stock In addition, in the daily activities of the business often arise transactions with customers, suppliers so the soft-ware needs to have inventory entry features out of stock And make reports on the situation of import and export, the amount of unsold goods to send to management in order to give timely and right solutions to build a growing business
Trang 11CHAPTER 1: PLANNING A SOFTWARE DEVELOPMENT LIFECYCLE 1.1 Software lifecycle models (P1)
1.1.1 Waterfall model
The Waterfall Model was the first Process Model to be introduced It is also
referred to as a linear-sequential life cycle model It is very simple to understand
and use In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases
The 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 This means that any phase in the development process begins only
if the previous phase is complete In this waterfall model, the phases do not overlap
Design
Waterfall approach was first SDLC Model to be used widely in Software Engineering
to ensure success of the project In "The Waterfall" approach, the whole process of software development is divided into separate phases In this Waterfall model, typi-cally, the outcome of one phase acts as the input for the next phase sequentially The following illustration is a representation of the different phases of the Waterfall Model
Trang 12
The sequential phases in Waterfall model are −
• Requirement Gathering and analysis − All possible requirements of the tem to be developed are captured in this phase and documented in a require-ment specification document
sys-• System Design − The requirement specifications from first phase are studied
in this phase and the system design is prepared This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture
• Implementation − With inputs from the system design, the system is first veloped in small programs called units, which are integrated in the next phase Each unit is developed and tested for its functionality, which is referred to as Unit Testing
de-• Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit Post integration the entire system is tested for any faults and failures
• Deployment 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 ment To fix those issues, patches are released Also to enhance the product some better versions are released Maintenance is done to deliver these changes in the customer environment
environ-All these phases are cascaded to each other in which progress is seen as flowing steadily downwards (like a waterfall) through the phases The next phase is started only after the defined set of goals are achieved for previous phase and it is signed off,
so the name "Waterfall Model" In this model, phases do not overlap
Application
Every software developed is different and requires a suitable SDLC approach
to be followed based on the internal and external factors Some situations where the use of Waterfall model is most appropriate are −
• Requirements are very well documented, clear and fixed
Trang 13• Product definition is stable
• Technology is understood and is not dynamic
• There are no ambiguous requirements
• Ample resources with required expertise are available to support the product
• The project is short
Some of the major advantages of the Waterfall Model are as follows −
• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model Each phase has specific erables and a review process
deliv-• Phases are processed and completed one at a time
• Works well for smaller projects where requirements are very well understood
• Clearly defined stages
• Well understood milestones
• Easy to arrange tasks
• Process and results are well documented
Disadvantages
The disadvantage of waterfall development is that it does not allow much tion or revision Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage
reflec-The major disadvantages of the Waterfall Model are as follows −
Trang 14• 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 the projects where requirements are at a moderate to high risk
of changing So, risk and uncertainty is high with this process model
• It is difficult to measure progress within stages
• Cannot accommodate changing requirements
• Adjusting scope during the life cycle can end a project
• Integration is done as a "big-bang at the very end, which doesn't allow fying any technological or business bottleneck or challenges early
identi-1.1.2 Interative model
Software Development Life Cycle (SDLC) is extremely vast and full of various
development and testing activities, methodologies, techniques, tools, and more It
in-volves intense planning and management, calculation and preparation It is only after combining all these efforts of the software engineers that a software or application is
successfully developed Iterative Model is too a part of Software Development Life
Cycle
It is a particular implementation of a software development life cycle that cuses on an initial, simplified implementation, which then progressively gains more complexity and a broader feature set until the final system is complete In short, itera-tive development is a way of breaking down the software development of a large ap-plication into smaller pieces
fo-An iterative life cycle model does not start with a full specification of
require-ments In this model, the development begins by specifying and implementing just part
of the software, which is then reviewed in order to identify further requirements over, in iterative model, the iterative process starts with a simple implementation of a small set of the software requirements, which iteratively enhances the evolving ver-sions until the complete system is implemented and ready to be deployed Each re-lease of Iterative Model is developed in a specific and fixed time period, which is called iteration
Trang 15More-Furthermore, this iteration focuses on a certain set of requirements Each cycle ends with a usable system i.e., a particular iteration results in an executable release Iterative Model allows accessing previous phases, in which the changes are made ac-
cordingly The final output of the product is revived at the end of the Software
Devel-opment Life Cycle (SDLC) Typically iterative develDevel-opment is used in conjunction with
incremental development, in which a longer software development cycle is split into smaller segments that are built upon each other Hence, iterative model is used in following scenarios:
• When the requirements of the complete system are clearly defined and stood
under-• The major requirements are defined, while some functionalities and requested enhancements evolve with the process of the development process
• A new technology is being used and is being learnt by the development team, while they are working on the project
• If there are some high risk features and goals, which might change in the ture
fu-• When the resources with needed skill sets are not available and are planned
to be used on contract basis for specific iterations
Process of Iterative Model
The process of Iterative Model is cyclic, unlike the more traditional models that focus on a rigorous step-by-step process of development In this process, once the initial planning is complete, a handful of phases are repeated again and again, with the completion of each cycle incrementally improving and iterating on the software Other phases of the iterative model are described below:
Trang 16• Planning Phase: This is the first stage of the iterative model, where proper
planning is done by the team, which helps them in mapping out the tions documents, establish software or hardware requirements and generally prepare for the upcoming stages of the cycle
specifica-• Analysis and Design Phase: Once the planning is complete for the cycle, an
analysis is performed to point out the appropriate business logic, database models and to know any other requirements of this particular stage Moreover, the design stage also occurs in this phase of iterative model, where the tech-nical requirements are established that will be utilized in order to meet the need of analysis stage
• Implementation Phase: This is the third and the most important phase of the
iterative model Here, the actual implementation and coding process is cuted All planning, specification, and design documents up to this point are coded and implemented into this initial iteration of the project
exe-• Testing Phase: After the current build iteration is coded and implemented,
testing is initiated in the cycle to identify and locate any potential bugs or sues that may have been in the software
Trang 17is-• Evaluation Phase: The final phase of the Iterative life cycle is the evaluation
phase, where the entire team along with the client, examine the status of the project and validate whether it is as per the suggested requirements
Advantages of Iterative Model:
It is extremely necessary to know the advantages of the Iterative model, before implementing it in the Software Development Life Cycle (SDLC) The biggest ad-vantage of this model is that, it is implemented during the earlier stages of software development process, which allows developers and testers to find functional or design related flaws as early as possible, which further allows them to take corrective measures in a limited budget Other benefits or advantages of this model are:
• Some working functionality can be developed and early in the software opment life cycle (SDLC)
devel-• It is easily adaptable to the ever changing needs of the project as well as the client
• It is best suited for agile organisations
• It is more cost effective to change the scope or requirements in Iterative
model
• Parallel development can be planned
• Testing and debugging during smaller iteration is easy
• Risks are identified and resolved during iteration; and each iteration is an ily managed
eas-• In iterative model less time is spent on documenting and more time is given for designing
• One can get reliable user feedback, when presenting sketches and blueprints
of the product to users for their feedback
Trang 18Disadvantages of Iterative Model:
Even though, iterative model is extremely beneficial, there are few drawbacks and disadvantages attached to it, such as, each phase of an iteration is rigid with no overlaps Also, system architecture or design issues may arise because not all require-ments are gathered in the beginning of the entire life cycle Other disadvantages of iterative model are:
• More resources may be required
• Although cost of change is lesser, but it is not very suitable for changing quirements
re-• More management attention is required
• It is not suitable for smaller projects
• Highly skilled resources are required for skill analysis
• Project progress is highly dependent upon the risk analysis phase
• Defining increments may require definition of the complete system
1.1.3 The spiral model
Spiral Model is a risk-driven software development process model It is a bination of waterfall model and iterative model Spiral Model helps to adopt software development elements of multiple process models for the software project based on unique risk patterns ensuring efficient development process
com-Each phase of spiral model in software engineering begins with a design goal and ends with the client reviewing the progress The spiral model in software engineer-ing was first mentioned by Barry Boehm in his 1986 paper
The development process in Spiral model in SDLC, starts with a small set of requirement and goes through each development phase for those set of requirements The software engineering team adds functionality for the additional requirement in every-increasing spirals until the application is ready for the production phase The below figure very well explain Spiral Model:
Trang 19Spiral Model Phases
Spiral
Model
Phases
Activities performed during phase
Planning • It includes estimating the cost, schedule and resources for
the iteration It also involves understanding the system quirements for continuous communication between the system analyst and the customer
re-Risk Analysis • Identification of potential risk is done while risk mitigation
strategy is planned and finalized
Engineering • It includes testing, coding and deploying software at the
customer site
Evaluation • Evaluation of software by the customer Also, includes
identifying and monitoring risks such as schedule slippage and cost overrun