The OO-H method C. Cachero, J. Gómez, A. Párraga, O. Pastor DLSI. Universidad de Alicante DSIC....

27
The OO-H method The OO-H method C. Cachero, J. Gómez, A. Párraga, C. Cachero, J. Gómez, A. Párraga, O. Pastor O. Pastor DLSI. Universidad de Alicante DLSI. Universidad de Alicante DSIC. Universidad Politécnica de DSIC. Universidad Politécnica de Valencia Valencia June 2001 Valencia
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    3

Transcript of The OO-H method C. Cachero, J. Gómez, A. Párraga, O. Pastor DLSI. Universidad de Alicante DSIC....

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 5

Pattern Catalog

OO-H: an overview

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 18

Example of Template: TLink

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!!!

[email protected]

[email protected]

[email protected]

[email protected]