Download UUIS and IUFA: Software Engineering Project Document and more Exams Design in PDF only on Docsity!
Software Design Document, Testing, Deployment
And Configuration Management,
And User Manual of the UUIS
-- A Team 4 COMP5541-W10 Project Approach
Computer Science & Software Engineering
Team Members
Requirements Analyst Kanj Sobh
System Architect Deyvisson Oliveira
Development Lead Bing Liu
UI Specialist Max Mayantz
Quality Assurance Specialist Yu Ming Zhang
Database Administrator Ali Alhazmi
System Administrator Robin de Bled
Project Manager Abdulrahman Al-Sharawi
System Environment
Development: Netbeans 6.8 + Grails 1.2.
Unit Test: Junit
Diagrams: Visio 2007 / ConceptDraw Pro (Mac)
Database Management: MySQL Workench:
Database: MySQL 5
Server: Windows Server 2008
Server: Apache Tomcat 6
Revision control: Sourceforge Subversion -
https://comp5541-team4.svn.sourceforge.net/svnroot/comp5541-team
Discussion: Google groupss
Design Approach
The design approach used here is based on the following:
Data Flow Design
The data flow of the UUIS is Internet-based. Hibernate technologies will be utilized to
retrieve and cache data from MySQL database to be displayed by the Web portal user
interface. Hibernate would also allow updating the data where applicable.
Architecture Design
The Customer Support System application will follow a Four Layer Architecture so that
the objects in the system as a whole can be organized to best separate concerns and
prepare for distribution and reuse. A principal advantage to this design is the relative
stability of the components as seen by the applications developer. Implementations may
change considerably to enhance the performance or in response to changes in the
architecture. These changes are less likely to cause major impact to the applications’
programs.
UI Design
Wire Frames are used for UI design. Wire frames are an effective tool for collecting and
presenting functionality, navigation, and content of an application or web site.
Annotations or notes attached to elements or widgets on the wire frame help to
communicate specific functions.
Screen Mockup – Request Figure 1. 1
Some Screen Shoots.
Screen Mockup – Assets Figure 1.
- 1 INTRODUCTION
- DOCUMENT SCOPE AND PURPOSE
- TARGET AUDIENCE
- ACRONYMS/ABBREVIATIONS
- REFERENCE DOCUMENTS
- SYSTEM ENVIRONMENT................................................................................................................................
- DESIGN APPROACH
- DATA FLOW DESIGN
- ARCHITECTURE DESIGN
- UI DESIGN
- DESIGN PATTERNS
- UUIS HIGH LEVEL VIEW
- 2 SYSTEM DESIGN CONSIDERATIONS
- WEB-SITE DIRECTORIES
- EXCEPTION HANDLING
- 3 MODULES
- SEARCH
- GENERAL SEARCH
- ADVANCED SEARCH...................................................................................................................................
- INVENTORY
- ASSETS
- LOCATIONS..............................................................................................................................................
- REQUESTS
- REPORTS.................................................................................................................................................
- BULKLOAD
- SECURITY
- UNIVERSITY STUCTURE
- USERS & PERMISSIONS
- AUDIT LOG
- AUDITING
- 4 ACTIVITY DIAGRAM
- 5 ENTITY DIAGRAM
- 6 CLASS DIAGRAM
- DOMAIN CLASSES
- CONTROLLERS
- SERVICES
- 7 SEQUENCE DIAGRAMS
- LOGIN
- LOGOUT
- LIST ASSET
- CREATE ASSET..........................................................................................................................................
- EDIT ASSET..............................................................................................................................................
- SHOW ASSET
- LIST LOCATION
- CREATE LOCATION
- EDIT LOCATION
- SHOW LOCATION
- LIST REQUEST
- CREATE REQUEST......................................................................................................................................
- SHOW REQUEST
- APPROVE REQUEST
- REJECT REQUEST
- EXECUTE REQUEST
- NOT EXECUTE REQUEST
- BULK INSERT............................................................................................................................................
- BULK UPDATE
- BASIC SEARCH
- ADVANCED SEARCH...................................................................................................................................
- 8 DATA DICTIONARY
- 9 TIME LOGS
- 10 REFERENCES
- APPENDIX I: USER GUILD DOCUMENT
- SYSTEM REQUIREMENTS.............................................................................................................................
- ACCESS TO THE WEB APPLICATION.................................................................................................................
- LOGIN
- APPLICATION MAIN PAGE
- APPROVING A REQUEST
- REJECTING REQUEST..................................................................................................................................
- EXECUTED REQUEST FORM WAITING FOR EXECUTION LIST
- CREATING A NEW BASIC REQUEST NEW REQUEST
- CREATING A NEW ADVANCED REQUEST
- DISPLAY ASSETS LIST
- CREATE NEW ASSET
- CREATE NEW ASSET TYPE (ONLY IT ADMINISTRATOR)
- DISPLAYING ASSET PROPERTIES
- CHANGE ASSET PROPERTIES
- BULK LOAD
- DISPLAY LOCATION LIST
- CREATE NEW LOCATION
- CREATE NEW LOCATION TYPE (IT GROUP ONLY)
- DISPLAYING LOCATION PROPERTIES
- CHANGE LOCATION PROPERTIES
- DELETE LOCATION (IT GROUP ONLY)
- DISPLAYING UNIVERSITY STRUCTURE
- ADDING NEW ENTITY TO UNIVERSITY STRUCTURE (IT GROUP ONLY)
- SEARCH
- DISPLAYING REPORTS
- REQUEST REPORT
- ASSETS BY LOCATION REPORT
- DISPLAYING USERS LIST (IT GROUP ONLY)
- CREATE A NEW USER (IT GROUP ONLY)
- DISPLAY USER PROPERTIES (IT GROUP ONLY)
- MODIFYING USER PROPERTIES (IT GROUP ONLY)..............................................................................................
- DELETE USER (IT GROUP ONLY)....................................................................................................................
- DISPLAYING THE LIST OF ROLES LIST (IT GROUP ONLY)
- CREATE A NEW ROLE (IT GROUP ONLY).........................................................................................................
- DISPLAY LIST OF USERS BY ROLE (IT GROUP ONLY)
- MODIFY ROLE PROPERTIES (IT GROUP ONLY)
- DELETE ROLE (IT GROUP ONLY)
- DISPLAY AUDIT REPORT
- APPENDIX II: CONFIGURATION AND DEPLOYMENT DOCUMENT
- WINDOWS SERVER CONFIGURATION
- APACHE CONFIGURATION
- MYSQL CONFIGURATION
- GRAILS CONFIGURATION
- NETBEANS CONFIGURATION
- APPLICATION DEPLOYMENT.........................................................................................................................
- APPENDIX III: TEST CASES
- TESTING GOAL
- TESTING TOOLS
- FUNCTIONAL REQUIREMENTS TESTING (BLACK BOX TESTING)
- CODE INSPECTION
- SEARCH TESTING
- NON- FUNCTIONAL REQUIREMENTS TESTING
- STABILITY TESTING
- USABILITY
- SECURITY TESTING
- APPENDIX IV: BUG LIST
- Screen Mockup – Location Figure 1.
- Screen Mockup – Report Figure 1.
- Screen Mockup – User permission report Figure 1.
- Screen Mockup – Asset report Figure 1.
- Screen Mockup – Request report Figure 1.
Design Patterns
This application is designed as an object-oriented system for an Internet-based
architecture using four-layer architecture by factoring application classes into the
following layers:
The Presentation layer. This is the layer where the physical window and widget
objects live. It will also contain Controller classes as in classical MVC. Any new user
interface widgets developed for this application are put in this layer. In most cases this
layer is completely developed within Grails.
The Domain Mode. Most objects identified in the OO analysis and design will reside.
To a great extent, the objects in this layer can be application-independent. Generic
objects may be used in this application to reap the benefits of Object Oriented
programming.
The Hibernate layer. The domain model has been mapped using Hibernate. This will
map Grails domain classes onto a wider range of legacy systems and will be more
flexible in the creation of your database schema.
The Data layer. The data is managed by MySQL.
UUIS High level View Web Application Prentation Layer Grials UI Searchable Audit_Logging IUFA Users Server MySQL Server Hibernate Domain Security Inventory Search Audit log Yahoo UI The high level view of UUIS Figure 1.
Grails UI plug in: to present the user interface
Yahoo UI: A set of utilities and controls, written with JavaScript and CSS, for building
richly interactive web applications using techniques such as DOM scripting, DHTML and
AJAX
2 System Design Considerations
Web-site directories
The following web-site directories will be used to organize the JSP Pages used in the
web-site:
User site Directories:
Root Directory - All web pages related to user functions.
Images Directory – Contains the images used by the system.
Reports: Contains the local reports that would be used to export to CSV format.
Exception Handling
A good way to track exceptions is to implement an exception handler at the application
level. This will allow consolidation of the logging and notification parts of the exception
handling in one convenient place.
The global exception handler can handle both specific exceptions that UUIS trap in the
code as well as generic un-handled exceptions. After global exception handler has done
its work, it would redirect the users of the website to a friendly error page that tells them
that something has gone wrong and instructions on what to do.
All unhandled exceptions would be logged in the Windows Application Event Log or log
files with some detail on the nature of the failure.
3 Modules
Search
General Search
The general search included that retrieve records from the database according to user-
specified search criteria. Further, the search may encompass other information collections
like on-screen data.
Advanced Search
The advanced search may need to be added to the system in order to remain as flexible
as possible, the search module is designed in such a way as to isolate the specifics of
search implementation from the application. The search module has a limited API
exposed, and depending on its configuration it can implement the required search class
without further programmer intervention. It should be possible to add other classes of
search, relating to other types of data, with relatively little effort.
Inventory
Assets
The assets included the management of asserts (et. Computers, tables, office supplies,
software …). The granted user can add, edit and modify the assets within his scope.
When create a new asset, a unit bar code will be generated. The granted user can also
add, delete or modify an asset type. For each asset, there should have a barcode property
(optional). To generate the barcode from the asset ID, we can employ the barcode
generator at http://www.barcodesinc.com/generator/index.php
Locations
The location included the management of location resources (et. Buildings, offices,
teaching lab, research lab …). The granted user can add, edit and modify the locations
within his scope. And modify the location type, capacity, description and property of.
The granted user can also add, delete and modify the location type.
Requests
The request included the management of requests. The general user can make, submit
and view requests. The granted administrators can approve, reject and view requests
within his scope.
IT
University
Admin
Faculty
Admin
Department
Admin
Students,
general users
Inventory
stuff
Level 1
Level 2
Level 3
Level 4
User Hierarchy Level Figure 3. Audit log
Auditing
This module can list all the user activities in the web application.
4 Activity Diagram
Activity Diagram of UUIS Figure 4.
6 Class Diagram
Grails controllers, domain classes and services have dynamic methods and properties that
won’t be depicted on the previous class diagrams in order to keep them clear. For
example, controller classes provide methods such as render and redirect to deal with the
application flow, and domain classes provide methods such as find, get, save and delete
to deal with persistence. [11]
Domain Classes
Class Diagram: Domain Classes +iufaID : String +legacyID : String +serialNumber : String +name : String +details : String +status : AssetStatus Asset +AVAILABLE : String = av +UNAVAILABLE : String = un +BROKEN : String = br +STOLEN : String = st +TRASHED : String = tr AssetStatus +parent 0.. +name : String +description : String AssetType +name : String +hint : String +assetTypeProperties^ AssetTypeProperty
+type 1 +name : String +type : UniversityPartType UniversityPart +UNIVERSITY : String = u +FACULTY : String = f +DEPARTMENT : String = d +INSTITUTE : String = i +COLLEGE : String = c +GROUP : String = g UniversityPartType +parent 0.. +name : String +username : String +password : String +permissions : String User
0..1 +assignee +owner 1 +name : String +description : String +capacity : Integer +map : byte[] Location +location 1 +value : String AssetProperty +assetTypeProperty 1
- +assetProperties +parent 0..1 +name : String +description : String LocationType +type 1 +name : String+hint : String LocationTypeProperty +locationTypeProperties
-value : String LocationProperty +locationProperties
+locationTypeProperty 1 +WAITING_APPROVAL : String = wa +WAITING_EXECUTION : String = we +REJECTED : String = rj +EXECUTED : String = ex +NOT_EXECUTED : String = ne RequestStatus +TRANSFER : String = tr +BORROW : String = br +ASSIGN : String = as +TECHNICAL : String = tc +ADMINISTRATIVE : String = ad +REPORT_BROKEN : String = rb +REPORT_STOLEN : String = rs +type : RequestType^ RequestType +title : String +description : String +comments : String +submissionDate : Date +status : RequestStatus Request 0..1 +subject +requester +userAssigned^1 0.. +partAssigned 1
Domain Classes Figure 6.
Controllers +list(in params : Map) : Collection +create(in params : Map) : Asset +ajaxGetTypeProperties(in params : Map) : Collection +save(in params : Map) : Asset +edit(in params : Map) : Asset +update(in params : Map) : Asset -cascadeChangeLocation(in asset : Asset) -cascadeChangeOwner(in asset : Asset) AssetController Class Diagram: Controllers AssetType Asset AssetProperty «uses» «uses» «uses» +bulkInsert(in file : File) : Collection +bulkUpdate(in file : File) : Collection BulkController «uses» «uses» Location «uses» +list(in params : Map) : Collection +create(in params : Map) : Location +ajaxGetTypeProperties(in params : Map) : Collection +save(in params : Map) : Location +show(in params : Map) : Location +edit(in params : Map) : Collection +update(in params : Map) : Location LocationController «uses» LocationProperty «uses»^ LocationType «uses» +list(in params : Map) : Collection +create(in params : Map) : Request +save(in params : Map) : Request +show(in params : Map) : Request +approve(in params : Map) : Request +reject(in params : Map) : Request +execute(in params : Map) : Request +notexecute(in params : Map) : Request RequestController «uses» User UniversityPart Request «uses» «uses» «uses» +list(in params : Map) : Collection +show(in params : Map) : AuditLog AuditLogController AuditLog «uses» +requestReport() : Map +getRequests() : Map +assetsByLocationReport() : Map +getAssetsByLocation() : Map +permissionReport() : Map +getPermissions() : Map -assetsByLocationQuery : String -requestsQuery : String -permissionQuery : String ReportController inventory.domain «uses» «uses» +result(in params : Map) : Map -searchService : SearchService SearchController +login() +signIn(in params : Map) +signOut() -shiroSecurityManager -userService AuthController org.apache.shiro User «uses» «uses» «uses» +list(in params : Map) : Collection +create(in params : Map) : UniversityPart +save(in params : Map) : UniversityPart +show(in params : Map) : UniversityPart +edit(in params : Map) : UniversityPart +update(in params : Map) : UniversityPart +delete(in params : Map) UniversityPartController UniversityPart «uses» +upload() +renderImage() ImageController Location «uses»
Controllers Figure 6.
The controllers actions shown as methods on the previous diagram actually need to be
implemented as closures. [12]