Escolar Documentos
Profissional Documentos
Cultura Documentos
Edio n 1 - 2008
ROSEMARY FRANCISCO
Apoio
Gesto e Execuo
Contedo e Tecnologia
Apresentao
tica.
Lembre-se de que a sua passagem por esta disciplina ser acompanhada tam-
bm pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax, telefone, e-mail
ou Ambiente Virtual de Aprendizagem. Entre sempre em contato conosco quando surgir alguma dvida ou dificuldade.
Toda a equipe ter a maior alegria em atend-lo, pois seu crescimento intelec-
SUMRIO
CARTA DA PROFESSORA......................................................................................... 4
CRONOGRAMA DE ESTUDOS.................................................................................. 6
PLANO DE ESTUDOS................................................................................................. 7
Aula 1 Introduo a Projetos de Informtica........................................................ 8
Aula 2 Introduo a UML...................................................................................... 20
Aula 3 Introduo a Ferramentas CASE............................................................. 34
Aula 4 Conhecendo os principais diagramas UML............................................ 49
Aula 5 Conhecendo o Processo de Desenvolvimento de Software................. 69
Aula 6 Modelando Projetos de Software............................................................. 80
Aula 7 Tendncias do Processo de Engenharia de Software........................... 96
Aula 8 Estudo de Caso: Modelando um Projeto de Software......................... 103
Referncias..............................................................................................................112
Apndice 1 Reviso Paragima Orientao a Objetos.......................................113
Carta da Professora
Caro(a) aluno(a),
Sendo assim, convido voc para, juntos, agora virtualmente, vencer este novo
desafio!
Cronograma de Estudos
Carga horria
Aula
Data/ Avaliao
Introduo a Projetos de
Informtica
_/_ a _/_
Introduo a UML
Introduo a Ferramentas
CASE
_/_ a _/_
Conhecendo os principais
diagramas da UML
_/_ a _/_
Conhecendo o Processo de
desenvolvimento de Software
_/_ a _/_
12
Modelando Projetos de
Software
_/_ a _/_
Tendncias do Processo de
Engenharia de Software
_/_ a _/_
12
_/_ a _/_
_/_ a _/_
Plano de Estudos
Ementa
Introduo a projetos de desenvolvimento de software; Viso geral da linguagem
UML; Principais Diagramas da Linguagem UML; Introduo a ferramentas CASE; Introduo ao Processo de Desenvolvimento de Software; Principais Caractersticas do
Processo de desenvolvimento de Software; Introduo s melhores prticas de modelagem e desenvolvimento do software; Projetar, gerenciar e implementar sistemas
de Software.
Objetivos da Disciplina
Geral
Capacitar o aluno com os conhecimentos bsicos do processo de desenvolvimento
de software que permitiro aprender a: analisar, projetar e implementar sistemas de
software.
Especficos
Introduzir os conceitos bsicos de projetos de software
Apresentar a linguagem de modelagem padro de mercado Unified Modeling Language (UML) largamente utilizada para a Anlise e Projeto de sistemas de software
Apresentar um processo completo de desenvolvimento de software utilizvel com a
linguagem UML
Demonstrar as principais caractersticas das ferramentas CASE
Instalar e configurar uma ferramenta CASE
Apresentar tcnicas e ferramentas bsicas para anlise, gerenciamento e implementao de projetos de software
Desenvolver a modelagem de um estudo de caso para consolidar os conhecimentos
da disciplina
Carga Horria: 60 horas/aula.
Aula 1
INTRODUO A PROJETOS DE
INFORMTICA
Nesta aula voc estudar os conceitos bsicos de projetos de informtica e Engenharia de Software e como
a Engenharia de Software poder auxiliar no desenvolvimento e
manuteno de sistemas de software.
Bom estudo!
Objetivos da Aula
Contedos da Aula
O Projeto de Informtica;
Exerccios propostos.
compreender que um projeto, independente do tipo de aplicao, pode ser considerado como um planejamento, com menos ou mais detalhes, dependendo da sua aplicao, que poder auxiliar na execuo e avaliao do resultado obtido ao final de sua
execuo.
10
tanto, independente do tipo de projeto que se deseja realizar, muito importante saber
qual ser a durao, em outras palavras, quando o incio e o fim da realizao do
projeto.
rao e Custo, tambm ir refletir na Qualidade do projeto. Portanto, se o planejamento no for desenvolvido de maneira eficiente, o sucesso do projeto estar automaticamente comprometido.
11
Fique sabendo
Atualmente, existem vrios modelos que permitem auxiliar nas tarefas de planejamento e gerenciamento de projetos. Os modelos
mais populares so: PMBOK um guia de gerenciamento criado pelo
PMI - Project Manegement Institute http://www.pmi.org/ ; Processo
Unificado - UP criado pelos autores da linguagem UML - Grady Booch,
James Rumbaugh e Ivar Jacobson; MSF Microsoft Solutions Framework; e, dentro dos conceitos de desenvolvimento gil: SCRUM, Extreme Programming, entre
outros.
intitulado de Chaos Research que consolida as informaes de uma grande pesquisa sobre sucessos e fracassos dos projetos de software. Nesse estudo, os resultados
dos projetos so classificados da seguinte maneira:
Bem sucedidos - O projeto finalizado no prazo, dentro do oramento e
contendo todas as funcionalidades especificadas.
Comprometidos - O projeto finalizado e um software operacional entregue, porm o oramento e o prazo ultrapassam os limites estipulados, e, alm
disso, o software entregue possui menos funcionalidades do que o especificado.
Fracassados - O projeto cancelado em algum momento durante o desenvolvimento.
12
13
Mas...
software?
outras cincias como medicina e direito, por exemplo, que j existem h alguns sculos. Se relembrarmos os fatos histricos sobre a colonizao do Brasil, veremos que,
naquela poca, j existiam profissionais de medicina e de direito. A informtica ainda
no completou um sculo de existncia, o primeiro computador, o ENIAC, foi criado
em 1946.
Fique sabendo
O engenheiro John Presper Eckert e o fsico John Mauchly projetaram o ENIAC: Eletronic Numeric Integrator And Calculator. Com
18000 vlvulas, o ENIAC conseguia fazer 500 multiplicaes por segundo. Os custos para a manuteno e conservao do ENIAC eram
absurdos, pois dezenas a centenas de vlvulas queimavam a cada hora e o
calor gerado por elas necessitava ser controlado por um complexo sistema de refrigerao, alm dos gastos elevadssimos de energia eltrica. (WIKIPDIA)
14
A primeira era da evoluo do software teve incio nos anos 1950 e se estendeu
podemos imaginar a complexidade que deveria ser desenvolver e depois realizar manutenes nos softwares desenvolvidos naquela poca.
A segunda teve incio em 1965 e se estendeu at 1975. Essa era foi marcada
15
Na segunda era, podemos observar que houve um salto bem grande na evo-
A terceira era, que teve incio em 1975 e foi at 1985, foi marcada pelas seguin-
tes caractersticas:
As redes globais, as comunicaes digitais de largura de banda elevada e a
16
crescente demanda de acesso instantneo a dados exigem muito dos desenvolvedores de software;
Essa era foi caracterizada pelo advento e pelo generalizado uso de microprocessadores, computadores pessoais e poderosas estaes de trabalho workstations de mesa.
Por fim, a quarta era, que iniciou em 1985, foi marcada pelas seguintes carac-
tersticas:
As tecnologias orientadas a objetos comearam a ocupar o lugar das abordagens mais convencionais para o desenvolvimento de software em muitas reas
de aplicao;
As tcnicas de quarta gerao para o desenvolvimento de software mudaram a maneira como alguns segmentos da comunidade de software constroem
programas de computador;
Os sistemas especialistas e o software de inteligncia artificial finalmente saram do laboratrio para a aplicao prtica em problemas do mundo real.
17
mos perceber que vivemos uma nova era do desenvolvimento de software. Esta afirmao pode ser feita, pois os softwares desenvolvidos atualmente esto fortemente
marcados pelas seguintes caractersticas:
A grande maioria dos softwares desenvolvida com base na arquitetura cliente-servidor;
O desenvolvimento de softwares para ambiente WEB est cada vez mais
comum;
Introduo do conceito de servios, pequenas aplicaes especficas para um
determinado fim, est se propagando;
Grande evoluo dos sistemas gerenciadores de banco de dados, permitindo
a integrao entre o banco de dados e sistemas disponveis na internet;
Preocupao com qualidade no desenvolvimento e planejamento dos softwares fez surgir vrios modelos e tcnicas.
sempre com o intuito de abranger ou ento suprir deficincias dos processos mantidos pelos softwares da poca. No incio, como o software era desenvolvido de forma
artesanal, seu custo e problemas por falta de planejamento era muito elevado.
18
minimizar os problemas que ocorrem no processo de desenvolvimento de software. Seu principal objetivo melhorar a qualidade
dos softwares e aumentar a produtividade e satisfao dos profissionais.
Sntese da Aula
Exerccios Propostos
1) Assinale a alternativa correta. Para que um projeto de software seja bem sucedido, imprescindvel o cumprimento das seguintes caractersticas:
a) Prazo, Qualidade, Planejamento;
b) Custo, Prazo, Planejamento;
c) Custo, Prazo, Funcionalidades;
d) Funcionalidades, Prazo, Planejamento.
2) Selecione a alternativa correta. A caracterstica de projeto que est diretamente ligada s demais caractersticas e poder impactar no seu sucesso :
a) Durao
19
b) Qualidade
c) Prazo
d) Planejamento
2) Selecione a alternativa correta. objetivo da Engenharia de Software:
a) Auxiliar somente no planejamento do projeto de software;
b) Auxiliar no desenvolvimento de todo o projeto de software, utilizando tcnicas, ferramentas e procedimentos;
c) Disponibilizar tcnicas e ferramentas para a construo do software;
d) Disponibilizar ferramentas para o desenvolvimento de software.
3) Qual das alternativas abaixo uma caracterstica especfica da era atual de
desenvolvimento de software?
a) Utilizao de gerenciadores de banco de dados;
b) Utilizao de inteligncia artificial;
c) Utilizao de arquitetura cliente-servidor;
d) Utilizao de ambiente WEB.
20
Aula 2
INTRODUO A UML
Objetivos da Aula
Contedos da Aula
Modelagem de Software;
Introduo a UML;
Exerccios propostos.
21
1 MODELAGEM DE SOFTWARE
de software, vamos primeiro analisar o que o software, como surgiu e quais as suas
principais caractersticas.
aula 1, veremos que o software surgiu com o objetivo principal de suporte s atividades da informtica, porm, naquela poca, era visto como algo feito de forma artesanal, sem grande importncia e poucos possuam o conhecimento de uma linguagem
de desenvolvimento. O importante mesmo, na poca, era o hardware, que tambm
detinha grande parte dos custos dentro de
um projeto de informtica ou mesmo automao de atividades.
22
produto de hardware que tambm utiliza a engenharia durante o seu desenvolvimento em um dado momento esse objeto passa do modelo lgico esboos e
desenhos da idia feitos no papel para algo palpvel e manufaturado, construdo em
um ambiente de produo, com auxlio de mquinas, equipamentos e pessoas desse
ambiente de produo. J no desenvolvimento do software, todo o seu desenvolvimento concentrado com base na engenharia. Tambm h a fase de desenvolvimento, qquando os programas e instrues so escritos, porm todas as fases de projeto
do software so baseadas em mtodos e ferramentas da engenharia de software.
ta, pode ficar ultrapassado, porm nunca diminuir seu desempenho ou ter problemas nas suas funcionalidades. J o hardware, de acordo com o tempo de uso, poder
mostrar falhas ou at parar de funcionar. As figuras 3 e 4 ilustram as diferenas na
ocorrncia de falhas para o hardware e software.
23
o passar do tempo. J a curva de falhas do sofware, se considerarmos o modelo ideal, a tendncia que deixem de ocorrer com o tempo. Porm, como j discutimos nos
itens anteriores, problemas com o gerenciamento e o desenvolvimento do software
podem ocasionar falhas, quando se solicita uma alterao no software que j est
estvel (modelo real).
sempre desenvolvido do incio, ou seja, todos os programas e instrues so escritos novamente a cada software, pois a caracterstica dos softwares, muitas vezes,
especfica. J com o hardware, componentes podem ser utilizados na sua produo,
reduzindo o tempo de produo e maximizando a qualidade do produto final. Nessa
caracterstica, porm, a produo de software tem evoludo bastante com a utilizao
da orientao a objetos, cuja programao torna possvel criar componentes de software que permitam sua reutilizao nos prximos projetos de software. Essa uma
tendncia para o desenvolvimento de software.
senvolvimento de software como uma tarefa complexa que pode aumentar, dependendo da rea de negcio onde o software ir atuar e tambm do seu tamanho, conforme
a quantidade de funcionalidades que ir dispor.
24
reas da engenharia.
Ao construirmos um modelo, temos a oportunidade de analisar com detalhes o funcionamento e as necessidades de recursos para o desenvolvimento do software e corrigir os possveis problemas ainda na fase de modelo. Essa prtica permitir maximizar
a garantia de um software com maior qualidade.
1.2 Vantagens da Modelagem de Software
25
mais fcil discutir com uma equipe e identificar as melhores prticas e/ou ferramentas
necessrias para o seu desenvolvimento.
Defender uma idia com um modelo j proposto tambm se torna muito mais
fcil e simples do que faz-lo com uma idia que ainda est no
pensamento. Isso porque, ao criar o modelo, muitas alteraes e
melhorias podero ser identificadas durante a sua construo. Ou
seja, j na criao do modelo, o prprio autor identifica problemas
que poderiam surgir e j faz as correes necessrias para apresentar a idia concreta aos demais membros da equipe.
A reduo do custo, por sua vez, pode ser identificada conforme o tempo gas-
como a principal razo para a construo do modelo de software, pois, com o modelo,
ser possvel mapear todo o funcionamento e tambm a interao entre as funcionalidades do software a ser desenvolvido.
1.3 Evoluo da Modelagem de Software
vimento de software. Por ser uma prtica comum em outras engenharias, a modelagem tambm foi absorvida pela engenharia de software para dar suporte e permitir a
anlise de detalhes do software, antes mesmo de sua produo.
lagem de sistemas:
26
27
Booch James Rumbaugh e Ivar Jacobson. Trs pesquisadores freqentemente chamados de os trs amigos (BEZERRA, 2002, p. 13).
rante a dcada de 1990, vrios pesquisadores desenvolveram tcnicas de modelagem com base na orientao a objetos. Os trs amigos, que tambm estavam envolvidos em muitas dessas tcnicas, procuraram unir as melhores propostas, realizar
melhorias e, por fim, criaram a UML.
Mas foi somente em 1997 que a UML foi aprovada como um padro pelo rgo
A partir de ento, a UML tem tido grande aceitao pela comunidade de de-
Significa que a UML composta de elementos grficos visuais que podem ser utilizados na modelagem e, permitem representar os conceitos do paradigma da orientao a objetos.
28
Especificar;
Construir;
Documentar
os artefatos de um sistema complexo de software.
Por meio dos elementos grficos da UML, possvel visualizar, de forma mais
detalhada, como ser o funcionamento do software e quais sero os objetos necessrios para a construo do sofware.
que diz: Uma figura vale por mil palavras, porm em alguns casos, pode-se utilizar
uma semntica para interpretar um smbolo UML.
Por ser uma linguagem-padro, a UML tem sido absorvida por vrias ferramen-
tas comerciais para dar suporte e facilitar o trabalho dos desenvolvedores durante a
construo do software. Algumas ferramentas permitem, por meio dos modelos UML,
a gerao automtica de partes do cdigo-fonte do software. Em alguns casos, at
o inverso tambm possvel prtica conhecida como engenharia reversa -, onde a
ferramenta poder gerar o modelo UML por meio de um cdigo- fonte do software. A
prtica de engenharia reversa, porm, no muito aconselhvel, pois o ideal que do
modelo se parta para a construo final, e no o inverso, evitando problemas, alguns
j vistos nos tpicos anteriores, que podem surgir quando o software construdo por
completo sem ter um planejamento ou modelo a ser seguido. Em casos de atualizao do modelo, por exemplo, a engenharia reversa pode ser uma boa prtica a ser
utilizada.
29
Fique sabendo
O termo engenharia reversa tem suas origens no mundo do
hardware. Uma empresa desmonta um hardware comercializado,
num esforo para entender os segredos de projeto e manufatura do
concorrente. A engenharia reversa para o software muito semelhante,
porm, na maioria dos casos, o software que ir passar por este processo
da prpria empresa e tem como objetivo principal gerar a documentao de
partes do cdigo que foram implementadas muitas vezes direto no cdigo, sem
desenvolvimento de um modelo especfco. (PRESSMAN, 1995, p. 900)
Com base nos artefatos gerados por meio dos elementos da UML, possvel
software, porm seus elementos e suas tcnicas permitem sua utilizao para modelagem de outros projetos sistemas que no de software. Depois de sua aprovao
como um padro, a linguagem, segundo Booch (2005, p.17), vem sendo empregada
em diversas reas de conhecimento:
Sistemas de informaes corporativos;
Servios bancrios e financeiros;
Telecomunicaes;
Transportes;
Defesa/espao areo;
Vendas de varejo;
Eletrnica mdica;
Cientficos;
Servios distribudos baseados na WEB.
30
mas, no importando qual a linguagem de programao a ser utilizada na implementao do sistema, ou qual a forma processo de desenvolvimento adotado. Esse
um fator importante para a utilizao da UML, pois diferentes sistemas de software
requerem diferentes abordagens de desenvolvimento.
2.3 Vises de um Sistema
muitas vezes ser necessrio a criao de mais de um modelo, cada um com o foco
em uma determinada funcionalidade ou detalhe do sistema, para que seja possvel
conceber a abrangncia do software. Para isso, os autores da UML os trs amigos
sugerem a utilizao das: Vises do Sistema, que podem ser classificadas da seguinte forma:
Viso de Caso de Uso: descreve o sistema de um ponto de vista externo,
como um conjunto de interaes entre o sistema e os agentes externos ao
sistema. Esta viso criada inicialmente e direciona o desenvolvimento das
outras vises do sistema.
Viso de Projeto: enfatiza as caractersticas do sistema que do suporte,
tanto estrutural quanto comportamental, s funcionalidades externamente visveis do sistema.
Viso de Implementao: abrange o gerenciamento de verses do sistema
controle de alteraes -, construdas por meio do agrupamento de mdulos
componentes e subsistemas.
Viso de Implantao: corresponde distribuio fsica do sistema em seus
subsistemas e conexo entre essas partes.
Viso de Processo: enfatiza as caractersticas de concorrncia paralelismo -, sincronizao e desempenho do sistema.
31
demonstrada na figura 5.
maximizada, dependendo da rea de negcio em que o software ir atuar; do hardware que ir utilizar; ou ainda, do tipo de procedimento que ir executar.
pesquisas realizadas pelo Standish Group, que grande parte dos projetos de software
so considerados: fracassados projetos que no so entregues e comprometidos
projetos que so entregues porm com os custos, prazos e funcionalidades comprometidas.
essa complexidade no planejamento e desenvolvimento dos projetos, envolvem a definio de processos de desenvolvimento de software.
desenvolvimento compreende todas as atividades necessrias para definir, desenvolver, testar e manter um produto de software (BEZERRA, 2002, p. 19).
32
A UML uma grande aliada do processo de desenvolvimento. Por ser uma lin-
guagem padro, permite que vrias pessoas, com diferentes habilidades e envolvidas
no processo de desenvolvimento, possam compreender, analisar e sugerir melhorias
para o sistema de software, tudo isso por meio dos modelos definidos.
captulo 5.
Sntese da Aula
Exerccios Propostos
1) Assinale a alternativa incorreta:
a) O software surgiu com o objetivo de auxiliar o hardware nas atividades de manipulao da informao;
b) O software, assim como o hardware, pode ser desenvolvido de forma manufaturada;
c) O software geralmente desenvolvido sob medida;
b) O software um objeto lgico.
33
34
Aula 3
INTRODUO A FERRAMENTA
CASE
Objetivos da Aula
Contedos da Aula
35
aplicativos produtos de software, por exemplo que foram desenvolvidos especificamente para auxiliar nas tarefas de planejamento e desenvolvimento de projetos de
software.
36
CASE que auxiliam no gerenciamento dos projetos de software. Esse tipo de ferramenta utilizado pelos gerentes de projeto e permite: desenvolver cronogramas de
tarefas, definio de custos do projeto, acompanhamento de prazos e custos do projeto, alocao de profissionais para a execuo das tarefas previstas no projeto, entre
outras.
1.2 Por que utilizar Ferramentas CASE em projetos de software
Outra vantagem que pode ser verificada na utilizao das ferramentas CASE
seguintes itens:
37
lidade de uma organizao para gerenciar custos de curto e longo prazo. As organizaes que tm tido cuidado com esses tipos de problemas no processo de adoo,
apresentam as melhores chances de sucesso.
Conscincia;
Comprometimento;
Seleo;
Implementao de testes;
Estratgia de implementao;
Rotinizao
6.
38
uma nica ferramenta que suporte uma atividade de engenharia de software especfica ou to complexa quanto um ambiente completo que abranja ferramentas, banco
de dados, pessoas, hardware, rede, sistemas operacionais, padres e uma infinidade
de outros componentes (PRESSMAN, 1995, p. 947).
ger muito mais do que uma nica atividade no desenvolvimento de softwares, poder
abranger todo o processo de desenvolvimento. A figura 7 ilustra a atuao do CASE
dentro de um ambiente integrado.
As ferramentas CASE podem ser classificadas por funo, por seus papis
como instrumentos para os gerentes e para o pessoal tcnico pelo uso que tm nas
vrias etapas do processo de engenharia de software, pela arquitetura de ambiente
hardware e software que as suporta ou at mesmo pela origem ou custo delas
(PRESSMAN, 1995, p. 951).
39
Ferramentas de prototipao so
ferramentas que permitem ao desenvolvedor criar um prottipo
modelo que ir representar
o layout das telas do sistema de
software.
Ferramentas de Reengenharia;
Ferramentas de Estrutura.
como: funcionalidades do sistema, componentes que sero utilizados pelas funcionalidades, interao entre o usurio do sistema e as funcionalidades, forma como os
dados gerados pelo sistema sero armazenados, entre outros.
Na verdade, sero criados vrios modelos, cada um com uma finalidade espe-
40
gratuita, mas possui todos os recursos necessrios para desenvolvimento da modelagem de projetos de software com base nos principais diagramas UML. Na aula 4,
veremos mais detalhes sobre os diagramas UML.
2.2 Instalando a ferramenta JUDE
sar o site e realizar um cadastro. Efetuando o cadastro, ser habilitado um link para
acesso ao arquivo de instalao da ferramenta. Aps o download do arquivo de instalao, basta execut-lo e seguir as instrues de instalao.
1. Acesse o site:
https://jude.change-vision.com/jude-web/product/community.html;
2. Clique no boto: [Download Jude Members Login], conforme mostra a figura 8;
41
4. Na prxima tela ser solicitada a leitura do termo de contrato e o aceite dos termos
do contrato. Para dar continuidade, clique no boto: [I agree];
5. Em seguida, ser mostrada a tela de cadastro (figura 10). Preencha todos os campos obrigatrios com ateno e, ao final, clique no boto para confirmao do cadastro, boto: [Confirm];
6. Ao clicar no boto de confirmao, ser mostrada uma tela para que voc possa
validar os dados informados. Se os dados estiverem corretos, clique no boto: [Re-
42
43
Arquivo 1
Arquivo 1
11. Na prxima tela, clique no boto: [Download] para iniciar o processo de transferncia do arquivo de instalao;
12. Finalizao o download, clique duas vezes em cima do arquivo: jude-community5_2b1-setup.exe para iniciar a instalao. Selecione o idioma ingls e clique no boto: [Next], conforme mostra a figura 13;
13. Na tela seguinte, clique no boto: [Next], conforme mostra a figura 14;
44
15. Na tela seguinte, ser solicitado o local para a instalao da ferramenta. Se preferir, deixe o local sugerido e clique no boto: [Next], conforme mostra a figura 16;
16. A prxima seguinte mostra o nome que ser includo no menu iniciar. Deixe o padro e clique no boto: [Next], conforme indica a figura 17;
45
17. A prxima tela seguinte questiona se voc deseja: (1) incluir um cone da ferramenta no desktop, (2) incluir um cone no Quick Launch acesso rpido -, (3) associar
os arquivos com extenso: .jude com a ferramenta. Deixe o padro e clique no boto:
[Next], conforme mostra a figura 18;
18. Conforme mostra a figura 19, a prxima tela mostrar as informaes selecionadas at agora. Valide as informaes e clique no boto: [Install] para iniciar a instalao da ferramenta.
19. A instalao ser iniciada conforme mostra a figura 20. Aguarde at o final da
instalao.
46
20. Finalizada a instalao, ser mostrada a tela conforme a figura 21. Clique no boto: [Finish] e a ferramenta JUDE ser inicializada.
21. O ambiente de trabalho da ferramenta JUDE pode ser visualizado na figura 22.
Nas prximas aulas, veremos mais detalhes sobre a utilizao da ferramenta.
47
Sntese da Aula
O que JUDE;
Exerccios Propostos
1) Assinale a alternativa incorreta. caracterstica das ferramentas CASE:
a) Definio das atividades do projeto;
b) Depurao do cdigo-fonte;
c) Criao e manuteno de diagramas;
d) Realizao de testes automticos.
2) O principal objetivo das ferramentas CASE (apenas uma alternativa est
correta):
a) Auxiliar na gerao do cdigo-fonte;
b) Aumentar a produtividade;
c) Solucionar os problemas de qualidade e produtividade;
d) Auxiliar na definio das tarefas.
3) Assinale a alternativa incorreta, antes de adotar um conjunto ou uma nica
ferramenta CASE aconselhvel observar:
a) A linguagem de programao que utilizada;
b) O custo da ferramenta CASE;
48
49
Aula 4
CONHECENDO OS PRINCIPAIS
DIAGRAMAS UML
Nesta quarta aula, vamos estudar quais so os elementos da UML e os principais diagramas utilizados
na modelagem de sistemas de software. Alm disso,
veremos tambm a funo de cada diagrama e sua representao
na modelagem de um sistema
de software.
Bom estudo!
Objetivos da Aula
Contedos da Aula
Elementos da UML;
Diagramas UML;
Exerccios propostos.
50
1 ELEMENTOS DA UML
Itens;
Relacionamentos;
Diagramas.
Itens estruturais;
Itens comportamentais;
Itens de agrupamentos;
Itens anotacionais.
51
Estrutural
Nome
Figura
Classe
Ou
Estrutural
Interface
52
Estrutural
Caso de Uso
Comportamental
Mensagens
Comportamental
Estados
Comportamental
Aes / Atividades
Agrupamento
Pacotes
Anotacional
Notas
2 Diagramas UML
delo dos elementos que compe o sistema. Para cada sistema poder ser desenhado
um ou mais diagramas. A quantidade de diagramas e a escolha pelo diagrama que
ser utilizado vai sempre depender da rea de atuao do sistema e da complexidade
do negcio. Um mesmo elemento UML, porm, poder ser compartilhado em mais de
um diagrama, possibilitando melhor integrao entre os modelos.
53
a criao de diversas vises como modelo para os projetos de software. No necessrio utilizar os treze diagramas para todos os projetos de software desenvolvidos, a
premissa da escolha pelo diagrama e pelo nvel de detalhamento dos modelos deve
partir da complexidade do software a ser construdo. Quanto maior a complexidade,
maior deve ser o nvel de detalhamento dos modelos.
54
Classes;
Interfaces;
Relacionamentos.
ses, porm, assim como nos demais diagramas, poder conter: notas itens anotacionais -, e tambm pacotes itens de agrupamento.
Uma classe a descrio de um conjunto de objetos que compartilham os mesmos
atributos, operaes e relacionamentos.
ligar as classes e interfaces entre si, criando relaes entre essas entidades. O relacionamento representado como um caminho, em que cada relacionamento possui
linhas diferentes, para melhor visualizao. H trs tipos de relacionamentos na UML.
A tabela 2 demonstra quais so os tipos de relacionamentos existentes, a funo de
cada relacionamento e seu elemento grfico de representao.
55
Funo
Representao
Elemento grfico: seta aberta tracejada Exemplo:
Dependncia
Notao:
A classe Dependente depende estruturalmente
da classe Independente.
Elemento grfico: linha simples
Exemplo:
Notao:
Um departamento possui um ou mais funcionrios na sua hierarquia.
Elemento grfico: seta fechada
Exemplo:
Generalizao
Relacionamento de um elemento
mais geral e outro mais especfico. Os objetos da classe-filha
podem ser utilizados em qualquer
lugar onde a classe-me ocorra,
mas no o contrrio.
Notao:
A classe: Atleta a classe-me.
As classes: Nadador e Tenista herdam a estrutura atributos e operaes da classe Atleta.
Classes Associativas
So classes ligadas a associaes, em vez de estarem ligadas a outras classes. Esse tipo
de classe normalmente aparece
quando duas ou mais classes
esto associadas e necessrio
manter informaes sobre associao.
Elemento grfico: classe ligada a uma associao por uma linha tracejada
Exemplo:
56
Funo
Nome
Papel
Multiplicidade
Agregao
Composio
Representao
Classe Pessoa
57
Simbologia
Apenas um
Zero ou Muitos
0..*
Um ou Muitos
1..*
Zero ou um
0..1
fazer a modelagem da viso esttica de um sistema. Essa viso oferece principalmente suporte
para os requisitos funcionais de um sistema os
servios que o sistema dever fornecer aos usurios finais (BOOCH, 2005, p. 109).
58
micos de um sistema de software. Os diagramas de caso de uso tm um papel importante na modelagem do comportamento de um sistema, por meio dele possvel
identificar de forma visual as funcionalidades do sistema e a interao destas funcionalidades com o usurio final.
Por utilizar uma representao grfica simples e uma linguagem natural, o dia-
UML:
Casos de Uso;
Atores;
Relacionamentos.
Assim como nos demais diagramas UML, o diagrama de casos de uso tambm
tema e os agentes externos que utilizam o sistema. Um caso de uso deve definir o uso
de uma parte da funcionalidade do sistema, sem a necessidade de revelar a estrutura
e o comportamento interno desse sistema.
59
Visualizar Avaliaes
Sumrio:
Ator Primrio:
Aluno
Ator Secundrio:
Professor
Pr-Condies:
Fluxo Principal:
Ps-Condies:
A tabela 5 ilustra, de maneira geral, um modelo que pode ser utilizado para
A funo de cada item, segundo Bezerra (2002, p. 66), pode ser identificada do
seguinte modo:
Nome o nome do caso de uso. Cada caso de uso deve possuir um nome
nico que tambm dever aparecer no diagrama de casos de uso.
Sumrio uma pequena descrio do caso de uso, funcionalidade. Deve ser
breve e possuir no mximo duas frases.
Ator Primrio o nome do ator que inicia o caso de uso.
Ator Secundrio os nomes dos demais atores participantes do caso de
uso, se existirem.
Pr-Condies define as hipteses que so assumidas como verdadeiras
60
Os atores podem ser considerados como qualquer elemento externo que inte-
rage com o sistema. O termo externo indica que atores no fazem parte do sistema.
E o termo interage significa que um ator troca - envia e/ou recebe - informaes com
o sistema.
de muitos casos de uso e um caso de uso tambm pode envolver vrios atores: primrios e secundrios. O ator primrio aquele que inicia uma seqncia de interaes
de um caso de uso; o secundrio aquele que supervisiona, opera, mantm ou auxilia
na utilizao do sistema.
61
uso.
Tabela 6 Elementos grficos do diagrama de casos de uso
Nome
Representao
Elemento grfico: retngulo que agrupa os casos de uso e os relacionamentos
Fronteira do Sistema
62
Relacionamento de Generalizao
63
64
objeto em questo;
Linha da vida representa a vida do objeto;
Mensagem a troca de informao entre os objetos. Por meio de uma
mensagem, um objeto faz a chamada da operao de outro objeto.
2.5 Diagrama de grfico de estados
Um estado pode ser interpretado como uma situao na vida de um objeto du-
rante a qual ele satisfaz alguma condio ou realiza alguma atividade. Cada estado
de um objeto normalmente determinado pelos valores dos seus atributos e/ou pelas
suas ligaes com outros objetos. Exemplos: (1) o atributo reservado deste objeto
livro tem valor verdadeiro; (2) uma conta bancria passa para o vermelho quando o
seu saldo atributo do objeto conta bancria fica negativo.
Bancaria.
65
Representao
Elemento grfico: crculo preenchido
Eventos / Aes um evento algo que acontece em algum ponto do tempo e pode modificar o
estado do objeto. Uma ao uma operao que
pode ser realizada pelo prprio objeto.
dinmicos do sistema que envolve a modelagem das etapas seqenciais e possivelmente concorrentes em um processo do sistema de software.
66
Representao
Elemento grfico: crculo preenchido
67
Sntese da Aula
2) Os diagramas da UML 2;
3) Os principais diagramas UML utilizados na modelagem de sistemas de software;
4) As caractersticas, objetivos e representao de cada um destes diagramas.
Exerccios Propostos
1) Complete a frase com uma das alternativas abaixo: As classes so elementos
classificados como ..................... da UML.
a) Itens estruturais
b) Itens comportamentais
c) Itens de agrupamento
d) Itens anotacionais
68
69
Aula 5
CONHECENDO O PROCESSO DE
DESENVOLVIMENTO DE SOFTWARE
Objetivos da Aula
Contedos da Aula
Exerccios Propostos.
70
Fique sabendo
A crise do software foi um termo utilizado nos anos 70, quando
a engenharia de software era praticamente inexistente. O termo
expressava as dificuldades do desenvolvimento de software frente
ao rpido crescimento da demanda por software, da complexidade dos
problemas a serem resolvidos e da inexistncia de tcnicas estabelecidas para
o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem
ser validados.
As causas da crise do software esto ligadas complexidade do processo de
software e relativa imaturidade da engenharia de software como profisso. A crise
se manifesta de vrias formas:
Projetos estourando o oramento;
Projetos estourando o prazo;
Software de baixa qualidade;
Software muitas vezes no atingia os requisitos;
Projetos ingerenciveis e o cdigo difcil de manter;
A maior parte dos projetos continua com esses problemas ainda na atualidade,
ento pode-se dizer que a crise continua vigente ainda na atualidade.
71
des:
1. Anlise de requisitos de software a extrao dos requisitos de um desejado produto de software a primeira tarefa na sua criao. Embora o cliente,
provavelmente, acredite saber o que o software deva fazer, essa tarefa requer
habilidade e experincia em engenharia de software para reconhecer os requisitos em um sistema de software complexo.
2. Especificao a especificao a tarefa de descrever precisamente o
software que ser desenvolvido. Nessa atividade ser elaborada grande parte
dos diagramas UML.
3. Arquitetura de Software a arquitetura de um sistema de software faz uma
representao abstrata do sistema. Por meio das tarefas realizadas nessa atividade, ser possvel identificar se o sistema de software a ser desenvolvido
est de acordo com os requisitos pr-definidos. A etapa da arquitetura tambm
direciona as interfaces entre os sistemas de software e outros produtos de software, como tambm com o hardware bsico ou com o sistema operacional.
4. Implementao (ou codificao) a atividade responsvel pelo desenvolvimento do projeto do software efetivamente. nessa atividade que o software comear a ser construdo e codificado por meio de linguagens de programao e outras tecnologias pr-definidas nas atividades de Especificao
e Arquitetura de Software.
5. Teste atividade que desenvolve os testes das funcionalidades do software.
Os testes sero sempre baseados nos artefatos e modelos resultantes das atividade de Especificao e Arquitetura de Software. Caso uma funcionalidade
no esteja de acordo com sua definio, dever ser reescrita. Existem vrios
mtodos que auxiliam no controle do desenvolvimento e testes das funcionalidades.
6. Documentao atividade que se refere documentao do projeto interno do software para propsitos de futuras manutenes e aprimoramentos. As
documentaes mais importantes so das interfaces externas. Grande parte
72
73
74
projetos bem sucedidos ainda no suficiente. Isso indica que um grande nmero de
projetos de software no atende s expectativas em termos de funcionalidades, custo, ou cronograma de entrega, portanto, acredita-se que ainda no existe um modelo
de processo perfeito para todas as aplicaes. Na aula 7 verificaremos as principais
tendncias para o processo de desenvolvimento de software.
tware, muito importante que os desenvolvedores e as empresas envoldidas com desenvolvimento de projetos de software adotem um modelo de processo para garantir
o sucesso dos seus projetos.
2.2 Modelo Cascata
75
meios para corrigir os erros nas etapas inicias, ento o processo inteiro da engenharia
de software deve ser executado at o fim, resultando em funcionalidades de software
desnecessrias ou sem uso.
76
quenas partes do software funcionalidades ou mdulos -, porm que sejam abrangentes de modo que auxilie os envolvidos a identificar se o desenvolvimento est
sendo feito de acordo com a necessidade e o especificado.
77
UML: Ivar Jacobson, James Rumbaugh e Grady Booch. Esse modelo pode ser considerado como o resultado de mais de 30 anos de experincia acumulada dos seus
criadores.
tware unificado:
Centrado na arquitetura;
Iterativo e incremental.
78
Sntese da Aula
Exerccios Propostos
1) Assinale a alternativa incorreta. As caractersticas responsveis pela crise de
software so:
a) Projetos estourando o oramento;
b) Projetos estourando o prazo;
c) Projetos com planejamento bem definido;
d) Software com baixa qualidade.
2) A atividade do Processo de Desenvolvimento de Software responsvel pela
entrevista com usurio e levantamento das informaes :
a) Anlise de requisitos de software;
b) Especificao;
c) Manuteno;
d) Suporte e Treinamento de Software.
3) A atividade do Processo de Desenvolvimento de Software que impacta diretamente nas demais atividades de software :
a) Anlise de requisitos de software;
79
b) Especificao;
c) Manuteno;
d) Suporte e Treinamento de Software.
4) O modelo de processo totalmente compatvel com a linguagem UML :
a) Modelo Cascata;
b) Modelo Iterativo;
c) Modelo Incremental;
d) Modelo Unificado.
80
Aula 6
MODELANDO PROJETOS DE
SOFTWARE
Nesta sexta aula voc estudar sobre as principais atividades desenvolvidas na etapa de anlise e projeto de
software. Estudar quais so as atividades dessa etapa, quais as
prticas comuns utilizadas para auxiliar no desenvolvimento das
atividades de modelagem e alguns exemplos de modelagem de
sistemas. Criar alguns diagramas UML com base na ferramenta
JUDE.
Bons Estudos!
Objetivos da Aula
Enumerar
as
principais
atividades
para
elaborar
os modelos de software;
Caracterizar cada atividade da modelagem de software;
Analisar os exemplos de prticas utilizados para modelar
projetos de software;
Criar modelos utilizando a lingaugem UML.
Contedos da Aula
Exerccios Propostos.
81
existente e define-se de que forma o software a ser criado dever solucionar essa necessidade. Em alguns ambientes, os desenvolvedores tm o mau costume de pular
a etapa de anlise indo diretamente para a etapa de desenvolvimento essa atitude
por ser justificada pela inexperincia dos desenvolvedores ou ainda por falta de um
modelo de processo de desenvolvimento de software definido.
Levantamento de informaes;
82
O analista pode utilizar vrias tcnicas como entrevistas com o usurio para descobrir
as necessidades existentes. As tcnicas mais utilizadas para levantamento de informaes com os usurios so:
Entrevistas;
Encontros/Reunies.
pre atento s informaes fornecidas pelo usurio, pois cada detalhe mencionado por
usurio, muitas vezes pode resultar em mudanas no planejamento que o analista j
estava realizando.
83
Nem sempre o usurio tem todas as informaes que o analista necessita. Mui-
tas vezes, o usurio tem informao sobre o seu trabalho no momento, mas a diretoria
tem um planejamento futuro em relao ao trabalho que afeta a aplicao e no de
conhecimento do usurio. Assim o analista deve sempre consultar outras pessoas
alm dos usurios da aplicao.
A tabela 10 mostra um exemplo de questionrio que pode ser aplicado em uma entrevista com o usurio.
Tabela 10 Exemplo de Questionrio
1.
2.
3.
4.
84
componentes do sistema.
que o software faa, sem a preocupao de como ele faz. importante diferenciar a
atividade de especificar requisitos da atividade de especificao que ocorre durante o
desenvolvimento do software. Na especificao do software, deve-se tomar a deciso
de quais funes o sistema efetivamente ter para satisfazer o que os usurios querem / necessitam.
85
des da fase de defino deve ser apresentado aos clientes para que possam valid-lo.
Esse documento oferece a concordncia entre clientes, analistas e desenvolvedores
sobre o que deve ser desenvolvido. utilizando esse documento que as atividades da
fase de desenvolvimento codificao sero validadas.
to. A sua estrutura, muitas vezes, depende do mtodo que est sendo utilizado. Em
linhas gerais, esse modelo deve ser basicamente textual, utilizando o mnimo de termos tcnicos, e ilustrados como modelos grficos que demonstrem mais claramente a
viso que os analistas tiveram dos problemas e dos requisitos para o futuro sistema.
Descrio
Tipo
Requisito Funcional
O sistema deve permitir o lanamento das notas dos alunos por disciplina pelos professores.
Requisito Funcional
Requisito Funcional
Requisito No-Funcional
86
seguintes questes:
Aluno;
Professor;
Secretaria.
Para auxiliar na identificao dos casos de uso, podem ser utilizadas as se-
guintes questes:
1. Quais funes os atores necessitam do sistema?
2. O que o ator deve fazer?
3. O ator precisa ler, escrever, apagar, modificar ou armazenar alguma informao no sistema?
4. O ator precisa ser informado sobre eventos que acontecem no sistema?
5 .O ator precisa notificar o sistema de alguma coisa?
87
Visualiza Notas;
Lana Notas;
Cadastra Disciplina;
Abre Turmas;
de casos de uso e, caso seja necessrio, detalhar / documentar o caso de uso textualmente. O detalhamento do caso de uso geralmente utilizado quando a funcionalidade referente ao caso de uso um tanto complexa. Caso contrrio, um detalhamento
maior no necessrio. O detalhamento do caso de uso pode utilizar o modelo sugerido na tabela 5 aula 4.
88
elaborar os diagramas UML utilizando o JUDE, basta voc seguir as seguintes instrues:
1. Abra a ferramenta por meio do menu: Iniciar >> Programas >> JUDE Community;
2. Crie um novo arquivo: .jude que possuir todos os diagramas e modelos
do seu projeto de software clicando em: File >> New ou pelo cone de atalho:
Create a New File. Dica: para cada projeto de software crie sempre um arquivo
diferente com o nome do projeto. Um arquivo jude poder possuir vrios diagramas podendo ser vrias verses de um mesmo diagrama dessa forma,
sempre coloque um nome para os diagramas identificando a situao ou funcionalidade que o diagrama representa. Isso facilitar a tarefa de modelagem
de software.
3. Para criar um novo diagrama, basta clicar na opo: Diagram na barra de
ferramentas e selecionar o diagrama desejado. Como a ferramenta est disponvel apenas no idioma ingls, segue abaixo a traduo para os principais
diagramas UML:
a) Diagrama de Caso de Uso = UseCase Diagram
SOCIESC - Sociedade Educacional de Santa Catarina
89
mais utlizado nos projetos de softwatre, pois com base nesse diagrama que as classes e os objetos do sistema sero criados. Os demais diagramas, como j informado,
podero ser modelados de acordo com a complexidade do sistema e/ou funcionalidades que esto sendo modeladas.
seguintes questes:
1. Existem informaes que devem ser registradas ou analisadas?
2. Existe interao com sistemas externos?
3. Existem padres, bibliotecas, pacotes, componentes, etc a serem utilizados?
4. Existem informaes que devem ser manipuladas de qualquer forma? Quais?
(Detalhar atributos e operaes)
5. Existem representaes organizacionais?
90
Aluno;
Professor;
Secretaria.
Semestre;
Disciplina;
Turma;
Horrio;
Sala;
Laboratrio;
Nota.
91
em relao a uma ou mais funcionalidades. Pode-se utilizar como referncia a definio e o detalhamento dos casos de uso identificados para o sistema. No diagrama de
seqncia ser ilustrada a ao de um ator e a troca de mensagens entre os objetos
do sistema, a fim de realizar a operao iniciada pela ao do ator.
92
sistema. Nesse diagrama sero ilustrados os estados que um objeto poder assumir,
dependendo da operao realizada pelo ator ou pelo prprio objeto. Esse diagrama
deve ser utilizado somente para os objetos que possuem uma complexidade considervel e necessitam de detalhamento para melhor anlise.
93
Essa atividade uma tarefa opcional, pois sua finalidade demonstrar de for-
ma visvel o layout das telas do sistema a ser desenvolvido. muito til para sistemas
extremamente complexos e com grande quantidade de telas, porm, mesmo nesse
caso, aconselhvel desenvolver os prottipos das telas mais complexas, para evitar
94
prottipos com grande qualidade e proximidade do layout das telas do sistema real.
Veja na figura 38 um exemplo de prottipo de tela desenvolvido com o VISIO.
Sntese da Aula
95
Exerccios Propostos
1) Analise os requisitos abaixo e desenvolva as seguintes atividades:
a) Identificao dos Atores do Sistema;
b) Identificao dos Casos de Uso do Sistema;
c) Elaborao do Diagrama de Casos de Uso;
d) Identificao das Classes do Sistema;
e) Elaborao do Diagrama de Classes.
#
Descrio
Tipo
Requisito Funcional
Requisito Funcional
O sistema deve permitir ao Funcionrio cadastrar Fretes contendo um cdigo, uma descrio, o peso total, um cliente e a cidade de
destino, no podendo haver um frete sem os
dados citados. Cada frete deve ter ainda o
seu valor, que deve ser calculado por meio do
peso multiplicado por um valor fixo, acrescido
da taxa de entrega da cidade de destino
Requisito Funcional
Requisito No-Funcional
96
Aula 7
TENDNCIAS DO PROCESSO DE
ENGENHARIA DE SOFTWARE
Objetivos da Aula
Contedos da Aula
A importncia do Software;
Metodologias geis;
Exerccios Propostos.
97
1 A IMPORTNCIA DO SOFTWARE
ram impacto sobre quase todos os aspectos da sociedade moderna durante a dcada
de 1990. um mecanismo para automatizar os negcios, a indstria e o governo, um
meio de transferir novas tecnologias, um modo de captar valiosa experincia para ser
usada por outros, um meio de diferenciar os produtos de uma empresa dos de seus
concorrentes e uma janela para o conhecimento corporativo coletivo (PRESSMAN,
1995, p. 1010).
tambm, fora do mundo dos computadores e sua rede mundial. Tendncias como:
softwares embarcados sistema especfico que faz parte de um minicomputador,
mquina ou sistema mais amplo -, tecnologias mveis sistema desenvolvido para
aparelhos de celulares e outros dispositivos mveis e sistemas para televiso digital
tm proporcionado uma grande evoluo na rea da engenharia de software, que vem
expandindo com grande velocidade a sua rea de atuao.
danas no processo de desenvolvimento e nas tcnicas utilizadas comearam a surgir. O objetivo dessas mudanas sempre a melhoria no processo de desenvolvimento de projetos de software a fim de produzir softwares com maior produtividade e
98
qualidade.
ria de software ao longo das prximas dcadas sero influenciadas a partir de quatro
direes simultneas: (1) as pessoas que fazem o trabalho; (2) o processo que elas
aplicam; (3) a natureza da informao; (4) e a tecnologia de computao subjcente.
1.2 Software baseada em Componentes
partir de muitos objetos de software e fornecem uma unidade de funcionalidade coerente. Os assim chamados objetos trabalham em conjunto para realizar uma tarefa
especfica em um dado nvel de servio.
reutilizao, por meio da qual tanto a produtividade quanto a qualidade seriam beneficiadas, pois um componente deve possuir exatido na funo que desempenha.
1.3 Padres de Projetos
Design Patterns, descrevem solues para problemas recorrentes no desenvolvimento de sistemas de software orientados a objetos. Um padro de projeto estabelece um
99
nome e define o problema, a soluo, quando aplicar essa soluo e suas conseqncias.
processo de desenvolvimento de software. Mesmo com a evoluo de mtodos, tcnicas e ferramentas, nem sempre se consegue entregar software em prazos e custos
estabelecidos nem sempre conseguida. Vimos na figura 1 (aula 1), de acordo com
as pesquisas realizadas pelo rgo Standish Group, que apenas 34% dos projetos de
software so bem-sucedidos.
causas desse problema pode ser o excesso de formalidade nos modelos de processo
propostos nos ltimos 30 anos. Documentaes extensivas e artefatos que muitas vezes so desenvolvidos no incio do projeto e depois engavetados durante o processo
de desenvolvimento, so apontadas como as principais causas de no sucesso dos
projetos.
100
EUA, para discutir formas de melhorar o desempenho de seus projetos. Embora cada
envolvido tivesse suas prprias prticas e teorias sobre como fazer um projeto de
software ter sucesso, todos concordavam que, em suas experincias prvias, um pequeno conjunto de princpios sempre era respeitado quando os projetos davam certo.
Com base nisso, criaram o Manifesto para o Desenvolvimento gil de Software
em 17 de fevereiro de 2001 -, freqentemente chamado apenas de Manifesto gil.
Os princpios propostos pelo Manifesto gil segundo Beck ( 2001), so:
Estamos descobrindo maneiras melhores de desenvolver software fazendo-o ns
mesmos e ajudando outros a faz-lo. Atravs desse trabalho, passamos a valorizar:
Indivduos e interaes so mais importantes que processos e ferramentas;
Software funcionando mais importante do que documentao detalhada;
Colaborao dos clientes mais importante do que negociao de contratos;
Adaptao s mudanas mais importante do que seguir um plano.
Ou seja, mesmo havendo valor nos itens direita, valorizamos mais os itens esquerda.
Assim, foi a partir do Manifesto gil que ocorreu a popularizao dos mtodos
geis que passaram a ser usados em empresas, universidades, institutos de pesquisa e at em agncias governamentais. Algumas das metodologias geis existentes
101
so:
XP (eXtreme Programming);
Famlia Crystal;
SCRUM;
LD (Lean Development);
Open Source.
Sntese
1) A importncia do software;
2) Conceitos bsicos sobre Engenharia de Software Baseada em Componentes;
3) Conceitos bsicos sobre Padres de Projeto;
4) Conceitos bsicos sobre Metodologias geis.
102
Exerccios propostos
1) Assinale a alternativa incorreta. De acordo com PRESSMAN, as mudanas
que podem afetar a Engenharia de Software so:
a) Pessoas que desenvolvem;
b) Processo de desenvolvimento;
c) Natureza da Informao;
d) Certificao de Padro.
2) Os componentes:
a) Possuem vrias funcionalidades;
b) Possuem uma interface bem definida;
c) Implementam Herana;
d) Comunicam-se por meio de troca de mensagens de dados.
3) Assinale a alternativa incorreta. objetivo das Metodologias geis:
a) Entregar software funcionando;
b) Aumentar o nvel de documentaes;
c) Incluir o cliente em todo o processo de desenvolvimento;
d) Adaptao s mudanas.
103
Aula 8
Objetivos da Aula
Contedos da Aula
104
Nesta aula, apresentaremos uma descrio inicial do estudo de caso que guia-
cessidades explicitadas pelo cliente que devero ser atendidas para solucionar um
determinado problema de negcio do qual o cliente faz parte.
105
Descrio
Tipo
Requisito Funcional
Requisito Funcional
O sistema deve permitir que o gerente realize o cadastro de servios utilizados em uma festa de casamento,
como buffet e carros utilizados
Requisito Funcional
Requisito Funcional
Requisito Funcional
Requisito Funcional
Requisito Funcional
Requisito Funcional
Requisito Funcional
10
Requisito Funcional
11
Requisito No-Funcional
12
O sistema deve garantir que o tempo de retorno das consultas seja inferior a 5 segundos
Requisito No-Funcional
106
porm possuem acesso s funcionalidades disponveis no sistema. Essas funcionalidades so os prprios casos de uso.
Casos de Uso:
Cadastra Servio;
Cadastra Profissional;
Configura Festa;
Gera Relatrio;
Cadastra Usurio;
Autentica Usurio.
possvel tambm nesta fase elaborar o detalhamento do caso de uso de modo textual.
No sistema de festas de casamento, proposto pelo estudo de caso, elaboraremos o
detalhamento do caso de uso: Autentica Usurio. Esse detalhamento permite uma
anlise mais criteriosa a respeito do funcionamento do caso de uso e suas principais
caractersticas.
rio.
107
Autentica Usurio
Sumrio:
Ator Primrio:
Gerente
Ator Secundrio:
Cliente
Pr-Condio:
Fluxo Principal:
Fluxo Alternativo:
grama de casos de uso que ir ilustrar a relao dos atores com as funcionalidades
do sistema casos de uso do sistema. A figura 39 ilustra o modelo de diagrama de
casos de uso proposto para o estudo de caso.
108
Salo;
Profissional;
Servio;
Festa;
Loja;
Presente;
Lista de Presente;
Lista de Convidado;
Convidado;
Usurio.
109
110
111
CONCLUSO
Possuir um software que auxilie em tarefas diversas tornou-se algo muito co-
mum nos dias de hoje. Porm, mesmo com a grande evoluo que o software vem
sofrendo nas ltimas dcadas e da quantidade e diversidade de tecnologias que surgiram; desenvolver software ainda considerado uma atividade complexa.
ciais do projeto de software, consideradas como primordiais para o sucesso do produto resultante do processo. Nessas etapas, realizada a compreenso do problema
de negcio a ser solucionado pelo software, portanto, so etapas que requerem um
alto grau de experincia por parte dos desenvolvedores e grande ateno, a fim
de identificar todos os requisitos e as possveis variaes decorrentes do processo de
desenvolvimento de software.
Assim, esse mdulo teve como objetivo principal fazer uma introduo aos co-
112
REFERNCIAS
BECK, Kent et al. Manifesto for Agile Software Development. 2001. Disponvel em:
http://www.agilemanifesto.org.
BEZERRA, Eduardo. Princpios de anlise e projeto de sistemas com UML. Rio de
Janeiro: Elsevier, 2002.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: Guia do Usurio. Rio
de Janeiro: Elsevier, 2005.
Dicionrio Aurlio Online. Disponvel em: http://200.225.157.123/dicaureliopos/
PRESSMAN, Roger S. Engenharia de Software. So Paulo: Pearson Makron Books,
1995.
WIKIPDIA, a enciclopdia livre. Artigos Eletrnicos. Disponvel em: http://
pt.wikipedia.org/
113
APNDICE 1
1 O PARADIGMA DA ORIENTAO A OBJETOS
nomos (atuais objetos) que interagem entre si. Assim, foram estabelecidos os seguintes princpios da orientao a objetos:
Qualquer coisa um objeto;
Objetos realizam tarefas por meio da requisio de servios a outros objetos;
Cada objeto pertence a uma determinada classe;
Uma classe agrupa objetos similares;
A classe um repositrio para comportamento associado ao objeto;
Classes so organizadas em hierarquias.
1. Para comprar uma pizza VOC que est muito ocupado, pede sua pizza por telefone;
2. VOC informa ao ATENDENTE seus dados e as caractersticas da pizza que deseja comprar;
3. O ATENDENTE atende sua solicitao e comunica ao PIZZAIOLO seu pedido;
4. O PIZZAIOLO faz a pizza e chama o ENTREGADOR;
5. O ENTREGADOR pega a pizza e a entrega para VOC na sua casa.
DOR trabalharam juntos para alcanar o objetivo comum: entregar a pizza quentinha
na sua casa!
114
especficas e por meio da interao entre os objetos que uma tarefa computacional
realizada.
115
Figura 43 Princpios da OO
1.1.1 Encapsulamento
tes.
1.1.3 Herana
116
1.1.5 Objetos
Os objetos esto em toda parte no mundo real:
Pessoas, Animais, Plantas, Carros, Avies, Edifcios, Computadores, etc;
todos exibem comportamento, por exemplo: uma bola rola, rebate, infla e murcha.
peso, altura e profisso para uma pessoa. Em uma linguagem de programao, essas caractersticas so implementadas atravs de variveis.
SOCIESC - Sociedade Educacional de Santa Catarina
117
tos.
1.1.7 Comportamento dos Objetos
118
Crditos
SOCIESC Sociedade Educacional de Santa Catarina
Design Grfico
Thiago Vedoi de Lima
Coordenador de Projetos
Jos Luiz Schmitt
Revisora Pedaggica
Ndia Ftima de Oliveira
Professor Responsvel
Rosemary Francisco