Software Development Life Cycle (SDLC) Models: A Comparative Analysis, Papers of Network security

Assignment 1 Software Development Life Cycle

Typology: Papers

2021/2022

Uploaded on 04/21/2023

unknown user
unknown user 🇻🇳

1 document

1 / 24

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ASSIGNMENT 01 FRONT SHEET
Qualification
BTEC Level 5 HND Diploma in Computing
Unit number and title
Unit 09: Software Development Life Cycle
Submission date
15/02/2023
Date Received 1st submission
15/02/2023
Re-submission Date
Date Received 2nd submission
Student Name
Ngo Thanh Tung
Student ID
GCH220075
Class
GCH1103
Assessor name
Do Quoc Binh
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
Tung
Grading grid
P1
P3
P4
M1
M2
D2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Partial preview of the text

Download Software Development Life Cycle (SDLC) Models: A Comparative Analysis and more Papers Network security in PDF only on Docsity!

ASSIGNMENT 01 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 0 9: Software Development Life Cycle Submission date 15/02/2023 Date Received 1st submission 15/02/ Re-submission Date Date Received 2nd submission Student Name Ngo Thanh Tung Student ID GCH Class GCH1103 Assessor name Do Quoc Binh 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 Tung Grading grid P1 P2 P3 P4 M1 M2 D1 D

❒ Summative Feedback: ❒ Resubmission Feedback:

Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:

Introduction Tune Source is a business based in the southern part of California that was created by three entrepreneurs who have a background in the music industry. The company has open a number of brick-and-mortar stores in southern California specializing in hard-to-find and classic jazz, rock, country, and folk recordings. In order to increase sales, they wanted to initiate a project that can enable them to selling digital music products to customers through in-store kiosks and on their website on the internet. Therefore, they have contacted to ABC company to help out the develop of a software for the specified requirements in the system request. Task 1 – SDLC model

1. Describe the following SDLC models: waterfall, v-model, prototyping, scrum

and spiral. Choose one that you think suitable for the project and explain why.

1.1 Describe each of the SDLC models A software development life cycle model is a conceptual framework describing all of the tasks and activities involved in a software development project from planning to maintenance. There are many models, each with its own variety of tasks and activities. Software development requires proper identification of requirements, their implementation, and software deployment. However, the activities do not end there. After the distribution of the software, proper maintenance has to be provided in a timely manner. Some of well-known software development models are: waterfall, v-model, prototyping and Extreme programming 1.1. 1 Waterfall Models What is Waterfall model? Waterfall model is a sequential, linear approach to software development. It is commonly used in software engineering and product development. The waterfall model, like a waterfall, follows a logical sequence of SDLC steps, similar to the direction water flows over the edge of a cliff. It sets distinct endpoints or goals and aiming to reach goals at each phase of development. The phases of development cannot be revisited after their completion. It is frequently used to define the first software development method. The model is also utilized more broadly as a high-level project management technique for complicated, multifaceted projects.

Figure 1: Waterfall Development (p. 51 ) When to use the Waterfall Methodology

  • Project is constrained by cost and/ or time
  • The requirements and scope are well known, clear and fixed.
  • Product definition is stable.
  • Technology is understood.
  • The project is short. Benefit of the Waterfall model Advantages Disadvantage
  • Identifying requirements long before programming begins
  • Limiting changes to the requirements as the project proceeds
  • Design must be completely specified before programming begins
  • A long time elapses between the completion of the system proposal in the analysis phase and the delivery of system
  • Testing is treated almost as an afterthought in the implementation phase
  • Important requirements may be overlooked in the volumes of documentation
  • Expensive post-implementation programming may be needed
  • Users may forget the original purpose of the system 1.1.2 V-model What is V-model? The V-model is a type of SDLC model where process executes in a sequential manner in V-shape. It is also known as Verification and Validation model. It is based on the association of a testing

item can be developed. When all of the project requirements detail is not known in advance, this process is most effective. In order to develop a simplified version of the system propose, it perform the analysis, design and implementation phases concurrently provide minimal features. Then, based on the reaction and feedbacks from the users, the developers reanalyze and redesign, and reimplement a next more improve prototype until the analysts, users and sponsor all agree on. Figure 3: System Prototyping (p.55) When to use Prototype model?

  • Prototype model should be used when the desired system needs to have a lot of interaction with the end users such as online systems, web interfaces
  • It might take a while for a system to be built that allows ease of use and needs minimal training for the end user.
  • The customers do not know the exact project requirements beforehand Benefit of the Prototyping model Advantages Disadvantage
  • Quickly provides a system for users to evaluate
  • Reassures users that progress is being made
  • A very useful approach when the users do not know the exact requirement or have difficulty expressing requirements for the system
  • the lack of careful, methodical analysis prior to making design and implementation decisions
  • System prototypes may have some fundamental design limitations that are a direct result of an inadequate understanding of the system’s true requirements early in the project. 1.1.4 Extreme programming What is Extreme programming? Extreme programming (XP) focuses on customer satisfaction and teamwork. The core value of it is communication, simplicity, feedback and courage. Team member is expected to be able to communicate with customer and other team member. The design of the project remains simple and clean. Extreme programming usually only is small project team that frequently testing provides feedback as soon as possible and developers are in charge of respond to changing requirements and technology. (Barry Boehm, 1998)

Figure 4: Extreme Programming (p.57) When to use Extreme programming?

  • Expect their system’s functionality to change every few months
  • Experience constantly changing requirements or work with customers who aren’t sure what they want the system to do
  • Want to mitigate project risk, especially around tight deadlines
  • Include a small number of programmers (between 2 and 12 is preferable)
  • Are able to work closely with customers
  • Are able to create automated unit and functional tests Advantages Disadvantage
  • Allows software development companies to save costs and time required for project realization
  • The developers create simple code that can be improved at any moment
  • The whole process in XP is visible and accountable
  • Able to listen to constant feedback and make changes
  • Regular testing at the development stage assists to create software faster
  • Contributes increasing employee satisfaction and retention
  • Lack of defect documentation and may lead to the occurrence of repeated bug
  • Does not measure code quality assurance and may cause defects in the initial code
  • Not the best option if programmers are unable to communicate properly

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

In this assignment scenario, whether the project model is suitable or not depend on the project scenario, which is present by the table below:

The system need to be error free and able to access most of the time. Any bug should be predictable beforehand and come up with countermeasure. As for a music application like Tune Source System, managing a website and an application is fairly simple and any major bug and error can be easily notice and report by the user. However, the system must be active most of the time to encourage users to utilize it whenever needed which require the app have to reliable most of the time. Criterion 5 : With short time schedule The customer requires the system to be developed in a short amount of time. For Tune Source scenario, the company request that the system need to be brought to the market as soon as possible since there are numerous of competitors. In order to remain competitive in the market niche of rare music, the system must be release as customer requested with main features. Criterion 6 : With schedule visibility The system with schedule visibility means the system is open to receive input from customer to tailor the project to matching the requirement of the customer. Since Tune Source company have not working with ABC company in the past, therefore, communication between both side is essential to ensure the productivity of the project. It is preferred to have a model with high schedule visibility which allow developers to receive feedback from the customer and make changes accordingly.

Conclusion

First of all, the company Tune Source want to release the project as soon as possible in order to remain competitive in the market makes model such as Waterfall and V-model is out of the option. Since these type model need to fully develop all functions and document the system which make the project take longer time to be released. On the other hand, Prototype and Extreme Program model is flexible and able to work with short time schedule. However, Prototype model is not very reliable when it comes to maintain a consistent system. Bug/Error can occur without an effective way to deal with them. Tune Source is not an extremely complicated project and does not require the use of new or unfamiliar technology in which XP model preforming poorly at. What XP method excel at is being a reliable model, have no problem when dealing with bug/error, able to solve every requirement of the customer effectively and can deliver a functional system to the market in a short amount of time. In addition, it also has schedule visibility which allow to receive input from the customer and make changes accordingly. These benefits are what make XP model is the most suited method for Tune Source because this project require for a sustainability system that with fully functional main features and can be delivered as soon as possible.

1. 3 Discuss the merits of applying the waterfall model to a large software development project. The waterfall methodology is a design process built in a sequential order. It has also been referred to as the “linear-sequential life cycle model” for the way in which it is formatted. Much like the way a waterfall trickles and flows down, this type of project management involves a set of steps that feed into each other. Much like an actual waterfall, there’s no turning back once one phase of development is completed– the project immediately moves on to the next phase.

When it comes to extensive software development project, Waterfall model produces much more comprehensive documentation, higher quality coding and thorough examination of outliers before the product is released to production. It puts the burden of creating supportable code on the analyst, designer, coder and tester before it gets rolled into production. The support staff then have a well- established code base to maintain with interventions as the exception rather than the rule. This code will be far easier to tune in later point releases and more scalable because the code base is inherently stable. Agile software lifecycle models are only an advantage if you have continuous feedback from the customer. Ben Aston from The Digital Project Manager explains, “Waterfall is generally regarded with some disdain as an inefficient and passé traditional project management approach. But Waterfall can be a useful and predictable approach if requirements are fixed, well documented, and clear, if the technology is understood and mature, if the project is short, and if there’s no additional value gained from ‘going agile’. A Waterfall approach can actually provide more predictable end result for budget, timeline, and scope.” The advantages can be mentioned of Waterfall model such as: 1.3. 1 Uses clear structure The Waterfall methodology, in comparison with other methodology, focuses on a clear, well- defined set of steps. When there are roadblocks to completing a step in a project, teams are notified immediately. Because half-finished projects are less likely to be pushed aside, resulting in teams produce a more complete, finished project in the end. In addition to being clear, the progression of Waterfall is intuitive. Unlike Six Sigma or Scrum, Waterfall does not require certifications or specific training for project managers or employees. If you visually outline the process at the beginning and explain the methodology, team members will be able to jump into the Waterfall system without a steep learning curve slowing their progress. 1.3.2 Determines the end goal early A major element of Waterfall methodology that is committing to a final product, objective, or outcome right away at the beginning, and teams should not drift away from that commitment. For small projects that the objectives are well-defined, this step makes everyone aware of the overall goal from the beginning, thereby reducing the potential for sidetracking as the project progresses. As opposed to Scrum which organizes projects into multiple sprints, Waterfall keeps the focus on the end goal at all times. If your group has a concrete aim with a definitive end date, Waterfall model will reduce the danger of getting overwhelmed as you strive to accomplish that objective. 1.3.3 Transfers information well The Waterfall method is highly organized and structured, so it's not surprising that it focuses on ensuring that information is transferred accurately at every stage. When it's used in software development, every new step usually involves a new set of people. Even if this is not applicable to your company, you should still document information throughout the project's lifespan. If you're passing jobs between employees or if there are unexpected changes in personnel, Waterfall puts a priority on making sure information is easy to access so that new team members can quickly get up to speed if needed. 1.3.4 Allow early design change It is commonly understood that making changes to a design becomes increasingly difficult over time. However, with Waterfall methodology, it is possible to make alterations to the application in

  1. Unrealistic schedules and budgets - Remove any unnecessary feature that can added to the cost of the project - Reuse old software and equipment to reduce development cost Underestimate the amount of time and cost to complete each phase.
  2. Developing the wrong software functions - Create prototype version of a software to test the function - Utilize user surveys to ensure all feature is develop and working as intended Miscommunication between two company. The developer not fully understand the client requirement.
  3. Developing the wrong user interface - Create prototype version and gather feedback from the user - Test the design in various scenarios and observes for unexpected output The developer did not fully understand the client vision of the interface and lack of communication between them.
  4. Gold plating (^) • Prioritize designing to meet customer first - Carefully analyze cost-benefit to maximize the project performance Essential features did not get prioritize. Budget was not managed accordingly and use on unnecessary area.
  5. Continuing stream of requirement changes - Have clear set of requirements - Set and manage expectations, explain to stakeholders that there is always a cost associated with making a change Did not have a clear vision or expectation of the result of the project.
  6. Straining Computer- science capabilities - Create prototyping project to simulate and test the system - Benchmarking to make sure the available technology can handle the project Overcomplicate the project or create a unoptimized system cause available technology unable to keep up. (2022, Barry W. Boehm) The table below will demonstrate how much impact these risk will affect the Tune Source project: Risk Frequent Severe 1 Medium High 2 Low Medium 3 Low High 4 Low Medium 5 High Medium 6 High High 7 Medium Medium Column “Frequent” will show how often or the likelihood of this risk will occur when developing the project Column “Severe” will show how much this risk can affect the development of the project For example: Risk Frequent Severe 3 Low High This will imply that this risk is unlikely to occur and if it does, it can have major impact and affect the development of the project.

Task 2 – Feasibility study

1. Discuss the purpose of conducting a feasibility study for the project

1.1 What is a Feasibility Study A feasibility study evaluates the potential profitability of a project or system. As part of a feasibility study, the objective and rational analysis of a potential business or venture is conducted to determine its strengths and weaknesses, potential opportunities and threats, resources required to carry out, and ultimate success prospects. The two critical aspects to consider when examining feasibility are the required cost and the expected value. A feasibility study is a comprehensive evaluation of a proposed project that all factors critical to a project's success in order to determine whether or how successful it will be. Success in business may be defined primarily by return on investment, meaning that the project will generate enough profit to justify the investment. However, many other important factors may be identified on the plus or minus side, such as community reaction and environmental impact. (2023. Simplilearn)

1. 2 Types of Feasibility Study Operational Feasibility This assessment involves undertaking a study to analyze and determine whether and how well the organization’s needs can be met by completing the project. Operational feasibility studies also examine how a project plan satisfies the requirements identified in the requirements analysis phase of system development. Technical Feasibility The assessment focuses on the organization's technical resources. Using it, organizations can determine whether the technical resources meet capacity and the technical team is capable of converting the ideas into working systems. Technical feasibility also involves the evaluation of the hardware, software, and other technical requirements of the proposed system. Economic Feasibility This assessment typically involves a cost – benefits analysis of the project, helping organizations determine the viability, cost, and benefits associated with a project before financial resources are allocated. Additionally, it serves as an independent project assessment and enhances project credibility, providing decision makers with information to determine the positive economic benefits to the organization that the proposed project will provide. Scheduling Feasibility This assessment is the most important for project success; after all, a project will fail if not completed on time. In scheduling feasibility, an organization estimates how much time the project will take to complete. 1.3 Purpose of conducting a feasibility study for the project

reduce development cost and only priority to meet the specified requirement. This is a much safer way since having a small and simple system is much easier to develop and manage. However, this will put the company in a competitive position in the market since many other companies can also offer similar product. On the other hand, by creating a product with more feature that greatly benefit user can be much more expensive and difficult to manage. But it will also have more potential to attract customers thus generate more revenue to compensate the risk. 2.2.3 Organizational Feasibility Organizational Feasibility is analyzing the level of acceptance the system will receive from its users and how it will be incorporated into the regular functioning of the organization. The main objective of the project is to increase profit of by expand the company business and selling digital music downloads using the company website or in-store kiosks. Therefore, create a system that promote customer experience is highly recommend. There are two candidates represent the feasibility that can apply to the project: a. Candidate 1 This Candidate will focus on develop a software that able to meet the requirements specified in the system request and eliminate any extra procedure and reduce cost. First of all, this candidate will focus developing a system that have function which was specified in the Business Requirements:

  • Search for music in our digital music archive.
  • Listen to music samples.
  • Purchase individual downloads at a fixed fee per download.
  • Establish a customer subscription account permitting unlimited downloads for a monthly fee.
  • Purchase music download gift cards The candidate chooses Java language as the primary language and focus on the security of the customer, provide privacy for any information the customer might provide hence increase their trust. Application with less features will reduce the number of employees and number of hours needed to work on the project, hence saving the budget for the company. In addition, it also settle for a much cheaper hosting server which can drastically reduce the development cost. However, all of these might also affect the customer experience and hinder it growths. Development for Tune Source Project Cost Personnel System Analysts (600 hours/ea $40.00/hr) 16 $ 384, Programmer/Analysts (680 hours/ea $31.00/hr)

GUI Designer (570 hours/ea $35.00/hr) 16 $ 319, Telecommunications Specialist ( hours/ea $45.00/hr)

System Architect (320 hours/ea $45.00/h) 24 $ 345, Database Specialist (580 hours/ea $42/hr) 18 $ 438, System Librarian (500 hours/ea $24.00/hr) 21 $ 252, Expenses

Smalltalk training registration ($3 5 00.00/student) 30 $ 105, New Hardware & Software Server for development ($1 50 ,000/Classic) 16 $ 2,400, Server Software (operation system, misc.) 1 $ 42, Printer 30 $ 1 2 0, DBMS server software 1 $ 20, DBMS client software ($ 8 00 per client) 40 $ 32, Total Development Cost: $ 5,357, Project Annual Operation Costs Personnel Programmer/Analysts (350 hours/ea $31.00/hr)

System Librarian (300 hours/ea $24.00/hr) 10 $ 72, Expenses Maintenance Agreement for Classic Server

Maintenance Agreement for server DBMS software

Preprinted Form (15,000/year) $ 15, Maintenance Hardware $ 100, Total Project Annual Cost: $ 363, Labor costs are assumed to increase at a 4% rate each year. Therefore, there are changes in cost of Annual Operation. Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 $363,700 $371,788 $380,200 $388,948 $398,045 $407, Year 1 = personnelCost + expensesCost Year 2 = personnelCost(1) * (100% + 4%) + expensesCost Year 3 = personnelCost(2) * (100% + 4%) + expensesCost (…) In the Assignment scenario, it was mentioned that the Tune Source company have the Annual Growth about 3% - 5% per year which allow us to calculate an estimate of new revenue stream each year. newRevenue = $757,500 + $950,000 + $205,000 + $153,000 = $2,065,  Revenue(1) = $2,065, Revenue(2) = Revenue(1) * 103% = $2,127, Revenue(3) = Revenue(2) * 103% = $2,191, Calculate Present Value In the future, the value of money is less than the value of money today since you have the potential to invest it and receive more money along the line. Assuming the company could have invested the money at a 12% rate of return which also make the discount rate is 12%.

b. Candidate 2 This Candidate will focus on increase the user experience with the application with some cost for expending features of the app. Specifically, one of the recommendations features that most modern apps included nowadays such as: able to give feedback, rating and share comments. With these improvements, the app will undoubtably becomes more popular with the user. This candidate utilizes the best server to ensure the system always run smoothly without issue, strengthen the app reliability. In addition, employee also assigned for a training program to be able to work with Python, one of the most popular programing language for developing AI, in order to develop a recommendation system to become more appear to the users. However, these improvements also come with a hefty price along with higher labor cost to keep the system working and will take longer to develop. Development for Tune Source Project Cost Personnel System Analysts (6 8 0 hours/ea $40.00/hr) 18 $ 489, Programmer/Analysts ( 75 0 hours/ea $31.00/hr)

GUI Designer ( 720 hours/ea $35.00/hr) 20 $ 504, Telecommunications Specialist ( hours/ea $45.00/hr)

System Architect (320 hours/ea $45.00/h) 26 $ 374, Database Specialist ( 620 hours/ea $42/hr) 18 $ 468, System Librarian ( 600 hours/ea $24.00/hr) 22 $ 316, Expenses Python training program (2000.00/employee) 25 $ 50, Smalltalk training registration ($3500.00/student) 30 $ 105, New Hardware & Software Server for development ($180,000/Premium Pro) 16 $ 2,880, Server Software (operation system, misc.) 1 $ 42, Printer 30 $ 120, DBMS server software 1 $ 20, DBMS client software ($ 8 00 per client) 40 $ 32, Total Development Cost: $ 6,429, Project Annual Operation Costs Personnel Programmer/Analysts (350 hours/ea $31.00/hr)

System Librarian (300 hours/ea $24.00/hr) 12 $ 86, Expenses Maintenance Agreement for Premium Pro Server

Maintenance Agreement for server DBMS software

Preprinted Form (15,000/year) $ 15, Maintenance Hardware $ 100, Total Project Annual Cost: $ 384,

Labor costs are assumed to increase at a 4% rate each year. Therefore, there are changes in cost of Annual Operation. Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 $384,100 $392,764 $401,775 $411,146 $420,891 $431, Year 1 = personnelCost + expensesCost Year 2 = personnelCost(1) * (100% + 4%) + expensesCost Year 3 = personnelCost(2) * (100% + 4%) + expensesCost (…) With the new AI technology, the project Tune Source will be able to become more appear to wider range of audience hence increase the revenue. The estimates of tangible value to the company include the following:

  • $ 980 ,500 in sales from individual music downloads.
  • $1,320,000 in sales from customer subscriptions.
  • $205,000 in additional in-store or website CD sales.
  • $ 223 ,000 in sales from music download gift cards. newRevenue = $ 980 ,500 + $1,320,000 + $205,000 + $ 223 ,000 = $ 2 , 728 , 500 With the 3% - 5% growth per year allows us to calculate an estimate of new revenue stream each year.  Revenue(1) = $ 2 , 728 , 500 Revenue(2) = Revenue(1) * 103% = $ 2,810, Revenue(3) = Revenue(2) * 103% = $ 2,894, Calculate Present Value In the future, the value of money is less than the value of money today since you have the potential to invest it and receive more money along the line. Assuming the company could have invested the money at a 12% rate of return which also make the discount rate is 12%. The “current year” dollar value for costs/benefits n years into the future for i is given discount rate Present_Value(n) = 1 / (1 + i)n Present_Value (1) = 1 / (1 + 0.12)^1 = 0. Present_Value (2) = 1 / (1 + 0.12)^2 = 0.