0% found this document useful (0 votes)
52 views28 pages

Amir Mustefa Beimnet Zewdu Bereket Heramo Beshir Dekebo: Advisor: Mr. Fitsum Alemu May 2018

This document provides a software design specification for a purchasing system for Kurtu International Plc. It includes: 1. An overview of the system's purpose, general functionality, and development approach. 2. Models of the system design including subsystem decomposition, hardware/software mapping, class diagrams, sequence diagrams, and state chart diagrams. 3. Detailed class descriptions for the main classes in the system - UserData, RecordData, MessageData, AccountController, RecordController, and MessageController. 4. Tables defining attributes, operations, and relationships between the classes that will form the basis of the purchasing system.
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)
52 views28 pages

Amir Mustefa Beimnet Zewdu Bereket Heramo Beshir Dekebo: Advisor: Mr. Fitsum Alemu May 2018

This document provides a software design specification for a purchasing system for Kurtu International Plc. It includes: 1. An overview of the system's purpose, general functionality, and development approach. 2. Models of the system design including subsystem decomposition, hardware/software mapping, class diagrams, sequence diagrams, and state chart diagrams. 3. Detailed class descriptions for the main classes in the system - UserData, RecordData, MessageData, AccountController, RecordController, and MessageController. 4. Tables defining attributes, operations, and relationships between the classes that will form the basis of the purchasing system.
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/ 28

Addis Ababa Institute of Technology

Center of Information Technology and Scientific


Computing
Department of Software Eng.
<Purchasing System for Kurtu Int. Plc.>
Software Design Specification
Team Members:
Amir Mustefa
Beimnet Zewdu
Bereket Heramo
Beshir Dekebo

Advisor: Mr. Fitsum Alemu


May 2018
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

Table of Contents
1. Introduction ................................................................................................................................. 1

1.1. Purpose ................................................................................................................................. 1


1.2. General Overview ................................................................................................................ 1
1.3. Development Methods and Contingencies ........................................................................... 2
2. System Design Model ................................................................................................................. 3

2.1. Subsystem decomposition .................................................................................................... 3


2.2. Hardware/Software Mapping ............................................................................................... 4
3. Object Model .............................................................................................................................. 5

3.1. Class Diagram ...................................................................................................................... 5


3.2. Sequence Diagram................................................................................................................ 6
3.2.1. Add Record: UC-02 ....................................................................................................... 6
3.2.2. Attach Receipt: UC-07 .................................................................................................. 7
3.2.3. Login: UC-03 ................................................................................................................. 8
3.2.4. Registration: UC-01 ....................................................................................................... 9
3.2.5. Change Remark: UC-04 .............................................................................................. 10
3.2.6. Delete Record: UC-08 ................................................................................................. 11
3.2.7. View Record: UC-05 ................................................................................................... 12
3.2.8. Send Message: UC-06 ................................................................................................. 13
3.3. State Chart Diagram ........................................................................................................... 14
4. Detailed Design ......................................................................................................................... 14

4.1. UserData Class ................................................................................................................... 14


4.2. RecordData Class ............................................................................................................... 16
4.3. MessageData Class ............................................................................................................. 18
4.4. AccountController Class .................................................................................................... 19
4.5. RecordController Class ...................................................................................................... 20
4.6. MessageController Class .................................................................................................... 22
Reference ...................................................................................................................................... 23

i|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

List of Tables

Table 1 Definitions, Acronyms, and Abbreviations ...................................................................... iv


Table 2 UserData Class ................................................................................................................. 14
Table 3 Attribute Description for UserData Class ........................................................................ 15
Table 4 Operation Description for UserData Class ...................................................................... 15
Table 5 RecordData Class ............................................................................................................. 16
Table 6 Attribute Description for RecordData Class .................................................................... 16
Table 7 Operation Description for RecordData Class .................................................................. 18
Table 8 MessageData Class .......................................................................................................... 18
Table 9 Attribute Description for MessageData class .................................................................. 19
Table 10 Operation Description for MessageData Class .............................................................. 19
Table 11 AccountController Class ................................................................................................ 19
Table 12 Operation Description for AccountController Class ..................................................... 20
Table 13 RecordController Class .................................................................................................. 20
Table 15 Operation Description for RecordController Class ....................................................... 21
Table 16 MessageController Class ............................................................................................... 22
Table 18 Operation Description for MessageController Class ..................................................... 22

ii | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

List of Figures

Figure 1 Context Diagram .............................................................................................................. 2


Figure 2 Component Diagram ........................................................................................................ 3
Figure 3 Deployment Diagram ....................................................................................................... 4
Figure 4 Class Diagram .................................................................................................................. 5
Figure 5 Add Record Sequence Diagram ....................................................................................... 6
Figure 6 Attach Receipt Sequence Diagram ................................................................................... 7
Figure 7 Login Sequence Diagram ................................................................................................. 8
Figure 8 Registration Sequence Diagram ....................................................................................... 9
Figure 9 Change Remark Sequence Diagram ............................................................................... 10
Figure 10 Delete Record Sequence Diagram ................................................................................ 11
Figure 11 View Record Sequence Diagram.................................................................................. 12
Figure 12 Send Message Sequence Diagram ................................................................................ 13
Figure 13 State Chart Diagram – RecordData Object .................................................................. 14

iii | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

Definitions, Acronyms, and Abbreviations


Table 1 Definitions, Acronyms, and Abbreviations

Terms Definitions, Acronyms, and


Abbreviations
App Application
CSS Cascading Style Sheet - A style stylesheet used for
describing the look and formatting of a document
written in a markup language.
Employees Users of the system who register items related to
purchasing.
HTML5 Hyper Text Markup Language - The fifth major
revision of the Hypertext Markup Language
(HTML).
HTTP Hyper Text Transfer Protocol - An application
protocol that is the foundation of data
communication for the World Wide Web.
JavaScript A computer programming language commonly
used to create interactive effects within web
browsers.
Model-View-Controller Architecture An approach to graphical user interface design that
allowed for multiple presentations of an object and
separate styles of interaction with each of these
presentations.
MySQL A software used to manipulate database queries and
commands
Purchasing manager User of the system who reviews and decides on
purchased and pending items.
PS Purchasing System - A system through which
enterprises buy goods.
SDS
(Software Design Specification) A description of a software design for a system to be
developed

UC Use Case - A written description of the user's


interaction with the software product to accomplish
a goal.

iv | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

1. Introduction
1.1. Purpose
The purpose of System Design document is to translate the business requirements and business
processes into a technical design that will be used to develop the application.

1.2. General Overview


The system that is going to be designed is web-based. It is supposed to help Kurtu Int. Plc. in
saving, retrieving, and manipulating data about the purchases made by the company.

The implementation of the system will take a Model-View-Controller architecture. MVC is a


methodology for successful relation of the user interface to underlying data models. It separates
application into three components model, view, and controller.

The first reason of choosing MVC system architecture is the aim of providing different views from
a single model. In our case, Record Data Model have three different views ‘View Record’, ‘Change
Remark’, and ‘Attach Receipt’.

The second reason of choosing MVC architectural model is the aim of fulfilling the key element
of the system’s nonfunctional requirements, which is securing employees and manager
information and account credentials (UserData model). As MVC provides a better foundation for
implementing security components at the interface of each level.

Another reason of choosing MVC is its modification without affecting the entire model nature.
Since the system is a web application at some point of development or after deployment Kurtu Int.
may require a change of user interface. When this happen, we do not have to worry about the
Model, we can only change the view without affecting the model. Because in MVC system
architecture the model and the view are isolated.

In addition to this, we are left with a very limited period to complete the project. Therefore, MVC’s
rapid and parallel development nature help us to facilitate the development process and to handle
the partitioning of the tasks among the members based on our will and ability.

1|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

Figure 1 Context Diagram

1.3. Development Methods and Contingencies


The system uses the Object-Oriented Software Development Method (OOSD) with MVC
architecture in the development process. OOSD is a practical method of developing a software
system, which focuses on the objects of a problem throughout development. OOSD's focus on
objects early in the development, with attention to creating a picture of the system that is
modifiable, reusable, reliable, and understandable.

The system is expected to be implemented using the latest and powerful web markup and scripting
languages.

 Front-end – HTML5, CSS3, JavaScript


 Front-end frameworks – Bootstrap, JQuery
 Back-end – PHP5
 Database – MySQL
 Web server – Apache

2|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

2. System Design Model


2.1. Subsystem decomposition

Figure 2 Component Diagram

3|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

2.2. Hardware/Software Mapping

HTTP

PDO

Figure 3 Deployment Diagram

4|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3. Object Model
3.1. Class Diagram

Figure 4 Class Diagram

5|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2. Sequence Diagram


3.2.1. Add Record: UC-02

Figure 5 Add Record Sequence Diagram

6|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.2. Attach Receipt: UC-07

Figure 6 Attach Receipt Sequence Diagram

7|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.3. Login: UC-03

Figure 7 Login Sequence Diagram

8|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.4. Registration: UC-01

Figure 8 Registration Sequence Diagram

9|Page
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.5. Change Remark: UC-04

Figure 9 Change Remark Sequence Diagram

10 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.6. Delete Record: UC-08

Figure 10 Delete Record Sequence Diagram

11 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.7. View Record: UC-05

Figure 11 View Record Sequence Diagram

12 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.2.8. Send Message: UC-06

Figure 12 Send Message Sequence Diagram

13 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

3.3. State Chart Diagram

Figure 13 State Chart Diagram – RecordData Object

4. Detailed Design
4.1. UserData Class
Table 2 UserData Class

UserData

-firstName: String

-lastName: String

-companyName: String

-userName: String

-password: String

+register(): void

+verifyEmployeeAccount(): void

14 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

+verifyAdminAccount(): void

Attribute Description for UserData Class


Table 3 Attribute Description for UserData Class

Attribute Type Visibility Invariant

userName String private It should contain characters and integers and should
be unique.

firstName String private firstName <> NULL and Its length should be greater
than 6 and shouldn’t contain special characters and
integers

lastName String private lastName <> NULL and Its length should be greater
than 6 and shouldn’t contain special characters and
integers

password String private It’s length should be greater than 6

companyName String private companyName <> NULL and must contain company
name and shouldn’t contain special characters and
integers

Operation Description for UserData Class

Table 4 Operation Description for UserData Class

Operation Visibility Return Argument Pre- Post-


type condition condition

register public void userName User not User


registered to registered to
firstName the database the database
lastName

password

companyName

15 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

verifyEmployeeAccount public void username Account not Account


verified verified
password

verifyAdminAccount public void username Account not Account


verified verified
password

4.2. RecordData Class


Table 5 RecordData Class

RecordData

-materialName: String
-materialType: String
-requestNumber: int
-unit: String
-quantity: int
-price: double
-totalPrice: double
-requestDate: String
-purchaseDate: String
-status: String
-shop: String
-address: String
-phoneNumber: int
+addRecord(): void

+viewRecord(): String[]

+deleteRecord(): void

+changeRemark(): void

+attachReceipt(): void

Attribute Description for RecordData Class

Table 6 Attribute Description for RecordData Class

Attribute Type Visibility Invariant

materialName String private materialName <>


NULL and It
shouldn’t contain

16 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

special characters and


integer.

materialType String private materialType <>


NULL and It
shouldn’t contain
special characters and
integer.

requestNumber int private It shouldn’t contain


characters.

unit String private It shouldn’t contain


special characters and
integer.

quantity int private It shouldn’t contain


characters.

price float private It shouldn’t contain


characters.

totalPrice float private It shouldn’t contain


characters.

requestDate String private Must be in date


format(D,M,Y)

purchaseDate String private Must be in date


format(D,M,Y)

status String private It shouldn’t contain


special characters and
integer.

shop String private It shouldn’t contain


special characters and
integer.

address String private It shouldn’t contain


special characters and
integer.

17 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

phoneNumber int private It shouldn’t contain


characters.

Operation Description for RecordData Class


Table 7 Operation Description for RecordData Class

Operation Visibility Return Argument Pre-condition Post


type condition

addRecord public void record Record not Record


added to the added to the
database database

viewRecord public String[] sql Record not Record


retrieved form retrieved for
the database the database

deleteRecord public void record Record not Record


deleted from deleted from
the database the database

changeRemark public void record Record in the Record in the


database not database
changed changed

attachReceipt public void record Receipt not Receipt


added to the added to the
receiptPath database database

4.3. MessageData Class


Table 8 MessageData Class

MessageData

-name: String

-message: String

+addMessage(): void

+retreiveMessage(): String[]

18 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

Attribute Description for MessageData Class

Table 9 Attribute Description for MessageData class

Attribute Type Visibility Invariant

name String private name<> NULL and it


shouldn’t contain
special characters and
integer.

message String private message<> NULL

Operation Description for MessageData Class


Table 10 Operation Description for MessageData Class

Operation Visibility Return Argument Pre-condition Post


Type condition

addMessage public void name Message not Message


added to the added to the
message database database

retrieveMessage Public String[] - Message not Message


retrieved retrieved
from the from the
database database

4.4. AccountController Class


Table 11 AccountController Class

AccountController

+registerMember(): void

+signAdminIn(): void

+signEmployeeIn(): void

19 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

Operation Description for AccountController Class


Table 12 Operation Description for AccountController Class

Operation Visibility Return Argument Precondition Postcondition


Type

registerMember public String userName User User


information information
firstName not sent to sent to the
lastName the UserData UserData
object object
password

companyName

signAdminIn public String userName User User


credentials credentials
password not sent to sent to the
the UserData UserData
object object

signEmployeeIn public String userName User User


credentials credentials
password not sent to sent to the
the UserData UserData
object object

4.5. RecordController Class


Table 13 RecordController Class

RecordController

+getRecord(): String[]

+getDoneRecord(): String[]

+getPendingRecord(): String[]

+saveFile(): void

+saveRecord(): void

20 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

+changeRecord(): void

+removeRecord(): void

Operation Description for RecordController Class


Table 14 Operation Description for RecordController Class

Operation visibility Return type Argument Precondition Postconditon

getRecord public String[] - Request for Request for


all records all records
not sent to sent to the
the RecordData
RecordData object
object

getPendingRecord public String[] sql Request for Request for


pending pending
records not records sent
sent to the to the
RecordData RecordData
object object

getDoneRecord public String[] sql Request for Request for


done records done records
not sent to sent to the
the RecordData
RecordData object
object

saveFile public void record File not sent File sent to


to the the
receiptPath RecordData RecordData
object object

saveRecord public void record Records to Records to


be saved not be save sent
sent to the to the
RecordData RecordData
object object

21 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

changeRecord public void record Record to be Record to be


changed not changed sent
sent to the to the
RecordData RecordData
object object

removeRecord public void record Record to be Record to be


removed not removed sent
sent to the to the
RecordData RecordData
object object

4.6. MessageController Class


Table 15 MessageController Class

MessageController

+getMessage(): String[]

+sendMessage(): void

Operation Description for MessageController Class


Table 16 Operation Description for MessageController Class

Operation Visibility Return Type Argument Precondition Postcondition

getMessage public String[] - Request for Request for


messages not messages
sent to the sent to the
MessageData MessageData
object object

sendMessage public void name Message not Message sent


sent to the to the
message MessageData MessageData
object object

22 | P a g e
[SOFTWARE DESIGN SPECIFICATION] MAY 2018

Reference
1. VisualParadigm. (2011, Nov 13). 5 Steps to Draw a Sequence Diagram [video file].
Retrieved from https://www.youtube.com/watch?v=18_kVlQMavE. Apr 26, 2018.
2. Derek Banas. (2012, Nov 12). UML 2 Sequence Diagrams [video file]. Retrieved from
https://www.youtube.com/watch?v=cxG-qWthxt4. Apr 28, 2018.
3. Derek Banas. (2011, Nov 26). UML 2 State Machine Diagrams [video file]. Retrieved
from https://www.youtube.com/watch?v=_6TFVzBW7oo&t=628s. Apr 26, 2018.
4. Object-Oriented Software Development Method,
https://www.researchgate.net/publication/234816065_The_Object-
Oriented_Software_Development_Method_A_Practical_Approach_to_Object-
Oriented_Development, May 2, 2018.
5. Somerville, Ian F. 2011. Software Engineering. 9th ed. Boston. Address Wesley.

23 | P a g e

You might also like