Tải bản đầy đủ (.pdf) (76 trang)

btec level 5 hnd diploma in computing unit 09 software development life cycle 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.87 MB, 76 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ASSIGNMENT 01 FRONT SHEET</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<small>PHUNG HUU MINH KHANH GDD2100331</small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>❒ </b>

<b>Summative Feedback: </b>

<b>❒ </b>

<b>Resubmission Feedback:</b>

<b>Internal Verifier’s Comments:</b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<small>PHUNG HUU MINH KHANH GDD2100332</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Table of Contents

List of Figures... 5

List of Tables... 5

<b>I. Introduction... 6</b>

<b>II. Describe two iterative and two sequential software lifecycle models. (P1)... 6</b>

<b>1. Definition of Software Development Life Cycle (SDLC)...6</b>

<b>2. How the SDLC Works?... 18</b>

<b>3. What are the phases of SDLC?... 19</b>

<b>4. Advantages of the SDLC?... 22</b>

<b>5. What is the suitable model for the project, and explain why?... 22</b>

<b>6. Discuss the merits of applying the waterfall model to a large software development project...23</b>

<b>III. Explain how risk is managed in the Spiral lifecycle model. (P2)... 23</b>

<b>1. Definition of Risk Management process... 23</b>

<b>2. Why is risk assessment important?... 24</b>

<b>3. What is the goal of risk assessment?... 24</b>

<b>4. Five Steps of the Risk Management Process... 25</b>

<b>5. Risk Handling in Spiral Model... 28</b>

<b>6. Apply to Tune Source project with problems to be faced and remedies...28</b>

<b>IV. Explain the purpose of a feasibility report. (P3)... 29</b>

<b>3.1. Technical Feasibility Study... 29</b>

<b>3.2. Economic Feasibility Study... 30</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<small>PHUNG HUU MINH KHANH GDD2100333</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>V. Describe how technical solutions can be compared. (P4)... 32</b>

<b>1.Introduction:... 32</b>

<b>2.Feasibility criteria... 32</b>

<b>3.Alternative matrix for the Tune Source project... 34</b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<small>PHUNG HUU MINH KHANH GDD2100334</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>List of Figures</b>

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

<b>List of Tables</b>

Table 1: Different Phases of Waterfall Model in Software Engineering...8

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<small>PHUNG HUU MINH KHANH GDD2100335</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

I. <b>Introduction</b>

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.

<b>II. Describe two iterative and two sequential software lifecycle models. (P1)</b>

<b>1. Definition of Software Development Life Cycle (SDLC).</b>

<b>The Software Development Life Cycle (SDLC) is a process that produces software with the highest quality and lowest cost in the</b>

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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<small>PHUNG HUU MINH KHANH GDD2100336</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Figure 1: Waterfall Model.

<b>Different Phases of Waterfall Model in Software Engineering</b>

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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<small>PHUNG HUU MINH KHANH GDD2100337</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Table 1: Different Phases of Waterfall Model in Software Engineering.

<b>When to use SDLC Waterfall Model:</b>

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.

<b>Advantages of Waterfall Model:</b>

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.

<b>Disadvantages of Waterfall Model:</b>

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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>PHUNG HUU MINH KHANH GDD2100338</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

1.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.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<small>PHUNG HUU MINH KHANH GDD2100339</small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>Spiral Model PhasesActivities performed during phase</b>

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.

<b>When to use Spiral Model?</b>

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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<small>PHUNG HUU MINH KHANH GDD21003310</small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Additional 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

<b>Disadvantages of Spiral Model</b>

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

<b>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</b>

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.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<small>PHUNG HUU MINH KHANH GDD21003311</small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

Figure 3: V-Model.

<b>Verification: This is a static analysis technique (verification) that is performed without running any code. Is the process of</b>

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.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<small>PHUNG HUU MINH KHANH GDD21003312</small>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Requirement 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.

<b>Advantages of V-Model</b>

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.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<small>PHUNG HUU MINH KHANH GDD21003313</small>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Simple 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.

<b>Disadvantages of V-Model</b>

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.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<small>PHUNG HUU MINH KHANH GDD21003314</small>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

The prototyping model has the following six SDLC phases as follow:

<b>Step 1: Gathering and analysing requirements</b>

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.

<b>Step 2: Create a quick design</b>

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.

<b>Step 3: Create a Model</b>

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.

<b>Step 4: Initial user assessment</b>

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.

<b>Step 5: Make the prototype better</b>

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.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<small>PHUNG HUU MINH KHANH GDD21003315</small>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

After 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 −

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<small>PHUNG HUU MINH KHANH GDD21003316</small>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

Individuals 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.

<b>Advantages of Agile Model</b>

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.

<b>Disadvantages of Agile Model</b>

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.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<small>PHUNG HUU MINH KHANH GDD21003317</small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Transfer of technology to new team members may be quite challenging due to lack of documentation.

<b>2. How the SDLC Works?</b>

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?

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<small>PHUNG HUU MINH KHANH GDD21003318</small>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

The 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.

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<small>PHUNG HUU MINH KHANH GDD21003319</small>

</div>

×