SDLC
SDLC
SDLC
2
Software development lifecycles
Assignment on Unit: 7
Submitted to
Name: Sabrina Hossain Mou
Designation: Coordinator & Lecturer
Submitted by
Name: Nafisa Noor Chaity
ID: 42986608
Programme: HND in Computing
3
Software development lifecycles
Contents
Describing two iterative and two sequential software lifecycle models ………………………….6
Via software methods for evaluation and producing software investigating documents
………………………………………………………...………………………………………….26
Bibliography ……………………………………………………………………………………31
4
Software development lifecycles
Introduction:
For the development of this project, I am working in Enosis Solutions as an intern software
engineer. For this below I have created a report which contains various information related to
SDLC (software development lifecycle) and I helped a company (ILLIYEEN) update their
software.
5
Software development lifecycles
Fig: SDLC
6
Software development lifecycles
Iterative Models
An iterative life cycle model starts with a partial specification of requirements, followed by
implementing and reviewing the software to identify additional requirements, and repeating this
process for each cycle of the model.
Spiral
The spiral model is a software project management approach that focuses on risk analysis and
involves four phases: Planning, Risk Analysis, Engineering, and Evaluation. Iterations pass
through these phases, starting with the baseline spiral, where requirements are gathered and risk
assessed. The risk analysis phase identifies risks and alternate solutions, while the engineering
phase produces software and tests. The evaluation phase allows customers to evaluate the
project's output before moving on to the next spiral.
The spiral model uses the angular component to represent progress, while the spiral's radius
represents cost.
7
Software development lifecycles
• Costly model.
DSDM
8
Software development lifecycles
Sequential models
Sequence models are machine learning models designed for tasks involving sequential data, such
as textual, time series, audio signals, or video streams. These models are specifically designed to
process data that is not independently distributed but carries some dependency with each other,
unlike traditional algorithms. Sequence models can be of varying lengths and are dependent on
each other.
Waterfall Model
The waterfall model is a classical software engineering model, widely used in government
projects and major companies. It emphasizes early planning to prevent design flaws and is
intensive in documenting and planning, making it ideal for quality control projects. The stages of
the waterfall life cycle do not overlap, starting with system requirements and software
9
Software development lifecycles
requirements, and ending with architectural design, detailed design, coding, testing, and
maintenance.
• URD, SRD, document-driven, etc. published standards for documentation, such as PSS-05.
V-Shaped Model
The waterfall model and the V-Shaped life cycle are examples of sequential process execution. It
emphasizes testing, with early testing procedures developed before coding. Requirements begin
10
Software development lifecycles
the life cycle, and a system test plan is created to meet the functionality specified in requirements
gathering. This approach emphasizes testing over coding in each phase.
The V-Shaped life cycle is a sequential process execution, similar to the waterfall model. It
emphasizes testing, with early testing procedures developed before coding. Requirements begin
the life cycle, and a system test plan is created to meet the functionality specified in requirements
gathering. This approach emphasizes testing over coding in each phase.
11
Software development lifecycles
The Software Development Life Cycle (SDLC) incorporates a systematic and proactive approach
called risk management that helps identify, navigate, and mitigate any risks that might impede a
software project's success. In order to effectively manage early risks and possible roadblocks that
may arise at different stages of the SDLC process, strategies for doing so must be identified,
evaluated, and implemented while continuing to monitor risks.
To handle specific risks that emerge during the SDLC process, software development businesses
employ a variety of risk management techniques. We'll talk about the several hazards that might
arise during the SDLC before moving on.
12
Software development lifecycles
Let's first evaluate the relevance of risk management in the field of software engineering.
Software development is a complicated process with many unsolved issues. Companies need to
be aware of these dangers and equipped to reduce them. Through the software development
lifecycle's (SDL) risk management.
For software engineers or software development services organizations, software project risk
management is crucial for the following reasons:
Reduced costs: Software development risks may undoubtedly lead to project failures, reworks,
and delays—all of which can be costly for businesses. By doing preventative risk evaluation in
the early stages of the project, project managers may save additional development expenses and
finish the work within budget.
Project Success: Using risk evaluation in advance engineering is one of the most crucial ways to
make sure a project stays within its allocated budget, timeline, and quality criteria. Through early
risk assessment and reduction, project managers can ensure the successful completion of their
projects.
Improve Quality: Your project's quality will improve on its own as soon as the team takes up
the risks. Since we will be addressing one of the biggest challenges beforehand, there won't be
any issues with quality.
Increase Customer Satisfaction: Software engineering risk management could ultimately result
in an improvement in both software quality and customer satisfaction. By controlling risks,
project managers may proactively make sure the software solution satisfies customer needs and
expectations.
Enhanced Team Morale: Project managers may lower stress and provide team members a sense
of security by proactively reducing hazards. Project teams may experience anxiety and
uncertainty due to risks.
13
Software development lifecycles
Identifying the many risks that might arise during the software development lifecycle is crucial
for managing risk assessments in software engineering. Every kind of risk necessitates a different
method and plan. There are primarily two kinds of risks:
Technical risks
Project risks
Technical Risks
The technologies and techniques utilized in the software development process are connected to
these concerns. Compatibility problems, performance snags, security flaws, and difficulties
integrating new technology are a few examples.
Dependency Risks: Dependency hazards are associated with depending on other people or
elements, such vendors, third-party APIs, or other systems. Problems or failures with these
dependencies may impact the functioning and development of the project.
Quality risks: These risks are associated with the possibility of errors, malfunctions, or
problems with the software product's usability. Quality hazards are a result of inadequate testing,
subpar code, or inefficient quality assurance procedures.
Security risks: These are threats and weaknesses that might allow the software program's
security to be compromised. These dangers might include improper encryption techniques,
unwanted access, and data breaches.
Performance risks: These risks draw attention to instances in which the program performs
below par, including lengthy loading times, outages, and crashes.
14
Software development lifecycles
Project Risks
All of the problems that result from ambiguities or uncertainties in project management are
included in the project risks. This might result in changes in user demands, inadequate
specifications, or scope creep, all of which would affect the project's budget, schedule, and
deliverables.
Resource Risks: These are risks associated with the availability and distribution of equipment,
personnel, and other essential resources. These hazards might lead to insufficient knowledge,
delays, or a lack of resources.
Schedule risks: Project deadlines and timelines are linked to schedule hazards. Unexpected
complications, reliance on other sources, or deliverables' delays can all affect how quickly a
software project moves forward.
Cost Risks: Cost risks are those that might result in budgetary deviations from the project.
Underestimating costs, cost overruns, requirement modifications, or outside economic variables
can all result in these hazards.
Software success depends on completing the seven phases of the software development life
cycle. Similarly, the delivery of high-quality software products depends on risk management
First, include stakeholders, members of the development team, and subject matter experts in
identifying possible risks associated with software development. To record hazards that have
been recognized and their descriptions, create a risk register. After that, use both qualitative and
quantitative techniques to assess the possibility and effect of each risk that has been identified. In
order to lessen risk adversity on the project, it also assists in ranking risks according to their
seriousness and possible influence on the software project.
15
Software development lifecycles
Develop plans to reduce hazards that are of the utmost importance. These tactics may consist of
risk transfer, mitigation, evaluation, acceptance, and contingency planning. In the event that
software development is contracted out and a team is assembled, each risk is allocated to a
designated team member in order to guarantee responsibility.
During the whole SDLC process, it is important to keep an eye on the risks that have been
identified. Maintain a close eye on the risk register and update it with the most recent data to
assess the effectiveness of risk management techniques. Later, as the project develops and new
risks emerge, evaluate and modify your risk mitigation plans to make sure the impact of risk is
minimized.
It is very beneficial to keep thorough records of all software development risk management
procedures, including risk assessments, mitigation strategies, and their results. Future projects
can benefit from improved risk management techniques thanks to the lessons acquired from
previous ones.
Ensuring that all parties involved are in agreement regarding the risks that have been identified
and their current state requires open communication. Thus, report on project sponsors,
management, and other stakeholders on a regular basis on the status of your efforts to mitigate
software development risk.
In-depth testing is done to find and fix software bugs early on, lowering the possibility of serious
problems developing later in the software development life cycle. Adopting strong quality
assurance procedures guarantees that software complies with necessary requirements and
standards.
16
Software development lifecycles
Emergency Preparedness
In a brief
Businesses may avoid the difficulties that arise after software launches by taking risk
management seriously, which is an integral element of the software development life cycle. If
you're still not convinced, the blog offers a reasonable explanation of the significance of risk
management along with techniques for identifying hazards and a seven-step procedure for
managing risks in software development.
Consider a proactive and systematic approach to risk management to lower uncertainty, increase
project success rates, and deliver software on time and under budget. Use risk management to get
through every challenge in the software development life cycle.
17
Software development lifecycles
Feasibility Study
A feasibility study is an extensive analysis that considers all relevant factors related to a
proposed project in order to evaluate the project's likelihood of success.
Helps the company decide whether to move on with the project or not.
Determines which significant project risks need to be controlled in order for the project to
be authorized.
The purpose of the feasibility study is to evaluate the proposed system's capacity to
function, fulfill user needs, make efficient use of available resources, and, of course, be
cost-effective.
This fall within the following categories: social, schedule, technological, operational, and
economical.
1. Technical Feasibility
2. Economic Feasibility
3. Legal Feasibility
4. Operational Feasibility
5. Scheduling Feasibility
18
Software development lifecycles
Technical Feasibility
An evaluation of the company's capacity to supply specific tools, assistance, and knowledge to
make the product a reality is known as a technical feasibility analysis. It is important to consider
three factors:
Project size: Project size is determined by two factors: the size of the crew and the length
of the project. The project's size increases with the number of participants and duration.
Project structure: New enterprises are less exposed to risk when their project structure
is precisely specified. Each member of the team should be aware of their responsibilities,
goals, and methods for completing tasks.
Technology familiarity: Every team member taking part in the development process has
to be knowledgeable with the technology. It will take longer to build a solid development
process if it is relatively new.
Scalability of a technological stack is another important factor to take into account. During the
MVP development stage, a straightforward tech stack is frequently selected. But as time goes on,
this tech stack could get in the way of implementing new tools and developing your project
further. As the company expands, make sure your team is prepared to scale the technology.
Economic Feasibility
An examination of the project's economic viability indicates if it will result in revenue gains, cost
reductions, or other financial advantages. It is divided into many sections:
Cost analysis: The expenses of the project have been thoroughly examined. Everything from
insurance to hardware should be taken into account. At this point, it's critical to consider
potential hazards and factor in the cost of prevention.
Finding the worth in the future: This section focuses on demonstrating the economic viability
of a project by utilizing measures such as Net Present worth (NPV), Internal Rate of Return
(IRR), Return on Investment (ROI), Payback Period (PP), and Profitability Index (PI) to estimate
the project's future worth. They have all demonstrated their effectiveness and are able to discuss
the project's potential while taking various factors into consideration.
19
Software development lifecycles
Break-even analysis: This study determines when the project's advantages will equal its
disadvantages. Stated differently, it determines the point at which your project will begin to
generate profits.
Legal feasibility
Legal viability necessitates that the project abide by all applicable laws. Prior to the project
commencing, take into account local and target market compliance standards.
It is imperative that you create your project adhering to all applicable rules, regulations,
standards, and norms within your particular business. For instance, in the US, HIPAA
compliance is required for any product relating to healthcare or medications. Likewise, the
GDPR needs to be considered for any project processing the personal data of EU citizens. Make
sure you review all criteria connected to the sector. It will take considerably more time and
money to comply with regulations if you have to make adjustments after your product is
established.
Operational feasibility
Operational viability demonstrates how the project satisfies an organization's demands and
achieves its objectives. The project ought to benefit the firm and capitalize on business prospects.
Any product developed by Meta Corporation, such as Instagram, Portal, or Nova, for instance,
must support the objectives of its parent company's business.
Additionally, an operational feasibility analysis aids in the early planning stages of process
definition. All interactions and procedures, including working with outside contractors and other
third-party suppliers, should be estimated and defined. When you have a complete view, you can
identify process flaws and choose the best way to shorten the development time.
Scheduling feasibility
Operational feasibility is the foundation for scheduling feasibility. It will be much simpler to
recognize when you reach a desired point or milestone if you have a clear understanding of what
you're doing and how you're doing it.
20
Software development lifecycles
The duration of a project is one of the most important variables in determining its overall
viability. Deadlines and time constraints should align with the objectives of the company. The
longer it takes to build a product, the less valuable it becomes.
- Senior management is provided with it to decide if the idea has enough worth to move forward
into further in-depth stages.
- If management finds the system proposal acceptable, the system's viability will be investigated.
- In essence, the feasibility study tests the proposed system's capacity to function, fulfill user
needs, make efficient use of available resources, and, of course, be cost-effective. -Technical,
operational, economic, scheduling, and social feasibility are the categories under which they fall.
Reaching the scope is the primary objective of a feasibility study, not solving the issue. The
Return on Investment (ROI) is calculated during the feasibility study phase by more precisely
estimating the costs and benefits. Additionally, it outlines the resources required to do the in-
depth analysis.
21
Software development lifecycles
It's crucial to weigh a variety of aspects when evaluating technological solutions to ascertain
which one is best suited for a certain issue or need. When comparing technical solutions, keep
the following important factors in mind:
Functionality: Analyze the features and characteristics of each solution to ensure that
they're able to meet the minimum requirements. Consider whether the approach in
question has every characteristic you want and whether it can be easily extended or
customized.
Accessibility: Determine if the setup can accommodate future growth or handle rising
demands by assessing its scalability. Considering factors such as the ability to handle
large amounts of data, support several users at the same time, and interact with other
systems.
Achievement: Evaluate the speed of the execution, response time, and resource
consumption of each solution. Consider factors such as speed of processing, memory use,
network bandwidth, and database performance.
Dependability: Analyse the accessibility and reliability of each option. Consider factors
like tolerance for faults, backup and recovery protocols, and the ability to tolerate errors
gracefully. Look for alternatives that have an established performance record and have
been reinforced by a reliable vendor or community..
Safety: Take notice of the security measures and characteristics of each solution. Think
about factors such as data encryption, access control, authentication techniques, and
compliance with legal and industry requirements.
Convenience in Apply: Consider how easy and user-friendly a solution is to use. The
ease of use of the user interface, the accessibility of documentation and support
resources, and the time required for users to become proficient with the solution are all
taken into account.
Expense: Determine each solution's total cost of ownership by figuring in all upfront
costs, periodic upkeep and assistance fees, and additional expenses for modification or
certification. Consider the advantages that each solution delivers vs the price tag.
22
Software development lifecycles
Coordination: Evaluate how easy it is to work together with technological devices and
systems in use today. Consider factors such as how well the solution integrates with the
existing ecosystem, how much time it will take to put together it, and how easily
accessible APIs and connectors are.
You may successfully evaluate technological solutions and make an educated selection based
on the particular demands and requirements of your project or business by taking these
variables into account and doing a comprehensive review.
23
Software development lifecycles
The firm Enosis Solutions provides software. They just received a request to create an ERP
software for the upscale men's apparel company Illiyeen. Accounting, sales, inventory, HR, and
other functions will all be included in the ERP software. Since Illiyeen wants to manage all ten
of its stores under one roof and has ten locations in Bangladesh, they wish to employ the ERP
software.
Illiyeen requires the ERP program for the reasons listed below:
Illiyeen will be able to use a centralized system for managing data thanks to ERP software. The
firm will benefit from having the ability to store and analyze data related to daily operations,
including inventories, sales, accounting, and human resources. There would be less opportunities
for error and Illiyeen can manage their business effectively. For instance, the workers at the
Chittagong outlet enter data into the database whenever fresh merchandise arrives. And the
owner may verify whether or not the package is good.
By using an ERP system, Illiyeen is able to get up-to-date information on the activities at each of
its 10 locations. They may utilize the data to identify areas which need improvement and to make
more educated decisions about things like labor size and inventory distribution.
Illiyeen is a high-end apparel business; therefore they probably wish to look over their sales.
Monitoring sales and evaluating data for upcoming decision-making processes represent difficult
tasks. Ten outlets' worth of data may be stored simultaneously by an ERP program. We can
readily examine data if we can utilize it in additional tools, such Microsoft Power BI.
Increasing cooperation:
ERP software can help with employee collaboration as well as interaction between the ten
outlets. This might lead to an increase in both sales efficiency and customer service.
24
Software development lifecycles
These are the main requirements of an organization such as Illiyeen, which may be satisfied by
an enterprise resource planning (ERP) system designed by Enosis Solutions.
25
Software development lifecycles
Via software methods for evaluation and producing software investigating documents
Data stores are electronic repositories where computer system data and information are stored.
Data stores include things like virtual storage, network-connected storage, traditional hard drives,
and distributed cloud storage. Common data storage include relational databases, for instance.
Tools for data storage include PostgreSQL, MySQL, Oracle Database, and others.
An abstraction from the actual physical implementation of database tables is called a data entity.
In example, most of the data for each customer in a customer table is found in normalized tables;
the rest is scattered across multiple related tables. Google Analytics, Amazon S3, Google Cloud
Storage, Microsoft Azure etcetera are some popular data lakes to utilize data entity.
Data pipelines are the procedures and equipment used in data flow systems to transfer data
between various applications and systems. A few well-liked tools for data pipelines include
Apache NiFi, Prefect, and Airflow.
We use data integration technologies to combine data from multiple sources into a single,
coherent image. A few popular tools for data pipelines are Airflow, Prefect, and Apache NiFi
Among the frequently used data integration tools are Informatica PowerCenter, Talend Open
Studio, and IBM Data Stage.
Introductory
A software firm titled Enosis Solutions is designing an ERP program for a high-end menswear
brand called Illiyeen. To construct an investigative document, we examine the background data,
problem statements, data gathering procedure and summary, suggestions, and appendices.
26
Software development lifecycles
Relevant Data:
With the aid of Facebook, Illiyeen launched their company and quickly gained recognition as a
high-end apparel line. Then, they grow their company by opening ten stores in Bangladesh. They
recognized the need for a centralized management program for collecting, conserving, and
analyzing real-time data after growing the outlets into ten distinct locations. To help Illiyeen with
her issue, Enosis steps in and offers ERP (Enterprise Resource Planning) software. Additionally,
an ERP system will boost financial viability, staff fulfillment, and customer service.
Trouble Overview:
Inefficiencies exist in Illiyeen's operational tasks, including customer service, sales monitoring,
and inventory management. As a result of their uneven services, their customers' contentment is
at stake. The lack of central management also irritates staff members whenever assisting
consumers, reducing output. Most significantly, Illiyeen's dispersed data among the ten outlets
prevents them from making future judgments.
Integrating a Point of Sale (POS) system throughout the three retail locations of Illiyeen.
When workers engage with consumers, they may offer valuable information.
Getting information from social media interactions and website sales.
Comments from customers, ratings, and suggestions.
Information overview:
Once the data is gathered, we may use state's KPIs (key performance indicators), and visual
dashboards in our ERP software to summarize it. It will be possible for an ERP program to
display data on a weekly, monthly, or annual basis. Illiyeen will greatly benefit from being able
to recognize patterns, developments, and customer behavior.
27
Software development lifecycles
Proposals:
Enosis advises Illiyeen to put in place a cloud-based ERP system. Illiyeen ERP system may be
integrated with their present configuration. Enosis also suggests that Illiyeen provide its
employees access to training resources for the ERP system.
Addenda:
The POS receipt that is displayed below can be used to gather data on customers for further
research. Figure: POS machine receipt
28
Software development lifecycles
A group of strategies known as software behavioral design approaches make use of design
principles and psychology to affect how users interact with software. These methods can boost
interest, hold onto information longer, and promote particular behaviors. They provide
standardized answers to common object and class interaction design issues, assisting developers
in producing modular, maintainable, and scalable software. An ethical framework for
comprehending and methodically altering human behaviors in real-world and virtual contexts is
known as behavioral design. It impacts human behavior, aids in the understanding of client
behavior, and advances corporate objectives.
The main goal of software behavioral design techniques is to develop the functionality or
behavior of a software system. They help define how different events and inputs should make the
software behave. A few often used software behavioral design techniques are as follows:
1. :Flowcharts.
2. Pseudo code.
3. Formal techniques for specification.
4. A finite state apparatus.
(1) Flowcharts: A flowchart is a visual aid that shows the steps involved in a procedure. It may
also be used to explain a symbol-representation algorithm. The flowchart illustrates the
procedure step-by-step.
(2) Pseudo code: Pseudo code is the process of elucidating an algorithm or computer program.
Rather from being utilized for machine comprehension, it is used for human interpretation. Each
29
Software development lifecycles
application includes concise statements and codes in it. In programming design, it functions as a
model.
Start Program
Enter two numbers, A, B
Add the numbers A, B together
Print Sum
End Program
(3) Formal specification methods: This is the process by which languages decide their syntax
and other meanings. It is frequently employed to specify the characteristics of the constructions.
Formal specification approaches are useful for the following reasons:
(4) Finite state machine: A finite state machine is a model that uses both software and hardware
models to execute programs. It is made up of states and common languages that are used to
characterize language flow. Numerous fields, including mathematics, artificial intelligence, and
30
Software development lifecycles
other sports, exhibit this. The traffic lights at a crosswalk are an example of a finite state
machine.
Bibliography
Course Hero. (2020, 01 05). P3 explain the purpose of a feasibility report 1. Retrieved 02 15, 2024, from
coursehero: https://www.coursehero.com/file/pivqbt/P3-Explain-the-purpose-of-a-feasibility-
report-1-Definition-Guides-the/
Rastogi, V. ( 2015). Software Development Life Cycle Models. (IJCSIT) International Journal of Computer
Science and Information Technologies.
studocu. (2023, 12). Describe how technical solutions can be compared. Retrieved 02 15, 2024, from
studocu: https://www.studocu.com/row/messages/question/4564906/describe-how-technical-
solutions-can-be-compared
31