agile software development: the wisdom method nuno jardim nunesjoão falcão e cunha universidade da...

40
Agile Software Development: The Wisdom Method Nuno Jardim Nunes João Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências da Computação Faculdade de Engenharia njn @uma. pt [email protected] http:// 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 Usuario Denia, España, 15.03.2002

Upload: internet

Post on 22-Apr-2015

103 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 2: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 3: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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;

Page 4: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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.

Page 5: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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;

Page 6: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 7: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 8: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 9: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 10: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 11: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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%

Page 12: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

O Contexto de Desenvolvimento: Small Software Development Companies (SSDs)

– [Dyba, 2000]

Page 13: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 14: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 15: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 16: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 17: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 18: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 19: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

Os Elementos da Interface com o Utilizador Integram a Arquitectura Conceptual

Page 20: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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)

Page 21: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 22: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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:

Page 23: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Print

(...)

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

Page 24: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 25: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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.

Page 26: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 27: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 28: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 29: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 30: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 31: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 32: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 33: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 34: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

Ferramentas: De UML (XMI) para AUIML

XSLTTransformations

AutomaticGeneration

Page 35: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 36: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 37: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

Padrões de Interface

Page 38: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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

Page 39: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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.

Page 40: Agile Software Development: The Wisdom Method Nuno Jardim NunesJoão Falcão e Cunha Universidade da Madeira Universidade do Porto Dep. de Matemática – Ciências

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,