1. Trang chủ
  2. » Tất cả

Sdlc bsaf200013 dangtantai asm1

21 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 574,46 KB

Nội dung

ASSIGNMENT 1 FRONT SHEET 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 O[.]

ASSIGNMENT FRONT SHEET Qualification BTEC Level HND Diploma in Computing Unit number and title Unit 9: Software Development Life Cycle Submission date Oct – 29 – 2021 Date Received 1st submission Re-submission Date Oct – 29 -2021 Date Received 2nd submission Student Name Dang Tan Tai Student ID BSAF200013 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 D1 ❒ Summative Feedback: Grade: IV Signature: ❒ Resubmission Feedback: Assessor Signature: Date: Learning Outcomes and Assessment Criteria Pass Merit Distinction LO1 Describe different software development lifecycles P1 Describe two iterative and two sequential software lifecycle models M1 Describe, with an example, why a particular lifecycle model is selected for a development environment P2 Explain how risk is managed in the Spiral lifecycle model D1 Assess the merits of applying the Waterfall lifecycle model to a large software development project LO2 Explain the importance of a feasibility study P3 Explain the purpose of a feasibility report P4 Describe how technical solutions can be compared M2 Discuss the components of a D2 Assess the impact of different feasibility report feasibility criteria on a software investigation Table of Contents I Describe different software life cycle Software development life cycle Models in software development life cycle II How to risk managed in spiral lifecycle model 14 III The purpose of a feasibility report 15 IV Describe how technical solutions can be compared 17 References 21 I Describe different software development life cycle 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 what the specification document requires - Software evolution: This is the process of perfecting functions and interfaces to improve software as well as customer requirements 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 - Implementation: Deploy the system on customer environment Maintenance and Operations: This is the installation, configuration and training phase for the customer This phase corrects product defects (if any) and develops new changes requested by the customer Photo Water fall model Apply: Usually applied to projects that 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: - - The V model is today one of the most widely used software development processes In the V model, the test execution takes place right from the requisition phase The V model is also called the verification model and the validation model To understand the V model, let's first understand what verification and validation are in software Verification: Verification is a static analysis technique In testing, this technique is performed without having to run the code It includes several activities such as review, inspection, and walkthrough Validation: Validation is a dynamic analysis technique in which testing is performed by executing code Examples include functional and non-functional testing techniques Photo 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: - The spiral model is a risk-driven development process for software projects The combination of the strengths of other models and the problem solving of the previous models still exists Based on the individual risk models of each project, the spiral model provides a way to apply elements of one or more treatment models, such as the accelerometer, waterfall model, or model evolutionary prototyping Stages of Spiral Model: - - - Planning phase: Collect and analyze project requirements from customers Includes the following tasks: estimating costs, scheduling project implementation , determining the number of human resources, identifying necessary resources and work environment, finding out system requirements (requirements) from which to produce specification documents to serve the exchange between customers and system analysis later Risk analyst phase: An analytical process will be performed to identify risks and suggest alternatives A prototype will be created at the end of the risk analysis phase If any risks are found in this process, alternative solutions will be suggested and implemented Engineering phase: This is the stage where the project is code by the developers, the testers test and deploy the software on the customer's website Evaluation phase: The customer will participate in this phase to evaluate the work, the product and ensure that the product meets all the requirements set out previously If there are any change requests from the customer, the stages will be repeated This is an important stage because customer feedback about the product is required before the product is released Photo 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: - - Agile is a set of principles for software development that promotes adaptive planning, incremental development, early delivery, and continuous improvement Agile also advocates rapid adaptation to changes These principles are shared in the Agile Software Development Manifesto and the 12 Principles behind Agile does not define a specific method for achieving these, but there are many different software development methods that satisfy and follow those criteria Purpose: The purpose of Agile methods is to help businesses achieve agility, thereby improving competitiveness and sustainable development Agile methods have changed the face of the world not only in Software Development but are also showing value in other areas such as Marketing (Agile Marketing), education (EduScrum, Lean Edu, etc.), design (Lean UX, Design Thinking), Startup (Lean Startup) and Hardware Photo Agile model Apply: Can be used with any type of project, but it requires customer engagement and interactivity In addition, it can be used when the customer requires the functionality to be ready for a short period of time (3 weeks) Benefits: Reduces the time it takes to take advantage of some system features The end result is high quality software in the least possible time and customer satisfaction Disadvantaged: Depends on the skill of the software developer Scalability Documentation is done at a later stage Scrum Model: 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 Scrum Model Benefits: One person can 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 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: - As for risk, at the analysis stage a highly qualified specialist is needed to perform the analysis - Not useful for small projects - The project time and cost can be limitless because of the spiral nature of the model - The project documentation can be very lengthy because of the intermediate stages - Risk may not meet schedule or budget - The success of the project depends heavily on the risk analysis phase Since then we have risks when working with this model, so we will give solutions for the above risks: - III We need to find ourselves a highly qualified analyst or find people who have experience working with projects using this Spiral model, and must work together smoothly and flexibly to always come up with new solutions comments to help the project develop completely and sooner - Because the disadvantage of the Spiral model is that it is only compatible with large projects and not compatible with small projects But we can use them in the level of small but highly complex project by analyzing the requirements then assessing the risk, this will take time but it brings safety to the user whole project - The project cost of the project using this model is very high, so to be able to optimize the cost, we need to make clear and organized requirements right from the beginning - Because the project using this model will be very long, but besides that, there is also the benefit that we can already have enough documentation about the project, and at the same time we can optimize the document through keywords - The degree of dependence on risk analysis we can overcome by analyzing risks into components that are highly likely to occur during project construction The purpose of feasibility report What is feasibility report? Research the possibility of bringing all the factors relevant to the project into analysis, including economic, technical, legal and planning aspects, to determine the likelihood of a project's success At this stage it is necessary to define the opportunity for the consultant to be viable or not? Is it safe, effective or not? This is also the beginning of the research, the content research is similar to the monetary research phase but different in a more detailed, more precise level All heads are considered active, that is, taking into account any elements that may appear according to each content study Consider a certain calculation of the effectiveness of the project in terms of the effect of any factors and provide impact measures to ensure that the project is effective Technical feasibility Technical analysis for "How to build a system?" question and answer Technical feasibility: How to build a system? To Technology and Application will less generates more risk The project size: Large projects have a lots of risk Compatibility: About the compatibility of the project will depend on a lot of different factors including objective factors and subjective factors Objective factors: Requirements from customers to create software that customers require There are risks when customers not know too well what their requirements are Who are the users of the software? What technology they want the project to use inside of it Whether the cost and level of the project are suitable for the company's human resources Subjective factors: These are factors that come from within the company, including: human resources, the ability to implement the project, what is the technology used for that project In terms of risks above the company will have a lot because there is a high probability that the project will be very large and overwhelming for the manpower and technical 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 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 want to compare programming languages Java, C# and evaluate in general which language might be suitable for the project Photo SWOT Analyst This is a table to compare between programming language Language Strengths Weakness Java Write once run all Hard to learn platforms The complier of Java not optimized like C++ Opportunities Developing large systems Easy to control bugs Threats Because it is easy to develop, it will be difficult to maintain if C# JavaScript Using for Android Development Development Website Open Source Development Windows Phone Development Website App Run good in environment of Microsoft NET Fast Easy to develop Have many libraries Have a lot framework Memory management, with Java, is quite expensive The security is not good It is not common Not compatible with large projects It is not logical It does not have data type Very hard to control Different from other languages Easy to maintenance Clear syntax Too many libraries support for Java the person receiving the maintenance later does not understand the writer's code They have a lot of Because it works libraries to support good in NET Clear syntax environment when Expanding Application we bring it to use in for Web, APP another environment Run better in NET it will not run or not environment compatible We can build Artificial intelligence application for can replace website and native programming application mobile by technologies using native framework Too many companies using JavaScript for Front End and Back End Second Table, I am going to compare general in the real projects by statistics from my opinion Technical Criteria C# JavaScript Java Graphical user interface Range 1-10 Performance Supports by multiple platforms Good security 70 No 95 Yes 80 Yes 1-100 6 1-10 Developing Cost Maintenance costs 200$ initial 300$ initial Customizable interface No User satisfaction with the Satisfied software Total 83 Economic 150$ initial 150$ initial Organizational Very easy to change 300$ initial 350$ initial Very satisfied A little bit, but not easy to change Satisfied 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# ... software development life cycle Software development life cycle Software development life cycle (SDLC) is a structure consisting of a set of operations and correlated results used in development

Ngày đăng: 04/03/2023, 00:34

w