You are on page 1of 21

Sample Software Architecture Document

Swapping Skillz n Thingz 1.0 Traderz Unlimited Team 2

CONTENT OWNERS: Kashifuddin Qazi Paulius Mikalainis Rohit Warang Salman Virk

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

SAD Revision History


Date 2009-04-16 Version 0.1 Description Significant Use-Cases : the key requirements Candidate architecture : the high level architecture of the system Initial Deployment Model TU Architecture Team TU Architecture Team TU Architecture Team 2009-04-21 0.4 Key abstractions : the key data elements used in the system Delivered TU Architecture Team TU Architecture Team Author

2009-04-18

0.2

2009-04-19

0.3

2009-04-22

1.0

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 2 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

Table of Contents
1. INTRODUCTION............................................................................................................................................................4 1.1 PURPOSE..................................................................................................................................................................4 1.2 SCOPE......................................................................................................................................................................4 1.3 DEFINITIONS, ACRONYMS AND ABBREVIATIONS.............................................................................................................5 1.4 REFERENCES.............................................................................................................................................................5 1.5 OVERVIEW................................................................................................................................................................6 2. ARCHITECTURAL REPRESENTATION ................................................................................................................6 3. ARCHITECTURAL GOALS AND CONSTRAINTS (NON-FUNCTIONAL REQUIREMENTS)....................7 3.1 TECHNICAL PLATFORM...............................................................................................................................................7 3.2 TRANSACTION...........................................................................................................................................................7 3.3 SECURITY.................................................................................................................................................................8 3.4 PERSISTENCE ............................................................................................................................................................8 3.5 RELIABILITY/AVAILABILITY (FAILOVER)........................................................................................................................8 3.6 PERFORMANCE..........................................................................................................................................................8 4. SSNT USE-CASE VIEW ................................................................................................................................................9 4.1 SSNT ACTORS.......................................................................................................................................................10 4.2 USE-CASE REALIZATIONS.........................................................................................................................................11 5. LOGICAL VIEW ..........................................................................................................................................................12 5.1 OVERVIEW..............................................................................................................................................................12 5.2 SSNT RECEIVER-INITIATOR SWAPPING SEQUENCE DIAGRAMS......................................................................................14 SSNT INITIATOR-RECEIVER (ACCEPTS) SWAPPING SEQUENCE DIAGRAM BELOW DISPLAYS HOW TO WEB USERS INITIATOR AND RECEIVER INTERACT BETWEEN EACH OTHER THROUGH WEB SERVER DURING ASSET SWAPPING PROCESS WHEN RECEIVER ACCEPTS INITIATORS REQUEST/OFFER:...........................................................................................................................................14 5.3 SSNT PROCESS DELIVERY DIAGRAM........................................................................................................................15 ..................................................................................................................................................................................15 6. SSNT PROCESS VIEW ...............................................................................................................................................17 7. SSNT DEPLOYMENT VIEW ....................................................................................................................................18 8. DATA VIEW..................................................................................................................................................................18 8.1 SSNT ENTITY RELATIONAL DIAGRAM (ERD)...........................................................................................................19 8.2 SSNT RELATIONAL SCHEMA....................................................................................................................................19 9. SIZE AND PERFORMANCE .....................................................................................................................................20 10. QUALITY ....................................................................................................................................................................21

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 3 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

1.

Introduction

This document provides a high level overview and explains the whole process of Swapping Skillz n Thingz 1.0. It explains how an online user will be able to swap assets on website and it includes the underlying architectural process. The document provides a high-level description of the goals of the architecture, the use cases support by the system and architectural styles and components that have been selected to best achieve the use cases. This framework then allows for the development of the design criteria and documents that define the technical and domain standards in detail. By analogy the architecture of a building has to take into account the use of the building, what are the people living/working in it expecting and then has to define the size, shape, structure and so forth. The architecture has a set of guiding principles as well as known criteria and constraints that shape the proposed architecture. The designers then have to develop detailed specifications not only for the selection of materials but the placement of wiring, plumbing, lighting and so forth. Finally the building is finished and populated in accordance with the vision outlined prior to the first pen touching the draftsmens paper. 1.1 Purpose The Software Architecture Document (SAD) provides a comprehensive architectural overview of Swapping Skillz n Thingz 1.0 offered by Traderz Unlimited team 2. It presents a number of different architectural views to depict different aspects of the system. It is intended to capture and convey the significant architectural decisions which have been made on the system. In order to depict the software as accurately as possible, the structure of this document is based on the 4+1 model view of architecture [KRU41].

The 4+1 View Model allows various stakeholders to find what they need in the software architecture.

1.2 Scope The scope of this SAD is to depict the architecture of the Swapping Skillz n Thingz 1.0 online application created by the company Traderz Unlimited team 2. This document describes the aspects of Swapping Skillz n Thingz 1.0 design that are considered to be architecturally significant; that is, those elements and behaviors that are most fundamental for guiding the construction of Swapping Skillz n Thingz 1.0 and for understanding this project as a whole. Stakeholders who Wednesday, June 13, 2012 Traderz Unlimited, 2012 Page 4 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

require a technical understanding of Swapping Skillz n Thingz 1.0 are encouraged to start by reading this document, then reviewing the Swapping Skillz n Thingz 1.0 UML model, and then by reviewing the source code. 1.3 Definitions, Acronyms and Abbreviations SSNT - Swapping Skillz n Thingz 1.0 PHP - Hypertext Processor scripting language MySQL relational database management system (RDBMS) HTTP Hypertext Transfer Protocol WWW World Wide Web Apache Web Server TU - Traderz Unlimited SAD - Software Architecture Document RUP - Rational Unified Process UML Unified Modeling Language Asset - An asset is any skill or good that can be offered to or requested for by users. Generic User - This is any user who is registered on the website and wants to offer or request assets. Initiator - This is a user who initiates a transaction by offering an asset or requesting for one. Receiver - This is a user who receives the offer or request made by another user. Administrator - This is a webmaster whose primary role is to maintain the website and keep it up and running. He has sound knowledge of web development and database management. He has full authority to add or remove anything from the website which he deems necessary. Private Profile - This is a collection of personal information of each user. Each user has his/her own private profile, which can be accessed only by the respective user or the administrator. The private profile contains information such as full name and address of the user, email address, area of expertise, interests, requested/offered assets etc. Public Profile - This is a collection of information of a particular user that is visible to other users. The public profile includes information such as User ID, Asset Category, Asset Title, User Ratings etc. A more comprehensive list can be obtained from the Use Cases listed in this document.

1.4 [Vision-Doc]: [UC-Doc]: [SRS-Doc]: [SDD-Doc]:

References SSNT, Vision document SSNT, Use Case document SSNT, SRS document SSNT, Software Design Document Traderz Unlimited, 2012 Page 5 of 21

Wednesday, June 13, 2012

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

[MedBiquitous]: Sample SAD, http://medbiq.org/std_specs/techguidelines/softwarearchitecture.pdf [KRU41]: The 4+1 view model of software architecture, Philippe Kruchten, November 1995, http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/2003/Pbk4p1.pdf Developing a J2EE Architecture with Rational Software Architect using the Rational Unified Process, IBM DeveloperWorks, Jean-Louis Marchaux, Mars 2005, http://www-128.ibm.com/developerworks/rational/library/05/0816_Louis/ Overview

[RUPRSA]:

1.5

In order to fully document all the aspects of the architecture, the Software Architecture Document contains the following subsections. Section 2: describes the use of each view Section 3: describes the architectural constraints of the system Section 4: describes the functional requirements with a significant impact on the architecture Section 5: describes the most important use-case realization. Section 6: describes designs concurrency aspects Section 7: describes how the system will be deployed. Section 8: describes any significant persistent element. Section 9: describes any performance issues and constraints Section 10: describes any aspects related to the quality of service (QoS) attributes

2.

Architectural Representation

This document details the architecture using the views defined in the 4+1 model [KRU41], but using the RUP naming convention. The views used to document the Traderz Unlimited application are:

Logical view
Audience: Designers. Area: Functional Requirements: describes the design's object model. Also describes the most important use-case realizations and business requirements of the system. Related Artifacts: Design model

Process view
Audience: Integrators. Area: Non-functional requirements: describes the design's concurrency and synchronization aspects. Related Artifacts: (no specific artifact).

Implementation view
Audience: Programmers. Area: Software components: describes the layers and subsystems of the application. Related Artifacts: Implementation model, components Wednesday, June 13, 2012 Traderz Unlimited, 2012 Page 6 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

Deployment view
Audience: Deployment managers. Area: Topology: describes the mapping of the software onto the hardware and shows the system's distributed aspects. Describes potential deployment structures, by including known and anticipated deployment scenarios in the architecture we allow the implementers to make certain assumptions on network performance, system interaction and so forth. Related Artifacts: Deployment model.

Use Case view


Audience: all the stakeholders of the system, including the end-users. Area: describes the set of scenarios and/or use cases that represent some significant, central functionality of the system. Describes the actors and use cases for the system, this view presents the needs of the user and is elaborated further at the design level to describe discrete flows and constraints in more detail. This domain vocabulary is independent of any processing model or representational syntax (i.e. XML). Related Artifacts : Use-Case Model, Use-Case documents

Data view (optional)


Audience: Data specialists, Database administrators Area: Persistence: describes the architecturally significant persistent elements in the data model Related Artifacts: Data model.

3.

Architectural Goals and Constraints (non-functional requirements)

This section describes the software requirements and objectives that have some significant impact on the architecture 3.1 Technical Platform

Server side SSNT will be hosted on one of NJITs AFS Apache web servers and connecting to one of the schools MySQL Database servers. The web server is listening on the web standard port 80. Web server will accept all requests from the clients and forward them to the specific SSNT server hosting location. All communication with client has to comply with public HTTP, TCP/IP communication protocol standards. Client Side Clients will be able to access SSKNT only on WWW. Clients are requiring using a modern web browser such as Mozilla Firefox 1.5, Internet Explorer 6 or Safari 1.0. The target operating systems are Windows XP, Vista, Mac OS X Leopard and Linux. 3.2 Transaction

SSNT online application is transactional, leveraging the outside payment utilities such as PayPal. Wednesday, June 13, 2012 Traderz Unlimited, 2012 Page 7 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

3.3

Security

The HTTP protocol will be used to facilitate communications between the client and server. Although basic password authentication and role based security mechanisms will be used to protect SSNT from unauthorized access, functionality such as money transactions are assumed to be sufficiently protected under the existing security policies applied by NJIT. The system must be secured, so that a customer can make online payments. The application must implement basic security behaviors: Authentication: Login using a user name and a password Authorization: as per our software specifications, web administrator will have enhanced privileges to perform tasks that general user would not be authorized.

For internet access, the following requirements are mandatory: 3.4 Confidentiality: sensitive data must be encrypted (credit card payments) Data integrity : Data sent across the network cannot be modified by a tier Auditing: Every sensitive action can be logged Persistence

Data persistence will be addressed using a relational database. 3.5 Reliability/Availability (failover)

The scalability and reliability of the system is a key requirement as it pertain the nature of this system. The server space availability has to be responsive to the increasing data and traffic volumes. The candidate architecture must ensure failover capabilities. Reliability/Availability will be addressed through the server platform. Targeted availability is 20/7: 20 hours a day, 7 days a week The time left (4 hours) is reserved for any maintenance activities. In the event of the server failing due to an error with one of these applications might result in SSNT becoming temporarily unavailable. The expectation for performance is that if any operation will take more than 15 seconds to execute, it should execute as a background operation, freeing the user to perform other tasks. The user should be made aware of all operations with visual feedback. 3.6 Performance

The payment process (credit card authorization and confirmation) must be under 10 seconds on Apache Web server.

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 8 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

4.

SSNT Use-Case View

This is a list of use cases from the use-case model that represent significant, central functionality of the final system. The use-cases with a significant impact on the architecture are [UC-Doc]: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Create an Account View Private Profile Edit Personal Information Post Assets Search for Assets View Public Profile Start Automatic Search Initiate Request/Offer Receiver Accep Receiver Denie Initiator Accept Initiator Denies Leave Feedback Post Success Story Log Off Edit Profile Delete Profile Edit Success Story Delete Success Story

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 9 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0) 4.1 SSNT Actors

Last Updated on 6/13/2012

As described in the actors correspondence diagram below, web user could be one of three types: 1. Web Administrator has enhanced privileges to edit or delete private profiles as well as success stories. 2. Web User Initiator could as well be a receiver depending if he or she is initiating or receiving an offer/request but not both at the same instance. Initiator is a user who initiates a request or an offer. 3. Web User Receiver could as well be an initiator depending if he or she is initiating or receiving an offer/request but not both at the same instance. Receiver is a user who receives requests from initiator for a request or an offer. System Apache Web Server is the third type of actor and is the system itself. It handles all the physical and logical process of the software.

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 10 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

4.2 Use-Case Realizations Use case functionality diagram below describes how design elements provide the functionalities identified in the significant use-cases. In this diagram generic user is assumed to be the same person as initiator or receiver. Use cases are displayed as functionalities for the system. Functionality may enclose more than one use-case. It is assumed that signin is default functionality and it has to be implemented before any further functionality will be enabled.

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 11 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

5.

Logical View
5.1 Overview

SSNT is divided into layers based on the N-tier architecture [KRU41].

The layering model of the SSNT online application is based on a responsibility layering strategy that associates each layer with a particular responsibility. This strategy has been chosen because it isolates various system responsibilities from one another, so that it improves both system development and maintenance.

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 12 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

Each layers specific responsibilities are as follow [RUPRSA]: The presentation layer deals with the presentation logic and the pages rendering on SSNT web site. The Presentation layer contains all the components needed to allow interactions with an end-user. It encompasses the user interface. Snapshots of the prototype view are located in Software Design Document [SDD-Doc]. The control layer manages the access to the domain layer. Control layer contains all the components used to access the domain layer or directly the resource layer when this is appropriate. The resource layer (integration layer) is responsible for the access to the enterprise information system (databases or other sources of information). Resource layer contains the components needed to enable communication between the business tier and the enterprise information systems: MySQL Database and PayPal service. Refer to data view. The domain layer is related to the business logic and manages the accesses to the resource layer. The Domain layer contains all the components related to the business logic. It gathers all the subsystems that meet the needs of a particular business domain. It also contains the business object model which is specified in design document. The Common Elements layer gathers the common objects reused through all the layers like users and assets. Common Element layer contains the components re-used within several layers and may be determined in the future.

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 13 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0) 5.2

Last Updated on 6/13/2012

SSNT Receiver-Initiator Swapping Sequence Diagrams

SSNT Initiator-Receiver (accepts) Swapping Sequence Diagram below displays how to web users Initiator and Receiver interact between each other through web server during asset swapping process when Receiver accepts Initiators request/offer: 1. Initiator initiates a request/offer 2. Server Updates Receivers private profile 3. Receiver accepts request/offer and pays $1 4. Server withdraws money from receiver 5. Server updates Receivers private profile 6. Server updates Initiators private profile 7. Initiator accepts and pays $1 8. Server withdraws money from Receiver 9. Server swaps Initiators contacts with Receiver 10. Server swaps Receivers contacts with Initiator 11. Initiator leaves feedback 12. Server updates Receivers private profile 13. Receiver leaves feedback 14. Server updates Initiators private profile

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 14 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0) 5.3 SSNT Process Delivery Diagram

Last Updated on 6/13/2012

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 15 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012 SSNTs process delivery diagram displays not only the sequence of functionality, interaction between events and server responses but also explains the logical paths. Lets take, for example, the First Page view and call the Sign-in function in it. This is how this example would be explained: 1. 2. 3. 4. 5. 6. User fills in the form on the first page clicks on sign-in and sending data to the server Server checks the validity of data and response with invalid data by redirecting to Reset Password page. User fills in a form on this page and clicks Reset by sending data to the server. Server validates the data and returns with valid data by redirecting user to the First Page for Sign in again. User, this time around, enters correct information and clicks to sign in Server validates the information and redirects user to the private profile. END

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 16 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

6.

SSNT Process View

Theres only one process to take into account. The PHP will automatically handle threads which are instances of this process. The diagram below describes the process circles. There are two process circles: User web server circle and web server-database circle. Request message from a user first will travel to a web server. Web server first evaluated a request according to the SSNT business rules/requirements and determines if a connection to a database needs to be established. If connection is necessary, that is completed first and only then user is returned with response from a web server.

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 17 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

7.

SSNT Deployment View

Global Overview SSNTs deployment has not been considered yet. All future code and implementation details will be included in this section. Diagram below shows that all of the PHP code will have a physical location on the Apaches web server and all of the data entities and relationships will be physically located on the MySQL database server.

Client

Client

Client

Client

Internet

Firewall

LAN/WAN Web Server


8. Data View
Traderz Unlimited, 2012 Page 18 of 21

Database Server

Wednesday, June 13, 2012

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0) 8.1 SSNT Entity Relational Diagram (ERD)

Last Updated on 6/13/2012

Entities (rectangles): User, Asset, Message, Success Story Relationships (rumbas): Swap, Request, Offer, Gives Feedback, Post (Story), Post (message) Initiator may swap assets with many Receivers Receiver may swap assets with many Initiators User may request/offer many Assets Asset must belong to only one User User may post many Messages Message must belong to only one User User may post many success stories Success Story must belong to one user Attributes are displayed in long ovals.

8.2

SSNT Relational Schema

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 19 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0) User


userName firstName secondName DOB sex email password address

Last Updated on 6/13/2012

city

state

zip

country

interests

Asset
assetId userName title category description offer status

Swap
swapId assetId initiator receiver swapTime requested accepted confirmed

Success Story
storyId userName description

Message
messageID userNameTo userNameFrom messageText postTime

Feedback
swapId userNameFrom userNameTo rating comments

9.

Size and Performance

Volumes: Estimated online orders : 100 a day, with peaks in the evening SSNT registered individual customer : about 150 TU corporate customers : about 100

Performance: Time to process and online payment (credit card validation + confirmation) : less that 10 seconds required

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 20 of 21

Traders Unlimited: Swapping Skills n' Things 1.0

Sample Software Architecture Document (version 1.0)

Last Updated on 6/13/2012

10.

Quality

As far as SSNT is concerned, the following quality goals have been identified: Scalability: Portability: Security: Description : Authentication and authorization mechanisms Solution : SSNT native security mechanisms will be reused Description : Ability to be reused in another environment Solution : The system me be fully SSNT compliant and thus can be deploy onto any NJIT web server Description : Systems reaction when user demands increase Solution : SSNT application servers support several workload management techniques

Reliability, Availability: Description : Transparent failover mechanism, mean-time-between-failure Solution : : SSNT application server supports load balancing through clusters

Wednesday, June 13, 2012

Traderz Unlimited, 2012

Page 21 of 21