0% found this document useful (0 votes)
40 views58 pages

SDLC

Assignment

Uploaded by

manula mahawewa
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)
40 views58 pages

SDLC

Assignment

Uploaded by

manula mahawewa
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/ 58

Higher Nationals

Internal verification of assessment decisions – BTEC (RQF)


INTERNAL VERIFICATION – ASSESSMENT DECISIONS

Programme title BITEC Higher National Diploma in Computing

Assessor Internal Verifier


Unit 7 – Software Development Lifecycles
Unit(s)

Assignment title Software Development Lifecycles Assignment

Student’s name
List which assessment criteria Pass Merit Distinction
the Assessor has awarded.

INTERNAL VERIFIER CHECKLIST

Do the assessment criteria awarded match


those shown in the assignment brief? Y/N

Is the Pass/Merit/Distinction grade awarded


justified by the assessor’s comments on the Y/N
student work?
Has the work been assessed
Y/N
accurately?
Is the feedback to the student:
Give details:
• Constructive? Y/N
• Linked to relevant assessment criteria? Y/N
• Identifying opportunities for Y/N
improved performance?
• Agreeing actions? Y/N
Does the assessment decision need
Y/N
amending?

Assessor signature Date

Internal Verifier signature Date


Programme Leader signature (if required)
Date

Confirm action completed


Remedial action taken
Give details:

Assessor signature Date

Internal Verifier
Date
signature
Programme Leader
Date
signature (if required)
Assignment Feedback Form
Student Name/ID

Unit Title Unit 7 – Software Development Lifecycles

Assignment Number Assessor


Date Received
Submission Date
1st submission
Date Received 2nd
Re-submission Date
submission
Assessor Feedback:
LO1 Describe different software development lifecycles
Pass, Merit & Distinction P1 P2 M1 D1
Descripts
LO2 Explain the importance of a feasibility study
Pass, Merit & Distinction P3 P4 M3 D2
Descripts

LO3 Undertake a software development lifecycle

Pass, Merit & Distinction P5 P6 M3 M4 D3


Descripts
LO4 Discuss the suitability of software behavioural design techniques.

Pass, Merit & Distinction P7 M5 M6 D4


Descripts

Grade: Assessor Signature: Date:

Resubmission Feedback:

Grade: Assessor Signature: Date:

Internal Verifier’s Comments:

Signature & Date:

* 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

Formative Feedback: Assessor to Student

Action Plan

Summative feedback

Feedback: Student to Assessor

Assessor signature Date

Student signature Date


Pearson Higher Nationals in
Computing
Unit 7: Software Development Lifecycles
Assignment

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.

Word Processing Rules

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.

1. I know that plagiarism is a punishable offence because it constitutes theft.


2. I understand the plagiarism and copying policy of Pearson UK.
3. I know what the consequences will be if I plagiarise or copy another’s work in any of the
assignments for this program.
4. I declare therefore that all work presented by me for every aspect of my program, will be my own,
and where I have made use of another’s work, I will attribute the source in the correct way.
5. I acknowledge that the attachment of this document signed or not, constitutes a binding
agreement between myself and Pearson UK.
6. I understand that my assignment will not be considered as submitted if this document is not
attached to the assignment.

Student’s Signature: Date: 11/07/2023


(Provide E-mail ID) (Provide Submission Date)
Higher National Diploma in Business
Assignment Brief
Student Name /ID Number

Unit Number and Title Unit 7: Software Development Lifecycles

Academic Year 2022/23

Assignment Title Software Development Lifecycles Assignment

Issue Date

Submission Date 11/07/2023

IV Name & Date

Submission format

This assignment consists of section A and section B.

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.

The recommended word count is 4,500–5,000 words excluding annexures..


Minimum word count – 4,500
Maximum word count – 5,000
Unit Learning Outcomes:

By the end of this unit students will be able to:

LO1 Describe different software development lifecycles


LO2 Explain the importance of a feasibility study
LO3 Undertake a software development lifecycle
LO4 Discuss the suitability of software behavioral design techniques.
Assignment Brief and Guidance:

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

Grading Criteria Achieved Feedback


LO1 Describe different software development lifecycles

P1 Describe two iterative and two sequential software 1-8


lifecycle models.
P2 Explain how risk is managed in software lifecycle 8-9
models.
M1 Discuss using an example, why a particular lifecycle 9-11
model is selected for a development environment.
D1 Assess the merits of applying the Waterfall lifecycle 11-12
model to a large software development project.

LO2 Explain the importance of a feasibility study

P3 Explain the purpose of a feasibility report. 12-13

P4 Describe how technical solutions can be compared. 14-16

M2 Discuss the components of a feasibility report. 16-18


D2 Assess the impact of different feasibility criteria on a 18-21
software investigation.

LO3 Undertake a software development lifecycle


P5 Undertake a software investigation to meet a business 21-22
need.

P6 Use appropriate software analysis tools/techniques to 22-24


carry out a software investigation and create supporting
documentation.

M3 Analyse how software requirements can be traced 24-26


throughout the software lifecycle.

M4 Discuss two approaches to improving software quality 26-27

D3 Evaluate the process of undertaking a systems 27-30


investigation with regard to its effectiveness in improving a
software quality.
LO4 Discuss the suitability of software behavioural design techniques

P7 Discuss, using examples, the suitability of software 34-36


behavioural design techniques

M5 Analyze a range of software behavioral tools 31-34


and techniques.

M6 Differentiate between a finite state machine 36-38


(FSM) and an extended FSM, providing an
application of use for both

D4 Present justifications of how data-driven software can 38-40


improve the reliability and effectiveness of
software
Unit 7: Software Development Lifecycles
Assignment

Assignment No-1 S.M.M.D Mahawewa Software Development Life Cycle


Contents

Activity 01............................................................................................................................ 1

1.1 Software Development Lifecycle .......................................................................... 1

1.1.1 SDLC Sequential Models .............................................................................. 1

1.1.1 SDLC Iterative Models .................................................................................. 4

1.2 Risk Management in Software Lifecycle Models ...................................................... 8

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

2.1 Feasibility Report ..................................................................................................... 12

2.1.1 Purpose of Feasibility Report ............................................................................ 12

2.1.2 Types of Feasibility ........................................................................................... 12

2.2 Technical Solutions .................................................................................................. 13

2.3 Components of a Feasibility Report......................................................................... 16

2.4 Impact of Different Feasibility Criteria ................................................................... 18

Activity 03.......................................................................................................................... 20

3.1 Software Investigation to Meet a Business Need ..................................................... 20

3.2 Appropriate Software Analysis Tools/Techniques to Carry Out a Software


Investigation ................................................................................................................... 22

3.3 Tracing Software Requirements Throughout the Software Lifecycle ..................... 23

3.4 Approaches to Improving Software Quality ............................................................ 24

3.5 Evaluation of Systems Investigation Process for Improved Software Quality ........ 26

Activity 04.......................................................................................................................... 29

4.1 Analyze the Software Behavioral Tools and Techniques ........................................ 29

4.2 Suitability of Software Behavioral Design Techniques ........................................... 32

Page | ii
4.3 Finite State Machine (FSM) and Extended FSM ..................................................... 34

4.3.1 Finite State Machine (FSM) .............................................................................. 34

4.3.2 Extended FSM................................................................................................... 35

4.3.3 Difference Between FSM and EFSM ............................................................... 35

4.4 Data Driven Software............................................................................................... 36

4.4.1 Improve the Reliability and Effectiveness of Software Through Data-Driven


Software ..................................................................... Error! Bookmark not defined.

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

1.1 Software Development Lifecycle

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)

1.1.1 SDLC Sequential Models

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.

Figure 1 Waterfall model


Source- www.tutorialspoint.com

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)

− Implementation − The system is initially built in separate programs known as


units, which are then combined in the following phase, using inputs from the system
design. Unit testing is the process of developing and evaluating each unit for
functionality. (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)

− Deployment of system − Once the product finishes functional and non-functional


testing, it is either published to the market or deployed in the customer's
environment. (tutorialspoint, 2023)

− Maintenance − Various problems can arise in a client environment. Patches are


published to address certain problems. Additionally, improved versions of the
product are issued. Maintenance is carried out to implement these modifications in
the surroundings of the customer. (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

− Requirement Gathering ← →Acceptance Testing


A testing phase for the finished product that takes place in an actual user
environment will be prepared as part of the process of gathering requirements for
the system to fulfill its client's expectations. The results of acceptance testing could
make up the whole client experience of the entire system as an end product.
(Nakkasem, 2020)

− System Analysis ← → System Testing


While system design is being completed, it is being planned how the components
of the system will operate and interact with one another. The focus of the system
testing phase should be on building tests based on the system design itself,
including software-hardware communication testing, testing of external services,
testing of communication, etc. (Nakkasem, 2020)

− Software Design ← →Integration Testing


In the technical stage of software design, the idea and strategy are broken down
into smaller modules to fulfill each function and specification of the project itself.
Each component's architectural design and integration test blueprint will be
planned concurrently. (Nakkasem, 2020)

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)

1.1.1 SDLC Iterative Models

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)

− Design the requirements


During the design phase, collaboration with stakeholders helps in defining the
requirements. User flow diagrams or high-level UML diagrams can be utilized to
illustrate new features and their integration with the existing system. (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)

Overall, the software development process involves defining requirements, designing,


iterating, testing, deploying, and collecting feedback to ensure a successful software
product.

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)

Figure 4 Spiral Model


Source-www.geeksforgeeks.org

− Objectives Determination and Identify Alternative Solutions


In the first quadrant, the objectives are determined, and requirements are gathered
from customers. The objectives are thoroughly analyzed, and alternative solutions
for the current phase are proposed. (PAL, 2023)

− Identify and Resolve Risks


The second quadrant focuses on identifying and resolving risks associated with
the selected solution. Evaluation of various solutions takes place, and the most
suitable one is chosen. Risks related to the chosen solution are identified and
effectively addressed. Additionally, a prototype is built to validate the chosen
solution. (PAL, 2023)

− Develop Next Version of The Product

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)

− Review and Plan for The Next Phase


The fourth quadrant involves customer evaluation of the developed version of the
software. Feedback is gathered, and the software is reviewed to assess its
effectiveness and alignment with customer expectations. Based on the evaluation
results, planning for the next phase is initiated. (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.

1.2 Risk Management in Software Lifecycle Models

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)

1.3 Selecting the Most Suitable SDLC Model for Case 2

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,

Clear and well-defined requirements: The Waterfall model is advantageous when


requirements are well-understood and unlikely to change significantly. In the case of the
wildlife safari system, the objective is to link details of sanctuaries, wetlands, and national
parks, and track safari drivers and visitor counts. These requirements can be clearly defined
upfront, making the Waterfall model a suitable choice.

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.

Emphasis on documentation: The Waterfall model places significant emphasis on


documentation at each phase of the development process. This is particularly valuable for
the wildlife ministry, as they need to track and maintain details of sanctuaries, wetlands,
national parks, safari drivers, and visitor counts. Documentation ensures accurate record-
keeping, supports future maintenance and enhancements, and provides a comprehensive
overview of the system.

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

2.1 Feasibility Report

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)

2.1.1 Purpose of Feasibility Report

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.

− To analyze whether the software will meet organizational requirements.

− To determine whether the software can be implemented using the current


technology and within the specified budget and schedule.

2.1.2 Types of Feasibility

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)

2.2 Technical Solutions


In order to determine the most suitable technical solution for the proposed Accounting and
Financial Management Software system for ABC (Pvt) Ltd as a system analyst compared
two options: a Cloud-Based Solution and an On-Premises Solution. By evaluating their
features, benefits, and suitability for ABC (Pvt) Ltd, can make an informed decision on the
preferred solution.

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:

− Accessibility and Scalability: Cloud-based solutions can be accessed from


anywhere with an internet connection, allowing users to work remotely or access
the system on the go. They offer scalability to accommodate growing business
needs and can handle increased user demands.

− Cost-Effectiveness: Cloud-based solutions often operate on a subscription-based


model, eliminating the need for upfront hardware and infrastructure costs. ABC
(Pvt) Ltd can benefit from reduced IT infrastructure maintenance and management
expenses.

− Automatic Updates and Maintenance: The software provider handles system


updates, maintenance, and security patches, ensuring that ABC (Pvt) Ltd always
has access to the latest features and a secure system without requiring dedicated IT
staff for maintenance.
Cons:

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

− Internet Dependency: Reliance on internet connectivity can be a potential


drawback. If the internet connection is unreliable or disrupted, it may impact access
to the system and hinder productivity.

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.

− Customization: On-premises solutions provide greater flexibility for


customization and integration with existing systems. ABC (Pvt) Ltd can tailor the
software to match its unique accounting and financial management processes.
Cons:

− Higher Upfront Costs: On-premises solutions typically require substantial upfront


investments in hardware, infrastructure, and licensing. ABC (Pvt) Ltd would need
to bear these costs and allocate resources for ongoing maintenance and upgrades.

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

− Cost-Effectiveness: Opting for a cloud-based solution eliminates the need for


significant upfront investments in hardware and infrastructure. This aligns with
ABC (Pvt) Ltd's budget considerations and reduces ongoing maintenance costs.

− Automatic Updates and Maintenance: A cloud-based solution offloads the


responsibility of system updates and maintenance to the software provider. ABC
(Pvt) Ltd can benefit from the latest features and security patches without needing
dedicated IT staff for ongoing maintenance.
While data security and internet dependency are important considerations, choosing a
reputable cloud provider with robust security measures can address these concerns.
Additionally, ensuring reliable internet connectivity can mitigate the risk of access

Page | 15
disruptions. Overall, a cloud-based solution offers flexibility, scalability and cost-
effectiveness.

2.3 Components of a Feasibility Report

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.

Components of the Feasibility Report as follow,

− Executive Summary: This section provides a concise overview of the entire


feasibility report, summarizing the key findings, recommendations, and the
justification for the chosen system.

− Introduction: The introduction section provides background information about


ABC (Pvt) Ltd, its accounting and financial management needs, and the objectives
of the proposed software system. It outlines the purpose and scope of the feasibility
report.

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

− Recommendation: Based on the feasibility analysis, this section provides a


recommendation on whether to proceed with the development of the Accounting
and Financial Management Software system. It summarizes the findings, highlights
the feasibility criteria, and justifies the decision based on the assessed feasibility
factors.

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

Technical Feasibility: The impact of technical feasibility is significant as it determines


whether the proposed software system for ABC (Pvt) Ltd. can be developed and
implemented using the available technology, infrastructure, and resources. A positive
assessment indicates that the system can be successfully integrated into the organization's
existing IT environment. This criterion impacts several aspects,

− Scalability: A technically feasible system can scale and accommodate the


organization's future growth and increased data volumes without compromising
performance.

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.

Economic Feasibility: The impact of economic feasibility is crucial in determining the


financial viability of implementing the software system for ABC (Pvt) Ltd. A positive
assessment indicates that the benefits derived from the system outweigh the associated
costs. Key impacts include,

− Cost Savings: The system should provide cost-saving opportunities by reducing


manual efforts, improving efficiency, and eliminating redundant processes.

− Return on Investment (ROI): A financially feasible system is expected to


generate a positive ROI within a reasonable timeframe.

− Cost-Effectiveness: It is important to consider not only the upfront development


and implementation costs but also ongoing maintenance, training, and operational
expenses.

A positive economic feasibility assessment justifies the allocation of financial resources


toward implementing the software system for ABC (Pvt) Ltd and demonstrates its potential
to generate financial benefits for the organization.

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,

− User Adoption: The system should be user-friendly and intuitive, ensuring a


smooth transition for employees and minimizing resistance to change.

− Training Requirements: Adequate training resources and support should be


available to facilitate user onboarding and ensure efficient system utilization.

− Workflow Integration: The system should integrate seamlessly into existing


processes and workflows without disrupting day-to-day operations.

− Organizational Readiness: Operational feasibility assesses whether the


organization possesses the necessary resources, skills, and culture to implement and
support the system effectively.

A positive assessment of operational feasibility indicates that the organization is prepared


for the system implementation, minimizing operational disruptions and maximizing user
acceptance.

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,

− Compliance: The system should adhere to applicable laws and regulations to


ensure the accuracy, security, and privacy of financial data.

− Risk Mitigation: Compliance with legal and regulatory requirements minimizes


the organization's exposure to legal risks, penalties, and reputational damage.

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,

− Time-to-Market: A feasible project schedule ensures timely delivery and


implementation of the system, enabling the organization to realize the anticipated
benefits.

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.

Assessing the impact of these feasibility criteria provides a comprehensive understanding


of the viability and suitability of the proposed Accounting and Financial Management
Software system for ABC (Pvt) Ltd. Positive assessments in each criterion demonstrate that
the system aligns with technical capabilities, economic benefits, operational readiness,
legal compliance, and project scheduling requirements, reinforcing the viability and
potential success of the system implementation. It allows stakeholders to make informed
decisions and move forward confidently with the proposed software system.

Activity 03

3.1 Software Investigation to Meet a Business Need

To undertake a software investigation to meet the business need of designing an Accounting


and Financial Management Software system for ABC (Pvt) Ltd, below steps are follow,

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

− Analyze Existing Documentation: Review existing financial reports, process


manuals, and documentation related to accounting and financial management.
Analyze the strengths and weaknesses of the current systems and processes. Identify
any regulatory compliance requirements that need to be considered in the software
system.

− Observe Workflows and Processes: Observe the workflows and processes


involved in accounting and financial management within ABC (Pvt) Ltd. Document
the sequence of activities, inputs, and outputs. Identify areas where automation,
integration, or improvement can enhance efficiency and accuracy.

− Gather System Requirements: Based on the interviews, analysis, and


observations, gather system requirements for the Accounting and Financial
Management Software system. Identify the desired functionalities, such as general
ledger, accounts payable/receivable, financial reporting, budgeting, and tax
management. Consider user roles, access controls, data security, and integration
with existing systems.

− Validate Requirements and Specification: Validate the software system


requirements and specification with stakeholders at ABC (Pvt) Ltd. Seek their
feedback, address any concerns or gaps, and ensure that the documented
requirements and specifications accurately capture their needs and expectations.

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.

− Entity-Relationship Diagrams (ERD): Construct ERDs to model the relationships


between different entities (e.g., accounts, transactions, customers) in the accounting
and

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

− Requirements Documentation: Use appropriate documentation tools to create


well-structured requirement documents. Document the functional and non-
functional requirements, use cases, user stories, acceptance criteria, and any
constraints specific to ABC (Pvt) Ltd's accounting and financial management needs.

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.

3.3 Tracing Software Requirements Throughout the Software Lifecycle

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,

− Requirements Elicitation and Analysis: Engage with stakeholders at ABC (Pvt)


Ltd to gather their requirements for the Accounting and Financial Management
Software system. Conduct interviews, meetings, and workshops to capture their
needs, pain points, and desired functionalities. Document these requirements in a
structured and organized manner.

− Requirements Documentation: Create a comprehensive requirements document


that clearly specifies the identified requirements, including functional and non-
functional aspects. Use appropriate documentation tools to ensure clarity and ease
of understanding. Include details such as user stories, use cases, and acceptance
criteria to provide a clear picture of what the software system should achieve.

− Requirements Traceability Matrix (RTM): Develop a traceability matrix to


establish and maintain links between the requirements and other artifacts
throughout the software lifecycle. The RTM helps track the progress of each
requirement from inception to implementation, including design, coding, testing,
and deployment stages. It facilitates easy identification of the current status and
progress of each requirement.

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

− Deployment and Release: Maintain traceability during deployment and release by


documenting the release version or deployment package along with the
corresponding requirements. This enables stakeholders to understand which
requirements are included in each release and facilitates tracking of the
implementation status.

− Maintenance and Change Management: As the software system evolves, changes


and enhancements are inevitable. Traceability plays a crucial role in change
management by assessing the impact of changes on the existing requirements and
associated artifacts. By maintaining traceability links, it becomes easier to evaluate
the ripple effects of changes and ensure that the software system remains aligned
with the original requirements.

By following these practices, software requirements can be effectively traced throughout


the software lifecycle for designing the Accounting and Financial Management Software
system for ABC (Pvt) Ltd. This ensures that the system is developed and delivered in
accordance with the identified requirements, leading to a successful implementation that
meets the organization's accounting and financial management needs.

3.4 Approaches to Improving Software Quality

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.

− Continuous Integration and Testing: Adopting continuous integration practices


allows for frequent integration of code changes and automated testing. Automated

− , assigned, and resolved, leading to higher software quality.

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:

− Modularity and Separation of Concerns: Design the software system using a


modular approach, where different components are responsible for specific
functionalities. This ensures better maintainability, reusability, and testability.

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

− Performance Optimization: Pay attention to performance optimization


techniques, such as efficient algorithms, database indexing, and caching strategies,
to ensure the software system operates with optimal speed and responsiveness.

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

Undertaking a systems investigation is a critical process in understanding business needs


and requirements, which ultimately contributes to improving software quality in ABC (Pvt)
Ltd's Accounting and Financial Management Software system.

− Requirement Understanding and Documentation: The systems investigation


process involves gathering and documenting requirements from stakeholders at
ABC (Pvt) Ltd. This step is crucial in ensuring that the software system addresses
the specific needs and goals of the organization. By thoroughly understanding and
documenting the requirements, the investigation process sets the foundation for
designing and developing a high-quality software solution.

− Identification of Stakeholders: Identifying and involving key stakeholders in the


systems investigation process is essential for gathering comprehensive
requirements. Engaging with stakeholders such as finance managers, accountants,
and end-users ensures that their perspectives and expertise are incorporated, leading
to a more robust and relevant software system.

− Business Process Analysis: During the systems investigation, business processes


related to accounting and financial management are analyzed. This analysis helps
identify opportunities for process improvement, automation, and optimization. By
understanding and streamlining these processes, the investigation process
contributes to enhancing software quality, as the software system can align with
efficient and effective business practices.

− Defining Functional and Non-functional Requirements: The systems


investigation process focuses on defining both functional and non-functional
requirements. Functional requirements describe the desired features and
functionalities of the software system, ensuring that it meets the specific needs of
ABC (Pvt) Ltd. Non-functional requirements address aspects such as performance,
security, usability, and scalability. By properly identifying and documenting these
requirements, the investigation process helps improve software quality by ensuring
that the system meets all necessary criteria.

− Stakeholder Validation and Feedback: Throughout the systems investigation


process, stakeholders are involved in validating requirements and providing

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.

− Documentation and Communication: The systems investigation process


emphasizes proper documentation and communication of gathered requirements.
Clear and comprehensive documentation ensures that there is a shared
understanding among the project team and stakeholders. It provides a reference
point throughout the software development lifecycle, aiding in maintaining
consistency and reducing the likelihood of misinterpretation or miscommunication.

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

− Agile Development: Adopting Agile methodologies, such as Scrum or Kanban, can


enhance system quality by promoting iterative and incremental development. This
approach allows for frequent feedback, collaboration, and adaptation, resulting in
faster identification and resolution of issues. Agile development facilitates greater
flexibility, transparency, and stakeholder involvement, leading to a software system
that better aligns with user needs and evolving business requirements.

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.

− DevOps and Continuous Integration/Continuous Deployment (CI/CD):


Embracing DevOps principles and implementing CI/CD pipelines can significantly
improve system quality. By automating build, integration, testing, and deployment
processes, ABC (Pvt) Ltd can achieve faster and more frequent releases while
maintaining software quality standards. DevOps practices enable efficient
collaboration between development, operations, and testing teams, promoting a
culture of continuous improvement and delivering software updates with minimal
disruptions and maximum reliability.

− User-Centric Design: Focusing on user-centric design principles ensures that the


software system meets the needs and expectations of end-users. Conducting user
research, usability testing, and incorporating user feedback throughout the design
and development process helps identify usability issues, enhance user experience,
and improve system quality. By prioritizing user satisfaction, ABC (Pvt) Ltd can
deliver a software system that is intuitive, user-friendly, and effectively supports
the accounting and financial management tasks.

− 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

4.1 Analyze the Software Behavioral Tools and Techniques

Use Case Diagram

The primary form of system/software requirements for a new software program in


development is the use case diagram. Use cases outline the expected behavior of the system,
focusing on the "what" rather than the exact implementation details of "how" it should be
achieved. Use cases can be expressed both textually and visually through use case
diagrams. The use case modeling approach allows for the design of a system from the
perspective of end users, ensuring effective communication of system behavior in terms
that users can understand. By specifying all externally observable system behavior, use
case modeling facilitates clear and comprehensive documentation of system requirements.
(paradigm, 2023)

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

− Characteristics: Visualizes the steps, decision points, and parallel activities


involved in achieving a specific goal.

State Machine Diagram

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

Sequence diagrams are organized depictions of behavior that showcase a series of


sequential steps occurring over time. They serve to illustrate the workflow, message
exchange, and collaboration between elements to accomplish a specific outcome. Sequence
diagrams effectively portray the interactions and coordination among elements as they
progress through a sequence of actions. (sparxsystems, 2023)

− Purpose: Illustrates the interactions and communication between objects or


components over time, showcasing the order of messages exchanged.

− Characteristics: Represents the sequence of actions and the chronological flow of


interactions between objects.

Communication Diagrams

Communication diagrams visualize the runtime interactions among elements, offering a


clear depiction of the relationships between objects and their communication. They provide
a graphical representation of how elements interact and collaborate with each other during
the execution of a system or process. (sparxsystems, 2023)

− Purpose: Visualizes the runtime interactions between objects, illustrating the


relationships and message exchange among them.

− Characteristics: Emphasizes the objects and their associations, focusing on the


inter-object relationships and communication.

Interaction Overview Diagrams

Interaction Overview diagrams display the collaboration among various types of


Interaction diagrams (such as Timing, Sequence, Communication, and others) to

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.

− Characteristics: Provides an overview of how multiple interactions collaborate to


achieve a larger objective.

4.2 Suitability of Software Behavioral Design Techniques

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.

Use case diagrams


The primary form of system/software requirements for the Accounting and Financial
Management Software system at ABC (Pvt) Ltd can be represented using a use case
diagram. Use cases outline the expected behavior of the system from the perspective of end
users. Let's consider a few examples of use cases for the system:

− Manage Accounts: This use case involves functionalities related to managing


accounts, such as creating new accounts, updating account information, and
deleting accounts. It allows Accountants and Finance Managers to maintain
accurate and up-to-date financial records.

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

− Perform Financial Analysis: Financial analysis involves analyzing financial data


to gain insights into trends, profitability, and risks. This use case allows users to

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.

− Process Payment Transaction: The activity diagram for processing a payment


transaction can represent the steps involved, including validating payment details,
updating account balances, generating transaction records, and sending
confirmation notifications. It can demonstrate the sequential flow of activities and
any parallel or alternative paths, such as handling different payment methods or
error scenarios.

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.

4.3 Finite State Machine (FSM) and Extended FSM

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,

4.3.1 Finite State Machine (FSM)

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

4.3.2 Extended FSM

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.

4.3.3 Difference Between FSM and EFSM


Element FSM EFSM

Represents behavior by incorporating


Represents behavior by transitioning
Behavior actions, guards, and parameters,
between a finite set of states based on
Representation allowing for more complex and
input stimuli.
dynamic behavior modeling.

More appropriate for systems with


Suitable for systems with relatively
intricate behavior, providing
simple and well-defined behavior,
Modeling enhanced expressive power for
often used in applications such as
Capabilities modeling complex systems with
protocol specifications and basic
actions, conditions, and contextual
software systems.
information.

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.

EFSMs are more complex to design


FSMs are relatively simpler to design
and analyze due to the inclusion of
and understand. They are effective in
additional elements. They are
capturing systems with
Complexity suitable for modeling systems with
straightforward behavior and do not
advanced behavior that involve
require the modeling of complex
multiple conditions, actions, and
conditions or actions.
parameters.
EFSMs are utilized in scenarios
FSMs find applications in various where more advanced behavior
domains, including hardware design, modeling is required. They are
Application protocol specifications, and basic suitable for modeling complex
Scope software systems where the behavior business processes, control systems,
can be defined using a finite number and decision-making processes that
of states and simple transitions. involve conditional behavior and
actions.
Table 1 Table 1 Difference Between FSM and EFSM (Author Developed)

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.

4.4 Data Driven Software

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)

The advantages of data-driven software include:

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.

− Personalization: By leveraging user data and preferences, data-driven software can


provide personalized experiences, recommendations, and tailored solutions to
individual users.

− Efficiency and Automation: Automation of processes and tasks is facilitated


through data-driven software, reducing manual effort and enabling efficient
operations.

− 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

You might also like