Professional Documents
Culture Documents
Solution: Object Oriented Software Engineering Assignment # 02
Solution: Object Oriented Software Engineering Assignment # 02
Assignment # 02
Solution
Table of Contents
REVISION HISTORY................................................................................................................................................II
DOCUMENT APPROVAL........................................................................................................................................II
3. SPECIFIC REQUIREMENTS................................................................................................................................2
3.1 EXTERNAL INTERFACE REQUIREMENTS...............................................................................................................3
3.1.1 User Interfaces.............................................................................................................................................3
3.1.2 Hardware Interfaces....................................................................................................................................3
3.1.3 Software Interfaces.......................................................................................................................................3
3.1.4 Communications Interfaces..........................................................................................................................3
3.2 FUNCTIONAL REQUIREMENTS...............................................................................................................................3
3.2.1 <Functional Requirement or Feature #1>..................................................................................................3
3.2.2 <Functional Requirement or Feature #2>..................................................................................................3
3.3 USE CASES............................................................................................................................................................3
3.3.1 Use Case #1..................................................................................................................................................3
3.3.2 Use Case #2..................................................................................................................................................3
3.4 CLASSES / OBJECTS..............................................................................................................................................3
3.4.1 <Class / Object #1>.....................................................................................................................................3
3.4.2 <Class / Object #2>.....................................................................................................................................3
3.5 NON-FUNCTIONAL REQUIREMENTS......................................................................................................................4
3.5.1 Performance.................................................................................................................................................4
3.5.2 Reliability.....................................................................................................................................................4
3.5.3 Availability...................................................................................................................................................4
3.5.4 Security.........................................................................................................................................................4
3.5.5 Maintainability.............................................................................................................................................4
3.5.6 Portability.....................................................................................................................................................4
3.6 INVERSE REQUIREMENTS......................................................................................................................................4
3.7 DESIGN CONSTRAINTS..........................................................................................................................................4
<Online Pharmacy System>
3. Specific Requirements
External Interface Requirements
User Interfaces
We aim to provide simple yet interactive interfaces to the all the stakeholders of the
system. This might require the help of a web desginer as we lack skills to achieve the target.
Software Interface
As Java is open source technology so it can run on number of platforms or Operating
systems as:
Windows
Mac OS
Linux
Unix
Hardware interface
No special hardware is required for this web-based application. A standard PC,
smartphone with following processing power is more than enough for the requires operations of
the system.
Minimum 256 MB RAM
Minimum required memory 5 GB
Communications Interfaces
Our software would require a high speed Internet will be required to process systems
different operations, this is also the need of the project as we are required to build a web based
software and that it will use a client-server architecture.
Functional Requirements
We have categorised Functional Requirements of our system in the following three main areas,
the detail of which have been explained in the aforementioned parts of SRS. Their individual
characteristics will be further elaborated in the design phase before they are implemented.
However, system functions are decribed in the form of Use Case Diagram and their description
in the following chapters.
Order Management & Communication
Order Verification and Confirmation
Order Fulfilment
Inventory Control
Stock Monitoring and Storage
Administration
Reporting
Analysis
Use Cases
Use Case #1
Use Case ID: 1
Use Case Name: Sign up
Date Created: November 26, 2015
Actors: Customer
Description: Customer needs to be registered to be able to purchase any medicine. A
customer will need to be registered only once. He will provide basic
some basic information like name, NIC number, mailing address, contact
number etc. and set a password for his account. Only one account will be
created against each NIC number.
Preconditions: 1. Customer should have opened the website
2. The customer should have requested for sign up
Post conditions: 1. System must have added the record of the customer in the database
Normal Flow:
Customer System
1. System will prompt the
customer to enter basic
information
2. Customer will enter the basic
information
3. System will verify that the
entered CNIC number is not
in the database
4. System will prompt the
customer to set a new
password and verify
5. The customer will enter a new
password and will re-enter it
6. If both entered passwords
match and satisfy password
requirements then create an
account for the customer
Alternative Flows:
Exceptions:
CNIC Number already registered
Ask the user to login or recover password
Use Case #2
Use Case ID: 2
Use Case Name: Login
Date Created: November 27, 2015
Actors: Customer
Description: Customer needs to be logged in before purchasing any medicine. The
customer will need to add the CNIC number and password to login
Preconditions: 1. Customer should have opened the website
2. The customer should have requested for login
Post conditions: 1. The customer should be logged in
Normal Flow:
Customer System
1. System will prompt the
customer to enter CNIC
number and password
2. Customer will enter his CNIC
number and password
3. System will authenticate the
user
4. System will display a
welcome message to the
customer
Alternative Flows:
Exceptions: 2.1 User not authenticated
Ask the user to re-enter CNIC number and password
Use Case #3
Use Case ID: 3
Use Case Name: Search medicine
Date Created: November 27, 2015
Actors: Customer
Description: Customer will be able to search any medicine by entering medicine name
or medicine’s formula
Preconditions: 1.Customer should have opened the website
Post conditions: 1. System must be displaying full list of medicines that match the
customer’s search
Normal Flow:
Customer System
1. System will prompt the
customer to enter medicine’s
name or formula
2. Customer will enter the either
the name or formula of the
required medicine
3. System will fetch the record
of the medicine from the
database and check if stock is
available
4. System will display the record
to the customer
Alternative Flows: 3.1 User wants to search multiple medicines
Return to step 2.
Use Case #4
Use Case ID: 4
Use Case Name: Place Order
Date Created: November 28, 2015
Actors: Customer
Description: Customer should be able to place the order of the medicine by searching
the medicine and entering the required quantity and potency.
Preconditions: 1. Customer should have opened the website
2. Customer should be logged in to the system
3. Customer should have asked to place an order
Post conditions: 1. System should have decremented the stock value
Normal Flow:
Customer System
1. System will prompt the
customer to enter name or
formula of the medicine
2. Customer will enter either name
or formula of the medicine
Use Case #5
Use Case ID: 5
Use Case Name: Login (Non customer)
Date Created: November 28, 2015
Actors: Admin / Cashier / Stock maintainer / Owner
Description: For all the administrative staff and the owner, it should be necessary to
first login to the system to perform any operations. The user will enter
user name, password and one of the user types i.e. cashier, stock
maintainer, admin and owner.
Preconditions: 1. User should have opened the pharmacy system
2. User should have asked to login to the system
Post conditions: 1. The user should be logged in
Normal Flow:
Admin / Cashier / Stock System
maintainer / Owner
1. System will prompt the user to
enter user name, password
and user type
2. User will enter his user name,
password and user type
3. System will authenticate the
user
4. System will display the home
screen according to the user
role
Alternative Flows:
Exceptions: 5.1 User not authenticated
Ask the user to re-enter name and password or to change the user
type
Use Case #6
Use Case ID: 6
Use Case Name: Create new invoice
Date Created: November 28, 2015
Actors: Admin / Cashier
Description: Admin and cashier should be able to enter new invoice record. An
invoice record consists of invoice ID, customer information, medicine
information and order details including quantity, amount etc.
Preconditions: 1. User should have opened the pharmacy system
2. User should be logged into the system
3. User should have requested to enter new invoice record
Post conditions: 1. Stock values must be updated
Normal Flow:
Admin / Cashier System
1. System will prompt the user to
enter invoice details
2. User will enter invoice details
3. System will verify the details
and if it was a direct purchase
then update the stock values
accordingly
Alternative Flows: 6.1 User wants to enter record of multiple invoices
Return to step 2.
Use Case #7
Use Case ID: 7
Use Case Name: View invoice
Date Created: November 29, 2015
Actors: Admin / Cashier
Description: Admin and cashier should be able to view invoice records. The invoice
record will consist of customer information, medicine information and
order details including quantity, amount etc. User should be able to
search on the basis of invoice number, medicine name customer name, or
search all invoices.
Preconditions: 1. User should have opened the pharmacy system
2. User should be logged into the system
3. User should have requested to view invoice details
Post conditions: 1. The user should be displayed the invoice records according to search
criteria
Normal Flow:
Admin / Cashier System
1. System will prompt the user to
select a search criteria i.e.
invoice number, medicine
name, customer name or
search all invoices
2. User will select a search
criteria
3. System will prompt the user to
enter details as per the
selected search criteria
4. User will enter the details
5. System will fetch the details
of the selected records and
will show to the user
Alternative Flows:
User wants to search on the basis of multiple criteria
Return to step 2.
Exceptions:
Use Case #8
Use Case ID: 8
Use Case Name: Update invoice
Date Created: November 29, 2015
Actors: Admin / Cashier
Description: Admin and cashier should be able to update invoice records. The invoice
record will be first searched as explained in Use Case #7 and then the
user will have option to update the information.
Preconditions: 1. User should have opened the pharmacy system
2. User should be logged into the system
3. User should have requested to update invoice details
Post conditions: 1. The respective information must have been updated
Normal Flow:
Admin / Cashier System
1. System will prompt the user to
update the information
2. User will update the
information
3. System will reflect the
changes in the database
Alternative Flows:
Exceptions: 8.1 User cancels the updating process
Take the user to home screen and do not perform any changes in the
database record
Use Case #9
Use Case ID: 9
Use Case Name: Delete invoice
Date Created: November 29, 2015
Actors: Admin / Cashier
Description: Admin and cashier should be able to delete invoice records. The invoice
record will be first searched as explained in Use Case #7 and then the
user will have option to delete the invoice
Preconditions: 1. User should have opened the pharmacy system
2. User should be logged into the system
3. User should have requested to delete invoice
Post conditions: 1. The respective information must have been updated
Normal Flow:
Admin / Cashier System
1. System will prompt the user if
he is sure to delete the record
2. User will confirm the deletion
3. System will delete the records
from the database
Alternative Flows:
Exceptions: 9.1 User cancels the deleting process
Take the user to home screen and do not perform any changes in the
database record
Normal Flow:
Admin / Cashier System
1. System will prompt the user to
enter doctor’s details
2. User will enter doctor’s
details
3. System will verify the details
and if the doctor does not
already exist then add the
record of the doctor in the
database
Alternative Flows: 10.1 User wants to enter record of multiple doctors
Return to step 2.
Exceptions:
Normal Flow:
Admin / Cashier System
1. System will prompt the user to
select a search criteria i.e.
doctor’s ID, doctor’s name or all
search doctors
2. User will select a search criteria
Exceptions:
Normal Flow:
Admin / Cashier System
1. System will prompt the user to
update the information
2. User will update the
information
3. System will reflect the
changes in the database
Alternative Flows:
Exceptions: 12.1 User cancels the updating process
Take the user to home screen and do not perform any changes in the
database record
Normal Flow:
Admin System
1. System will prompt the admin
if he is sure to delete the
record
2. User will confirm the deletion
3. System will delete the records
from the database
Alternative Flows:
Exceptions: 13.1 User cancels the deleting process
Take the admin to home screen and do not perform any changes in
the database record
Normal Flow:
Admin / Stock Maintainer System
1. System will prompt the user to
enter medicine’s details
2. User will enter medicine’s
details
3. System will verify the details
and check if the medicine is
not already entered in the
database
4. System will add the medicine
record in the database
Alternative Flows: 14.1 User wants to enter record of multiple medicines
Return to step 2.
Normal Flow:
Admin / Stock Maintainer System
1. System will prompt the user to
select a search criteria i.e.
medicine’s number, medicine
name, medicine’s formula,
price, expiry date and
available quantity etc.
2. User will select a search
criteria
3. System will prompt the user to
enter details as per the
selected search criteria
4. User will enter the details
5. System will fetch the details
of the selected records and
will show to the user
Alternative Flows:
User wants to search on the basis of multiple criteria
Return to step 2.
Normal Flow:
Admin / Stock Maintainer System
1. System will prompt the user to
update the information
2. User will update the
information
3. System will reflect the
changes in the database
Alternative Flows:
Exceptions: 16.1 User cancels the updating process
Take the user to home screen and do not perform any changes in the
database record
Normal Flow:
Admin / Stock Maintainer System
1. System will prompt the user if
he is sure to delete the record
2. User will confirm the deletion
3. System will delete the records
from the database
Alternative Flows:
Exceptions: 17.1 User cancels the deleting process
Take the user to home screen and do not perform any changes in the
database record
Normal Flow:
Admin System
1. System will prompt the admin
to select the type of the report
2. Admin will select the type of
the report
3. System will generate report
for the specified type and will
send to the owner
Alternative Flows:
Normal Flow:
Owner System
1. System will prompt the owner
to select the type of the report
2. Owner will select a type of
report
3. System will display the report
of the specified type
Alternative Flows:
Exceptions:
Classes
At this point in time, we have only identified a few of the following general
classes that may change when at the time of design and/or implementation phase.
Medicine
Customer
Pharmaceutical Company
User (Manager, Data Entry
Operator) Invoice)
Report
Non-Functional Requirements
Performance
Since we have suggested client-server architecture for this system, we will
ensure that response to client’s request are as efficent as possible using available
techniques. However, the constraint of Internet speed may affect our efforts that
cannot be ignored.
Reliability
Reliability of a system is concerned with how accurate and efficient your
system is in performing any kind of task. Our proposed system is truly reliable in terms
of account management.
Flexibility
The system will provide flexibility so that when external change occurs it will
make no effect on the software. The software will run similar in any case.
Security
Security is one of the key issues in measuring the performance of any system.
Our application is fully secure from unauthorized access. Only those users can access
the applications that will have an account to this application. All the accounts are
secured using encryption techniques and saved in database and end-user is not allowed
to view the database created and managed by the developers.
Quick response
The primary purpose of our web-based application is to facilitate the users for
communication as fast as possible. Response time is not just related with the
communication it also refers to, how fast and accurate your application is to response
to the end users.
Portability
Our system is a web-based application that can be operated on different
platoforms requiring only Java and Internet connection. However, the project may
further be extended to develop dedicated applications for certain platforms. An
example of it may be to develop a web application using PhoneGap that will easily port
the application to run on any platform using its browser.