Deliverables Design and Architecture
-
Upload
russian087 -
Category
Documents
-
view
225 -
download
0
Transcript of Deliverables Design and Architecture
-
8/8/2019 Deliverables Design and Architecture
1/21
Design
Release Information
Project : Dorm Keeper
Related Documents : : Design > Architecture WorksheetDesign > Source Organization and Build WorksheetDesign > User Interface WorksheetDesign > Persistent Storage WorksheetDesign > Security Worksheet
Introduction
How is this design document organized?This main page describes the system design in terms of packages, classes,relationships, and behavior. Several attached worksheets address specificaspects of the overall system design, such as user interface and databasedesign.
What are the most important facts that a developer should know aboutthis design?
The design considered the limited time for developing theproject Correctness and feasibility are the topmost priorities
To realize the project, strict adherence to this design is expected
What are the prioritized goals of this design?
1. Correctness2. Feasibility3. Understandability4. Implementation Phase Guidance5. Modularity6. Testability7. Efficiency
UML Structural Design
The system's behavioral design is described in the attached UML structural
diagrams.
UML Behavioral Design
The system's behavioral design is described in the attached UML behavioraldiagrams.
-
8/8/2019 Deliverables Design and Architecture
2/21
UML Design Checklist
Correctness: How do you know that this design is correct?
The design is guided by the specifications given by the client.
Feasibility: What indicates that this design can be implemented andtested with the planned amount of time and effort?
The design prioritizes the realization of the project within the given timeframe. The bases of the design are the past experiences of the developers onproject development. These experiences provided enough information to beable to come up with an estimated schedule as well as a plausible division oftasks.
Understandability: What makes this design understandable?The design offers specific details about the projects structural and behavioral
design using UML. It also includes a UML which describes the components.There are supporting documents which not only contain comprehensivedescription but also specify the purpose of components of the project, i.e.,build configuration, naming conventions, and key directories and files.
Implementation phase guidance: Does the design suggest reasonableimplementation tasks?
Yes. The design is patterned after the agreed object model which clearlydefines the division of components.
Modularity: How have concerns been separated and addressed indistinct modules?
The design ensured that a module can be implemented and testedindependently from other modules so that if ever there is an encounteredproblem, it is only limited to a particular module.
Testability: What makes this system easy to test?Because the system is highly modularized, testing can be done at each
module without infringing the other modules.
Efficiency: Does the system consume an acceptable amount of time,storage space, bandwidth, and other resources?
The design did less consideration on this matter. But because this project isrelatively small, resources are not really much of a concern.
-
8/8/2019 Deliverables Design and Architecture
3/21
Design > Architecture
Overview
What are the most important facts that a developer should know aboutthis system architecture?
2-tier web application: webserver/app-server, database.
What are the ranked goals of this architecture?1. Ease of integration2. Capacity matching
ComponentsWhat are the components of this system?
The components of this system are clearly defined in this UML Model withComponent Diagram.
The components of this system are listed below by type:
Presentation/UI Componentso C-00: Login Pageo C-01: Administrator Pageo C-02: Dormitory Staff Page
Application Logic Componentso C-03: DormKeeper Application
Data Storage Componentso C:04: DormKeeper DB
DeploymentHow will the components be deployed to processes and machines?
The deployment of components to processes and machines is clearly definedin this UML Model with Deployment Diagram.
2-tier Web Application
Tomcat Processo
C-03: DormKeeper Application Database Process
o C:04: DormKeeper DB
What aspects/resources of their environment are shared?Everything is on one server so all machine resources are shared by allcomponents.
What alternative deployment configurations are possible?
-
8/8/2019 Deliverables Design and Architecture
4/21
This is the only possible deployment.
Integration
How will components be integrated? Specifically, how will theycommunicate?
All of our code uses direct procedure calls. Communication with the databaseuses Torque-generated methods.
Architecture Checklist
Ease of integration: Have mechanisms been provided for all neededtypes of integration?
Yes. In this system, all of the new components are designed to work together.
And, the reused components are integrated via fairly simple interfaces.
Has the architecture been communicated to the development team andother stakeholders?
While there is communication at the development team level, there is notmuch interaction with the actual client because of physical absence. This willbe addressed in the Risk Management section.
-
8/8/2019 Deliverables Design and Architecture
5/21
Design > Source Code Organization and Build
System
OverviewWhat are the most important facts that a developer should know aboutthis source code organization and build system?
The source code will be organized to the packages detailed in the table belowand will use the directory structure and package naming conventions.
What are the ranked goals of this source code organization and buildsystem?
1. Separation of files by type
2. Separation of version-controlled files from files generated by the buildprocess3. Compatibility with standard build processes
Key Directories and Files in Developer Working Copies
Path VC Descriptionbuild.xml Yes Build filebuild.properties Yes Build properties filesrc/ Yes Source codesrc/java/ Yes Java source codesrc/java/[nested
packages]/
Yes Java source code of classes in each package
src/java/[nestedpackages]/test/
Yes Java source code of unit tests for classes in eachpackage
web/ Yes HTML and ZK filesweb/css/ Yes CSS files, if anyweb/images/ Yes Image files, if anyweb/web-inf/web.xml Yes Java web application configuration fileconf/ Yes Configuration files, if anydata/ Yes Initial data to load into database and/or file
system, if anylib/ Yes Libraries reused by this project, if anywww/ Yes Project documents (e.g., overview, plan,
requirements, and design)build/ No Output of build processbuild/web-inf/classes/ No Compiled code output by build processdist/docs/api No API documentation output from build processdist/dormkeeper.war No Deployable web archive of classes and
configuration files generated by build process
Build Targets
-
8/8/2019 Deliverables Design and Architecture
6/21
Target DescriptionCompile =default
Compiles Java source code and creates .class files under the "build"directory.
dist Packages the system for distribution/deployment to servers or endusers. Specifically, it creates .war archive of compiled classes andconfiguration files.
install Places executable code into location where it will actually beexecuted. Specifically, it copies .war file into Tomcat's webappsdirectory for use. You must then restart Tomcat or use the "reload"link in the Tomcat Manager.
javadoc Generates Java API documentation under "build/docs/api/".clean Deletes files generated by previous build commands. Files under
version control are not touched.
Build Configuration OptionsProperty Descriptiondormkeeper The name of this application. This should
be one short word. Used in the name ofresulting package files. Specifically,the .war file. And, it will be used toaccess the application viahttp://localhost:8080/APP.NAME/
dormkeeper.version Version number of this release. Used inthe name of resulting package files.Specifically, the .war file.
webapps.path Path to the Tomcat "webapps" directory.Defaults to C:\Program Files\ApacheSoftware Foundation\Tomcat 5.5\webapps
Source Code Organization and Build System Checklist
Separation of files by type: Are files separated by type?Yes. All files are separated by type.
Separation of version-controlled and non-version controlled files: To whatextent has this been achieved?
It has been achieved. Everything is under version control except for thebuild directory. No step in the build process should create or modify any filein any other directory.
Have these implementation decisions been communicated to the
development team and other stakeholders?No, this is a risk that is noted in the Risk Management section
-
8/8/2019 Deliverables Design and Architecture
7/21
Design > User Interface
Overview
What are the most important facts that a developer should know aboutthe user interface of this system?
The UI should be as user friendly as possible so the users will nothave a hard time to understand it.
The flow should enable the user to browse fast into the systemso when the customer queue is stacking up the system will be able tohandle it.
What are the ranked goals for the user interface of this system?1. Understandability and learnability2. Task support and efficiency3. Safety4. Consistency and familiarity
Metaphors, Exemplars, and Standards
What is the central metaphor of this UI design?UI design is the helper of the dormitory staffs which will make their works
easier.
What existing systems have user interfaces similar to the UI you wantto build? What specific aspects are similar?
Sancofa: Online Examination System (CMSC100 Project): Oursystem will look like and will have a flow like this system.
What UI design standards, guidelines, and styles are you following? Microsoft UI guidelines Java UI guidelines
W3C Accessibility guidelines
Task Models
-
8/8/2019 Deliverables Design and Architecture
8/21
What types of users will use this system?See the user needs document.
What types of tasks will those users perform?See the use case suite.
Content Model / Interaction Contexts
InteractionContext
--AbstractUI
Component
s
Purpose Contents / Constraints / Behavior
Login PageVerify that the current useris actually the person thatthey claim to be.
The page asks user to input his usernameand password, then to click to the buttoncorresponding to his/her user type.
--Banner Show the systems bannerAn image to show they are using oursystem
--UsernameIdentify the user accountthat the current user istrying to access.
The name of the user account. Regex: [-_a-z0-9]{1-16}. The application should not doanything that would help users guessusernames. E.g., this should not be a
combo-box with recent users listed, and itshould not offer auto-complete.
--Password
Verify that the current userknows a secret passwordthat only the true user ofthat user account shouldknow.
The password of 4-16 characters. Do notdisplay the password on the screen. Theapplication should not do anything thatwould help users guess passwords.
--Login
Allow the user to indicatethat they have completedentry of their usernameand password.
"Login" Only enabled when Username !="". If the username or password isincorrect, delay a few seconds, and thenclear all fields.
HomeThis is where all the linksare shown to enable fasterbrowsing.
--MenuThe links are all put here sothey are easy to find
These will serve as shortcuts to go to otherpages
--MainWindow
This is where all theprimary information isshown.
Depending on what page you are in, thispart is the one that changes its contents.
-
8/8/2019 Deliverables Design and Architecture
9/21
--Date PanelTell the user the currentdate to guide him/her fordormitory transactions
E.g. Monday | January 28, 2008
--Help PanelProvide user with helpregarding the use of the
system
This will contain descriptions for eachmodule; may contain how-tos
--Footer Show copyright Displayed at the bottom of every page
New AccountAssist registration of newdormitory residents
--Last NameIdentify the last name ofthe applying student
Asks for the residents last name
--MiddleName
Identify the middle name ofthe applying student
Asks for the residents middle name
--First NameIdentify the first name ofthe applying student
Asks for the residents first name
--SubmitInsert the full name of theapplying student to thedatabase
Checks the last name, middle name, andfirst name fields for invalid inputs; Auto-capitalize first letter
--Confirmation
Provide feedback for theuser
Tells the user whether the process wassuccessful or not
Edit ProfileAllow editing of informationabout a resident
--Full nameShow the user a list of fullnames of the residents
Displays the full names of the residents inthe following format: Last name, FirstName, M.I.
--ApplicationDate
Show the user the datewhen the residentcompleted his registration
Displays the date in the following format:HH:MM AM/PM| Month DD, YYYY
--Edit
Redirect user to the pagewhich contains the currentinformation about aresident
Edit button is aligned with residentsnames; clicking an Edit button willredirect the user to the profile of thecorresponding resident
DeleteAccount
Allow user to deleteresident accounts
--Full Name
Show user the list of
residents
Displays full name in this format:
Last name, First Name, M.I.
--DateShow user correspondingregistration dates
Displays date in this format:HH:MM | Month DD, YYYY
--DeleteDelete specific residentaccount
Inactivates the respective account of theresident when the 'Delete' button is clicked
--Confirmatio
Show user that deletionwas successful
Contains text explaining that specificresident's account is deleted
-
8/8/2019 Deliverables Design and Architecture
10/21
n
Statement ofAccount
Allow user to issuestatement of account
--First Name
Identify the first name ofthe resident who will be
issued of Statement ofAccount
Asks the user to input first name;
existence of the first name in the databasewill be checked
--MiddleName
Identify the middle name ofthe resident who will beissued of Statement ofAccount
Asks the user to input middle name;existence of the middle name in thedatabase will be checked
--Last Name
Identify the last name ofthe resident who will beissued of Statement ofAccount
Asks the user to input last name; existenceof the last name in the database will bechecked
--Dorm FeeIdentify the payment of theresident for his/her stay inthe dormitory
Input should be multiple of the agreeddormitory fee; rate is based on PhilippinePeso (Php)
--ApplianceFee
Identify the overall total ofpayment for the applianceof the resident, if there isany
Each appliance has its corresponding fee;rates are set by the administrator at thestart of the semester; rate is based onPhilippine Peso (Php)
--Reservation Fee
Identify the amount to bepaid as reservation fee
Asks the user to enter an amount for thereservation fee
--Print Print Statement of AccountChecks the fields of the form for Statementof Account; entered name should exist inthe database
RegisterAppliance
Register appliance(s),which will be used insidethe dormitory, owned by aresident
--First NameIdentify the first name ofthe owner of the appliance
Asks the user to input first name;existence of the first name in the databasewill be checked
--MiddleName
Identify the middle name ofthe owner of the appliance
Asks the user to input middle name;existence of the middle name in thedatabase will be checked
--Last NameIdentify the last name ofthe owner of the appliance
Asks the user to input last name; existenceof the last name in the database will bechecked
--Appliance Classify appliance Classification of Appliances: Electric fan,Computer without printer, Computer with
-
8/8/2019 Deliverables Design and Architecture
11/21
printer, and refrigerator
--ControlNumber
Provide a uniqueidentification for eachappliance
Autogenerated 5-digit number
--Date
Installed
Record the installation date
of the appliance ZK datebox
--SubmitInsert the data entered tothe database
None of the fields should be empty
CancelAppliance
Withdraw the use of anappliance
--Full NameShow the owner of theappliance
Last Name, First Name, Middle Initial
--ControlNumber
Show the control number ofthe appliance
Must be unique
--Type ofAppliance Show the type of appliance
Classification of Appliances: Electric fan,
Computer without printer, Computer withprinter, and refrigerator
--Cancel Inactivate the appliance
Inactivates the appliance horizontallyaligned with the Cancel button; aninactivated appliance will no longer becharged of appliance fee; redirects thepage to the confirmation page
ReportViolation
Report violation committedby a resident
--First NameIdentify the first name of
the violator
Asks the user to input first name;existence of the first name in the databasewill be checked
--MiddleName
Identify the middle name ofthe violator
Asks the user to input middle name;existence of the middle name in thedatabase will be checked
--Last NameIdentify the last name ofthe violator
Asks the user to input last name; existenceof the last name in the database will bechecked
--Nature ofViolation
Identify the nature ofviolation
Types of Violation: (refer to the dormitoryshouse rules)
--Date of
Violation
Record the date when the
violation was committed ZK datebox
Check-inTransient
Admit transient
--First NameIdentify the first name ofthe transient
ZK input box
--MiddleName
Identify the middle name ofthe transient
ZK input box
-
8/8/2019 Deliverables Design and Architecture
12/21
--Last NameIdentify the last name ofthe transient
ZK input box
--GuarantorIdentify the full name of theguarantor
Autocomplete (source: residents table ofthe database); input should be one of theentries in the residents table
--Submit Insert data into thedatabase
Checks the field of the form; redirects thepage to the confirmation page
Check-outTransient
Dispatch Transient
--Full Name Show transients full name Last Name, First Name, Middle Initial
--AdmissionDate/Time
Show when the transientchecked in
HH:MM | Month DD, YYYY
--DispatchInactivate the transientsrecord
Redirects the page to Issue Statement ofAccount
View All
Residents
List all residents of the
dormitory
--Full NameShow the full names of theresidents
Linked to the residents respective pageswhich contain their profile
ViewViolations
List all violationscommitted for the currentsemester
--Full NameShow the full names of theviolators
Linked to the residents respective pageswhich contain their profile
--Nature ofViolation
Show the nature ofviolation committed
ZK Label
--Date Show the date when theviolation was committed
ZK LabelMonth DD, YYYY
--Remarks Show the action taken ZK Label
ViewAppliances
Show all the registeredappliances
--Full NameShow the owner of theappliance
Last Name, First Name, Middle Initial
--Appliance Classify applianceClassification of Appliances: Electric fan,Computer without printer, Computer withprinter, and refrigerator
--ControlNumber
Provide a uniqueidentification for eachappliance
Autogenerated 5-digit number
--DateInstalled
Record the installation dateof the appliance
Month DD, YYYY
ViewTransients
Show all transients whohave not yet checked out
-
8/8/2019 Deliverables Design and Architecture
13/21
--Full NameShow the full names of thetransients
Last Name, First Name, Middle Initial
--GuarantorShow the name of theguarantor
Last Name, First Name, Middle Initial;should be resident of the dormitory
Technical Constraints / Operational Contextualization
What are your assumptions about the output devices?We assume that the user has a 17-inch or larger screen with 1024x768 pixelsthat can display thousands of colors (16 bit or more). We assume they willuse Mozilla Firefox as their web browser. We will not use any audio features.
What are your assumptions about the input devices that you will use?We assume only that the user has a standard keyboard and mouse.
What are your assumptions about the amount of time users will spendon tasks?
The module which is expected to take about 10 minutes to finish is the fillingup of residents information. The rest of the modules which require the userto provide inputs will take 2 minutes on the average. Viewing and printing willrequire at most 5 seconds.
What windowing systems, UI libraries, or other UI technologies will youuse?
ZK frameworkStandard HTML, CSS and Javascript
User Interface Checklist
Understandability and learnability
Are there any labels of icons that are likely to be misunderstood?The icons will have their own captions so the users will understand them.
Is the user's current place and state clearly visible?Yes. The UI displays module name (which somehow provides cues about themodule) the user is currently working on.
Are there no invisible options or commands? E.g., hold down the controlkey when opening a dialog box to see advanced options.
None, we only included necessary options so that it will not be toocomplicated.
Task Support and Efficiency
Which use cases force the user to perform slow or difficult UI steps?E.g., entering a long code number like an ISBN. E.g., long mouse-dragoperations.
-
8/8/2019 Deliverables Design and Architecture
14/21
-
8/8/2019 Deliverables Design and Architecture
15/21
The developer should also know how large the data is to bestored.
What are the ranked goals for persistence in this system?1. Data capacity2. Expressiveness3. Data security4. Performance5. Ease of access6. Reliability7. Interoperability
Central Database
What is the logical database design?The logical database design is described in this UML model or this ER
diagram.Additional logical constraints on the database are: A student can register only once every semester. Only Freshmencan avail the services of the dormitory residency.
The student is required to pay his/her accounts every month.These accounts can include appliances if the student has any. The database can be accessed only by the Dormitory staff & theAdministrator. The Dormitory staff can add or register students. TheAdministrator can add the dormitory staff & can configure thedatabase.
What are the physical tables and views?
The physical database design is described in this UML model or this ERdiagram.
How will objects in the application be stored in the database?We will use a database table for all of the residents in the dormitory. It willalso contain the information of the residents. We will use a library to do ourobject-relational mapping specifically torque. There will also be separatetables for dormitory staffs and dormitory residents as well as views forpayments, violations, and transients.
What database access controls will be used?A database administrator account will be created to access the neededapplication database tables.
Is this application's central database accessible to other applications?No. This database should always be accessed through this application. Allrelevant pieces of information are available through the applicationinterfaces. The database itself does not protect against data corruption thatcould be caused by other applications.
-
8/8/2019 Deliverables Design and Architecture
16/21
File Storage
What data needs to be stored in files?The server stores most data in the database. It also uses the network to actas back ups in case of any unexpected deletion of the database. The
information and transactions of the residents are to be stored in SQL files.
What are the conventions for directory structure and file naming?Files are stored on the server as data/dormkeeperYYYYSSSMM.dat*YYYY Year SSS Semester MM Month
What file system access controls will be used?
Users can use whatever file permissions they like.
What file format will be used?
Database information will be saved in a binary file (.dat)
Settings of the database are specified in XML file Schema of the database is specified in XML file
All modules will be written in ZUL
Java files
Distributed Storage
What information (if any) will be stored on client machines? For howlong?
All the user data will be stored on files on their computers for a minimum ofone month
Persistence Mechanisms Checklist
Expressiveness: To what extent has this been achieved?When the dormitory staff adds new residents on the dormitory database,he/she will enter the residents information. The inputted data will be storedin the database of the system.
Ease of access: To what extent has this been achieved?The data in the database can only be accessed by the administrator or thestudent assistants. A password will be provided for both of the users in order
to provide security for the data involved.
Reliability: To what extent has this been achieved?The application has all of its data in a database. Back-ups for the databaseare also provided.
Capacity: To what extent has this been achieved?
-
8/8/2019 Deliverables Design and Architecture
17/21
This system is expected to provide back ups to the database so that if the OSthe application will be running doesnt have enough memory capacity, thelarge data can be stored.
Security: To what extent has this been achieved?The system is can only be accessed by the administrator the Studentassistants. For security purposes, a password will be provided.
Performance: To what extent has this been achieved?The data in the database is easily accessed every time the administratorchecks the accounts of the residents.
Has the persistence design been communicated to the developmentteam and other stakeholders?
While there is communication at the development team level, there is notmuch interaction with the actual client because of physical absence. This willbe addressed in the Risk Management section.
DESIGN SECURITY
-
8/8/2019 Deliverables Design and Architecture
18/21
Overview
What are the most important facts that a developer should know about
the security of this system? The developer focuses more on the application security.
The developer has a trust on the dormitory staffs that they willnot use the system for unnecessary purposes or actions not related tothe dormitory services.
What are the ranked goals for security in this system?1. Data security2. Intrusion prevention3. Abuse prevention4. Auditability
Security Mechanisms
What physical security mechanisms will be used? Server will be kept in a secured room Only the administrator has the access to the server
What operating system security will be used? Operating system permissions on files and directories are set toprevent undesired access or modification.
What application security mechanisms will be used? Values input into every field are validated before use
Values input into every field will be free from any scriptingattacks Usernames and passwords are required for access Passwords are stored encrypted Verification of usernames The quality of passwords is checked Users are given roles that define their permissions. Those rolesare:
o Administrator: Permission to add new user accounts, deleteaccount, modify existing password.o Dormitory staff: Permission to create new resident account, viewor update pending registrations, edit residents profile, issue
statement of account, report violations, register and cancelappliances and check-in and check-out transients
Each action (information display or change) requires that theuser has a role with proper permissions Administrators can review dormitory staff permissions
-
8/8/2019 Deliverables Design and Architecture
19/21
Security Checklist
Protection of data: To what extent has this been achieved?There will be back-up copies of all the files
Prevention of intrusion: To what extent has this been achieved?All entries on the input boxes will be free from any scripting attacks.
Accountability/auditing: To what extent has this been achieved?All information in the database will be saved in the Internet monthly and canbe retrieved for auditing
Have these security mechanisms been communicated to thedevelopment team and other stakeholders?
While there is communication at the development team level, there is notmuch interaction with the actual client because of physical absence. This willbe addressed in the Risk Management section.
C-00 : Login Page
-
8/8/2019 Deliverables Design and Architecture
20/21
Description: The page asks user to input his username and password, then toclick to the button corresponding to his/her user type. Login pageverifies that the current user is actually the person that they claim
to be.
EnvironmentalConstraint
Mozilla Firefox (browser), Java Runtime Environment, at least 15monitor with at least 16-bit color configuration
AvailableInterfaces
Username (input box), Password (input box), Login (button)
C-01: Administrator Page
Description: The page contains the functionalities that are available for theadministrator
EnvironmentalConstraint
Mozilla Firefox (browser), Java Runtime Environment, at least 15monitor with at least 16-bit color configuration
AvailableInterfaces
Administrator Menu New Account Modify Password Delete Account View All Accounts Configure System Documentation
C-02: Dormitory Staff Page
Description: The page contains the functionalities that are available for thedormitory staff
EnvironmentalConstraint
Mozilla Firefox (browser), Java Runtime Environment, at least 15monitor with at least 16-bit color configuration
AvailableInterfaces
Dormitory Staff Menu New Account Pending Accounts Edit Profile Delete Account Statement of Account Register Appliance(s) Cancel Appliance(s) Report Violation(s)
-
8/8/2019 Deliverables Design and Architecture
21/21
Check-in Transient Check-out Transient View All Residents View Unsettled Fees View Violations View Appliances View Transients
C-03: DormKeeper WebApp
Description: .war file which contains all the classes, style sheets, etc.; the gistof the entire project
EnvironmentalConstraint
Mozilla Firefox (browser), Java Runtime Environment, at least 15monitor with at least 16-bit color configuration, Tomcat, Database
AvailableInterfaces DormKeeper ClassResident ClassStatement of Account ClassTransient Class
C:04: DormKeeper DB
Description: Database constructed using MySQL which will contain all the dataof the web application
Environmental
Constraint
Windows 9X/Windows XP, at least 256MB RAM