Designing project architectureAt the second phase of the software development life cycle, the developers are actuallydesigning the architecture.. This departmentprovides user feedback; c
Trang 10383930441
Trang 2Table of Contents
A Introduction 4
B Contents 5
LO1 Describe different software development lifecycles 5
I Describe two iterative and two sequential software lifecycle models (P1) 5
II Explain how risk is managed in the Spiral lifecycle model (P2) 10
III Describe, with an example, why a particular lifecycle model is selected for a development environment (M1) 12
LO2 Explain the importance of a feasibility study 14
I Explain the purpose of a feasibility report (P3) 14
II Describe how technical solutions can be compared (P4) 16
III Discuss the components of a feasibility report (M2) 20
References 23
Trang 3Summative Feedback:
Internal verification:
Trang 4A Introduction
Software development lifecycle is the application of standard business practices to build software applications It is generally divided into six to eight steps: Plan, Request, Design, Build, Document, Test, Implement, Maintain Some project managers will combine, break down, or skip steps, depending on the scope of the project These are the core components recommended for all software development projects
SDLC is a way to measure and improve development It allows for detailed analysis of each step of the process This will help companies maximize efficiency at each stage As computing power increases, it places higher demands on software and developers Companies must reduce costs, deliver software faster, and meet or exceed customer needs SDLC helps to achieve these goals by identifying inefficiencies and higher costs and fixing them for smooth functioning.
Trang 5B Contents
LO1 Describe different software development lifecycles.
I Describe two iterative and two sequential software lifecycle models (P1)
BASIC STAGES OF SOFTWARE DEVELOPMENT LIFE CYCLE
Stage 1 Planning and requirement analysis
Each software development life cycle model starts with the analysis, in which the stakeholders of the process discuss the requirements for the final product The goal of this stage is the detailed definition of the system requirements Besides, it is needed to make sure that all the process participants have clearly understood the tasks and how every requirement is going to be implemented.
Stage 2 Designing project architecture
At the second phase of the software development life cycle, the developers are actually designing the architecture All the different technical questions that may appear on this stage are discussed by all the stakeholders, including the customer Also, here are defined the technologies used in the project, team load, limitations, time frames, and budget.
Stage 3 Development and programming
After the requirements are approved, the process goes to the next stage – actual development Programmers start here with the source code writing while keeping in mind previously defined requirements The system administrators adjust the software environment, front-end programmers develop the user interface of the program and the logic for its interaction with the server.
The programming by itself assumes four stages
Trang 6testing process repeats until all the critical issues are removed and software workflow is stable.
Stage 5 Deployment
When the program is finalized and has no critical issues – it is time to launch it for the end users After the new program version release, the tech support team joins This department provides user feedback; consult and support users during the time of exploitation Moreover, the update of selected components is included in this phase, to make sure, that the software is up-to-date and is invulnerable to a security breach.
SDLC MODELS
Waterfall SDLC Model
Waterfall – is a cascade SDLC model, in which development process looks like the flow, moving step by step through the phases of analysis, projecting, realization, testing, implementation, and support This SDLC model includes gradual execution of every stage completely This process is strictly documented and predefined with features expected to every phase of this software development life cycle model.
Simple to use and understand The software is ready only after the last
stage is over Management simplicity thanks to its
rigidity: every phase has a defined result
and process review
High risks and uncertainty
Development stages go one by one Not the best choice for complex and
object-oriented projects Perfect for the small or mid-sized
projects where requirements are clear
and not equivocal
Inappropriate for the long-term projects
Easy to determine the key points in the
development cycle
The progress of the stage is hard to measure while it is still in the development
Trang 7ADVANTAGES DISADVANTAGES
Easy to classify and prioritize tasks Integration is done at the very end, which
does not give the option of identifying the problem in advance
Use cases for the Waterfall SDLC model:
The requirements are precisely documented
Product definition is stable
The technologies stack is predefined which makes it not dynamic
No ambiguous requirements
The project is short
Spiral SDLC Model
Spiral model – is SDLC model, which combines architecture and prototyping by stages It is
a combination of the Iterative and Waterfall SDLC models with the significant accent on the risk analysis The main issue of the spiral model – is defining the right moment to make a step into the next stage The preliminary set time frames are recommended as the solution
to this issue The shift to the next stage is done according to the plan, even if the work on the previous stage isn’t done yet The plan is introduced basing on the statistics data, received during the previous projects even from the personal developer’s experience.
Trang 8ADVANTAGES DISADVANTAGES
Lifecycle is divided into small parts, and if the risk
concentration is higher, the phase can be finished
earlier to address the treats
Can be quite expensive
The development process is precisely documented
yet scalable to the changes
The risk control demands involvement of the highly-skilled professionals
The scalability allows to make changes and add
new functionality even at the relatively late stages
Can be ineffective for the small projects
The earlier working prototype is done - sooner
users can point out the flaws
Big number of the intermediate stages requires excessive documentation
Use cases for the Spiral model
Customer isn’t sure about the requirements
Major edits are expected during the development cycle
The projects with mid or high-level risk, where it is important to prevent these risks The new product that should be released in a few stages to have enough of client feedback
Agile SDLC Model
In the agile methodology after every development iteration, the customer is able to see the result and understand if he is satisfied with it or he is not This is one of the advantages of the agile software development life cycle model One of its disadvantages is that with the absence of defined requirements it is difficult to estimate the resources and development cost Extreme programming is one of the practical uses of the agile model The basis of such model consists of short weekly meetings – Sprints which are the part of the Scrum approach.
Trang 9ADVANTAGES DISADVANTAGES
Corrections of functional requirements
are implemented into the development
process to provide the competitiveness
Difficulties with measuring the final cost because of permanent changes
Project is divided by short and
transparent iterations
The team should be highly professional and client-oriented
Risks are minimized thanks to the
flexible change process
New requirements may conflict with the existing architecture
Fast release of the first product version With all the corrections and changes
there is possibility that the project will exceed expected time
Use cases for the Agile model:
The users’ needs change dynamically
Less price for the changes implemented because of the many iterations
Unlike the Waterfall model, it requires only initial planning to start the project
II Explain how risk is managed in the Spiral lifecycle model (P2)
Spiral model is one of the most important Software Development Life Cycle models, which provides support for Risk Handling In its diagrammatic representation, it looks like a
Trang 10spiral with many loops The exact number of loops of the spiral is unknown and can vary from project to project Each loop of the spiral is called a Phase of the software development process The exact number of phases needed to develop the product can be varied by the project manager depending upon the project risks.
The Radius of the spiral at any point represents the expenses(cost) of the project so far, and the angular dimension represents the progress made so far in the current phase The below diagram shows the different phases of the Spiral Model:
Each phase of the Spiral Model is divided into four quadrants as shown in the above figure The functions of these four quadrants are discussed below:
Trang 111 Objective determination and identify alternative solutions: Requirements
are gathered from the customers and the objectives are identified, elaborated, and analyzed at the start of every phase Then alternative solutions possible for the phase are proposed in this quadrant
2 Identify and resolve Risks: During the second quadrant, all the possible
solutions are evaluated to select the best possible solution Then the risks associated with that solution are identified and the risks are resolved using the best possible strategy.
3 Develop next version of the Product: During the third quadrant, the
identified features are developed and verified through testing At the end of the third quadrant, the next version of the software is available
4 Review and plan for the next Phase: In the fourth quadrant, the Customers
evaluate the so far developed version of the software In the end, planning for the next phase is started.
Advantages of Spiral Model:
Below are some advantages of the Spiral Model
1 Risk Handling: The projects with many unknown risks that occur as the
development proceeds, in that case, Spiral Model is the best development model to follow due to the risk analysis and risk handling at every phase
2 Good for large projects: It is recommended to use the Spiral Model in large and
complex projects
3 Flexibility in Requirements: Change requests in the Requirements at later phase
can be incorporated accurately by using this model
4 Customer Satisfaction: Customer can see the development of the product at the
early phase of the software development and thus, they habituated with the system
by using it before completion of the total product
Disadvantages of Spiral Model:
Below are some main disadvantages of the spiral model
1 Complex: The Spiral Model is much more complex than other SDLC models
2 Expensive: Spiral Model is not suitable for small projects as it is expensive
3 Too much dependability on Risk Analysis: The successful completion of the
project is very much dependent on Risk Analysis Without very highly experienced experts, it is going to be a failure to develop a project using this model
4 Difficulty in time management: As the number of phases is unknown at the start
of the project, so time estimation is very difficult.
Trang 12III Describe, with an example, why a particular lifecycle model is selected for a development environment (M1)
1 Introduction selecting a Software Development Life Cycle (SDLC)
Selecting a Software Development Life Cycle (SDLC) methodology is a challenging task for many organizations and software engineers What tends to make it challenging is the fact that few organizations know what are the criteria to use in selecting a methodology to add value to the organization Fewer still understand that a methodology might apply to more than one Life Cycle Model Before considering a framework for selecting a given SDLC methodology, we need to define the different types and illustrate the advantages and disadvantages of those models (please see the Software Development Life Cycle Models and Methodologies).
2 Discuss the suitability of each of the SDLC models for the project For each model, specify whether it is most, moderately or least suitable
Strong Project
Management
Excellent Excellent Excellent Excellent
Visibility of
Stakeholders
Trang 13Waterfall model
As a requirement of Tune Source, the waterfall model is not suitable for projects because waterfall will freeze the requirement of the project and it is difficult to go back to any stage after it is finished More, it is very expensive and takes time, beyond detailed planning Tune source is a big project and the original requirements will be changed because the end-user always makes changes to suit the environment If product is finished but is not the product needed of the end-user or during execution, the end-user wants to change the function or add it End-user must spend any money to change the end user’s requirement In conclusion, Waterfall is not suitable for Tune Source It is suitable for small projects.
Prototyping model
Prototyping model is the same waterfall model that is software requirement clearly defined and know Software development technologies When business analysis takes the request from tune source End-user gives current requests and clearly does not know software development technologies End-user only need to know the product that has the same as they want it an incomplete analysis Users confuse the prototype and the complete system Developers misinterpret user goals It is costly to implement the prototypes Conclusion it is also a suitable fortune source High cost and time to reach the final product It needs special skills to evaluate the risks and assumptions The cost is very expensive In conclusion, it is also not a suitable fortune course.
Spiral model
The spiral model is quite suitable for project because it’s used in the large applications and systems which built-in small phases or segments This will avoid the end product being requested by the end user but it is not really a suitable fortune source In response, the Spiral methodology works best for complicated projects with small functionality or strict budgets It is also suitable for projects with no clear requirements at the early stages, or with requirements that need to be evaluated.
Agile Software development
Agile software development is suitable for Tune Source because It can be used with any type of project, but it needs more engagement from the customer and to be interactive Providing teams with a competitive advantage by catching defects and making changes throughout the development process, instead of at the end It speeds up time spent on evaluations since each evaluation is only on a small part of the whole project Ensures changes can be made quicker and throughout the development process by having consistent evaluations to assess the product with the expected outcomes requested It keeps each project transparent by holding regular consistent meetings with customers and systems that allow everyone involved to access project data and progress It decreases the time required to avail some system features Conclusion, it’s suitable for project.