The OO-H method The OO-H method
C. Cachero, J. Gómez, A. Párraga, O. PastorC. Cachero, J. Gómez, A. Párraga, O. Pastor
DLSI. Universidad de Alicante DLSI. Universidad de Alicante
DSIC. Universidad Politécnica de Valencia DSIC. Universidad Politécnica de Valencia
SPAIN SPAIN
June 2001Valencia
Valencia June 2001 2
OO-H Objetives
• Definition of new views that provide existing software engineering approaches (UML-compliant models) with interface modelling capabilities.
• Inclusion of reuse mechanisms in the model refinement process.
Valencia June 2001 3
OO-H is not...
• An Application Modelling Tool BUT an Interface Modelling Tool.
• A methodology for developing web sites BUT a method to model and integrate high quality interfaces with preexisting business logic modules.
Valencia June 2001 6
OO-H Design Process
refinementsrefinements
Class DiagramClass Diagram
Customer
Order
ScheduledDelivery
Product
Salesperson
NAD’sNAD’s
BillCustomer
UpdateMarketing
Inventory
AuthorizeCredit
OrderEntry
ScheduleDelivery
APD’s APD’s
htmlxmlwml
aspjsp
pyth
1..N1..N1..N1..N
DESIGN PROCESSDESIGN PROCESS
1. Start from Class Diagram and 1. Start from Class Diagram and Use Case DiagramUse Case Diagram
2. Create a NAD instance2. Create a NAD instance
3. Generate a Default APD3. Generate a Default APD
4. Apply refinements to APD4. Apply refinements to APD
5. Generate deliverables5. Generate deliverables
PatternCatalog
Use Case DiagramUse Case Diagram
Main risks:- Lack of support in the case for filters and connection with logic- Upload of files not supported- Too short a schedule for developing the system
ManageConferenceInfo
DetectInterestConflicts
AssignPapers2PCMembers
Accept/RejectPapers
Pre-registerPC
AssignPapers2PCReviewers
ChangeConferenceStatus
ChangePaperTrack
ChangePaperSubjects
Login
ManageTracks/SubjectsViewReviewersEvaluation
ViewReviews
ViewStatistics
PC Chair
ViewAssignmentStatus
1..N1..N
Valencia June 2001 7
NAD (I): ConstructsModelling Constructs:
Decorators:
• Collections
• Navigation Classes
• Visibility (V|R|H)• Perspectives (P)
• Navigation Targets
• Meta attributes • Patterns (Pt)• Filters (F)
• Navigation Links
MANAGE CONFERENCE
Menu PCChair
Lr: "Entry point"
Ls: "Login"
Lres:"Valid User"
Conference: Conference
Track: Track Subject: Subject
name(V)abstractSubmissionDL(V)paperSubmissionDL(V)reviewDL(V)notificationDL(V)cameraReadyDL(V)conferenceDate(V)conferenceURL(V)
name(V)description(V)
newTrack
name(V)description(V)
newSubject
newConferencechangeConferenceStatuschangeConferenceData
Conference: Conference
Track: Track Subject: Subject
name(V)abstractSubmissionDL(V)paperSubmissionDL(V)reviewDL(V)notificationDL(V)cameraReadyDL(V)conferenceDate(V)conferenceURL(V)
name(V)description(V)
newTrack
name(V)description(V)
newSubject
newConferencechangeConferenceStatuschangeConferenceData
SS
S
To transpas.PRE-REGISTER PROGRAM COMMITTEE.PCMember
Li:"Tracks" Li:"Subjects"
ExP:"Go 2 Conference Site"
Lt:"Pre-register Program Committee"Lr:"Manage Conference"
Ls: "Create Conference"Ls: "Change Conference Status"
Ls: "Change Conference Data"
SLs: "Create Track" S
Ls: "Create Subject"
Valencia June 2001 8
NAD (II): Navigation Links
• Six types: I-Links, T-Links, R-Links, X-Links, S-Links, Sr-Links
• Metamodel attributes:• Visualization• User Interaction• Application Scope
• Activation Links
Valencia June 2001 9
NAD (III): Patterns & Filters
PATTERNS • Indexing • Navigation
FILTERS• In origin (Fo)• In destination (Fd)
• User-defined• Domain-dependent • $, $$
Valencia June 2001 10
NAD (IV): Parameter Interaction
• Defined inside the Service Links
• 5 Introduction Modes• Hidden• Constant• Immediate• Selection• Navigation
• They have an associated Response Link
Associated Expression
Valencia June 2001 11
Review System Class Diagram
writes
reviewReassigned2Reviewer
Track
AssignmentPreferences
Paper
PCMember
1..1
0..*
namedescription
title
typestatusurlurlCameraReady
interestDegree
<<enumeration>>InterestDegree
conflictnoInterestmoderateInterest
<<enumeration>> PaperType
fullshortposter
<<enumeration>>PaperStatus
acceptedrejectedtoBeDiscussed
<<enumeration>>ReviewStatus
undefineddraftfinalvalidated
assignPaperToPCMembers()
paperID
abstract
submitPaperFile()
assignPaper2Track()
3..*
0..*
strongInterest
0..*
0..*
1..*
0..* 0..*
<<singleton>> Conference
Subject
0..*
0..*
0..* 0..* confirmRegistration()
inh_login()
modifyPreferredSubjects()modifyPreferredTracks()
loginpasswd
changeReviewStatus()
ov_modify()
namedescription
$newTrack()
$newSubject()
inh_nameinh_affiliationinh_contactInfoinh_email
reassign2Reviewer()
registered
addInterestDegree()addPaperConflict()
/numberOfReviews
$newPaper()
assignPaper2Subjects()assignPaper2Authors()calculatePaperID()
changePaperStatus()
newConference()
nameabstractSubmissionDL
reviewDLnotificationDL
paperSubmissionDL
processStatuscameraReadyDL
conferenceDateconferenceURL
changeConferenceStatus()changeConferenceData()
$register()
assignPCMember2Papers()
/minRating/maxRating/avgRating
/totalPapersTrack/totalPapersAccepted/totalPapersRejected
/$acceptanceRate
isAssignedPaperhasInterest
Valencia June 2001 12
PCChair Use Case Diagram
Main risks:- Lack of support in the case for filters and connection with logic- Upload of files not supported- Too short a schedule for developing the system
Confirm Registration
Reassign Paper Review
Review Papers
View Review Process Data
Declare Interest
ManagePreferredTopics/Subjects
ValidateFinalReviewerEvaluation
AssignPapers2PCReviewers
ViewProcessStatus/Statistics
ViewAccepted/Rejected Papers
RegisterPCReviewers
ConfirmRegistration
ReadArticle ViewMyReviews
ModifyReview
ReviewArticleViewOtherReviews
IntroPaperInterest
IntroConflicts
PC member
Login
ManageConferenceInfo
DetectInterestConflicts
AssignPapers2PCMembers
Accept/RejectPapers
Pre-registerPC
ChangeConferenceStatus
ChangePaperTrack
ChangePaperSubjects
Login
ManageTracks/SubjectsViewReviewersEvaluation
ViewReviews
ViewStatistics
PC Chair
ViewAssignmentStatus
Manage Conference
Pre-register Program Committee
Assign Papers
Evaluate Papers
View Process Data
Valencia June 2001 13
PCChair NAD (level 0)
Menu PCChair
DN3ASSIGN ARTICLES
DN4PRE-REGISTER
PROGRAM COMMITTEE
DN8EVALUATE ARTICLES
DN2MANAGE CONFERENCE
DN11VIEW
PROCESS DATA
PCChair: PCChair
login(V)
login SLs: "Login"
Lres:"Valid User [Fo: login.result==true]"
Lr: "Entry point"
(View prototype)
Valencia June 2001 14
NAD (V): Final NAD
aConference: Conference
aTrack: Track
aSubject: Subject
name(V)abstractSubmissionDL(V)paperSubmissionDL(V)reviewDL(V)notificationDL(V)cameraReadyDL(V)conferenceDate(V)conferenceURL(V)
name(V)description(V)
newTrack
name(V)description(V)
newSubject
newConferencechangeConferenceStatuschangeConferenceData
SS
S
To transpas.PRE-REGISTER PROGRAM COMMITTEE.PCMember
Li:"Tracks [Fd: self.tracks->includes(aTrack)]"Li:"Subjects [Fd: self.subjects->includes (aSubject)]"
ExP:"Go 2 Conference Site"
Lt:"Pre-register Program Committee [Fd: self.pcMember->includes(aPCMember)]"
Lr:"Manage Conference" (ShowAll)
Ls: "Create Conference [Fo: conference->size()=0]"Ls: "Change Conference Status"
Ls: "Change Conference Data [Fo: conference.size()>0]"
SLs: "Create Track"
SLs: "Create Subject"
(View APD)
(View NC pt)
(View CD pt)(View TS pt)
Valencia June 2001 15
• Abstract pages = XML documents.
• A different template definition (DTD) for each dimension of the interface: tStruct, tForm, tFunction, tLink, tWidget, tLayout, tLocation, tStyle, TExternal(*), TLogic(*). Facilitates Reuse
• Automatic derivation of a default APD out of the NAD.
• Refined by means of patterns and its corresponding transformation rules.
APD (I): General Concepts
Valencia June 2001 16
XMLTEMPLATESXMLTEMPLATES
TFORM TFORM
TLINK TLINK
TWIDGET TWIDGET
TLAYOUT TLAYOUT
TLOCATION TLOCATION
TSTYLE TSTYLE
TSTRUCT TSTRUCT
TEXTERNAL TEXTERNAL
APD (II): Page Taxonomy
TFUNCTION TFUNCTION
TLOGIC TLOGIC
Valencia June 2001 17
Change_Conference_Data
PCMember
Track
Subject
PCChair
ConferenceMenu_PCChair
Login_resp
Change_Conference_Status_resp Create_Conference_resp
Change_Conference_Data
Change_Conference_Data_resp
Create_Track_resp
Create_Subject_resp
Pre-register_Program_Committee
Tracks
Subjects
Manage_Conference
Valid_User
APD (III): Default APD (View NAD)
Valencia June 2001 19
APD Refinements (I) Two types:
• Pattern-driven refinements
• Designer-dependent refinements
OO-H Patterns: Transformation Rules• Python scripts easily integrated in the tool.
• They can affect every construct of the APD.
• The effects don’t necessarily appear on the diagram.
Valencia June 2001 20
Identification Pattern Command Control PatternsPopulation Filtering Pattern Static Navigation Patterns Command Observer Pattern
Cycle Flow Patterns Jump Patterns Confirmation PatternTree Index Annotation Pattern
Sequence Guided Tour Chooser PatternSplit-Join Index Guided Tour Navigation Observer PatternDynamic Showall Navigation Selector Pattern
Navigation PatternsInteraction Patterns
Information Patterns
Dynamic Navigation Patterns
Active Agent Observer Pattern
User Schema Evolution PatternsMultiview Pattern
Location PatternInterface State PatternSystem State Pattern
Destination Announcement PatternError Pattern
Success PatternHelp Pattern
Population Observer Pattern
Interface Behavior Pattern Catalog
Valencia June 2001 21
Final step: the CLD
• It affects the XML content of tExternal, tLayout, tWidget, tLocation and tStyle (pure visualization).
• ‘Multiview pattern’ is supported by means of different layouts.
• The appearance specification is adapted (not lost) when the APD structure changes: design reuse.
Valencia June 2001 22
Menu PCChair
DN3ASSIGN ARTICLES
DN4PRE-REGISTER
PROGRAM COMMITTEE
DN8EVALUATE ARTICLES
DN2MANAGE CONFERENCE
DN11VIEW
PROCESS DATA
PCChair: PCChair
login(V)
login SLs: "Login"
Lres:"Valid User [Fo: login.result==true]"
Lr: "Entry point"
Generated Prototype (I)
Valencia June 2001 23
aConference: Conference
name(V)abstractSubmissionDL(V)paperSubmissionDL(V)reviewDL(V)notificationDL(V)cameraReadyDL(V)conferenceDate(V)conferenceURL(V)
newConferencechangeConferenceStatuschangeConferenceData
S
S
Lr:"Manage Conference" (ShowAll)
Ls: "Create Conference [Fo: conference->size()=0]"
Ls: "Change Conference Status"
Generated Prototype (II)
Valencia June 2001 24
aConference: Conference
aTrack: Track
aSubject: Subject
name(V)abstractSubmissionDL(V)paperSubmissionDL(V)reviewDL(V)notificationDL(V)cameraReadyDL(V)conferenceDate(V)conferenceURL(V)
name(V)description(V)
newTrack
name(V)description(V)
newSubject
newConferencechangeConferenceStatuschangeConferenceDataS
SS
Li:"Tracks [Fd: self.tracks->includes(aTrack)]"Li:"Subjects [Fd: self.subjects->includes (aSubject)]"
Ls: "Change Conference Data [Fo: conference.size()>0]"
Ls: "Create Track"Ls: "Create Subject"
Generated Prototype (III)
Valencia June 2001 25
aConference: Conference
aTrack: Track
aSubject: Subject
name(V)abstractSubmissionDL(V)paperSubmissionDL(V)reviewDL(V)notificationDL(V)cameraReadyDL(V)conferenceDate(V)conferenceURL(V)
name(V)description(V)
newTrack
name(V)description(V)
newSubject
newConferencechangeConferenceStatuschangeConferenceData
S
S
Li:"Tracks [Fd: self.tracks->includes(aTrack)]"
Li:"Subjects [Fd: self.subjects->includes (aSubject)]"
Ls: "Create Track"
Ls: "Create Subject"
Generated Prototype (IV)
Valencia June 2001 26
Main Contributions• Modelling constructs for the definition of user-service interaction
• Taxonomy of XML templates tackling the different perspectives involved in interface definition
• Notion of Transformation Rule for Pattern implementation
• Case Tool to support the OO-H design process, with shortcuts for the construction of the different diagrams
Valencia June 2001 27
Future Work • Detection of new Patterns and inclusion of correspoding TR in the CASE tool
• Inclusion of Frameworks, with the same TR philosophy
• Inclusion of Advanced Personalization Features
• Event Modelling
• Client Logic Modelling
• ...
Valencia June 2001 28
For further comments...
THANKS FOR YOUR ATTENTION!!!
Top Related