isidro ramos polytechnic university of valencia -spain-
DESCRIPTION
User Interface Modeling and Specification in an Object Oriented Environment for Automatic Software Development. Isidro Ramos Polytechnic University of Valencia -SPAIN-. Contents :. Motivation. Introduction. User Interface Development Environments. State of the Art. Generic Architecture. - PowerPoint PPT PresentationTRANSCRIPT
IWWOST’01 Valencia June 01
User Interface Modeling and User Interface Modeling and Specification in an Object Specification in an Object Oriented Environment for Oriented Environment for
Automatic Software Automatic Software Development Development
User Interface Modeling and User Interface Modeling and Specification in an Object Specification in an Object Oriented Environment for Oriented Environment for
Automatic Software Automatic Software Development Development
Isidro Ramos
Polytechnic University of Valencia
-SPAIN-
IWWOST’01 Valencia June 01
Contents :Contents :Contents :Contents :
Motivation. Introduction. User Interface Development Environments. State of the
Art. Generic Architecture. IDEAS: Interface Development Environment within
OASIS. Ontological Model of IDEAS. Conclusions.
IWWOST’01 Valencia June 01
Motivation:Motivation:Motivation:Motivation:
Fill the existing gap in most of the current software development methodologies.
Incorporate a user-oriented development.
User Interface Generation within a methodological and formal support.
IWWOST’01 Valencia June 01
Introducción II:Introducción II:Introducción II:Introducción II:
Development Process integrated in an object oriented software development environment:
OASIS: Object oriented Model UML: Object oriented Methodology.
IDEAS: Enriches the model by integrating a specific model for user interface generation.
This approach includes graphical diagrams to represent the different aspects of the user interface.
IWWOST’01 Valencia June 01
Introduction:Introduction:Introduction:Introduction:Main Goal: Present a formal and methodological approach for the specification of user interfaces integrated in the software development process.
Object-Oriented approach which covers the phases of
ImplementationDesign Analysis
User Interface Model:
1) Task Model
2) User Model
3) Domain Model
4) Dialog Model
* Object-Oriented Specification Language OASIS-UI
5) Presentation Model
* Model-Based Code Generation
IWWOST’01 Valencia June 01
User Interface Development User Interface Development Environments. State of the Environments. State of the
Art.Art.
User Interface Development User Interface Development Environments. State of the Environments. State of the
Art.Art. User Interface Software Tool.Classification:
Language-Based Tools: Require to program in a special purpose language.
Interactive Graphic Specification Tools: They allow an interactive user interface design.
Model-Based Generation Tools: They use a model or high-level specification to generate the UI automatically.
Main Features: Use of Declarative Models to describe all the aspects related to the
user-system interaction. Automatic Generation of the UI starting from the models.
Model: Declarative Specification of the structure and behavior of a software element.
Declaratives because they do not contain procedural code but descriptions with high level of abstraction.
IWWOST’01 Valencia June 01
User Interface Development User Interface Development Environments. State of the Environments. State of the
Art II.Art II.
User Interface Development User Interface Development Environments. State of the Environments. State of the
Art II.Art II. Advantages of the Model-Based approach:
User-centered development process.
Centralised UI specification.
Design tools for an interactive and automated development.
UI design reuse.
Criteria for a UI tool to be considered a Model-based development environment:
(1) It must include a high level, abstract and explicitly represented (declarative) model about the system under development.
(2) It must clearly establish a technologically well supported relation between (1) and the final running UI.
IWWOST’01 Valencia June 01
Generic Architecture:Generic Architecture:Generic Architecture:Generic Architecture:
UI Model
Task, Domainand UserModels
Dialog,PresentationModels
Abstract andConcrete UserInterface
Specifications
InteractiveDevelopment
ModellingTools
DesignProcess
AutomaticGenerationTool
AutomatedDevelopment
KnowledgeBases
DesignKnowledge
Styleguides
Guidelines
ApplicationCode
Compiler /Linker
Executable UICode
FinalApplication
UI Developer
ApplicationDeveloper
AutomaticGenerationTool
AutomaticGenerationTool
IWWOST’01 Valencia June 01
User Interface Development User Interface Development Environments. State of the Art III.Environments. State of the Art III.
User Interface Development User Interface Development Environments. State of the Art III.Environments. State of the Art III.
Task Domain User Dialogue Presentation
UIDE
Clases C++
ADEPT
MASTERMIND CORBA IDL
MECANO
MOBI-D
Modelo ObjetualMIMIC
TRIDENT Modelo E-R
AME
Modelo OO
GENIUS
Modelo E-R
FUSE
EspecificaciónAlgebraica
JANUS
Modelo OO
TADEUS Modelo OO
IDEAS Modelo OO
IWWOST’01 Valencia June 01
IDEAS: IDEAS: IInterface nterface DDevelopment evelopment
EEnvironment within Onvironment within OASASISIS
IDEAS: IDEAS: IInterface nterface DDevelopment evelopment
EEnvironment within Onvironment within OASASISIS
IWWOST’01 Valencia June 01
Domain Modelling Solution Specification
DEVELOPMENT PROCESS
Domain Model (ARCA)Task
Analysis
User
Interface
Model
Task Model
Dialog Model
Presentation Model
System Design
(OASIS)
Application Code
Generation
User Interface Design
(OASIS+IU)
Final Application
User Interface Code
Generation
Use
Cases
User Model
IWWOST’01 Valencia June 01
Model TraceabilityModel TraceabilityModel TraceabilityModel Traceability
refine
Verticalstructuring
Abstractionlevel i
Abstractionlevel i+1
viewi
viewj viewk
Horizontalstructuring
Model Development
IWWOST’01 Valencia June 01
The development processThe development process
AbstractModel
AbstractSpecification
DesignModel
DesingSpecification
traceability reification
Methodological Approach Formal Support(Oasis)
IWWOST’01 Valencia June 01
Model ArchitectureModel ArchitectureModel ArchitectureModel Architecture
implements to
entitiesactions /actors
actandsbussiness
policies
bussinessobjects
abstractsyncronization
abstractvaluations
bussinessrules
designobjects
designsyncronization
designvaluations
desingrules
Formalsupport
Designlevel
requirementlevel
Structuralview
Dynamicview
Functionalview
Deonticview
Ontologicalmodel
Abstractmodel
Designmodel
Semanticalmodeling
STD ,CCS dinamiclogic
deonticlogic
implements to
analysislevel
IWWOST’01 Valencia June 01
REQUIREMENTS MODELREQUIREMENTS MODELREQUIREMENTS MODELREQUIREMENTS MODEL
IWWOST’01 Valencia June 01
User Interface Models :User Interface Models :User Interface Models :User Interface Models :
Domain Model:
It represents the system entities, its attributes, methods and relationships.
Model used by Object Oriented Methodologies to describe the Information System.
Strong relation with UI Models.
IWWOST’01 Valencia June 01
The OntologyThe OntologyThe OntologyThe Ontology What is an ontology?
The specification of a conceptualization (knowledge sharing) A “ set of terms of interest in a particular information domain (T) and the
relationships (R) among them” (ontological commitments) T = {t1,t2,...tn} ; R = {r1,r2,...rn}
ti = (tti, teri); tti TT ;
ri = (tri, tii tfi) and tri T R;
TT = {predicator thing, action, actor, rule} TR = {execute, actand, use, extend, etc.}
FRISCO + UML ( extended use case)
IWWOST’01 Valencia June 01
The Task/Domain ModelThe Task/Domain ModelRequirements LevelRequirements Level
Example: Rent a CarExample: Rent a Car
The Task/Domain ModelThe Task/Domain ModelRequirements LevelRequirements Level
Example: Rent a CarExample: Rent a Car
Rent a Car
Agency Administrator
Client
Car
TopNumberOf CarsClient
Rent
<< extends >>
IWWOST’01 Valencia June 01
IWWOST’01 Valencia June 01
User Interface Models I:User Interface Models I:User Interface Models I:User Interface Models I:
Task Model:
It defines the ordered set of activities and actions the user has to perform to achieve a concrete purpose or goal.
Artifact: essential for task development. Artifact: modeled as objects and represented in the domain model. Strong relation between the task model and the domain model.
Task Description: Objective. Ordered set of actions necessary to achieve the goal. Artifacts involved in the task.
IWWOST’01 Valencia June 01
Task Model: Template (Example: Car Rental)Task: Rent a car. GENERAL FEATURES:
GOAL: The administrator rents a car to the client.PRECONDITION: - The car is available.
- The car is in good conditions. - The client has not more cars than permitted
SUCCESS CONDITIONS: - The administrator checks the car’s availability and state. - The administrator brings the client´s state up to date. - The client receives the solicited car.
FAILURE CONDITIONS: - The car is not available. - The client already has remted the maximum number of cars permitted.
PRIMARY ACTORS: Client, Car.SECONDARY ACTORS: Administrator.TRIGGER ACTION: The client request to rent a car.
NORMAL SCENARIO:.The client request to rent a car..The administrator checks the state and the availability of the requested car ..The administrator checks that the client has not rented the top number of cars permitted..The administrator gives the client the car..The client receives the requested car.
VARIANTS:.The car is not available..The car is not in good state..The client already has the top number of cars permitted to rent.
RELATED INFORMATION:Priority: HighDuration: 15 mins.Frequency: 10/day.
IWWOST’01 Valencia June 01
User Interface Models III:User Interface Models III:User Interface Models III:User Interface Models III:
User Model:
It describes the characteristics of the different types of users. Purpose: Support the creation of individual and personalised User
Interfaces. Adapted UI: The user model represents the different roles of a
user (supervisor, administrator, employee). Adaptative UI: Depends on the type of user (child, adult,
handicapped). User characteristics:
Application Independent (child, adult, handicapped). Application Dependent (supervisor, administrator, employee).
IWWOST’01 Valencia June 01
User Model II:
For each kind of user, the set of tasks he/she can perform is established.
For each kind of user in relation with a concrete task, a projection /specialitation on the actions within the task that he/she can perform is established.
Depending on the user’s particular characteristics (child, adult, etc.), the information and the interaction established by the Dialog Model to show the information contained in the Domain Model is adapted to the user.
User Interface Models III:User Interface Models III:User Interface Models III:User Interface Models III:
IWWOST’01 Valencia June 01
USER MODEL
Scenarios(Tasks):
e1=a11 ... a1n1 AI ={aij , i={1..m} j={1 ..nm} }
e2=a21 ... a2n2 ei A*
.... E={e1, ..., em} A*
em=am1 ... amnm A*={aij , ai1j1, ... aikjk / a A}
: A* A* A*
(A) = {, {a11}, {a12}, ... , {a11, a12},...}
(E) = {, {e1}, ... , {en}, ... , {e1,e2},... {e1, ..., em} }
Users: U = {u1, ... , uk }
User Model:
(1)- R: U (E) P. Ej.: R(U1) = {e1, e2}; R(U2) = ; R(U10) = {e1, ... , em}
(2)- ei = ai1 , ... , aini
P (A) : E Ex.: P (A) ( ) =
P (A) (a Re) = if a (A) then a P (A) (Re) else P (A) (Re)
(3)- User Type : MDial.(str.)
: MDial.(behav.) R’: U View (MDom.)
MDom.(str.)
E
A*
IWWOST’01 Valencia June 01
ANALYSIS MODELANALYSIS MODELANALYSIS MODELANALYSIS MODEL
IWWOST’01 Valencia June 01
The Interface Model The Interface Model (Analysis level)(Analysis level)
collaboration viewcollaboration view11
Communication protocol with the user
Request Car
ReturnCar
administrator
aRental:RentalCar
If ¬(totalContract < nrocarClient)
“Client exceeds top of cars”
IWWOST’01 Valencia June 01
The Interface ModelThe Interface Model Analysis Level: (X,P)- Analysis Level: (X,P)-
analysisanalysiscollaboration viewcollaboration view22
The Interface ModelThe Interface Model Analysis Level: (X,P)- Analysis Level: (X,P)-
analysisanalysiscollaboration viewcollaboration view22
aClient:Client
aCar:Car01
RequestCar
ReceiveCar
administrator
GiveCar
ChargeToAccount
aRental:RentalCar
ReturnCar
DischargeCar
responsabilities of the object community for achiving the task
IWWOST’01 Valencia June 01
IWWOST’01 Valencia June 01
The Interface Analysis Model: The Interface Analysis Model: (A,alfa)-analysis (A,alfa)-analysis
role viewrole view11
The Interface Analysis Model: The Interface Analysis Model: (A,alfa)-analysis (A,alfa)-analysis
role viewrole view11
Clientidentificationtotalcontrats
ReceiveCarReturnCar
Car01registrationNumberfarestateconditionsGiveCarReturnCar
0,1RentalClient
0,* RentalObject
- Abstract action vocabulary- Class by aspect (role)
IWWOST’01 Valencia June 01
IWWOST’01 Valencia June 01
IWWOST’01 Valencia June 01
Role Object StructureRole Object Structure(object role pattern)(object role pattern)
Role Object StructureRole Object Structure(object role pattern)(object role pattern)
Car
Rental Object
Active
Sale Object
class
ClassCore
ClassRole1 ClassRole2
ClassRole
Instance of
Instance of
TaxPayment
RentalCar
SaleCar
IWWOST’01 Valencia June 01
Abstract SpecificationAbstract SpecificationAbstract SpecificationAbstract Specification
An activivity class
Several resource classes
IWWOST’01 Valencia June 01
OASIS class templateOASIS class templateOASIS class templateOASIS class template
a) Type
( A, X, alfa, P )
A : AttributesX : Eventsalfa : cuasi-functions (dynamic logic)P : Process
a) Type
( A, X, alfa, P )
A : AttributesX : Eventsalfa : cuasi-functions (dynamic logic)P : Process
IWWOST’01 Valencia June 01
Activity Type Class SpecificationActivity Type Class Specification
Class AlquilarVehiculo
participants
c: Cliente as alquilador ;
v: Vehiculo01 as objeto_alquiler;
constants attributes
plazoLimAlquiler : nat;
nroVehCliente : nat;
events
solicitarVehiculo(nroDias) calling with members
c.cargarVehiculo(); v.entregarVehiculo(nroDias);
recibirVehiculo(fechaEntrega) calling with members
c.descargarVehiculo();
v.devolverVehiculo(fechaEntrega);
preconditions
solicitarVehiculo if (c.totalContrato < nroVehCliente)
exception(“Cliente excede tope de vehiculos ”);
end class AlquilarVehiculo
participants c: Cliente as alquilador ; v: Vehiculo01 as objeto_alquiler;
IWWOST’01 Valencia June 01
Resources Class Type Resources Class Type SpecificationSpecification
Resources Class Type Resources Class Type SpecificationSpecification
Class Vehiculo01 played by Class Cliente Vehiculo (objetoAlquiler) identification
identification nit : (nit);codigo : (codigo); constant attributes
constant attributes nit :nat;codigo : nat; nombre : stringmodelo : nat; variable attributesmarca : String; totalVehiculos : nat(0);
variable attributes eventstarifa : nat; cargarVehiculo( );disponible : bool(true); descargarVehiculo( );estadoActual : string; valuations
events [cargarVehiculo] totalVehiculos += 1; entregarVehiculo( ); [descargarVehiculo] totalVehiculos += -1; devolverVehiculo( ); end class Cliente
valuations[entregarVehiculo] disponible = ‘false’;
[devolverVehiculo] disponible = ‘true’end Class Vehiculo01
Class Vehiculo01 played by Class Cliente Vehiculo (objetoAlquiler) identification
identification nit : (nit);codigo : (codigo); constant attributes
constant attributes nit :nat;codigo : nat; nombre : stringmodelo : nat; variable attributesmarca : String; totalVehiculos : nat(0);
variable attributes eventstarifa : nat; cargarVehiculo( );disponible : bool(true); descargarVehiculo( );estadoActual : string; valuations
events [cargarVehiculo] totalVehiculos += 1; entregarVehiculo( ); [descargarVehiculo] totalVehiculos += -1; devolverVehiculo( ); end class Cliente
valuations[entregarVehiculo] disponible = ‘false’;
[devolverVehiculo] disponible = ‘true’end Class Vehiculo01
Class Vehiculo01 played byVehiculo(objetoAlquiler)
IWWOST’01 Valencia June 01
IWWOST’01 Valencia June 01
Design Phase :Design Phase :Design Phase :Design Phase :
Dialog Model
OASIS+IU Specification
Interface Model
- Analysis -
- Design -
Object Oriented User Interface Specification Language