Page 19 - 1005.0169
P. 19

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



                                        +type
                                              AssetType            AssetTypeProperty
                     Class Diagram: Domain Classes      +assetTypeProperties
                                            +name : String        +name : String
                                         1
                                            +description : String  +hint : String
                                                                *
                                             *  +assetProperties
                            0..1                            +assetTypeProperty  1
                        +parent
                                             AssetProperty
                              Asset
                                             +value : String
                         +iufaID : String
                         +legacyID : String
                         +serialNumber : String          +type        +locationTypeProperties
                         +name : String                       LocationType       LocationTypeProperty
                         +details : String  +parent  0..1    +name : String      +name : String
                         +status : AssetStatus             1  +description : String  *  +hint : String
                                                Location
                                             +name : String
                                             +description : String
                               0..1  +subject                                +locationTypeProperty  1
                                        +location  +capacity : Integer
                                             +map : byte[]   +locationProperties
                                                                      LocationProperty
                         0..1  +assignee   1
                                                                      -value : String
                                                                   *
                              User    +requester
                          +name : String
                          +username : String  1
                       *  +password : String  +userAssigned  Request
                          +permissions : String  +type : RequestType  AssetStatus      RequestType
                                              +title : String  +AVAILABLE : String = av  +TRANSFER : String = tr
                     +heads           0..1
                                              +description : String  +UNAVAILABLE : String = un  +BORROW : String = br
                                              +comments : String  +BROKEN : String = br  +ASSIGN : String = as
                          *  +staffMembers    +submissionDate : Date  +STOLEN : String = st  +TECHNICAL : String = tc
                                              +status : RequestStatus  +TRASHED : String = tr  +ADMINISTRATIVE : String = ad
                                                                                  +REPORT_BROKEN : String = rb
                                                                                  +REPORT_STOLEN : String = rs
                        +parent  0..1
                                         +partAssigned
                            UniversityPart
                                                      UniversityPartType
                         +name : String                                     RequestStatus
                    +owner               1          +UNIVERSITY : String = u
                         +type : UniversityPartType                   +WAITING_APPROVAL : String = wa
                                                    +FACULTY : String = f
                                                    +DEPARTMENT : String = d  +WAITING_EXECUTION : String = we
                      1                                               +REJECTED : String = rj
                                                    +INSTITUTE : String = i
                                                    +COLLEGE : String = c  +EXECUTED : String = ex
                                                    +GROUP : String = g  +NOT_EXECUTED : String = ne

                                                 Domain Classes Figure 6.1


         COMP5541 Tools and Techniques for Software Engineering Winter 2010 by Team 4              Page 19
   14   15   16   17   18   19   20   21   22   23   24