0% found this document useful (0 votes)
79 views

Software Analysis and Design Case Study - Edited

The document discusses the main phases of the software engineering life cycle for developing an online legal consultation system. It describes the requirements gathering, design, implementation, testing, deployment, and maintenance phases. It also discusses several software engineering methodologies including the waterfall model, V-shaped model, prototype model, spiral model, and interactive incremental model.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views

Software Analysis and Design Case Study - Edited

The document discusses the main phases of the software engineering life cycle for developing an online legal consultation system. It describes the requirements gathering, design, implementation, testing, deployment, and maintenance phases. It also discusses several software engineering methodologies including the waterfall model, V-shaped model, prototype model, spiral model, and interactive incremental model.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

1

Deliverable 1: Software Analysis and Design Case Study

A System for Online Legal Consultation

Student’s Name

Institution of Affiliation

Class

Professor’s Name

Date
2

Deliverable 1
(Part 1)
Main Phases of SE life Cycle of the System

Figure 1: SE Life Cycle Retrieved from: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/, 2021

Requirements Gathering and Analysis


Requirements gathering and analysis is the most significant phase of the SE life cycle (Pinciroli
et al., 2020). The phase involves the understanding of what is needed for the project. Relevant
information is collected from the client to develop the product that meets their expectations. The
phase will involve meeting with the legal consultation agent or company lawyer to gather all the
information, such as what the customers need to build, the type of end-users, and the program's
main purpose. In this case, the software should serve the lawyers and clients by providing an
interactive environment that will allow clients to create accounts, search for a lawyer of their
choice, ask for a consultation, upload any document that is needed, make payments, make
appointments, contact the lawyer, meet the lawyer online, hire a lawyer and other legal related
tasks. Information will also be gathered from a previous system; if it is available, it will be
embedded in the new system.
Design
The design phase will involve building the system architecture by the software team to
design the software solution by utilizing appropriate coding guidelines and software design tools
(Shafiq et al., 2021). In this case, the design will be to develop software that will allow lawyers
to provide online legal consultations to their customers through an interactive environment where
clients will be able to perform legal-related tasks. The lawyer will also interact with the system,
such as creating a profile and including his expertise and any other related information,
reviewing any pending request, responding to consultation requests, making appointments,
issuing an invoice, meeting online with a client, and handling a case. The system should also
allow admins to approve all registered accounts, monitor consultations, manage users' accounts,
manage payments, and contact users. The requirements will help in the designing of the software
architecture to offer a solution to the client's problem.
Implementation and Coding
3

In the implementation and coding phase, the software teams start to build the legal
system code that will solve the problem at hand. The developers will use the design document to
translate the software into source code. At this phase, all the components of the legal software
system are implemented.
Testing
Once the coding is completed, testing of the legal software system begins. The modules
for the software are released for testing. In the testing phase, tests are performed on the
developed software to ensure if there are any issues or defects, they are fixed by the developers.
The system is tested according to the legal standards to ensure it meets the needs of the online
legal consultation system. Any bugs reported within the system are fixed to ensure their high
quality when the end-user uses them. Since the system will be used by many users who involve
the system admins, lawyers, and clients for legal consultation, the testing of the system will be
interactive. Interacting with the system will help determine its heterogeneity and robustness.
Deployment
After the software product has been tested, it is deployed in the production environment
after it has been tested to meet the customer's expectations. After the system has passed the
testing stage day and is in accordance with the legal consultations requirements, the system will
then be deployed. At this stage the software, the software is expected to be efficient and fast in
meeting the end-user needs. If an online legal consultation company is contented with the
system, it will proceed with using the system. Additional testing can also be implemented in the
live environment to ensure that the deployment phase is efficient and adequate.
Maintenance
After deploying the software product in the production environment, the following phase
is the maintenance of the product. The key essence of the maintenance phase is to ensure any
software issues that immerge are taken care of and fixed by the developers (Georgiou et al.,
2019). Since the end-product software will involve many users in the online legal consultation
process, there is the likeliness of low speed and non-functional requirements that can arise. In
case of any issues, the developers will fix them to ensure maximum software efficiency.
Software Engineering Methodologies
The software engineering models include the waterfall model, V-shaped model, prototype
model, spiral model, interactive incremental model, Bing Bang model, and Agile model.
i. Waterfall Model
Waterfall model is the first model to be introduced as a process. It is easy to understand and
apply. In waterfall model, one face must be finished before beginning the next phase (Kramer,
2018). It utilizes a sequential and linear flow.
4

Figure 2: Waterfall Model Retrieved from: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm

Advantages
 Easy to comprehend and apply
 It is easy to manage due to its rigidity.
 The results and processes are documented at any step.
 It has clearly defined stages.
 It is more effective for smaller projects.
Disadvantages
 It is difficult to measure development within stages.
 It is not suitable for projects that are at risk of change in requirements associated with
process model.
 Not suitable for complex programs.

ii. V-Shaped Model


In V-shaped model, processes are executed in a V-shape. It is also called verification and
validation model and also an extension of waterfall model. Each development phase can be
tested (Piotrovskyi, 2022).

Figure 3 V-Model (Sami, 2012)


5

Advantages
 Each phase of the model is performed one at a time.
 It is well-defined hence suitable for simple projects.
 Straightforward and simple to understand.
 It is easy to manage
Disadvantages
 It involves higher risk and uncertainty.
 It is not suitable for complex systems.
 Uncertainty and high risk.
 It is difficult to update after the software has entered the testing stage.
 It is not suitable for higher risk projects.

iii. Prototype Model


The prototype model facilitates the collection of useful consumer input and assists developers
and programmers in understanding a product expectation. Software prototypes are created to
demonstrate the capability of the system under development. Suggestion for developing the
software are made by the developer for review by the end-users. They are later implemented if
approved. It helps in understanding the specific requirements of a user before product
development.
Advantages
 Increased user participation before product adoption.
 Utilizes input from the user hence can offer better solution.
 Created on user functionality, hence users understand the system better.
 Easy to detects issues such as faults earlier.
Disadvantages
 Risk of poor requirement analysis due to reliance on prototype.

iv. Spiral Model


It combines repeated development concept. It has the traits for waterfall method. It is an
interconnection of sequential linear development model and iterative development model.
6

Figure 4: Spiral Model Retrieved from: https://xbsoftware.com/blog/software-development-life-cycle-spiral-model/

Advantages
 Easy to break the development into smaller portions for earlier risk management.
 Easy to capture requirements.
 Users can interact with the system.
 Extensive use of prototypes.
 Easy to address changing needs.
Disadvantages
 It is a complicated procedure.
 Costly for small scale initiatives.
 Project results are not known for some time.
 Difficult to manage.

v. Interactive Incremental Model


It involves partial implementation of a full system in a deliverable. It involves an expanded
functionality. Any issues from a previous delivery are fixed and the product is supplied. The
same procedure is repeated until finalization of the final product. The process involves iterations
which are repeats. At the end of each iteration, a product increment is given.
Advantages
 Prioritized needs can be created first.
 The first product delivery is quicker.
 Customers benefit from critical functionality as soon as it is available.
Disadvantages
 Iteration planning must be done effectively.
 It is necessary to have an efficient design in place to guarantee that all necessary
functionality is included, as well as provision for future revisions.
 A complete and completely working system must be defined early on to define
increments.
7

vi. Bing Bang Model


It involves the direction of all resources that are available on coding and software
development with minimal or no planning. Needs are implemented as they arise. Any necessary
improvements may or may not necessitate a complete program redesign. The concept is
appropriate for small projects with one or two developers working collaboratively, as well as
academic or practice projects. It is a good model for a product whose needs are unclear and
whose ultimate release date is unknown.
Advantages
 Allows room for creativity by the developers.
 It requires few resources.
 It is easy to use.
 It does not require any preparations.
Disadvantages
 It can be costly if wrongly interpreted.
 Not suitable for long-term projects.
 Not suitable for complex projects.
 High level risk that is unpredictable.

vii. Agile Model


It is a hybrid of iterative and incremental process models. It focuses on adaptation of
processes and satisfaction of client needs through quick delivery functional software. It is
subdivided into small incremental builds. Each project module is handled differently and
customized to meet the project objectives. Tasks are classified in time boxes of particular traits
for release.

Figure 5: Agile Retrieved from: https://www.javatpoint.com/software-engineering-agile-model

Advantages
 It requires little resources.
 It is easy and quick to build functionalities.
 It promotes cross training and collaboration.
8

 It utilizes a practical approach to develop a system.


Disadvantages
 The project scope is governed by a strong delivery management.
 Overarching plan is needed for it to work, an agile leader and agile practices.
 Greater sustainability, extensibility and maintainability risks.
 Not suitable for complex dependencies.
How to select an appropriate methodology for a system
When selecting the appropriate methodology for a project, there are various factors such
as the focus of the project, stakeholder and customer involvement, industry, timeline flexibility,
budget, number of developers to work on the project, the complexity of the project, and
resources needed to complete the project. For instance, if there is a greater need to minimize
risks during the development of a system, agile development methodology would be suitable. On
the other hand, if the project needs to be tested in each development phase for its functionality
and efficiency, the prototype model would be more flexible. Additionally, if the project is
complex in nature and requires planning and documentation, the waterfall model will be suitable
for the development of the project.
Different technological tools used in each life-cycle phase
i. Git
The Global Information Tracker is a versioning and management system for open-source
software. It was developed to manage and track the source code history shared by its users, who
are software developers. It is completely free to use. Git must be installed through the command
line on the developer's PC before being used. Git facilitates software team collaboration by
merging several developers into a single source. Git would be used during the implementation,
testing, maintenance phases, and any other phases in which software developers would need to
code.
ii. GitHub
It is a repository hosting service that allows developers to collaborate on open-source
projects, similar to Git, although it has many more capabilities. GitHub provides task
management tools for software projects, allowing engineers to work collaboratively on many
projects in real-time. When a developer makes an update to the main directory, a new copy,
known as a 'branch,' is produced. This allows them to continue working on the original code
without overwriting each other's work, and once accepted, the amended code may be pushed into
the main directory. GitHub would be used during the implementation phase when the software
team develops the code and during the maintenance phase when any code changes are made.
There is also automated testing accessible, which will show any faults with the code to the
developer, and if the developers believe that GitHub is a viable platform for the deployment of a
project, they can do so.
iii. Text Editor
A text editor is a computer program that allows software programmers to practice creating or
altering code or plain text files throughout the design phase to analyze specific code. Content
9

editors are appropriate for this since they do not format or change the text. Some text editors
have operating systems that allow you to modify the source code of a programming language,
which can be valuable throughout the implementation and maintenance phases.
iv. Python
Python is a programming language that enables programmers to create logical and succinct
code for software development projects. Python would be required throughout the
implementation phase when programmers develop the application and during the maintenance
phase if changes to the code were required.
v. Excel
Excel is a popular spreadsheet tool for organizing data in reporting, project management
tracking systems, and other tasks. Excel may be used during the requirements phase when the
project manager generates the required papers. In addition to doing calculations, Excel can store
and organize data and documents that may be used to build a report. It makes Excel handy when
software documentation is created throughout the deployment phase and may be resorted to
during the maintenance phase if a new developer needs to access the application code.
Ethical and Legal Issues Table
EL – Ethical and Legal Issues
EL Description Justification
Identifier
EL1 No unauthorized user will have The information submitted in the system
access to the legal consultation is private and can only be accessed by
data from clients and lawyers. the parties sharing the information. That
is a lawyer and client.
EL2 The system can track registered It will help the systems admins
accounts, consultations, user efficiently manage lawyers' and clients'
accounts management, payments legal tasks and transactions.
management, and users contacts.
EL3 The system will offer lawyers and Since the system involves legal
clients an efficient platform to consultation between lawyers and clients,
perform legal consultation tasks it will only serve their mutual
online. communication interests.
EL4 Only registered lawyers and Since the system admins are responsible
clients will be able to interact with for the lawyers' tasks in the legal
the system. consultation with their clients, the
admins should ensure the system
environment is secured.
EL5 The manager might adopt a fixed It can be unethical for the legal
budget for the system since it is a consultation organization to be charged a
new one; hence there is a high cost for the system. Their budget
possibility of not affording will be taken into account in developing
complex software. the system.
10

Process Re-Engineering
Process Re-engineering is a software development method used to increase the
maintainability of a software system. It is rearranging and altering existing software systems to
make them more manageable. It involves altering a system and reconstituting it in a new form. It
is carried out by developers as part of the maintenance process without disruptions to the existing
software. It involves adding functionalities that will ensure the efficiency of the system. The re-
engineering process is cost-effective compared to developing a full system.
In the case of the legal consultation system, new requirements need to be collected to
update the system by restructuring the source code to result in the desired software. Reversed
engineering will be implemented by the developers before process re-engineering, which is the
obtaining of software specifications. It will help to maintain the maintainability and reliability of
the software.
(Part 2)
Methodology for the Online Legal Consultation System
The Agile model can be considered the most suitable for the Online legal consultation
system. The main reason is that Agile is a combination of iterative and incremental approaches
that fit flexible requirements (Tripathi et al., 2021). At each phase of developing the online legal
consultation system, using the agile method, it is easy to test for each iteration. As a result, it is
easy for the developers' team to identify small issues that may develop into big challenges. The
lawyers who are intended users of the system will also be engaged to provide feedback
throughout the development process. The model is suitable for developing a complex system; the
development team will ensure it meets its requirements through close monitoring throughout the
development process. By using the agile methodology, the clients, managers, systems admins,
and the system owners will be able to interact regularly, resulting in faster development on the
system keeping in mind that COVID-19 has resulted in a shift in the use of information
technology. The system will timely be developed and provide maximum functionality to legal
consultation firms. Legal will be able to create profiles that system admins will approve to ensure
trusted lawyers are available in the system. The agile methodology will also provide an
interactive environment for both the clients and lawyers.
Online Legal Consultation System: Tool for Requirement Phase
The tool utilized to collect the online legal consultation system requirements involves
virtual interviews with lawyers and possible clients for legal consultation. The results will be
incorporated into the FCM model. Due to COVID-19, it is possible to perform formal interviews;
virtual interviews were preferred. Observation and research on the problem at hand were also
analyzed to come up with deliverables for the system requirements. The obtained requirements
help in the definition of the criteria for programming, which is the foundation for designing the
software.
There are various online modeling tools online that can be utilized, such as:
i. GenMyModel is more modeling than a drawing tool supporting teams, allowing
simultaneous and easy collaboration.
ii. Gliffy – is an online diagramming application that greatly supports UML diagrams.
11

iii. Draw.io – a web diagramming tool. It allows a user to draw and share a diagram.
iv. Lucid chart – a cloud program for diagramming. It allows collaboration in building,
modification, and distribution by users.
Foldable Concept Model (FCM):
12

Proxy Node:

R1- Why and Who

Whys (and) Who (and)


To come up with a system that will allow To ensure improvement in an online legal
online legal consultation between lawyers consultation.
and clients.
To discourage the need for physical, legal Clients need to be offered efficient legal
consultation in the COVID-19 era. consultation remotely during the COVID-19
pandemic.

Proxy Node:

R3-Security and Data Protection Personal information


regarding lawyers
and clients will be
private.

The system will ensure the


Functional Requirement Table:
confidentiality of the data
ID shared between the lawyers and
Description
R1 clients.
The online legal consultation system will be deployed in a legal consultation company
and allow lawyers to interact with their clients virtually about a case.
R4 Managers and Clients will be able to create their profiles.
R5 The system will provide additional legal consultation tasks to the lawyers.
R6 The system will provide additional legal consultation tasks to the clients.

Non-Functional Requirements Table:


ID Description
R2 Authentication will prevent unauthorized individuals from accessing the
system.
R3 Security and Data Protection will ensure secure user data.
13

References
Georgiou, S., Rizou, S., & Spinellis, D. (2019). Software development life-cycle for energy
efficiency: techniques and tools. ACM Computing Surveys (CSUR), 52(4), 1-33.
Kramer, M. (2018). Best practices in systems development life-cycle: An analysis based on the
waterfall model. Review of Business & Finance Studies, 9(1), 77-84.
Pinciroli, F., Justo, J. L. B., & Forradellas, R. (2020). Systematic Mapping Study: on the
coverage of aspect-oriented methodologies for the early phases of the software
development life cycle. Journal of King Saud University-Computer and Information
Sciences.
Piotrovskyi, Y. (2022). The most common software development methodologies. Top Ukrainian
IT Outsourcing Firm: Software Development Company | Yojji. https://yojji.io/blog/the-
most-common-software-development-methodologies
Shafiq, S., Mashkoor, A., Mayr-Dorn, C., & Egyed, A. (2021). A Literature Review of Machine
Learning and Software Development Life cycle Stages. IEEE Access.
Tripathi, V., Chattopadhyaya, S., Mukhopadhyay, A. K., Sharma, S., Singh, J., Pimenov, D. Y.,
& Giasin, K. (2021). An innovative, agile model of smart lean–green approach for
sustainability enhancement in Industry 4.0. Journal of Open Innovation: Technology,
Market, and Complexity, 7(4), 215.

You might also like