2010
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
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
Version: 1.1
Date: 2010-04-24
Page 3 of 28
Volunteer Market System
Software Architecture
Document
Version: 1.1
Date: 2010-04-24
Page 4 of 28
Volunteer Market System
Software Architecture
Document
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.
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.
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.
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.
Term Description
VMS
SQL
IIS
ASP
Volunteer Market System
Structured Query Language
Internet Information Services
Active Server Pages
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.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
Version: 1.1
Date: 2010-04-24
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
Version: 1.1
Date: 2010-04-24
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.
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
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
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
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
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
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
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.
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.
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.
Citizen post request on system and will be respond by the system.
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