Software Architecture Design Document: Professional Health Care Network
Software Architecture Design Document: Professional Health Care Network
Muzaffarabad
SOFTWARE ARCHITECTURE
DESIGN DOCUMENT
For
PROFESSIONAL HEALTH CARE NETWORK
By
AAFAQ ZAIB 17-SE-03
MEHRAN ISHTIAQ 17-SE-22
MUHAMMAD ADIL 17-SE-26
SESSION: 2017-21
Supervisor:
ENGR. SAAD MUJAHID KHAN
Background:
Statistics system has emerged as a vital factor for any growing enterprise
in latest years. Because the growing enterprise desires to have correct
information and essential generation for solving troubles and to trap up
with ever growing customer wishes, facts machine technology has been a
key force for corporations to determine their commercial enterprise
criteria. companies these days use records machine and use the to be had
technology because they apprehend the importance of retaining and
updating facts electronically [1] using facts system for managing
information inside the fitness care along with patient file, patient
appointment machine, sufferers scheduling appointment and physician
schedule isn't only a less complicated way to save time and decrease
price, however additionally a manner to support and enhance the fitness
care information to be greater handy and bendy (editing, saving, deleting,
updating) for system users and storing information successfully.
Similarly, it improves the satisfactory of information manage [1].
Enhancing patient care management is one of the fundamental aims of
healthcare industry these days to improve the healthcare system
international. This goal is to be similarly if no longer greater vital as the
alternative keys of improving the fitness of the population and managing
per capita price of care [2] because the population keeps to grow, so too
does the need for healthcare offerings and alternatives. (The blessings Of
online Appointment Scheduling. 1st ed) fitness Care carrier companies
globally are experiencing an boom in pressure to concurrently reduce cost
and enhance accessibility and high-quality of care they supply particularly
resolving long waiting times, delays and queue of sufferers. [2]
Consequently a patient Scheduling gadget is launched as a critical issue of
scheduling and dealing with appointments. Especially on line scheduling
software has simplified and automatic the manner of clinic management
for all length of corporations.”
1. Requirements:
Functional Requirements:
Table 1.1
Identifier FR1
Title Registration
Requirement Patient wants to register his account
Source Stakeholders
Rationale To register an account to login.
Business Rule (if Not Applicable
required)
Dependencies Not Applicable
Priority Medium
Table 2.2
Identifier FR2
Title Login
Requirement Patient wants to login
Source Stakeholders
Rationale To login and use the application
Business Rule (if Not Applicable
required)
Dependencies FR1
Priority Medium
Table 3.3
Identifier FR3
Title Registered Practicing Doctors
Requirement Practicing Doctors must be registered onto the Application
and Patients can access their data example phone number
address etc. and view their profile.
Source Stakeholders
Rationale To have access with Doctor on the application.
Business Rule (if Not Applicable
required)
Dependencies FR2
Priority High
Table 4.4
Identifier FR4
Title Practicing Doctor categories
Requirement There should be different categories of doctors for instance
Orthopaedic, Cosmetic services, Primary care physician
etc.
Source Stakeholders
Rationale To have different categories of Doctor on the application.
Business Rule (if Not Applicable
required)
Dependencies FR2
Priority High
Table 5.5
Identifier FR5
Title Appointment with Practicing Doctors
Requirement The application must provide Patients to make appointment
with doctors. Doctors can check their upcoming
appointments with clients and can cancel them.
Source Stakeholders
Rationale Clients can have appointment with Doctor.
Business Rule (if Not Applicable
required)
Dependencies FR4, FR3
Priority High
Table 6.6
Identifier FR6
Title Payment Method
Requirement There should be a payment method for all Doctors before
physical check-up.
Source Stakeholders
Rationale Client can pay the Doctor for appointment
Business Rule (if Not Applicable
required)
Dependencies FR3, FR4
Priority Medium
Quality Attributes:
i. Usability
Usability requirements deal with ease of learning, ease of use, error avoidance and
recovery, efficiency of interactions, and accessibility. The usability requirements
specified here will help the Patient interface designer create the optimum Patient
experience.
USE-1: The Patient must get familiar with the application in less than 5
seconds.
USE-2: Patient will be able to use the application without getting confused or
difficulty.
USE-3: The Patient should be able to understand every functionality of the
system without any inconvenience.
USE-4: System shall be designed using consistent ad standardized approaches.
USE-5: High internet connection is needed for this application.
4.2 Availability:
Architecture Overview:
1.1 Big Picture:
The major subsystems are described in high-level details below in Section
Views. In short, they are divided up by layers. There is the view, business logic,
domain model, data interaction layer, and data source. Each of these divisions is
vital for the system to operate.
The diagram above show a high-level view of the user interaction with the
system as well as the interaction between technologies involved.
Availability
Availability is an important architectural driver for the system, as the system
must be available in order for students and employers to submit evaluations.
Additionally, the system must be available for coops to be approved or denied,
and for administrators to perform various managerial tasks. If the system is
unavailable for any of these tasks, cascading delays may occur during any stage
of the coop evaluation process.
Maintainability
Maintainability is an important architectural driver for the system because the
system will be maintained by ITS on regular basis once the system is deployed in
production. This is also an important service at RIT so if defects arise, fixes must be
able to be deployed as quickly as possible.
Testability
Testability must be determined in early stages of development. Due to the
iterative nature of our methodology, regression testing will be one of the primary
forms of testing conducted.
Therefore, the tactic Able to Stub/Mock is highly valued to us. This tactic will
allow us to create tests and quickly use them to test the system when changes are
made or new features are added to the system.
Another tactic for testing our team plans to conduct is Separating the Interface
from Implementation, which is a form of providing input and capturing output.
Separating the interface from the implementation allows substitution of
implementations for various testing purposes. This will also allow us to write
tests without having to touch the interface itself.
1.1.2 Patterns
Service-Oriented Pattern
The service oriented pattern compartmentalizes different features within the
application. This pattern describes a collection of distributed components that
provide and/or consume services. Service consumers are able to use these
services without any detailed knowledge of their implementation.
This allows for easy maintainability, as each service can be altered without affecting
the other services of the system. Additionally, each service can be tested
independently of each other, which can be useful in pinpointing potential defects.
Domain Model and Data Mapper Patterns
The domain model pattern incorporates both behavior and data into an object-
oriented model of the application domain. When using this pattern, the model of
the domain is organized primarily around the nouns in the domain. The domain
model is then separated from the database with the use of the data mapper
pattern.
The data mapper is a layer that sits between the database and the domain model,
which handles the loading and storing between the database and the domain
model; Therefore allowing both to vary independently. This separation of the
database and domain model means that the domain objects do not have any
knowledge that that database exists, and the domain model does not know that
the data mapper exists.
Client-Server Pattern
Clients initiate interactions with servers, which provide a set of services. The
clients invoke services as needed from those servers, and then wait for the results
of those requests.
Client is responsible for displaying and performing small updates on the data,
while the server handles data management.
The client-server pattern supports modifiability and reuse, as it factors out
common services, allowing them to be modified in a single location. This pattern
also supports scalability and availability by centralizing the control of these
resources and servers.
Model-View-Controller Pattern
The modelviewcontroller (MVC) pattern separates user interface functionality
from application functionality. With MVC, application functionality is divided
into three types of components: models, which contain the application data;
Views, which display the underlying data and interact with the user; And
controllers, which mediate between the model and the view and manage state
changes.
The MVC pattern supports usability, as it allows the user interface to be designed
and implemented separately from the rest of the application.
2 Views
2.1 Logical (Layered) View
2.1.1 View Diagram
Figure 4. A layered view of the Coop Evaluation System
2.1.2 Element Catalog
Elements
Presentation Layer
The presentation layer will provide the user with a graphical interface for
interacting with the system. It will be composed of HTML, CSS, JavaScript, and
other related files that will run in the user’s web browser of choice. The main
goal of this layer is to provide everything the user needs to complete their tasks in
the system. The quality attributes that pertain to usability and frontend design
will have the biggest pull on the presentation.
Application Logic Layer
The role of the application logic layer is to encapsulate the system controllers,
which implement much of the core business logic. It will also serve as the
connection between the user interface and the domain model, thus maintaining
the separation of concerns.
Service Layer
The service layer is in charge of modularizing different features (services) of the
application. Certain features, such as reporting, require access to external APIs;
the service layer will be in charge of interacting with those external APIs. An
individual service can also use the application logic layer to perform core
business logic.
Each service will act as a facade, serving as a general interface for a feature that
can be accessed by the presentation layer. These facades (interfaces) will provide
the ability to manipulate or fix the code underneath each service without
affecting the way in which that service is called by other layers.
Modularizing the services within the system will also make it easier to
pinpoint potential defects, allowing for easy maintainability. Each service
can be tested individually, which allows for good system wide testability.
Domain Model Layer
The domain model contains all of the system’s object representations of data in
the system. This also includes associated methods for any objects that contain
their own functionality.
Data Access Layer (DAL)
The data access layer contains all of the mappers to the data in the system. The
mappers are in charge of the coordination of all communication between the
objects in the domain layer and their corresponding tables in the database. This
ensures that domain layer objects have no knowledge of the database, its schema,
or any SQL interface.
Client
A client is a component that invokes services of a server component. Clients have
ports that describe the services they require. In the context of the Coop
Evaluation System, the client is a web browser being used to access the system.
The client makes HTTP requests using Restful web services.
Server
A server is a component that provides services to clients. Servers have ports that
describe the services they provide. The Coop Evaluation System will be deployed
on an Apache Tomcat web server. Tomcat implements the Java Servlet and Java
Server Pages (JSP) specifications from Oracle, and provides a Java web server
environment for Java code to run in. The server provides web services through
HTTP, a TCP/IP application layer protocol.
Request/Reply Connector
Request and reply connectors are data connector employing a request/reply
protocol, used by a client to invoke services on a server. For the Coop Evaluation
System, the client and server will communicate using Restful web services. The
client will request information from the server using HTTP for normal requests,
and HTTPS for secure transactions. In return, the server will respond using
HTTP responses.
The server will communicate with the Oracle SQL database using a data
persistence framework for mapping Java objects to database records. This
communication takes place in the form of SQL statements and stored procedures.
Relations
Client to Server
The client and server communicate with each other using a request response
messaging pattern. The client sends a request to the server, and the server sends a
response in return. The client and server use a common language of Restful web
services, so that both the client and server know what to expect. To handle
multiple requests at once, the server uses a scheduling system to prioritize
incoming requests from clients. The server also limits how a client can use the
server’s resources in order to prevent a denial of service attack.
Interfaces
Interface Identity
Both the client and external APIs interface with the server through the service
layer. A variety of services will be defined so that the user interface and external
APIs may be swapped in and out without having to modify the business logic
of the application. By defining a common interface for each service,
communication of the user interface and external APIs with the system is kept
consistent, and easily modifiable.
8. References: