SDLC Assignmentzzzzz

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 57

HHH [Type here] [Type here] [Type here]

assignment (SDLC)

Aung Kaung Maw

HND-45
HND-45 Aung Kaung Maw

Software Development Life Cycle (SDLC)


Software Development Life Cycle (SDLC) is a systematic process that is used
to develop software products. It is a series of steps that are followed to
ensure that software is developed with the highest quality and efficiency
possible. SDLC involves a set of activities that are performed in a specific
order to produce high-quality software that meets the customer's
requirements.

Stages of Software Development Life Cycle (SDLC):

The different phases of SDLC are as follows:


Planning: This phase involves identifying the scope of the project, defining
the objectives, and gathering requirements from stakeholders.

1
HND-45 Aung Kaung Maw

Analysis: In this phase, the requirements are analyzed and documented, and
the system architecture is designed.
Design: In this phase, the system's design is created, including the user
interface, data models, and software architecture.
Implementation: This phase involves coding, testing, debugging, and
integration of software components.
Testing: This phase involves testing the software for functionality,
performance, and usability.
Deployment: In this phase, the software is released to end-users and
deployed in the production environment.
Maintenance: This phase involves the ongoing support and maintenance of
the software after deployment to ensure that it continues to function
properly and meets user needs.

Two iterative models in software development life cycle


Iterative models in software development life cycle involve repeating the
software development phases several times until the final product is
achieved. There are two main iterative models in software development life
cycle, and they are as follows:
Agile Model: The Agile model is an iterative and incremental software
development approach that is based on collaboration between self-
organizing and cross-functional teams. The Agile model involves breaking
down the software development process into small iterations called "sprints."
Each sprint lasts for a fixed duration (usually between 1 to 4 weeks), and at
the end of each sprint, a working software prototype is delivered. The Agile
model emphasizes flexibility, customer satisfaction, and continuous
improvement. Examples of Agile frameworks include Scrum, Kanban, and
Extreme Programming (XP).

2
HND-45 Aung Kaung Maw

Advantages of Agile model:


 Customer satisfaction by rapid, continuous delivery of useful software.
 People and interactions are emphasized rather than process and tools.
Customers, developers and testers constantly interact with each other.
 Working software is delivered frequently (weeks rather than months).
 Face-to-face conversation is the best form of communication.
 Close, daily cooperation between business people and developers.
 Continuous attention to technical excellence and good design.
 Regular adaptation to changing circumstances.
 Even late changes in requirements are welcomed

Disadvantages of Agile model:


 In case of some software deliverables, especially the large ones, it is
difficult to assess the effort required at the beginning of the software
development life cycle.
 There is lack of emphasis on necessary designing and documentation.
 The project can easily get taken off track if the customer
representative is not clear what final outcome that they want.

3
HND-45 Aung Kaung Maw

 Only senior programmers are capable of taking the kind of decisions


required during the development process. Hence it has no place for
newbie programmers, unless combined with experienced resources.

Spiral Model: The Spiral model is an iterative software development


model that combines the Waterfall model's systematic approach with the
iterative approach of the Agile model. The Spiral model involves four
quadrants, each of which represents a phase in the software development
process: Planning, Risk Analysis, Engineering, and Evaluation. The Spiral
model emphasizes risk management and involves evaluating risks at each
iteration and developing strategies to mitigate them. The Spiral model is
used for large and complex software projects that require constant feedback
and adaptation.

4
HND-45 Aung Kaung Maw

This Photo by Unknown Author is licensed under CC BY-SA

Advantages of Spiral Model:


 Software is produced early in the software life cycle.
 Risk handling is one of important advantages of the Spiral model, it is
best development model to follow due to the risk analysis and risk
handling at every phase.
 Flexibility in requirements. In this model, we can easily change
requirements at later phases and can be incorporated accurately. Also,
additional Functionality can be added at a later date.
 It is good for large and complex projects.

5
HND-45 Aung Kaung Maw

 It is good for customer satisfaction. We can involve customers in the


development of products at early phase of the software development.
Also, software is produced early in the software life cycle.
 Strong approval and documentation control.
 It is suitable for high risk projects, where business needs may be
unstable. A highly customized product can be developed using this.
Disadvantages of Spiral Model:
 It is not suitable for small projects as it is expensive.
 It is much more complex than other SDLC models. Process is complex.
 Too much dependable on Risk Analysis and requires highly specific
expertise.
 Difficulty in time management. As the number of phases is unknown at
the start of the project, so time estimation is very difficult.
 Spiral may go on indefinitely.
 End of the project may not be known early.
 It is not suitable for low risk projects.
 May be hard to define objective, verifiable milestones. Large numbers
of intermediate stages require excessive documentation.

Two sequential models in software development life cycle

Sequential models in software development life cycle are also known as


linear models. These models involve following the software development
phases sequentially from start to finish, with each phase completed before
the next one begins. There are two main sequential models in software
development life cycle, and they are as follows:

Waterfall Model: The Waterfall model is a linear sequential software


development model that follows a top-down approach. The Waterfall model

6
HND-45 Aung Kaung Maw

involves completing each phase of the software development process in a


sequential manner, with no overlapping of phases. The phases of the
Waterfall model include Requirements gathering and analysis, Design,
Implementation, Testing, Deployment, and Maintenance. Once a phase is
completed, the development process moves on to the next phase. The
Waterfall model is useful for small and simple software projects with well-
defined requirements.

Advantages Dis-Advantages

 Before the next phase of


 Error can be fixed only during the
development, each phase must be
phase
completed

 It is not desirable for complex


 Suited for smaller projects where
project where requirement changes
requirements are well defined
frequently

7
HND-45 Aung Kaung Maw

Advantages Dis-Advantages

 They should perform quality assurance


 Testing period comes quite late in
test (Verification and Validation)
the developmental process
before completing each stage

 Elaborate documentation is done at


 Documentation occupies a lot of
every phase of the software’s
time of developers and testers
development cycle

 Project is completely dependent on  Clients valuable feedback cannot


project team with minimum client be included with ongoing
intervention development phase

 

 Small changes or errors that arise


 Any changes in software is made
in the completed software may
during the process of the development
cause a lot of problems

V-Model: The V-Model is a sequential software development model


that follows a top-down approach and is an extension of the Waterfall model.
The V-Model involves developing a detailed testing plan for each phase of
the software development process, ensuring that each phase's testing is
completed before moving on to the next phase. The V-Model includes
Verification and Validation phases, and the testing process runs parallel to
each development phase. The V-Model is useful for large and complex
software projects that require a high level of testing and quality assurance.

8
HND-45 Aung Kaung Maw

Advantages of V-model:
 Simple and easy to use.
 Testing activities like planning, test designing happens well before
coding. This saves a lot of time. Hence higher chance of success over
the waterfall model.
 Proactive defect tracking – that is defects are found at early stage.
 Avoids the downward flow of the defects.
 Works well for small projects where requirements are easily
understood.

Disadvantages of V-model:
 Very rigid and least flexible.

9
HND-45 Aung Kaung Maw

 Software is developed during the implementation phase, so no early


prototypes of the software are produced.
 If any changes happen in midway, then the test documents along with
requirement documents has to be updated.

Risks and Risks management in Waterfall Model


The Waterfall model is a linear sequential software development model that
follows a top-down approach. While the model offers a clear project
roadmap, it also has some risks that need to be managed to ensure project
success. Here are some risks and risk management strategies for the
Waterfall model:
Risk: Late detection of defects: In the Waterfall model, testing occurs
after all development phases are complete, making it difficult to detect
defects early in the development process.
Management: Implement a rigorous testing process to detect defects
as early as possible. Conduct peer reviews, unit tests, and integration tests
during each development phase to detect and address defects early.
Risk: Limited Flexibility: The Waterfall model does not allow for much
flexibility to accommodate changes in the requirements or design once the
development process has started.
Management: Identify and document all requirements and design
specifications at the beginning of the project. Establish a change
management process to evaluate and manage change requests. Use change
control boards to evaluate change requests and determine their impact on
the project.
Risk: Incomplete Requirement Gathering: In the Waterfall model,
requirements gathering is completed at the beginning of the project, making
it difficult to accommodate changes or updates later in the process.
Management: Involve stakeholders in the requirements gathering
process to ensure all requirements are identified and documented. Use
prototypes to validate requirements and ensure all stakeholders understand
and agree to them.

10
HND-45 Aung Kaung Maw

Risk: Limited Client Involvement: The Waterfall model typically


involves limited client involvement after the requirements gathering phase,
which can result in a final product that does not meet the client's needs.
Management: Involve the client throughout the development process.
Conduct regular status meetings to keep the client informed of project
progress. Review requirements with the client before proceeding to the
design phase.
Risk: Costly to Implement Changes: Implementing changes late in the
development process can be costly and time-consuming.
Management: Use change control boards to evaluate change requests
and determine their impact on the project. Consider the cost and impact of
changes before approving them. Use tools and techniques like version
control and configuration management to track changes and ensure that the
project team is working with the latest version of the software.
Particular lifecycle model is selected for your project

The waterfall model is a software development approach that is


characterized by sequential phases, where each phase is completed before
moving on to the next one. While the waterfall model may not be the most
suitable choice for all types of projects, it can be used for developing a
dating app web application with certain advantages.

One advantage of using the waterfall model for a dating app web application
is its structured and well-defined nature. The model follows a linear
progression, starting from requirements gathering, followed by design,
implementation, testing, and deployment. This sequential approach allows
for clear planning and documentation, ensuring that each phase is
completed before moving on to the next. For a dating app, where different
features and functionalities need to be implemented and tested, this can
help in maintaining a systematic and organized development process.

Another advantage of the waterfall model is that it provides a clear


understanding of project scope and requirements upfront. In the context of a
dating app, this can be crucial as it allows for thorough analysis and
identification of user needs, desired features, and the overall user
experience. By gathering and documenting these requirements early on, the
development team can work towards meeting those specifications,
minimizing the chances of misunderstandings or missed functionalities in the
final product.

11
HND-45 Aung Kaung Maw

Furthermore, the waterfall model allows for better control over project
timelines and budgets. Since each phase is completed before moving on to
the next, it becomes easier to estimate time and resource requirements for
each stage. This can help in setting realistic project schedules and budgets,
making it easier to manage expectations and deliver the final product on
time and within the allocated resources.

To illustrate these advantages, let's consider an example. Imagine a


development team is tasked with creating a dating app web application.
They start by gathering requirements from the client and potential users,
identifying essential features such as user profiles, search filters, messaging
capabilities, and matching algorithms. With a clear understanding of these
requirements, the team proceeds to design the app's user interface and
system architecture.

Once the design phase is complete, the development team starts


implementing the app, writing code, and integrating the necessary
functionalities. They ensure that the design specifications are met and the
app is responsive and user-friendly. After the implementation, thorough
testing is conducted to identify and fix any issues or bugs.

Finally, once the app is fully tested and deemed ready for deployment, it is
released to the public. The team monitors its performance, collects user
feedback, and makes necessary updates or improvements based on the
feedback received.

In summary, the waterfall model can be used for developing a dating app
web application due to its structured nature, clear definition of requirements,
and better control over timelines and budgets. However, it's important to
note that the waterfall model may not be suitable for all types of projects,
particularly those with rapidly changing requirements or a need for iterative
development.

Applying the Waterfall lifecycle model to a large software


development

The Waterfall lifecycle model can be well-suited for large software


development projects in specific situations. One such situation is when the
project has stable and well-defined requirements that are unlikely to
undergo significant changes. For example, in large infrastructure projects
such as building a transportation management system or implementing an
ERP system, where the requirements are well-established and unlikely to
change, the Waterfall model provides a clear roadmap for development.

12
HND-45 Aung Kaung Maw

In industries that require strict regulatory compliance, the Waterfall model


can be beneficial. Projects in sectors like healthcare, where adherence to
regulations like HIPAA is crucial, can benefit from the model's structured
approach. The sequential nature of the Waterfall model enables meticulous
documentation and rigorous testing to ensure compliance with regulations.
Large-scale and long-term projects can benefit from the Waterfall model due
to its structured and phased approach. These projects often require
substantial resources, time, and coordination among multiple teams or
stakeholders. Examples include developing complex enterprise software
systems that integrate various modules and functionalities across different
departments of a large organization. The Waterfall model allows for better
planning, resource allocation, and coordination in such cases.
When dealing with client-oriented projects that have fixed budgets and
deadlines, the Waterfall model can be advantageous. The model's sequential
phases facilitate better estimation of costs and timelines, enabling project
teams to manage client expectations effectively. Projects like custom e-
commerce platforms, where clients have specific launch dates and marketing
campaigns in mind, can benefit from the Waterfall model's structured
approach.
Additionally, the Waterfall model can be useful when the software being
developed needs to integrate with external systems or dependencies. The
sequential approach allows for careful planning and implementation of
integration points. For instance, software development projects that involve
integrating with existing legacy systems or third-party APIs, such as large-
scale financial applications, can benefit from the Waterfall model's
systematic approach to integration.

Purpose of feasibility report:


Feasibility is the analysis of the whole project to determine if the
project is feasible or not with
respects to the technical feasibility, economic feasibility, timescales, legal,
social, and organizational
constraints. Feasibility report is the final documented output of the
feasibility study which
summarizes the result of the analysis and evaluation of the proposed
program and also helps to find

13
HND-45 Aung Kaung Maw

out whether the project is really feasible, cost-effective and profitable.


Feasibility report provides the
brief description of the project and background processes. This is the
starting point of any project so,
it helps sponsors and decide on project investment and make necessary
plans for the future. Main
purpose of the feasibility is: Feasibility of the developed system is checked
whether it will come in
use or not. It is studied that social issue like organizational conflicts, policies,
labor objection, social
acceptability, legal aspects and governmental regulation are checked well
before proceeding.
Purpose of feasibility report:
Feasibility is the analysis of the whole project to determine if the
project is feasible or not with respects to the technical feasibility,
economic feasibility, timescales, legal, social, and organizational constraints.
Feasibility report is the final documented output of the feasibility
study which summarizes the result of the analysis and evaluation of the
proposed program and also helps to find out whether the project is really
feasible, cost-effective and profitable. Feasibility report provides the brief
description of the project and background processes. This is the starting
point of any project so,
it helps sponsors and decide on project investment and make necessary
plans for the future. Main purpose of the feasibility is: Feasibility of the
developed system is checked whether it will come in use or not. It is studied
that social issue like organizational conflicts, policies, labor objection, social
acceptability, legal aspects and governmental regulation are checked well
before proceeding.
Importance of feasibility report:
The main importance of feasibility is to provide the legal and
technical evidence of the project’s
validity, sustainability and cost-effectiveness. It helps the management
team to get all the required
information for key decision on budgeting and investment plan. It helps in
the analysis of the project
because this report links the project efficiency to budget and provides
clear view of the project. It
also helps to mitigate the risks because this report contains contingencies
plan and risk management

14
HND-45 Aung Kaung Maw

strategy and plan. It also helps to know about the staffing needs in the
sectors so that staff trainings
are conducted to acquire and train necessary specialists.
Being a System analyst, I was assigned with the task to develop the new
system for the company. To
develop the new system, I have researched all aspect of the system
including all the feasibility of the
system and I have gone through these five types of feasibility study which is
described below:
Technical feasibility:
Technical feasibility always looks for the technical resources available
to the project. It helps to
manage project and determine whether the technical resource and
technical team is capable to
convert the ideas into the working system. It also evaluates the
hardware, software, and other
technology for the purposed system. If the resources are insufficient or
technical manpower is not
capable then the project is considered as not technically feasible.
Economic feasibility:
Economic feasibility involves a cost / benefits analysis of the project.
It helps to determine the
viability, cost, and benefits of the project before allocating the financial
resource to the project. It
works as a separate or independent feasibility which will determine the
decision of the whole project.
Legal feasibility:
Legal feasibility helps to investigate whether the project is legal or illegal. It
checks all the aspects of
the proposed project with the legal requirements like data protection act,
or social media law. For
example: let’s say an organization wants to build a new office in a specific
location which isn’t not
suitable for that company. That company has just saved time and
cost by learning whether it is
feasible or not from the beginning.
Operational feasibility:
Operation feasibility always deals with the how well the proposed program
will satisfy and analyze
all the factors that organization’s needs are met or not. It also analyzes the
plan of requirement which

Importance of feasibility report:

15
HND-45 Aung Kaung Maw

The main importance of feasibility is to provide the legal and


technical evidence of the project’s validity, sustainability and cost-
effectiveness. It helps the management team to get all the required
information for key decision on budgeting and investment plan. It helps in
the analysis of the project because this report links the project efficiency to
budget and provides clear view of the project. It also helps to mitigate the
risks because this report contains contingencies plan and risk management
strategy and plan. It also helps to know about the staffing needs in the
sectors so that staff trainings are conducted to acquire and train necessary
specialists. Being a System analyst, I was assigned with the task to develop
the new system for the company. To develop the new system, I have
researched all aspect of the system including all the feasibility of the system
and I have gone through these five types of feasibility study which is
described below:
Technical feasibility:
Technical feasibility always looks for the technical resources available
to the project. It helps to manage project and determine whether the
technical resource and technical team is capable to convert the ideas
into the working system. It also evaluates the hardware, software,
and other technology for the purposed system. If the resources are
insufficient or technical manpower is not capable then the project is
considered as not technically feasible.
Economic feasibility:
Economic feasibility involves a cost / benefits analysis of the project.
It helps to determine the viability, cost, and benefits of the project
before allocating the financial resource to the project. It works as a
separate or independent feasibility which will determine the decision of the
whole project.
Legal feasibility:
Legal feasibility helps to investigate whether the project is legal or illegal. It
checks all the aspects of the proposed project with the legal requirements
like data protection act, or social media law. For example: let’s say an
organization wants to build a new office in a specific location which isn’t not
suitable for that company. That company has just saved time and
cost by learning whether it is feasible or not from the beginning.
Operational feasibility:

16
HND-45 Aung Kaung Maw

Operation feasibility always deals with the how well the proposed program
will satisfy and analyze all the factors that organization’s needs are met or
not. It also analyzes the plan of requirement which is identified in the
requirement analysis phase of system development.
Scheduling feasibility:
Scheduling feasibility deals with the timeframe of the project. If the
project is completed on time then the project is success else a project will
fail if it is not completed on time. It also estimates how much time the
project will take to complete. And allocates the required time for the
project like deadline of the project completion.
After examining all the aspect of the feasibility, it helps to identify
any constraint the proposed project may face.
Technical Solution:
Technical solution has the main purpose of design, develop and implement
solution in the project. Solution, designs and implementation has its own
products, products components and product-related lifecycle processes.
Technical solution plays a vital role in product and product component and
also in product related lifecycle. On the other hand, feasibility report helps to
know whether the project is feasible or not with its available resources.
Technical solution always helps in decision making which one is suitable
and provides quality decisions. Feasibility report gives clearness about the
product and its feasibility. It also helps to predict future. Technical solution
of the project is given
below:
1. Requirements Gathering This section emphasizes the importance of
gathering user requirements and stakeholder feedback in the early
stages of the project. It discusses the use of collaboration and
communication tools like Jira, Trello, or Confluence to effectively
collect and document requirements.
2. Design and Planning The design and planning phase is critical for
creating a user-friendly interface and an optimal user experience. This
section discusses the use of wireframing and prototyping tools such as
Sketch, Figma, or Adobe XD to visualize the app's UI/UX. It also
highlights the significance of design systems or UI component libraries
for consistent UI development.

17
HND-45 Aung Kaung Maw

3. Development This section focuses on the technical solutions employed


during the development phase. It suggests the selection of an
appropriate technology stack, version control systems like Git, and
coding standards and best practices. The use of development
frameworks and libraries aligned with the chosen technology stack is
also emphasized. Additionally, the section highlights the importance of
automated testing frameworks like Jest, XCTest, or Espresso for
ensuring code quality.
4. Testing and Quality Assurance The testing and quality assurance phase
plays a crucial role in ensuring the reliability and performance of the
dating app. This section discusses the implementation of
comprehensive testing strategies, including functional testing, usability
testing, performance testing, and security testing. It also highlights
the use of automated testing frameworks and the adoption of CI/CD
pipelines for efficient testing and deployment processes.
5. Deployment and Release This section focuses on the technical
considerations for deploying the dating app in a production
environment. It highlights the use of cloud hosting services like AWS,
GCP, or Azure for backend infrastructure and databases. Additionally,
containerization technologies like Docker or Kubernetes are suggested
for streamlined deployment and management.
6. Maintenance and Support The maintenance and support phase is
crucial for the ongoing success of the dating app. This section
discusses the implementation of error tracking and monitoring tools,
as well as customer support systems. It emphasizes the importance of
continuous updates, bug fixes, security enhancements, and user
support to ensure user satisfaction and app stability.
Component of feasibility report:
Feasibility study helps us to determine whether the project is technically
feasible, cost-effective and
profitable which helps investors to ensure that the they can spend
money because after successful
feasibility it will clearly tell about the project (linkedin). it can give
us the right answer before
investor spend money, time and resources on an idea that is not
viable. The following are the
components of the feasibility report:
Purpose:

18
HND-45 Aung Kaung Maw

Feasibility report establish the intended purpose of the information


environment and it defines all the
boundaries of the information system by identifying the content of
interest of the business
organization.
Structure:
It defines the shape and boundaries of the information with all the
functionality and helps in making
the strategy and scope for the project. It converts scattered
resources into a unified and cohesive
arrangement in an organized system.
Intended audience:
Intended audience is those people who will be actively participate in the
activities of the information
environment.
Project scope:
In order to get a better feasibility, report it must be clear in defining all the
business plan, problems
and strategies. Scope of the project must be definite and to the
point which shouldn’t make any
confusion in the project and its members. It should include all
business parts which is directly or
indirectly affected like end users, developers and even sponsors etc. a well-
define project scope can
only give an accurate feasibility report.
Market research:
Before placing the product in the market, a market research is required
which helps in discovering
the strength and weakness of the current approach. Reviewing this strength,
weakness, opportunity,
and threats faced by the project helps in decision making. This way we can
consider that how much
we can get from the market after launching the product and it helps in
making the accurate feasibility
report.
Requirements:
The technical and organizational requirement needs to be addressed so
that we can understand the
potential market and demand of the product and services. We must
define the requirementsprofitable which helps investors to ensure that
the they can spend money because after successful
feasibility it will clearly tell about the project (linkedin). it can give
us the right answer before investor spend money, time and resources

19
HND-45 Aung Kaung Maw

on an idea that is not viable. The following are the components of the
feasibility report:
Purpose:
Feasibility report establish the intended purpose of the information
environment and it defines all the boundaries of the information system
by identifying the content of interest of the business organization.
Structure:
It defines the shape and boundaries of the information with all the
functionality and helps in making the strategy and scope for the project.
It converts scattered resources into a unified and cohesive
arrangement in an organized system.

Intended audience:
Intended audience is those people who will be actively participate in the
activities of the information environment.
Project scope:
In order to get a better feasibility, report it must be clear in defining all the
business plan, problems and strategies. Scope of the project must be
definite and to the point which shouldn’t make any confusion in the
project and its members. It should include all business parts which is
directly or indirectly affected like end users, developers and even sponsors
etc. a well-define project scope can only give an accurate feasibility report.
Market research:
Before placing the product in the market, a market research is required
which helps in discovering the strength and weakness of the current
approach. Reviewing this strength, weakness, opportunity, and threats faced
by the project helps in decision making. This way we can consider that how
much we can get from the market after launching the product and it helps in
making the accurate feasibility
report.
Requirements:

20
HND-45 Aung Kaung Maw

The technical and organizational requirement needs to be addressed so


that we can understand the potential market and demand of the
product and services. We must define the requirements
depending on the objective of the project. If we are confused in the
requirements then if may bring
the failure in the system because the software and hardware combination
should match in order to
provide a better performance. What if the hardware components don’t
support the software? So
before starting the project it should be fixed about the requirements of
everything’s required for the
project.
Approach:
We need to consider and choose the recommended solution to meet
our requirements. In order to
meet the requirement needs various alternatives are considered to
choose a solution that is most
preferable. While finding the best approach we can question our self like:
Does the approach meet
my requirements? Is the approach taken a practical and viable solution?
Evaluation:
Evaluation is done according to the cost effectiveness of the selected
approach and the estimated cost
of the project. Other evaluation is also done after calculating the total costs,
benefits, profit and loss
which can be achieved are also evaluated.
Review:
Finally, review is made according to the feasibility report which helps in
taking a rational decision in
order to verify the project. The project can be approved, rejected or
revised. Then if the project is
approved all the parties signed to proceed the project else if the
project is rejected then it is
collapsed.
Impact of feasibility criteria on the Software investigation:
Feasibility study is a study of possible alternate solution to a problem and a
recommendation on the
best alternative. (UKEssays, feb 2017) it can decide whether a process
carried out by the new system
is more efficient than the existing system. The feasibility study is
used to determine the potential
positive factors as well as negative factors of the project by project
manager. It helps to know

21
HND-45 Aung Kaung Maw

whether the project is worth or not.


I have carried out all the feasibility study being an analyst for
Rastriya Beema Sansthan. During
feasibility study a successful documentation was prepared before
starting the project and now the
impacts of the feasibility criteria on the software investigation is given
below:
Operational impact:
A purposed project needs to operate all the functions which the system has
provided and should be depending on the objective of the project. If we are
confused in the requirements then if may bring
the failure in the system because the software and hardware combination
should match in order to provide a better performance. What if the
hardware components don’t support the software? So before starting the
project it should be fixed about the requirements of everything’s required for
the
project.
Approach:
We need to consider and choose the recommended solution to meet
our requirements. In order to meet the requirement needs various
alternatives are considered to choose a solution that is most
preferable. While finding the best approach we can question our self like:
Does the approach meet my requirements? Is the approach taken a practical
and viable solution?
Evaluation:
Evaluation is done according to the cost effectiveness of the selected
approach and the estimated cost of the project. Other evaluation is also
done after calculating the total costs, benefits, profit and loss which can be
achieved are also evaluated.
Review:
Finally, review is made according to the feasibility report which helps in
taking a rational decision in order to verify the project. The project can be
approved, rejected or revised. Then if the project is approved all the
parties signed to proceed the project else if the project is rejected
then it is
collapsed.
Objectives:

22
HND-45 Aung Kaung Maw

The main objectives of the dating web application project are as follows:

a. Develop a user-friendly and intuitive platform for online dating.


b. Provide robust features for user profile creation, matching algorithms, and
communication tools.
c. Ensure the privacy and security of user data.
d. Monetize the application through premium subscription plans and
advertisements.

Market Analysis:
Extensive market research indicates a significant demand for online dating
services, with a steady growth rate in recent years. The target audience
primarily consists of individuals between the ages of 18 and 35, seeking
diverse relationships and connections. The market analysis suggests a
favorable environment for a dating web application, with opportunities for
growth and revenue generation.

Technical Feasibility:
The development of a dating web application requires a robust technical
infrastructure. The following factors contribute to the technical feasibility:

a. Platform Selection: Determine the appropriate technology stack for


application development, considering factors such as scalability, security,
and user experience.
b. Database Management: Establish a secure and scalable database
structure to handle user profiles, preferences, and interactions effectively.
c. User Interface and Experience: Design an intuitive and appealing user
interface that enhances the overall user experience.
d. Matching Algorithm: Develop a sophisticated matching algorithm based on
user preferences and compatibility metrics.
e. Mobile Compatibility: Ensure compatibility with various mobile platforms
to reach a wider user base.

23
HND-45 Aung Kaung Maw

Financial Feasibility:
The financial feasibility analysis examines the projected costs, revenue
streams, and profitability of the dating web application project. Key financial
considerations include:

a. Development Costs: Estimate the costs associated with application


development, including software development, server infrastructure, and
testing.
b. Operational Costs: Determine ongoing costs such as server maintenance,
customer support, and marketing.
c. Revenue Generation: Identify potential revenue streams, including
premium subscription plans, in-app purchases, and targeted advertisements.
d. Return on Investment (ROI): Evaluate the financial viability of the project
by assessing the projected ROI over a specified period.
Time Duration
To develop dating web application, the estimated time required is may be
around 6 month. However, it may also depend on how much challenges the
project is going to face.

Legal and Regulatory Considerations:


Launching a dating web application involves legal and regulatory obligations
to protect user privacy, ensure data security, and comply with relevant laws.
Key considerations include:

a. Data Privacy: Implement robust data protection measures to comply with


applicable data privacy regulations, such as GDPR or CCPA.
b. Terms of Service and Privacy Policy: Create comprehensive and legally
compliant terms of service and privacy policy documents.
c. Age Verification: Implement mechanisms to verify the age of users and
prevent underage access.

24
HND-45 Aung Kaung Maw

d. Intellectual Property: Conduct a thorough assessment of intellectual


property rights to avoid any infringement issues.

Risk Analysis:
Identify potential risks and challenges associated with the development and
launch of the dating web application. Mitigation strategies should be devised
for each risk to minimize their impact on the project.

Conclusion:
Based on the comprehensive analysis conducted, it is concluded that the
development of a dating web application is technically feasible, financially
viable, and aligned with market demands. However, careful attention must
be given to legal and regulatory considerations, data privacy, and user
security.

Impact of feasibility criteria on the Software investigation:


Feasibility study is a study of possible alternate solution to a problem and
it can decide whether a process carried out by the new system
is more efficient than the existing system. The feasibility study is
used to determine the potential positive factors as well as negative
factors of the project by project manager. It helps to know whether
the project is worth or not.
I have carried out all the feasibility study being an analyst . During
feasibility study a successful documentation was prepared before
starting the project and now the impacts of the feasibility criteria on the
software investigation is given below:
Operational impact:
A purposed project needs to operate all the functions which the system has
provided and should be
effective in use after the complete development of the system which
also refers to operational

25
HND-45 Aung Kaung Maw

feasibility. The impact on the operational feasibility will be when the


expected benefits of the system
will not meet the end-user’s satisfaction because of the complexity in
the system. System is
evaluated during an investigation to know how well the organization needs
are fulfilled. During the
study of operational feasibility, company had its own goal and ambition
with various strategies to
take the international market and make a new system which will help
them to grow. And the
operational feasibility has its own impact on the work and strategy to extend
it services to clients.
Technical impact:
The impacts on the insurance company are determined with the
various criteria such as resource,
capacity, the working teams. Here the resources provided to the working
team is sufficient or not is
monitored. Whether the technical team is capable of converting the ideas
into the working system.
Technical feasibility deals with the technical of the system like
equipment needed to build the
system, install or operate the system. It also involves the hardware and
software evaluation.
Economic impact:
Impacts of the economic feasibility in the insurance company are
concerned about the cost and
benefits of the projects. It helps to know viability, make decision to
determine the positive economic
benefits.
Schedule impact:
Schedule feasibility has impact on the insurance company that to get the
success by completing the
project on time. Schedule feasibility will be high is the project is completed
on time before deadline.
It helps to make the project successful.
Conclusion:
Feasibility study is one of the essential activities of the system
analysis. It helps to analyze the
proposed system whether the system can be useful or the system is feasible
for developing. Keeping
all the feasibility in mind the development of the system is developed for
future prospective as well.
We can compare various technical solutions like I have compared DFD
and ERD, etc. similarly,

26
HND-45 Aung Kaung Maw

feasibility study with its impacts for the new system has be compared. Thus,
feasibility study of the
software provides us the report of the feasibility which makes us
clear about the software and
stakeholders can determine whether to develop a system or not. This
feasibility report will be the
huge benefits for the organization.
effective in use after the complete development of the system which
also refers to operational feasibility. The impact on the operational
feasibility will be when the expected benefits of the system will not meet
the end-user’s satisfaction because of the complexity in the system.
System is
evaluated during an investigation to know how well the organization needs
are fulfilled. During the study of operational feasibility, company had its
own goal and ambition with various strategies to take the international
market and make a new system which will help them to grow. And
the operational feasibility has its own impact on the work and strategy to
extend it services to clients.
Technical impact:
The impacts on the insurance company are determined with the
various criteria such as resource, capacity, the working teams. Here the
resources provided to the working team is sufficient or not is
monitored. Whether the technical team is capable of converting the ideas
into the working system.
Technical feasibility deals with the technical of the system like
equipment needed to build the system, install or operate the system. It
also involves the hardware and software evaluation.
Economic impact:
Impacts of the economic feasibility in the insurance company are
concerned about the cost and benefits of the projects. It helps to know
viability, make decision to determine the positive economic
benefits.
Schedule impact:
Schedule feasibility has impact on the insurance company that to get the
success by completing the project on time. Schedule feasibility will be high is
the project is completed on time before deadline.

27
HND-45 Aung Kaung Maw

It helps to make the project successful.

Software Requirement Specification for Dating Web Application

1.Introduction:
The purpose of this Software Requirement Specification (SRS) is to define
the requirements for the development of a dating web application. This
application aims to facilitate connections between individuals seeking
romantic relationships, providing a user-friendly and secure platform for
communication and interaction.

2.Scope:
The dating web application will allow users to create profiles, search for
potential matches based on various criteria, engage in private messaging,
and access additional features through premium subscriptions. The
application will be accessible through web browsers on desktop and mobile
devices.

3.Functional Requirements:
3.1 User Registration
Users can create accounts by providing necessary details.
Users can log in and log out of their accounts.
3.2 User Profiles
Users can create and edit their profiles, including personal information,
photos, and preferences.
Users can view and search for other user profiles.
3.3 Matching and Search
Users can search for potential matches based on criteria such as age,
location, interests, and preferences.
The system will provide matching suggestions based on user profiles and
preferences.

28
HND-45 Aung Kaung Maw

3.4 Communication
Users can send and receive private messages to other users.
Users can like or express interest in other user profiles.

3.5 Notifications
Users will receive notifications for new messages, likes, matches, and other
relevant activities.
3.6 Premium Subscriptions
Users can subscribe to premium plans to access additional features such as
advanced search filters, unlimited messaging, and enhanced privacy
settings.
Non-Functional Requirements:
4.1 Performance
The application should handle a large user base and provide fast response
times for searches and messaging.
The system should be scalable to accommodate increasing user traffic.
4.2 Security
User data, including personal information and messages, should be securely
stored and protected.
The application should implement secure authentication and authorization
mechanisms.
4.3 Usability
The user interface should be intuitive, visually appealing, and responsive
across different devices.
The application should provide clear instructions and feedback to users.
5.User Interfaces:
The application will have user-friendly interfaces for account registration,
profile creation, search filters, messaging, and subscription management.
Screens and navigation should be designed to enhance user experience and
ease of use.

29
HND-45 Aung Kaung Maw

6.System Features:
Detailed specifications of each feature, including user registration, profile
management, search functionality, messaging system, and premium
subscription features.
7.External Interfaces:
Integration with third-party services for email notifications, payment
gateways for subscription management, and social media sharing
functionalities.
8.Performance Requirements:
The application should load within a reasonable time frame.
The response time for searches, profile loading, and messaging should be
quick and efficient.
9.Design Constraints:
The application should be compatible with major web browsers (Chrome,
Firefox, Safari, and Edge) and be responsive across different screen sizes.

Sequence Diagram

30
HND-45 Aung Kaung Maw

Data Flow Diagram

31
HND-45 Aung Kaung Maw

Use Case diagram

32
HND-45 Aung Kaung Maw

Tracing Software Requirements Across the Software Lifecycle: Ensuring


Alignment and Quality"
Tracing software requirements throughout the software lifecycle is essential
to ensure that the final product aligns with the desired functionality and
meets the stakeholders' needs. By establishing traceability, you can track
the relationships between requirements and various artifacts produced
during the software development process. Here's how requirements can be
traced across different stages of the software lifecycle:
Requirements Gathering:
During the requirements gathering phase, the primary focus is on
understanding and documenting the stakeholders' needs. To establish
traceability from this stage:

33
HND-45 Aung Kaung Maw

Document the requirements systematically: Create a comprehensive


requirements document that captures the functional and non-functional
requirements, as well as any constraints or dependencies.
Use unique identifiers: Assign unique identifiers to each requirement. These
identifiers will be used to track and reference the requirements throughout
the lifecycle.
Prioritize and categorize requirements: Organize the requirements into
categories or groups based on their importance, scope, or any other relevant
criteria. This categorization helps in managing and prioritizing requirements
during subsequent stages.
Design:
During the design phase, the high-level architecture and system structure
are defined based on the requirements. Traceability can be maintained by:
Mapping requirements to design artifacts: Establish relationships between
the requirements and the design artifacts, such as architectural diagrams,
system models, or component specifications. This ensures that each
requirement is addressed in the design.
Validate design against requirements: Review the design to ensure that it
adequately covers all the requirements. Perform traceability checks to verify
that every requirement has been considered during the design process.
Implementation:
The implementation phase involves translating the design into code. To
maintain traceability during this phase:
Map requirements to code modules: Establish traceability between the
requirements and the corresponding code modules or functions. This can be
achieved by using traceability matrices or automated tools that track the
mapping between requirements and source code.
Conduct code reviews: Perform code reviews to ensure that the
implemented code aligns with the requirements. Traceability can be used to
validate that each requirement has been properly implemented.
Testing:
During the testing phase, the objective is to verify that the software meets
the specified requirements. Traceability in testing involves:

34
HND-45 Aung Kaung Maw

Create test cases: Develop test cases that directly correspond to the
requirements. Each test case should clearly indicate which requirement(s) it
is validating.
Trace test results to requirements: Capture and track the test results,
including any defects or issues discovered during testing. Ensure that the
defects are linked back to the specific requirements they impact.
Validate test coverage: Perform traceability checks to ensure that all
requirements have been tested adequately. This helps identify any gaps in
test coverage and ensures comprehensive validation of the software.
Software quality
Software quality refers to the degree to which a software product or system
meets specified requirements and satisfies the needs or expectations of its
stakeholders. It encompasses various aspects, including functionality,
reliability, performance, usability, maintainability, and security. Achieving
high software quality is crucial as it directly impacts user satisfaction,
business success, and the overall value delivered by the software.
Here are some key aspects of software quality:
Functionality: The software should fulfill its intended purpose and provide
the required features and capabilities as defined by the functional
requirements. It should meet user needs and expectations, allowing users to
perform tasks effectively and efficiently.
Reliability: Reliability refers to the software's ability to perform consistently
and accurately under various conditions. A reliable software product should
minimize failures, errors, and crashes, ensuring stable and predictable
operation.
Performance: Performance relates to the software's ability to meet specific
performance requirements, such as response time, throughput, and resource
utilization. A high-quality software product should perform efficiently,
delivering satisfactory performance even under expected or peak workloads.
Usability: Usability focuses on the software's ease of use, intuitiveness, and
user experience. It involves aspects such as user interface design,
navigation, learnability, and overall user satisfaction. A user-friendly
software product enhances productivity, reduces training needs, and
improves user adoption.
Maintainability: Maintainability refers to the software's ease of modification,
enhancement, and troubleshooting. A maintainable software product is easy

35
HND-45 Aung Kaung Maw

to understand, well-organized, and modular, enabling efficient bug fixing,


future updates, and scalability.
Security: Security is critical in software systems to protect data, prevent
unauthorized access, and ensure the confidentiality, integrity, and
availability of information. A high-quality software product should have
robust security measures and be resistant to vulnerabilities and cyber
threats.
Two approaches to improving software quality in dating application
Improving software quality in a dating application involves implementing
various approaches and best practices. Here are two key approaches that
can significantly enhance the software quality in a dating application:
Thorough Testing and Quality Assurance:
Implementing a comprehensive testing and quality assurance (QA) strategy
is essential to ensure the reliability and functionality of the dating
application. This approach includes:
Functional Testing: Conducting rigorous testing to verify that all features and
functionalities of the application are working as intended. This involves
creating test cases that cover various user scenarios, validating user inputs,
and verifying the expected outputs.
Usability Testing: Evaluating the application's user experience and ease of
use through usability testing. Gathering feedback from target users and
incorporating their suggestions helps identify usability issues and refine the
user interface and navigation.
Performance Testing: Assessing the application's performance under
different loads and stress levels to ensure it can handle expected user traffic.
Performance testing helps identify bottlenecks, response time issues, and
scalability concerns, enabling optimization and enhancing the overall user
experience.
Security Testing: Conducting security assessments to identify vulnerabilities
and implement necessary measures to protect user data and privacy. This
includes ensuring secure authentication mechanisms, encrypting sensitive
information, and safeguarding against common security threats.
Compatibility Testing: Testing the application across multiple platforms,
devices, and browsers to ensure compatibility and consistent behavior. This
approach helps identify and address any issues related to varying screen
sizes, operating systems, or browser versions.

36
HND-45 Aung Kaung Maw

Continuous Integration and Delivery:


Implementing continuous integration (CI) and continuous delivery (CD)
practices can significantly improve software quality by enabling faster
feedback loops, early detection of issues, and efficient deployment. This
approach includes:
Automated Testing: Integrating automated testing into the CI/CD pipeline to
continuously validate the application's functionality and performance.
Automated tests can be executed after every code change, ensuring that
new features or bug fixes do not introduce regressions.
Code Reviews: Implementing code review practices to ensure high-quality
code and adherence to coding standards. Peer code reviews help identify
potential issues, improve code readability, and promote best practices.
Version Control and Branching Strategies: Utilizing version control systems
and appropriate branching strategies to manage code changes effectively.
This ensures that code modifications are well-documented, reversible, and
do not impact the stability of the main codebase.
Continuous Deployment: Automating the deployment process to facilitate
frequent releases and faster delivery of new features and bug fixes. By
automating deployment, the risk of manual errors and inconsistencies is
reduced, and updates can be rolled out quickly and reliably.
"Systems Investigation: Enhancing Software Quality Through Requirement
Elicitation and Risk Management"
The process of undertaking a systems investigation plays a critical role in
improving software quality by identifying the needs, requirements, and
potential issues related to the software system. Here is an evaluation of the
effectiveness of the systems investigation process in improving software
quality:
Requirement Elicitation:
During the systems investigation, thorough requirement elicitation is
conducted to gather and understand the stakeholders' needs and
expectations. This process involves engaging with stakeholders, conducting
interviews, and analyzing existing systems or processes. Effective
requirement elicitation helps in capturing the functional and non-functional
requirements accurately, which serves as the foundation for developing
high-quality software.

37
HND-45 Aung Kaung Maw

Effectiveness: High. The systems investigation process allows for a


comprehensive understanding of the software requirements, reducing the
risk of miscommunication and misunderstandings that can lead to poor
software quality.
Analysis and Problem Identification:
Systems investigation involves analyzing the current system or process to
identify any shortcomings, limitations, or problems that need to be
addressed in the software development process. This analysis helps in
identifying potential areas of improvement and areas where software quality
might be compromised.
Effectiveness: High. By conducting a thorough analysis and identifying
problems or limitations, the systems investigation process enables the
development team to proactively address these issues, resulting in improved
software quality.
Feasibility Assessment:
During the systems investigation, a feasibility assessment is conducted to
evaluate the viability and practicality of developing the software system.
This assessment considers technical feasibility, economic feasibility, and
operational feasibility. By considering these factors, the investigation helps
determine if the proposed software solution is achievable and aligns with the
organization's goals.
Effectiveness: Medium. While feasibility assessment is essential for project
success, it may not directly impact software quality. However, by ensuring
the software solution is technically feasible and economically viable, the
investigation process contributes indirectly to the quality of the final product.
Risk Identification and Mitigation:
The systems investigation process involves identifying and assessing
potential risks associated with the software development project. By
considering factors such as project scope, requirements volatility, resource
availability, and technology constraints, the investigation helps identify and
mitigate risks that could impact software quality. Proactive risk management
reduces the likelihood of quality issues and allows for proper planning and
mitigation strategies.
Effectiveness: High. By identifying risks early in the systems investigation
process, appropriate measures can be taken to mitigate potential issues that

38
HND-45 Aung Kaung Maw

could impact software quality. This proactive approach helps ensure that
quality is prioritized throughout the software development lifecycle.
Stakeholder Engagement and Communication:
Systems investigation involves engaging with stakeholders, such as end-
users, managers, and technical experts, to understand their perspectives,
gather feedback, and communicate project objectives. Effective stakeholder
engagement and communication are crucial for ensuring that software
quality aligns with stakeholder expectations.
Effectiveness: High. By actively involving stakeholders and maintaining open
lines of communication, the systems investigation process enables the
development team to better understand and address stakeholder
requirements and concerns. This improves the likelihood of delivering
software that meets the desired quality standards.

Software behavioral design techniques are methodologies and practices used


to define, model, and specify the behavior and functionality of a software
system. These techniques focus on capturing how the software should
respond to various inputs, events, and user interactions. They play a crucial
role in the software development process by ensuring that the software
meets the desired functional requirements and behaves as expected.
The suitability of different software behavioral design techniques
Use Case Modeling:
Identifying and describing interactions between users (actors) and the
software system. Use cases capture the functional requirements and depict
various scenarios to illustrate how users interact with the system and the
expected system behavior in response.

39
HND-45 Aung Kaung Maw

Use Case Modeling is particularly suitable for a dating app project due to the
following main reasons:
1. User-Centric Approach: Use Case Modeling allows for a user-centric
approach to software development, which is crucial for dating apps. By
identifying and modeling the different user roles and their interactions
with the app, Use Case Modeling ensures that the app is designed to
meet the needs and goals of its target users. It helps capture the
specific actions users can perform, such as creating profiles, searching
for matches, sending messages, and scheduling dates.
2. Scenario Visualization: Dating apps involve complex scenarios and
workflows that can be effectively visualized using Use Case Modeling.
It helps illustrate the steps and interactions involved in various user
scenarios, providing a clear understanding of how the app should
behave in different situations. For example, Use Case Modeling can
depict the process of matching two users based on their preferences,
suggesting potential matches, and facilitating communication between
them.
3. Requirement Elicitation and Prioritization: Use Case Modeling facilitates
requirement elicitation by providing a structured approach to
identifying and documenting the functional requirements of the dating
app. It helps uncover user needs, desired features, and expected
system behavior. Additionally, Use Case Modeling allows for the
prioritization of features and functionalities based on user value and
project constraints, ensuring that the most critical and impactful
features are implemented first.
4. Effective Communication and Collaboration: Use Case Modeling serves
as a powerful communication and collaboration tool for all stakeholders
involved in the dating app project. It provides a common language and
visual representation that can be easily understood by developers,
designers, product managers, and even potential users. Use Case
diagrams and descriptions facilitate effective discussions, feedback,
and decision-making, fostering collaboration and shared understanding
among the project team.

State Transition Diagrams:

40
HND-45 Aung Kaung Maw

Representing the different states that a system can be in and the transitions
between those states triggered by events or inputs. State transition
diagrams provide a visual representation of the system's behavior, helping
to define the possible states and the conditions for transitioning between
them.
State Transition Diagrams are particularly suitable for a dating app project
due to the following main reasons:
1. Modeling User Interactions: Dating apps involve various user
interactions that trigger state changes within the application. State
Transition Diagrams provide a concise and visual representation of the
app's behavior in response to these interactions. They help capture the
possible states of the app (e.g., logged in, browsing profiles,
messaging, etc.) and illustrate the transitions between these states
based on user actions or system events. This modeling approach
allows developers and stakeholders to understand and define how the
app should respond to different user interactions, ensuring a smooth
and intuitive user experience.
2. Handling Complex Workflows: Dating apps often have complex
workflows that involve multiple steps and interactions. State Transition
Diagrams provide a clear overview of the flow between different
states, showing the progression of the user's journey within the app.
By representing the various states and transitions in the diagram, it
becomes easier to identify potential edge cases, handle exceptions,
and ensure that the app behaves consistently and predictably across
different user scenarios. This is crucial for creating a reliable and user-
friendly dating app.
3. Validation and Verification: State Transition Diagrams are valuable
tools for validating and verifying the behavior of a dating app. By
following the defined transitions in the diagram, developers and testers
can systematically test different paths and scenarios to ensure that the
app functions as expected. State Transition Diagrams provide a visual
reference for validating the correctness and completeness of the app's
behavior, helping to identify any missing or incorrect transitions and
allowing for adjustments and improvements before deployment.

Sequence Diagrams:

41
HND-45 Aung Kaung Maw

Depicting the interactions and message exchanges between various system


components or objects over time. Sequence diagrams illustrate the flow of
control and communication, showcasing the order of operations and how
different elements collaborate to achieve specific behaviors.

Sequence Diagrams are suitable for a dating app project due to the following
main reasons:
1. Visualizing Interactions and Communication: Dating apps involve
various interactions and communication between different components
or objects within the system. Sequence Diagrams provide a visual
representation of these interactions, showcasing the order of
messages exchanged between objects and the flow of control. This
visualization helps stakeholders, developers, and designers understand
the communication patterns and dependencies between different
components of the app, ensuring effective implementation and
integration.
2. Modeling User Scenarios and Workflows: Sequence Diagrams are ideal
for modeling user scenarios and workflows in a dating app. They allow
for depicting the step-by-step interactions between users and the app,
illustrating how the app responds to user actions and events. For
example, a sequence diagram can show the process of matching two
users based on their preferences, displaying potential matches, and
facilitating communication between them. By capturing these user
workflows, Sequence Diagrams help ensure the app's functionality
aligns with user expectations.
3. Identifying System Behavior and Collaborations: Sequence Diagrams
provide insights into the behavior of the system's components and
their collaborations. They help identify which objects are involved in
specific interactions, what messages are exchanged, and how the
system responds to those messages. This level of detail allows for a
deeper understanding of the app's behavior and aids in identifying
potential bottlenecks, inefficiencies, or errors in the system design. By
analyzing Sequence Diagrams, developers can optimize the app's
performance and enhance its overall quality.

Software behavioral design is crucial in software development for


several reasons:

42
HND-45 Aung Kaung Maw

1. Requirement Understanding: Behavioral design techniques help in


capturing and understanding the functional requirements of the
software system. By explicitly defining the expected behavior, these
techniques ensure that all stakeholders have a clear understanding of
what the software should do.
2. Communication and Collaboration: Behavioral design provides a
common language and visual representations that facilitate effective
communication and collaboration among project stakeholders. It
enables developers, designers, testers, and business stakeholders to
share a common understanding of the system's behavior and align
their efforts towards achieving the desired outcomes.
3. System Behavior Definition: Behavioral design techniques allow
developers to define and specify how the software should respond to
different inputs, events, and user interactions. This helps in shaping
the behavior of the system, guiding the development process, and
ensuring that the software meets the intended objectives.
4. Validation and Verification: By creating models and diagrams to
represent the system's behavior, behavioral design techniques enable
validation and verification of the software. Developers can simulate
different scenarios and test the behavior against expected outcomes,
ensuring that the software behaves as intended and meets the
functional requirements.
5. Error Identification and Prevention: Behavioral design techniques help
in identifying potential errors, conflicts, or gaps in the software's
behavior early in the development process. By visualizing the system's
behavior and interactions, developers can identify inconsistencies or
missing functionality, allowing for proactive error prevention and
mitigation.
6. Maintenance and Evolvability: Clearly defined behavioral design
models and documentation make it easier to maintain and enhance the
software system over time. Future modifications or updates can be
guided by the behavioral specifications, ensuring that the changes
align with the desired behavior and minimize the risk of introducing
unintended consequences.
7. User-Centric Design: Behavioral design techniques focus on capturing
user interactions and scenarios, enabling a user-centric design
approach. By understanding user needs and expectations, developers

43
HND-45 Aung Kaung Maw

can design software that provides a satisfying user experience and


meets user requirements effectively.

Benefits and limitations of using software behavioral design


techniques
Benefits:
1. Clear Requirements: Behavioral design techniques help in defining and
clarifying the requirements for the dating project. Techniques like use
case modeling, state transition diagrams, and sequence diagrams
provide a clear understanding of the expected behavior of the system,
ensuring that all stakeholders are on the same page.
2. User-Centric Design: These techniques focus on capturing user
interactions and scenarios, allowing for a user-centric design approach.
By understanding the needs and expectations of users, the dating app
can be designed to provide a satisfying user experience and meet user
requirements.
3. Communication and Collaboration: Software behavioral design
techniques facilitate effective communication and collaboration among
project stakeholders. They provide visual representations that can be
easily understood by developers, designers, testers, and business
stakeholders, fostering collaboration and ensuring a shared
understanding of the system's behavior.
4. Validation and Verification: These techniques support the validation
and verification of the dating app's behavior. By creating models and
diagrams, developers can simulate and test different scenarios to
ensure that the app behaves as intended, reducing the risk of
functional issues.
5. Development Guidance: Behavioral design techniques provide
guidance for developers during the implementation phase. The models
and diagrams serve as blueprints, helping developers understand the
expected behavior and guiding the coding process.
Limitations:
1. Complexity: Software behavioral design techniques can become
complex, especially for large and intricate projects. The process of
capturing all possible user interactions and system behaviors can be
time-consuming and may require careful analysis and documentation.

44
HND-45 Aung Kaung Maw

2. Incomplete Specifications: Despite efforts to capture the expected


behavior, behavioral design techniques may not capture all possible
scenarios or edge cases. There is a risk of overlooking certain
interactions or behaviors, which could lead to gaps in the software's
functionality.
3. Changing Requirements: Behavioral design techniques rely on the
accuracy of the initial requirements captured. If there are frequent
changes or evolving requirements during the development process, the
design models may need to be updated and revised accordingly,
causing potential delays and additional effort.
4. Limited Flexibility: In some cases, behavioral design techniques can
impose constraints on the development process. The explicit definition
of behavior may limit the flexibility to explore alternative approaches
or make dynamic changes to the system's behavior.
5. User Experience Considerations: While behavioral design techniques
help capture the functional aspects of the dating app, they may not
explicitly address all aspects of the user experience. It's important to
complement behavioral design with user experience design techniques
to ensure a holistic approach to app development.
FSM
FSM stands for Finite State Machine. It is a mathematical model used
to represent and analyze the behavior of a system or process that can be in
a finite number of states at any given time. FSMs are widely used in various
fields, including computer science, engineering, and software development,
to describe the logic and control flow of systems.
In an FSM, the system is represented as a set of states, transitions,
and events. Each state represents a specific condition or mode in which the
system can exist, and transitions define the movement or change of state
based on the occurrence of events. Events trigger the transition from one
state to another, and the system's behavior is determined by the sequence
of events and transitions.
The key components of an FSM are:
1. States: The distinct conditions or modes in which the system can exist.
Each state represents a specific behavior or configuration of the
system.

45
HND-45 Aung Kaung Maw

2. Transitions: The rules or conditions that determine the movement


from one state to another. Transitions are triggered by events or
conditions and define the system's response to those events.
3. Events: The occurrences or stimuli that trigger state transitions.
Events can be external inputs, internal conditions, or time-based
triggers.
4. Actions: The actions or operations associated with state transitions.
Actions specify what the system does when a particular transition
occurs, such as executing a specific function or changing the system's
output.
Advantages of FSM (Finite State Machine):
1. Simplicity: FSMs provide a simple and intuitive way to model and
understand the behavior of systems with finite states and transitions.
They have a clear and well-defined structure, making them easier to
comprehend and analyze.
2. Modularity: FSMs allow for the modular design of systems by breaking
them down into individual states and transitions. This modularity
facilitates system maintenance, updates, and modifications since
changes can be localized to specific states or transitions without
affecting the entire system.
3. Scalability: FSMs can be scaled up or down by adding or removing
states and transitions as needed. This flexibility makes them suitable
for a wide range of applications, from simple systems with a few states
to complex systems with numerous states and transitions.
4. Verifiability: FSMs can be formally verified to ensure the correctness of
system behavior. Formal verification techniques can be applied to
analyze properties, detect errors, and validate that the system adheres
to desired specifications.

Disadvantages of FSM (Finite State Machine):


1. Limited Modeling Power: FSMs have limited modeling power when it
comes to complex systems with intricate behavior. They are not well-
suited for systems with numerous states and transitions or systems
that involve concurrent or parallel processes.

46
HND-45 Aung Kaung Maw

2. State Explosion Problem: In large-scale systems, the number of states


and transitions can grow exponentially, leading to a state explosion
problem. This can make the FSM model difficult to manage,
understand, and maintain.
3. Lack of Flexibility: FSMs are rigid in nature and may not easily
accommodate changes or updates to the system behavior. Modifying
or extending the FSM model can be cumbersome, requiring significant
effort and potentially impacting the entire system.

EFSM
An extended FSM (EFSM) refers to an extension of the basic Finite
State Machine (FSM) model that incorporates additional features to enhance
its functionality and expressive power. The EFSM expands on the capabilities
of the traditional FSM by introducing additional elements and concepts.
The key features of an extended FSM may include:
1. Actions and Outputs: EFSMs often include the ability to specify actions
or outputs associated with state transitions. Actions are tasks or
operations performed when transitioning from one state to another,
such as updating variables, generating output signals, or invoking
functions.
2. Guards or Conditions: EFSMs may incorporate guard conditions, which
are Boolean expressions that need to evaluate to true for a transition
to occur. Guards allow for more complex decision-making based on the
current state and input conditions.
3. Hierarchical States: EFSMs can support hierarchical state structures,
enabling the decomposition of complex systems into nested sub-
states. This hierarchical organization helps in managing the complexity
of the system and provides a modular design approach.
4. Concurrent States: EFSMs may allow for concurrent or parallel
execution of multiple states. This feature enables the modeling of
systems that have multiple independent processes or activities
occurring simultaneously.
5. Internal Transitions: EFSMs can include internal transitions, where a
state can transition to itself without leaving and re-entering the same
state. Internal transitions are useful for capturing internal events or
actions within a state.

47
HND-45 Aung Kaung Maw

6. History States: EFSMs may include history states, which remember the
previously active sub-state when entering and exiting a composite
state. History states allow the system to resume from the last known
state when re-entering a composite state.

Advantages of EFSM (Extended Finite State Machine):


1. Increased Expressiveness: EFSMs offer additional features, such as
actions, guards, hierarchical states, concurrent states, and internal
transitions, which increase the expressive power of the model. These
features allow for more complex system behavior and enable the
representation of a wider range of system dynamics.
2. Enhanced Flexibility: The additional features in EFSMs provide greater
flexibility in modeling and designing systems. Actions and guards
enable more sophisticated decision-making and output generation,
while hierarchical and concurrent states allow for better organization
and representation of complex system structures.
3. Improved Reusability: EFSMs promote reusability by allowing the
encapsulation of common behavior in sub-states or sub-machines. This
modularity and reusability reduce redundancy and promote code
reuse, leading to more efficient development and maintenance.
4. Better System Control: EFSMs enable finer control over system
behavior through the use of actions, guards, and more advanced
transition mechanisms. This increased control allows for the modeling
of complex interactions, synchronization, and parallelism within the
system.
5. Enhanced Modeling Capability: The additional features in EFSMs provide a
more comprehensive representation of system behavior. This enhanced
modeling capability allows for better analysis, understanding, and
communication of system dynamics, leading to improved system design
and development.
Disadvantages of EFSM (Extended Finite State Machine):
1. Increased Complexity: The additional features and capabilities
introduced in EFSMs can lead to increased complexity. Hierarchical
states, concurrent states, and more advanced transition mechanisms
can make the model harder to understand, analyze, and implement.

48
HND-45 Aung Kaung Maw

2. Design and Development Overhead: EFSMs require additional design


and development effort compared to basic FSMs. Defining actions,
guards, and managing complex state hierarchies and concurrent
processes can be time-consuming and challenging.
3. Increased Verifiability Challenges: With the addition of more complex
features, the formal verification of EFSMs can become more
challenging. Verifying the correctness and desired properties of EFSMs
may require more sophisticated verification techniques and tools.
4. Potential for Over-Engineering: The additional features in EFSMs may
tempt designers to over-engineer the system, introducing unnecessary
complexity and potentially impacting system performance and
maintainability.

The main differences between a Finite State Machine (FSM) and an


Extended Finite State Machine (EFSM) are as follows:
1. Representation of System Behavior:
 FSM: In a Finite State Machine, the behavior of a system is
represented by a finite number of states, along with the
transitions between these states triggered by events or inputs.
The focus is primarily on capturing the system's states and the
conditions for transitioning between them.
 EFSM: An Extended Finite State Machine extends the concept of
FSM by incorporating actions and conditions associated with each
state. In an EFSM, along with the states and transitions, there
are actions or behaviors defined for each state, specifying what
actions should be performed when entering, exiting, or
remaining in a state. Additionally, conditions or guards can be
added to transitions, enabling the evaluation of certain
conditions before a transition can occur.
2. Modeling Complex Behaviors:
 FSM: FSMs are suitable for modeling systems with simple, well-
defined behavior and a limited number of states and transitions.
They work well for systems where the behavior can be captured
by a small set of states and the transitions between them are
straightforward.

49
HND-45 Aung Kaung Maw

 EFSM: EFSMs are more appropriate for modeling systems with


complex behavior and intricate state-dependent actions. By
allowing actions to be associated with each state, EFSMs provide
a more detailed representation of the system's behavior. This
enables the modeling of complex behaviors that involve actions
such as calculations, database operations, external
communications, and more.

Data driven software with its reliability and effectiveness:


A software is a set of programs used in the computer to do certain
task. Mostly software is not driven by the data but now the concept of the
data driven is little different. Software now a days have been automated and
driven by the data. Data driven refers to the process or activity that helps
the software to automate. The decisions and processes are dictated by the
data. This is most evident in the field of big data, where data and
information are the basis of all actions and it is gathered and analyzed for
predicting the future. Data are cheaper to store and easy to gather so big
data analytics are gaining more grounds as the best tool for decision
making in business. This is used in the application like Facebook, LinkedIn
to improve and analyze the data and make business value huge. This helps
us to predict and prescribe what to do next by providing reliable data,
relevant insights and recommended actions.
A Data driven software:
 Automates processes, problems and opportunities
 Operates on diverse data from many multichannel data sources
 Makes information universally available within a single application
 Seamlessly combines operational and analytic capabilities
 Automatically generates master data, metadata, models,
schema, and graphs as the user
searches, queries and collects data
 Continuously co-relates data entities
 Depends on customers
Data driven software are the application where application flow is
totally depends upon the data it processes. Input data set can trigger the

50
HND-45 Aung Kaung Maw

behavior of the application. Programming logic will remain same all the time
but it will be coded in such a way that data are driven but the code remains
always same. To develop this type of software it requires lots of testing as it
produces error when data issues are encountered. This type of software is
tested in variety of data samples.
The data driven software can improve the reliability and
effectiveness of the software by various means like test automation
which helps to automate the software to store the information like data
inputs and outputs. It helps to optimize the software by optimizing end
to end as it eliminates the unnecessary steps and process and keeps the
software performance high and enhance effectiveness. It is used for
collecting real time analytics and helps to predict the upcoming
requirements. Customers heavily rely on the software that produce the
quality and desire output. It makes the information universally
available within the application. Ultimately after having the data
driven software it is much more helpful in big data to predict and come to
the universal market. One of the best examples of the data driven software
is Facebook and it has huge data source in the world. It is the main reason
for the growing business is data driven software.
Now can automate the data and can have much more benefits in the
future. It will help the company to predict the future need and
requirements for the client and can provide services as per the required
and unwanted services can be removed. For example: insurance company is
using data driven software then it can easily know that which services is
heavily used and which one not used. Now company can neglect the
services which is not used frequently and focus on the software which
is heavily used by the users and can add now more schemes to the
services and gain more popularity.

is identified in the requirement analysis phase of system development.


Scheduling feasibility:
Scheduling feasibility deals with the timeframe of the project. If the
project is completed on time
then the project is success else a project will fail if it is not completed on
time. It also estimates how
much time the project will take to complete. And allocates the
required time for the project like
deadline of the project completion.

51
HND-45 Aung Kaung Maw

After examining all the aspect of the feasibility, it helps to identify


any constraint the proposed
project may face.
Technical Solution:
Technical solution has the main purpose of design, develop and implement
solution in the project.
Solution, designs and implementation has its own products, products
components and product-
related lifecycle processes. Technical solution plays a vital role in product
and product component
and also in product related lifecycle. On the other hand, feasibility report
helps to know whether the
project is feasible or not with its available resources. Technical
solution always helps in decision
making which one is suitable and provides quality decisions. Feasibility
report gives clearness about
the product and its feasibility. It also helps to predict future. Technical
solution of the project is given
below:
During the development phase, latest product of version 1.0 and 2.0 are
considered to be risky in use
because the technology may lack which leads to the system failure as this
may affect the company in
various ways so I have considered some of the technical solution for the
insurance company which
are given below:
Fitness:
Fitness checks whether the technology provide problem at hand or it is being
used for unintentional
purposes. Fitness of the software helps to minimize the risks and
uncertainty and also helps in
smooth operation. This helps in developing the risk-free product.
Maturity:
In early phase of any technology there will be something missing or will not
work properly. So, it is
risky to use version 1.0 of any technology because in technology Version 1.0
and 2.0 are considered
to be less effective and only gives priority to the matured software. Matured
software will have less
bug and can be trusted because its early version will provide us the
drawbacks of the software which
can be mitigated in the upcoming version. So, before they are ready it is
must to release the software

52
HND-45 Aung Kaung Maw

or hardware technology frequently. Unmatured technology may risk the


whole product.

is identified in the requirement analysis phase of system development.


Scheduling feasibility:
Scheduling feasibility deals with the timeframe of the project. If the
project is completed on time
then the project is success else a project will fail if it is not completed on
time. It also estimates how
much time the project will take to complete. And allocates the
required time for the project like
deadline of the project completion.
After examining all the aspect of the feasibility, it helps to identify
any constraint the proposed
project may face.
Technical Solution:
Technical solution has the main purpose of design, develop and implement
solution in the project.
Solution, designs and implementation has its own products, products
components and product-
related lifecycle processes. Technical solution plays a vital role in product
and product component
and also in product related lifecycle. On the other hand, feasibility report
helps to know whether the
project is feasible or not with its available resources. Technical
solution always helps in decision
making which one is suitable and provides quality decisions. Feasibility
report gives clearness about
the product and its feasibility. It also helps to predict future. Technical
solution of the project is given
below:
During the development phase, latest product of version 1.0 and 2.0 are
considered to be risky in use
because the technology may lack which leads to the system failure as this
may affect the company in
various ways so I have considered some of the technical solution for the
insurance company which
are given below:
Fitness:
Fitness checks whether the technology provide problem at hand or it is being
used for unintentional
purposes. Fitness of the software helps to minimize the risks and
uncertainty and also helps in

53
HND-45 Aung Kaung Maw

smooth operation. This helps in developing the risk-free product.


Maturity:
In early phase of any technology there will be something missing or will not
work properly. So, it is
risky to use version 1.0 of any technology because in technology Version 1.0
and 2.0 are considered
to be less effective and only gives priority to the matured software. Matured
software will have less
bug and can be trusted because its early version will provide us the
drawbacks of the software which

Reference
https://desklib.com/blog/software-development-life-cycle-sdlc-assignment/
https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
https://www.tutorialspoint.com/sdlc/sdlc_v_model.htm
https://www.interviewbit.com/blog/agile-model/#:~:text=A%20software
%20development%20approach%20based,start%20of%20the
%20development%20phase.
https://www.geeksforgeeks.org/software-engineering-spiral-model/
https://www.tpsgc-pwgsc.gc.ca/biens-property/sngp-npms/ti-it/etivcarftp-
idsfvfrmd-eng.html
https://faun.pub/risk-management-overview-integration-of-risk-
management-into-sdlc-ae48de24b743
https://www.geeksforgeeks.org/software-requirement-specification-srs-
format/
https://creately.com/guides/use-case-diagram-tutorial/
https://www.geeksforgeeks.org/unified-modeling-language-uml-sequence-
diagrams/

54
HND-45 Aung Kaung Maw

https://www.techtarget.com/searchdatamanagement/definition/data-flow-
diagram-DFD
https://brilliant.org/wiki/finite-state-machines/
https://jserd.springeropen.com/articles/10.1186/s40411-016-0027-4

effective in use after the complete development of the system which


also refers to operational
feasibility. The impact on the operational feasibility will be when the
expected benefits of the system
will not meet the end-user’s satisfaction because of the complexity in
the system. System is
evaluated during an investigation to know how well the organization needs
are fulfilled. During the
study of operational feasibility, company had its own goal and ambition
with various strategies to
take the international market and make a new system which will help
them to grow. And the
operational feasibility has its own impact on the work and strategy to extend
it services to clients.
Technical impact:
The impacts on the insurance company are determined with the
various criteria such as resource,
capacity, the working teams. Here the resources provided to the working
team is sufficient or not is
monitored. Whether the technical team is capable of converting the ideas
into the working system.
Technical feasibility deals with the technical of the system like
equipment needed to build the
system, install or operate the system. It also involves the hardware and
software evaluation.
Economic impact:
Impacts of the economic feasibility in the insurance company are
concerned about the cost and
benefits of the projects. It helps to know viability, make decision to
determine the positive economic
benefits.
Schedule impact:
Schedule feasibility has impact on the insurance company that to get the
success by completing the

55
HND-45 Aung Kaung Maw

project on time. Schedule feasibility will be high is the project is completed


on time before deadline.
It helps to make the project successful.
Conclusion:
Feasibility study is one of the essential activities of the system
analysis. It helps to analyze the
proposed system whether the system can be useful or the system is feasible
for developing. Keeping
all the feasibility in mind the development of the system is developed for
future prospective as well.
We can compare various technical solutions like I have compared DFD
and ERD, etc. similarly,
feasibility study with its impacts for the new system has be compared. Thus,
feasibility study of the
software provides us the report of the feasibility which makes us
clear about the software and
stakeholders can determine whether to develop a system or not. This
feasibility report will be the
huge benefits for the organization.

56

You might also like