UUIS and IUFA: Software Engineering Project Document, Exams of Design

Information about the Unified University Inventory System (UUIS) and the Imaginary University of Arctica (IUFA) as part of a software engineering project in COMP5541 Tools and Techniques for Software Engineering by Team 4 during Winter 2010. acronyms, system requirements, screen mockups, design patterns, reports, services, and sequence diagrams.

Typology: Exams

2021/2022

Uploaded on 08/05/2022

char_s67
char_s67 🇱🇺

4.5

(116)

1.9K documents

1 / 90

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
COMP5541 Tools and Techniques for Software Engineering Winter 2010 by Team 4
Page 1
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a

Partial preview of the text

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

  • +staffMembers +heads

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]