Btec FPT International College: Unit: Software Development Life Cycle
Btec FPT International College: Unit: Software Development Life Cycle
INFORMATION TECHNOLOGY
ASSIGNMENT 1
UNIT: SOFTWARE DEVELOPMENT LIFE CYCLE
Date received
Submission date 8/3/2023 (1st submission) 8/3/2023
Date received
Re-submission date (2nd submission)
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:
Long
Grading grid
P1 P2 P3 P4 M1 M2 D1 D2
I certify that this assignment is my own work, based on my personal study and that I
have acknowledged all material and sources used in its preparation, whether they be books,
articles, reports, lecture notes, and any other kind of document, electronic or personal
communication. I also certify that this assignment has not previously been submitted for
assessment in any other unit, except where specific permission has been granted from all
unit coordinators involved, or at any other time in this unit, and that I have not copied in
part or whole or otherwise plagiarized the work of other persons.
I verify that the work I've submitted for this assignment is all my own, and that all
research sources have been properly credited.
ACKNOWLEDGMENTS..........................................................................................................................
TABLE OF CONTENT..............................................................................................................................
INTRODUCTION....................................................................................................................................
1.1 Describe two iterative and two sequential software lifecycle models. (P1).....9
Waterfall Model:.............................................................................................11
V-model:..........................................................................................................14
Prototyping......................................................................................................23
1.2 Dentify some risks and discuss an approach to manage them (P2)...............25
1.2.2 Apply to Tune Source project with problems to be faced and remedies. 27
1.2.3 Describe effective Risk Management Process that are associated with
developing a project (step by step)..................................................................................28
1.3 Discuss the purpose of conducting a feasibility report (study) for the project
(P3) 32
1.4.3 Describe the advantages and disadvantages of each option. The table
comparison between solutions should be included.........................................................42
CONCLUSION......................................................................................................................................
REFERENCES.......................................................................................................................................
Figure 3: V-model..........................................................................................................15
Figure 16:Economic.......................................................................................................39
Software Development Life Cycle, or SDLC, is a process for producing software that is
of the highest quality and at the lowest cost in the shortest amount of time. An organization
can swiftly deliver high-quality software that has been rigorously tested and is appropriate
for use in production thanks to the well-structured stages of the SDLC.
There are six steps in the SDLC. Popular SDLC models include the waterfall model,
spiral model, and agile model (ALEXANDRA ALTVATER, 2020).
Figure 1:SDLC
• Requirement analysis
• Planning
At the planning stage of the SDLC, which is a vital step, the development team
estimates the costs and resources required to meet the identified requirements. This entails
evaluating the project's viability and creating plans to address any risks that might emerge
during implementation. The team may establish a strong strategy that gives a clear roadmap
for the development process and ensures the project's success by carefully evaluating all the
project's components. The planning stage also aids in reducing project-related risks and
uncertainties, which may finally result in the delivery of a high-quality product within the
allocated time and financial limits.
• Software development
Developers start writing the software's code during the SDLC's software development
phase. It's crucial for developers to stick to the predetermined development plan. A correct
coding style and established process rules can also help guarantee consistency and quality in
the development process.
The software is put through a number of tests during the testing phase of the SDLC to
find and fix any mistakes or problems that might impair its functionality or quality. Prior to
being supplied to the consumers, the primary goal is to make sure the software complies
with the specified requirements and is of a high caliber. Before moving on to the next stage,
the developers correct any faults or problems that are found during testing.
• Deployment
The SDLC's deployment phase is when the program is made accessible to users by
being released into the production environment. This stage is crucial because it enables any
remaining issues to be found and fixed before the product is made available. An efficient
technique for software development is provided by the SDLC framework, which enables
developers to design and evaluate requirements prior to starting the actual development
process. This method assures that software programs satisfy the appropriate specifications
and quality standards while lowering unnecessary development expenditures.
Waterfall Model:
Definition: Each phase of the Software Development Life Cycle (SDLC) must be
finished before moving on to the next one in the linear and sequential "waterfall" model of
software development. The model employs a top-down methodology, with each phase
building on the results of the one before it. Analysis of requirements, design,
implementation, testing, deployment, and maintenance are the phases of the waterfall
model. This model, which emphasizes the need of thorough planning, documentation, and
testing, is best suited for tasks with clearly defined criteria and known results. For projects
with dynamic needs, it might not be the best approach because any modifications to the
requirements might necessitate beginning the SDLC from scratch.
Sequential and linear: Model steps must be carried out in this order, and the
current stage must be finished before moving on to the following.
Simple job degradation Each stage's tasks and responsibilities are delineated
explicitly, ensuring that the team members are aware of their roles.
The steps in the development process must be finished and thoroughly
examined before going on to the next stage of the process.
The process of quality control is made in each stage to verify that the final
product quality fulfills the established requirements.
The waterfall paradigm is frequently employed in projects with well specified
requirements that remain unaltered throughout development.
Waterfall models need thorough and detailed documentation at every level,
which makes it simpler to coordinate and manage the development process.
Phases: The sequential phases in Waterfall model are
PERFOMED STUDENT: PHAM TIEN LONG
The waterfall model is a software development process that follows a sequential
approach, and it consists of several phases. The first phase is requirement gathering and
analysis, where all possible requirements for the system are identified and documented. In
the second phase, system design, the specifications from the first phase are analyzed, and
the system architecture is defined.
In the implementation phase, the system is developed in small units, and each unit is
tested to ensure functionality. These units are then integrated into the system, and the
entire system is tested for any faults and failures in the integration and testing phase.
After the functional and non-functional testing is completed, the product is deployed
in the customer environment or released into the market. The final phase is maintenance,
where patches are released to fix any issues that arise in the client environment, and new
versions are released to enhance the product. Maintenance is done to deliver these changes
in the customer environment.
Advantages Disadvantages
The sequential approach of the waterfall The waterfall model is inflexible and doesn't
model is easy to understand and allow for changes once a phase has been
implement. completed.
Each phase is well-defined, and progress It is difficult to estimate time and costs
can be easily tracked. accurately at the beginning of the project
when all requirements are not yet clear.
The waterfall model is suitable for projects Testing is done at the end of the project,
with a clear and fixed set of requirements. which makes it difficult and costly to fix any
The testing phase is extensive and ensures The waterfall model is not suitable for
that the software meets all requirements projects with changing requirements or
before it is deployed. projects that require iterative development.
Process and results are well documented. Poor model for long and ongoing projects.
V-model:
Definition: V-Model is a software development model that gives specific steps and
stages for software development. V-Model is called "V" because it is represented by the
shape of the V. The left and the right stages.
Phases:
The V-Model Model, like other process models, includes the key phases; for more
information on SDLC phase definitions, see this article.
Furthermore, it divides the testing procedure into specific sections to assure the
validation and verification process. As a result, it includes the following testing steps.
Collect and determine the requirements: This stage includes collecting and
identifying product requirements.
System design: This stage includes system design with software, hardware,
and other components.
Detailed design: This stage includes the detailed design of software
components.
Programming and checking the unit: This stage includes programming and
checking the software units.
It helps ensure that test stages are integrated into the software development process
and are performed in parallel with the programming process.
Steps and stages are clearly defined, making the software development process
easier to manage and monitor.
Advantages Disadvantages
Clear and well-structured: V-model provides Lack of flexibility: V-model is a rigid and
a clear and well-structured approach to sequential process, which means that it
software development, which makes it may not be suitable for projects that
easier for team members to understand require a more flexible and iterative
their roles and responsibilities in the approach.
development process.
Easy to manage: V-model is easy to manage Limited user involvement: Because the V-
because it is a well-structured and model is a sequential process, it may not
predictable process that can be easily allow for enough user involvement in the
tracked and managed by project managers. development process, which can lead to a
final product that does not meet the user's
needs.
The notion of the V-Model The waterfall model, for example, is quite
rigid.
Spiral Model
Definition: Spiral Model is a software development model used to develop large
software products, complex and highly allocated. This model is a combination of the method
of strengthening and developing stairs, allowing risk situations to be identified and resolved
during development.
Phases:
Create continuous loops to develop and check the software until it meets customer
requirements.
Advantages Disadvantages
Risk Management: The Spiral Model is Complexity: The Spiral Model can be
designed to manage risks effectively. It complex and difficult to understand,
identifies and addresses potential risks early especially for smaller development teams.
in the software development life cycle, and It requires a high level of expertise and
the iterative nature of the model allows for experience to manage the risk analysis,
continuous risk analysis and mitigation. prototyping, and other activities involved.
Flexibility: The Spiral Model is a flexible Time-Consuming: The Spiral Model can be
model that can accommodate changes and time-consuming, especially in the early
adjustments throughout the software stages of the software development life
development life cycle. It can incorporate cycle. The risk analysis and prototyping
feedback from users, stakeholders, and activities can take longer than anticipated,
other sources to ensure that the final which can delay the delivery of the final
product meets the requirements and product.
expectations.
Incremental Delivery: The Spiral Model Cost: The Spiral Model can be expensive,
emphasizes incremental delivery, which especially for large software development
means that software is developed and projects. The risk analysis, prototyping, and
delivered in small, usable increments. This other activities involved require significant
approach allows for faster time-to-market resources, which can increase the cost of
and ensures that the end-users can start the project.
using the software sooner.
Customer Satisfaction: The Spiral Model Documentation: The Spiral Model requires
focuses on customer satisfaction and extensive documentation to ensure that the
Agile model
Definition: Agile Model is a software development method based on a series of
flexible and interactive methods among members of the development group to improve
software production. Agile Model is often used to develop highly flexible software projects,
constantly changing requirements, and requires customer requirements to be met quickly.
According to the Agile approach, each project must be handled uniquely and existing
procedures must be modified to best meet the project's demands. Tasks are divided up into
time boxes (short time limits) in Agile in order to provide specified features for a release. A
working build of the software is produced at the end of each iteration using an iterative
technique. Each build adds features incrementally; the last version includes all the customer-
requested features.
Plases
Sprint Planning: This is the first stage in the Agile Model, in which the members of
the development team together discuss and plan for a Sprint, including requirements, goals,
and plans for Sprint.
Sprint Execution: During this period, members of the development team implement
their plans to develop products during Sprint's time.
Sprint Review: This is the stage in which the members of the product development
team have been developed throughout Sprint and collect feedback from customers to
improve the product.
Sprint Retrospulation: This is the final stage in which members of the development
team evaluate the process of developing products throughout Sprint and seek to improve
the development process in the next Sprint.
Continuous change and improvement: Agile Model is highly flexible and focuses on
constantly changing and improving the production process to quickly respond to customer
requirements.
Advantages Disadvantages
Flexibility: Agile Model is highly flexible and Lack of Predictability: Due to the flexible
can accommodate changes in requirements nature of Agile Model, predicting the final
and priorities throughout the development outcome of the project can be difficult.
process.
Continuous Improvement: Agile Model Challenging for Large Teams: Agile Model
encourages continuous improvement of the can be challenging for large teams, as it
development process and the product requires significant coordination and
being developed through regular reviews communication between team members.
and feedback.
Prototyping
Plases:
Advantages Disadvantages
Faster development: Prototyping allows for Higher initial cost: Prototyping can require a
faster development cycles, allowing significant investment in time and resources
designers and developers to quickly iterate upfront to create the prototype, which can
and refine their ideas, saving time and be a disadvantage for smaller projects or
resources. budgets.
Reduced risk: Prototyping can help identify Scope creep: Prototyping can lead to scope
potential problems and issues early in the creep, where additional features or
development cycle, reducing the risk of functionality are added beyond the original
costly mistakes or failure. scope, leading to delays and additional
costs.
Improved quality: Prototyping allows for Limited scalability: Prototypes may not be
continuous testing and refinement, leading scalable to handle larger or more complex
to a higheh-quality final product. projects, requiring additional development
effort to bring the product to market.
1.2 Dentify some risks and discuss an approach to manage them (P2)
The risk management process in projects is a systematic series of steps that decision-
makers carry out to keep the project on track under particular conditions. Decision-makers
must identify, analyze, and assess risks throughout the project lifecycle before using their
organizational frameworks and management procedures to reduce those risks for the
Anticipate and prepare for potential risks: By identifying potential risks, organizations
can take steps to prepare for them and minimize their impact. This can include
implementing controls or contingency plans to mitigate the risk.
Meet legal and regulatory requirements: Many industries are subject to legal and
regulatory requirements related to risk management. Conducting a risk assessment can help
organizations to comply with these requirements and avoid penalties.
Overall, the goal of risk assessment is to help organizations proactively identify and
manage potential risks, enabling them to achieve their objectives with greater certainty and
confidence.
1.2.2 Apply to Tune Source project with problems to be faced and remedies.
Because of the spiral model, employing it in a TS (Tune Source) project has many
benefits. Yet, a few connected problems will make this project vulnerable to threats
resulting from that issue. The issues the project encountered are listed here, along with their
causes, solutions, and results.
Lack of staff The worker resigned The project hasn't hiring knowledgeable or highly
because she was fired been finished, or it trained staff, spending money
1.2.3 Describe effective Risk Management Process that are associated with developing a
project (step by step)
To avoid potential problems in the project, project managers should take precautions
in advance. However, taking these precautions is not meant to demoralize the members of
the organization, on the contrary, it is an opportunity for the team to learn from each other's
experiences. Collect opinions from all members of the organization and ask them to describe
the risks they have faced or may face in the future. This process enhances communication
and supports interdisciplinary learning.
Once your team has located possible problems, further investigation is required.
How probable are these dangers to materialize? What effect do they have when they do?
What would you do?
Your team choose what to focus on first in this step by estimating the likelihood and
impact of each risk. Next design a response plan for each risk. In order to effectively analyze
each risk, it is crucial to consider factors including the business's possible cash loss, time loss,
and impact severity. By analyzing each risk, you may also spot frequent project issues and
enhance the risk management procedure for upcoming projects.
Risk Evaluation
As soon as you determine the most significant hazards, submit your treatment
strategy. Even while not all risks can be predicted, the earlier steps in your risk management
approach should have given you a good chance of success. The highest priority risks should
be addressed first, or at the very least, mitigated so that they don't endanger the project.
Using the team's resources effectively while keeping the project on track is another aspect of
risk management and mitigation.
The hazards of employing the spiral model, which I'll be using for my project, are as follows:
The Spiral Model is the ideal development model to use since it incorporates risk
analysis and risk management at each level. Projects have a lot of unknown hazards that can
happen during development. I, therefore, employ the spiral model in this project. The most
crucial aspect of it is how to handle these unanticipated risks once the project has begun.
Addressing such hazards is made easier by developing a prototype. The spiral approach
facilitates prototyping at each level of software development, making risk management
simpler.
The Waterfall Model also supports risk management, however, hazards must be fully
identified before project development can start. The Waterfall Model cannot be used in this
situation because the transition from one growth phase to another will only occur after the
previous phases have finished successfully and there is no going back. previous phase or
overstepping phase. Project risks may, however, arise after development work has begun.
Each phase of the Spiral Model dates and analyzes the product features, and waterfall
development is used to identify and resolve any risks that are present at that phase. Thus,
compared to other SDLC models, this paradigm is substantially more versatile.
A feasibility report is a type of document that assesses the practicality and potential
of a proposed project or venture. It typically includes a detailed analysis of the technical,
economic, operational, and legal aspects of the project, as well as an evaluation of potential
risks and benefits.
New business ventures: A feasibility report can be used to assess the feasibility of
starting a new business or expanding an existing one. It can help determine whether the
market is large enough, whether the necessary resources are available, and whether the
project is financially viable.
Technical feasibility is a critical aspect of a feasibility study that assesses the viability
of a proposed project from a technical perspective. It involves evaluating whether the
proposed project can be successfully implemented using the available technology, resources,
and expertise.
Economic Feasibility
Economic feasibility is a critical aspect of a feasibility study that assesses the viability
of a proposed project from an economic perspective. It involves evaluating the potential
costs and benefits associated with the project and determining whether the project is
financially viable.
Legal Feasibility
Legal feasibility is a critical aspect of a feasibility study that assesses the viability of a
proposed project from a legal perspective. It involves evaluating the legal requirements and
constraints associated with the project and determining whether the project is legally viable.
Planning Possibility
A feasibility study that evaluates the viability of a proposed project from a planning
perspective must consider planning possibility. It entails determining if the proposed project
can be effectively planned and carried out and whether it is in line with the organization's
broader strategic goals and objectives.
Technical solutions provided to meet the needs of design selection and solution
execution. Engineering solutions can involve managing items, choosing product parts,
choosing a lifecycle model, and more.
Technical
The development team has worked with the program on numerous occasions and
has attained a high level of competency.
Technological familiarity: The development team for the TS project has previously
used the same technology. Also, the team's members have extensive experience working on
the project in question, so they are able to deal with some of its challenges.
Project size: The TS project, as previously said, is a small project with straightforward
requirements that makes it easier to manage and risk-check. Matrix substitution is discussed
in relation to technological IT solutions: Applications for matrix replacement in the context
of IT are numerous. Following are a few instances of matrix substitution used in technical IT
solutions:
PERFOMED STUDENT: PHAM TIEN LONG
Processing of images: Applications of image processing like image filtering or image
reduction frequently use matrix substitution. In these applications, an image can be
represented as a matrix of pixel values, and filters or compression algorithms can be applied
to the image via matrix substitution.
Graph theory: Matrix substitution is also utilized in graph theory, where it can be
used to express graphs as matrices. An adjacency matrix, for instance, can be used to
represent a graph, with the rows and columns standing in for the nodes in the network and
the entries standing in for the edges connecting the nodes.
Network analysis: To represent network data and carry out network analysis, matrix
substitution is utilized. Matrix substitution can be used to evaluate the structure of the
network or carry out network clustering. For instance, a matrix can be used to represent the
connectivity between nodes in a network.
Economic
The cost and benefit of the project are examined in the economic feasibility study.
This implies that all project development costs, including those for hardware and software
resources, design and development costs, operating costs, and other expenditures, are
thoroughly analyzed throughout the feasibility study. The initiative's potential financial
benefit to the organization is then determined (GeekforGeek,2020).
Figure 16:Economic
Compatibility: How well does the technical solution integrate with the existing
systems and technologies in the organization? This involves assessing the compatibility and
interoperability of each solution and determining which one can be integrated into the
existing infrastructure.
Support: What level of support is available for each technical solution? This involves
assessing the availability and quality of technical support, training, and documentation for
each solution and determining which one provides the best support.
Security: How well does the technical solution protect the organization's data and
systems from unauthorized access, theft, or damage? This involves evaluating the security
features and protocols of each solution and determining which one provides the best
security.
PHP technology:
PHP is a popular open-source scripting language used for web development. It has a
vast ecosystem of frameworks, libraries, and tools that make it an excellent choice for
developing web applications. If you are planning to use PHP technology for your project,
here are some key points to consider:
JavaScript technology:
Microsoft .NET Framework is a widely used platform for developing desktop, web,
and mobile applications. Here are some key points to consider when using Microsoft .NET
Framework for a project:
Versatility: Microsoft .NET Framework is versatile and can be used for a wide
range of projects, including desktop, web, and mobile applications.
Compatibility: .NET Framework is compatible with multiple programming
languages, including C#, VB.NET, and F#. This provides flexibility and allows
developers to choose the language they are most comfortable with.
Performance: .NET Framework has excellent performance, with just-in-time
(JIT) compilation and other optimizations that make it a fast platform for
developing applications.
Security: .NET Framework has built-in security features that help protect
against common security threats, such as SQL injection and cross-site scripting
(XSS).
Libraries and tools: .NET Framework has a vast library of built-in classes and
libraries, as well as third-party libraries and tools, that can help speed up
development and improve productivity.
Support: Microsoft provides support for .NET Framework, including regular
updates and patches, which helps ensure that the platform is secure and up-
to-date.
Describe the advantages and disadvantages of each option. The table comparison
between solutions should be included.
PHP Technology:
Advantage:
CONCLUSION
Through this report, I feel that I have gained a lot of knowledge after studying the
Web subject. This knowledge can help me in the future. I would like to thank the instructors
and friends at BTEC for helping me complete this report.
Through the report I have gained some knowledge such as: P1: I know the concepts
and definitions of DNS, its importance. What is the purpose of DNS in the network? Learn
how Domain names work. Types of DNS, how to organize DNS, how DNS works, what kinds
of domain names are there, ... M1: Tell me the concepts and properties related to server
Nowadays, a website is very important for everyone who wants to expand their
business through the web. In website development, different tools and techniques are used
for many different purposes. In my custom built website, I used HTML, CSS, and JavaScript
for front-end development where PHP is used for back-end development. Shop Online's
website has been built with the help of multiple software such as Photoshop, Wireframe
Sketcher, VS Code and XAMMP.