0% found this document useful (0 votes)
8 views48 pages

SDLC Assignmentzzzzz

The document discusses the software development life cycle (SDLC) and its stages. It describes two iterative models - the agile model and spiral model. It also describes two sequential models - the waterfall model and V-model. It provides details on the stages, advantages and disadvantages of each model.

Uploaded by

Aung Kaung Maw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views48 pages

SDLC Assignmentzzzzz

The document discusses the software development life cycle (SDLC) and its stages. It describes two iterative models - the agile model and spiral model. It also describes two sequential models - the waterfall model and V-model. It provides details on the stages, advantages and disadvantages of each model.

Uploaded by

Aung Kaung Maw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

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.
Analysis: In this phase, the requirements are analyzed and documented, and
the system architecture is designed.

1
HND-45 Aung Kaung Maw

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.
• 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
3
HND-45 Aung Kaung Maw

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.

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.

4
HND-45 Aung Kaung Maw

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

5
HND-45 Aung Kaung Maw

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
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 development, • Error can be fixed only during the
each phase must be completed phase

6
HND-45 Aung Kaung Maw

Advantages Dis-Advantages

• It is not desirable for complex


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

• They should perform quality assurance


• Testing period comes quite late in
test (Verification and Validation) before
the developmental process
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 be


project team with minimum client included with ongoing development
intervention phase

• •

• Small changes or errors that arise in


• Any changes in software is made
the completed software may cause
during the process of the development
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.

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

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

9
HND-45 Aung Kaung Maw

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.

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,

10
HND-45 Aung Kaung Maw

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

11
HND-45 Aung Kaung Maw

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

12
HND-45 Aung Kaung Maw

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

13
HND-45 Aung Kaung Maw

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

14
HND-45 Aung Kaung Maw

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

15
HND-45 Aung Kaung Maw

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:
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:

16
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
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:
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.

17
HND-45 Aung Kaung Maw

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.

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

18
HND-45 Aung Kaung Maw

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.
d. Intellectual Property: Conduct a thorough assessment of intellectual
property rights to avoid any infringement issues.

Risk Analysis:

19
HND-45 Aung Kaung Maw

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

20
HND-45 Aung Kaung Maw

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.

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:

21
HND-45 Aung Kaung Maw

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

22
HND-45 Aung Kaung Maw

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

23
HND-45 Aung Kaung Maw

The application should be compatible with major web browsers (Chrome,


Firefox, Safari, and Edge) and be responsive across different screen sizes.

Sequence Diagram

24
HND-45 Aung Kaung Maw

Data Flow Diagram

Use Case diagram

25
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:

26
HND-45 Aung Kaung Maw

During the requirements gathering phase, the primary focus is on


understanding and documenting the stakeholders' needs. To establish
traceability from this stage:
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

27
HND-45 Aung Kaung Maw

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

28
HND-45 Aung Kaung Maw

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

29
HND-45 Aung Kaung Maw

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.

30
HND-45 Aung Kaung Maw

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.

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"

31
HND-45 Aung Kaung Maw

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

32
HND-45 Aung Kaung Maw

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

33
HND-45 Aung Kaung Maw

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

34
HND-45 Aung Kaung Maw

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:


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.

35
HND-45 Aung Kaung Maw

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:
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

36
HND-45 Aung Kaung Maw

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:
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

37
HND-45 Aung Kaung Maw

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

38
HND-45 Aung Kaung Maw

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

39
HND-45 Aung Kaung Maw

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

40
HND-45 Aung Kaung Maw

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

41
HND-45 Aung Kaung Maw

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

42
HND-45 Aung Kaung Maw

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

43
HND-45 Aung Kaung Maw

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

44
HND-45 Aung Kaung Maw

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 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
45
HND-45 Aung Kaung Maw

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.

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,st
art%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/

46
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

47

You might also like