WELLINGTON VIEIRA DOS SANTOS - … · Ricardo Satoshi Oyakawa Ass.: _____ FATEC Zona Leste Prof.ª...

74
FACULDADE DE TECNOLOGIA DA ZONA LESTE WELLINGTON VIEIRA DOS SANTOS APLICAÇÃO DA TÉCNICA CRC (CLASSE, RESPONSABILIDADE E COLABORAÇÃO) EM PROJETOS DE SISTEMA DE SOFTWARE ORIENTADO A OBJETOS. ESTUDO DE CASO FATEC ZL SÃO PAULO 2010

Transcript of WELLINGTON VIEIRA DOS SANTOS - … · Ricardo Satoshi Oyakawa Ass.: _____ FATEC Zona Leste Prof.ª...

FACULDADE DE TECNOLOGIA DA ZONA LESTE

WELLINGTON VIEIRA DOS SANTOS

APLICAÇÃO DA TÉCNICA CRC (CLASSE, RESPONSABILIDADE E COLABORAÇÃO) EM PROJETOS DE SISTEMA DE SOFTWARE

ORIENTADO A OBJETOS. ESTUDO DE CASO – FATEC ZL

SÃO PAULO

2010

2

FACULDADE DE TECNOLOGIA DA ZONA LESTE

WELLINGTON VIEIRA DOS SANTOS

APLICAÇÃO DA TÉCNICA CRC (CLASSE, RESPONSABILIDADE E

COLABORAÇÃO) EM PROJETOS DE SISTEMA DE SOFTWARE ORIENTADO A OBJETOS.

ESTUDO DE CASO – FATEC ZL

Monografia apresentada no curso de

Tecnologia em Informática para

Gestão de Negócios na FATEC – ZL

como requisito parcial para obter o

título de Tecnólogo em Informática

para Gestão de Negócios

Orientador: Msc. Wilson Vendramel

SÃO PAULO

2010

3

Nome: Santos, Wellington Vieira dos. Título: APLICAÇÃO DA TÉCNICA CRC (CLASSE, RESPONSABILIDADE E COLABORAÇÃO) EM PROJETOS DE SISTEMA DE SOFTWARE ORIENTADO A OBJETOS. ESTUDO DE CASO – FATEC ZL.

Monografia apresentada no curso de

Tecnologia em Informática para

Gestão de Negócios na FATEC – ZL

como requisito parcial para obter o

título de Tecnólogo em Informática

para Gestão de Negócios

APROVADO EM:

BANCA EXAMINADORA

Prof.º Msc. Wilson Vendramel

Ass.: ____________________________

FATEC Zona Leste

Prof.º Msc. Ricardo Satoshi Oyakawa

Ass.: ____________________________

FATEC Zona Leste

Prof.ª Esp. Cintia Silva Stocchi

Ass.: ____________________________

Senac São Paulo – Unidade Itaquera

4

“À Minha esposa Adriana e nossas filhas Kathleen e

Gabriela pelo grande amor, compreensão e apoio

constante durante a realização deste trabalho”

5

AGRADECIMENTOS

A Deus, por ter me sustentado neste e em todos os momentos da minha vida

A Minha família pelo amor, carinho e atenção incomensuráveis.

Ao professor orientador Wilson Vendramel que, de forma brilhante, norteou-me

para a realização deste trabalho.

A todos os professores e colegas de turma que juntos trilhamos esta importante

etapa de nossas vidas na FATEC ZL.

Aos colegas Ana, Clayton, Danilo, Melanie, Tamires, Luiz, alunos do terceiro

semestre de informática, que de maneira muito prestativa, contribuiram para o

desenvolvimento do estudo de caso deste trabalho.

Aos colegas Caio Cacá, Stefano Teté, Alex Keké e Wellington Peopinho pela

equipe que formaram nos cinco primeiros semestres.

Aos colegas do SENAC Itaquera pelo companherismo e atenção prestados

durante todo o tempo do curso.

Ao SENAC-SP por permitir a aplicação quase plena dos conteúdos

desenvolvidos no curso.

Ao pastor e amigo Renato Mataitis pelo apoio.

6

LISTA DE FIGURAS

Figura 1. Diagramas da UML ........................................................................... 20

Figura 2. Responsabilidades e colaboradores ................................................. 22

Figura 3. Cartão CRC. ...................................................................................... 24

Figura 4. Cartão que representa a classe relatório. ......................................... 32

Figura 5. Cartão que representa a classe veículo. ........................................... 32

Figura 6. Cartão que representa a classe tabelePreço. ................................... 33

Figura 7. Cartão que representa a classe modeloCarro. .................................. 33

Figura 8. Cartão que representa a classe ticket. .............................................. 34

Figura 9. Diagrama de classes sugerido pela sessão CRC do sistema

estacionamento ................................................................................................ 35

Figura 10. Cartão que representa a classe pedido. .......................................... 37

Figura 11. Cartão que representa a classe entrega. ........................................ 37

Figura 12. Cartão que representa a classe encomenda. .................................. 38

Figura 13. Cartão que representa a classe cliente. .......................................... 38

Figura 14. Cartão que representa a classe placa. ............................................ 39

Figura 15. Diagrama de classe sugerido pela sessão CRC do sistema

encomenda de placas ...................................................................................... 40

Figura 16. Cartão que representa a classe Carro. ........................................... 42

Figura 17. Cartão que representa a classe cooperadoTaxista. ........................ 42

Figura 18. Cartão que representa a classe logradouro. ................................... 43

Figura 19. Cartão que representa a classe controleCorrida. ............................ 43

Figura 20. Cartão que representa a classe cliente. .......................................... 44

Figura 21. Diagrama de classe sugerido pela sessão CRC do sistema de radio

táxi .................................................................................................................... 45

Figura 22. Cartão que representa a classe cooperadoTaxista com suas

alterações. ........................................................................................................ 46

Figura 23. Cartão que representa a classe controleCorrida com suas

alterações. ........................................................................................................ 46

Figura 24. Cartão que representa a classe Cliente com suas alterações. ....... 47

Figura 25. Cartão que representa a nova classe identificada, HistoricoVr. ...... 47

Figura 26. Cartão que representa a a nova classe identificada, Corrida. ......... 48

Figura 27. Diagrama de classe construído a partir dos cartões CRC. .............. 49

7

LISTA DE QUADROS

Quadro 1. Cronograma das sessões CRC ....................................................... 29

Quadro 2. Alunos participantes das sessões CRC. .......................................... 29

Quadro 3. Descrição do cenário do sistema de estacionamento. .................... 30

Quadro 4. Descrição do cenário de encomenda de placas. ............................. 36

Quadro 5. Descrição do cenário do sistema de rádio táxi. ............................... 41

8

LISTA DE TABELAS

Tabela 1. Nível de conhecimento em orientação a objetos ............................ 27

Tabela 2. Exemplo de tabela de preço do enunciado do sistema de

estacionamento. ............................................................................................... 31

9

LISTA DE GRÁFICOS

Gráfico 1. Técnicas mais relevantes para a elaboração de diagrama de classes.

......................................................................................................................... 28

10

LISTA DE SIGLAS

CRC – Class, Responsibilities and Collaborations

OO – Object Orientation

UML – Unified Modeling Language

SSOO – Sistema de Software Orientado a Objetos

11

SUMÁRIO

1. INTRODUÇÃO ............................................................................................. 15

2. MODELAGEM DE CLASSES DE ANÁLISE................................................. 17

2.1. Conceitos de orientação a objetos ......................................................... 17

2.2. Fundamentos da UML ........................................................................... 19

2.3. Identificando classes de análise ............................................................ 21

2.4. Responsabilidades e colaborações de uma classe ............................... 22

3. MODELAGEM CRC ..................................................................................... 23

3.1. Propósitos do CRC ................................................................................ 23

3.2. A equipe CRC ........................................................................................ 25

3.3. O ambiente CRC ................................................................................... 25

3.4. A Sessão CRC ....................................................................................... 25

3.5. Definição dos Cenários .......................................................................... 26

4. APLICAÇÃO DA TÉCNICA CRC E ANÁLISE DOS RESULTADOS. ........... 27

4.1. Planejamento das sessões CRC ........................................................... 28

4.2. Cronograma ........................................................................................... 29

4.3. Identificação dos participantes ............................................................... 29

4.4. Documentação das sessões .................................................................. 30

4.4.1. Sistema de estacionamento ............................................................... 30

4.4.1.1. Descrição do cenário do sistema de estacionamento .................. 30

4.4.1.2. Sessão CRC do cenário do sistema de estacionamento. ............ 31

4.4.2.3. Avaliação da sessão .................................................................... 34

4.4.2. Sistema de encomenda de placas ..................................................... 35

4.4.2.1. Descrição do cenário do sistema de encomendas de placas ....... 35

4.4.2.2. Sessão CRC do cenário do sistema de encomenda de placas .... 36

4.4.2.3. Avaliação da sessão .................................................................... 39

4.4.3. Sistema de rádio táxi ......................................................................... 40

4.4.3.1. Descrição do cenário do sistema de rádio táxi ............................. 40

4.4.3.2. Primeira sessão CRC do sistema de rádio táxi ............................ 41

4.4.3.3. Avaliação da primeira sessão....................................................... 44

4.4.3.4. Segunda sessão do sistema de rádio táxi .................................... 45

4.5. Resultados obtidos ................................................................................ 49

12

5. CONSIDERAÇÕES FINAIS ......................................................................... 51

REFERÊNCIAS ................................................................................................ 53

ANEXOS .......................................................................................................... 55

APÊNDICES ..................................................................................................... 70

13

Santos, Wellington Vieira dos. APLICAÇÃO DA TÉCNICA CRC (CLASSE, RESPONSABILIDADE E COLABORAÇÃO) EM PROJETOS DE SISTEMA DE SOFTWARE ORIENTADO A OBJETOS. ESTUDO DE CASO – FATEC ZL. 2010. 74 fls. Trabalho de Conclusão de Curso (Tecnólogo em Informática para Gestão de Negócio)

RESUMO

O ensino de análise e desenvolvimento de sistemas atualmente fundamenta-se no paradigma da orientação a objetos. Alunos iniciantes apresentam um alto nível de dificuldade na elaboração de modelos, como o modelo de Classes, utilizados na fase de análise de um sistema de software. O objetivo deste trabalho é conceituar CRC e aplicar a técnica CRC para modelagem de classes de análise em projetos de sistema de software, entre alunos do terceiro semestre do curso de Informática para gestão de negócios da FATEC ZL. Com a realização de sessões (reuniões) intenciona-se, através da atuação dos participantes, a identificação das classes, permitindo maior compreensão na elaboração de diagrama de classes da Unified Modeling Language (UML). Essa técnica traz resultados positivos, por apresentar uma melhora no entendimento de orientação a objetos pelos participantes. Palavras-chave: Técnica CRC, Sessão CRC, Orientação a Objetos, Classes de análise

14

Santos, Wellington Vieira dos. APLICATION CLASS, RESPOSIBILITIES AND

COLABORATIONS (CRC) TECHNIQUE IN DESIGN SYSTEM OF

SOFTWARE OBJECTS ORIENTED. CASE STUDY– FATEC ZL. 2010. 74 f.

Conclusion of Course (Tecnólogo em Informática para Gestão de Negócio).

ABSTRACT The teaching of analysis and development of systems currently bases on the paradigm of the objects orientation. Beginning students present one high level of difficulty in the elaboration of models, as the model of Classes, used in the phase of analysis of a software system. The objective of this work is to appraise CRC and to apply technique CRC for modeling of classes’ analysis, into design system software, between students of the third semester of the business-oriented course of Computer science for management of FATEC ZL. With the accomplishment of sessions (meetings) intend, through the performance of the participants, the identification of the classes, allowing bigger understanding in the elaboration of diagram of classes of Unified Modeling Language (UML). This technique brings positive resulted, for presenting an improvement in the orientation agreement the objects for the participants. Key words: CRC Technique, CRC Session, Objects Orientation, Classes’ Analysis

15

1. INTRODUÇÃO

Com o crescimento das redes de informação e a necessidade do

desenvolvimento de aplicações para muitos fins, aumenta a busca por

especialização na área de sistemas. Isso leva para os cursos técnicos e de

tecnologia em sistema de informação um público bastante eclético. Outro fator

que estimula a procura por esses cursos é a remuneração. Matéria publicada

pela Universia (2006) já apontava para esse fato.

Este trabalho tem por objetivo conceituar CRC e aplicar a técnica CRC para

modelagem de classes de análise em projetos de desenvolvimento de

sistemas de software orientados a objetos.

Em ambientes educacionais podem ser percebidas dificuldades entre os alunos

no desenvolvimento de conteúdos das disciplinas. Tais dificuldades podem ser

causadas por vários fatores e são pesquisadas por especialistas em educação

(THOMASSON; RATCLIFFE; THOMAS, 2006). No ensino da análise e

desenvolvimento sistemas de software essas dificuldades, obviamente,

também existem e possuem suas causas e efeitos.

As metodologias utilizadas para o desenvolvimento deste trabalho serão a

pesquisa bibliográfica, com o intuito de ampliar o conhecimento sobre os

assuntos tratados e dar maior embasamento teórico e a pesquisa-ação que,

segundo Vergara (2005), “tem como objetivo resolver problemas por meio de

ações definidas por pesquisadores e sujeitos envolvidos com a situação

investigada.” A pesquisa-ação busca elaborar e desenvolver conhecimento

teórico. Aplicada entre alunos do terceiro semestre do curso de Informática

para gestão de negócios da FATEC ZL. A realização de sessões (reuniões)

visa, através da atuação dos participantes, identificarem tais classes.

Este trabalho está estruturado em cinco capítulos. Introdução, Modelagem de

classes de análise, Modelagem CRC, Aplicação da técnica CRC e análise dos

16

resultados e Considerações finais. No capítulo segundo são abordados os

conceitos de orientação a objetos, conceitos fundamentais da UML e uma

introdução a responsabilidades e colaborações. No capítulo terceiro é

destacada uma abordagem da modelagem CRC, seu propósito e sua dinâmica

de aplicação. Embora este trabalho utilize uma metodologia de pesquisa-ação,

a FATEC Zona Leste é apresentada como estudo de caso no capítulo quarto.

Este descreve os passos e os resultados obtidos com a aplicação da técnica

CRC, bem como o envolvimento dos participantes, alunos da FATEC ZL na

pesquisa.

17

2. MODELAGEM DE CLASSES DE ANÁLISE

Segundo Bezerra (2007), o modelo de classes evolui conforme são realizadas

as iterações no desenvolvimento do sistema. O modelo vai sendo refinado à

medida que o sistema é desenvolvido, aonde novos elementos vão sendo

inseridos ou eliminados no diagrama. A modelagem de classes existe em três

níveis sucessivos de abstração, a saber: domínio, especificação e

implementação. O modelo de classes de domínio é usado para representar as

principais classes do negócio e não possui detalhamento ou definição das

restrições, que poderão ser incorporadas ou especificadas de acordo com a

solução do problema. Este modelo é criado na fase de análise. Já o modelo de

classes de especificação é uma extensão do modelo de classes de domínio,

onde neste são inseridos detalhes da solução escolhida. Por isso, nesse

modelo algumas classes são especificadas para desenvolver a solução. Este

modelo é desenvolvido na atividade de projeto. E por fim, o modelo de classes

de implementação é uma extensão do modelo de classes de especificação e

corresponde a implementação das classes, da solução, em uma linguagem de

programação, linguagem esta normalmente orientada a objetos.

O modelo de classes de domínio representa termos do domínio do negócio. Seu objetivo é descrever o problema representado pelo sistema a ser desenvolvido; ele não considera características da solução a ser utilizada. Já os modelos de especificação e de implementação consideram detalhes da solução de software a ser utilizada. No entanto, ao contrário do modelo de implementação, o de especificação descreve a solução em um nível mais alto de abstração. (BEZERRA, 2007, p. 97),

2.1. Conceitos de orientação a objetos

Segundo Pressman (2006), se alguém observar ao redor de uma sala, pode se

notar uma coleção de objetos que poderiam ser classificados e definidos de

forma simples e fácil, mas quando o espaço é uma aplicação de software pode

não ser tão fácil compreender esses objetos e seus possíveis atributos e

comportamentos.

18

Para Bezerra (2007), uma característica presente em um sistema de software é

a complexidade de seu desenvolvimento. Essa aumenta conforme o sistema

cresce. Isso pode ser comparado à construção de sistemas habitacionais, pois

quanto maior o projeto, maiores serão as dificuldades e complexidade para sua

execução. E também serve para conceituar a modelagem de um sistema de

software e revela a necessidade da criação de modelos, que possam

representar de forma mais ampla na visão do problema. São várias as razões

para o uso de modelos.

Gerenciamento da complexidade;

Comunicação entre as pessoas envolvidas;

Redução nos custos de desenvolvimento;

Previsão no comportamento futuro do sistema

Um paradigma é a uma forma ou uma maneira de abordar um problema. ”O

paradigma da orientação a objetos visualiza um sistema de software como uma

coleção de agentes interconectados chamados objetos. Cada objeto é

responsável por realizar tarefas específicas...” (BEZERRA, 2007, p. 6). Este

paradigma permite a diminuição da diferença semântica entre a realidade

sendo modelada e os modelos sendo construídos

Bezerra (2007) define objetos como sendo coisas do mundo real, na

terminologia da orientação a objetos. Recebem o nome de operações algumas

ações que um objeto sabe realizar quando solicitado. Todos os conceitos até

aqui abordados são, na verdade, a aplicação do mais básico e único conceito,

o princípio da abstração; “abstração é um processo mental pelo qual nós seres

humanos nos atemos as aspectos mais importantes (relevantes) de alguma

coisa”, ao passo que são ignorados os menos importantes.

Rumbaugh, Booch e Jacobson (2004, p. 215) definem classes como “uma

coleção de objetos que compartilham os mesmos atributos, operações,

19

métodos, relacionamentos e comportamentos e que uma classe representa um

conceito dentro de um sistema sendo modelado.” Dependendo do tipo do

modelo, o conceito pode ser do mundo real (para modelo de análise) ou ele

pode também conter algoritmo e conceitos de programação de computador

(para modelo de projeto) 1

2.2. Fundamentos da UML

A Unified Modeling Language (UML) é uma linguagem padrão para a

modelagem de sistemas de software que permite a elaboração da estrutura de

projetos, definem os criadores da linguagem. “A UML é apenas uma linguagem

e, portanto, é somente parte de método de para desenvolvimento de software”

(BOOCH; RUMBAUGH; JACOBSON, 2005, p. 13). A linguagem UML é

destinada a visualizar, especificar, construir e documentar artefatos de um

sistema complexos de software. Ela fornece regras que tem foco na

representação conceitual e física de um sistema. No modelo conceitual, a UML

especifica três elementos principais, sendo: bloco de construção, regras que

determinam como esses blocos serão utilizados e alguns mecanismos comuns.

Itens, relacionamentos e diagramas são os três tipos de blocos de construção

no vocabulário UML.

De acordo com Booch, Rumbaugh e Jacobson (2005), existem quatro tipos de

itens especificados na UML, e aqui também seus subitens, a saber:

Itens estruturais: representam a parte estática do modelo

o classes

o interfaces

o colaborações

o caso de uso

o classes ativas

o componentes

1 Tradução nossa. Cf. original: “a set the objects that share the same attributes, operations,

methods, relationships and behavior. A class represents a concept within the system being modeled. Depending on the kind of model, the concept may be real-word (for an analysis model), or it may also contain algorithmic and computer implementation concepts (for a design model)”

20

o artefato

o nó

Itens comportamentais: representam a parte dinâmica do modelo

o interação

o máquina de estado

o ação (atividade)

Itens de agrupamento: representam as partes organizacionais do

modelo

o pacote

Itens anotacionais: representam as partes explicativas dos modelos

o notas

Ainda segundo Booch, Rumbaugh e Jacobson (2005), a UML inclui 13

diagramas que tem por objetivo geral a apresentação gráfica de um modelo,

exibindo conjuntos de elementos que incluem itens e relacionamentos.

Diagramas são criados para permitir uma visualização de um sistema sob

diferentes perspectivas. A figura 1 exibe os 13 diagramas da UML, este

trabalho dá ênfase ao diagrama de classes.

Figura 1. Diagramas da UML

Fonte: Bezerra, 2007

21

2.3. Identificando classes de análise

Para Pressman (2006), as classes são identificadas quando são observadas

suas respectivas necessidades dentro do projeto e então, esta classe é

aproveitada como parte do espaço da solução.

Ainda segundo Pressman (2006), classes de análise se manifestam por si

mesmas, por um dos modos como: entidades externas que produzem e

consomem informação a ser usada por um sistema baseado em computador;

coisas que são parte do domínio de informação do problema; ocorrência ou

eventos que ocorrem dentro do contexto da operação; papéis desempenhados

por pessoas que operam o sistema; unidades organizacionais que são

relevantes para a aplicação; lugares que estabelecem o contexto do problema,

ou função macro do sistema; estruturas que definem uma classe de objetos ou

classes relacionadas de objetos.

A identificação das classes também é dividida em duas atividades. Identificar

classes candidatas, primeira atividade, é relativamente fácil, eliminar o conjunto

de classes “desnecessárias”, é a tarefa mais complicada.

... Importante notar que as atividades para identificação de classes candidatas não são sequenciais. (uma não começa quando a outra acaba). Ao contrário, os desenvolvedores intercalam a realização dessas atividades, identificando novas candidatas e removendo candidatas previamente identificadas... (BEZERRA, 2007, p. 137-138)

Para Bezerra (2007), há dois métodos para identificar classes de domínio de

um sistema. Um dirigido a dados e o outro dirigido a responsabilidade.

Método dirigido a dados: enfatiza a estrutura dos conceitos relevantes

para o domínio do negócio. Isso resulta no modelo conceitual;

Método dirigido a responsabilidade: a ênfase está na identificação das

classes a partir de seus comportamentos mais relevantes para o

sistema.

22

Objetos

Colaboradores

O padrão de cooperação(comunicação) entre objetos

Responsabilidades

O que o objeto conhece+

O que o objeto faz

possuemrealizadas por

precisam de

2.4. Responsabilidades e colaborações de uma classe

Nos sistemas de softwares orientados a objetos (SSOO), objetos encapsulam

dados e comportamentos. O comportamento é definido de modo que ele

cumpra suas responsabilidades e essas responsabilidades são definidas como

uma obrigação que o objeto tem no sistema, e por intermédio dessas

responsabilidades um objeto colabora com outros, visando o objetivo sistema,

conforme figura 2. Portanto, “cada objeto tem um conjunto de

responsabilidades dentro do SSOO. Esse objeto tem como cumprir sozinho

algumas dessas responsabilidades. Já para outras responsabilidades, o objeto

necessita da colaboração de outros objetos.” (BEZERRA, 2007, p. 145)

Figura 2. Responsabilidades e colaboradores

Fonte: Bezerra, 2007, p. 146

23

3. MODELAGEM CRC

Segundo Bezerra (2007), essa técnica de modelagem CRC se baseia no

paradigma da orientação a objetos, no que diz respeito a responsabilidades e

colaborações e se mostra eficaz quando alunos iniciantes no desenvolvimento

de modelos e profissionais que não tenham tanta experiência nesse

paradigma, estão envolvidos no processo de identificação de classes do

sistema.

Rubin (1998) define como simples e poderosa técnica de análise orientada a

objetos, a modelagem com o uso dos cartões CRC. A modelagem CRC

frequentemente oferece a inclusão de usuários, analistas e desenvolvedores

nos processos de modelagem, formando entre a equipe de desenvolvimento

um entendimento comum do desenvolvimento do projeto orientado a objetos.

Para Börstler (2005), a interpretação (atuação do participante da sessão) do

cenário é a forma mais efetiva de simular ou explorar situações hipotéticas.

3.1. Propósitos do CRC

Beck (1989) introduziu os cartões CRC com o objetivo de dar uma experiência

direta em objetos para aprendizes, alunos iniciantes em engenharia de

software.

Segundo Börstler (2005), o CRC foi originalmente descrito como uma

ferramenta de ensino da idéia de orientação a objetos para programadores.

São simples ferramentas para informar colaboração na modelagem orientada a

objetos. Muitos educadores adotam essa prática para aproximar o ensino da

tecnologia na orientação a objetos

Apesar de o propósito inicial ser ensinar iniciantes na orientação a objetos, “a

sua simplicidade de notação a tornou particularmente interessante para ser

24

utilizada na identificação de classes” (BEZERRA, 2007, p. 147), conclui sobre a

técnica de modelagem CRC.

Segundo Beck (1989), o cartão CRC caracteriza objetos pelo nome da classe,

suas responsabilidades e colaboradores. Todas as informações dos objetos

devem ser escrita em um cartão com medidas de 4” x 6”, aproximadamente 10

cm x 15 cm , ainda com a vantagem de serem baratos, de fácil leitura, com boa

portabilidade, ou seja, fáceis de manipular. O topo do cartão deve conter o

nome da classe com a primeira letra em maiúsculo, as responsabilidades

devem ser escritas na coluna do lado esquerdo do cartão e os colaboradores,

se existirem, devem ser escritos do lado direito do cartão, conforme figura 3. O

verso do cartão deve conter uma descrição sucinta da classe em questão.

Figura 3. Cartão CRC.

Fonte: Beck (1989, p. 6)

25

3.2. A equipe CRC

Segundo Bezerra (2007), na modelagem CRC, uma equipe composta por

especialista do domínio e desenvolvedores e colaboradores se reúnem e

iniciam a sessão CRC. Essa sessão conta com no máximo seis pessoas.

De acordo com Rubin (1998), usuários do domínio, analistas OO, facilitadores,

documentadores e observadores podem fazer parte de uma sessão CRC, mas

somente os três primeiros atuam ativamente na sessão. Os membros dessa

equipe devem ter algumas características, como por exemplo: Bons usuários

do domínio devem conhecer o negócio que está sendo modelado, ter

pensamento lógico e boa habilidade de comunicação. Bons analistas de projeto

e facilitadores devem entender os processos e metodologia CRC e habilidades

em reuniões e, é claro, entender os processos e metodologia da modelagem

orientada a objetos.

3.3. O ambiente CRC

Para Rubin (1998), a sessão CRC deve acontecer em uma sala ampla, ao

redor de uma mesa de reuniões, que possibilite total a interação uns com os

outros. E uma sala extra pode ser considerada, dependendo da quantidade de

observadores.

3.4. A Sessão CRC

Segundo Bezerra (2007), uma sessão CRC é uma reunião que envolve a

equipe CRC. Ao ser iniciada, cada membro recebe um cartão. Cada cartão

corresponde a uma classe. Uma vez que os participantes têm distribuídos os

cartões, um conjunto de caso de uso é selecionado. E para cada caso de uso

uma sessão será iniciada. Algum membro do grupo simula o ator e dispara a

26

realização do caso de uso. Em uma única sessão o caso de uso pode ser

analisado, dependendo de sua complexidade.

À medida que esse participante simula a interação do autor com o sistema, os demais participantes encenam a colaboração entre objetos que ocorre internamente ao sistema, para que o objetivo do autor seja alcançado. Graças a essa encenação desempenhada pelos participantes da sessão CRC, classes, responsabilidades e colaborações são identificadas. (BEZERRA, 2007, p. 149)

3.5. Definição dos Cenários

O primeiro cenário deve ser definido cuidadosamente, pois segundo Börstler

(2005), iniciantes podem nunca chegar ao fim de quando um cenário é definido

livremente. Um bom cenário deve ter um objetivo claro e bem definido.

27

4. APLICAÇÃO DA TÉCNICA CRC E ANÁLISE DOS RESULTADOS.

Uma pesquisa realizada com 116 alunos dos níveis técnico, do Senac Itaquera

e superior das FATEC Zona Leste (FATEC ZL) e São Caetano do Sul apontou

algumas dificuldades desses estudantes na elaboração de diagrama de classes

da UML. Nessa pesquisa, 75% dos alunos têm entre 16 e 25 anos de idade.

Oitenta e sete por cento cursam o ensino superior e declarem ter baixo nível de

conhecimento em orientação a objetos, 67%, conforme Tabela 1.

Nível de conhecimento com orientação a objetos.

Alto 1 1%

Médio 36 31%

Baixo 78 67%

Nenhum 1 1%

Tabela 1– Nível de conhecimento em orientação a objetos

Fonte: autor

A maioria dos pesquisados é formada por alunos iniciantes em

desenvolvimento de sistemas, e que ainda não cumpriram o ciclo inicial de

análise orientada a objetos. Eles auto-avaliaram em 83% entre baixo e médio

seu nível de conhecimento na elaboração de um diagrama de classes, e os três

itens deste diagrama onde encontram maiores problemas para aplicá-los são

respectivamente: operação abstrata (52%), classe abstrata (43%) e

composição/agregação (33%).

Quando questionados sobre as técnicas mais relevantes para a elaboração de

um diagrama de classes, 26% das respostas apontam para a Modelagem CRC,

conforme apresentado no Gráfico 1.

28

Gráfico 1. Técnicas mais relevantes para a elaboração de diagrama de classes.

Fonte: autor

O objetivo da pesquisa é a aplicação da técnica de Modelagem CRC para

melhorar o entendimento na elaboração de diagrama de classes. Um dado

importante neste sentido também é visto no Gráfico 1, onde 65% dos alunos

responderam Análise de Caso de Uso como sendo mais relevante para a

elaboração de um diagrama de classes. Importante, pois a técnica CRC se

baseia nos cenários dos casos de uso.

O questionário elaborado para a aplicação desta pesquisa consta no

APÊNDICE A.

4.1. Planejamento das sessões CRC

Serão realizadas sessões para a aplicação da técnica CRC em três diferentes

níveis. Para tal, será entregue aos participantes os cenários que comporão as

três situações. Os cenários apresentados são sistemas de rádio táxi,

encomendas de placas e estacionamento. Todos com uma descrição do

domínio, o diagrama de caso de uso e a descrição textual dos casos de uso. E

acontecerão nas dependências da FATEC ZL, na biblioteca.

A primeira sessão deverá ser realizada para identificar as classes,

responsabilidades e colaboradores do sistema de estacionamento. Deverá

26%

65%

8%

2%

0% 20% 40% 60% 80%

Técnicas mais relevantes para elaboração de

diagrama de classe

Outros

Categoria de objetos

Análise de Caso de Uso

CRC

29

durar o tempo necessário para a identificação das principais classes do

sistema, ou até que o condutor da sessão julgue necessário marcar outra

sessão, em concordância com os demais. A segunda e terceira sessões

seguirão os mesmos passos da primeira, mas por se tratar de sistemas

maiores, encomenda de placas e rádio táxi, poderá ser necessária a realização

de mais uma sessão para realizar completamente a modelagem.

4.2. Cronograma

No Quadro 1, é exibida a sequência em que acontecerão as sessões, bem

como o número previsto de sessões CRC para cada sistema.

1. Sistema de estacionamento Uma sessão prevista

2. Sistema de encomenda de placas De uma a duas sessões previstas

3. Sistema de rádio táxi Máximo de três sessões previstas

Quadro 1. Cronograma das sessões CRC

Fonte: autor

4.3. Identificação dos participantes

Alguns alunos do terceiro semestre 2010 do curso de Informática para Gestão

de Negócios da FATEC ZL do vespertino se voluntariaram a participar da das

sessões, relacionados conforme mostra o Quadro 2.

Ana C. S. Esteves 39

Clayton Gertrudes Amorim 21

Danilo Caetano da Silva 26

Melanie Alves Basilio de Souza 20

Tamires Schimith da Silva 19

Quadro 2. Alunos participantes das sessões CRC.2

Fonte: autor.

2 Os alunos voluntários assinaram termo autorizando a publicação de seus nomes neste

trabalho. Uma cópia desta autorização consta no APÊNDICE B.

30

4.4. Documentação das sessões

A documentação das sessões é feita na sequência descrita no cronograma

das sessões, sendo, o sistema de estacionamento, o do sistema de

encomenda de placas e o sistema de rádio táxi.

4.4.1. Sistema de estacionamento

Este é o primeiro sistema a compor um cenário para a aplicação do CRC. Ele

apresenta um menor nível de detalhamento em relação aos demais. Para este

sistema está prevista apenas uma sessão CRC.

4.4.1.1. Descrição do cenário do sistema de estacionamento

O enunciado que descreve o cenário do sistema é exibido no Quadro 2, e a

Tabela 2, descreve as regras para os preços que devem ser praticados.

Quadro 3. Descrição do cenário do sistema de estacionamento.

Fonte: Melo (2006, p. 97-100)

Bruno e seu pai compraram um terreno e inaugurarão um estacionamento. Para ajudar, a

irmã de Bruno está desenvolvendo uma aplicação de controle de estacionamento. Quando

o veículo entra no estacionamento, o atendente observa sua placa e a mesma é

cadastrada, juntamente com o modelo do veículo e sua cor. A hora de entrada é gerada

automaticamente, correspondendo ao momento do cadastramento da placa. Após

estacionar o veículo, o cliente pega o ticket onde está impresso: o número da placa, o

modelo do veículo, a cor, a data e a hora da entrada. Ao retornar ao estacionamento, o

cliente entrega o ticket. O tempo de permanência é calculado. Considerando esse tempo de

permanência, é aplicada a tabela de preços, sabendo-se que a tabela de sábado não é a

mesma dos dias úteis e, às vezes, dependendo da época do ano, os donos lançam

promoções durante os dias úteis. Os donos precisam de relatórios de faturamento diário e

semanal.

31

Dia da semana Valor

Sábado Preço único R$ 3,00

Segunda à sexta

1ª. Hora R$ 2,00

A partir da 2ª. hora

(inteiro ou fração)

R$ 1,00

Tabela 2. Exemplo de tabela de preço do enunciado do sistema de estacionamento.

Fonte: Melo (2006)

Os casos de uso e a descrição textual dos casos de uso encontram-se no

ANEXO A.

4.4.1.2. Sessão CRC do cenário do sistema de estacionamento.

A sessão CRC para o levantamento de classes do sistema de estacionamento

teve início às dezoito horas e vinte minutos do primeiro dia de trabalho da

equipe. Esta teve duração de 68 minutos e contou com a participação de

quatro integrantes. Um atuou como facilitador e leu o enunciado e as

descrições dos casos de uso. Dois atuaram como especialistas do domínio. O

quarto participante atuou como analista. Por algumas vezes o participante que

conduziu a sessão re-leu o cenário. As Figuras de 4 a 8 ilustram as classes

extraídas.

32

Figura 4. Cartão que representa a classe relatório.

Fonte: autor.

Figura 5. Cartão que representa a classe veículo.

Fonte: autor.

33

Figura 6. Cartão que representa a classe tabelePreço.

Fonte: autor.

Figura 7. Cartão que representa a classe modeloCarro.

Fonte: autor.

34

Figura 8. Cartão que representa a classe ticket.

Fonte: autor.

4.4.2.3. Avaliação da sessão

A sessão teve como ponto forte a identificação da principal classe do sistema,

a partir da leitura da descrição dos casos de uso. O ator, que no cenário

representava o papel de ticket, encenou a sequência descrita e, de forma

pontual, identificou as primeiras responsabilidades do objeto. Contudo, apesar

de na sessão terem sido identificadas algumas classes do domínio, a equipe

apresentou uma solução parcial, embora tenha culminado no diagrama

representado pela figura 9.

35

Figura 9. Diagrama de classes sugerido pela sessão CRC do sistema estacionamento

Fonte: autor

4.4.2. Sistema de encomenda de placas

Este sistema apresenta um nível maior de detalhamento em comparação com

o sistema de estacionamento. Para este sistema está prevista apenas uma

sessão CRC.

4.4.2.1. Descrição do cenário do sistema de encomendas de placas

A descrição completa do cenário proposto é exibida no Quadro 4.

36

Quadro 4. Descrição do cenário de encomenda de placas.

Fonte: Melo (2006, p. 61-67)

Os casos de uso e a descrição textual dos casos de uso encontram-se no

ANEXO B.

4.4.2.2. Sessão CRC do cenário do sistema de encomenda de placas

A sessão CRC para o levantamento de classes do sistema de encomenda de

placas teve início às dezoito horas e trinta minutos do segundo dia de trabalho

da equipe. Esta teve duração de 71 minutos e contou com a participação de

cinco integrantes. Um atuou como facilitador, e leu o enunciado e as descrições

dos casos de uso. Dois atuaram como especialistas do domínio. O quarto e o

quinto participante atuaram como analistas. As figuras de 10 a 14 ilustram as

classes extraídas a partir dessa sessão.

João confecciona placas por encomenda. Como o volume dos pedidos tem aumentado, ele pediu ao filho que lhe fizesse uma pequena aplicação que controle: - o cadastro de seus clientes; - as encomendas. Quando ele recebe uma encomenda, João anota num caderninho o nome do cliente e seu telefone. Para a encomenda, ele registra: o tamanho da placa (altura e largura), a frase a ser escrita, cor da placa (branca ou cinza), cor da frase (azul, vermelho, amarelo, preto ou verde), data de entrega, valor do serviço e valor do sinal. A aplicação deve obrigar que o valor do sinal seja de, no mínimo, 50%. Para calcular o valor da placa, as seguintes fórmulas são usadas: área = altura x largura; custo_material = área x R$ 147,30; custo_desenho = número_letras x R$ 0,32; valor_placa = custo_material + custo_desenho. Para calcular o prazo de entrega, considera-se que ele só consegue produzir seis placas por dia. João deseja que o sistema controle os pedidos, calcule o preço final das peças e o prazo de entrega. Para cada encomenda cadastrada, deve ser emitido um recibo em duas vias (cliente e empresa), contendo todos os dados da encomenda e do pagamento.

37

Figura 10. Cartão que representa a classe pedido.

Fonte: autor.

Figura 11. Cartão que representa a classe entrega.

Fonte: autor.

38

Figura 12. Cartão que representa a classe encomenda.

Fonte: autor.

Figura 13. Cartão que representa a classe cliente.

Fonte: autor.

39

Figura 14. Cartão que representa a classe placa.

Fonte: autor.

4.4.2.3. Avaliação da sessão

O enunciado (cenário) para esta sessão apresentou um maior grau de

dificuldade em relação ao primeiro sistema, o de estacionamento. Contudo, foi

possível notar nos participantes um entusiasmo, na medida em que as classes

de domínio eram confirmadas, ainda na leitura do cenário. A equipe se mostrou

muito empenhada na descoberta de novas classes durante a sessão. A

encenação ficou mais evidente a cada linha, que juntos concordavam em

manter, enviar para outra classe ou apagá-la do cartão. O facilitador da sessão

interveio quando necessário e manteve equilibrada a sessão. Re-leituras do

cenário eram frequentemente sugeridas. Os participantes atingiram o objetivo

da sessão, e a partir dos cartões foi possível criar o diagrama de classes

exibido na figura 15.

40

Figura 15. Diagrama de classe sugerido pela sessão CRC do sistema encomenda de placas

Fonte: autor

4.4.3. Sistema de rádio táxi

Este sistema apresenta um nível maior de detalhamento em comparação com

o sistema de encomenda de placas. Para este sistema estavam previstas mais

de uma sessão CRC.

4.4.3.1. Descrição do cenário do sistema de rádio táxi

A descrição completa do cenário proposto para este cenário é descrita no

Quadro 5.

41

Quadro 5. Descrição do cenário do sistema de rádio táxi.

Fonte: Melo (2006)

Maiores detalhes como os casos de uso e suas descrições textuais encontram-

se no ANEXO C.

4.4.3.2. Primeira sessão CRC do sistema de rádio táxi

A sessão CRC para o levantamento de classes do sistema de rádio táxi teve

início às dezoito horas e quarenta minutos do terceiro dia de trabalho da

equipe. Esta teve duração de 75 minutos e contou com a participação de

quatro integrantes. Um atuou como facilitador, e leu o enunciado e as

descrições dos casos de uso. Dois atuaram como especialistas do domínio. O

quarto participante atuou como analista. As figuras de 16 a 20 ilustram as

classes extraídas a partir dessa sessão.

A empresa de Rádio Táxi Mar & Sol precisa de uma aplicação que controle: o cadastro de seus clientes; o cadastro dos cooperados; o cadastro das corridas programadas. Para cada cliente são cadastrados os seguintes dados: código (que deve ser gerado pelo sistema), nome, endereço completo (Iogradouro, número, complemento, bairro, município, estado) e dois telefones de contato. O cliente pode se cadastrar apenas com o nome para agilizar o processo. Quando fizer sua primeira chamada por telefone, seus dados serão atualizados. Para o cooperado (taxista) cadastram-se: nome, CPF, número da carteira de motorista, categoria, data de validade da carteira, número do táxi na cooperativa (conhecido como número de VR), número da placa, modelo do veículo, fabricante, cor do veículo, endereço residencial completo, telefone residencial e celular e data de entrada na Cooperativa. Quando o cooperado se desliga, deve ser cadastrada a data de desligamento. Quando o cliente solicitar uma corrida programada (pedidos com antecedência maior do que meia hora), cadastra-se no controle de corridas: o endereço de saída do carro, o bairro de destino, a data e hora de saída, telefone de contato (se local de saída diferente do cadastro). Se o cliente não for cadastrado, seu cadastro deve ser feito no momento da solicitação do carro. O status dessa corrida deve ser definido como: "aguardando VR". Uma hora antes da corrida programada, a operadora questiona, pelo rádio, aos cooperados que estejam em trânsito, qual deseja pegar a corrida programada. Deve ser cadastrado na aplicação o número da VR do taxista que se candidatou à corrida. Meia hora antes do horário, o cliente deve ser avisado a respeito do número da VR. Antes de avisar ao cliente, o status deve ser assinalado como: "aguardando aviso". Após o aviso, o status muda para "aviso efetuado". Após ser atendido, o status deve ser alterado para: "tripulado". Em qualquer momento a corrida pode ser cancelada pelo passageiro. Se for uma solicitação de carro imediato, a operadora deve retornar à tela, informando o status dentre as opções: "aguardando aviso", "aviso efetuado", "cancelado pelo passageiro" ou "cancelado pela cooperativa por falta de carro". Se um logradouro não estiver na lista, a solicitação não será atendida. Quando o cliente for atendido, o status deve ser alterado para: "tripulado”.

42

Figura 16. Cartão que representa a classe Carro.

Fonte: autor

Figura 17. Cartão que representa a classe cooperadoTaxista.

Fonte: autor

43

Figura 18. Cartão que representa a classe logradouro.

Fonte: autor

Figura 19. Cartão que representa a classe controleCorrida.

Fonte: autor

44

Figura 20. Cartão que representa a classe cliente.

Fonte: autor

4.4.3.3. Avaliação da primeira sessão

Nesta sessão, em que foi apresentado o enunciado para o sistema de rádio

táxi, os participantes se mostraram mais preparados para atuar no cenário.

Porém a equipe deparou-se com um sistema maior e mais complexo. Este

cenário envolveu mais detalhes e os atores dispensaram a maior parte do

tempo da sessão procurando por um cartão CRC (uma classe de objetos) que

estabelecesse uma ligação para todos os demais, principais, cartões. Apesar

disso, o facilitador, a aluna Tamires, encerrou os trabalhos com os atores. Foi

observada a necessidade da realização de uma nova sessão para concluir o

levantamento das classes para este sistema. A Figura 21 exibe o diagrama de

classes apresentado como solução parcial para resolução do enunciado do

sistema proposto.

45

Figura 21. Diagrama de classe sugerido pela sessão CRC do sistema de radio táxi

Fonte: autor

4.4.3.4. Segunda sessão do sistema de rádio táxi

A segunda sessão para extração de classes para o sistema de rádio táxi foi

realizada uma semana após a primeira. Foi iniciada às dezoito horas e

quarenta minutos, e teve duração de 80 minutos. Contou com a participação de

dois integrantes que não participaram da primeira sessão. Um deles, o Aluno

Luiz Antônio, participou apenas como observador, por isso não exerceu

qualquer atuação no cenário. O outro, o aluno Clayton Gertrudes, atuou como

analista e apoiou os trabalhos na sessão. As figuras de 22 a 26 exibem as

alterações e as inclusões dos novos cartões CRC.

46

Figura 22. Cartão que representa a classe cooperadoTaxista com suas alterações.

Fonte: autor

Figura 23. Cartão que representa a classe controleCorrida com suas alterações.

Fonte: autor

47

Figura 24. Cartão que representa a classe Cliente com suas alterações.

Fonte: autor

Figura 25. Cartão que representa a nova classe identificada, HistoricoVr.

Fonte: autor

48

Figura 26. Cartão que representa a nova classe identificada, Corrida.

Fonte: autor

4.4.3.5. Avaliação da segunda sessão

Na segunda sessão para o levantamento de classes para o sistema de rádio

táxi o facilitador, a aluna Tamires iniciou separando sobre a mesa, os cartões

produzidos na sessão anterior. Após a re-leitura do cenário os atores

repassaram suas responsabilidades e colaborações. O ponto mais importante

dessa sessão se deu quando os participantes concluíram que havia a

necessidade de criação de mais dois cartões. Um representaria a classe

atuando como corrida, o que fez o ator controleCorrida transferir alguma de

suas responsabilidades e colaborações, tornado a atuação mais coerente. E a

decisão de inclusão do cartão que representa a classe HistóricoVr possibilitou a

identificação de responsabilidades que a equipe julgou estarem faltando para

dar por completa a solução do cenário.

A nova sessão resultou numa melhoria substancial no diagrama de classes. O

envolvimento dos participantes na busca pela solução do cenário, bem como

49

suas contribuições na sessão anterior, possibilitou a visão apresentada na

Figura 27.

Figura 27. Diagrama de classe construído a partir dos cartões CRC.

Fonte: autor

4.5. Resultados obtidos

Foram realizadas quatro sessões CRC que contaram com a participação de

seis alunos. Nessas sessões foram apresentados três cenários para três

sistemas diferentes. O sistema de estacionamento, considerado o menor deles,

seguidos pelo sistema de encomenda de placas, e sistema para serviço de

rádio táxi, este último, maior e mais detalhado. Dos fatos que mereceram

destaque, o mais importante foi a dedicação, o empenho e o envolvimento dos

participantes nas sessões CRC. Os alunos conduziram as reuniões e

identificaram as principais classes dos sistemas propostos. Eles mesmos

reconheceram que é possível melhorar ainda mais os modelos gerados por

meio dessas atuações, e que o fato de participar como sendo o próprio objeto

contribui para a compreensão do todo no sistema. Num SSOO, a aplicação da

50

técnica CRC, melhora a compreensão em OO, ao passo que estimula aquela,

que segundo a pesquisa aqui realizada, é a maior dificuldade entre alunos

iniciantes em orientação a objetos, a abstração. A aplicação da técnica CRC,

para levantamento de classes de análise de um projeto de software orientado a

objetos, pode contribuir para um melhor entendimento do paradigma da

orientação a objetos entre alunos iniciantes. Mas essa contribuição somente

pode ser dada se o aluno já possuir conhecimentos mínimos em orientação a

objetos.

51

5. CONSIDERAÇÕES FINAIS

O ensino do paradigma da orientação a objetos traz aos alunos e professores

alguns desafios. De um lado, mestres introduzindo e contextualizando os

conceitos de projeto de sistemas de software. De outro, alunos que precisam

entender e aplicar os conceitos em seus projetos. Como em um projeto de

construção de um edifício, a sistematização dos processos e a aplicação de

técnicas de construção podem contribuir para o sucesso da empreitada, em

sistemas de software, de igual modo, a aplicação de técnicas pode auxiliar nos

processos de desenvolvimento. Este trabalho considerou a aplicação da

técnica CRC como apoio ao processo de desenvolvimento software.

A modelagem de classes de análise foi explorada, no segundo capítulo,

conceituando orientação a objetos, e apontado as responsabilidades e

colaborações de uma classe, segundo os autores citados neste trabalho. No

capítulo terceiro, foi introduzido o conceito da modelagem CRC, bem como sua

dinâmica de aplicação.

A pesquisa realizada entre 116 alunos da FATEC São Caetano do Sul, FATEC

Zona Leste (FATEC ZL) e do SENAC SP (unidade Itaquera) revelou a

dificuldade na elaboração de diagrama de classes da UML entre os alunos,

tanto no nível técnico quanto no de graduação. No estudo de caso, a aplicação

da técnica de modelagem CRC, apresentada no capítulo quarto, buscou

explorar a mitigação dessa dificuldade, com a atuação de um grupo de alunos

exercendo os papéis de objetos.

A pesquisa realizada e a aplicação da técnica CRC permitiram considerar que

se os alunos forem envolvidos como partes do sistema, representando os

objetos, podem melhorar seu entendimento e compreensão na análise e

projetos de SSOO. Apesar de na fase de análise não haver necessidade se

conhecer uma linguagem de programação, a aplicação da técnica CRC

também permitiu verificar que os alunos tendem a enxergar as outras fases do

processo de desenvolvimento de software. Isso ficou evidenciado quando, ao

52

serem descobertas as responsabilidades dos objetos, da supostas classes,

alguns alunos já as associavam aos métodos que seriam implementados na

linguagem de programação.

A técnica CRC pode ser mais bem explorada, para que seu propósito seja

efetivamente atendido. Sua aplicação, no meio acadêmico, exige tempo

disponível e muito trabalho e por isso o envolvimento e a dedicação dos

participantes, alunos e professores, podem contribuir para o desenvolvimento

dos conteúdos em cursos de análise de SSOO. Oportunidades de melhoria

podem ser apresentadas, no sentido de maximizar a aplicação e o uso da

técnica.

53

REFERÊNCIAS

BECK, Kent. A Laboratory for Teaching Object-Oriented Thinking.

OOPSLA’89, October, 1-6, 1989.

BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML.

Rio de Janeiro: Campus, 2007.

BOOCH, Grady, RUMBAUGH, James, JACOBSON, Ivar. UML - Guia do

usuário. Rio de Janeiro: Campus, 2005.

BÖRSTLER, Jungen. Improving CRC-Card Role-Play with Role-Play

Diagrams. OOPSLA’05, October16-20, 2005, San Diego, California, USA.

CASHMAN, M. Object-oriented domain analisys – ACM v.14, n.6, out. 1989.

FERREIRA, Aurélio Buarque de Holanda. Dicionário Aurélio Básico da

Língua Portuguesa. Rio de Janeiro: Folha de São Paulo/Nova Fronteira, 1988.

LARMAN, Craig. Utilizando UML e Padrões: Uma introdução à analise e ao

projeto orientados a objetos. Tradução L. A. M. Salgado. Revisão R. T. Price.

Porto Alegre: Bookman, 2000.

MELO, Ana Cristina. Desenvolvendo Aplicações com UML2.0. 2. ed. Rio de

Janeiro: Brasport, 2004.

MELO, Ana Cristina. Exercitando modelagem em UML. Rio de Janeiro:

Brasport, 2006.

PRESSMAN, Roger. Engenharia de Software. São Paulo: McGraw-Hill, 2006.

RUBIN, David M. Methodologies and Practices - Introduction to CRC

Cards. Softstar Research, Inc:1998.

RUMBAUGH, James, BOOCH, Grady, JACOBSON, Ivar. The Unifield

Modeling Language References Manual. Boston: Pearson Education, 2004.

SEVERINO, Antonio. Metodologia do Trabalho Cientifico. 23 ed. São

Paulo:Cortez, 2000.

54

THOMASSON, Benjy, RATCLIFFE, Mark, THOMAS, Lynda.. Identifying Novice

Difficulties in Object Oriented Design. University of Wales, Aberystwyth

Penglais Hill Aberystwyth, SY23 1BJ, ACM, 2006.

UNIVERSIA. Sistemas de informação. Publicado em 23/01/2006

<http://www.universia.com.br/carreira/materia.jsp?materia=9843> acessado

em 04/06/2010

VERGARA, Sylvia Constant. Métodos de pesquisa em administração. São

Paulo: Atlas, 2005.

VLIET, Hans van. Some Myths of Software Engineering Education. ICSE’05,

May,15-21,2005, St. Louis, Missouri, USA.

WASLAWICK, Raul Sidnei. Análise e projeto de sistemas de informação

orientados a objetos. São Paulo: Elsevier, 2004.

WIRFS-BROCK, Rebecca, McKEAN, Alan. Object Design - Roles,

Responsibilities, and Collaborators. Boston: Pearson Education, 2002.

55

ANEXOS

ANEXO A Sistema estacionamento Melo (2006, p. 97-100)

ESTACIONAMENTO

Bruno e seu pai compraram um terreno e inaugurarão um estacionamento. Para ajudar, a irmã de Bruno está desenvolvendo uma aplicação de controle de estacionamento. Quando o veículo entra no estacionamento, o atendente observa sua placa e a mesma é cadastrada, juntamente com o modelo do veículo e sua cor. A hora de entrada é gerada automaticamente, correspondendo ao momento do cadastramento da placa. Após estacionar o veículo, o cliente pega o ticket onde está impresso: o número da placa, o modelo do veículo, a cor, a data e a hora da entrada. Ao retornar ao estacionamento, o cliente entrega o ticket. O tempo de permanência é calculado. Considerando esse tempo de permanência, é aplicada a tabela de preços, sabendo-se que a tabela de sábado não é a mesma dos dias úteis e, às vezes, dependendo da época do ano, os donos lançam promoções durante os dias úteis. Veja exemplo das tabelas de preço:

Sábado Preço único = R$ 3,00 Segunda à sexta 1ª. hora = R$ 2,00 A partir da 2ª. hora (inteiro ou fração) = + R$ 1,00 Os donos precisam de relatórios de faturamento diário e semanal.

DIAGRAMA DE CASOS DE USO

DESCRIÇÃO DOS CENÁRIOS

56

REGISTRAR ENTRADA DO VEÍCULO

Descrição: Este caso de uso tem por objetivo registrar os dados do veículo que esteja entrando no estacionamento.

Ator: Atendente

Cenário Principal:

1. O sistema prepara uma lista de modelos de carro. 2. O usuário informa: 2.1.a placa do carro 2.2.0 modelo, selecionado de uma lista preexistente. 2.3.a cor 3. O sistema verifica e registra automaticamente a data e a hora de início do estacionamento. 4. O usuário confirma as alterações. 5. O sistema atualiza os dados cadastrais do veículo. 5.1. O sistema imprime o ticket de estacionamento, como comprovante do motorista. [Extends Caso de Uso Emitir Ticket de Estacionamento]

EMITIR TICKET DE ESTACIONAMENTO

Descrição: Este caso de uso tem por objetivo emitir o ticket de estacionamento que o cliente irá levar após estacionar o veículo.

Ator: Atendente

Cenário Principal:

1. O sistema imprime: 1.1. data de ocupação da vaga 1.2. hora de início de ocupação da vaga 1.3. placa do veículo 1.4. modelo do veículo 1.5. cor do veículo

REGISTRAR SAÍDA DO VEÍCULO

Descrição: Este caso de uso tem por objetivo registrar a saída do veículo, calculando o tempo de permanência e o valor a paqar pelo estacionamento.

Ator: Atendente

Cenário Principal:

1. O sistema prepara uma lista dos veículos que ainda não tiveram sua saída registrada. 1.1. Para cada veículo, é exibido: 1.1.1. a placa do veículo 1.1.2. a hora de início 2. O usuário informa a placa da qual será dada a saída, selecionando de uma lista preexistente. 2.1. O sistema calcula o tempo de permanência. 2.2.0 sistema calcula o preço do estacionamento, baseado no tempo de permanência. 3. O sistema atualiza os dados cadastrais do veículo.

MANTER TABELA DE PREÇOS

Descrição: Este caso de uso tem por objetivo permitir a manutenção da tabela de preços utilizada para calcular a permanência no estacionamento.

Ator: Atendente

57

Cenário Principal:

1. O sistema busca e exibe os valores para as seguintes informações: 1.1. dia da semana 1.2. valor da primeira hora 1.3. valor da hora subseqüente 1.4. se no dia é preço único

GERAR RELATÓRIO DE FATURAMENTO DIÁRIO

Descrição: Este caso de uso tem por objetivo emitir um relatório com o faturamento diário do estacionamento.

Ator: Diretoria

Cenário Principal:

1. O sistema prepara uma lista de todas as vagas ocupadas no dia. 2. O sistema exibe: 2.1. placa do carro 2.2. tempo de permanência 2.3. valor pago 3. No final, o sistema exibe o total de valor recebido no dia.

GERAR RELATÓRIO DE FATURAMENTO MENSAL

Descrição: Este caso de uso tem por objetivo emitir um relatório com o faturamento mensal do estacionamento.

Ator: Diretoria

Cenário Principal:

1. O sistema busca todas as vagas ocupadas durante o mês corrente. 2. O sistema exibe, para cada dia, que aparecerá em ordem crescente: 2.1.número de veículos atendidos 2.2. valor faturado no dia

58

ANEXO B. Sistema de encomenda de placas. Melo (2006, p. 61-67)

ENCOMENDA DE PLACAS

João confecciona placas por encomenda. Como o volume dos pedidos tem aumentado, ele pediu ao filho que lhe fizesse uma pequena aplicação que controle: - o cadastro de seus clientes - as encomendas Quando ele recebe uma encomenda, João anota num caderninho o nome do cliente e seu telefone. Para a encomenda, ele registra: o tamanho da placa (altura e largura), a frase a ser escrita, cor da placa (branca ou cinza), cor da frase (azul, vermelho, amarelo, preto ou verde), data de entrega, valor do serviço e valor do sinal. A aplicação deve obrigar que o valor do sinal seja de, no mínimo, 50%. Para calcular o valor da placa, as seguintes fórmulas são usadas: área = altura x largura custo_material = área x R$ 147,30 custo_desenho = número_letras x R$ 0,32 valor_placa = custo_material + custo_desenho Para calcular o prazo de entrega, considera-se que ele só consegue produzir seis placas por dia. João deseja que o sistema controle os pedidos, calcule o preço final das peças e o prazo de entrega. Para cada encomenda cadastrada, deve ser emitido um recibo em duas vias (cliente e empresa), contendo todos os dados da encomenda e do pagamento.

DIAGRAMA DE CASOS DE USO

59

DESCRIÇÃO DOS CENÁRIOS

CONSULTAR CLIENTE

Descrição: Este caso de uso tem por objetivo apresentar os clientes cadastrados e habilitar a inclusão, alteração ou exclusão de clientes.

Ator: Diretor da empresa

Cenário Principal:

1. O sistema prepara uma lista de todos os clientes cadastrados. 2. O sistema oferece ao usuário: 2.1. Selecionar um cliente, para alterar seu cadastro; 2.2. Localizar um cliente ou conjunto de clientes por meio de pesquisa; 2.3.selecionar a opção de "inserir cliente". 3. Pesquisa de Cliente

3.1. Para localizar um cliente, o usuário deve inserir um trecho de nome e/ou um trecho de telefone. O sistema fará a busca parcial. 3.2. O sistema exibe a lista de clientes que satisfaça o critério, exibindo para cada um: 3.2.1. código de identificação 3.2.2. nome do cliente 3.2.3. telefone 4. Inserção de Cliente 4.1.[lnclude Caso de Uso Manter Cliente) 5. Seleção de Cliente 5.1. Após selecionar um cliente, o sistema habilita as opções de "alterar cliente" e "excluir cliente". 5.2.Se o usuário selecionar uma dessas opções, o sistema aciona o cadastro de cliente. [lnclude Caso de Uso Manter Cliente)

MANTER CLIENTE

Descrição: Este caso de uso tem por objetivo permitir a inclusão, alteração ou exclusão de dados ligados ao cadastro de clientes.

Ator: Diretor da empresa

Pré-condição: Receber a identificação do tipo de operação e os dados cadastrais do cliente, no caso de alteração ou exclusão.

Cenário Principal:

60

1. Manutenção do Cadastro 1.1. Em caso de "Inclusão", o sistema habilita a edição dos dados. 1.2.Em caso de "Alteração", o sistema exibe os dados cadastrados e os habilita para edição. 1.3. Em caso de "Consulta" ou "Exclusão", o sistema exibe os dados cadastrados desabilitados para edição. 1.3.1. No caso de exclusão, o sistema solicita a confirmação. 2. O usuário informa, no caso de "Alteração" ou "Inclusão": 2.1. nome do cliente 2.2. telefone de contato 3. O usuário confirma a operação realizada. 4.O sistema atualiza os dados cadastrais do cliente. 4.1. No caso de inclusão, o sistema gera automaticamente um código de identificação.

Cenário Alternativo:

- Exclusão não permitida

Não é possível excluir um cliente que esteja associado a uma encomenda.

CADASTRAR CUSTO PARA CÁLCULO DO VALOR DE VENDA

Descrição: Este caso de uso tem por objetivo cadastrar os valores fixos de custo, utilizados no cálculo do valor de venda das placas.

Ator: Diretor da empresa

Cenário Principal:

1. O sistema busca os valores cadastrados para: 1.1. valor fixo do material 1.2. valor fixo da letra 2. O usuário altera: 2.1. valor fixo do material 2.2. valor fixo da letra 3. O usuário confirma o cadastramento. 4. O sistema atualiza os valores no cadastro.

Cenário Alternativo:

- Valores Inexistentes no cadastro

Se não existir valor cadastrado para "valor fixo do material" e/ou "valor fixo da letra", o sistema apresenta os campos em branco.

- Valores inconsistentes

Não pode ser cadastrado valor negativo para "valor fixo do material" e "valor fixo da letra".

CADASTRAR ENCOMENDA

Descrição: Este caso de uso tem por objetivo cadastrar encomendas de placas.

Ator: Diretor da empresa

Cenário Principal:

61

1. O sistema busca e exibe a lista dos clientes cadastrados, em ordem alfabética de nome. 2. O usuário seleciona um nome de cliente da lista preexistente. 3. O sistema exibe ° telefone do cliente. 4. O usuário informa os dados da encomenda: 4.1. altura da placa 4.2. largura da placa 4.3. frase para impressão 4.4. cor da placa, selecionada dentre as opções: cinza ou branca. 4.5. cor da frase, selecionada dentre as opções: azul, vermelho, amarelo, preto ou verde. 4.6. o sistema associa a data da encomenda como sendo a data atual. 5. O sistema calcula e exibe a data prevista de entrega do pedido. 5.1. [Extends Caso de Uso Calcular Prazo de Entrega] 6. O sistema calcula e exibe o valor a pagar pela encomenda. 6.1. [Extends Caso de Uso Calcular Preço de Venda da Encomenda] 7. O usuário informa o valor do sinal. 8. O usuário confirma a encomenda. 9. O sistema gera automaticamente um número de encomenda. 10. O sistema emite um recibo, em duas vias, com os seguintes dados: 10.1. nome do cliente, telefone de contato, data da encomenda, frase a ser impressa na placa, tamanho da placa (altura e largura), cor da placa, cor da frase, valor da encomenda, data prevista de entrega e valor do sinal. 11. O sistema atualiza os valores no cadastro, lançando o status da encomenda como "aberto".

Cenários Alternativos:

- Cliente não cadastrado

Se for um cliente novo, o usuário seleciona a opção de "cadastrar novo cliente". [lnclude Manter Cliente].

- Valor do sinal insuficiente

O sistema não deve aceitar um valor de sinal inferior a 50% do valor de venda da peça. No caso do sinal ser inferior, o sistema deve exibir uma mensagem de erro, incluindo na mensagem o valor mínimo permitido.

CALCULAR PREÇO DE VENDA DA ENCOMENDA

Descrição: Este caso de uso tem por objetivo calcular o preço de venda de uma placa, baseado nas informações recebidas para o cálculo.

Ator: Diretor da empresa

Pré-condição: Receber as seguintes informações: altura da placa, largura da placa, frase para impressão.

Cenário Principal:

62

1.O sistema busca os valores cadastrados para "valor fixo do material" e "valor fixo da letra". 2.O sistema calcula o preço de venda da encomenda, considerando as seguintes fórmulas: área = "altura da placa" x "largura da placa" custo_material = área x ''valor fixo do material" número jetras = quantidade de letras da 'frase para impressão". custo_desenho = númeroletras x "valor fixo da letra". valor placa = custo_material + custo_desenho 3. O sistema retorna o "valorplaca",

Cenário Alternativo:

- Valores nulos

Se qualquer um dos valores de pré-condição estiver nulo, o sistema não efetuará o cálculo.

Será exibida uma mensagem de erro e o valor de retorno será zero.

- Valores fixos inexistentes

Se não houver valor válido para "valor fixo do material" elou para "valor fixo da letra", o sistema deve exibir uma mensagem de erro, informando que faltam dados de referência para cálculo da encomenda.

CALCULAR PRAZO DE ENTREGA

Descrição: Este caso de uso tem por objetivo calcular o prazo de entrega de uma determinada placa, de acordo com as encomendas que estão com o status = "aberto".

Ator: Diretor da empresa

Cenário Principal:

1. O sistema busca o total de encomendas com status = "aberto", agrupados por data, excluindo se o dia atual. 2. O sistema verifica a primeira data disponível da lista, onde o número de encomendas seja inferior a seis. 3. O sistema retoma a data disponível no item 2, como a data prevista de entrega.

Cenário Alternativo:

- Nenhuma data disponível

Se não houver nenhuma data disponível dentro da lista recebida, o sistema deve calcular a data prevista de entrega como sendo a maior data da lista acrescida de um dia. Se a data prevista cair num sábado ou domingo, deve ser incrementada até a segunda-feira.

- Nenhuma encomenda cadastrada

Se não houver nenhuma encomenda cadastrada, o sistema deve calcular a data prevista de entrega como sendo a data da encomenda acrescida de um dia. Se a data prevista cair num sábado ou domingo, deve ser incrementada até a segunda-feira.

MODIFICAR STATUS DA ENCOMENDA

Descrição: Este caso de uso tem por objetivo modificar o status de uma encomenda durante a sua execução.

Ator: Diretor da empresa

63

Cenário Principal: 1. O usuário informa o número da encomenda. 2. O sistema busca a encomenda e exibe: 2.1. o nome do cliente; 2.2. o telefone; 2.3. a data da encomenda; 2.4. a data de entrega; 2.5. o valor do pedido; 2.6. o valor do sinal; 2.7. o status atual da encomenda. 3. O usuário modifica o status da encomenda para um dos seguintes valores: "Pronto", "Cancelado" ou "Fechado". 4. O usuário confirma a alteração do status. 5. O sistema atualiza o cadastro com o novo status.

Cenários Alternativos:

- Encomenda Inexistente

Se o número da encomenda não existir, exibir ao usuário uma mensagem de erro, e abrir uma lista de encomendas com status diferente de "Fechado" e "Cancelado" para seleção.

- Alteração não permitida

Não é possível alterar o status de encomendas que estejam com o status "Cancelado" ou "Fechado".

- Validação do Status

O status = "Aberto" só pode ser alterado para "Pronto" ou "Cancelado".

O status = "Pronto" só pode ser alterado para "Cancelado" ou "Fechado".

64

ANEXO C. Descrição do Sistema de Rádio táxi. Melo (2006, p. 67-74)

RÁDIO TÁXI MAR & SOL

A empresa de Rádio Táxi Mar & Sol precisa de uma aplicação que controle: - o cadastro de seus clientes - o cadastro dos cooperados - o cadastro das corridas programadas Para cada cliente são cadastrados os seguintes dados: código (que deve ser gerado pelo sistema), nome, endereço completo (Iogradouro, número, complemento, bairro, município, estado) e dois telefones de contato. O cliente pode se cadastrar apenas com o nome para agilizar o processo. Quando fizer sua primeira chamada por telefone, seus dados serão atualizados. Para o cooperado (taxista) cadastram-se: nome, CPF, número da carteira de motorista, categoria, data de validade da carteira, número do táxi na cooperativa (conhecido como número de VR), número da placa, modelo do veículo, fabricante, cor do veículo, endereço residencial completo, telefone residencial e celular e data de entrada na Cooperativa. Quando o cooperado se desliga, deve ser cadastrada a data de desligamento. Quando o cliente solicitar uma corrida programada (pedidos com antecedência maior do que meia hora), cadastra-se no controle de corridas: o endereço de saída do carro, o bairro de destino, a data e hora de saída, telefone de contato (se local de saída diferente do cadastro). Se o cliente não for cadastrado, seu cadastro deve ser feito no momento da solicitação do carro. O status dessa corrida deve ser definido como: "aguardando VR". Uma hora antes da corrida programada, a operadora questiona, pelo rádio, aos cooperados que estejam em trânsito, qual deseja pegar a corrida programada. Deve ser cadastrado na aplicação o número da VR do taxista que se candidatou à corrida. Meia hora antes do horário, o cliente deve ser avisado a respeito do número da VR. Antes de avisar ao cliente, o status deve ser assinalado como: "aguardando aviso". Após o aviso, o status muda para "aviso efetuado". Após ser atendido, o status deve ser alterado para: "tripulado". Em qualquer momento a corrida pode ser cancelada pelo passageiro. Se for uma solicitação de carro imediato, a operadora deve retornar à tela, informando o status dentre as opções: "aguardando aviso", "aviso efetuado", "cancelado pelo passageiro" ou "cancelado pela cooperativa por falta de carro". Se um logradouro não estiver na lista, a solicitação não será atendida. Quando o cliente for atendido, o status deve ser alterado para: "tripulado".

DIAGRAMA DE CASOS DE USO

65

DESCRIÇÃO DOS CENÁRIOS

CONSULTAR CLIENTE

Descrição: Este caso de uso tem por objetivo apresentar os clientes cadastrados e habilitar a inclusão, alteração ou exclusão de clientes.

Ator: Operadora

Cenário Principal:

1. O sistema prepara uma lista de todos os clientes cadastrados. 2. O sistema oferece ao usuário: 2.1.selecionar um cliente, para alterar seu cadastro; 2.2.localizar um cliente ou conjunto de clientes por meio de pesquisa; 2.3.selecionar a opção de "inserir cliente". 3. Pesquisa de Cliente 3.1. Para localizar um cliente, o usuário deve inserir um trecho do nome do cliente como critério de pesquisa. O sistema fará a busca parcial. 3.2.0 sistema exibe a lista de clientes que satisfaça o critério, exibindo para cada um: 3.2.1. código de identificação 3.2.2. nome do cliente 3.2.3. telefone 4. Inserção de Cliente 4.1.[lnclude Caso de Uso Manter Cliente] 5. Seleção de Cliente 5.1.Após selecionar um cliente, o sistema habilita as opções de "alterar cliente" e "excluir cliente". 5.2.Se o usuário selecionar uma dessas opções, o sistema aciona o cadastro de cliente. [Include Caso de Uso Manter Cliente]

MANTER CLIENTE

Descrição: Este caso de uso tem por objetivo permitir a inclusão, alteração ou exclusão de dados ligados ao cadastro de clientes.

Ator: Diretor da empresa

66

Pré-condição: Receber a identificação do tipo de operação e os dados cadastrais do cliente, no caso de alteração ou exclusão.

Cenário Principal:

1. Manutenção do Cadastro 1.1. Em caso de "Inclusão", o sistema habilita a edição dos dados. 1.2. Em caso de "Alteração", o sistema exibe os dados cadastrados e os habilita para edição. 1.3.Em caso de "Consulta" ou "Exclusão", o sistema exibe os dados cadastrados desabilitados para edição. 1.3.1. No caso de exclusão, o sistema solicita a confirmação. 2. O sistema prepara uma lista de todos os logradouros atendidos pela Cooperativa. 3. O usuário informa, no caso de "Alteração" ou "Inclusão": 3.1. nome do cliente 3.2.logradouro, selecionado de uma lista preexistente. O sistema exibe o bairro, a cidade e o estado. 3.4.dois telefones de contato, informando para cada um: 3.4.1. prefixo 3.4.2. número 3.4.3. tipo, selecionado entre as opções: residencial, comercial, celular ou recado. 4. O usuário confirma a operação realizada. 5. O sistema atualiza os dados cadastrais do cliente. 5.1.No caso de inclusão, o sistema gera automaticamente um código de identificação.

Cenário Alternativo:

- Exclusão não permitida

Não é possível excluir um cliente que esteja associado a uma corrida cadastrada.

CONSULTAR COOPERADO

Descrição: Este caso de uso tem por objetivo apresentar os cooperados (taxistas) cadastrados e habilitar a inclusão, alteração ou exclusão de cooperados.

Ator: Área Administrativa

Cenário Principal:

1. O sistema prepara uma lista de todos os cooperados cadastrados. 2. O sistema oferece ao usuário: Exercitando a Identificação de Casos de Uso e 71 2.1.selecionar um cooperado, para alterar seu cadastro; 2.2. Localizar um cooperado ou conjunto de cooperados por meio de pesquisa; 2.3.selecionar a opção de "inserir cooperado". 3. Pesquisa de Cooperado 3.1. Para localizar um cooperado, o usuário deve inserir um trecho do nome do cooperado como critério de pesquisa. O sistema fará a busca parcial. 3.2. 0 sistema exibe a lista de cooperados que satisfaça o critério, exibindo para cada um: 3.2.1. número da VR do cooperado 3.2.2. nome do cooperado

67

4. Inserção de Cooperado 4.1.[lnclude Caso de Uso Manter Cooperado] 5. Seleção de Cooperado 5.1. Após selecionar um cooperado, o sistema habilita as opções de "alterar cooperado" e "excluir cooperado". 5.2. Se o usuário selecionar uma dessas opções, o sistema habilita o cadastramento de cooperado. [Include Caso de Uso Manter Cooperado]

MANTER COOPERADO

Descrição: Este caso de uso tem por objetivo permitir a inclusão ou alteração de dados ligados ao cadastro de cooperados.

Ator: Área Administrativa

Pré-condição: Receber a identificação do tipo de operação e os dados cadastrais do cooperado, no caso de alteração ou exclusão.

Cenário Principal:

1. Manutenção do Cadastro 1.1. Em caso de "Inclusão", o sistema habilita a edição dos dados. 1.2. Em caso de "Alteração", o sistema exibe os dados cadastrados e os habilita para edição. 1.3. Em caso de "Consulta" ou "Exclusão", o sistema exibe os dados cadastrados desabilitados para edição. 1.3.1. No caso de exclusão, o sistema solicita a confirmação. 2. O sistema prepara uma lista de logradouros cadastrados. 3. O usuário informa, no caso de "Alteração" ou "Inclusão": 3.1.CPF 3.2.nome do cooperado 3.3.dados da carteira de motorista: número, categoria e data de validade 3.4.dados do veículo: número da VR (identificação do veículo na cooperativa), número da placa, modelo, fabricante 3.5.endereço completo, considerando que o logradouro é selecionado de uma lista preexistente. Ao selecionar o logradouro, o sistema exibe o bairro, a cidade e o estado. O usuário completa o cadastro do endereço com o número e complemento. 3.6. telefones residencial e celular 3.7.data de entrada na Cooperativa 3.8.data de saída da Cooperativa (somente para alteração) 4. O usuário confirma a operação realizada. 5. O sistema atualiza os dados cadastrais do cooperado.

MANTER LOGRADOURO

Descrição: Este caso de uso tem por objetivo apresentar os logradouros atendidos pela cooperativa e habilitar a inclusão, alteração ou exclusão de logradouros.

Ator: Área Administrativa

Cenário Principal:

1. O sistema prepara uma lista de todos os logradouros cadastrados. 2. O sistema oferece ao usuário: 2.1. selecionar um logradouro, para alterar seu cadastro; 2.2. localizar um logradouro ou conjunto de logradouros por meio de pesquisa;

68

2.3. selecionar a opção de "inserir cliente". 3. Pesquisa de Logradouro 3.1. Para localizar um logradouro, o usuário deve inserir um trecho do nome e/ou do bairro como critério de pesquisa. O sistema fará a busca parcial. 3.2.0 sistema exibe a lista de logradouros que satisfaça o critério, exibindo para cada um: 3.2.1. nome do logradouro 3.2.2. bairro 4. Manutenção do Cadastro 4.1. Em caso de "Inclusão", o sistema habilita a edição dos dados. 4.2. Em caso de "Alteração", o sistema exibe os dados cadastrados e os habilita para edição. 4.3. Em caso de "Consulta" ou "Exclusão", o sistema exibe os dados cadastrados desabilitados para edição. 4.3.1. No caso de exclusão, o sistema solicita a confirmação. 5. O usuário informa, no caso de "Alteração" ou "Inclusão": 5.1.nome do logradouro 5.2.bairro 5.3. cidade 5.4.UF 6. O usuário confirma a operação realizada. 7. O sistema atualiza os dados cadastrais do logradouro. Cenário Alternativo:

- Exclusão não permitida

Não é possível excluir um logradouro que esteja associado a uma corrida, cooperado ou cliente.

CADASTRAR CORRIDA

Descrição: Este caso de uso tem por objetivo cadastrar a solicitação dos clientes de corridas programadas (que são pedidas com antecedência maior do que meia hora) ou imediatas.

Ator: Operadora da central

Cenário Principal:

1, O usuário informa o código de identificação do cliente. 1.1.O sistema pesquisa o código e exibe: o nome do cliente, seu endereço e telefones. 1.2.0 sistema exibe a lista de corridas programadas. 1.3.0 sistema oferece ao usuário: 1.3.1. selecionar uma corrida, para alterar seu cadastro; 1.3.2. alterar o cadastro do cliente; 1.3.3. selecionar a opção de "inserir corrida", 2. Manutenção do Cadastro 2.1. Em caso de "Inclusão", o sistema habilita a edição dos dados. 2.2. Em caso de "Alteração", o sistema exibe os dados cadastrados e os habilita para edição. 2,3.Em caso de "Consulta", o sistema exibe os dados cadastrados desabilitados para edição. 3. Alteração do Cadastro de Cliente: 3.1. [Include Caso de Uso Manter Cliente)

69

4, O usuário informa, no caso de "Alteração" ou "Inclusão": 4.1. Se o endereço de origem da corrida é o mesmo endereço do cliente. 4.2. Se não for o mesmo endereço: 4.2.1. o sistema prepara uma lista dos logradouros atendidos pela Cooperativa. 4.2.2. o usuário informa o logradouro de origem, selecionando de uma lista preexistente. 4.2.3. o usuário informa o número e o complemento do logradouro, além de um telefone de contato. 4.3. O usuário informa o bairro de destino da corrida. 4.4. O usuário informa a data e a hora para a qual a corrida deve ser programada; ou se é uma corrida imediata. 5. Somente para "Alteração" de corrida: 5.1. o sistema prepara uma lista de veículos cadastrados. 5.2. o usuário informa o número da VR escolhida para a corrida. 5.3. se a VR tiver sido informada, o usuário poderá alterar o status da corrida para uma das seguintes opções: 5.3.1. "aguardando aviso"; 5.3.2. "aviso efetuado"; 5.3.3. 'tripulado", 5.4. Em qualquer situação, o usuário poderá alterar o status da corrida para: 5.4.1. "cancelado pelo passageiro"; 5.5. No caso de corrida imediata e não tendo sido informada a VR, o usuário poderá alterar o status da corrida para: 5.5.1. "cancelado pela cooperativa por falta de carro". 6. O usuário confirma a operação realizada. 7. O sistema atualiza os dados cadastrais da corrida. 7.1. Se for inclusão, o sistema atualiza o status automaticamente com o valor "aguardando VR".

Cenário Alternativo:

- Código desconhecido

Se o usuário não possuir o código do cliente, ele poderá pesquisá-lo a partir do nome do cliente [Include Caso de Uso Consultar Cliente].

- Cliente não cadastrado

Se o cliente não for cadastrado, o usuário poderá efetuar o cadastramento a partir deste caso de uso. [Include Caso de Uso Manter Cliente]

- Validação do Status

O status "aguardando VR" só pode ser alterado para "aguardando aviso", "cancelado pelo passageiro" ou "cancelado pela cooperativa por falta de carro" (este último, no caso específico de corrida imediata). O status "aguardando aviso" só pode ser alterado para "aviso efetuado" ou "cancelado pelo passageiro". O status "aviso efetuado" só pode ser alterado para “tripulado" ou "cancelado pelo passageiro”. Os status “tripulado" e "cancelado" não podem ser alterados.

70

APÊNDICES

APÊNDICE A. Questionário aplicado na pesquisa.

Questionário 1) Qual a sua faixa etária?

a) ( ) 16 a 19 anos b) ( ) 20 a 25 anos c) ( ) 26 – 30 anos d) ( ) 31 – 40 anos e) ( ) Mais de 40 anos

2) Qual é o seu nível de escolaridade?

a) ( ) Técnico b) ( ) Superior

3) Qual o seu nível de conhecimento com orientação a objetos?

a) ( ) Alto b) ( ) Médio c) ( ) Baixo d) ( ) Nenhum

4) Como você avalia seu nível de conhecimento na elaboração de diagramas da UML, como:

a) Caso de uso ( ) baixo ( ) médio ( ) intermediário ( )nenhum b) Classes ( ) baixo ( ) médio ( ) intermediário ( )nenhum c) Sequência ( ) baixo ( ) médio ( ) intermediário ( )nenhum d) Atividade ( ) baixo ( ) médio ( ) intermediário ( )nenhum

5) Quais atividades da análise e projeto orientado a objetos você encontra maiores dificuldades? (escolha todas as que se aplicam)

a) ( ) Especificação do modelo de casos de uso b) ( ) Elaboração do diagrama de classes c) ( ) Elaboração do diagrama de atividades d) ( ) elaboração do diagrama de sequência

6) Qual sua motivação para o estudo da linguagem UML?

a) ( ) Pretensão de trabalhar na área de análise de sistemas b) ( ) Cumprir matéria obrigatória do curso c) ( ) Me identifico com o assunto d) ( ) Melhorar o entendimento em linguagem de programação

(Java, C#, .NET)

7) Quais fatores seriam importantes para melhor aprendizado do diagrama de classes?

a) ( ) atividades práticas durante o estudo da linguagem b) ( ) maior interação entre as fases do projeto de software c) ( ) mais atitudes na busca pelo aprendizado d) ( ) materiais mais intuitivos para o aprendizado, com elaboração de diagramas e

documentação.

8) Qual das técnicas você considera mais relevante para modelar classes (elaborar diagrama de classes)?

a) ( ) CRC (Classes, Responsabilidades e Colaborações) b) ( ) Análise de Caso de Uso c) ( ) Categoria de objetos d) ( ) Outros. Indique: _________________

9) Aponte 3 (três) elementos que você tem maior dificuldade de aplicação ao elaborar um diagrama de classes.

a) ( ) associação b) ( ) atributo c) ( ) classe d) ( ) classe abstrata e) ( ) classe associativa f) ( ) classe de interface g) ( ) composição / agregação h) ( ) generalização / especialização i) ( ) operação j) ( ) operação abstrata k) ( ) visibilidade

71

APÊNDICE B. Modelo da declaração de autorização de participação das

sessões CRC

Declaração

São Paulo, 27 de abril de 2010

Eu, «Nome», aluno (a) da FATEC Zona Leste, RA nº. «RA»,

declaro para os devidos fins que participo voluntariamente das sessões da

aplicação do método CRC, nas dependências da faculdade, em apoio ao

colega Wellington Vieira dos Santos, RA nº. 072039-9, aluno do sexto

semestre. Os resultados destas sessões serão analisados por ele e farão

parte do seu Trabalho de Conclusão de Curso. Declaro ainda estar ciente, e

autorizo que meu nome seja incluído neste trabalho, se ele julgar

necessário.

Atenciosamente,

_______________________________________ «Nome» - RA n°. «RA»

72

APÊNDICE C. Resultados tabulados da pesquisa realizada na FATEC e Senac

1) Qual a sua faixa etária?

a) 16 a 19 anos 33 28%

b) 20 a 25 anos 55 47%

c) 26 - 30 anos 16 14%

d) 31 - 40 anos 10 9%

e) Mais de 40 anos 2 2%

2) Qual é o seu nível de escolaridade?

a) Técnico 15 13%

b) Superior 101 87%

3) Qual o seu nível de conhecimento com orientação a objetos?

a) Alto 1 1%

b) Médio 36 31%

c) Baixo 78 67%

d) Nenhum 1 1%

4) Como você avalia seu nível de conhecimento na elaboração de diagramas da UML, como:

a) Caso de uso

baixo 36 31%

médio 62 53%

intermediário 16 14%

nenhum 2 2%

b) Classes

baixo 36 31%

médio 60 52%

intermediário 18 16%

nenhum 2 2%

c) Sequência

baixo 68 59%

médio 18 16%

intermediário 8 7%

nenhum 22 19%

d) Atividade

baixo 68 59%

médio 21 18%

intermediário 7 6%

nenhum 20 17%

73

5) Quais atividades da análise e projeto orientado a objetos você encontra maiores dificuldades? (escolha todas as que se aplicam)

a) Especificação do modelo de casos de uso 47 41%

b) Elaboração do diagrama de classes 42 36%

c) Elaboração do diagrama de atividades 68 59%

d) elaboração do diagrama de sequência 76 66%

6) Qual sua motivação para o estudo da linguagem UML?

a) Pretensão de trabalhar na área de análise de sistemas 42 36%

b) Cumprir matéria obrigatória do curso 26 22%

c) Me identifico com o assunto 6 5%

d) Melhorar o entendimento em linguagem de programação (Java, C#, .NET)

42 36%

7) Fatores seriam importantes para melhor aprendizado do diagrama de classes

a) atividades práticas durante o estudo da linguagem 72 62%

b) maior interação entre as fases do projeto de software 32 28%

c) mais atitudes na busca pelo aprendizado 51 44%

d)

materiais mais intuitivos para o aprendizado

51 44%

8) Qual das técnicas você considera mais relevante para modelar classes (elaborar diagrama de classes)?

a) CRC 30 26%

b) Análise de Caso de Uso 75 65%

c) Categoria de objetos 9 8%

d) Outros 2 2%

9) Aponte 3 (três) elementos que você tem maior dificuldade de aplicação ao elaborar um diagrama de classes.

a) associação 17 15%

b) atributo 7 6%

c) classe 9 8%

d) classe abstrata 50 43%

e) classe associativa 23 20%

f) classe de interface 66 57%

g) composição / agregação 38 33%

h) generalização / especialização 28 24%

i) operação 23 20%

j) operação abstrata 60 52%

k) visibilidade 24 21%

74

APÊNDICE D. Cartões gerados nas sessões CRC – sistema estacionamento.