Đang tải... (xem toàn văn)
IntroductionSoftware development life cycle SDLC is the process of determining how an information system can support business needs, design thesystem, build and deliver the system to the
Trang 1ASSIGNMENT 01 FRONT SHEET
Trang 2PHUNG HUU MINH KHANH GDD2100331
Trang 3❒ Summative Feedback: ❒ Resubmission Feedback:
Internal Verifier’s Comments:
Trang 4PHUNG HUU MINH KHANH GDD2100332
Trang 5Table of Contents
List of Figures 5
List of Tables 5
I Introduction 6
II Describe two iterative and two sequential software lifecycle models (P1) 6
1 Definition of Software Development Life Cycle (SDLC) 6
2 How the SDLC Works? 18
3 What are the phases of SDLC? 19
4 Advantages of the SDLC? 22
5 What is the suitable model for the project, and explain why? 22
6 Discuss the merits of applying the waterfall model to a large software development project 23
III Explain how risk is managed in the Spiral lifecycle model (P2) 23
1 Definition of Risk Management process 23
2 Why is risk assessment important? 24
3 What is the goal of risk assessment? 24
4 Five Steps of the Risk Management Process 25
5 Risk Handling in Spiral Model 28
6 Apply to Tune Source project with problems to be faced and remedies 28
IV Explain the purpose of a feasibility report (P3) 29
3.1 Technical Feasibility Study 29
3.2 Economic Feasibility Study 30
Trang 6PHUNG HUU MINH KHANH GDD2100333
Trang 7V Describe how technical solutions can be compared (P4) 32
1.Introduction: 32
2.Feasibility criteria 32
3.Alternative matrix for the Tune Source project 34
Trang 8PHUNG HUU MINH KHANH GDD2100334
Trang 9List of Figures
Figure 1: Waterfall Model 7
Figure 2: Spiral Model 9
Figure 3: V-Model 12
Figure 4: Prototyping Model 14
Figure 5: Agile Model 16
Figure 6: How the SDLC Works? 18
Figure 7: Risk Management process 23
Figure 8: Identify the rick 25
Figure 9: Analyze the risk 26
Figure 10: Monitor the rick 27
Figure 11: Technical Feasibility Study 30
Figure 12: Economic Feasibility Study 30
Figure 13: Operational Feasibility 31
Figure 14: Legal Feasibility 31
List of TablesTable 1: Different Phases of Waterfall Model in Software Engineering 8
Trang 10PHUNG HUU MINH KHANH GDD2100335
Trang 11I Introduction
Software development life cycle (SDLC) is the process of determining how an information system can support business needs, design thesystem, build and deliver the system to the users It is a framework that has a set of tasks to be performed at each stage in the softwaredevelopment process It is a process of giving a complete idea of the development, design and maintenance of a software project byproviding that all the functionality along with the requirements, goals and final goals of the software project users are all addressedtogether With SDLC, the quality of the software project and the overall software development process is enhanced If you've taken acoding class or have programmed yourself, this sounds simple enough However, in the real world, it's not so easy Therefore, I willintroduce clearly the importance of SDLC.
II Describe two iterative and two sequential software lifecycle models (P1)
1 Definition of Software Development Life Cycle (SDLC).
The Software Development Life Cycle (SDLC) is a process that produces software with the highest quality and lowest cost in the
shortest time possible SDLC provides a well-structured flow of phases that help an organization to quickly produce high-qualitysoftware which is well-tested and ready for production use
The SDLC involves six phases as explained in the introduction Popular SDLC models include the waterfall model, spiral model, andAgile model.
1.1 Waterfall Model
to be finished earlier than the subsequent segment can start and not using an overlap among the phases Each segment isdesigned for appearing particular pastime all through the SDLC segment It turned into added in 1970 with the aid of using WinstonRoyce.
Trang 12PHUNG HUU MINH KHANH GDD2100336
Trang 13Figure 1: Waterfall Model.
Different Phases of Waterfall Model in Software Engineering
developed are collected from the customer.
Or database like Oracle, MySQL, etc.
Or other high-level technical details of the project.
specifications given by the customer.
the code according to the customer's requirements.
Trang 14PHUNG HUU MINH KHANH GDD2100337
Trang 15Table 1: Different Phases of Waterfall Model in Software Engineering.
When to use SDLC Waterfall Model:
Requirements are not changing frequently.Application is not complicated and big.Project is short.
Requirement is clear.Environment is stable.
Technology and tools used are not dynamic and is stable.Resources are available and trained.
Advantages of Waterfall Model:
Before the next phase of development, each phase must be completed.Suited for smaller projects where requirements are well defined.
They should perform quality assurance test (Verification and Validation) before completing each stage.Elaborate documentation is done at every phase of the software’s development cycle.
Project is completely dependent on project team with minimum client intervention.Any changes in software are made during the process of the development.
Disadvantages of Waterfall Model:
Error can be fixed only during the phase.
It is not desirable for complex project where requirement changes frequently.Testing period comes quite late in the developmental process.
Documentation occupies a lot of time of developers and testers.
Clients valuable feedback cannot be included with ongoing development phase.Small changes or errors that arise in the completed software may cause a lot of problems.
Trang 16PHUNG HUU MINH KHANH GDD2100338
Trang 171.2 Spiral Model
The spiral model is a risk-based software development process model It is a combination of waterfall model and iterative model.The Spiral Model helps to apply the software development elements of multiple process models to a software project based on theefficient development process of unique risk patterns.
Each phase of the spiral in software engineering begins with a design goal and ends with the customer reviewing progress Thespiral model was first mentioned by Barry Boehm in his 1986 report.
Figure 2: Spiral Model.
Trang 18PHUNG HUU MINH KHANH GDD2100339
Trang 19Spiral Model PhasesActivities performed during phase
It includes cost estimates, schedules, and resources for the iteration This includes understanding system requirements in ongoing communication between the system analyst and the customer.
finalization of risk mitigation strategies.
identifying and monitoring risks, such as delays and cost overruns.
Table 2: Spiral Model Phases.
When to use Spiral Model?
A Spiral model in software engineering is used when project is large.When releases are required to be frequent, spiral methodology is used.When creation of a prototype is applicable.
When risk and costs evaluation is important Spiral methodology is useful for medium to high-risk projects.When requirements are unclear and complex, Spiral model in SDLC is useful.
When changes may require at any time.
When long term project commitment is not feasible due to changes in economic priorities.
Trang 20PHUNG HUU MINH KHANH GDD21003310
Trang 21Additional functionality or changes can be done at a later stage
Cost estimation becomes easy as the prototype building is done in small fragmentsContinuous or repeated development helps in risk management
Development is fast and features are added in a systematic way in Spiral developmentThere is always a space for customer feedback
Disadvantages of Spiral Model
Risk of not meeting the schedule or budget.
Spiral development works best for large projects only also demands risk assessment expertise.For its smooth operation spiral model protocol needs to be followed strictly.
Documentation is more as it has intermediate phases.
Spiral software development is not advisable for smaller project, it might cost them a lot.
1.3 V-Model
The V-Model is an SDLC model in which the execution of processes occurs in a V-shaped sequence It is also known as verification
and verification model Furthermore, it is an extension of the Waterfall model, based on assigning a testing phase to eachcorresponding development phase This means that for every phase in the development cycle, there is a testing phase directlyrelated to it It's a disciplined model where the next stage only starts when the previous one is complete.
Trang 22PHUNG HUU MINH KHANH GDD21003311
Trang 23Figure 3: V-Model.
Verification: This is a static analysis technique (verification) that is performed without running any code Is the process of
evaluating the stages of product development to determine whether specified requirements are met Verification: It is a dynamicanalysis technique (functional, non-functional) and tests performed by running the code Validation is the process of evaluatingsoftware after the development phase is complete to determine whether the software meets the customer's expectations andrequirements.
Trang 24PHUNG HUU MINH KHANH GDD21003312
Trang 25Requirement Analysis: This phase contains detailed communication with the customer to understand their requirementsand expectations This stage is known as Requirement Gathering.
System Design: This phase contains the system design and the complete hardware and communication setup for developingproduct.
Architectural Design: System design is broken down further into modules taking up different functionalities The datatransfer and communication between the internal modules and with the outside world (other systems) is clearlyunderstood.
Module Design: In this phase the system breaks down into small modules The detailed design of modules is specified, alsoknown as Low-Level Design (LLD).
System Testing: System testing test the complete application with its functionality, inter dependency, and communication Ittests the functional and non-functional requirements of the developed application.
User Acceptance Testing (UAT): UAT is performed in a user environment that resembles the production environment UATverifies that the delivered system meets user’s requirement and system is ready for use in real world.
Advantages of V-Model
This is a highly disciplined model and Phases are completed one at a time V-Model is used for small projects where project requirements are clear
Trang 26PHUNG HUU MINH KHANH GDD21003313
Trang 27Simple and easy to understand and use
This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an error-free and good quality product
It enables project management to track progress accurately.
Disadvantages of V-Model
High risk and uncertainty.
It is not a good for complex and object-oriented projects
It is not suitable for projects where requirements are not clear and contains high risk of changing This model does not support iteration of phases It does not easily handle concurrent events.
1.4 Prototyping Model
The Prototyping Model is one of the most popularly used Software Development Life Cycle Models (SDLC models) This model is used when the customers do not know the exact project requirements beforehand In this model, a prototype of the end product isfirst developed, tested and refined as per customer feedback repeatedly till a final acceptable prototype is achieved which forms the basis for developing the final product.
In this process model, the system is partially implemented before or during the analysis phase thereby giving the customers an opportunity to see the product early in the life cycle The process starts by interviewing the customers and developing the incomplete high-level paper model.
Figure 4: Prototyping Model.
Trang 28PHUNG HUU MINH KHANH GDD21003314
Trang 29The prototyping model has the following six SDLC phases as follow:
Step 1: Gathering and analysing requirements
Requirement analysis is the first step in prototyping The system's requirements are defined in depth at this phase Throughout the process,users of the system are interviewed to learn what they anticipate from it.
Step 2: Create a quick design
Sometimes known as a fast design, a preliminary design is the second step A basic system design is built at this stage It is, however, not acomplete design It offers the user a quick overview of the system The prototype development is aided by rapid design.
Step 3: Create a Model
The information acquired during rapid design is used to create an actual prototype in this step It is a scaled-down version of the neededsystem.
Step 4: Initial user assessment
The proposed system is submitted to the client for an initial review at this stage It aids in determining the working model's strengths andweaknesses Customer feedback and suggestions are gathered and forwarded to the developer.
Step 5: Make the prototype better
If the user is dissatisfied with the present prototype, you must modify it in response to their feedback and ideas.
This phase will continue until all of the user's criteria have been fulfilled A final system is produced based on the authorised final prototype ifthe user is pleased with the developed prototype.
Trang 30PHUNG HUU MINH KHANH GDD21003315
Trang 31After being designed based on the final prototype, the final system is thoroughly tested and put into production Routine maintenance isperformed on the system to prevent large-scale breakdowns and minimise downtime.
1.5 Agile Model
The Agile SDLC model is a combination of iterative and incremental process models that focus on process adaptability andcustomer satisfaction by rapidly delivering software products is active The Agile method breaks the product into small incrementalbuilds These builds are provided in iterations.
The Agile model believes that each project needs to be handled differently and that existing methods need to be tailored to best fitthe project's requirements In Agile, tasks are broken down into time boxes (small time frames) to deliver specific features for arelease An iterative approach is taken and a working build of the software is delivered after each iteration.
Each build is incremental in terms of features; The final build contains all the features requested by the customer.
Figure 5: Agile Model.
These are now collectively referred to as Agile Methodologies, after the Agile Manifesto was published in 2001.
Following are the Agile Manifesto principles −
Trang 32PHUNG HUU MINH KHANH GDD21003316
Trang 33Individuals and interactions − In Agile development, self-organization and motivation are important, as are interactions like location and pair programming.
co-Working software − Demo working software is considered the best means of communication with the customers tounderstand their requirements, instead of just depending on documentation.
Customer collaboration − As the requirements cannot be gathered completely in the beginning of the project due to variousfactors, continuous customer interaction is very important to get proper product requirements.
Responding to change − Agile Development is focused on quick responses to change and continuous development.
Advantages of Agile Model
Is a very realistic approach to software development.Promotes teamwork and cross training.
Functionality can be developed rapidly and demonstrated.Resource requirements are minimum.
Suitable for fixed or changing requirementsDelivers early partial working solutions.
Good model for environments that change steadily.Minimal rules, documentation easily employed.
Enables concurrent development and delivery within an overall planned context.Easy to manage.
Disadvantages of Agile Model
Not suitable for handling complex dependencies.More risk of sustainability, maintainability and extensibility.
An overall plan, an agile leader and agile PM practice is a must without which it will not work.
Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.There is a very high individual dependency, since there is minimum documentation generated.
Trang 34PHUNG HUU MINH KHANH GDD21003317
Trang 35Transfer of technology to new team members may be quite challenging due to lack of documentation.
2 How the SDLC Works?
SDLC reduces software development costs while increasing the quality and speed of the development process SDLCs achieve these seemingly irreconcilable goals by adhering to one strategy This avoids possible risks in software development projects The strategy starts with assessing the deficiencies of existing systems.
Then determine the requirements for the new system Software is then created through analysis, planning, design, development, testing and deployment SLDC reduces repetitive and subsequent rework by eliminating costly mistakes, such as forgetting to consult end users or customers, for example.
It should also be noted that a lot of attention was put into the testing phase Because SDLC is a cyclical technique, code quality needs to be verified at each stage Many companies place less emphasis on testing, even though a greater focus on testing can save them a lot of rework, time, and money.
Let us look at the various stages of the Software Development Life Cycle now.
Figure 6: How the SDLC Works?
Trang 36PHUNG HUU MINH KHANH GDD21003318
Trang 37The SDLC process is broken down into the following SDLC steps:
Phase 1: Requirement collection and analysis.Phase 2: Design.
Phase 3: Coding.Phase 4: Testing.
Phase 5: Installation/Deployment.Phase 6: Maintenance.
Trang 38PHUNG HUU MINH KHANH GDD21003319