Professional Documents
Culture Documents
Museum Information System-ArchitecturalDesign
Museum Information System-ArchitecturalDesign
Architectural Design
Presented to:
Prepared by Team1:
Page 1
Museum Information System
Table of Contents
1. Introduction ........................................................................................ 3
2. System Design ................................................................................... 4
2.1 System Architecture ........................................................................ 4
3. User Interface Layer........................................................................... 6
3.1 Prototype ......................................................................................... 7
4. Business Layer................................................................................... 8
4.1 Class Diagram................................................................................. 8
4.2 Sequence Diagrams..................................................................... 9
4.3 State Diagrams .......................................................................... 18
5. Persistence Layer ............................................................................ 19
5.1 Database Assumption ................................................................... 19
5.2 Class Diagram for the persistence layer ....................................... 19
5.3 Data Model Diagram ..................................................................... 19
5.3 Database Schema......................................................................... 22
Page 2
Museum Information System
1. Introduction
The Architectural Design document provides a high-level overview of the structural and
architecture of the entire system. Also the Architectural Design document provides a
more detailed description of the components of the system. Information is provided on
interactions and relationships among various sub-components of the system as well as
a detailed description of the pages corresponding to each function and each module.
The databases design is a list of everything a designer, programmer, or tester needs to
know to set up the database and to provide the connection between each function and
the database tables.
Page 3
Museum Information System
2. System Design
The system includes the following subsystems:
Client: The client interacts with the system through a classic Windows interface. The
users will access the system in different ways depending on their privileges.
Server: The server is represented by the database server that stores the entire
information of the Museum system.
Data services Data services are provided by a structured data store, which
-Persistence manages and provides access to the application data.
layer Data services are provided by MS Access database
Page 4
Museum Information System
DB_Museum
Page 5
Museum Information System
The user interface class contains the code for the user interface part of an application
and is design as a Windows based application.
Main Page
Administrator User
Login
*book *book
*simulation *simulation
*audio *audio
*computer *computer
Update Page
Page 6
Museum Information System
3.1 Prototype
To design a good interface we decided to create a first prototype that implements the
main functions of the system. The prototype will help us to receive feedback from the
customers and change in right of first stages of designing the GUI classes.
Page 7
Museum Information System
4. Business Layer
4.1 Class Diagram
Page 8
Museum Information System
4.2.1 Item
Create an item
Controller DBHelper :
DBHelper
Sess ion : Ses s ion
CreateItem(ID, ...)
Exists(Integer)
CheckConsistency(LocationID, Type)
Edit an Item
Page 9
Museum Information System
Exists(ID)
CheckConsistency(LocationID, Type)
Delete an item
Controller DBHelper :
DBHelper
Session : Session
Page 10
Museum Information System
Committing to DB
- This command is used whenever the administrator or the system sees a need to
apply the changes made to the DB.
- The command comes from the controller through the session and to the DB
interface. Then, the interface is responsible to commit those changes physically.
Controller DBHelper :
DBHelper
MO_CItem : Ses s ion
Commit( )
Searching DB
- It is used by all users to check or fetch items or any objects existing in the DB.
- The user asks for a search on a given string; this string could be an id, a type, a
date, a part of the description, etc...
- All possibly needed search functions will be provided.
- After this command goes to the session, the session gets the information from
the DB interface and returns a response or search results to the user through the
controller and to his GUI.
Search()
Response()
Page 11
Museum Information System
4.2.2 Collection
Create a collection
UI Adm in : : D B Acce s s
Adm inis trato r
C O_C Adm in is trator
Log in()
createAdm in C n tl(pas s w o rd )
createS es s ion ( )
: Ses s ion
return(The C ollectio n)
Page 12
Museum Information System
Update a collection
UI Admin : : DBAccess
Administrator
CO_CAdministrator
Login()
createAdminCntl(password)
createSession() : Session
getCollection(Name)
return(The Collection)
createCollection('update',Name)
The Collection :
CO_CCollection
return(The Collection)
destroy(The Collection)
Page 13
Museum Information System
Delete a collection
UI Admi n : : DBAcces s
Admini strator
CO_CAdministrator
Login()
createAd mi nCntl (pass word)
createSession()
: Session
getCollection(Name)
return(The Collection)
destroy(The Collection)
Page 14
Museum Information System
4.2.3 Exhibition
Create an exhibition
UI Adm in : : DBAcces s
Adm inis trator
CO_C Adm inis trator
Login()
createAdm inCntl(pas s word)
createSes s ion()
: Ses s ion
createExhibition(Nam e)
The Exhibition :
MO_CExhibition
return(The Exhibition)
Page 15
Museum Information System
Update an exhibition
UI Admin :
Administrator : DBAccess
CO_CAdministrator
Login()
createAdminCntl(password)
createSession() : Session
getExhibition(Name)
return(The Exhibition)
createExhibition('update', Name)
The Exhibition :
MO_CExhibition
return(The Exhibition)
destroy(The Exhibition)
Page 16
Museum Information System
Delete an exhibition
UI Ad mi n : : DBAc cess
Adm inis trator
CO_CAdm inis trator
Lo gin()
createAdm inCntl(pas s word)
createSes s ion()
: Ses s ion
getExhibition(Nam e)
return(The Exhibition)
Page 17
Museum Information System
On D is play
de s tr oy( )
Start
create()
mak eOn Di spl ay( ) End
Stored
Figure. Collection
Deleted
delete( )
delete()
com mi t()
Norm al ed it() Edited
Start
create()
com mi t()
com m it()
Com m itted
End
des troy()
Figure. Item
Page 18
Museum Information System
5. Persistence Layer
5.1 Database Assumption
In the persistence layer it will be only one class: DBHelper. The object of this class will
manage the connections for a user, and it will do all the operations on the database:
retrieve, insert, delete, and update. The objects of type DBHelper will only receive
messages from the class MO_CSession, which is on the MainEngine layer.
DBHelper
m_strConnection
m_vCollectionList
m_vItemList
m_vExhibitionList The DB_Helper objects
manage the operations on
OpenConnection() : String the database.
CloseConnection() : String
FindItem()
FindCollection()
FindRoom()
Commit() : String
CheckConsistency() : String
Page 19
Museum Information System
T_Simulation
<<Identifying>>
T_Computer
<<Non-Identifying>>
<<PK>> PK_T_ItemCode()
1 <<FK>> FK_T_ItemCode()
1
T_Room
T_Book
<<PK>> PK_T_RoomID()
<<PK>> PK_T_ItemCode()
<<FK>> FK_T_ItemCode()
0..* 1
<<Non-Identifying>>
T_ItemCollection
<<Non-Identifying>> 1
0..* T_Person
<<PK>> PK_T_PersonID()
T_ExhibitionCollection
<<FK>> FK_T_CollectionID()
<<FK>> FK_T_ExhibitionID()
<<Unique>> TC_T_ExhibitionIDCollectionID()
0..*
<<Non-Identifying>>
T_UserAccount
1
T_Exhibition
<<PK>> PK_T_ExhibitionCode()
Page 20
Museum Information System
T_Simulation
T_Item COL_SimultationOS : VARCHAR(50)
COL_ItemCode : VARCHAR(20) COL_ItemCode : VARCHAR(20)
COL_ItemName : VARCHAR(50) COL_SimultationGoalDescription : VARCHAR(2000)
COL_ItemCreationData : DATETIME <<Identifying>>
1
COL_ItemEntryDate : DATETIME <<PK>> PK_T_ItemCode()
COL_ItemOwner : VARCHAR(50) 1 <<FK>> FK_T_ItemCode()
COL_ItemDescription : VARCHAR(500)
COL_ItemType : VARCHAR(2)
<<Identifying>>
COL_ItemRegion : VARCHAR(50) 1
COL_RoomCode : VARCHAR(10) T_AudioVideo
COL_AudioVideoLength : SMALLINT
<<PK>> PK_T_ItemCode() 1
COL_AudioVideoFormat : VARCHAR(50)
<<FK>> FK_T_RoomCode() 1 COL_ItemCode : VARCHAR(20)
0..* 1 COL_AudioVideoDescription : VARCHAR(2000)
1 <<Identifying>>
<<PK>> PK_T_ItemCode()
<<Non-Identifying>> <<FK>> FK_T_ItemCode()
1
T_Computer
COL_ItemCode : VARCHAR(20)
<<Identifying>> COL_ComputerModel : VARCHAR(20)
<<Non-Identifying>> COL_ComputerCompanyName : VARCHAR(50)
1
COL_ComputerHertz : SMALLINT
COL_ComputerRAM : SMALLINT
COL_ComputerMIPS : SMALLINT
T_Room COL_ComputerDescription : VARCHAR(2000)
COL_RoomCode : VARCHAR(10)
COL_RoomName : VARCHAR(50) <<PK>> PK_T_ItemCode()
COL_RoomFloor : VARCHAR(10) <<FK>> FK_T_ItemCode()
1
COL_RoomDescription : VARCHAR(2000)
COL_RoomSize : SMALLINT
<<PK>> PK_T_RoomID()
T_Book
0..* COL_ItemCode : VARCHAR(20)
COL_BookDescription : VARCHAR(2000)
COL_BookPublisher : VARCHAR(50)
<<PK>> PK_T_ItemCode()
T_ItemCollection
<<FK>> FK_T_ItemCode()
COL_CollectionID : SMALLINT 1
COL_ItemCode : VARCHAR(20) <<Non-Identifying>>
<<FK>> FK_T_CollectionID()
0..*
<<FK>> FK_T_ItemCollection25()
<<Unique>> TC_T_ItemCodeCollectionID()
T_BookAuthor
0..*
COL_ItemCode : VARCHAR(20)
<<Non-Identifying>> COL_PersonID : VARCHAR(20)
1
<<FK>> FK_T_ItemCode()
<<FK>> FK_T_PersonID()
T_Collection <<Unique>> TC_T_PersonIDItemCode()
COL_CollectionID : SMALLINT 0..*
<<Non-Identifying>>
COL_CollectionDescription : VARCHAR(2000)
COL_CollectionName : VARCHAR(100)
1
<<PK>> PK_T_CollectionID()
1 T_Person
<<Non-Identifying>> COL_PersonID : VARCHAR(20)
COL_PersonLastName : VARCHAR(50)
0..* COL_PersonBirthDate : DATETIME
COL_PersonFirstName : VARCHAR(50)
COL_PersonCurriculum : VARCHAR(2000)
T_ExhibitionCollection
COL_CollectionID : SMALLINT <<PK>> PK_T_PersonID()
COL_ExhibitionID : SMALLINT
<<FK>> FK_T_CollectionID()
<<FK>> FK_T_ExhibitionID()
<<Unique>> TC_T_ExhibitionIDCollectionID()
0..*
<<Non-Identifying>>
1
T_UserAccount
T_Exhibition
COL_ExhibitionID : SMALLINT
COL_ExhibitionStartDate : DATETIME
COL_ExhibitionEndDate : DATETIME
COL_ExhibitionDescription : VARCHAR(2000)
COL_ExhibitionName : VARCHAR(100)
<<PK>> PK_T_ExhibitionCode()
Page 21
Museum Information System
The following database schema results from applying a forward engineering process on
the above data model diagram in Rational Rose. The database specification target is
Microsoft Access.
Page 22
Museum Information System
Specific information about items of type book. This table can only be used together with
the T_Item table.
CREATE TABLE S_Museum.T_Book (
COL_ItemCode VARCHAR ( 20 ) NOT NULL,
More detailed description of the book.
COL_BookDescription VARCHAR ( 2000 ),
COL_BookPublisher VARCHAR ( 50 ),
CONSTRAINT PK_T_ItemCode PRIMARY KEY NONCLUSTERED
(COL_ItemCode)
)
COL_ComputerCompanyName VARCHAR ( 50 ),
COL_ComputerHertz SMALLINT,
COL_ComputerRAM SMALLINT,
COL_ComputerMIPS SMALLINT,
COL_ComputerDescription VARCHAR ( 2000 ),
CONSTRAINT PK_T_Computer20 PRIMARY KEY NONCLUSTERED
(COL_ItemCode)
)
Table of items of the museum. This table contains common information about items,
regardless of their type. Each specific item type has a separate table, linked by
ItemCode field.
CREATE TABLE S_Museum.T_Item (
COL_ItemCode VARCHAR ( 20 ) NOT NULL,
COL_ItemName VARCHAR ( 50 ) NOT NULL,
The day the item was pubblicized
COL_ItemCreationData DATETIME NOT NULL,
The day the museum acquired or received the item.
COL_ItemEntryDate DATETIME NOT NULL,
Owner name. The owner can be a person, a group of people, or a company
(including the museum itself).
There is also a separate reference field to the owner table.
COL_ItemOwner VARCHAR ( 50 ) NOT NULL,
Short description of the item. A more complete description can be found in the
specific item tables.
COL_ItemDescription VARCHAR ( 500 ) NOT NULL,
BK - Books
SW - Software
CM - Computers
Page 24
Museum Information System
AV - Audio Video
COL_ItemType VARCHAR ( 2 ) NOT NULL,
COL_ItemRegion VARCHAR ( 50 ) NOT NULL,
COL_RoomCode VARCHAR ( 10 ) NOT NULL,
CONSTRAINT PK_T_Item23 PRIMARY KEY NONCLUSTERED
(COL_ItemCode)
)
ALTER TABLE S_Museum.T_ExhibitionCollection ADD CONSTRAINT
FK_T_CollectionID FOREIGN KEY (COL_CollectionID) REFERENCES
S_Museum.T_Collection (COL_CollectionID)
Page 25