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 (4.32 MB, 24 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>A.Introduction... 4</b>
<b>B.Contents... 5</b>
<b>LO1 Describe different software development lifecycles...5</b>
<b>I.Describe two iterative and two sequential software lifecycle models. (P1)...5</b>
<b>II.Explain how risk is managed in the Spiral lifecycle model. (P2)...10</b>
<b>III. Describe, with an example, why a particular lifecycle model is selected for a development environment. (M1)...12</b>
<b>LO2 Explain the importance of a feasibility study...14</b>
<b>I.Explain the purpose of a feasibility report. (P3)...14</b>
<b>II.Describe how technical solutions can be compared. (P4)...16</b>
<b>III.Discuss the components of a feasibility report. (M2)...20</b>
<b>References... 23</b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>Summative Feedback:</b>
<b>Internal verification:</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><i>Software development lifecycle is the application of standard business practices to build softwareapplications. 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 allsoftware development projects. </i>
<i>SDLC is a way to measure and improve development. It allows for detailed analysis of each step ofthe process. This will help companies maximize efficiency at each stage. As computing powerincreases, 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 byidentifying inefficiencies and higher costs and fixing them for smooth functioning.</i>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>Stage 2. Designing project architecture</b>
<i>At the second phase of the software development life cycle, the developers are actuallydesigning the architecture. All the different technical questions that may appear on thisstage are discussed by all the stakeholders, including the customer. Also, here are definedthe technologies used in the project, team load, limitations, time frames, and budget.</i>
<b>Stage 3. Development and programming</b>
<i>After the requirements are approved, the process goes to the next stage – actualdevelopment. Programmers start here with the source code writing while keeping in mindpreviously defined requirements. The system administrators adjust the softwareenvironment, front-end programmers develop the user interface of the program and thelogic for its interaction with the server.</i>
<i>The programming by itself assumes four stagesAlgorithm development</i>
<i>Source code writingCompilationTesting and debugging</i>
<b>Stage 4. Testing</b>
<i>The testing phase includes the debugging process. All the code flaws missed during thedevelopment are detected here, documented, and passed back to the developers to fix. The</i>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><i>testing process repeats until all the critical issues are removed and software workflow isstable.</i>
<b>Stage 5. Deployment</b>
<i>When the program is finalized and has no critical issues – it is time to launch it for the endusers. After the new program version release, the tech support team joins. This departmentprovides 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, thatthe software is up-to-date and is invulnerable to a security breach.</i>
SDLC MODELS
<b>Waterfall SDLC Model</b>
<i>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 stagecompletely. This process is strictly documented and predefined with features expected toevery phase of this software development life cycle model.</i>
<i>High risks and uncertainty</i>
<i>Development stages go one by oneNot the best choice for complex and oriented projects</i>
<i>object-Perfect for the small or mid-sized projects where requirements are clear and not equivocal</i>
<i>Inappropriate for the long-term projects</i>
<i>Easy to determine the key points in the development cycle</i>
<i>The progress of the stage is hard to measure while it is still in the development</i>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><i>Easy to classify and prioritize tasksIntegration is done at the very end, which does not give the option of identifying the problem in advance</i>
<b>Use cases for the Waterfall SDLC model:</b>
<i>The requirements are precisely documentedProduct definition is stable</i>
<i>The technologies stack is predefined which makes it not dynamicNo ambiguous requirements</i>
<i>The project is short</i>
<b>Spiral SDLC Model</b>
<i>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 therisk 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.</i>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><i>Lifecycle is divided into small parts, and if the risk concentration is higher, the phase can be finished earlier to address the treats</i>
<i>Can be quite expensive</i>
<i>The development process is precisely documented yet scalable to the changes</i>
<i>The risk control demands involvement of the highly-skilled professionals</i>
<i>The scalability allows to make changes and add new functionality even at the relatively late stages</i>
<i>Can be ineffective for the small projects</i>
<i>The earlier working prototype is done - sooner users can point out the flaws</i>
<i>Big number of the intermediate stages requires excessive documentation</i>
<b>Use cases for the Spiral model</b>
<i>Customer isn’t sure about the requirements</i>
<i>Major edits are expected during the development cycle</i>
<i>The projects with mid or high-level risk, where it is important to prevent these risksThe new product that should be released in a few stages to have enough of client feedback</i>
<b>Agile SDLC Model</b>
<i>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 suchmodel consists of short weekly meetings – Sprints which are the part of the Scrum approach.</i>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><i>Corrections of functional requirementsare implemented into the developmentprocess to provide the competitiveness</i>
<i>Difficulties with measuring the final cost because of permanent changes</i>
<i>Project is divided by short and transparent iterations</i>
<i>The team should be highly professional and client-oriented</i>
<i>Risks are minimized thanks to the flexible change process</i>
<i>New requirements may conflict with the existing architecture</i>
<i>Fast release of the first product versionWith all the corrections and changes there is possibility that the project will exceed expected time</i>
<b>Use cases for the Agile model:</b>
<i>The users’ needs change dynamically</i>
<i>Less price for the changes implemented because of the many iterationsUnlike the Waterfall model, it requires only initial planning to start the project</i>
<b>II.Explain how risk is managed in the Spiral lifecycle model. (P2)</b>
<i>Spiral model is one of the most important Software Development Life Cycle models, whichprovides support for Risk Handling. In its diagrammatic representation, it looks like a</i>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><i>spiral with many loops. The exact number of loops of the spiral is unknown and can varyfrom project to project. Each loop of the spiral is called a Phase of the softwaredevelopment process. The exact number of phases needed to develop the product can bevaried by the project manager depending upon the project risks.</i>
<i>The Radius of the spiral at any point represents the expenses(cost) of the project so far, andthe angular dimension represents the progress made so far in the current phase. The below diagram shows the different phases of the Spiral Model: </i>
<i>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:</i>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><i>1.<b>Objective determination and identify alternative solutions: Requirements</b></i>
<i>are gathered from the customers and the objectives are identified, elaborated,and analyzed at the start of every phase. Then alternative solutions possible forthe phase are proposed in this quadrant. </i>
<i>2.<b>Identify and resolve Risks: During the second quadrant, all the possible</b></i>
<i>solutions are evaluated to select the best possible solution. Then the risksassociated with that solution are identified and the risks are resolved using thebest possible strategy.</i>
<i>3.<b>Develop next version of the Product: During the third quadrant, the</b></i>
<i>identified features are developed and verified through testing. At the end of thethird quadrant, the next version of the software is available. </i>
<i>4.<b>Review and plan for the next Phase: In the fourth quadrant, the Customers</b></i>
<i>evaluate the so far developed version of the software. In the end, planning forthe next phase is started.</i>
<b>Advantages of Spiral Model: </b>
<i>Below are some advantages of the Spiral Model. </i>
<i><b>1. Risk Handling: The projects with many unknown risks that occur as the</b></i>
<i>development proceeds, in that case, Spiral Model is the best development model tofollow due to the risk analysis and risk handling at every phase. </i>
<i><b>2. Good for large projects: It is recommended to use the Spiral Model in large and</b></i>
<i>complex projects. </i>
<i><b>3. Flexibility in Requirements: Change requests in the Requirements at later phase</b></i>
<i>can be incorporated accurately by using this model. </i>
<i><b>4. Customer Satisfaction: Customer can see the development of the product at the</b></i>
<i>early phase of the software development and thus, they habituated with the systemby using it before completion of the total product. </i>
<b>Disadvantages of Spiral Model: </b>
<i>Below are some main disadvantages of the spiral model. </i>
<i><b>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</b></i>
<i>project is very much dependent on Risk Analysis. Without very highly experiencedexperts, it is going to be a failure to develop a project using this model. </i>
<i><b>4. Difficulty in time management: As the number of phases is unknown at the start</b></i>
<i>of the project, so time estimation is very difficult.</i>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><b>III. Describe, with an example, why a particular lifecycle model is selected for a development environment. (M1)</b>
1. Introduction selecting a Software Development Life Cycle (SDLC)
<i>Selecting a Software Development Life Cycle (SDLC) methodology is a challenging task formany organizations and software engineers. What tends to make it challenging is the factthat few organizations know what are the criteria to use in selecting a methodology to addvalue to the organization. Fewer still understand that a methodology might apply to morethan one Life Cycle Model. Before considering a framework for selecting a given SDLCmethodology, we need to define the different types and illustrate the advantages anddisadvantages of those models (please see the Software Development Life Cycle Models andMethodologies).</i>
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.
<b>Unclear UserRequirement</b>
<b>Strong ProjectManagement</b>
<b>Visibility ofStakeholders</b>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>reusabilityWaterfall model </b>
<i>As a requirement of Tune Source, the waterfall model is not suitable for projects becausewaterfall will freeze the requirement of the project and it is difficult to go back to any stageafter it is finished. More, it is very expensive and takes time, beyond detailed planning. Tunesource is a big project and the original requirements will be changed because the end-useralways makes changes to suit the environment. If product is finished but is not the productneeded of the end-user or during execution, the end-user wants to change the function oradd it. End-user must spend any money to change the end user’s requirement. Inconclusion, Waterfall is not suitable for Tune Source. It is suitable for small projects.</i>
<b>Prototyping model</b>
<i>Prototyping model is the same waterfall model that is software requirement clearly definedand know Software development technologies. When business analysis takes the requestfrom tune source. End-user gives current requests and clearly does not know softwaredevelopment technologies. End-user only need to know the product that has the same asthey 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 isalso a suitable fortune source. High cost and time to reach the final product. It needsspecial skills to evaluate the risks and assumptions. The cost is very expensive. Inconclusion, it is also not a suitable fortune course.</i>
<b>Spiral model </b>
<i>The spiral model is quite suitable for project because it’s used in the large applications andsystems which built-in small phases or segments. This will avoid the end product beingrequested by the end user but it is not really a suitable fortune source. In response, theSpiral methodology works best for complicated projects with small functionality or strictbudgets. It is also suitable for projects with no clear requirements at the early stages, orwith requirements that need to be evaluated.</i>
<b>Agile Software development </b>
<i>Agile software development is suitable for Tune Source because It can be used with anytype 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 changesthroughout the development process, instead of at the end. It speeds up time spent onevaluations since each evaluation is only on a small part of the whole project. Ensureschanges can be made quicker and throughout the development process by havingconsistent evaluations to assess the product with the expected outcomes requested. It keepseach project transparent by holding regular consistent meetings with customers andsystems that allow everyone involved to access project data and progress. It decreases thetime required to avail some system features. Conclusion, it’s suitable for project.</i>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">1. What is Feasibility Report?
<i>A feasibility report is a testimony that attempts to create some sort of action. Feasibilityreports are created to persuade/help the decision-makers to choose between availableoptions. Remember that your option is not the only one, the decision-makers willprobably have many to choose from. A feasibility report also determines whether or notthe investigated task can be done with the number of resources available OR how manyresources will be necessary in order to complete the task. Feasibility may be useful in alot of different situations such as event planning, finances, or even remodeling yourhome.</i>
<i>Feasibility reports are usually used to sway decision-makers towards one direction orthe other. Many times, there is only one course of action but, there needs to be a secondcourse of action.</i>
2. Type of Feasibility.
<i>A feasibility analysis evaluates the project’s potential for success; therefore, perceivedobjectivity is an essential factor in the credibility of the study for potential investors andlending institutions. There are five types of feasibility study—separate areas that afeasibility study examines, described below.</i>
<b>a. Technical Feasibility</b>
</div>