Professional Documents
Culture Documents
Selamawi SDS - Edited
Selamawi SDS - Edited
<Selamawi>
Software Design Specification
Team Members
1. Anteneh Behailu
2. Essey Bisrat
3. Natnael Awoke
4. Newal Abrar
5. Salhadin Bilal
6. Yehualashet Abebe
7. Tabor Nekatibeb
Fitsum Alemu
May, 2016
<selamawi 2016
Table of Contents
List of Tables ................................................................................................................................................. ii
List of figures ................................................................................................................................................ iii
Definitions, Acronyms, Abbreviations ......................................................................................................... iv
1. Introduction ........................................................................................................................................... 1
1.1 Purpose ............................................................................................................................................... 1
1.2 General Overview ............................................................................................................................... 1
1.3 Development Methods & Contingencies ............................................................................................ 1
2. System Architecture .............................................................................................................................. 3
2.1 Subsystem decomposition ................................................................................................................... 4
2.1.1 Components ................................................................................................................................. 4
2.2 Hardware/software mapping ............................................................................................................... 6
3. Object Model............................................................................................................................................ 9
3.1 Class Diagram ...................................................................................................................................... 9
3.2 Sequence Diagram ............................................................................................................................ 10
4. Detailed Design ....................................................................................................................................... 13
References ................................................................................................................................................... 22
i|Page
<selamawi 2016
List of Tables
Table 1 user Class ........................................................................................................................................ 13
Table 2 Attribute Description...................................................................................................................... 14
Table 3 operation Description .................................................................................................................... 14
Table 4 student Class .................................................................................................................................. 14
Table 5 Attribute Description 2................................................................................................................... 15
Table 6 Method Description ....................................................................................................................... 15
Table 7 petition Class .................................................................................................................................. 16
Table 8 Attribute Description3.................................................................................................................... 17
Table 9 operation Description .................................................................................................................... 17
Table 10 Comment class ............................................................................................................................. 17
Table 11 Attirbute Description4.................................................................................................................. 18
Table 12 operational description2 .............................................................................................................. 18
Table 13 vote Class...................................................................................................................................... 18
Table 14 Attribute Description5.................................................................................................................. 19
Table 15 operational Description3.............................................................................................................. 19
Table 16 tag class ........................................................................................................................................ 19
Table 17 Attribute Description6.................................................................................................................. 20
Table 18 operational Description4.............................................................................................................. 20
Table 19 Authenticator Class ...................................................................................................................... 20
Table 20 operational Description6.............................................................................................................. 20
Table 21 Attribute Description7.................................................................................................................. 21
ii | P a g e
<selamawi 2016
List of figures
Figure 1 Deployment Diagram ...................................................................................................................... 8
Figure 2 Class Diagram .................................................................................................................................. 9
Figure 3 Sequence Diagram1 ...................................................................................................................... 10
Figure 4 Sequence Diagram2 ...................................................................................................................... 11
Figure 5 Sequence Diagram3 ...................................................................................................................... 12
iii | P a g e
<selamawi 2016
iv | P a g e
<selamawi 2016
1. Introduction
1.1 Purpose
The purpose of this SDS document is to give insight into the design of the “Selamawi” web
application. This document will contain information about the system architecture, design
considerations and so on. This is to give the reader, a better understanding of the design
process and procedure for this web application. This document is also used by our team as a
“template” in order to continue with the implementation (coding).
The implementation of “Selamawi” will take a layered and three tier architecture. Details
about the system architecture is briefly describe in chapter 2(System Architecture) of this
document.
The web application is written in PHP 5 and it will be run on Apache web server. It connects
to the database (MySQL 5.3) through the PHP PDO technology. In terms of design the aim
is to make it simple, understandable as well as easy to use.
1|Page
<selamawi 2016
Beside while implementing the system the following technologies are use:
2|Page
<selamawi 2016
2. System Architecture
This part of the SDS talks about the overall structure of applications in terms of the logical
grouping of components into separate layers that communicate with each other and with
clients.
Layers are concerned with the logical division of components and functionality, and do not
take into account the physical location of components. Layers can be located on different
tiers, or they may reside on the same tier. On our case some layers are located on the same
tiers and other on different tiers
After reviewing our functional and nonfunctional requirement, the team has decided our
application to have a hybrid architecture or layer and three tier architecture.
From our non-functional requirement the main priority given by our application is security.
As the system consists of some sensitive information about students, we have decided to use
layered approach to make sure that these information are not accessible by other than
legitimate persons, by making them wrapped by other layers making them accessible by inner
most layers.
Presentation layer. This layer contains the user oriented functionality responsible for
managing user interaction with the system, and generally consists of components that
provide a common bridge into the core business logic encapsulated in the business
layer.
Service layer. This layer is important when the application must provide services to
other applications, as well as implementing features to support clients directly
(System Administrators in our case).
3|Page
<selamawi 2016
Business layer. This layer implements the core functionality of the system, and
encapsulates the relevant business logic.
Data layer. This layer provides access to data hosted within the boundaries of the
system.
How layers and components are distributed?
In this system, layers and components are distributed across separate physical tiers as
necessarily. Where the UI processing occurs on the desktop, we prefer to deploy the business
components in a physically separate business tier for security reasons. Also the business and
data access components are deployed separately to increase performance.
Strict interaction. Each layer must interact with only the layer directly below. This rule will
enforce strict separation of concerns where each layer knows only about the layer directly
below. The benefit of this rule is that modifications to the interface of the layer will only
affect the layer directly above. This interaction also accommodate the introduction of new
functionality thereby minimizing the impact of those changes.It is also much suitable for
application that are distributed across different physical tiers like ours.
The primary goal of defining interfaces between layers in our system is largely from security
point of view. A layer should not expose internal details on which another layer could
depend. Instead, the interface to a layer should be designed to minimize dependencies by
providing a public interface that hides details of the components within the layer. The
implementation used for the interfaces is message-based. It is shortly described below.
2.1.1.1 Authentication
This component is responsible for the logging and logging out events and all other events
that is relevant to authentication. It is decomposed into these sub components:
4|Page
<selamawi 2016
Login / Logout: Allows users to log onto the web application and log out from it.
Password Manager: This allows the user to change his/her password.
Password Recovery: This allows the user to retrieve his/her password in the event
that the user forgets his login details.
2.1.1.3 Notification
This component is responsible for delivering notifications that rise form votes (up vote
and down vote) comments and reports towards a given posted petition.
2.1.1.4 Petition
This component is responsible for everything that is done regarding petitions. It is
decomposed into three sub systems.
Searching: Returns closest matching petition title with the given search query
Sorting: sorts available petition with different tags (Popular, most voted,
department……)
View about petition: This allows user to view the different status about a given
petition like its problem description, date first posted and number of up and
down votes
5|Page
<selamawi 2016
Petition History : This allows user to access the petition he has posted
previously
6|Page
<selamawi 2016
7|Page
<selamawi 2016
8|Page
<selamawi 2016
3. Object Model
3.1 Class Diagram
9|Page
<selamawi 2016
10 | P a g e
<selamawi 2016
11 | P a g e
<selamawi 2016
12 | P a g e
<selamawi 2016
4. Detailed Design
User class
User
#firstname:string
#middleName:string
#lastName:string
#role:int
#userID:int
#email:string
+role(role:int):Boolean
+getFullName():string
+getRole():int
+getUserID():int
+loggedIn():boolean
Table 1 user Class
13 | P a g e
<selamawi 2016
Condition condition
Student class
Student
-department:int
-school:int
-year:int
+createPetition(title:string,description:string,tag:Tag):boolean
+comment(petition:Petition,message:string):boolean
+vote(petition:Petition,type:int):boolean
+deletePetition(petition:Petition):boolean
+changeName(first:string,middel:string,last:string):boolean
+changeYear(year:int):boolean
+searchPetition(keyWord:string):Petition
14 | P a g e
<selamawi 2016
15 | P a g e
<selamawi 2016
Petition class
Petition
-sent:Boolean
-petitionID:int
-title:string
-description:string
-date:date
-getComments():Comment[]
-getVotes():vote[]
+addComment(message:string,commentorID:int):Boolean
+castVote(type:int,voterID:int):Boolean
+getTitle():string
+getDesc():string
+getDate():date
Table 7 petition Class
Comment class
Comment
-commentID
-message
-date
+getMessage():string
+getDate():date
+getCommentor():Student
Table 10 Comment class
17 | P a g e
<selamawi 2016
Vote class
Vote
-voteID:int
-voteType:int
+getVoter():Student
+getVoteTYpe():Student
+isType(type:int):Boolean
+getVoteID():int
Table 13 vote Class
18 | P a g e
<selamawi 2016
Tag class
Tag
-tagID:int
-tagName:string
+getName():string
+getID():int
Table 16 tag class
19 | P a g e
<selamawi 2016
Authenticator class
Authenticator
-userName:string
-password:string
+authenticate():Boolean
+encryptPassword():string
Table 19 Authenticator Class
20 | P a g e
<selamawi 2016
21 | P a g e
<selamawi 2016
References
Tutorials Point{http://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm}
[May 21,2:00PM]
Bibliography
KidusMakonnen, Tibebe Solomon, FraolChala, Eyob Solomon, DerejeMengistu
22 | P a g e