Beruflich Dokumente
Kultur Dokumente
Submitted to:
Submitted by:
GROUP-I
Ardhita maharindra
Muskan Regmi
Nir Gurung
Sudeep Karkee
Tika Gurung
1. Introduction......................................................................................................................3
2. Architectural Decisions....................................................................................................4
2.1 Assumptions...............................................................................................................4
2.2. Goal Service Model Analysis...................................................................................5
2.3. Functional Requirements..........................................................................................6
2.4. Non Functional requirements...................................................................................7
3. Design Decisions.............................................................................................................8
3.1. Database Design.......................................................................................................8
3.2. User Interface Design..............................................................................................9
3.3. Overall Application Design....................................................................................12
3.4. Patterns...................................................................................................................13
3.4.1. Façade..............................................................................................................13
3.4.2. Observer...........................................................................................................14
3.5. Use case Diagram...................................................................................................14
3.7. Sequence Diagram..................................................................................................16
3.7.1. Register New User...................................................................................................16
3.7.3. Add Balance.............................................................................................................18
3.7.5. Create Transaction...........................................................................................20
3.7.7. View Report by Category........................................................................................22
5. Architectural Styles used in our project.........................................................................23
5.1. Classical styles........................................................................................................23
5.1.1. Event-based, Implicit Invocation.....................................................................23
5.1.2. Layered............................................................................................................24
5.1.3. Façade..............................................................................................................24
5.2. Modern styles..........................................................................................................25
5.2.1. Ajax..................................................................................................................25
5.2.2. Web based- 3 tier.............................................................................................25
5.2.3. Configurable....................................................................................................25
6. Deployment Guide.........................................................................................................26
6.1. System requirements...............................................................................................26
6.2. Provided materials..................................................................................................26
6.3. Steps to setup..........................................................................................................26
7. Team Management and Uncompleted Objectives.........................................................27
7.1. Team Management..................................................................................................27
7.2. Uncompleted Objectives.........................................................................................28
1. Introduction
Expense Tracking System is a 3-tier web based application developed by Ardhita,
Sudeep, Tika, Nir and Muskan. This application has been developed to fulfill the
requirement of the Dynamic Software Architecture course. This application has many
limitations which can be overcome in future.
The main purpose of this application is to track all the expenses made by a user. The user
can generate report of his expenses based on the transaction date of the expenses or
category of items.
This application will be deployed on separate web server and application server. And for
load balancing, it will be deployed on two web servers and application servers.
2. Architectural Decisions
2.1 Assumptions
4. When a user opens an Account the first time, the balance will be zero.
5. In current implementation of this project one transaction contains only one item
but the structure that we provide is enabling us to do further extension if we want
to apply one transaction contains many items. For the sake of simplicity and the
time constraint we decided to implement the current condition.
6. User can generate the expense report based on the transaction date or category
type.
2.2. Goal Service Model Analysis
Our group try to implements one of the SOMA technique which is the Goal Service
Model Analysis to define the services of the application.
1.1. User must have an account User has account. User can
that is maintained by system. Any manage his categories. User can
activities in the account must be enter purchases. User can view
kept and recorded. The purchases reports based on their needs.
made based on categories and
must be reported to users.
- Register user
1.1.1. User can have an account System must provide account
management o Create user
o Create account
- Manage Categories
1.1.2. User can have his own User can manage his own
categories categories that is unique for o Add category
himself
- Insert purchase
1.1.3. User can track his own User can insert transaction of
transactions
purchases. purchases.
o Insert transaction
o Insert item
- Generate Reports
1.1.4. User can have reports on System provides user with two
his previous purchases. types of reports that are by o Report by
Transaction date and category. transaction date
o Report by category
Functional requirements describe the behaviors (functions or services) of the system that
support the user’s goals, tasks or activities. We defined the functional requirements from
the services that is provided by Goal Services Model Analysis. The functional
requirements of our application are,
Users need to create a new account before they can add balance and keep record
of their purchase transactions.
2. Login User
System has to make sure that the user is the user that have authorization to access
the system so the user must be authenticated by login process.
Users need to add balance before they can put input purchases that they already
made.
Users can have their own item categories for items that they entered. The category
is personalized for users for their own using.
5. Create Transactions
User can Add item name, price, description and the purchase date in the
transaction.
6. View Reports
a. View all transaction by transaction date
The user of the system expect to be able to keep track of his/her money in
the pocket anywhere he is as long as there is an internet connection for
accessing the system. For accomplishing these objectives, the system is
created on web based architecture systems.
2. Security
a. User Authentication
For completely protecting the user’s information from outside or from the
system’s administrator itself, the system encrypt the password when
storing into the database. So even if the administrator of the system open
and retrieve the data on the database, password information of the user is
in encrypted format and cannot be stolen.
c. HTTPS
3. Performance
a. Separating the Database layer with the Business layer and Application
layer.
The architecture of the system needs to be design with clear separation
between Application Layer, Business Layer and Database Layer. To
implement this architecture we put the database in one machine separated
in one machine and the application and business layer will be put in 2
application servers. We will propose separation between web server and
application servers so the web server can do the load balancing.
The system will have the load balancing features that will divide the load
of each application servers in handling the request. Client request will be
handled by Web server and then the web server will give the load to either
one of the application server with less load.
3. Design Decisions
3.1. Database Design
After discussing with other groups, we came up with following database schema. We
agreed with the schema of separating items with transaction because we want to keep
track of the items. Our team tried to make specific categorization for specific user so
user can name his own categories, as he likes.
We have come up with the user interface design that will be used in this project.
1. Views
The views in the systems are the JSPs file that act as the view only. The JSP is the
user interface for this system that will have one controller for each JSP file.
2. Controller
We try to design this system as the ASP.net Framework where each view has its
own controller. This controller is the one who will receive inputs from the views
and give the output to be displayed in JSP. The controller also responsible for
calling the Business Manager for process the service needed.
3. Business Manager
Business Manager is the most important layer in the systems because it contains
all the main logic and business classes that makes the systems working together.
To encapsulate the system we try to implement façade class with the name
BusinessManager. This class is the only one that controller must know for
executing the system.
Data Access Layer is the components of the system that contains all the query in
the system. This layer will do the query using the DBWrapper and then return the
result to the business layer.
5. DBWrapper
3.4. Patterns
We apply design patterns in this application to enhance the functionality of the system.
3.4.1. Façade
Façade pattern is implemented in the system in the business logic layer. Controller do not
have to access to the detail of the business logic layer. It just to need to communicate with
the façade. The façade is implemented by BusinessMgr.java.
3.4.2. Observer
The transaction manager notifies any registered observer when the balance goes below
zero or in negative amount during transactions. The observer for this process is
BalanceCheck class.
The class diagram for this system is too big to be put in the document so thefollowing
link is provided to this class diagram.
http://softwarearch.pbwiki.com/f/Group1-+Class+Diagram.rar
1. Application Platform
This project will use java technology, JSF Framework in particular because JSF
support MVC Architecture so that it can be easily extended in future. The Ajax
will also be used because it enhances the performance of the application by
sending the specific portion of the data in the page to the server and keeping the
other data in the page untouched.
2. Database
This project will use SLQ Server 2005 Express Edition as this RDBMS is free on
license. SQL Server is chosen because it supports multiple connections for user
and it has better transaction support than MS Access. The other reason is many of
the group members know this Database technology very well.
3. Application Server
Apache Tomcat 6.1 will be used as a Container for this project because it is
license free and very compatible with java technology.
4. Web Server
The Apache Web Server will be used in this project. The selection of this web
server is based on the requirements and that it would be very compatible to work
with Tomcat Application Server.
5. Prototype Library
Prototype is one of javascript library for doing ajax and javascript programming.
We can implements ajax easier with this library.
The idea behind the implicit invocation in the event-based system is that instead of
invoking a procedure directly, a component can announce or broadcast one or more
events. When the event is announced the system itself invokes all of the procedures that
have been registered for the event. Thus an event announcement “implicitly” causes the
invocation of procedures in other modules.
In our project, the JSF framework handles all the events. When an event arises, the
observer of that event which is the Faces Servlet, will invoke the method in the
controllers that we have defined. We also implements the event based styles in the
transaction manager and balance checker. Balance checker will observe the transaction
manage if the balance reached below zero.
5.1.2. Layered
A layered system is organized hierarchically, each layer providing service to the layer
above it and serving as a client to the layer below. Layered systems have several desirable
properties. First, they support design based on increasing levels of abstraction. Second,
they support enhancement. Like pipelines, because each layer interacts with at most of
the layers below and above, changes to the function of one layer affects at most two other
layers. Third, they support reuse.
c. Database Layer
- SQL Server Express
5.1.3. Façade
From the architectural point of view, the façade of a system is often the most important
from a design standpoint, as it sets the tone for the rest of the system. Façade is an object
that provides a simplified interface to a larger body of code, such as a class library.
A façade can make a software library easier to use and understand, since the façade has
convenient methods for common tasks. It wraps a poorly-designed collection of APIs
with a single well-designed API.
We have used Ajax in a very small part of our project. While adding balance, we don’t
send all the information in the page to the server, we just send the balance entered by the
user and display that balance on the same page. In this system we implement AJAX by
using prototype.js.
Application server will receive request from the web server and then do
the service requested.
5.2.3. Configurable
1. Copy paste the Database schema files to SQL server data folder
2. Copy paste the war file and extract war file
3. In the extracted folder go to WEB-INF and open the web.xml file in edit mode
a. In the context-parameter parameter change the param-value to //localhost
where param-name is databaseServer
b. In the context-parameter parameter change the param-value to already
created SQL database administrator user where param-name is
databaseUser
c. In the context-parameter parameter change the param-value to created
SQL database administrator password where param-name is
databasePassword
4. Now we have to zip the extracted folder and change its extension to war
5. Deploy the war file.
7. Team Management and Uncompleted Objectives
1. Integration
a. Person in charge : Ardhita Maharindra
b. Members who do the integration part
i. Ardhita Maharindra
ii. Sudeep Karkee
iii. Tika Gurung
3. User Interface :
a. Person in charge : Muskan Regmi
b. Members who do the User Interface parts :
i. Muskan Regmi
ii. Nir Gurung
5. Documentation :
a. Person in Charge : Nir Gurung
b. Members who do the Documentation :
i. Nir Gurung
ii. Muskan Regmi
iii. Ardhita Maharindra
7.2. Uncompleted Objectives
This Money Tracking System project which is given in the Software Architecture course
is really an interesting one. We can learn so many things within just approximately 2
weeks. We learn about old and new architectural styles and try to apply these styles in our
application. Unfortunately few objectives for this project is still uncompleted due to
dateline time and the inexperienced of our team member in certain area. Following are
the objectives that are not yet implemented in this project but can be done in the future to
enhance the performance of the system.
1. Our group has not been able to separate the Tomcat with the Apache web server for
doing load balancing. Because all of us are developer in our previous jobs so neither
one of us knows about the way to implement this things. We were also very
concentrating in developing the application.
2. Our group has not implemented the SSL for the client request. The reason is the same
for the previous reasons.
We realize that both of those two objectives are the main objectives of the project and as
important as the main application itself. In order to be a good architect we should have
knowledge not only a software development skill but also another skills such as broader
knowledge about infrastructure, new technologies, new insight of research in IT areas and
last but not least a good communication skills to be able to be the bridge of the business
people with IT people.