SDLC
SDLC
Student’s name
List which assessment criteria Pass Merit Distinction
the Assessor has awarded.
Internal Verifier
Date
signature
Programme Leader
Date
signature (if required)
Assignment Feedback Form
Student Name/ID
Resubmission Feedback:
* Please note that grade decisions are provisional. They are only confirmed once internal and external moderation has taken place and grades
decisions have been agreed at the assessment board.
Assignment Feedback
Action Plan
Summative feedback
General Guidelines
1. A Cover page or title page – You should always attach a title page to your assignment. Use previous
page as your cover sheet and make sure all the details are accurately filled.
2. Attach this brief as the first section of your assignment.
3. All the assignments should be prepared using a word processing software.
4. All the assignments should be printed on A4 sized papers. Use single side printing.
5. Allow 1” for top, bottom, right margins and 1.25” for the left margin of each page.
1. The font size should be 12 point, and should be in the style of Time New Roman.
2. Use 1.5 line spacing. Left justify all paragraphs.
3. Ensure that all the headings are consistent in terms of the font size and font style.
4. Use footer function in the word processor to insert Your Name, Subject, Assignment No, and
Page Number on each page. This is useful if individual sheets become detached for any reason.
5. Use word processing application spell check and grammar check function to help editing your
assignment.
Important Points:
1. It is strictly prohibited to use textboxes to add texts in the assignments, except for the compulsory
information. eg: Figures, tables of comparison etc. Adding text boxes in the body except for the
before mentioned compulsory information will result in rejection of your work.
2. Carefully check the hand in date and the instructions given in the assignment. Late submissions
will not be accepted.
3. Ensure that you give yourself enough time to complete the assignment by the due date.
4. Excuses of any nature will not be accepted for failure to hand in the work on time.
5. You must take responsibility for managing your own time effectively.
6. If you are unable to hand in your assignment on time and have valid reasons such as illness, you
may apply (in writing) for an extension.
7. Failure to achieve at least PASS criteria will result in a REFERRAL grade.
8. Non-submission of work without valid reasons will lead to an automatic RE FERRAL. You will then
be asked to complete an alternative assignment.
9. If you use other people’s work or ideas in your assignment, reference them properly using
HARVARD referencing system to avoid plagiarism. You have to provide both in-text citation and
a reference list.
10. If you are proven to be guilty of plagiarism or any academic misconduct, your grade could be
reduced to A REFERRAL or at worst you could be expelled from the course
Student Declaration
I hereby, declare that I know what plagiarism entails, namely to use another’s work and to present it as
my own without attributing the sources in the correct form. I further understand what it means to copy
another’s work.
Issue Date
Submission format
The submission should be in the form of an individual report written in a concise, formal business
style using single spacing (refer to the assignment guidelines for more details). You are required to
make use of headings, paragraphs, and subsections as appropriate, and all work must be supported
with research and referenced using Harvard referencing system. Please provide in-text citation and a
list of references using Harvard referencing system.
Section A
Case 1: In the wildlife ministry of Sri Lanka intend to develop a wildlife safari system which links
all the details of sanctuaries, wetland, and national parks across Sri Lanka. Through this the
government wants to track all the details of safari drivers and to count local and foreign visitors
entering these premises. The IT department of wildlife ministry have little experience on
developing this kind of system and they have two years to complete this project.
Case 2: “ChangeU” salon needs to have a system to track their bookings and they expect to
provide better customer service through the system. This is not incredibly challenging, and the
development team also has some early experience of this kind of a project. And the main
requirement of the client is to get a high-quality product without considering the budget and
time constraints.
Activity 1
Describe two sequential models and two iterative models you have learned which can be used
to design the systems explained in the 2 given cases. Explain how the risk is managed in each
software lifecycle model identified. Pick one case out of two and select the most suitable SDLC
model along with a discussion elaborating the reasons to select the particular SDLC model.
Which system out of the given two is most suitable to be developed using the waterfall model?
Assess the merits of applying the waterfall model to the system chosen by you.
Section B
Assume yourself as a system analyst assign to analyse and design a software system for an
organization of your choice. Investigate the business and system requirements using appropriate
tools/ techniques and develop the system design with the findings.
Activity 2
Explain and discuss the purpose and the components of the feasibility report that you have to
develop in order to check the feasibility of the chosen system. Assess the impact of different
feasibility criteria included in your report to investigate the software system.
Suggest , describe and compare two technical solutions for the proposed system and pick the most
suitable one with the justification for the selection.
Activity 3
Undertake the system investigation to identify business and system requirements using
appropriate investigation tools/ techniques and develop the software system specification for
the chosen system.
Evaluate the effectiveness of the system investigation process chosen by you to fulfil the
requirements of the users and analyse the effectiveness of the SDLC followed in order to trace
the system requirements. Discuss two approaches that can be used to improve the quality of
the system in the future.
Activity 4
Analyse the software behavioural tools and techniques that could be used for the proposed
system and discuss suing examples, the most suitable behavioural techniques that could be used
for your system.
Differentiate the finite state machine (FSM) and extended FSM providing an application for each.
Justify how the data driven software can improve the reliability and the effectiveness of the
software system proposed by you.
Grading Rubric
Activity 01............................................................................................................................ 1
1.3 Selecting the Most Suitable SDLC Model for Case 2 ............................................... 9
1.4 The System Most Suitable for The Waterfall Model ............................................... 11
Activity 02.......................................................................................................................... 12
Activity 03.......................................................................................................................... 20
3.5 Evaluation of Systems Investigation Process for Improved Software Quality ........ 26
Activity 04.......................................................................................................................... 29
Page | ii
4.3 Finite State Machine (FSM) and Extended FSM ..................................................... 34
References .......................................................................................................................... 41
Page | iii
Table of Figures
Figure 1 Waterfall model ..................................................................................................... 1
Figure 2 V-Model................................................................................................................. 3
Figure 3 Agile Model ........................................................................................................... 5
Figure 4 Spiral Model .......................................................................................................... 7
List of Table
Table 1 Difference Between FSM and EFSM (Author Developed) .................................. 36
Page | iv
Page | v
Activity 01
The software industry uses the Software Development Life Cycle (SDLC) method to plan,
create, and test high-quality software. The goal of the SDLC is to create high-quality
software that meets or exceeds customer expectations while finishing on schedule within
budget. It includes of a thorough plan outlining how to develop, maintain, replace, and
modify or improve particular software. (tutorialspoint, 2023)
Waterfall model
The Waterfall Approach was the first commonly used SDLC Model in software
engineering to ensure project success. The entire software development process is split into
distinct phases using "The Waterfall" technique. Typically, the results of one step in this
waterfall model serve as the input for the subsequent phases in order. (tutorialspoint, 2023)
The following illustration is a representation of the different phases of the Waterfall Model.
Page | 1
− Requirement Gathering and analysis − In this stage, every potential requirement
for the system that will be created is gathered and outlined in a requirement
specification document. (tutorialspoint, 2023)
− System Design − In this phase, the required specifications from the first phase are
examined, and the system design is created. This system design aids in determining
the overall system architecture as well as the hardware and system requirements.
(tutorialspoint, 2023)
− Integration and Testing − After each unit completed testing during the
implementation phase, the entire system is merged. Following integration, the entire
system is examined for errors and failures. (tutorialspoint, 2023)
V-model
The V-model is an SDLC model where processes are executed sequentially in a V-shape.
The Verification and Validation Model is another name for it.
A testing phase is linked to each relevant development step in the V-Model, which is an
extension of the waterfall model. This implies that there is a testing phase that is directly
related to each and every phase of the development cycle. This is a very structured
approach, and the start of the subsequent phase only occurs after the conclusion of the
preceding phase. (tutorialspoint, 2023)
Page | 2
Figure 2 V-Model
Source- www.medium.com
Page | 3
− Module Design ← →Unit Testing
A lower-level design that helps ensure that each module's basic component
functions properly in order to get rid of any flaws in the core functioning on which
the higher-level component will be built. Each possible scenario that each module
can encounter will be validated through unit testing, which will also make sure
that the system is capable of handling each one effectively at the code level.
(Nakkasem, 2020)
− Coding
A code that has been put into practice. The design of the aforementioned modules
and components will serve as the basis for the coding. (Nakkasem, 2020)
Following completion of the code. As a result, a V-Model will complete a cycle
of verification (down), coding (joint), and validation (up), with the planning of
validation taking place concurrently with the verification phase. The testing will
be performed in reverse order, starting with unit testing, moving through
integration testing, system testing, and acceptance testing. (Nakkasem, 2020)
Agile Model
The Agile process model is a software development approach that emphasizes iterative
development, where tasks are divided into smaller iterations without extensive long-term
planning. At the outset, the project scope and requirements are established, and plans are
made regarding the number, duration, and scope of each iteration. These iterations typically
last between one to four weeks, representing short time frames.
By breaking the project into smaller parts, Agile reduces project risk and shortens the
overall delivery time. Each iteration follows a complete software development life cycle,
encompassing planning, requirements analysis, design, coding, and testing. The team goes
through these stages before showcasing a functional product to the client. This iterative
approach fosters flexibility, continual improvement, and the early delivery of functional
software. It enables stakeholders to provide feedback and make necessary adjustments
throughout the development process. (javatpoint, 2023)
Page | 4
Figure 3 Agile Model
Source- www.javatpoint.com
− Requirements gathering
The requirements gathering phase involves defining the project requirements,
assessing business opportunities, and planning the necessary time and effort. It
also includes evaluating technical and economic feasibility. (javatpoint, 2023)
− Construction/ iteration
The construction/iteration phase involves the initiation of work once the
requirements are defined. Designers and developers work towards delivering a
functional product, focusing on simplicity and minimal functionality. The product
undergoes continuous improvement during this phase. (javatpoint, 2023)
− Testing
Page | 5
The testing phase involves the Quality Assurance team examining the product's
performance and identifying any bugs or issues. (javatpoint, 2023)
− Deployment
In the deployment phase, the team releases the product for use in the intended
work environment. (javatpoint, 2023)
− Feedback
The final step is gathering feedback after the product is released. The team actively
seeks feedback from users and incorporates it into their work processes.
(javatpoint, 2023)
Spiral Model
The Spiral Model is a systematic and iterative approach to software development, designed
to manage risks and uncertainties. It visualizes the development process as a spiral, with
each iteration representing a complete cycle of software development, including
requirements gathering, analysis, design, implementation, testing, and maintenance.
Risk management is a key focus of the Spiral Model, and it is carried out through each
iteration. The model comprises several phases, starting with planning, where the project
scope is determined and a plan is created for the next iteration. Risk analysis follows, during
which potential risks associated with the project are identified and assessed.
The engineering phase involves the actual development of the software based on the
requirements gathered earlier. Subsequently, the evaluation phase assesses the software's
compliance with customer requirements and its overall quality. This evaluation serves as
the basis for planning the subsequent iteration, which begins with a new planning phase
incorporating lessons learned from the evaluation.
The Spiral Model is particularly suitable for complex and large-scale software projects,
offering flexibility and adaptability. It is well-suited to projects with uncertainties and
Page | 6
significant risks, providing a structured framework to manage and mitigate them
effectively. (PAL, 2023)
Page | 7
During the third quadrant, the development of the software proceeds based on the
identified features. Rigorous testing and verification are carried out to ensure the
quality of the developed features. By the end of this quadrant, the next version of
the software is available. (PAL, 2023)
The Spiral Model emphasizes the iterative nature of software development, where each
quadrant represents a cycle of activities. It facilitates objective determination, risk
resolution, product development, and customer evaluation to ensure a well-structured and
adaptable software development process.
Waterfall Model
In the Waterfall Model, risk management plays a crucial role in ensuring project success.
Risks are identified during project initiation through thorough analysis of requirements and
stakeholder engagement. These risks are then assessed to prioritize and focus on the most
critical ones. Risk mitigation strategies are developed to proactively address the identified
risks, involving planning, resource allocation, and scheduling. Throughout the
development process, risk monitoring and control are maintained to track progress and
address new risks. Effective documentation and communication are essential for
transparency and informed decision-making. By actively managing risks, the Waterfall
Model aims to minimize negative impacts on project objectives. (Gleason, 2017)
V Model
In the V-model of software development, risk management plays a vital role in identifying,
analyzing, and mitigating risks throughout the development process. Risks are identified
by analyzing project requirements, dependencies, and constraints. They are then analyzed
to determine their likelihood of occurrence, impact, and urgency. Risk mitigation strategies
are developed, including preventive measures, contingency plans, and risk response
actions. Risk management is integrated with the corresponding testing phases in the V-
Page | 8
model, and risk monitoring and control are maintained throughout. Documentation and
communication are crucial for transparency and stakeholder engagement. Effective risk
management in the V-model aims to minimize risks and deliver high-quality software.
(Kumar, 2015)
Agile Model
In Agile software development, risk management is a critical aspect of ensuring project
success. While Agile methodologies focus on flexibility and adaptability, they also
recognize the importance of addressing risks proactively. Risk management in Agile
involves identifying and analyzing risks, developing strategies to mitigate them, and
continuously monitoring and controlling risks throughout the project. Agile teams prioritize
regular communication and collaboration to identify and address risks early on. The
iterative nature of Agile allows for frequent reassessment of risks and adjustment of
strategies. The Agile Risk Management approach emphasizes transparency, active
stakeholder involvement, and an incremental delivery of value. By addressing risks in an
Agile manner, teams can effectively manage uncertainties and improve project outcomes.
(Highsmith, 2019)
Spiral Model
In the Spiral Model, risk management plays a crucial role throughout the iterative software
development process. Risks are identified, analyzed, mitigated, and monitored to minimize
their impact on the project's success. During risk identification, potential risks are
thoroughly analyzed, including technical, schedule, budget-related, and changing
requirements risks. Risk analysis helps prioritize risks based on their probability, impact,
and urgency. Risk mitigation strategies are then developed to address identified risks,
involving actions such as resource allocation, schedule adjustments, and contingency
planning. Risk monitoring ensures continuous control and adjustment of risk mitigation
strategies throughout the iterative cycles. The aim is to minimize risks and increase the
likelihood of project success. (Leffingwell, 1999)
Based on the case of "ChangeU" salon needing a system to track their bookings and
improve customer service, and considering that it is not an incredibly challenging project
with a team that has some early experience in similar projects, the most suitable SDLC
model for this case would be the Agile model.
Page | 9
The Agile model is well-suited for projects with evolving requirements, a need for frequent
customer involvement, and a focus on delivering a high-quality product. Here are the
reasons for selecting the Agile model for this case:
Flexibility and Adaptability: The Agile model allows for flexibility and adaptability to
changing requirements. In the salon industry, customer demands and preferences may
change over time. The Agile model's iterative and incremental approach allows the
development team to continuously gather feedback, incorporate changes, and deliver a
system that meets the evolving needs of the salon.
Customer Involvement: The Agile model emphasizes frequent customer collaboration
throughout the development process. This aligns with the client's requirement of providing
better customer service through the system. By involving the client in regular iterations,
the development team can gather feedback, address customer concerns, and ensure that the
system meets their expectations.
Early Delivery of Value: The Agile model focuses on delivering working software in short
iterations called sprints. This allows the "ChangeU" salon to start realizing the benefits of
the system early on. By prioritizing the most important features first, the salon can begin
utilizing the booking system and improving customer service without having to wait for
the entire system to be completed.
Quality Assurance: The Agile model emphasizes continuous testing and quality assurance
throughout the development process. This aligns with the client's requirement of a high-
quality product. By conducting frequent testing and incorporating feedback from customers
and stakeholders, the development team can ensure that the system meets the desired
quality standards.
While the Agile model has its advantages, it's important to consider potential limitations,
such as the need for active customer involvement, the challenge of managing changing
requirements, and the possibility of scope creep if requirements are not managed
effectively. However, given the project's characteristics of a non-complex nature and a
team with some prior experience, the Agile model provides the flexibility, customer
involvement, and focus on quality that aligns well with the objectives of "ChangeU" salon.
for the "ChangeU" salon's booking system development case, the Agile model is the most
suitable SDLC model due to its flexibility, customer involvement, focus on early value
delivery, and emphasis on quality assurance.
Page | 10
1.4 The System Most Suitable for The Waterfall Model
Based on the provided two cases, Case 1, involving the development of a wildlife safari
system by the wildlife ministry of Sri Lanka, is most suitable to be developed using the
Waterfall model.
The merits of applying the Waterfall model to the wildlife safari system can be assessed as
follows,
Limited experience in developing this system: Since the IT department of the wildlife
ministry has little experience in developing this kind of system, the Waterfall model's
sequential and structured approach provides a well-defined roadmap for the project. It
allows for comprehensive planning, proper requirements gathering, and detailed
documentation, ensuring that potential risks and challenges are addressed early on.
Two-year timeline: With a two-year timeline to complete the project, the Waterfall model
aligns well with the need for predictability and a clear understanding of project milestones.
It enables effective project planning, scheduling, and resource allocation, ensuring that the
wildlife safari system is developed and delivered within the specified timeframe.
For the wildlife ministry's wildlife safari system development case, the Waterfall model is
the most suitable SDLC model. The Waterfall model's strengths in terms of clear
requirements, structured approach, predictability, and documentation align well with the
objectives and constraints of the project. It provides a solid foundation for the IT
Page | 11
department with limited experience to develop a high-quality wildlife safari system within
the given timeline.
Activity 02
Any proposed project or plan's early design phase includes a feasibility report. It is done to
assess the viability of a proposed project or software that the company already uses. It can
help in determining and evaluating the possibilities of success, the resources required for
the project, and any opportunities and risks existing in the surrounding environment.
(Sharma, 2023)
The purpose of the feasibility report is to identify the reasons for creating software that is
user-friendly, flexible, and compliant with accepted standards. (Thakur, 2023). Various
other Purposes of feasibility study are listed below.
Technical Feasibility
Technical feasibility in a project involves evaluating and analyzing the current resources,
including hardware, software, and necessary technologies, to determine their suitability for
project development. This assessment provides a report on whether the correct resources
and technologies required for the project are available. Additionally, the feasibility study
examines the technical skills and capabilities of the team involved, assesses if the existing
technology can be utilized or if new technology is needed, and considers factors such as
the ease of maintenance and upgradation for the chosen technology. (Jena, 2023)
Operational Feasibility
Operational feasibility entails evaluating the product's capability to fulfill the required
service standards and assessing its ease of operation and maintenance post-deployment. It
also encompasses examining the usability of the product and determining whether the
Page | 12
software development team's proposed solution is acceptable. Essentially, operational
feasibility involves analyzing the product's ability to meet service requirements, its user-
friendliness, and the viability of the suggested solution by the software development team.
(Jena, 2023)
Economic Feasibility
Economic feasibility involves conducting a detailed analysis of the costs and benefits
associated with a project. This feasibility study entails assessing the expenses involved in
project development, including hardware and software resources, design and development
costs, operational costs, and other related expenses. Furthermore, the study evaluates
whether the project will yield financial benefits for the organization, determining its
potential profitability. (Jena, 2023)
Legal Feasibility
Legal feasibility study involves examining a project from a legal standpoint. This includes
analyzing any potential legal barriers to implementing the project, complying with data
protection regulations or social media laws, obtaining necessary certificates, licenses, and
ensuring compliance with copyright laws. In essence, the purpose of a legal feasibility
study is to determine whether the proposed project aligns with legal and ethical
requirements. It assesses the project's conformity with legal regulations and ensures its
adherence to ethical standards. (Jena, 2023)
Schedule Feasibility
Schedule feasibility study primarily focuses on analyzing timelines and deadlines for a
proposed project. It involves evaluating the estimated time required by teams to complete
the final project, as timely completion is crucial for the project's success and impact on the
organization. Failure to meet project deadlines can significantly hinder the project's
purpose and objectives. Thus, schedule feasibility study aims to ensure that the project can
be completed within the allocated timeframe, minimizing the risk of delays and maximizing
the likelihood of achieving project goals on time. (Jena, 2023)
Page | 13
Cloud-Based Solution:
A cloud-based solution refers to a software system hosted and accessed over the internet.
Here are some key considerations,
Pros:
− Data Security and Privacy: Storing data in the cloud raises concerns about data
security and privacy. ABC (Pvt) Ltd would need to ensure that the chosen cloud
provider has robust security measures and complies with relevant data protection
regulations.
On-Premises Solution:
An on-premises solution refers to a software system hosted and managed internally by ABC
(Pvt) Ltd. Here are some key considerations,
Pros:
Page | 14
− Data Control and Security: With an on-premises solution, ABC (Pvt) Ltd has full
control over its data and can implement security measures tailored to its specific
requirements. It allows for stricter control over access and data handling.
− Maintenance and Updates: ABC (Pvt) Ltd is responsible for managing system
updates, security patches, and hardware maintenance. This requires dedicated IT
staff and ongoing efforts to ensure the system remains up to date and secure.
Selected Solution for ABC (Pvt) Ltd
Based on the analysis of the two technical solutions, the most suitable option for ABC (Pvt)
Ltd's Accounting and Financial Management Software system is the Cloud-Based Solution.
Following are the Justifications for it,
− Accessibility and Scalability: ABC (Pvt) Ltd can benefit from the accessibility and
scalability offered by a cloud-based solution. The ability to access the system from
anywhere and accommodate growth aligns with the organization's need for remote
work flexibility and scalability.
Page | 15
disruptions. Overall, a cloud-based solution offers flexibility, scalability and cost-
effectiveness.
The purpose of developing a feasibility report for the Accounting and Financial
Management Software system for ABC (Pvt) Ltd is to assess the feasibility and viability of
the chosen system. The report aims to provide stakeholders with a comprehensive analysis
of the proposed system, including its technical feasibility, economic viability, operational
feasibility, legal compliance, and scheduling feasibility.
− Business Requirements: This section identifies and analyzes the specific business
requirements of ABC (Pvt) Ltd in terms of accounting and financial management.
It includes an assessment of the organization's current processes, pain points, and
desired improvements.
− System Requirements: Here, the system requirements are defined and detailed
based on the identified business requirements. This section outlines the functional
and non-functional capabilities expected from the Accounting and Financial
Management Software system, such as general ledger management, accounts
payable, accounts receivable, financial reporting, and budgeting.
− Feasibility Analysis: The feasibility analysis section evaluates the chosen system
based on various feasibility criteria. The key feasibility criteria to consider are:
a) Technical Feasibility: This criterion assesses whether the proposed
system can be developed using the available technology,
infrastructure, and resources. It considers factors such as
Page | 16
compatibility, scalability, performance, and integration with existing
systems.
b) Economic Feasibility: This criterion evaluates the financial
viability of the system. It analyzes the costs associated with
development, implementation, training, maintenance, and ongoing
operational expenses. It also assesses the potential benefits and
return on investment (ROI) for ABC (Pvt) Ltd.
c) Operational Feasibility: This criterion assesses the system's impact
on existing operations, resources, and workflow within ABC (Pvt)
Ltd. It considers factors such as user adoption, training needs,
change management, and organizational readiness.
d) Legal and Regulatory Feasibility: This criterion examines whether
the system complies with relevant legal and regulatory requirements,
such as financial reporting standards, tax regulations, and data
protection laws.
e) Scheduling Feasibility: This criterion evaluates the project timeline
and whether the system can be implemented within the desired
timeframe. It considers dependencies, resource availability, and
potential risks that may impact the project schedule in ABC (Pvt)
Ltd.
The feasibility report plays a critical role in helping stakeholders make informed decisions
about the viability and suitability of the chosen Accounting and Financial Management
Software system for ABC (Pvt) Ltd. It provides a thorough assessment of the system's
technical feasibility, economic viability, legal compliance, operational implications, and
the estimated project schedule. The report enables stakeholders to evaluate potential risks,
benefits, and challenges and make an informed decision about proceeding with the
development and implementation of the system.
Page | 17
2.4 Impact of Different Feasibility Criteria
Overall, a positive assessment of technical feasibility ensures that the proposed system for
ABC (Pvt) Ltd. can meet the organization's technical requirements and align with its IT
strategy.
Page | 18
Operational Feasibility: Operational feasibility assesses the impact of the system on
existing operations, resources, and workflow within the ABC (Pvt) Ltd. It evaluates factors
such as user adoption, training needs, change management, and organizational readiness.
The impact of operational feasibility includes,
Legal and Regulatory Feasibility: Legal and regulatory feasibility assesses whether the
proposed system complies with relevant laws, regulations, financial reporting standards,
tax requirements, and data protection guidelines. The impact of legal and regulatory
feasibility includes,
A positive legal and regulatory feasibility assessment ensures that the ABC (Pvt) Ltd can
confidently proceed with the system implementation while maintaining compliance with
relevant financial regulations.
Page | 19
Scheduling Feasibility: Scheduling feasibility evaluates whether the proposed system can
be implemented within the desired timeframe. The impact of scheduling feasibility
includes,
A positive assessment of scheduling feasibility ensures that ABC (Pvt) Ltd can achieve its
implementation goals within the planned timeline, minimizing any negative impacts on
operational efficiency and maximizing the system's value to the organization.
Activity 03
− Identify the Business Need: Engage with key stakeholders at ABC (Pvt) Ltd to
understand the specific business needs and challenges related to accounting and
financial management. Identify pain points, inefficiencies, and areas for
improvement in the existing processes.
− Conduct Interviews and Meetings: Conduct interviews and meetings with finance
managers, accountants, and other relevant stakeholders to gather insights into their
requirements, expectations, and desired outcomes for the software system. Ask
Page | 20
questions to understand their current workflows, pain points, and specific needs for
managing financial data and processes.
By following these steps and leveraging appropriate investigation techniques, ABC (Pvt)
Ltd can undertake a comprehensive software investigation to meet the business need of
designing an Accounting and Financial Management Software system. This investigation
will ensure that the software system aligns with the organization's requirements, improves
financial processes, and enables effective management of accounting and financial data.
Page | 21
3.2 Appropriate Software Analysis Tools/Techniques to Carry Out a Software
Investigation
To carry out a software investigation and create supporting documentation for designing
an Accounting and Financial Management Software system for ABC (Pvt) Ltd, the
following software analysis tools and techniques can be use,
− Use Case Diagrams: Use case diagrams help identify the actors (users) and their
interactions with the software system. Create use cases to capture the functionalities
and system behavior relevant to accounting and financial management processes in
ABC (Pvt) Ltd.
− Data Flow Diagrams (DFD): Develop DFDs to visualize the flow of data within
the accounting and financial management processes. Identify the sources,
processes, and destinations of data in ABC (Pvt) Ltd's financial workflows to ensure
proper handling and accuracy.
− User Stories: Utilize user stories to capture specific requirements from the
perspective of end-users. User stories focus on the needs, goals, and desired
outcomes of users at ABC (Pvt) Ltd. They help in adopting an agile and user-
centered approach to software development.
− Risk Analysis: Perform risk analysis to identify and assess potential risks
associated with the software system. Prioritize risks based on their impact and
likelihood, and develop mitigation strategies. This ensures that risks are effectively
managed during the design and development process.
By utilizing these software analysis tools and techniques, ABC (Pvt) Ltd will effectively
carry out the software investigation and create supporting documentation for designing the
Page | 22
Accounting and Financial Management Software system. These tools and techniques
facilitate requirements gathering, system modeling, risk management, and clear
communication among stakeholders, ensuring the successful design and development of
the software system.
Tracing software requirements throughout the software lifecycle for designing the
Accounting and Financial Management Software system for ABC (Pvt) Ltd is crucial to
ensure that the system meets the organization's specific needs. Below analyzes show how
requirements can be effectively traced throughout the software lifecycle in this context,
− System Design: During the design phase, link the design artifacts, such as
architectural diagrams, database schemas, and user interface wireframes, to the
corresponding requirements. This ensures that the design elements are aligned with
the identified requirements and helps in assessing the completeness of the system
design.
Page | 23
− Implementation and Coding: Trace requirements during the implementation
phase by mapping each requirement to the specific code modules or components
responsible for fulfilling them. This allows for easy identification and tracking of
how each requirement is being addressed in the software system's codebase.
− Testing: Map test cases to the corresponding requirements in order to validate that
each requirement has been adequately tested. By linking test cases to specific
requirements, it becomes easier to ensure comprehensive test coverage and to track
the verification of each requirement during the testing phase.
There are several approaches to improving software quality in the development of any
software system, including the Accounting and Financial Management Software system
for ABC (Pvt) Ltd. Below are 2 approaches use to improve software quality,
Page | 24
Implementing Quality Assurance Processes: Quality assurance (QA) processes aim to
identify and address potential issues throughout the software development lifecycle. By
implementing effective QA practices, software quality can be significantly improved.
Some key aspects of this approach include:
− Code Reviews: Conducting regular code reviews helps identify code issues,
maintain code standards, and improve code quality. Peer reviews or automated tools
can be used to ensure code correctness, readability, and maintainability.
Following Software Design and Architecture Best Practices: Design and architecture
play a crucial role in software quality. By following established best practices, software
quality can be enhanced. Consider the following aspects:
− Clear and Consistent Design Patterns: Apply design patterns and principles, such
as SOLID principles, to ensure a clear and consistent software design. This
promotes code maintainability, flexibility, and extensibility.
− Usability and User Experience: Design the user interface and workflows with a
focus on usability and a positive user experience. Conduct user testing and feedback
sessions to identify and address usability issues early in the development process.
By implementing these approaches, ABC (Pvt) Ltd can significantly improve software
quality in the development of the Accounting and Financial Management Software system.
These approaches help detect and fix issues early, establish effective development
practices, and ensure a robust and high-quality software solution.
Page | 25
3.5 Evaluation of Systems Investigation Process for Improved Software Quality
Page | 26
feedback. This iterative feedback loop ensures that the software system aligns with
their expectations and needs. Stakeholder validation plays a vital role in improving
software quality, as it helps identify any gaps or misunderstandings early on and
allows for necessary adjustments to be made.
− Alignment with Business Goals: The systems investigation process ensures that
the Accounting and Financial Management Software system aligns with ABC (Pvt)
Ltd's overall business goals and objectives. By establishing this alignment, the
investigation process contributes to software quality by ensuring that the software
system serves the organization's strategic objectives and provides tangible value.
Overall, the systems investigation process plays a crucial role in improving software quality
in ABC (Pvt) Ltd's Accounting and Financial Management Software system. It helps in
accurately defining requirements, involving stakeholders, aligning with business goals, and
providing a solid foundation for subsequent design and development phases. By following
an effective systems investigation process, the chances of delivering a high-quality
software solution that meets the organization's needs are significantly enhanced.
To further improve system quality in the future, ABC (Pvt) Ltd has consider implementing
the following approaches,
Page | 27
− Continuous Testing and Quality Assurance: Implementing continuous testing
and quality assurance practices ensures that software defects and issues are
identified and addressed early in the development process. By leveraging automated
testing frameworks and tools, ABC (Pvt) Ltd can regularly execute test cases,
perform code analysis, and monitor system performance. Continuous testing helps
maintain a high level of software quality, prevents regressions, and enables faster
delivery of reliable software updates.
− Code Reviews and Peer Collaboration: Promoting a culture of code reviews and
peer collaboration among developers can lead to higher system quality. Regular
code reviews help identify code issues, improve code maintainability, and foster
knowledge sharing. Peer collaboration allows for collective problem-solving,
ensuring that the software system benefits from diverse perspectives and expertise.
This approach improves code quality, reduces the likelihood of defects, and
enhances the overall system quality.
By implementing these approaches, ABC (Pvt) Ltd will further improve system quality in
the future. Embracing Agile development, continuous testing, and quality assurance
practices, along with DevOps principles and user-centric design, will lead to a software
Page | 28
system that is more reliable, scalable, and aligned with user needs. Additionally, fostering
a culture of code reviews and peer collaboration ensures a higher level of code quality and
system integrity.
Activity 04
− Purpose: Captures the system's functionality from the user's perspective, focusing
on the interactions between actors and use cases.
− Characteristics: Shows the actors, use cases, and their relationships, providing a
high-level overview of the system's behavior.
Activity Diagram
An activity diagram is a graphical representation that depicts the flow of activities from
one operation to another in a system. It serves as a flowchart to illustrate the sequential,
branched, or concurrent flow of control between different activities. Activity diagrams are
versatile and can handle various types of flow control using different elements. Their
primary aim is to capture the dynamic behavior of the system, showing how activities
interact and message flows between them. Activities represent specific operations within
the system. While activity diagrams are effective in visually representing the dynamic
Page | 29
nature of a system, they also support the construction of executable systems through
forward and reverse engineering techniques. (tutorialspoint, 2023)
− Purpose: Illustrates the flow of activities and actions within a specific use case or
process, showcasing sequential, branched, or concurrent flow of control.
A state machine diagram, also known as an automaton, is a valuable tool for modeling the
behavior of a system by capturing its previous states and transitions. Unlike other diagrams,
a state machine diagram considers not only the inputs but also the system's history to
determine its current state. It visually represents the behavior of the system using finite
state transitions, showcasing the transitions between different states of objects.
Additionally, the state machine diagram can illustrate the utilization of protocols within the
system, showcasing how objects interact and communicate with each other. It is a useful
component of the Unified Modeling Language (UML) for visualizing and understanding
the dynamic behavior of a system. (tutorialandexample, 2020)
− Purpose: Models the behavior of an object or system by capturing its states, events,
and transitions.
− Characteristics: Depicts how the system or object responds to events and changes
states based on the defined transitions.
Timing Diagram
A timing diagram depicts the behavior of various objects within a specified time frame. It
presents a graphical representation of objects transitioning between states and interacting
with each other over time. Timing diagrams are useful for illustrating the behavior of
hardware-driven or embedded software components, as well as specifying time-driven
business processes. (sparxsystems, 2023)
Page | 30
− Purpose: Defines the behavior of objects within a time scale, showcasing the
changes in state and interactions over time.
− Characteristics: Depicts the timing constraints, lifelines, and the duration of events
or activities.
Sequence Diagrams
Communication Diagrams
Page | 31
demonstrate a control flow that serves a comprehensive objective. These diagrams offer a
visual representation of how multiple interactions work together to achieve a specific
purpose or outcome. They provide an overview of the interactions and control flow within
a system, showcasing the coordination between different types of interactions to
accomplish a larger goal. (sparxsystems, 2023)
− Purpose: Demonstrates the cooperation and control flow between different types of
interaction diagrams to serve an encompassing purpose.
When discussing the suitability of software behavioral design techniques for the proposed
accounting and financial management software system to ABC (Pvt) Ltd, use case
diagrams and activity diagrams can use as software behavioral design techniques.
− Generate Financial Reports: The Generate Financial Reports use case enables
Accountants and Finance Managers to generate various financial reports, such as
balance sheets, income statements, and cash flow statements. This functionality
provides crucial insights into the organization's financial health and performance.
Page | 32
perform calculations, ratios, and comparisons to evaluate the organization's
financial performance and make informed decisions.
− Process Payments: The Process Payments use case enables the system to handle
payment transactions, such as receiving payments from customers, recording
payment details, and updating account balances. It ensures accurate and efficient
payment processing within the organization.
These examples illustrate the expected behavior and functionalities of the Accounting and
Financial Management Software system at ABC (Pvt) Ltd. By representing these use cases
in a use case diagram, stakeholders can gain a clear understanding of the system's
functionality and the interactions between actors (such as Accountants, Finance Managers,
and External Auditors) and the system. This approach ensures effective communication of
system behavior and helps in documenting comprehensive system requirements for
successful software development.
Activity Diagram
An activity diagram is an ideal tool to depict the flow of activities and operations within
the Accounting and Financial Management Software system at ABC (Pvt) Ltd. Let's
consider a few examples of how activity diagrams can be used for this system:
− Generate Financial Report: The activity diagram for generating a financial report
can illustrate the sequence of activities involved, such as retrieving financial data,
performing calculations, formatting the report, and generating the final output. The
diagram can show the flow of control between these activities, highlighting decision
points and conditions that determine the execution path.
Page | 33
− Manage Accounts: The activity diagram for managing accounts can showcase
activities like creating a new account, updating account information, and deleting
accounts. It can visualize the sequence of operations, data validation steps, and
interactions with external systems, if applicable. The diagram can also indicate any
decision points, such as verifying account ownership or performing authorization
checks.
− Perform Financial Analysis: The activity diagram for financial analysis can
outline the steps involved in performing calculations, generating insights, and
presenting the results. It can illustrate the flow of activities related to data gathering,
applying financial models or algorithms, generating reports, and visualizing the
analysis outcomes.
In each of these examples, the activity diagram effectively captures the dynamic behavior
and flow of activities within the Accounting and Financial Management Software system.
It provides a clear visualization of the system's operation, including the sequence of
activities, decision points, and control flow. This helps stakeholders and developers to
understand the system's behavior, identify potential bottlenecks or inefficiencies, and
ensure the smooth execution of critical operations. Additionally, activity diagrams can be
used as a basis for implementing and testing the system, as they support the construction
of executable systems through forward and reverse engineering techniques.
Finite State Machine (FSM) and Extended Finite State Machine (EFSM) are two modeling
techniques employed to depict system behavior, although they possess distinct
characteristics. Let's discuss the disparities between FSM and EFSM and provide an
example for each,
A finite state machine (FSM) is a computational model that is applicable in both hardware
and software implementations. It is utilized to simulate sequential logic and certain
computer programs. FSMs are capable of generating regular languages and find
applications in various domains, such as mathematics, artificial intelligence, gaming, and
linguistics. (Gupta, 2023)
Page | 34
Examples
Used in various domains, including mathematics (automata theory), artificial intelligence
(search algorithms), gaming (AI behavior modeling), and linguistics (natural language
processing).
An Extended Finite State Machine (EFSM) is an enhanced version of the Finite State
Machine (FSM) model that includes additional elements to improve its ability to represent
and model complex behaviors. EFSMs introduce the concepts of actions, guards, and
parameters, which enable the modeling of dynamic and intricate behaviors. Actions refer
to specific operations or tasks that take place during state transitions, guards specify
conditions that must be met for a transition to occur, and parameters provide additional
information or data associated with state transitions. These additions in EFSMs enhance
their expressiveness and make them more suitable for modeling systems with sophisticated
behavior. (Khaled El-Fakih, 2016)
Examples
Applied in areas where more advanced behavior modeling is required, such as modeling
complex business processes, representing advanced control systems, or simulating dynamic
decision-making processes.
Page | 35
FSMs are suitable for modeling EFSMs offer greater expressiveness
systems with simple and well- and are better suited for modeling
defined behavior. They are often complex systems with dynamic
Expressiveness used to represent systems with a behavior. The inclusion of actions,
finite number of states and guards, and parameters allows for the
straightforward transitions between representation of more intricate and
them. conditional state transitions.
FSMs are simpler and suitable for systems with straightforward behavior, while EFSMs
offer increased flexibility and expressiveness for modeling complex systems with dynamic
and conditional behavior. The choice between FSM and EFSM depends on the complexity
and requirements of the system being modeled.
Data-driven software refers to software applications that heavily rely on data to drive their
functionality and decision-making processes. These applications collect, store, process, and
analyze large volumes of data to generate valuable insights, make informed decisions, and
provide personalized experiences to users. By leveraging various data sources such as
databases, APIs, and user interactions, data-driven software can deliver tailored
recommendations, optimize processes, automate tasks, and improve overall performance.
(Trąd, 2023)
Page | 36
− Improved Decision Making: Data-driven software enables organizations to make
informed decisions based on insights derived from data analysis. It helps identify
trends, patterns, and correlations that may not be apparent through traditional
methods.
− Scalability: Data-driven software can handle large volumes of data and adapt to
growing datasets, ensuring scalability as the organization's data needs expand.
Page | 37
References
Gleason, S., 2017. Risk management in software development projects. In: The Palgrave
Handbook of Software Project Management. s.l.:Palgrave Macmillan, pp. (pp. 183-209.
Gupta, K. M. a. D., 2023. brilliant. [Online]
Available at: https://brilliant.org/wiki/finite-state-machines/
[Accessed 08 07 2023].
Highsmith, J., 2019. Agile project management: Creating innovative products. 2nd ed ed.
s.l.:Pearson Education.
javatpoint, 2023. javatpoint. [Online]
Available at: https://www.javatpoint.com/software-engineering-agile-model
[Accessed 05 07 2023].
Jena, S., 2023. geeksforgeeks. [Online]
Available at: https://www.geeksforgeeks.org/types-of-feasibility-study-in-software-
project-development/
[Accessed 06 07 2023].
Khaled El-Fakih, A. S. ,. K. J. C. M., 2016. sciencedirect. [Online]
Available at: https://www.sciencedirect.com/science/article/abs/pii/S0164121216301923
[Accessed 08 07 2023].
Kumar, A. J. M. P. &. M. M. L., 2015. A Systematic Review of Risk Management in
Software Development Process Models. International Journal of Computer Applications,
Volume 118(9), pp. 1-7.
Leffingwell, D. &. W. D., 1999. Managing software requirements: A unified approach. 1st
ed ed. s.l.:Addison-Wesley Professional.
Nakkasem, T., 2020. medium. [Online]
Available at: https://medium.com/software-engineering-kmitl/v-model-3a71622b3d82
[Accessed 05 07 2023].
PAL, S. K., 2023. geeksforgeeks. [Online]
Available at: https://www.geeksforgeeks.org/software-engineering-spiral-model/
[Accessed 05 07 2023].
paradigm, 2023. paradigm. [Online]
Available at: https://www.visual-paradigm.com/guide/uml-unified-modeling-
Page | 41
language/what-is-use-case-diagram/
[Accessed 07 07 2023].
Sharma, I., 2023. tatvasoft. [Online]
Available at: https://www.tatvasoft.com/outsourcing/2022/08/define-feasibility-study-in-
software-engineering.html
[Accessed 06 07 2023].
sparxsystems, 2023. sparxsystems. [Online]
Available at:
https://sparxsystems.com/enterprise_architect_user_guide/16.1/modeling_languages/timi
ngdiagram.html
[Accessed 07 07 2023].
Thakur, D., 2023. ecomputernotes. [Online]
Available at: https://ecomputernotes.com/software-engineering/feasibilitystudy
[Accessed 06 07 2023].
Trąd, O., 2023. devtalents. [Online]
Available at: https://devtalents.com/data-driven-software-development/
[Accessed 08 07 2023].
tutorialandexample, 2020. tutorialandexample. [Online]
Available at: https://www.tutorialandexample.com/uml-diagrams
[Accessed 07 07 2023].
tutorialspoint, 2023. tutorialspoint. [Online]
Available at: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
[Accessed 18 06 2023].
tutorialspoint, 2023. tutorialspoint. [Online]
Available at: https://www.tutorialspoint.com/sdlc/sdlc_v_model.htm
[Accessed 18 06 2023].
tutorialspoint, 2023. tutorialspoint. [Online]
Available at: https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
[Accessed 05 07 2023].
tutorialspoint, 2023. tutorialspoint. [Online]
Available at: https://www.tutorialspoint.com/uml/uml_activity_diagram.htm
[Accessed 07 07 2023].
Page | 42