• No results found

D.4.1 Product Managementsecurity . . . 165

D.4.2 Contact Managementsecurity . . . 166

D.4.3 PMS Securityimplementation . . . 166

D.5 PMS User Interfacedomain model . . . 166

D.5.1 User Interface Notation . . . 167 D.5.2 Authentication interface . . . 168 D.5.3 The main menu interface . . . 169 D.5.4 Product management interface . . . 170 D.5.5 Contacts management interface . . . 170 D.5.6 Registered User management interface . . . 172 D.5.7 Error reporting . . . 173

Aspect-Oriented Specification

D.6 PMS User Interfacerequirements . . . 174

D.6.1 Login Page . . . 174 D.6.2 Register New User Page . . . 176 D.6.3 Registration Success Page . . . 177 D.6.4 Main Menu Page . . . 177 D.6.5 Product List Page . . . 178 D.6.6 Edit Product Page . . . 179 D.6.7 Edit Product Variant Page . . . 180 D.6.8 Product Category List Page . . . 180 D.6.9 Edit Product Category Page . . . 181 D.6.10 Contact List Page . . . 181 D.6.11 Edit Contact Page . . . 182 D.6.12 Edit Contact Relationship Page . . . 183 D.6.13 Edit Note Page . . . 184 D.6.14 Registered User List Page . . . 184 D.6.15 Edit Registered User Page . . . 184

D.6.16PMS User Interfaceimplementation . . . 185

D.1 Introduction

D.1

Introduction

TheAspect-Oriented Specification Archetype presented in Appendix C can be used

to specify software systems that share a common architecture based on the LAMP framework. In this appendix, I present an Aspect-Oriented Specification that has been developed for the entire Product Management System (Chapter 6) in accordance with theLAMP Aspect-Oriented Specification Archetype.

D.1.1 Domain models

Figure D.1 shows the Product Management System Aspect-Oriented Specification

documented in this appendix. It comprises thePMS User Interfacedomain model

and PMS Security domain model, several Requirement Sets and the following

reusableKnowledge Domain Models.

Contact Managementdomain model (Section B.2)

Product Managementdomain model (Section B.3)

Securitydomain model (Section B.4)

User Interfacedomain model (Section B.5)

LAMP Frameworkdomain model (Section B.6)

• X

TUMLdomain model (Section B.7)

Linux Operating Systemdomain model (Section B.8)

PHP Web Programming Languagedomain model (Section B.9)

Structured Query Languagedomain model (Section B.10)

APACHE Web Serverdomain model (Section B.11)

MySQL Relational Databasedomain model (Section B.12)

D.1.2 Requirements Notation

Within this appendix,Requirementsare presented using the following notation.

Aspect-Oriented Specification PHP (Programming Language) PMS UI PMS Security (PMSSEC) Structured Query Language (SQL) Security (SEC) User Interface (UI) Contact Management (CM) Product Management (PM) xtUML Security Mechanisms (Linux) Linux Operating System

(Relational Database) MySQL Apache (Web Server) <<instsanceOf>> <<instsanceOf>> RS05 RS06 RS03 RS09 RS10 <<instsanceOf>> RS07 RS04 RS08 <<instsanceOf>> RS01 RS02 <<instsanceOf>> <<instsanceOf>> RS11

Figure D.1: Package diagram depicting the Aspect-Oriented Specification of the

D.2 PMS persistence requirements

RS<rsNum>.R<rNum>:<raName>(<raRef>)

• <refName>=> <domain>[.<element>] (<domainRef>)

• ...

Where:

rsNum: theRequirement Setnumber.

rNum: the number of theRequirementwithin its enclosing set.

raName: then name of theRequirement ArchetyperaRef: RequirementArchetypecross-reference.

refName: the name of a referenced Domain Model or Domain Model

Elementdefined with the aboveRequirement Archetype.

domain: the name of aDomain Model.

element: if applicable, the name of an Element defined within the above

Domain Model

domainRef:Domain Modelcross-reference

D.2

PMS persistence requirements

The Requirements specified in this section relate to the persistence of Product

Management Systemobjects and links amongst them.

D.2.1 Product Managementpersistence

RS02.R1: raPersistentClass(Section C.4.2) • theClass=>PM.Product(Section B.3)

• theSqlDomain=>SQL(Section B.10)

RS02.R2: raPersistentClass(Section C.4.2)

• theClass=>PM.ProductVariant(Section B.3) • theSqlDomain=>SQL(Section B.10)

Aspect-Oriented Specification

RS02.R3: raPersistentClass(Section C.4.2)

• theClass=>PM.ProductCategory(Section B.3) • theSqlDomain=>SQL(Section B.10) RS02.R4: raPersistentAssociation(Section C.4.3) • theAssociation=>PM.R01(Section B.3) • theSqlDomain=>SQL(Section B.10) RS02.R5: raPersistentAssociation(Section C.4.3) • theAssociation=>PM.R02(Section B.3) • theSqlDomain=>SQL(Section B.10) RS02.R6: raPersistentAssociation(Section C.4.3) • theAssociation=>PM.R03(Section B.3) • theSqlDomain=>SQL(Section B.10)

D.2.2 Contact Managementpersistence

RS01.R1: raCorrespondingClasses(Section C.4.4) • theParentClass=>CM.Contact(Section B.2) • theSpecialisedClass=>PM.Supplier(Section B.3)

RS02.R7: raPersistentClass(Section C.4.2) • theClass=>CM.Contact(Section B.2) • theSqlDomain=>SQL(Section B.10)

RS02.R8: raPersistentClass(Section C.4.2)

• theClass=>CM.ContactRelationship(Section B.2) • theSqlDomain=>SQL(Section B.10)

D.2 PMS persistence requirements

RS02.R9: raPersistentClass(Section C.4.2)

• theClass=>CM.RelationshipType(Section B.2) • theSqlDomain=>SQL(Section B.10)

RS02.R10: raPersistentClass(Section C.4.2) • theClass=>CM.Note(Section B.2) • theSqlDomain=>SQL(Section B.10) RS02.R11: raPersistentAssociation(Section C.4.3) • theAssociation=>CM.R01(Section B.2) • theSqlDomain=>SQL(Section B.10) RS02.R12: raPersistentAssociation(Section C.4.3) • theAssociation=>CM.R02(Section B.2) • theSqlDomain=>SQL(Section B.10) RS02.R13: raPersistentAssociation(Section C.4.3) • theAssociation=>CM.R03(Section B.2) • theSqlDomain=>SQL(Section B.10) D.2.3 Securitypersistence RS03.R1: raPersistentClass(Section C.4.2)

• theClass=>SEC.RegisteredUser (Section B.4) • theSqlDomain=>SQL(Section B.10)

RS03.R2: raPersistentClass(Section C.4.2) • theClass=>SEC.Role(Section B.4) • theSqlDomain=>SQL(Section B.10)

Aspect-Oriented Specification

D.2.4 PMS persistence implementation RS10.R1: raMysqlImplementation(Section C.4.1)

• theSqlDomain=>SQL(Section B.10) • theMysqlDomain=>MySQL(Section B.12)

RS11.R1: raMysqlImplementedOnLinux(Section C.5.4) • theMySqlDomain=>MySQL(Section B.12)

• theLinuxDomain=>Linux(Section B.8)

D.3

PMS Security

domain model

This section contains the PMS Security domain model. This model formally specifies theProduct Management Systemsecurity requirements stated in Section 6.2.3 using an instance of theSecuritydomain model (Section B.4).

Table D.1:Product Management Systemsecurity specification Role

Protected Item staffRole customerRole Product C,R,U and D R ProductVariant C,R,U and D R ProductCategory C,R,U and D R

Contact C,R,U and D ContactRelationship C,R,U and D Note C,R,U and D

Table D.1 identifies the Roles, Permissions and Protected Items involved in

Product Management System security. Each column of the table represents an

instance of theSEC.Roleclass. Rows represent instances of theSEC.ProtectedItem

class. Each cell represents a set of Item Permissions which each identify a

Permissiona particularRolehas with respect to aProtected Item. EachPermission

is identified by one of the following letters.

Related documents