Software Architecture

advertisement

2010

Software Architecture

Volunteer Market

Evolution Group

IT University of Gothenburg

2010-03-12

2010-03-10

2010-03-13

2010-04-16

2010-04-18

2010-04-20

2010-04-21

2010-04-23

2010-4-23

2010-04-23

2010-04-23

2010-04-23

2010-04-23

Volunteer Market System

Software Architecture

Document

Date

2010-02-18

2010-02-20

Revision History

Version: 1.1

Date: 2010-04-24

Version

0.1 Introdution

Description

0.1 Architecturally Significant Goals and

Decision

Badar

Author

Azadeh

2010-02-21

2010-03-10

2010-03-11

0.1

0.2

0.2

Review

Software Architecture Views( Use

Case,Logical View)

Review

Badar

Azadeh

Badar

0.5

0.5

0.5

0.5

0.5

1.0

1.1

0.3

0.3

0.4

0.5

0.4

Process view, Deployment View

Review

Making class diagrams

Review and document correction

Badar

Azadeh

Yashar Bizhanzadeh

Navid Vajdi

Making Module decomposition diagrams

Review and change introduction , purpose

Modify layering

Yashar Bizhanzadeh

Yashar Bizhanzadeh

Yashar Bizhanzadeh

Yashar Bizhanzadeh, Problem Domain Model

Module dependency Yashar Bizhanzadeh

Logical view , subsystems , components and class diagrams

Yashar Bizhanzadeh

Layer distribution Yashar Bizhanzadeh

Final review Yashar Bizhanzadeh

Page 1 of 28

Volunteer Market System

Software Architecture

Document

2010-04-24 1.2

2010-04-24 1.2

Modify Problem Domain Model

Review

Version: 1.1

Date: 2010-04-24

Navid Vajdi

Navid Vajdi

Page 2 of 28

Volunteer Market System

Software Architecture

Document

Table of Contents

Version: 1.1

Date: 2010-04-24

Contents

1. Introduction ............................................................................................................................. 5

1.1.

Purpose ......................................................................................................................................... 5

1.2.

Software Architecture ................................................................................................................. 5

1.3.

Scope ............................................................................................................................................. 5

1.4.

Definitions, Acronyms and Abbreviations ................................................................................. 5

1.5.

Reference: .................................................................................................................................... 5

2. Architecturally Significant Goals and Decisions ....................................................................... 6

2.1. Architectural Goals ........................................................................................................................ 6

2.1.1. Supports for the Business and Functional Requirements ....................................................... 6

2.1.2. Supports for the Non-Functional Requirements ..................................................................... 6

2.2. Object-Oriented Software Development Methodology ............................................................... 8

2.3. Layering ......................................................................................................................................... 8

2.4. Server Architecture .................................................................................................................. 9

2.5. Security Architecture .................................................................................................................. 10

2.5.1. Volunteer market Application Level Security ................................................................ 10

2.5.2. Volunteer market System Level Security....................................................................... 10

2.6. VMS Technical Architecture ........................................................................................................ 10

2.6.1. Microsoft .NET Development Technologies .................................................................. 10

2.6.2.

3.

Microsoft Application Development Tools .................................................................... 10

Architectural views ................................................................................................................ 11

3.1. Use-case view .............................................................................................................................. 11

3.1.1. Create group .................................................................................................................. 11

3.1.2. Search group .................................................................................................................. 11

3.1.3.

3.1.4.

3.1.5.

3.1.6.

3.1.7.

Assign criteria to group ................................................................................................. 12

Create criteria ................................................................................................................ 12

Search criteria ................................................................................................................ 13

Assign criteria to volunteer ........................................................................................... 13

Log in ............................................................................................................................. 14

Page 3 of 28

Volunteer Market System

Software Architecture

Document

3.1.8.

Version: 1.1

Date: 2010-04-24

Organization registration............................................................................................... 14

4. Problem domain model based on use cases ......................................................................... 15

5.

5.1.

5.2.

Logical view ............................................................................................................................ 15

Introduction ........................................................................................................................... 15

Module decomposition .......................................................................................................... 15

5.3.

5.4.

5.5.

VMS subsystems .................................................................................................................... 17

Modules, Subsystems and layers ........................................................................................... 18

Classes, Components and Objects ......................................................................................... 19

6.

7.

Deployment view and layer distribution ............................................................................... 20

Process view .......................................................................................................................... 21

7.1. Volunteer .................................................................................................................................... 21

7.2. System ......................................................................................................................................... 22

7.3. Organization ................................................................................................................................ 22

7.4. Citizen .......................................................................................................................................... 22

8. Different processes and interactions in VMS ........................................................................ 22

Volunteer Registration .......................................................................................................... 22

Organization Registration ...................................................................................................... 23

User Login .............................................................................................................................. 23

Create and assign group ........................................................................................................ 24

Search/delete/edit Group .................................................................................................... 24

Create Criteria ....................................................................................................................... 25

Search/Delete/Edit Criteria ................................................................................................... 25

Assign Criteria for volunteer.................................................................................................. 26

Citizen Post Message for help ............................................................................................... 26

Volunteer Check Notification ................................................................................................ 27

Page 4 of 28

Volunteer Market System

Software Architecture

Document

1.

Introduction

Version: 1.1

Date: 2010-04-24

This Document gives a high level bird’s eye view and overall description of volunteer market system architecture. It deals with main architectural goals and decisions.

1.1.

Purpose

The purpose of this document is giving an expansive view of Volunteer market system architecture and providing the high level architectural view of the system. This document describes the architecture in different view point, you can see a modification of 4+1 architectural in this document, and we omit some view point based on the system and its functionality.

1.2.

Software Architecture

Software architecture belongs to software behavior, structure and its implementation. It has also concern with system non-functional requirements such as performance, maintenance, security,

Economics. Software architecture applies to the flow of the system by using view and use cases.

1.3.

Scope

This document is going to show the main architectural goals in some views based on different stakeholders view point in system ,also enlarge and enhance Crisis Management system to give move effective response and coverage. This architecture document tells us how to implement proposed system on large scale for help and prolongs the services of organization for humanistic aid.

1.4.

Definitions, Acronyms and Abbreviations

Term Description

VMS

SQL

IIS

ASP

Volunteer Market System

Structured Query Language

Internet Information Services

Active Server Pages

1.5.

Reference:

Amnion H. Eden and Rick Kazman “Architecture,Design,Implementation” (2003)

RUP template for architectural document

http://web.cs.wpi.edu/~gpollice/cs4233-a05/rup_sad.html

Philippe krunchten "Architecture Blueprints-The 4+1 View model of Software

Architecture "

“http://www.f5.com/glossary/application-layer-firewall.html"

"www.codeproject.com"

Comprehensive watershed management water use tracking project, Software

Architecture Document.

Page 5 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

2.

Architecturally Significant Goals and Decisions

2.1.

Architectural Goals

In this section the major software requierments and objectives with significant effects on the VMS project architecture will be discussed as architecturally significant goals. These architectural objectives and constraints will be described as software architecture requierments.

2.1.1.

Supports for the Business and Functional Requirements

The VMS software architecture should be able to support all of the business and functional requirements, and it should be able to cover all the use cases and their requirements. Most of the direct supporting for the VMS business and functional requirements will be done through the software component. These components will be designed compatible with the VMS software architecture.

2.1.2.

Supports for the Non-Functional Requirements

1.

The VMS architecture document must be able to support the non-functional requirement. In volunteer market system we have considered the quality attributes as our Non-Functional requirements. The capable quality attributes of VMS system include: a.

Availability b.

Modifiability c.

Usability d.

Security

1.

Availability

A failure occurs When Volunteer market system is unable to deliver a service with its specification .this kind of failures are observable by system’s users. Most of the times failure causes to system crash, in volunteer market system when system faces with fault we considered a method for control system availability in our architecture which is Fault detection. Exception is a method to recognized fault in system when one of the fault classes is determined. The exception handler runs in the same process that present the exception.

By using exception handler in volunteer market system unpredictable exception can be handled in the right way in order to prevent from system crashing. In volunteer market system there are a number of possible reactions to a system failure, such as: logging the failure or sending notification to volunteer or responding to criteria failure, in this situation by using exception handler we can prevent from system crashing.

In our data access layer and logic layer we should have exception handler per method within them. By this way when system faces with an unpredictable exception, it can be controlled by exception handler to prevent from system crash.

Page 6 of 28

Volunteer Market System

Software Architecture

Document

2.

Modifiability

Version: 1.1

Date: 2010-04-24

The goal of this tactic is modify the system with considering the time and budget limitations. By this way we have considered Volunteer market system as a modular system with several independent modules, also we defined volunteer market system with 3 tiers architecture pattern. By this way changing and modifying can be done in each module independently within time and cost. By this way each module or class within layers can be modified without any affect to other part of system. For more information consider layering (2-3).

3.

Usability

In order to meet this quality attribute we have been separated the presentation layer which includes the user interface from rest of the system. Since user interface needs to change often both during the development and after deployment, maintaining the user interface code separately will localize changes to it.

4.

Security

In volunteer market system the using tactic for achieving security is resisting attacks.

In volunteer market system the following tactics can be used to achieve these goals.

Authenticate users. Volunteer market system is a secure system. it means that each user who wants to be active in our system should be registered in system and received user name and password. This user could be an organization or volunteer.

By registering in data base each user will be authenticated by getting special username and password.

Authorize users. Authentication in volunteer market system means that an authenticated user has permission in order to log in to system to access or modify data or services. Regarding that volunteer market system is a role base system so each user has own specific role and according to this role has specific permission in system. For example organization as an authenticated user can log in to system and make group, assign task to group or volunteer.

 Maintain data confidentiality. The registered data should be protected from unauthorized access. For gaining this aim in volunteer market system we have provided a facility to save password in data base with encryption format, by this way the user’s password will be saved in encryption format by this way the user account will be secured from attacking. In system level security the project development team prefers to discuss about the Host security and Network security. Host security means Volunteer market system development team is going to provide a secure host which is safe against the filtering and attacking the hackers. By this way the stored data in data base will be protected against attacks.

For more information about security consider (2.5. Security Architecture)

Page 7 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

2.2.

Object-Oriented Software Development Methodology

The VMS project development team is going to develop VMS system based on the object-oriented methodology. This methodology is based on the classes, objects, data abstractions, encapsulation, messages and inheritance.

Against the procedure programming techniques, object oriented development techniques emphasize on the defining those objects not on how something constitutes procedurally. One of the most important applicability of object oriented methodology is the ability to change the existing objects or add some new ones into the software system with minimum influence on the existed objects in the system. This can be considered as a main advantage for Object oriented methodology by this ability this system is enhancement to alter or adapt to the changes that will happen unavoidably, it means that the system will be changeable more easily.

The object oriented methodology is the initial decision that has been made by the VMS project team in order to develop the VMS system. This methodology identifies the team method to analyze and design.

2.3.

Layering

VMS system architecture considered as a classic three layer application, the Layers are the same as three standard layers which consist of presentation layer, domain layer or business logic layer and data source layer. Presentation layer is about how to handle any interaction between the user and software, the domain layer contains all the logic in the system and the data source layer handle all communication with external system which carry out tasks on behalf of the application.

Presentation layer

Business Layer

Data Access Layer

Page 8 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

Data source layer in VMS system is mainly interact with database and based on the functionality we use the name data access layer to be more precise. The main reason for choosing the layer architecture is increasing the ability to provide the optimum scalable system and enable all of the tiers to be upgraded, replaced, or interchanged independently and increasing the modifiability of the system.

For example in the specific situation in volunteer market system, there might be an unavoidable change. This change appears as a functionality change, a functionality enhancement, a completely new module, or even a hardware infrastructure enhancement and so on. In any case, during the primary development or after completing the first version, changes will be occurred. Hence from the beginning, have the multitier architecture of the system designed is mandatory for our system. This methodology will help us to implement any changes to any layer with the minimum impact on the system.

Finally, debugging and maintaining the volunteer market application will be easier if our system has the organized source code into multitier. By this way developers are able to easily locate specific parts where an exception is happening or where a change needs to be implemented.

Volunteer market application will be tendentious to defects and bugs if it does not implement a wellstructured architecture. In this situation any type of upgrades or enhancements will be difficult and take a lot of time to execute.

2.4.

Server Architecture

Presentation

Layer

Bussiness Layer

Data Access Layer

The application has several dependencies:

A database. The web application has MS-SQL Server running as the backend database.

The platform and web server. The application runs on the IIS web server with the .NET platform.

 Web resources and languages. In volunteer market web application, ASPX and ASMX are web resources. They are typical web applications and web services pages, written in the C# language.

These resources help to determine patterns during a code review.

With this information in place, you are in a better position to understand the code. To reiterate, the entire application is coded in C# and is hosted on a web server running IIS.

Page 9 of 28

Volunteer Market System

Software Architecture

Document

2.5.

Security Architecture

Version: 1.1

Date: 2010-04-24

2.5.1.

Volunteer market Application Level Security

In ASP.NET there are 2 kinds of Authentications such as Windows authentication and form authentication .in volunteer market web application we prefer to use Form Authentication that in

ASP.NET can be a powerful feature. With very little code and effort, we can have a simple authentication system. The volunteer market developer team will implement the Role-based security in Forms Authentication. in this way based of the defined role for each user a username and password should be contribute to the user then with this account the user is authenticated to login to volunteer market web site. The roles and associated capabilities will be defined by the project manager and VMS project development team.

2.5.2.

Volunteer market System Level Security

In system level security the project development team prefers to discuss about the Host security and

Network security. Host security means VMS project development team is going to provide a secure host which is safe against the filtering and attacking the hackers. In order to apply the host and network security we should follow the bellowing items:

We should make sure about starting the required services on our Host machine. Run programs and services with special access permission.

Protecting shared folders: ensuring about accessing to shared folder just by specific users.

Patches and updates: we should do patches and updates regularly in order to protect OS and

OS services against vulnerabilities.

Stop unused services like Telnet or SMTP from operating system.

Virtual directory security: set strict permission on the virtual directory. For example restrict

 the top folder to read permission and give write/execution permission if it is necessary.

Network security: we prefer to use the firewall in order to close all inbound and outbound ports. The firewall configuration should be used to let only acceptable IP addresses connect to our Web Server. By firewall configuration only the valid ports keep open and all others will be disabled.

2.6.

VMS Technical Architecture

2.6.1.

Microsoft .NET Development Technologies

Microsoft .NET is the development framework of Microsoft. This framework provides all of the required tools for developing and running software based on the open technologies and protocols.

Also many of the services required by the Application Layer of the Middleware and System Software layers.

2.6.2.

Microsoft Application Development Tools

Microsoft .NET Framework 4.0

Microsoft Visual Studio® 2010

C#

ADO.NET Entity Framework

HTML

ASP.NET

Page 10 of 28

Volunteer Market System

Software Architecture

Document

3.

Architectural views

Version: 1.1

Date: 2010-04-24

3.1.

Use-case view

In this section we are going to select the set of use cases that represents the central functionality of system .the selected use cases have the main and direct effect on the main functionality of the VMS system.

3.1.1.

Create group

Organizations or administrator of system as primary actors of system should fill the creation form and submit the entered data in to the system then different groups will be created in the system to categorize the volunteer users.

Organization

Create Group

Administrator

3.1.2.

Search group

Organizations or administrator of system as primary actors should fill the search criteria and submit it, and then they are able to search between different groups in the system in order to find the desired group. Before searching, the actors should log in to system successfully. The conclusion of this use case is the result that contains all the groups which satisfied the search criteria, should display to the user.

Page 11 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

Organization

Edit Group

<<include>>

Search Group <<include>>

View Group

<<include>>

Administrator

Send Notification

3.1.3.

Assign criteria to group

Organizations or administrator of system as primary system actors should log in to the system in order to assign one or more criteria to a group, and make a relation between a group and one or more criteria.

Organization

Assign criteria to Group

Administrator

3.1.4.

Create criteria

Organizations or administrator of system as primary system actors should log in to the system then fill the criteria creation form and choose a name for criteria finally the Users submits the entered

Page 12 of 28

Volunteer Market System

Software Architecture

Document data and also they are able to create different criteria in the system which will satisfy by volunteers, or not.

Version: 1.1

Date: 2010-04-24

For example:

• The volunteer is a doctor

• The volunteer interviewed by the organization

• The volunteer passed the first aid class

<<include>>

Search Criteria

Organization

Create Criteria

Administrator

3.1.5.

Search criteria

Organizations or administrator of system as primary system actors should log in to system in order to search between different criteria in the system.

Create criteria

Organization

<<include>> search criteria

Administrator

3.1.6.

Assign criteria to volunteer

Organizations or administrator of system as primary system actors should log in to the system in order to assign one or more criteria to a volunteer, and make a relation between a Volunteer and one or more criteria.

Page 13 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

<<include>>

Search volunteer

Organization

Assign criteria to volunteer

Administrator

3.1.7.

Log in

The volunteers and organizations as primary system actors can login to the system after inserting their username and password.

Volunteer

Login

Organization

3.1.8.

Organization registration

Administrator as primary system actor is responsible to register different organizations in system.

Administrator

Organization registretion

Page 14 of 28

Volunteer Market System

Software Architecture

Document

4.

Problem domain model based on use cases

Version: 1.1

Date: 2010-04-24

5.

Logical view

5.1.

Introduction

Logical view describes the businesses and functional requirements of the system and also it describes most important classes, their structure in subsystems and service packages and arrangement of these subsystems into layers. By layering we are able to decompose the system into more handle able or manageable software components and limit inter-system dependencies for preparing a maintainable system. The most important attribute of layering design pattern system is the existence dependencies between different layers. The software component which is located inside a layer just has access to components in its own layer or in the lower layer.

5.2.

Module decomposition

Here is the main decomposition of system and its components to modules and subsystems

Page 15 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

Figure 1 module decomposition and dependency

System decompose in five different modules consist of General Module which gather all share responsibilities for all other modules and the other modules has a dependency to this share module.

The other modules consist of Organization management module, Volunteer management module,

Criteria management module and group management module

Page 16 of 28

Volunteer Market System

Software Architecture

Document

5.3.

VMS subsystems

Version: 1.1

Date: 2010-04-24

The subsystems of VMS are totally independent and they could be delivered to different customers as single independent systems or together with maximum functionality, since all modules have all three layers for supporting the independency between them.

Page 17 of 28

Volunteer Market System

Software Architecture

Document

5.4.

Modules, Subsystems and layers

Version: 1.1

Date: 2010-04-24

All module consist of all the layers, in this way they can act independently if they do not have any dependency to other modules.

Page 18 of 28

Volunteer Market System

Software Architecture

Document

5.5.

Classes, Components and Objects

Version: 1.1

Date: 2010-04-24

Here is the initial class diagrams and distribution of them between different modules based on the functionality of the component. We are going in detail in the detail design document.

Page 19 of 28

Volunteer Market System

Software Architecture

Document

6.

Deployment view and layer distribution

Version: 1.1

Date: 2010-04-24

This deployment model is finalizes by evolution team which gives a description of physical hardware and establishes connection in between. In this model volunteer must to use any web browser to access our system because it’s an online application. Request of user to access VMS first goes to application server/IIS server and this request is forward to database. Database server respond to application server with homepage of VMS and IIS server respond to user how want to access.

Volunteer/Client

PC/Web browser

* -Request to access system URL

-Accept request and return page to client

*

Web Server/

Application

Server

 «requirement»

 

Data Access Services

* -Forward client request to search required page

* -Respond with page

Database Server

VMS system consist of three layer and each layer have a possibility to deploy on client side or server side, we deploy all three layer in server side to have centralized source and application to extend the modifiability of the system, in this way updating the application take place on the central server and do not affect the users local machines. Also it have a negative side effect that every click from user side needs to have cycle from the client to server and it reduce the performance of the system .we can increase this performance by moving the presentation layer and may be some of the business layer to the client side which will increase the response time of the application but it affect the modifiability of the system in a big scale, since every client should be updated in the case of updating the system.

In conclusion, since we do not have a restricted performance issues we decide to do not use rich client user interface or distributed source code and use deploy all three layer on the central server to increase the modifiability of the system, even by reducing the performance of the system.

Page 20 of 28

Volunteer Market System

Software Architecture

Document

7.

Process view

Version: 1.1

Date: 2010-04-24

This view presents a dynamic behavior of Volunteer Market System by using a sequence diagram; a figure elaborates process modular of the system.

Actor (Volunteer) System

Organaization Citizen

If (fail)

Request For Registration

Request for Registration

Registered by System

Registered by system

Define Criteria for volunteer

Criteria followed by volunteer

Create groups of volunteers

Notify about crisis occurence

Volunteer respond to organaization about availbility

Citizen Post request to the system

Login to system

Authenication (success or Fail)

Volunteer Check posted request and respond to citizen

7.1.

Volunteer

Volunteer is actor who registers with the proposed system by filling a form of information required by the system. In respond system register volunteer by sending verification notification to him/her.

Criteria that is to be define by organization followed by volunteer, criteria defining by interviewing volunteer. Volunteer will always responds to organization for its availability. Volunteer have login

Page 21 of 28

Volunteer Market System

Software Architecture

Document

Version: 1.1

Date: 2010-04-24

(username and password) by he or she will check notification and request that are posted by ordinary citizens and also respond to them.

7.2.

System

System will register volunteer and organization and store its record in database. Whenever volunteer or organization needs to login in system, they must authenticate by system database. All criteria and groups that are assign by organization are be stored in system.

7.3.

Organization

Organization must be register with system and also assign criteria and groups for volunteers.

Organizations also check availability of volunteer by sending notification in need of any crisis.

7.4.

Citizen

Citizen post request on system and will be respond by the system.

8.

Different processes and interactions in VMS

 Volunteer Registration

Actor/Volunteer

System

Request for registration

System repond and show registraion form

Fill form with information and submit

Send login verfication notification

Store record in database

DataBase

Page 22 of 28

Volunteer Market System

Software Architecture

Document

 Organization Registration

Actor (Administrator)

System

Administrator clicks on the ‘Register organization’

System shows the registration form

Administrator fills the ‘Register organization’ form

Administrator submits the entered data

System verifies the entered data

System generate failur message

System registers the organization

System generates successful message to Administrator

Version: 1.1

Date: 2010-04-24

Else

If(System verify)

 User Login

Actor/Volunteer/Administrator

Organization

If fail

System

Request for login DataBase

Check For Authentication

Acknowledege after username and password matching

Login success or fail

Page 23 of 28

Volunteer Market System

Software Architecture

Document

 Create and assign group

Actor/Organization/Administrator System

Version: 1.1

Date: 2010-04-24

Login and select group tab show gorups page

Add gorup

Ask to add users

Add/Assing group to users

 Search/delete/edit Group

Actor/Administrator/Organization System

Save record

DataBase

Search Group search from database

DataBase get search result send request to delete or edit group

Deleted or modified respond number of group or specified group action perform in database

Page 24 of 28

Volunteer Market System

Software Architecture

Document

 Create Criteria

Actor (Administrator/

Organization)

User navigates to own home page

System shows the user’s homepage

User clicks on the create criteria link

System shows the creation form

System

Organaization fill criteria requirements

System creates the criteria

Version: 1.1

Date: 2010-04-24

 Search/Delete/Edit Criteria

Actor/Administrator/Organizatio System

Search Criteria search from database

DataBase get search result send request to delete or edit Criteria

Deleted or modified respond number of group or specified criteria action perform in database

Page 25 of 28

Volunteer Market System

Software Architecture

Document

 Assign Criteria for volunteer

Version: 1.1

Date: 2010-04-24

Actor (Administrator

/ Organization))

Search Volunteer

System returns the search result selecting the desired volunteer clicking on the assign criteria link

Search Criteria

System returns the search result selecting one or more criteria

Submitting the selected criteria system assigns selected criteria to the volunteer

System shows the successful message

System

 Citizen Post Message for help

Actor/Citizen system access online page and post messae acknowledge message post

Page 26 of 28

Volunteer Market System

Software Architecture

Document

 Volunteer Check Notification

Actor/Volunteer System

Login and Check notificaiton request for help from citizen

Version: 1.1

Date: 2010-04-24

Citizen

Send msg of conform to help

Give need detail and contact

Page 27 of 28

Download