Agile Software Development: The Wisdom Method
Nuno Jardim Nunes João Falcão e CunhaUniversidade da Madeira Universidade do PortoDep. de Matemática – Ciências da Computação Faculdade de [email protected] [email protected]://math.uma.pt http://www.fe.up.pt
"People Propose, Science Studies, Technology Conforms"Donald Norman person-centered motto for the XXI century
I Taller Internacional de Modelado de Interfaces de UsuarioDenia, España, 15.03.2002
Sumário
Motivação Resumo do Estado da Arte O Processo Wisdom Os Modelos de Arquitectura Wisdom A Notação Wisdom O Método Wisdom
– Exemplos de dois projectos reais
Suporte de Ferramentas Padrões de Interface Conclusões e Desenvolvimentos Futuros
Motivação
A natureza da Eng. de Software está a mudar:– As pequenas empresas e “startups” desempenham um
papel cada vez mais importante em novos e emergentes segmentos de mercado (entertenimento, internet, negócio electrónico, dispositivos de informação, etc.);
– A informática está acessível de forma mais diversa e distinta, envolvendo diferentes técnicas, tecnologias e estilos de interacção;
– Existe claramente um movimento de uma “juventude centrada na tecnologia” para uma “maturidade centrada nos consumidores” – os novos consumidores preferem a eficiência, fiabilidade, baixo custo e conveniência em detrimento da novidade tecnológica;
Motivação
A mudança de produtos centrados na tecnologia para produtos centrados em pessoas [Norman, 1999]
– Enquanto o desempenho tecnológico, a fiabilidade e o custo estão aquém das necessidades dos clientes, o mercado é dominado pelos “early adopters”
– Mas a grande maioria dos clientes são “late adopters” – esperam até que a tecnologia amadureça e insistem na conveniência, facilidade de utilização e valor.
Motivação
A Engenharia de Software tem que:– Adaptar os métodos, técnicas e tecnologias tradicionais
para trabalhar com estilos de desenvolvimento não convencionais: evolutivos, rápidos, extremos...
– Integrar técnicas da Interacção Homem-Máquina para permitir a produção de produtos de software eficientes, fiáveis, aprazíveis e convenientes;
– A facilidade de utilização é hoje em dia um factor crítico de sucesso empresarial - a Internet e a naturidade tecnológica modificaram a natureza dos produtos de software
• cada vez mais os clientes experimentam a interface com o utilizador ANTES de comprarem os produtos ou serviços;
A Situação Actual: Processo
O Processo Unificado [Jacobson et al 1999]
Requirements
Design
Implementation
Test
Analysis
PreliminaryIteration(s)
Iter.#1
Iter.#2
Iter.#n
Iter.#n+1
Iterations
Iter.#n+2
Iter.#m
Iter.#m+1
Core Workflows Inception Elaboration Construction Transition
Phases
A Situação Actual: Arquitectura
O Modelo Arquitectural 4+1 [Kruchten 1995]
Logical View
View
FunctionalityEnd-user
Implementation View
ProgrammersSoftware management
Use Case View
Process View Deployment View
System integrators System engineeringPerformanceScalabilityThroughput
System topologyDelivery, installation
Communication
A Situação Actual: Notação
O UML– [Castellani, 1999]
BehaviorDiagrams
Use caseDiagrams
ClassDiagrams
ActivityDiagrams
StatechartDiagrams
SequenceDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
InteractionDiagrams
Use-caseDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StructuralDiagrams
Number ofConcepts
7
42
7
33
23
6
9
11
11
7
49
32
71
11
11
BasicConcepts
84
Total233
IHM
O Outro lado da Barricada...– Usability
Engineering Lifecycle [Mayhew, 2000]
User ProfileTask
Analysis
PlatformCapabilities/Constraints
GeneralDesign
Principles
UsabilityGoals
Work Re-engineering
ConceptualModeling
(CM) Design
CM Mockups
Iterative CMEvaluation
Requirements Analysis
Screen DesignStandards
(SDS)
SDSPrototyping
Iterative SDSEvaluation
Detailed UserInterface
Design (DUID)
IterativeDUID
Evaluation
Design/Test/Development
No Yes No Yes
No Yes
No
Yes
Style Guide Style Guide
Style Guide
Meet UsabilityGoals?
Meet UsabilityGoals?
Meet UsabilityGoals?
All FunctionalityAddressed?
Installation
UserFeedback
No
Yes
All IssuesResolved?
InstallationDone
Style Guide
Novidades...
Métodos UC-OO (ou OO&HCI)– Idiom, Ovid, Usage-centered Design, Wisdom
Inception Elaboration Construction Transition
User ProfileTask Analysis
Prototyping
UI Design
UI Implementation
Usability TestingIter #1
Iter #2
Iter #n
Iter #n+1
Iter #n+2
Iter #m
Iter #m+1
Preliminary Iter.
4 Iterative Phases
Requirements
Analysis
Design
Implementation
Test
Un
ifie
d D
ev
elo
pm
en
t P
roc
es
sW
ork
flo
ws
Ad
ap
ted
fro
m [
US
DP
]U
se
r-C
en
tere
d P
roc
es
sW
ork
flo
ws
Pro
po
sed
UI Principles andStyle Guides
O Contexto de Desenvolvimento: Small Software Development Companies (SSDs)
US Economic
Census 1997
Custom
Comput
er Progr.
Services
Perc. of
Total
Software
Publishe
rs
Perc. of
Total
Total Perc. of
Total
Total of firms
Number of Firms 29 248 9 880 39 128
Establishments 31 624 12 090 43 714
Paid Employees 318 198 266 380 584 578
Receipts ($1,000) 38 300
515
61 699
420
99 999
935
Payroll ($1,000) 18 417
084
18 386
784
36 803
868
Single establ. Firms 28 222 96,5% 9 100 92,1% 37 322 95,4%
Multi establ. Firms 1 026 3,5% 780 7,9% 1 806 4,1%
Firms < 50 employees 0
Number of firms 18 348 62,7% 7 409 75,0% 25 757 65,8%
Paid Employees 107 028 33,6% 63 041 23,7% 170 069 29,1%
Receipts ($1,000) 12 921
889
33,7%
8 233 101 13,3%
21 154
990 21,2%
Payroll ($1,000) 6 100 884 33,1% 3 298 093 17,9% 9 398 977 25,5%
Top 50 firms in Sector 0
Establishments 1 253 4,0% 855 7,1% 2 108 4,8%
Paid Employees 79 775 25,1% 84 999 31,9% 164 774 28,2%
Receipts ($1,000) 10 330
539
27,0% 35 265
678 57,2%
45 596
217 45,6%
Payroll ($1,000) 4 720 686 25,6%
7 898 707 43,0%
12 619
393 34,3%
O Contexto de Desenvolvimento: Small Software Development Companies (SSDs)
– [Dyba, 2000]
O ProcessoWisdom
– Um novo enquadramento especialmente adaptado para SSDs, que promove um modelo de prototipificação evolutiva, rápido e centrado nos utilizadores.
Inception Elaboration Construction Transition
Prototyping/Implementation
PrototypeEvaluation/ Test
Evol. #1
Evol. #2
Evol. #n
Evol. #n+1
Evol. #n+2
Evol. #m
Evol. #m+1
Preliminary evolution
4 Evolutionary PhasesWisdom Activities
WhitewaterEvolution
ProcessWorkflows
Code/ Compile/Build/ Deploy/ Test
ChaoticDevelopment
Prototyping/Implementation
PrototypeEvaluation/ Test
Interiorise project
Understandsystem context
Essential taskmodeling
WhitewaterEvolution
User profilingRequirements
Evol. #1
Evol. #2
Evol. #n
Evol. #n+1
Evol. #n+2
Evol. #m
Evol. #m+1
Preliminary evolution
Prototyping/Implementation
PrototypeEvaluation/ Test
Evol. #1
Evol. #2
Evol. #n
Evol. #n+1
Evol. #n+2
Evol. #m
Evol. #m+1
Preliminary evolution
Interiorise project
Understandsystem context
Essential taskmodeling
Internal systemanalysis
Interface architecturedesign
Requirements
Analysis
WhitewaterEvolution
User profiling
Evol. #1
Evol. #2
Evol. #n
Evol. #n+1
Evol. #n+2
Evol. #m
Evol. #m+1
Preliminary evolution
O Processo Wisdom: Guiado por Casos de Utilização Essenciais e Fluxos de Tarefas
Conventional Use-case: Withdraw Money
(Transcription from [Kruchten 1999, pp. 96-97])
1. The use case begins when the Client inserts an ATM card. The system reads andvalidates the information on the card.
2. System prompts for PIN. The Client enters PIN. The system validates the PIN.3. System asks which operation the client wishes to perform. Client selects “Cash
withdrawal.”4. System requests amounts. Client enters amount.5. System requests account type. Client selects account type (checking, savings,
credit).6. System communicates with the ATM network to validate account ID, PIN, and
availability of the amount requested.7. System asks the client whether he or she wants a receipt. This step is performed
only if there is paper left to print the receipt.8. System asks the client to withdraw the card. Client withdraws card. (This is a
security measure to ensure that Clients do not leave their cards in the machine.)9. System dispenses the requested amount of cash.10. System prints receipt.11. The use case ends.
Structured Use-case: Withdraw Money
(Originally proposed by [Wirsf-Brock 1993])
User intentions System responsibilitiesInsert card in ATM
Read CardRequest PIN
Enter PINVerify PINDisplay option menu
Select optionDisplay account menu
Select accountPrompt for Amount
Enter amountDisplay amount
Confirm accountReturn Card
Take cardDispense cash if available
Essential Use-case: Withdraw Money
(Transcription from [Constantine and Lockwood 1999, p. 105])
User intentions System responsibilitiesIdentify self
Verify identityOffer choices
ChooseDispense cash
Take cash
O Processo Wisdom: Guiado por Casos de Utilização Essenciais e Fluxos de Tarefas
Conventional Use-case: Withdraw Money
(Transcription from [Kruchten 1999, pp. 96-97])
1. The use case begins when the Client inserts an ATM card. The system reads andvalidates the information on the card.
2. System prompts for PIN. The Client enters PIN. The system validates the PIN.3. System asks which operation the client wishes to perform. Client selects “Cash
withdrawal.”4. System requests amounts. Client enters amount.5. System requests account type. Client selects account type (checking, savings,
credit).6. System communicates with the ATM network to validate account ID, PIN, and
availability of the amount requested.7. System asks the client whether he or she wants a receipt. This step is performed
only if there is paper left to print the receipt.8. System asks the client to withdraw the card. Client withdraws card. (This is a
security measure to ensure that Clients do not leave their cards in the machine.)9. System dispenses the requested amount of cash.10. System prints receipt.11. The use case ends.
Structured Use-case: Withdraw Money
(Originally proposed by [Wirsf-Brock 1993])
User intentions System responsibilitiesInsert card in ATM
Read CardRequest PIN
Enter PINVerify PINDisplay option menu
Select optionDisplay account menu
Select accountPrompt for Amount
Enter amountDisplay amount
Confirm accountReturn Card
Take cardDispense cash if available
Essential Use-case: Withdraw Money
(Transcription from [Constantine and Lockwood 1999, p. 105])
User intentions System responsibilitiesIdentify self
Verify identityOffer choices
ChooseDispense cash
Take cash
O Processo Wisdom: Guiado por Casos de Utilização Essenciais e Fluxos de Tarefas
Trigger:User wants towithdraw cash
Identify Self
Verify Identity
Offer Choices
Choose toWithdraw Cash
Dispense Cash
Specify Amount
Identify Self
ResultUser gets cash
and leaves
WithdrawPossible?
Yes
Verify Identity
ResultUser doesn't getcash and leaves
Offer Choices
Choose to WithdrawCash
Specify Amount
Get Cash and Leave
Dispense Cash
[Withdraw Possible]
Warn that Withdraw isnot Possible
System ResponsibilitiesUser ActionsSystem ResponsibilitiesUser Actions
No
Check if Withdraw isPossible
[Withdraw impossible]
Offer informativefeedback on failure
Multiplepossibilities of
failure: no cash, noprovision...
[ID OK]
Inform of IdentificationProblem
[ID Not OK]
Designcompromise:
tolerate error vs.ensure security
Adapted Bridge Task Flows Wisdom Essential Task Flows
Os Modelos de Arquitectura Wisdom
A Arquitectura de Modelos– Uma nova arquitectura de modelos que define um conjunto de
modelos UML que permitem: modelação de papeis de utilizadores, de interacção, de diálogo homem-máquina e de aspectos de apresentação.
Business ordomain model
Use casemodel
Analysismodel
Interactionmodel
Design model
DialogueModel
PresentationModel
ImplementationModel
AnalysisWorkflow
RequirementsWorkflow
DesignWorkflow
WhitewaterEvolutionWorkflow
User rolemodel
Os Modelos de Arquitectura Wisdom
A Arquitectura de Interface com o Utilizador– Uma extensão original do enquadramento de análise do UML que
permita a integração de componentes arquitecturais da interface com o utilizador no enquadramento de análise convencional OO.
Behaviour
Interface(non-human)
Dialogue
Presentation
Information
Analysis model Interaction model
Os Elementos da Interface com o Utilizador Integram a Arquitectura Conceptual
Os Fluxos de Tarefa Essenciais Guiam a Arquitectura Conceptual
Ask to make reservation
Evaluate alternatives
Get confirmation and leave
Provide reservation details
Identify self
Evaluate proposal
[ reject proposal ]
[ reject alternatives ]
Confirm alternative for reservation
[ accept alternative ]
Ask reservation details
Ask customer identification
[ confirm reservation ]
Ask to create customer
[not in system]
Enter reservation details
[in system]
Get reservation details
Get customer identification
Inform availability and price
Inform alternatives
Check availability and price
Check if customer is in system
Create customer
[availability]
Provide alternatives
[no availability]
Alternatives calculated variating different criteria: room type, dates, etc.
Update availability
Create reservation
Confirm reservation
SystemClerkCustomer
Customer Browser
Customer Editor
Room Browser
Reservation Browser
Reservation Editor
Bill Editor
Availability Browser
Period
(from Analysis Model)
Room
(from Analysis Model)
Reservation
(from Analysis Model)
Bill
(from Analysis Model)
Stay
(from Analysis Model)
Identify Customer
Create Customer
Customer
(from Analysis Model)
Assign Room
Room scheduler
(from Analysis Model)
Create Reservation
Check availability
Availability Handler
(from Analysis Model)
Select Reservation Alternatives
Reservation handler
(from Analysis Model)
Bill customer Payment handler
(from Analysis Model)
Notação
A Notação Wisdom– Um conjunto
de notações compatíveis com o UML que suportam a modelação eficiente e efectiva de sistemas interactivos.
– Cerca de 29% do nº total de conceitos do UML (v1.1).
StructuralDiagrams
BehaviorDiagramsInternal system
design
Prototyping/Implementation
PrototypeEvaluation/ Test
Interioriseproject
Requirementsdiscovery
User interfacedesign
Tool/platformdependent
artifacts
Internal systemanalysis
Interfacearchitecture design
WisdomActivities
Models UMLDiagrams
Business ordomain model
Use case model
Analysis model
Interaction model
Design model
Dialogue Model
Presentation Model
ImplementationModel
AnalysisWorkflow
RequirementsWorkflow
DesignWorkflow
WhitewaterEvolutionWorkflow
User role model
ProcessWorkflow
Use caseDiagrams
ClassDiagrams
ActivityDiagrams
StatechartDiagrams
Databases
Components
Code,executables...
Use-caseDiagrams
Notação: Das sessões participatórias ao formalismo do UML
Short Name
Resembles:
Specializes:
Includes:
Incumbents:
Interaction:
Usability criteria:
Environment:
Longer Description
Short Name
Protocols:
Technologies:
Performance:
Longer Description
Short Name
Usability goals:
Priority:
Risks:
Estimated effort:
Longer Description
Supported actors:
Generalizes:
Extends:
Includes:
...a Todos os Níveis de Desenvolvimento
<<View>>Customer Reservations
CustomerCurrent, past and prospectivecustomers
Name
Address
Phone #Preferences
Room#
CreateViewDeleteEdit
SaveCheck inPrintCheck out
IÕm in
Hotel
<<View>>Customer general info
<<output elements>>Reservation #
In date
Out dateRoom #(...)
<<actions>>Check out
(...)
<<output elements>>
NameAddress
Phone #
PreferencesRoom#
<<actions>>
Create
DeleteCheck in
Check out
(...)
The Brige Output of Part 2[Dayton et al, 1998]
The Wisdom Views
<<navigates>>
User Interface Prototype
Reservation
In me
Reservation
Customer General Info: Nuno Nunes
Customer Edit View Windows Help
10/4/97 15/4/97
15/3/98
10/4/99 14/7/99
122
124
234
Room #Date Out
123456
Res# Date In
20/3/98
Customer General Info: Nuno Nunes
Customer Edit View Windows Help
Nuno Nunes
Campus Universit‡rio da Penteada
Name:
Address:
Zip Code: 9000 City: Funchal
Country: Portugal
Phone: +351291705150 Fax: +351291705199
Preferences:
Smoking: Yes
Location: Sea View
Bed: King
Exemplos de Aplicação do Wisdom
Dois Exemplos Reais de Projectos com Aplicação do Wisdom– Um repositório de documentos e desenhos para uma empresa de
construção• Equipa de desenvolvimento reduzida (2 pessoas)• Projecto de média escala (440 homem.hora)• Conceitos conhecidos (repositório de dados) aplicados a um domínio distinto• Interface Web (ASP, SQL Server, Active X) + COTS• 50 evoluções• Avaliação e testes de usabilidade contínuos
– Um Sistemas de Reservas para uma Companhia de Aviação• Equipa de desenvolvimento reduzida (2 pessoas)• Projecto de pequena escala (120 homem.hora)• Domínio e modelo de negócio complexos• Multiplas Interfaces (Web, Windows, Integração com ferramentas de escritório)• 20 evoluções em 3 semanas (estável por volta da evol. 15)• Envolvimento contínuo e activo dos utilizadores finais (são esperados 200 no
total)• Avaliação e testes de usabilidade contínuos
Um Projecto TípicoUser role
model
Domainmodel
Businessmodel
Essentialuse-cases
Essentialtask flows
Essential use-casemodel
Architectural models(analysis & interaction)
human actors(salient and distinguishing
characteristics)
glossary terms(consistency)
Businessperspective
DevelopmentPlanning
Prioritization byclusters of related
essential use-cases
identification ofarchitectural
significant elements
WhitewaterEvolution
PrototypeEvaluation
guide
Prototypegoals
PrototypeReleasedUser
approvalStable
evolution
prototype failsto meet goals
next set of relatedessential use-cases
new or changingrequirements
Robustness &overall perspective
Businessperspective
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
Jun-01 Jul-01 Ago-01 Set-01 Out-01 Nov-01
0
5
10
15
20
25
30
35
Nº Res.
Evol.
Exemplo: Casos de Utilização Essenciais e Fluxos de Tarefas
Add Document
Remove Document
Define People Interested in Document
Visualize Document
Modify Document
Get Document
Reserve Document
Put Document
Cancel Reservation
User
(from Use Case View)
Define Document Permissions
<<include>>
<<resembles>>
Identify Document
Ask to Reserve Document
Specify Reservation Comment
Specify Local Destination Folder
Check if Document is Reserved
Inform Document is Already Reserved
Download Document
Save Document to Local Folder
: Document Browser
: Version Editor
Long delays can happen! Provide download feeback.
[ No ]
[ Yes ]
SystemUser
Exemplo: Modelo de Casos de Util. Essenc.
«» «»
«essential use case»Book/Modify Reservation
«human actor»Travel Agent
«» «»«essential use case»
Create/Modify Allotment
«human actor»Tour Operator
Manager
«» «»
«essential use case»Cancel Reservation
«» «»
«essential use case»Check Flight Availability
«» «»
«essential use case»Issue Reservation
«» «»
«essential use case»Create/Modify Tariff
«» «»
«essential use case»Supervise Operation
«includes»
«» «»
«essential use case»Check Reservation Cost
«» «»
«essential use case»Create/Modify Flight
«» «»
«essential use case»Change Flight Availability <<includes>>
«human actor»Tour OperatorReservations
«» «»
«essential use case»Create/Modify Airport
«» «»
«essential use case»Change Reservation
Owner/State
<<resembles>>
<<includes>>
Exemplo:Fluxos de Tarefa Essenciais
Travel Agent System
«trigger»Wants to book a flight for
N passengers
Specifies flight and tariff
Check availability forflight, tariff and number of
passengers
Round trip reservation?
Book Reservation
Specifies number ofpassengers
[has availability]
Specified flight and tariff
[Yes][No]
Confirm Reservation
Check availability forflight, tariff and number of
seats
[has availability]
[no availability]
[no availability]
Informs noavailability
Updates flightavailability
Return temporaryreservation code
Get reservation code
Some tariffs implyanticipated issuing ofticket
Lock reservations onrequest to avoidconcurrency problems
Travel Agent System
«trigger»Wants to check flightavailability for a client
Specifies Date
Returns flight availabilityfor dates and tariffs
Check availability
Can only show 9 whennumber o seats is >9 toavoid “ghost” reservations
Check Flight Availability
Specifies origin anddestionation
Could providealternatives andround-trip
Exemplo: Arquitectura
Document Editor
Document Browser
Permission Handler
(from Analysis Model)
User&Group Handler
(from Analysis Model)
Permission Browser
(from Permission Interaction)
Permissions Editor
(from Permission Interaction)
Version Editor
Modify Document
Remove Document
Add Document
Define Document Permissions
Get Document
Put Document
Visualize Document
Reserve Document
Cancel Reservation
Document Handler
(from Analysis Model)
Interested EditorUser&Group Browser
(from Users & Groups Interaction)
Document Browser
Define People Interested in Document
Exemplo: Arquitectura
IdentifyReservation
Allotment
Flight
Availability AvailabilityHandler
CheckAvailability
ReservationEditor
ReservationBrowser
IssueReservation
Create/ModifyReservation
ReservationHandler
Reservation
Issue Itinerary
Itinerary/TicketIssuer
Itinerary Handler
Ticket
Flight BrowserCreate/ModifyFlight
Flight Handler
Create/ModifyAllotment
AllotmentManager
AllotmentBrowser
«human actor»Travel Agent
«human actor»Tour Operator
Manager
Issue TicketTicket Handler
«human actor»Tour OperatorReservations
AirportBrowser
Create/ModifyAirport
Create/ModifyUser
User Browser
Create/ModifyEntity
Entity Browser
User Handler
Entity Handler
Airport Handler
Tariff BrowserCreate/Modify
TariffTariff HandlerTariff
Airport
User
Entity
Party
CancelReservation
ReservationBrowser
ReservationDetails
«contains»
«contains»
«contains»
Res. CriteriaSelector
Reservation List
Allotment List
Allotment Details
«contains»
«contains»
«navigates»
ReservationEditor
Login
«navigates»
«navigates»
Tariff/Quant/PriceList
«contains»
Airport List
Airport Details
«contains»
«contains»
AllotmentBrowser
«navigates»
AirportBrowser
Tariff List
Tariff Details
«contains»
«contains»Tariff Browser
«navigates»
Flight List
Flight Details
«contains»
«contains»Flight Browser
«navigates»
Tariff/Quant/Res.List
«contains»
Entity List
Entity Details
«contains»
«contains»Entity Browser
User List
User Details
«contains»
«contains»User Browser
«navigates»
«navigates»
Exemplo: Modelo de Apresentação
Exemplo: Modelo de Apresentação
Archiv e&Folder&Document Browser
Document Browser
<<action>> Add document()<<action>> Remov e document()<<action>> Vizualize document()<<action>> Modif y Document()
<<action>> Def ine People Interested()<<action>> Get Document()
<<action>> Reserv e Document()<<action>> Put Document()
<<action>> Cancel Reserv ation()
(from Document Interaction)
<<Contains>>
Archiv e Browser
(from Archive Interaction)
<<Contains>>
Short Archiv e Inf o
<<output attribute>> Archiv e name
<<Contains>>
Folder Browser
<<action>> Add Folder()<<action>> Remov e Folder()<<action>> Modif y Folder()
<<action>> Def ine Folder Permissions()
(from Folder Interaction)
<<Contains>>
Shor Folder Inf o
<<output attribute>> Folder name
<<Contains>>
Short Document Inf o
<<output attribute>> Document name<<output attribute>> Document v ersion
<<output attribute>> Date modif ied<<output attribute>> Last user
<<Contains>>
Version List
<<output attribute>> In/Out<<output attribute>> Time<<output attribute>> Date<<output attribute>> User
<<Contains>>
SpecifyParameters
CreateReservation
Create/ModifyReservation
Exit
Enter Date Enter Origin Enter StateEnter
PassengerEnter Entity &
UserEnter Code
IdentifyReservation
Find{Application task}Perform Query
<<seqi>>
ReservationOptions
ModifyReservation
IssueReservation
CancelReservation
<<seqi>>
SelectReservation
<<seq>>
<<deact>>
UnlockReservation
0..1 0..1 0..1 0..1 0..1 0..1
0..1
Exemplo: Modelo de Diálogo
Ferramentas: De UML (XMI) para AUIML
XSLTTransformations
AutomaticGeneration
Ferramentas: de CTTe para UML (XMI)
Check availability
Define period Select roomtype
Show & refineavailability
<< seq>>
Enter start & enddate
perform query {application task}
*
Enter start date& duration
Edit period Edit room type
show availability {application task}
refineavailability
Closeavailability
<< deac >>
Submit
{xor}
<<deact>>
<< seq>>
<<seq info
pass>
<<seq info
pass>XSLTTransformations
AutomaticGeneration
Um Conjunto de Ferramentas Flexíveis...
XMIGenerator
XSLTProcessor
WisdomPresentation model
XMI File
XFormsProcessor
XFormsModel
XSLTTransformations
XForms UI
Java UI
Palm OS UI
...
XHTML UI
UI GraphicalEditor
XForms UIXHTML Forms
Java UI...
CascadingStyle Sheets
ApplianceIndependence
End-usercustomization
GraphicalExploration
AutomaticGeneration
Dialoguemodel XSLT
Processor
XSLTTransformations
CTT Tools
Editing,Completeness checkingSimulationStatistics...
AutomaticGeneration
ToolInterchange
Padrões de Interface
Desenvolvimentos Futuros Processo de Software e SPI
• Aumentar o conhecimento sobre as práticas de desenvolvimento em SSDs: processos, ferramentas, métodos, tecnologias, projectos, etc.
• Testes empíricos para fazer “benchmarking” do Wisdom• Melhorar o suporte do Wisdom à gestão do processo de software• Introduzir os conceitos do Wisdom na modelação de negócio
UML e Questões Notacionais• Criar um consenso internacional sobre um conjunto de extensões UML para
desenho centrado nos utilizadores e desenho de interfaces com o utilizador – um profile normalizado (de facto).
• Criar “notações participatórias” para alguns dos conceitos introduzidos na notação Wisdom.
• Melhorar as extensões notacionais tirando partido do aumento de flexibilidade esperado para o UML 2.0;
Ferramentas...• Criar ou adaptar uma ferramenta específica do Wisdom: aumentar a integração
com L4G, supportar múltiplos níveis de abstração e rastreabilidade, automatizar (mas de forma flexível) algumas transformações de modelos, suportar simulação...
• Implementar a ferramenta para geração automática e flexível de interfaces com o utilizador independentes da plataforma.
Padrões• Compilar e documentar uma linguagem de padrões...
Conclusão
Os Engenheiros de Software são também utilizadores das linguagens de modelação, dos métodos, das ferramentas...
Assegurar que os Engenheiros de Software têm acesso a um conjunto eficiente de métodos, ferramentas e técnicas é o primeiro passo para a qualidade e facilidade de utilização em software.
FIM– “Ultimately, the true pace of change is not dictated by the
evolution of science or technology or of ideas, but by the capacities of humans and human social systems to accommodate change. A product, a service, a practice, or a perspective - however new and innovative - can have no impact without acceptance; no significance without change in people and their institutions“.
– Larry Constantine, Back to the Future,
Top Related