













Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Software development life cycleSoftware development life cycleSoftware development life cycleSoftware development life cycleSoftware development life cycleSoftware development life cycle
Typology: Schemes and Mind Maps
1 / 21
This page cannot be seen from the preview
Don't miss anything!














Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 9 : Software Development Life Cycle Submission date Oct – 29 – 2021 Date Received 1st submission Oct – 29 - 2021 Re-submission Date Date Received 2nd submission Student Name Dang Tan Tai Student ID BSAF Class PBIT16101_CNTT1 Assessor name Cao Tien Thanh Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature Đặng Tấn Tài Grading grid P1 P2 P3 P4 M1 M2 D
Grade: Assessor Signature: Date: IV Signature:
I. Describe different software development life cycle
1. Software development life cycle Software development life cycle (SDLC) is a structure consisting of a set of operations and correlated results used in development to produce a software product. The basic activities of the software development process: - Software specification: Define the functions, operating conditions of the software. - Software development: The process of developing specifications. - Software evaluation: Software must be evaluated to make sure it can at least do what the specification document requires. - Software evolution: This is the process of perfecting functions and interfaces to improve software as well as customer requirements. 2. Models in Software Development Life Cycle In software development life cycle we have some common model to develop and expand the project like: Water Fall model, V-V Shaped model, Spiral Model, Agile Model, Scrum Model. Water Fall Model: Define: The waterfall model is a model of the software development process in which the development process looks like a flow, with phases being executed in strict order and with no backtracking or leapfrogging. are: requirements analysis, design, implementation, testing, integration and maintenance. Stages of the waterfall model: - Requirement gathering: This is the stage of determining the functional and non-functional requirements that the software system should have. The output of this phase is the requirements specification document. This document will be the foundation for the next phases to the end of the project. - System Analyst: It is the stage of determining how the software system meets the requirements of the customer. This phase performs analysis and design of the software system. - Coding: Is the stage of product implementation based on requirements specification and module design document. - Testing: The tester will receive the product from the developer and perform testing for the component group and system testing. The last stage of testing will be Acceptance Testing, this phase also includes the participation of customers.
Apply: Usually applied to projects that do not frequently change requirements. Benefits: Easy to use, accessible Well-defined stages and activities Confirm at each stage, ensuring early detection of defects Disadvantaged: It is very difficult to go back to any stage when it's over. Few features work, and editing its scope is quite difficult, reducing value. V-V Shaped Model: Define:
Photo 2 V-V Model Apply: Software requirements must be clearly defined Software engineering and tools must be understood Benefits: Simple to use Phase-specific delivery Perform verification and validation early in each development phase Disadvantaged: The adjustment range is quite difficult and expensive. In the V model, development and quality assurance activities are performed concurrently. There is no discrete phase called testing, instead testing is started right from the requirement gathering phase. Verification and validation activities go hand in hand. Spiral Model: Define:
Photo 3 Sprial Model
Apply: Commonly used for large applications and systems built in small phases or in segments Benefits: Estimates (i.e. budget, schedule, etc.) become more realistic as a workflow, because significant problems are discovered earlier. Early involvement of developers Risk management and phased system development Disadvantaged: High cost and long time to final product Good skill in assessing risks and assumptions is required. Agile Model: Define:
Define: Is an agile software development process. With the main principle is to break down the software that needs to be produced into small parts for development (these small parts must be readable and Releaseable), get customer opinions and change accordingly during the development process. development to ensure the product release meets what the customer wants. Scrum divides the project into development loops called sprints. Each sprint usually takes 2 - 4 weeks (30 days) to complete. It is very suitable for projects with a lot of change and high speed requirements. Photo 5 Scrum Model Benefits: One person can do many things eg dev can test Detect defects much earlier than traditional methods Customers quickly see the product thereby giving early feedback. Capable of being applied to projects where customer requirements are not clear at the outset. Disadvantaged: The level of the team is to have a certain skill Must have an understanding of the aglie model. Difficulty determining budget and timing. Always listen to feedback from customers and change accordingly, so time will last when there are too many change requests from customers. The role of the PO (Product Owner) is very important, the PO is the product oriented person. If the PO does not do well, it will affect the overall result.
II. How risk is managed in the Spiral life cycle model To be able to reduce the risks when working with the Spiral model, we need to review the disadvantages of this model including:
expertise of the employees inside. In addition, when implementing a project, it is likely that one employee will be responsible for many different parts of the project and the time is very short, resulting in poor and unstable software quality. Staff with low technical skills will greatly affect the project progress and quality. Besides, customers' requirements are not clear, it will make the project very difficult to develop when customers change their general requirements to smaller details. Moreover, it will be very difficult for both parties if the customer requires a technology that may be new or the company does not work with it, because the company needs to ask employees to learn new knowledge, The new technology required by the customer will lead to the project being delay and because of the new knowledge, the new technology is not in the expertise of the programmers, which will cause the software to be both behind schedule and poor quality. get high Finally, dealing with risks is that we need to assess the feasibility of the project and whether it is suitable for the company and its human resources. Has the company used this new technology in other projects, if not, it should be negotiated with the customer to make the technology that the company currently has. Economic feasibility: The second feasibility analyst is perform an economic feasibility. We need to keep in mind the organizations have limited capital resources and multiple projects is going to competing for funding Economic feasibility: Should build it? The cost to development the project Annual operating costs Maintain the software costs To develop a complete project and maintain them, there must be costs for that project, including human costs, management costs, development costs, maintenance costs. And the problem we need to ask is how to manage these costs and calculate the division of these costs appropriately. We need to analyze clearly and thoroughly before proceeding with the project. And always be prepared for unforeseen risks that involve our unexpected costs Organization feasibility
Feasibility study method is one of the technical methods of management decision making. Feasibility study method is a scientific research method to find reasonable solutions for decision options in the relationship between needs and capabilities, between opportunities, the possibility of success and risks, disadvantages, failures. failure as well as ensuring economic and social efficiency for the decision options. The management decision is the most rational of the possible options to deal with the problem according to the goals and conditions and environment of the system in the present and in the future. An organization feasibility analyst attempts to answer the question “If build it, what will they come” Organization feasibility: If build it, what will they come? Project manager Senior management Users Other stakeholders One way to assess the viability of an organization's project is to set the goals of the project and understand the purpose of the project and assess whether it is appropriate for the business level. of the company6 or not. the alignment of business plan and strategy are two inseparable links, the tighter the connection, the less risky the project implementation will be. IV. Describe how technical solutions can be compared To be able to compare techniques with each other as well as technology, what we need to do is to make an overview of that technique, just like we compare the strengths and weaknesses of each technique. techniques and technologies used in the project, thereby drawing accurate conclusions about the techniques to be used in the project. To be able to compare techniques to solve a problem, I will use the SWOT model, also known as Strengths, Weakness, Opportunities, Threats to analyze the situation that I posed by choosing choose the technique for each programming language, let's say I
Using for Android Development Development Website Open Source Memory management, with Java, is quite expensive. Easy to maintenance Clear syntax Too many libraries support for Java the person receiving the maintenance later does not understand the writer's code. C# Development Windows Phone Development Website App Run good in environment of Microsoft .NET The security is not good It is not common Not compatible with large projects They have a lot of libraries to support Clear syntax Expanding Application for Web, APP Run better in .NET environment Because it works good in .NET environment when we bring it to use in another environment it will not run or not compatible JavaScript Fast Easy to develop Have many libraries Have a lot framework It is not logical It does not have data type Very hard to control Different from other languages We can build application for website and native application mobile by using native framework Too many companies using JavaScript for Front End and Back End Artificial intelligence can replace programming technologies Second Table, I am going to compare general in the real projects by statistics from my opinion Technical Criteria C# JavaScript Java Range Graphical user interface 7 9 8 1 - 10
Performance 70 95 80 1 - 100 Supports by multiple platforms No Yes Yes Good security 6 6 9 1 - 10 Economic Developing Cost 200$ initial 150$ initial 300$ initial Maintenance costs 300$ initial 150$ initial 350$ initial Organizational Customizable interface No Very easy to change A little bit, but not easy to change User satisfaction with the software Satisfied Very satisfied Satisfied Total 83 110 97 After comparing, I decided to build a website application using JavaScript because JavaScript have many technologies can build for Website, Native App (Android and IOS) by React Native, and the economics to maintenance is very low and we can easy to change the graphic for website, finally the satisfaction is very high because it is faster than Java and C#.