Text Material Preview
MANUAL DO CURSO DE LICENCIATURA EM
GSI
2º Ano
Disciplina: Métodos de Analise, Desenho e Implementação de
SI
Código:
Total Horas/1o Semestre:
Créditos (SNATCA):
Número de Temas:
INSTITUTO SUPER
INSTITUTO SUPERIOR DE CIÊNCIAS E EDUCAÇÃO A DISTÂNCIA - ISCED
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
i
Direitos de autor (copyright)
Este manual é propriedade do Instituto Superior de Ciências e Educação a Distância (ISCED), e
contém reservados todos os direitos. É proibida a duplicação ou reprodução parcial ou total
deste manual, sob quaisquer formas ou por quaisquer meios (electrónicos, mecânico, gravação,
fotocópia ou outros), sem permissão expressa de entidade editora (Instituto Superior de Ciências
e Educação a Distância (ISCED).
A não observância do acima estipulado o infractor é passível a aplicação de processos judiciais
em vigor no País.
Instituto Superior de Ciências e Educação a Distância (ISCED)
Direcção Académica
Rua Dr. Almeida Lacerda, No 212 Ponta - Gêa
Beira - Moçambique
Telefone: +258 23 323501
Cel: +258 82 3055839
Fax: 23323501
E-mail: isced@isced.ac.mz
Website: www.isced.ac.mz
http://www.isced.ac.mz/
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
ii
Agradecimentos
O Instituto Superior de Ciências e Educação a Distância (ISCED) agradece a colaboração dos
seguintes indivíduos e instituições na elaboração deste manual:
Autor Msc.Solomone Rumhungwe
Coordenação
Design
Financiamento e Logística
Revisão Científica e
Linguística
Ano de Publicação
Local de Publicação
Direcção Académica do ISCED
Instituto Superior de Ciências e Educação a Distância (ISCED)
Instituto Africano de Promoção da Educação a Distancia (IAPED)
Português
2018
ISCED – BEIRA
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
iii
Índice
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
iv
Visão geral 1
Benvindo à Disciplina/Módulo de Analise, Desenho e Implementação de Sistema de
Informação......................................................................................................................... 1
Objectivos do Módulo ....................................................................................................... 1
Quem deveria estudar este módulo .................................................................................. 2
Como está estruturado este módulo .................................................................................. 2
Ícones de actividade .......................................................................................................... 4
Habilidades de estudo ...................................................................................................... 4
Precisa de apoio? .............................................................................................................. 6
Tarefas (avaliação e auto-avaliação) ............................................................................... 6
Avaliação .......................................................................................................................... 7
TEMA – I: CONCEITOS GERAIS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 9
UNIDADE Temática 1.1. Introdução, Conceitos Gerais e Ciclo da vida e atividade de um
processo. ............................................................................................................................ 9
Introdução .......................................................................................................................... 9
Sumário ............................................................................................................................ 15
Exercícios de AUTO-AVALIAÇÃO .................................................................................... 15
Exercícios para AVALIAÇÃO ........................................................................................... 15
Unidade Temático1.2: Análise: Elicitação e especificação de requisitos ......................... 15
TEMA -II: MODELAGEM DE SISTEMA DE INFORMAÇÃO 25
UNIDADE Temática 2.1. Introdução, Diagramas de UML, Historia, Diagrama de Caso de
Uso, Aplicação Pratica e Estudo de Caso ........................................................................ 25
Introdução ........................................................................................................................ 25
UNIDADE temático 2.2: Os Modelos- Diagrama de Classe, Descrição de caso de uso,
Diagramas de Interação, diagrama de Atividade e Aplicação Prática ......................... 33
UNIDADE Temática 2.3. Diagrama de Implementação - Componente e Implantação .... 60
Sumário ............................................................................................................................ 65
Exercícios de AUTO-AVALIAÇÃO .................................................................................... 65
Exercícios para AVALIAÇÃO ........................................................................................... 69
Exercícios do TEMA .......................................................................................................... 71
TEMA – III: IMPLEMENTACAO 71
UNIDADE Temática 3.1. Introdução, Atividades relacionadas ao código-fonte do Sistema
........................................................................................................................................ 71
Introdução ........................................................................................................................ 71
UNIDADE Tematico 3.2. Modelagem de Processo Desenvolvimento de Software –
Introdução, Modelo Cascada, em fonte , Espiral , Iterativo/Incremental e Ágeis ........... 73
UNIDADE Temático 3.3. Processo Unificado .................................................................... 87
UNIDADE Temático 3.4. Padrões de Implementação ...................................................... 93
Sumário .......................................................................................................................... 101
Exercícios de AUTO-AVALIAÇÃO .................................................................................. 102
Exercícios para AVALIAÇÃO ......................................................................................... 107
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
v
TEMA -IV: TESTE DE SOFTWARE 107
UNIDADE Temática 4.1. Importância do teste de software ........................................... 108
Introdução ...................................................................................................................... 108
UNIDADE Temático 4.2 – Teste no projeto de sistema .................................................. 114
UNIDADE Temático 4.3 – Teste no Programa ................................................................ 117
UNIDADE Temático 4.4 – Teste na implantação do sistema .......................................... 124
UNIDADE Temático 4.5 – Teste de software em sistema em produção ......................... 126
Unidade Temático 4.6 – Ferramentas de teste de software ......................................... 132
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo:ADISI
1
Visão geral
Benvindo à Disciplina/Módulo de Analise, Desenho e
Implementação de Sistema de Informação
Objectivos do Módulo
Ao terminar o estudo deste módulo de Analise, Desenho e
Implementação de Sistema de Informação deverá ser capaz de:
apresentar o processo de desenvolvimento de uma aplicação desde
os requerimentos do sistema até o desenho da aplicação usando
conceitos de modelado UML para produzir diagramas detalhados.
Pretende-se que o estudante seja capaz de identificar e definir os
requisitos de um sistema e proceda ao desenho de Software
centrado em objectos que satisfaça estes requisitos. Além disso,
pretende-se que o estudante aplique metodologias padrão durante
o processo de análise, desenho e desenvolvimento de Software com
ênfase nos padrões de desenho
Objectivos
Específicos
▪ Demonstrar uma compreensão do processo de desenvolvimento de
Literatura Fundamental Analise, Desenho Orientada ao Objecto
(ADOO);
▪ Apreciar UML como um modelo para o sistema de Software
Orientada a objecto (OO) típico;
▪ Apresentar conceitos ligados ao processo como a própria definição e o
encadeamento das fases.
▪ Introduzidos conceitos de modelagem de sistemas e da linguagem de
modelagem UML
▪ Familiarizar os leitores com o uso de ferramenta case para capaz de
modelar aplicações utilizando UML.
▪ Novo programa de classes OO e pacotes usando os conceitos de
herança e polimorfismo;
▪ Demonstrar uma compreensão básica do uso de padrões de desenho
na conceção de sistemas de Software OO;
▪ Programa de interfaces gráficas usando alguns dos pacotes OO
padrão.
▪ Desenvolver aplicativos autônomos usando desenho e implementação
de abordagens reutilizáveis
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
2
▪ Investigar requisitos do usuário
▪ Definir, claramente, as necessidades do sistema
▪ Criar (ou adaptar) uma solução adequada
▪ Definição de tecnologias e arquitetura a serem adotadas
▪ Desenvolver a solução Proposta
▪ Garantir que a solução resolverá o problema em questão
▪ Modificar a solução sempre que novos requisitos forem identificados
Quem deveria estudar este módulo
Este Módulo foi concebido para estudantes do 2º ano do curso de
licenciatura em GSI do ISCED. Poderá ocorrer, contudo, que haja
leitores que queiram se actualizar e consolidar seus conhecimentos
nessa disciplina, esses serão bem-vindos, não sendo necessário para
tal se inscrever. Mas poderá adquirir o manual.
Como está estruturado este módulo
Este módulo de ADISI, para estudantes do 2º ano do curso de
licenciatura em GSI, à semelhança dos restantes do ISCED, está
estruturado como se segue:
Páginas introdutórias
▪ Um índice completo.
▪ Uma visão geral detalhada dos conteúdos do módulo, resumindo
os aspectos-chave que você precisa conhecer para melhor
estudar. Recomendamos vivamente que leia esta secção com
atenção antes de começar o seu estudo, como componente de
habilidades de estudos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
3
Conteúdo desta Disciplina / módulo
Este módulo está estruturado em Temas. Cada tema, por sua vez
comporta certo número de unidades temáticas ou simplesmente
unidades. Cada unidade temática se caracteriza por conter uma
introdução, objectivos, conteúdos.
No final de cada unidade temática ou do próprio tema, são
incorporados antes o sumário, exercícios de auto-avaliação, só
depois é que aparecem os exercícios de avaliação.
Os exercícios de avaliação têm as seguintes características: Puros
exercícios teóricos/Práticos, Problemas não resolvidos e actividades
práticas, incluído estudo de caso.
Outros recursos
A equipa dos académicos e pedagogos do ISCED, pensando em si,
num cantinho, recôndito deste nosso vasto Moçambique e cheio de
dúvidas e limitações no seu processo de aprendizagem, apresenta
uma lista de recursos didácticos adicionais ao seu módulo para você
explorar. Para tal o ISCED disponibiliza na biblioteca do seu centro
de recursos mais material de estudos relacionado com o seu curso
como: Livros e/ou módulos, CD, CD-ROOM, DVD. Para além deste
material físico ou electrónico disponível na biblioteca, pode ter
acesso a Plataforma digital moodle para alargar mais ainda as
possibilidades dos seus estudos.
Auto-avaliação e Tarefas de avaliação
Tarefas de auto-avaliação para este módulo encontram-se no final
de cada unidade temática e de cada tema. As tarefas dos exercícios
de auto-avaliação apresentam duas características: primeiro
apresentam exercícios resolvidos com detalhes. Segundo, exercícios
que mostram apenas respostas.
Tarefas de avaliação devem ser semelhantes às de auto-avaliação
mas sem mostrar os passos e devem obedecer o grau crescente de
dificuldades do processo de aprendizagem, umas a seguir a outras.
Parte das terefas de avaliação será objecto dos trabalhos de campo
a serem entregues aos tutores/docentes para efeitos de correcção e
subsequentemente nota. Também constará do exame do fim do
módulo. Pelo que, caro estudante, fazer todos os exercícios de
avaliação é uma grande vantagem.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
4
Comentários e sugestões
Use este espaço para dar sugestões valiosas, sobre determinados
aspectos, quer de natureza científica, quer de natureza didáctico-
Pedagógica, etc, sobre como deveriam ser ou estar apresentadas.
Pode ser que graças as suas observações que, em gozo de confiança,
classificamo-las de úteis, o próximo módulo venha a ser melhorado.
Ícones de actividade
Ao longo deste manual irá encontrar uma série de ícones nas margens
das folhas. Estes ícones servem para identificar diferentes partes do
processo de aprendizagem. Podem indicar uma parcela específica
de texto, uma nova actividade ou tarefa, uma mudança de
actividade, etc.
Habilidades de estudo
O principal objectivo deste campo é o de ensinar aprender a
aprender. Aprender aprende-se.
Durante a formação e desenvolvimento de competências, para
facilitar a aprendizagem e alcançar melhores resultados, implicará
empenho, dedicação e disciplina no estudo. Isto é, os bons resultados
apenas se conseguem com estratégias eficientes e eficazes. Por isso é
importante saber como, onde e quando estudar. Apresentamos
algumas sugestões com as quais esperamos que caro estudante possa
rentabilizar o tempo dedicado aos estudos, procedendo como se
segue:
1º Praticar a leitura. Aprender a Distância exige alto domínio de
leitura.
2º Fazer leitura diagonal aos conteúdos (leitura corrida).
3º Voltar a fazer leitura, desta vez para a compreensão e
assimilação crítica dos conteúdos (ESTUDAR).
4º Fazer seminário (debate em grupos), para comprovar se a sua
aprendizagem confere ou não com a dos colegas e com o padrão.
5º Fazer TC (Trabalho de Campo), algumas actividades práticas ou
as de estudo de caso se existirem.
IMPORTANTE: Em observância ao triângulo modo-espaço-tempo,
respectivamente como, onde e quando...estudar, como foi referido
no início deste item, antes de organizar os seus momentos de estudo
reflicta sobre o ambiente de estudo que seria ideal para si: Estudo
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
5
melhor em casa/biblioteca/café/outro lugar? Estudo melhor à
noite/de manhã/de tarde/fins-de-semana/ao longo da semana?
Estudo melhor com música/num sítio sossegado/num sítio barulhento!?
Preciso de intervalo em cada 30 minutos, em cada hora, etc.
É impossível estudar numanoite tudo o que devia ter sido estudado
durante um determinado período de tempo; Deve estudar cada ponto
da matéria em profundidade e passar só ao seguinte quando achar
que já domina bem o anterior.
Privilegia-se saber bem (com profundidade) o pouco que puder ler e
estudar, que saber tudo superficialmente! Mas a melhor opção é
juntar o útil ao agradável: Saber com profundidade todos conteúdos
de cada tema, no módulo.
Dica importante: não recomendamos estudar seguidamente por
tempo superior a uma hora. Estudar por tempo de uma hora
intercalado por 10 (dez) a 15 (quinze) minutos de descanso (chama-
se descanso à mudança de actividades). Ou seja que durante o
intervalo não se continuar a tratar dos mesmos assuntos das
actividades obrigatórias.
Uma longa exposição aos estudos ou ao trabalho intelectual
obrigatório pode conduzir ao efeito contrário: baixar o rendimento
da aprendizagem. Por que o estudante acumula um elevado volume
de trabalho, em termos de estudos, em pouco tempo, criando
interferência entre os conhecimentos, perde sequência lógica, por fim
ao perceber que estuda tanto mas não aprende, cai em insegurança,
depressão e desespero, por se achar injustamente incapaz!
Não estude na última da hora; quando se trate de fazer alguma
avaliação. Aprenda a ser estudante de facto (aquele que estuda
sistematicamente), não estudar apenas para responder a questões de
alguma avaliação, mas sim estude para a vida, sobre tudo, estude
pensando na sua utilidade como futuro profissional, na área em que
está a se formar.
Organize na sua agenda um horário onde define a que horas e que
matérias deve estudar durante a semana; Face ao tempo livre que
resta, deve decidir como o utilizar produtivamente, decidindo quanto
tempo será dedicado ao estudo e a outras actividades.
É importante identificar as ideias principais de um texto, pois será
uma necessidade para o estudo das diversas matérias que compõem
o curso: A colocação de notas nas margens pode ajudar a estruturar
a matéria de modo que seja mais fácil identificar as partes que está
a estudar e Pode escrever conclusões, exemplos, vantagens,
definições, datas, nomes, pode também utilizar a margem para
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
6
colocar comentários seus relacionados com o que está a ler; a melhor
altura para sublinhar é imediatamente a seguir à compreensão do
texto e não depois de uma primeira leitura; Utilizar o dicionário
sempre que surja um conceito cujo significado não conhece ou não lhe
é familiar;
Precisa de apoio?
Caro estudante, temos a certeza que por uma ou por outra razão, o
material de estudos impresso, lhe pode suscitar algumas dúvidas como
falta de clareza, alguns erros de concordância, prováveis erros
ortográficos, falta de clareza, fraca visibilidade, página trocada ou
invertidas, etc). Nestes casos, contacte os serviços de atendimento e
apoio ao estudante do seu Centro de Recursos (CR), via telefone, sms,
E-mail, se tiver tempo, escreva mesmo uma carta participando a
preocupação.
Uma das atribuições dos Gestores dos CR e seus assistentes
(Pedagógico e Administrativo), é a de monitorar e garantir a sua
aprendizagem com qualidade e sucesso. Dai a relevância da
comunicação no Ensino a Distância (EAD), onde o recurso as TIC se
torna incontornável: entre estudantes, estudante – Tutor, estudante –
CR, etc.
As sessões presenciais são um momento em que você caro estudante,
tem a oportunidade de interagir fisicamente com staff do seu CR, com
tutores ou com parte da equipa central do ISCED indigitada para
acompanhar as sua sessões presenciais. Neste período pode
apresentar dúvidas, tratar assuntos de natureza pedagógica e/ou
administrativa.
O estudo em grupo, que está estimado para ocupar cerca de 30%
do tempo de estudos a distância, é muita importância, na medida em
que lhe permite situar, em termos do grau de aprendizagem com
relação aos outros colegas. Desta maneira ficará a saber se precisa
de apoio ou precisa de apoiar aos colegas. Desenvolver hábito de
debater assuntos relacionados com os conteúdos programáticos,
constantes nos diferentes temas e unidade temática, no módulo.
Tarefas (avaliação e auto-avaliação)
O estudante deve realizar todas as tarefas (exercícios, actividades e
auto−avaliação), contudo nem todas deverão ser entregues, mas é
importante que sejam realizadas. As tarefas devem ser entregues
duas semanas antes das sessões presenciais seguintes.
Para cada tarefa serão estabelecidos prazos de entrega, e o não
cumprimento dos prazos de entrega, implica a não classificação do
estudante. Tenha sempre presente que a nota dos trabalhos de campo
conta e é decisiva para ser admitido ao exame final da
disciplina/módulo.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
7
Os trabalhos devem ser entregues ao Centro de Recursos (CR) e os
mesmos devem ser dirigidos ao tutor/docente.
Podem ser utilizadas diferentes fontes e materiais de pesquisa,
contudo os mesmos devem ser devidamente referenciados,
respeitando os direitos do autor.
O plágio1 é uma violação do direito intelectual do(s) autor(es). Uma
transcrição à letra de mais de 8 (oito) palavras do testo de um autor,
sem o citar é considerado plágio. A honestidade, humildade científica
e o respeito pelos direitos autorais devem caracterizar a realização
dos trabalhos e seu autor (estudante do ISCED).
Avaliação
Muitos perguntam: Com é possível avaliar estudantes à distância,
estando eles fisicamente separados e muito distantes do
docente/tutor! Nós dissemos: Sim é muito possível, talvez seja uma
avaliação mais fiável e consistente.
Você será avaliado durante os estudos à distância que contam com
um mínimo de 90% do total de tempo que precisa de estudar os
conteúdos do seu módulo. Quando o tempo de contacto presencial
conta com um máximo de 10%) do total de tempo do módulo. A
avaliação do estudante consta detalhada do regulamentado de
avaliação.
Os trabalhos de campo por si realizados, durante estudos e
aprendizagem no campo, pesam 25% e servem para a nota de
frequência para ir aos exames.
Os exames são realizados no final da cadeira disciplina ou modulo e
decorrem durante as sessões presenciais. Os exames pesam no mínimo
75%, o que adicionado aos 25% da média de frequência,
determinam a nota final com a qual o estudante conclui a cadeira.
A nota de 10 (dez) valores é a nota mínima de conclusão da cadeira.
Nesta cadeira o estudante deverá realizar pelo menos 2 (dois)
trabalhos e 1 (um) (exame).
Algumas actividades práticas, relatórios e reflexões serão utilizados
como ferramentas de avaliação formativa.
Durante a realização das avaliações, os estudantes devem ter em
consideração a apresentação, a coerência textual, o grau de
cientificidade, a forma de conclusão dos assuntos, as recomendações,
a identificação das referências bibliográficas utilizadas, o respeito
pelos direitos do autor, entre outros.
Os objectivos e critérios de avaliação constam do Regulamento de
Avaliação.
1 Plágio - copiar ou assinar parcial ou totalmente uma obra literária, propriedade
intelectual de outras pessoas, sem prévia autorização.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
9
TEMA – I: CONCEITOS GERAIS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
UNIDADE Temática 1.1. Introdução, Conceitos Gerais: objectivos e
Ciclo da vida e atividades de um processo.
UNIDADE Temática 1.2. Análise: Elicitação e especificação de
requisitos
UNIDADE Temática 1.4. EXERCÍCIOS deste tema
UNIDADE Temática 1.1. Introdução, Conceitos Gerais eCiclo da vida e atividade
de um processo.
Introdução
O ciclo de vida de um sistema Software incluem análises e
especificação de requisitos, desenho, implementação, testagem,
instalação e manutenção. Engenharia de Software é a disciplina que
se ocupa de todas as fases do ciclo de vida, tentando conseguir a
construção de sistemas, que satisfaçam os requisitos dos usuários e dos
clientes, duma forma eficiente.
Para atingir este objetivo se utilizam metodologias para definir o
processo completo da vida de um sistema. Entre estas metodologias
destaca por sua madureza e uso na indústria do Software a
metodologia UP /RUP, baseada no uso de iterações para construir
Software de forma incremental e que utiliza UML como forma de
expressar numa linguagem comum, o conhecimento relativo ao
problema e a solução do sistema a construir.
Objectivos
específicos
▪ As fases de elicitação e especificação de requisitos, análise e
projeto têm uma importância enorme no contexto de um rocesso
de desenvolvimento de software devido ao fato de identificarem
o que deve ser desenvolvido (requisitos e análise) e estabelecer
como desenvolver (projeto). Portanto, os conceitos de eliciação e
especificação de requisitos, análise e projeto de sistemas são, de
modo a fornecer uma visão geral destas atividades no contexto
do desenvolvimento de software
Sistema
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
10
É um conjunto de procedimentos que estabelecem o funcionamento do
fluxo de trabalho (Workflow) das organizações.
Ex: Secretária que organiza o agendamento dos pacientes de
um consultório médico.
É um conjunto de instruções que, orquestradas entre si, manipulam um
conjunto de dados afim de produzir informação e eventos.
Ex1: Sistema Web de agendamento de consultas médicas
(Informação)
Ex2: Sistema de Monitoramento de alerta de tempestades
(Evento)
Sistema vs Software
O software é a automatização de um sistema.
Nem todo sistema é automatizado.
Ex: Agendamento manual de consultas médicas.
O software é tanto o produto quanto o veículo para entregar o
produto (PRESSMAN, 2002)
Ex: Um relatório gerencial em PDF é o produto, assim como
o sistema usado na sua geração.
Software
O software é o conjunto de vários artefatos e não apenas o código
fonte (SOMMERVILLE, 2003).
Realizando uma comparação entre o software e hardware. Chegamos
a seguinte conclusão. O software apenas pode ser desenvolvido e
realizar a manutenção (mudança) no software é uma tarefa omplicada,
exige grande esforço da equipe de engenheiro de software. Ao passar
do tempo o software fica deteriorado. Já para o hardware apenas
pode ser fabricado e realizar a manutenção no hardware é
implesmente trocar à peça que esta em desgaste. Ao passar do tempo
o hardware desgasta por vários motivos (PRESSMAN, 2006).
O software é caro porque torna se uma atividade difícil e trabalhosa
de ser realizado pelo engenheiro de software (JALOTE, 2005).
De acordo Pressman (2006) o software estão categorizados em
seguintes tipos, tais como:
Software de sistema. São programas que apóiam outros programas,
como o software que realiza a comunicação com o hardware (sistema
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
11
operacional) e software que ajuda na construção de outro software
(compiladores).
Software de aplicação. São programas que são desenvolvidos para
executar no negócio de uma empresa determinada.
Software científico e de engenharia. São algoritmos que processam
números.
Software embutido. São programas construídos para executarem
dentro de um produto específico como a teclas digitais de um forno
micro ondas.
Software para linhas de produtos. São os softwares conhecidos como
software de prateleiras.
Software de web. São aplicativos que são executados via Internet.
Software de inteligência artificial. São softwares que fazem os usos
de algoritmos não numéricos. Estes tipos software se encaixam na
robótica.
Computação ubíqua. São softwares que realiza a verdadeira
computação distribuída.
Software aberto. São software que disponibiliza a visualização do
código fonte da aplicação para o engenheiro de software modifica da
maneira que deseja.
Software Legado
O nome de software legado é dado quando refere se num programa
de computador que foi desenvolvido por há muito tempo. A reocupação
do engenheiro de software com os softwares legados esta na baixa
qualidade do software. Muitas vezes não existem documentações e se
existem são pobres de detalhes, os casos de teste são pobres quando
tem e sem um controle de mudanças. E muitas vezes não mexem no
software legado quando eles atentem as necessidades do cliente
(PRESSMAN, 2006).
Engenharia de Software
Engenharia de software é uma abordagem sistemática e disciplinada
para o desenvolvimento de software (PRESSMAN, 2006).
Uma das grandes dificuldades da engenharia do software é resolver o
problema e deixar o cliente satisfeito com o software (JALOTE, 2005).
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
12
Na demonstração da figura 1 representa uma visão do engenheiro de
software em desenvolver o software que traz uma grande satisfação
para o usuário quando ele próprio utiliza o software.
A engenharia de software foca no software como produto. Não entra
neste escopo o softwares construídos apenas para passarem o tempo
dos programadores (PAULA FILHO, 2009).
No desenvolvimento de um projeto de software quanto mais complexo
é o software, maior é o empenho que o engenheiro de software deve
fazer para desenvolver e tem que ter maior gerenciamento (JALOTE,
2005).
Na demonstração da figura 2 representa uma comparação entre
projetos de software grande e pequeno. Verificar que quanto maior é
a complexidade do software mais atenção deve ter para a construção
do software.
A base da engenharia de software são conjuntos de atividades para o
processo de desenvolvimento de software. A existência de vários tipos
de processo de desenvolvimento de software e podemos dizer para
resolver o problema do software usam estas atividades tais como:
analise de requisito, design do software, código e teste (JALOTE,
2005).
Analise de requisito. Através da analise de requisito é o momento onde
efetua o conhecimento do problema para desenvolve o software
(JALOTE, 2005).
Design do software. Pelo design do software é o momento que o
engenheiro de software realiza o planejamento da solução do
problema que foi levantado no documento de requisito (JALOTE, 2005).
Codificação. A codificação é o momento que pega o problema
resolvido no design do software e transformará em uma linguagem de
programação (JALOTE, 2005).
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
13
Teste. O teste de software é o processo tem a intenção de encontrar
defeitos nos artefatos de software (MYERS, 2004). O teste é uma
maneira de medir o controle da qualidade do software durante o
desenvolvimento de software (JALOTE, 2005).
Engenharia de Software
“É a criação e a utilização de sólidos princípios de engenharia a fim
de obter software de maneira econômica, que seja confiável e que
trabalhe eficientemente em máquinas reais.” (Fritz Bauer)
Evolução do Software
No início, os softwares eram muito pequenos, dadas as limitações
de hardware.
Com o crescimento do poder computacional, cresce também o
tamanho e a complexidadedo software .
Várias técnicas surgiram para ajudar na administração dessa
complexidade:
• Técnicas ligadas à linguagens de programação;
• Aprofundamento dos estudos na Engenharia de Software;
• Arquitetura de Software;
• Ferramentas CASE.
Tava tudo bonito até que...
Crise do Software
“A maioria dos especialistas concorda que o modo mais provável de o
mundo ser destruído é por acidente. É onde nós entramos. Somos
profissionais de computação. Nós causamos acidentes” (Nathaniel
Borenstein)
Anos 60, mas se arrasta até hoje segundo pesquisa do Standish Group
(2009)
• 18% dos projetos são cancelados por atrasos e orçamentos
estourados;
• 52% dos projetos estouram o orçamento e/ou prazo;
• 30% de todos os projetos de TI atingem seus objetivos dentro
de prazo e custo estimados.
Outros motivos:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
14
• Taxa de rotatividade de pessoal elevada – Entre 20% e 30%
ao ano
• Grandes sistemas levando de 3 a 5 anos para serem
desenvolvidos. Muitos deles se tornando obsoletos antes de
serem entregues – Natimortos
• Manutenção de software responsável pelo maior custo
relacionado a computação para a maioria das empresas da
área
• Segundo Sommerville (2007), os problemas a seguir foram
definidos como desafios-chave a serem superados:
• Heterogeneidade - Técnicas de desenvolvimento para
construção de software que possam lidar com ambientes
heterogêneos.
• Entrega - Técnicas de desenvolvimento para conduzir a entrega
mais rápida de software .
• Confiança - Técnicas de desenvolvimento que mostram que o
software pode ter a confiança dos seus usuários.
• Crise, mas nem tanto...
• Apesar dos problemas relatados persistirem de alguma forma,
até hoje, vivenciamos muito mais casos de sucessos que
insucessos.
• Alguns autores defendem que nunca existiu crise de software .
Apenas uma Aflição Crônica (TEICHROW, 1989)
• Aflição: “Qualquer coisa que causa dor ou desconforto”.
• Crônica: “de longa duração ou que volta frequentemente”
• Processo de Desenvolvimento de Software (PDS)
• É a estrutura comum, composta por um pequeno número de
atividades, que são utilizadas em todos os projetos de software
(PRESSMAN, 2002).
• Há muitos modelos para esses processos, cada um descrevendo
abordagens diferentes para uma variedade de tarefas a serem
executadas durante o processo.
Ciclo de Vida e atividade de um processo
Todo ciclo de desenvolvimento tem início, meio e fim.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
15
A variável temporal desse processo é chamada de Ciclo de Vida
Todo processo é composto de atividades executadas,
coordenadamente, num encadeamento de fases.
Compreende todas das atividades relacionadas à definição,
desenvolvimento, teste e manutenção do software.
Existem vários processos. Cada um com a sua aplicabilidade.
Sumário
Nesta Unidade temática 1.1 estudamos e discutimos conceitos gerais de
Processo de desenvolvimento de Software, tipos de software,
engenharia do software e Ciclo de vida e actividade de um preocesso
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Unidade Temático1.2: Análise: Elicitação e especificação de requisitos
Análise De Sistemas
Processo de reunir e interpretar factos, diagnosticar problemas, utilizar
estes factos para melhorar o sistema.
Na maior parte dos casos, o desenvolvimento de SI´s corresponde a
projectos de grande dimensão, envolve a participação de vários grupos
de stakeholders (técnicos e não técnicos), agrega várias componentes e
tecnologias na sua estrutura (dados,
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
16
processo e interfaces) e faz uso de várias técnicas e metodologias para
apoiar o desenvolvimento das etapas que compõem o processo. De
acordo com Whitten [5], hoje em dia grande parte dos SI’s suportam
uma estrutura em torno de três componentes diferentes (Fig. 1):
Processo de análise da situação de negócio, com o propósito de o
melhorar através de procedimentos e métodos mais adequados.
(i) Dados - componente que corresponde à camada mais profunda
de um SI e é nela que se armazena todo o material potencialmente
informativo (em bruto);
(ii) Processo - componente que corresponde à camada intermédia
onde é colocada toda a lógica aplicacional de modo a permitir uma
correcta passagem de dados/informação com a máxima garantia de
segurança;
(iii) Interface - componente que corresponde à camada onde são
estabelecidos os principais pontos de contacto entre o sistema e o
exterior, quer para inputs de dados, quer para outputs de informação.
Ainda que estas componentes se encontrem em todos os tipos de SI’s, a
sua identificação vai sendo cada vez mais fácil à medida que passamos
de uma filosofia de SI’s tradicionais (ex: aplicações locais) para SI’s
distribuídos (ex: aplicações Web), uma vez que nestes, as três
componentes encontram-se logicamente e fisicamente separadas,
necessitando de uma quarta (rede) para integrar as três anteriores. Por
este motivo (dispersão das componentes), o tratamento que cada
componente em particular requer na construção do SI torna-se mais
especial no caso dos SI’s distribuídos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
17
Estrutura de construção de um SI – adaptado de [Whitten et al. 2001].
Hoje em dia a maior parte dos projectos de SI’s desenvolvidos têm
características que os permitem classificar como SI’s distribuídos. A
descrição feita ao longo deste manual irá considerar essa tendência,
fazendo uma abordagem ao PDSI para o caso dos SI’s distribuídos na
Web (aplicações Web) e, confrontando essa abordagem com o caso
dos SI’s tradicionais. O desenvolvimento de SI’s é efectuado ao longo
de várias etapas, contando com a participação de vários stakeholders.
Os stakeholders técnicos que colaboram directamente no
desenvolvimento da solução, tais como:
(i) Analista de sistemas - tem como função principal coordenar os
esforços dos restantes elementos participantes, desempenhando o papel
de facilitador ao longo do processo. Geralmente está presente em
todas as fases de desenvolvimento com importância especial nas fases
inicias. Nestas, estuda o problema conjuntamente com o proprietário do
sistema e determina as necessidades conjuntamente com os potenciais
utilizadores, elaborando um relatório (denominado habitualmente como
‘especificação’) para posteriormente ser trabalhado pelos projectistas;
(ii) Projectistas - geralmente especialistas tecnológicos que
traduzem os requisitos descritos na especificação para soluções técnicas
utilizando, para tal, uma linguagem de modelização adequada. Neste
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
18
grupo podemos ainda encontrar os especialistas de usabilidade
responsáveis pelo projecto de interfaces.
(iii) Programadores - os especialistas tecnológicos, que trabalham
no último elo da cadeia de desenvolvimento, com a responsabilidade
de converter todo o trabalho resultante da etapa anterior para uma
linguagem interpretável e executável pelo computador, assim como
instalar e acompanhar a fase de arranque do novo sistema. Neste
grupo podemos ainda encontrar os especialistas de usabilidade
responsáveis pelo projecto de interfaces.Os stakeholders não técnicos, embora não integrando directamente a
equipa de projecto, contribuam (de forma muito importante) param o
sucesso do resultado final, através das suas propostas e sugestões a
nível de requisitos funcionais e não-funcionais; sendo assim:
(iv) Utilizadores – são todas as pessoas que irão interagir com o
sistema, tendo um papel fundamental na identificação dos requisitos
(funcionais e alguns requisitos não-funcionais);
(v) Proprietários do sistema - um dos principais beneficiários com a
integração do novo sistema, são também o principal responsável pelo
financiamento do projecto, podendo tratar-se do proprietário da
organização do qual o sistema irá fazer parte ou, simplesmente, de
sócios ou administradores da mesma. O seu contributo para o
desenvolvimento do sistema é muito importante, uma vez que se trata
do principal detentor do conhecimento do negócio, missão da
organização e consequente alinhamento dos objectivos pretendidos com
o sistema.
Para além destes, é necessário auscultar os consultores e vendedores
das tecnologias de informação, uma vez que também estes são
detentores do conhecimento tecnológico que irá constituir a base de
suporte do sistema a desenvolver.
Análise do problema
Nesta etapa, primeira do ADISI, o analista reúne com o proprietário (ou
outro responsável da organização) para clarificar o problema e discutir
propostas de resolução. As técnicas utilizadas para a recolha de dados
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
19
são, basicamente, reuniões, técnicas de observação directa e análise da
documentação existente.
Como resultado desta etapa, tem-se um relatório (Especificação 1 – Fig.
2) com a descrição da resolução do problema devidamente
contextualizada no sistema organizacional e alinhada com o modelo de
negócios da organização. Passa-se, então, à etapa seguinte, ou seja, à
validação da proposta junto dos potenciais utilizadores.
Etapas, técnicas e métodos no ADISI.
Elicitação e especificação de requisitos
Para que um projeto de desenvolvimento de software seja considerado
de sucesso, uma das premissas é que o produto gerado atenda o que o
cliente deseja. Na grande maioria dos casos o cliente não sabe ao
certo o que deseja e por este motivo a descrição das funcionalidades
esperadas por parte do cliente pode mudar no decorrer do projeto.
Portanto, há a necessidade de documentação das necessidades do
cliente.
Quando estas descrições não são escritas ou são escritas e não são
validadas com o cliente, é comum que no momento da entrega o cliente
expresse que o produto não é o que ele havia solicitado anteriormente.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
20
Este é um dos grandes erros que os desenvolvedores individuais ou
micro empresas de desenvolvimento de software que não se preocupam
com requisitos estão sujeitas. Veja a seguinte imagem (Figura 3) que
explicita de forma lúdica o que a ausência do uso das técnicas de
Engenharia de software causa nas fases iniciais do desenvolvimento de
software
Fases Iniciais do Desenvolvimento sem Técnicas de Engenharia de Software.
Como comprovar que o produto desenvolvido está em conformidade com
o que foi solicitado?
A solução para esta situação é utilizar descrições do sistema, onde as
necessidades são documentadas e validadas pelo cliente. Deste modo o
escopo do software é delimitado, alinhado e acordado entre o cliente e
fornece -dor (equipe de desenvolvimento) do software.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
21
Requisito é o nome dado a este conjunto de documentos que descrevem
os serviços a serem oferecidos pelo sistema e restrições operacionais de
modo a satisfazer as necessidades do cliente.
Requisito é o nome dado a este conjunto de documentos que descrevem
os serviços a serem oferecidos pelo sistema e restrições operacionais de
modo a satisfazer as necessidades do cliente.
Outro fator que demonstra a importância de requisitos é a necessidade
de manter rastreabilidade entre os artefatos, tendo em vista que os
demais artefatos são evoluções do documento de requisitos no decorrer
do projeto.
Especificação
• Última fase da tarefa de análise
• É necessário que seja escrito de forma não ambígua qual é o
comportamento requerido
✓ Notações formais
✓ Documentos estruturados
✓ Exemplos
• Artefatos de Entrega (Saída)
Especificação de requisitos que comunique ao projetista as características
requeridas para o sistema, usando Casos de Uso Descritivos
• Diagramas de Casos de Uso
Possíveis Falhas
✓ Documentação insuficiente para o entendimento do
problema
✓ Retrabalho
✓ Ocasiona atraso na execução das fases posteriores
• Desenhar uma solução que seja fiel aos requisitos
✓ Com base na experiência acumulada (e técnicas
padronizadas)
• Geralmente precisam inovar em um certo nível
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
22
• É possível que surjam várias soluções
• Recomenda-se o uso de alguma métrica para a escolha da melhor
solução para o projeto
• Fase de definição de diversas tecnologias:
✓ Linguagem de Programação
✓ Padrões de Projetos
✓ Materializados na adoção de frameworks
✓ IDE
✓ Banco de Dados
✓ Etc.
• Artefatos de Entrega (Saída)
✓ Um documento de projeto que, de forma não ambígua
e clara, comunica o projeto com a equipe que irá
implementar o software.
✓ Recomenda-se que contenha:
▪ Concepção arquitetural
▪ Ferramentas a serem adotadas
▪ Frameworks
▪ Etc.
• Artefatos de Entrega (Saída) (cont.)
✓ Diagramas Estruturais
▪ Diagrama de Classes
▪ Diagrama de Componentes
▪ Etc.
✓ Diagramas Comportamentais
▪ Diagrama de Atividades
▪ Diagrama de Sequência
▪ Diagrama de Máquina de Estados
▪ Etc.
✓ Modelagem de dados
Possíveis Falhas:
✓ Arquitetura do software difícil de ser replicada para
a equipe
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
23
✓ Curva de aprendizagem desfavorável
Em linhas gerais, o desenvolvimento dos artefatos ocorre da seguinte
forma no decorrer do projeto.
1. O documento de requisitos é criado a partir do levantamento
realizado;
2. Especificações de casos de uso a partir do documento de
requisitos;
3. Diagramas da UML são criados para cada especificação de caso
de uso;
4. O código é desenvolvido a partir dos diagramas gerados e da
especificação de caso de uso (ou história do usuário);
5. As planilhas de teste são criadas tendo como base a
especificação de caso de uso (ou história do usuário);
6. Quando o cliente vai realizar a validação do software
desenvolvido, os requisitos que foram aceitos por ele são
utilizados como parâmetro para validar o sistema;
7. Finalmente, quando o software será evoluído, o documento de
requisitos é a raiz das mudanças a serem implementadas.
Ferramentas de modelagem
Na atividade de desenvolvimento, as ferramentas auxiliam a
criação de có -digo com mais qualidade e menor esforço,
aumentando a produtividade de programadores. Geralmente
estas ferramentas são desenvolvidas para en -contrar erros à
medida que o desenvolvedor digita os comandos de seu pro -
grama e possuem depuradores que facilitam a descoberta do
trecho que causou a falha. Eclipse e Dev são exemplos de
ferramentas de desenvol -vimento, conhecidas como IDE (
Integrated DevelopmentEnvironment – Ambiente de
Desenvolvimento Integrado).
Paralelamente, as ferramentas de modelagem têm um papel
central nesta atividade. A sua importância advém do fato de que
ferramentas projeta -das tomando como base os princípios
estabelecidos na linguagem propiciam a boa formação dos
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
24
modelos gerados, reduzindo erros e aumentando a pro -
dutividade na execução das atividades de análise e projeto.
Várias ferramentas de modelagem têm sido propostas tomando
por base a UML, podemos citar:
• astah - http://astah.net/
•Rational Rose- http://www-01.ibm.com/software/awdtools/developer/rose
•Jude- http://jude.change-vision.com/jude-web/product/index.html
(Ver -são anterior do astah)
• ArgoUML - http://argouml.tigris.org/
• DIA - http://projects.gnome.org/dia/
• Fujaba - http://www.fujaba.de/
• StarUML - http://staruml.sourceforge.net/en/
• Umbrello - http://uml.sourceforge.net/
•VisualParadigm- http://www.visual-paradigm.com/download/
Muitas vezes o software de modelagem disponibiliza duas
versões: uma gratuita e outra paga. Este é o caso do astah, que
disponibiliza uma versão gratuita: o astah community e outras
versões astah Professional e astah UML que são do tipo Trial
(gratuitas apenas para teste). A diferença entre elas encontra-se
nas funcionalidades disponíveis, com o a versão Professional é
pos -sível gerar código a partir dos diagramas e realizar
engenharia reversa (Gerar diagramas a partir do código Java,
C++ ou C#), o que não é possível com a versão Community. A
ferramenta é de fácil uso e o instalador está disponível para
down load em http://members.change-vision.com/files/astah_community
Sumário
Nesta Unidade temática 1.2 estudamos e discutimos Análise de sistema
que inclui Elicitação e especificação de requisitos
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
http://astah.net/
http://www-01.ibm.com/software/awdtools/developer/rose
http://jude.change-vision.com/jude-web/product/index.html
http://argouml.tigris.org/
http://projects.gnome.org/dia/
http://www.fujaba.de/
http://staruml.sourceforge.net/en/
http://uml.sourceforge.net/
http://www.visual-paradigm.com/download/
http://members.change-vision.com/files/astah_community
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
25
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
TEMA -II: MODELAGEM DE SISTEMA DE INFORMAÇÃO
UNIDADE Temática 2.1. Introdução, Diagrama de UML: Diagrama de
Caso de Uso, Aplicação pratica e estudo de caso.
UNIDADE Temática 2.2. Os Modelos: Diagrama de Classe, Descrição
de caso de uso, Diagramas de Interação, diagrama de Atividade e
Aplicação Prática
UNIDADE Temática 2.3. Diagrama de Implementação: Componente e
Implantação
UNIDADE Temática 2.4. EXERCÍCIOS deste tema
UNIDADE Temática 2.1. Introdução, Diagramas de UML, Historia, Diagrama de
Caso de Uso, Aplicação Pratica e Estudo de Caso
Introdução
A modelação do sistema representa a etapa onde toda a informação
textual descrita na especificação é convertida para uma linguagem
gráfica, de maneira a facilitar a comunicação entre os diferentes
membros da equipa de projecto, nomeadamente os programadores
que irão trabalhar sobre os modelos. Ainda que o analista esteja
envolvido nesta etapa, a sua participação é menos activa, uma vez que
esta tarefa é da responsabilidade directa do projectista. É nesta fase
que se faz a ‘ponte’ entre a solução descrita na especificação e a
implementação dessa solução, fazendo uso de uma determinada
linguagem gráfica (metodologia). O trabalho efectuado nesta fase não
acrescenta informação, apenas converte para modelos, existindo
alguma propensão para se perder informação, quando não se utilizam
os métodos adequados. Por esta razão, é precisamente neste ponto que
se deve ter cuidado, para que nenhum trabalho efectuado
anteriormente tenha aqui o seu fim. Desta forma, é muito importante
utilizar um método adequado ao tipo de SI, de forma a garantir uma
correcta passagem de informação entre a fase anterior e a fase da
implementação.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
26
Análise específica o que é que o sistema deve fazer. Desenho
apresenta como é que o sistema deve ser desenvolvido.
Objetivo
Solucionar problemas do mundo real, fazendo uso da linguagem UML
na representação de modelos.
Diagramas de UML
• Por que surgiu?
– Para instituir padronização na forma de desenvolvimento de
softwares, pois era desenvolvido de forma imediatista, baseado no
conhecimento dos técnicos, sem garantia de continuidade.
• O que é?
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
27
– É a definição de métodos, técnicas e ferramentas que devem ser
aplicados para ordenar o desenvolvimento e se obter maior qualidade.
A Importância da Modelagem
É comum ouvir dizer que “Uma imagem vale mais que mil palavras”.
Em desenvolvimento de sistemas não podia ser diferente.
Um modelo representa melhor o negócio do que vários escritos de
especificação.
Um modelo oferece facilidade de comunicação entre as partes (usuário
e técnico), documentação para garantir a continuidade e apoio na
implementação.
Princípios de Modelagem
Todo modelo possui um propósito e simbologia própria para
representação do negócio.
Deve-se conhecer a forma de expressão do modelo para que a
comunicação seja estabelecida corretamente e a leitura seja fiel ao
contexto apresentado.
Unified Modelling Language:
Linguagem de modelagem que irá se associar ao processo para formar
método.
Representação desenvolvida a partir da aplicação de técnicas com
características próprias para atender a natureza da aplicação em
estudo.
Técnicas possuem uma comunicação direta e se completam.
Para utilizar a UML deve-se quebrar paradigmas e ter uma visão
sistêmica e funcional abrangente.
Histórico
A UML tem origem na compilação das "melhores práticas de
engenharia" que provaram ter sucesso na modelagem de sistemas
grandes e complexos.
Sucedeu aos conceitos de Booch, OMT (Rumbaugh) e OOSE (Jacobson)
fundindo-os numa única linguagem de modelagem comum e largamente
utilizada.
A UML pretende ser a linguagem de modelagem padrão para modelar
sistemas concorrentes e distribuídos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
28
Os esforços para a criação da UML tiveram início em outubro de 1994,
quando Rumbaugh se juntou a Booch na Rational.
Com o objetivo de unificar os métodos Booch e OMT, decorrido um ano
de trabalho, foi lançado, em outubro de 1995, o esboço da versão 0.8
do Unified Process - Processo Unificado (como era conhecido).
Nesta mesma época, Jacobson se associou à Rational e o escopo do
projeto da UML foi expandido para incorporar o método OOSE.
Nasceu então, em junho de 1996, a versão 0.9 da UML.
Finalmente em 1997, a UML foi aprovada como padrão pelo OMG
(Object Management Group), um consórcio internacional de empresas
que define e ratifica padrões na área de Orientação a Objetos.
Atualmente encontra-se na versão 2.2
Aplicação
– A UML foi definida para ser utilizada na Metodologia Orientada a
Objetos, o que significa que ela possui recursos para representação dos
conceitos propostos pela metodologia.
• É possível utilizar em outras metodologias!!!!
Objetivo– Ser independente da linguagem de programação e processo de
desenvolvimento.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
29
Não se utiliza obrigatoriamente todos os modelos em todos os projetos.
Deve-se utilizar o que melhor representar o contexto do negócio.
Diagrama de Casos de Uso
• Modelo aplicado para representar os requisitos de sistema.
• O que são requisitos?
– São as necessidades dos usuários, as funcionalidades necessárias
para realizar o negócio.
• Quais são os tipos?
– Funcionais: Ligados a produção da aplicação.
– Não-funcionais: Necessidades de ambiente e estrutura operacional
(operacionalidade, ambiente operacional, etc.);
Caso de Uso: Simbologia
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
30
• Simbologia – Interação de Casos de Uso
<<include>> Estabelece a ligação obrigatória entre os casos de
uso. SEMPRE o caso de uso será executado
<<extend>> estabelece a ligação opcional entre os casos de uso. O
caso de uso será executado em atendimento a uma regra de negócio.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
31
Simbologia – Generalização de Ator
Representa a classificação de um determinado ator
Deve ser usada quando:
Temos mais de um ator realizando a mesma tarefa e, algumas tarefas
diferenciadas.
Concentra em um caso de uso um conjunto de procedimentos que serão
utilizados por vários outros casos de uso que possuem outras
particularidades.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
32
Aplicação Prática
• Passos para construção:
1.Leia atentamente o estudo de caso e identifique os requisitos e os
responsáveis por realizar os requisitos;
2.Crie uma lista de atores e requisitos;
3.Inicie a construção do modelo verificando quem é o responsável por
.realizá-lo: ator ou outro caso de uso.
4.Sendo o ator: represente o modelo.
5.Sendo outro caso de uso verifique se essa interação é de
<<include>> ou <<extend>>.
6.Verifique se existe generalização.
Estudo de Caso
• Estacionamento “Parque de Estacionamento”
• Diariamente o estacionamento “Parque da Estácio” recebe vários
clientes para aluguel de suas vagas e possui uma rotina destinada ao
bom atendimento.
• O gerente do estacionamento cadastra todas as vagas com sua
devida localização e situação. No caso de algum impedimento, goteira
e obra, por exemplo, as vagas são interditadas para uso.
• O veículo é identificado (Placa, Cor e modelo) na entrada e
registrado pelo atendente/recepcionista, que emite um comprovante e
cadastra o cliente que for recebido pela 1ª vez. A locação da vaga
registra data e hora de entrada, identifica o motorista e atendente/
recepcionista e, bloqueia a vaga.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
33
• A liberação é efetivada a partir da solicitação do cliente, que
entrega ao atendente/recepcionista o seu comprovante de locação,
realiza o pagamento e recebe uma autorização de saída.
São registradas data e hora de saída e a vaga é liberada para um
próximo cliente.
• O motorista retira o carro da vaga e entrega-o ao cliente.
Sumário
Nesta Unidade temática 2.1 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE temático 2.2: Os Modelos- Diagrama de Classe, Descrição de caso de
uso, Diagramas de Interação, diagrama de Atividade e Aplicação Prática
Diagrama de Classe
Modelo aplicado para representar as informações necessárias para
realização das funcionalidades do sistema em estudo a partir do
conceito de CLASSE.
Exemplo:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
34
• O que é CLASSE?
• Antes é preciso saber o que OBJETO.
• Exemplo: Em um negócio de vendas, quais os elementos movimentam a
execução do negócio?
SIM!!! SÃO OBJETOS DO NEGÓCIO
• OBJETO: Todo elemento que representa ou compõe algum conceito
dentro de nosso projeto.
• CLASSE: Conjunto de objetos com atributos e comportamentos
representados por métodos.
Ex.: Classe CLIENTES representa todos os clientes da empresa.
• ATRIBUTO: Característica ou identificação do objeto.
Ex.: nome, cpf, email,
• MÉTODOS: Operações realizadas param um objeto.
Ex.: lerNome ()
Diagrama de Classe – Simbologia
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
35
Para identificar uma classe devemos analisar se o objeto:
• Possui vida própria;
• Possui mais de um atributo;
• Deseja-se acompanhar existência;
• ASSOCIAÇÃO ligação estabelecida entre as classes, por necessidade
de comportamentos do negócio analisado.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
36
• PAPEL nome da associação, tornando claro no diagrama o ligação
estabelecida.
• MULTIPLICIDADE define o número de vezes em que o objeto
participa da associação.
MULTIPLICIDADE
– Deve ser representada utilizando os dois sentidos de leitura, sempre
associado a um objeto com o resultado na outra classe e levando em
consideração os comportamentos desejados do negócio que está sendo
analisado.
– A representação de multiplicidade possui o seguinte esquema:
– Li ... Ls, onde: Li define o Limite inferior
– Ls define o Limite superior
– Li e Ls poderão ter valores numéricos de 0 a n e
– Ls poderá também ter a representação * que tem como significado
infinito/muitos.
CLASSE ASSOCIATIVA
– Classe que representa os objetos resultados de uma associação, com
atributos, características e operações próprias.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
37
RESTRIÇÕES
– Complementam o modelo com informações não representadas.
• AGREGAÇÃO POR REFERÊNCIA
– Define o conceito <compõe> e associa os objetos indicando que
existe referência para várias participações.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
38
AGREGAÇÃO POR VALOR
– Define o conceito <estar inserido> associando os objetos indicando
que existe referência para apenas uma participação e estabelece uma
dependência entre as classes associadas.
Passos para desenvolvimento
1. Identificar no diagrama de caso de uso os objetos que possuem
identificação própria e precisam ter essas informações guardadas
para atendimento dos requisitos de sistema: Essas são as classes.
2. Identificar a ligação que existe entre os objetos.
3. Estabelecer as associações na melhor forma de representação da
natureza do negócio.
Diagrama de Classe
• Estacionamento “Parque de Estacionamento”
▪ Diariamente o estacionamento “Parque de Estacionamento” recebe
vários clientes para aluguel de suas vagas e possui uma rotina
destinada ao bom atendimento.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI39
▪ O gerente do estacionamento cadastra todas as vagas com sua
devida localização e situação. No caso de algum impedimento,
goteira e obra, por exemplo, as vagas são interditadas para uso.
▪ O veículo é identificado (Placa, Cor e modelo) na entrada e
registrado pelo atendente/recepcionista, que emite um
comprovante e cadastra o cliente que for recebido pela 1ª vez. A
locação da vaga registra data e hora de entrada, identifica o
motorista e atendente/recepcionista e, bloqueia a vaga.
▪ A liberação é efetivada a partir da solicitação do cliente, que
entrega ao atendente/recepcionista o seu comprovante de locação,
realiza o pagamento e recebe uma autorização de saída. São
registradas data e hora de saída e a vaga é liberada para um
próximo cliente.
▪ O motorista retira o carro da vaga e entrega-o ao cliente.
Estudo de Caso – Caso de Uso
• AUTO ASSOCIAÇÃO
– Define quando um objeto de uma classe está relacionado com outro
objeto da mesma classe para atender a algum comportamento. A
multiplicidade é estabelecida normalmente.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
40
• GENERALIZAÇÃO / ESPECIALIZAÇÃO
– Generalização: Representa os vários tipos de um objeto em uma única
classe.
– Especialização: Representa os vários tipos de um objeto em uma
classe distinta relacionando seus próprios atributos e comportamentos.
– Atributos e comportamentos comuns são relacionados na classe mãe.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
41
Passos para desenvolvimento
• 1º Passo - Buscar no escopo do projeto os conjuntos de objetos que
tenham identificação própria. (Analisaros casos de uso de cadastro,
por exemplo);
• 2º Passo - Analisar os atributos das classes para identificar
aqueles que indicam outras classes. Esta identificação gera a
associação entre as classes;
• 3º Passo - Buscar conjuntos de objetos inseridos no contexto do
estudo que servem para controlar e acompanhar as atividades do
projeto;
• 4º Passo - Relacionar atributos destas classes;
• 5º Passo – Criar novas classes e associações considerando as
formas normais:
Primeira Forma Normal: Uma relação está na primeira forma
normal se todos os seus atributos são monovalorados.
Segunda Forma Normal: a relação estiver na primeira forma
normal; e todos os atributos primos dependerem funcionalmente de
toda a chave primária.
Terceira Forma Normal: a relação estiver na segunda forma
normal; e todos os atributos primos dependerem não transitivamente
de toda a chave primária.
• 6º Passo – Criar novas classes e associações identificando atributos
que definem vários objetos da classe.
• 7º Passo - Definir as multiplicidades;
• 8º Passo - É sabido que o diagrama de classe deve dar suporte à
realização dos casos de uso. Verificar se o diagrama de classe
possui atributos para atender a todos os procedimentos. Se não
estiver, complementar o diagrama de classe.
• 9º Passo - O caso de uso também deverá criar e manter as
informações do diagrama de classe. Verificar se todas as classes e
atributos estão sendo contemplados na realização dos casos de uso.
Se não estiver, complementar o diagrama de caso de uso.
Aplicação Prática
• Sistema de Gestão de Hotel Estacio
• O cadastro do hóspede (nome, procedência, endereço, contato,
previsão de permanência) é realizado pelo setor de recepção
que também controla a alocação de quarto/apartamento
(número do quarto ou apartamento) e abertura de uma conta
corrente para o hóspede (senha, número da conta, nome do
hospede).
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
42
• Ao setor de serviço de copa cabe a responsabilidade pelos
lançamentos, na conta do hospede, das despesas que o mesmo
efetuar com bebidas e comidas (data, tipo da despesa e valor).
• A atendente/recepcionista de telefonia é responsável pelo
lançamento, na conta do cliente, das chamadas interurbanas que
o mesmo venha a fazer (data, local chamado, duração e tarifa).
• As chamadas locais não são computadas.
• O setor de lavanderia é responsável pelos lançamentos, na
conta do hóspede, dos serviços que o mesmo venha a solicitar
àquele setor (data, tipo de serviço, valor).
• A gerência pode, a qualquer instante, ter acesso às informações
de cadastro e gastos realizados pelo hóspede.
• A gerência é responsável pelo cadastro e atualização das
tabelas de serviços, menus e diárias.
• O hóspede pode a qualquer instante consultar o saldo de sua
conta.
• O setor de recepção é responsável pela extração do extrato
final da conta e fechamento da mesma quando o hóspede
finaliza sua estadia.
Aplicação Prática
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
43
Descrição de Casos de Uso
• A Descrição de caso de uso é a representação textual dos casos de
uso. Deve ser utilizada para complementar o modelo, pois muitas regras
de negócio estão implícitas ao caso de uso. Este recurso ajuda a validar
se a compreensão dos requisitos foi plena.
• A descrição registra a funcionalidade lógica e é o documento
comprobatório de nosso levantamento, onde o usuário poderá validar o
nosso entendimento.
A descrição de caso de uso é desenvolvida para cada caso de uso. As
interações devem ser citadas na abrangência da descrição, mas não
deve definir dois casos de uso em uma só descrição. Quanto mais clara
a definição melhor o entendimento.
• A descrição poderá ser desenvolvida de duas formas:
Descrição não Expandida e Descrição Expandida.
Formação: Cabeçalho + descrição
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
44
• Descrição não Expandida prevê a apresentação sucinta dos
procedimentos, como um pequeno relato apresentando os objetivos a
serem atingidos. Deve ser utilizada quando o Caso de Uso for de
conhecimento completo de todos, não possuir exceções ou, utilizar
mecanismos de outro caso de uso.
• Exemplo “Parque de Estácionamento”: Utilizando o Caso de Uso
“Emitir autorização de saída”:
– Nome: Emitir Autorização de saída
– Objetivo: Gerar comprovante de quitação do aluguel da vaga.
– Pré-condição: estar com a locação fechada.
– Pós-condição: não há
• Exemplo “Estacionamento Praça da Estácio”:
• Utilizando o Caso de Uso “Emitir autorização de saída”:
• Descrição
• Emitir autorização de saída, Formulário 005, a partir das informações
de fechamento de locação.
• Descrição Expandida prevê a apresentação detalhados
procedimentos, apresentando os objetivos a serem atingidos passo-a-
passo e com referência a responsabilidade se ator ou sistema.
• Devemos considerar a descrição em duas partes: Fluxo Normal e
Fluxo Alternativo.
• Fluxo Normal é o passo-a-passo dos procedimentos sem desvio. Uma
lista de procedimentos considerando os passos frequentes e sem
exceção.
• Fluxo Alternativo é o passo-a-passo dos procedimentos de exceção
e condições alternativas para
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
45
determinado passo do Fluxo Normal. Não são todos os passos citados
no Fluxo Normal que terá citação no Fluxo Alternativo.
• Exemplo “Parque de Estacionamento”:
– Utilizando o Caso de Uso “Registrar Locação”:
Na Descrição Expandida, para consumar uma descrição consistente é
necessário um projetode interface, mesmo que não possua todas as
configurações visuais. O importante é representarmos a funcionalidade
básica e não os detalhes de programação.
• 1º Passo: IDEALIZAR A INTERFACE
• 2º passo: CABEÇALHO
– NOME........... : Registrar Locação
– DESCRIÇÃO.: O atendente identifica o veiculo em sua entrada no
estacionamento e cadastra sua ocupação da vaga.
– Pré-Condição: Ter acesso a interface.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
46
– Pós-Condição: VAGA estará bloqueada
• 3º Passo: Descrever FLUXO NORMAL
• FLUXO NORMAL
1.Sistema Apresenta Tela de Locação.
2.Vendedor Informa Placa de VEÍCULO.
3.Sistema obtém dados de VEÍCULO.
4.Sistema obtém dados de CLIENTE.
5.Sistema apresenta dados de CLIENTE.
6.Sistema obtém dados de VAGA.
7.Sistema apresenta lista de VAGA.
8.Vendedor escolhe VAGA.
9.Vendedor clica CONFIRMA.
10.Sistema altera VAGA.
11.Sistema Inclui “Emitir
Comprovante de Locação”
12.Sistema Encerra Caso De Uso.
• 4º Passo: Descrever FLUXO ALTERNATIVO
• FLUXO ALTERNATIVO
• 3. Sistema obtém dados de VEÍCULO.
– 3.1 Não há registro de VEÍCULO
• 3.1.1 Sistema estende “Cadastrar Veículo”.
• 3.1.2 Sistema retorna para item 4.
• 4º Passo: Descrever fluxo normal
– 4. Sistema obtém dados de CLIENTE.
• 4.1 Não há registro de CLIENTE
– 4.1.1 Sistema estende “Cadastrar Cliente”.
– 4.1.2 Sistema retorna para item 5.
– 5. Vendedor clica Cancela.
• 5.1 Sistema retorna para item 1.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
47
• OBSERVAÇÕES:
– Não possuímos no nosso Diagrama o Caso de Uso “Cadastrar
Cliente”, item 4.1.1 da descrição. A necessidade surgiu durante a
especificação. Quando isto ocorre é necessário voltarmos ao diagrama
e incluir este novo caso de uso;
– Mais uma vez deve ser comentado que a cada modelo/técnica
utilizada deve-se estar pronto a recomeçar, pois é possível sempre
estar descobrindo falhas ou complementos
Descrição de Casos de Uso
• A especificação de caso de uso também disponibiliza um recurso para
informações adicionais do tipo, vagas bloqueadas terão código “B”.
Para isto, retornamos a especificação e incluímos um COMENTÁRIO
entre asteriscos imediatamente após o passo desejado;
• Outra informação relevante para ser incluída em comentário é a
tecla utilizada para fim, quando for o caso;
• Fluxo Normal
1.Sistema Apresenta Tela de Locação.
2.Vendedor Informa Placa de VEÍCULO.
3.Sistema obtém dados de VEÍCULO.
4.Sistema obtém dados de CLIENTE.
5.Sistema apresenta dados de CLIENTE.
6.Sistema obtém dados de VAGA.
7.Sistema apresenta lista de VAGA.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
48
8.Vendedor escolhe VAGA.
9.Vendedor clica CONFIRMA.
10.Sistema altera VAGA.
11.Sistema Inclui “Emitir Comprovante de Locação”
12.Sistema Encerra Caso De Uso.
• Portanto, deve-se preocupar em apresentar os detalhes necessários
para:
– Usuário aferir o atendimento do requisito;
– Avaliar as restrições;
– Dar segurança ao projeto no sentido do programador ter
entendimento completo;
– Documentação;
•REGRAS:
– Para descrever um caso de uso é preciso a aplicação de regras, pois
assim é definido um padrão de entendimento entre o usuário e o
técnico. Dentre as regras podemos destacar:
• Estabelecer o diálogo entre o usuário e o sistema.
• Adotar sentenças curtas,
• Os passos devem ser numerados, sequenciados logicamente;
• A primeira e a última sentença são comandadas pelo sistema;
• Deve-se utilizar um padrão de linguagem;
• Descrição não representa condição e repetição;
• Descrição não representa controles técnicos (críticas, fim de leitura);
• Não é preciso fluxo alternativo para todas as sentenças relacionadas
no fluxo normal. Apresentar somente quando necessário.
• Podem-se utilizar comentários para complementar a informação “***
comentários”;
• Para representar os INCLUDES utilizar <INCLUIR>;
• Para representar os EXTENDS utilizar <ESTENDER>.
• EXERCÍCIO:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
49
• Dado o seguinte diagrama de caso de uso e diagrama de classe de
um sistema de locação de carros.
• EXERCÍCIO:
– Interface
• EXERCÍCIO:
• Segue a DESCRIÇÃO EXPANDIDA
– Nome: Alugar Veículos
– Descrição: Registra o aluguel do veículo do cliente.
– Pré-condição: Veículo deve estar cadastrado e disponível
– Pós-Condição: Locação definida
• Fluxo Normal:
– 1. Sistema apresenta tela;
– 2. Sistema apresenta lista de modelos disponíveis;
– 3. Sistema apresenta lista de cor;
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
50
– 4. Ator escolhe modelo;
– 5. Sistema apresenta dados do veículo;
– 6. Sistema apresenta lista de Clientes;
– 7. Ator escolhe Nome do Cliente
– 8. Ator informa data de aluguel e número de dias;
• EXERCÍCIO (cont..):
– 9. Sistema calcula data devolução;
– 10. Ator confirma operação clicando em “Ok”;
– 11. Sistema <inclui> “Emitir Contrato”;
• EXERCÍCIO:
– 12. Sistema cria locação;
– 13. Sistema Atualiza veículo
– ***Situação = indisponível
– 14. Sistema encerra caso de uso
• EXERCÍCIO
– Revendo os modelos já produzidos...
– 2. Sistema apresenta lista de modelos disponíveis;
• Diagrama de Interação
– Conceitos Básicos
– Diagrama de Sequencia
– Diagrama de Sequencia de Sistema - DSS
– Diagrama de Colaboração
– Aplicação
Relembrar...
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
51
• Conceitos:
– O Diagrama de Interação apresenta a relação entre os objetos e a
troca de mensagens que são necessárias para efetivar a realização do
comportamento.
– O Diagrama de Interação representa um único caso de uso e deve ser
usado quando se deseja visualizar os comportamentos utilizados pelos
vários objetos dentro do caso de uso.
– Diagramas de interação são apresentados sob duas formas na UML
através do Diagrama de Sequência e Diagrama de Comunicação.
• DIAGRAMA DE SEQUÊNCIA:
– Representa a sequência lógica dos comportamentos dentro do caso
de uso. Portanto a leitura é realizada de cima para baixo e, da
esquerda para direita.
– Os elementos utilizados para compor o diagrama são os seguintes:
• DIAGRAMA DE SEQUÊNCIA – SIMBOLOGIA
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
52
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
53
DIAGRAMA DE SEQUÊNCIA – EXEMPLO – FLUXO NORMAL
1. Sistema Apresenta Tela de Locação.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
54
2. Vendedor Informa Placa de VEÍCULO.
3. Sistema obtém dados de VEÍCULO.
4. Sistema obtém dados de CLIENTE.
5. Sistema apresenta dados de CLIENTE.
6. Sistema obtém dados de VAGA.
7. Sistema apresenta lista de
VAGA.
8. Vendedor escolhe VAGA.
9. Vendedor clica CONFIRMA.
10.Sistema altera VAGA.
11.Sistema Inclui “Emitir Comprovante de Locação”
12.Sistema Encerra Caso De Uso.
• DIAGRAMA DE COMUNICAÇÃO– Era conhecido como Diagrama de Colaboração (UML 1.5)
– Apresenta objetos e classes envolvidas no cenário e a ligação entre
eles apresentando a forma de navegação e visibilidade.
– Os elementos utilizados para compor o diagrama são os seguintes:
• DIAGRAMA DE COMUNICAÇÃO – SIMBOLOGIA
Ligação
1. A primeira mensagem não é numerada;
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
55
2. A ordem e o alinhamento são mostrados com um esquema de
numeração cardinal.
Sequencia:
Auto Delegação:
Criação de instância
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
56
Diagramas de Interação
• A diferença básica é que no Diagrama de Sequência conseguimos
visualizar claramente a sequência da troca de mensagens entre os
objetos, sendo válido para avaliação da consistência das operações.
• No Diagrama de Comunicação esta sequência não fica totalmente
clara, mas é possível interpretar todas as mensagens recebidas pelos
objetos, sendo muito válido para definição de parâmetros,
planeamento de desenvolvimento e outros aspectos para o projeto em
si.
Diagrama de Atividade - Conceito
• O diagrama de atividade permite escolher a ordem pela qual as
coisas devem ser feitas, isto é, indica meramente as regras essenciais de
sequência que necessitam ser seguidas - esse é um aspecto fundamental
para diferenciar um diagrama de atividade de um fluxograma.
• Fluxogramas são limitados a processos sequenciais enquanto
Diagramas de Atividade podem manipular processos paralelos.
• O ponto forte do diagrama de atividade reside no fato de suportar e
encorajar comportamento paralelo, tornando-se uma boa técnica para
a modelagem de fluxo de trabalho e programação para
multiprocessamento.
Diagrama de Atividade – Simbologia
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
57
• Agrupam atividades relacionadas às responsabilidades que cumprem;
• Mostrar em qual parte da organização um trabalho é executado;
• Mostrar explicitamente onde são executadas ações (em qual objeto).
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
58
Inicio: Representa o início do diagrama.
Atividade: Tarefa que precisa ser feita. Representa um método sobre
uma classe.
Decisão: Representa comportamento condicional que a partir de uma
única entrada poderá gerar algumas saídas.
Intercalação: Representa comportamento condicional que a partir de
várias entradas poderá gerar apenas uma saída.
Separação: Conhecida também como “Barra de Sincronização”,
transições seguintes são efetuadas em paralelo independente da
sequência.
Junção: Transição seguinte efetuada somente quando todos os estados
nas transições de entrada tenham completado suas atividades.
Fim: Representa o fim do diagrama.
Representação de cada Caso de Uso complexa;
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
59
Desafio 1:
Desafio 2:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
60
Sumário
Nesta Unidade temática 2.2 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE Temática 2.3. Diagrama de Implementação - Componente e
Implantação
• Diagrama de Implementação
– Conceitos Básicos
Diagrama de Componentes
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
61
– Apresentação
– Simbologia
– Aplicação
Diagrama de Implantação
– Apresentação
– Simbologia
– Aplicação
Diagrama de Implementação
• A arquitetura física descreve a decomposição do hardware e
software que cercam a implementação de um sistema.
• Na UML, aspectos de implementação física são modelados através
de diagramas de implementação:
– Diagrama de componentes
– Diagrama de Implantação
Diagramas de Implementação permitem:
A descrição física do software: Os diagramas de componentes são
usados para modelar a arquitetura de um sistema na perspectiva dos
seus componentes de software (Ex: arquivos de código fonte, de
executáveis, de configuração, tabelas de dados, documentos de gestão
do projeto), explicitar principalmente as suas múltiplas dependências.
A descrição física do hardware: Os diagramas de instalação, por
outro lado, são usados para modelar a arquitetura de um sistema na
perspectiva dos seus componentes de hardware (Ex: computadores,
adaptadores de rede, impressoras, roteadores), explicitar as suas
dependências de comunicação.
A integração do software com o hardware: Os diagramas de
instalação com componentes são usados para modelar um determinado
ambiente de execução com componentes, através da identificação de
instâncias de componentes que são instaladas em determinada instância
de nó computacional.
Diagrama de Componentes
• Componentes modelam coisas físicas que podem residir em um nó,
como: executáveis, bibliotecas, tabelam, arquivos e documentos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
62
• Assim como na análise, para a implementação de um software é
necessário estabelecer qual a modelagem física do sistema executável.
• Um diagrama de componentes mostra as dependências entre
componentes de software, incluindo componentes de código fonte,
componentes de código binário e componentes executáveis.
• Um diagrama de componente é um grafo de componentes
conectados por relacionamentos de dependência.
Notação:
Exemplo
Diagrama de Implantação
• São utilizados para:
– Modelagem da visão estática de funcionamento de um sistema. Essa
visão é direcionada para a distribuição, entrega e instalação das
partes que formam o sistema físico.
– Visualizar, especificar e documentar sistemas embutidos,
cliente/servidor e distribuídos.
• Envolvem a topologia do sistema, descrevendo a estrutura de
hardware.
• Esses diagramas mostram:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
63
– A configuração de nós de processamento em tempo de execução e os
componentes que neles existem.
– Componentes que não existem em tempo de execução não aparecem
nestes diagramas.
• São diagramas úteis também para a engenharia reversa
• NÓ:
• Um diagrama de implantação é um grafo de nós conectados por
associações de comunicação.
• Um nó é um objeto físico que representa um recurso computacional.
• Nós geralmente são computadores como processadores, e
dispositivos, como impressoras, leitoras de cartão, dispositivos de
comunicação, etc.
Composição UML
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
64
Conclusão
• Para obter sucesso no desenvolvimento de sistemas é necessário
utilizarmos modelos adequados a critérios de qualidade:
• Baixa manutenibilidade
• Grande iteratividade
• Boa performance
• Economia / segurança
• Disponibilidade/ estabilidade
Exercício
• Construir um diagrama de componentes e de implantação,
representando a arquitetura de um sistema acadêmico, sendo a
aplicação um sistema web que grava as informações num SGBD
PROFISSIONAIS DE SISTEMAS DE INFORMAÇÃO
Analista de Sistemas ou Analistas de Informação
Determinar as necessidades de informação e requisitos de
processamento. Conduzir estudos relacionados com a actividade de
negócio.
Analista e Desenhador de Sistemas ou Desenhadores de sistemas ou
aplicações
Responsáveis pelo estudo exaustivo do negócio e pelo desenho do novo
sistema.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
65
Analistas, Desenhadores e Programadores de Sistemas ou
programadores
Conduzem o projecto desde a análise do sistema, desenvolvem as
especificações e desenho, e programam o software que implementa o
desenho especificado.
Sumário
Nesta Unidade temática 2.3 estudamos e discutimos fundamentalmente
Exercícios de AUTO-AVALIAÇÃO
1. UML (Unified Modeling Language) tem como finalidade:
A) Executar atividades de controle de qualidade
B) Definir o processo de desenvolvimento de software
C) Modelar o sistema a ser desenvolvido.
D) Auxiliar na definição do escopo do software
E) Codificar o software
2. Assinale a alternativa que faz referência ao modelo iterativo
incremental de desenvolvimento de software:
A) Possui quatro atividades: planeamento, análise de riscos, engenharia
e avaliação do usuário.
B) Vulnerável a mudança de requisito.
C) Cada etapa só inicia com o término da anterior.
D) Trabalha com entregas parciais, até a conclusão do
desenvolvimento do escopo.
E) Usuário recebe produto antecipadamente, mas muitas vezes
incompletos.
3. Qual a relação das disciplinas de engenharia de software com o
ciclo de vida de software?
As disciplinas são as atividades necessárias para realizar o
desenvolvimento do software, e o ciclo de vida é quem define a
transições de fases no processo de desenvolvimento. É quem
coordena o trabalho a ser desenvolvido pelas disciplinas.
4. O diagrama de Casos de Uso é composto por 3 elementos básicos.
São eles:
A) Casos de Uso, Objetos e Diagramas
B) Atores, Casos de Uso e Interações
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
66
C) Classes, Casos de Uso e Diagramas
D) Atores, Classes e Interações
E) Classes, Casos de Uso e Interações
5. Sobre o diagrama de Casos de Uso, podemos afirmar que:
A) A interação <<include>> ocorre de forma obrigatória enquanto a
<<extend>> de forma opcional.
B) A interação <<include>> só ocorre se a <<extend>> for acionada.
C) A interação <<extend>> ocorre de forma obrigatória enquanto a
<<include>> de forma opcional.
D) Tanto a interação <<extend>> quanto a <<include>> são
opcionais.
E) Tanto a interação <<extend>> quanto a <<include>> são
obrigatórias.
6. Sobre o diagrama de Casos de Uso, podemos afirmar que:
A) A generalização de atores define uma cadeia de herança nas
permissões de acesso aos casos de uso
B) A generalização de casos de uso determina que um caso de uso será
executado por qualquer ator do modelo.
C) Sem uma definição prévia, todos o atores tem total permissão aos
casos de uso
D) O caso de uso representa uma classe do sistema
E) O Ator representa apenas requisitos funcionais do sistema
7. A estrutura condicional é um elemento que pode ser encontrado em
qual diagrama?
A) De Classes
B) De Casos de Uso
C) De Atividade
D) De Sequência
E) De Estados
8. Analise as assertivas a seguir e classifique cada uma como
verdadeiro (V) e falso (F):
1 - ( ) A Descrição de caso de uso não registra a lógica do sistema.
2 - ( ) A descrição de caso de uso, é representação textual dos casos de
uso e auxilia a validação do entendimento dos requisitos do sistema.
3 - ( ) Nem todos os casos de uso devem ser descritos.
4 - ( ) Quanto mais técnico forem os termos da descrição de casos de
uso, melhor será para apresentar ao usuário.
Com base em sua avaliação, assinale a alternativa que apresente a
correta sequência de V e F:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
67
A) F, V, F, F
B) V, F, V, V
C) F, F, V, F
D) V, V, F, F
E) F, F, V, V
9. Qual diagrama tem a função de representar um objeto do mundo
real em termos conceituais de POO?
A) Diagrama de casos de usos.
B) Diagrama de classes.
C) Diagrama de atividades.
D) Diagrama de estados.
E) Diagrama de componentes.
10. Os diagramas UML da categoria comportamental são os de:
A) Classes, objetos e componentes.
B) Casos de uso e atividades
C) Objetos, estrutura composta e máquinas de estado.
D) Casos de uso, sequência e classes.
E) Classes, atividades e sequência
11. Considerando um sistema de supermercado onde o cliente pode
comprar vários produtos e cada produto pode ser comprado por vários
clientes, analise o modelo abaixo e indique o nome que se dá à
representação apresentada dentro do círculo?
A) Agregação por valor.
B) Classe associativa.
C) Agregação por
referência.
D) Auto-associação.
E) Generalização e
especialização.
12. Dentre as assertivas colocadas, escolha aquela que completa,
corretamente, as lacunas da seguinte proposição: Os diagramas de
_____ e _____ chamados diagramas de interação - são dois dos
diferentes diagramas utilizados na UML, para a modelagem dos
aspectos _______de sistema.
A) Sequência - atividade - dinâmicos
B) Sequência - colaboração - dinâmicos
C) Sequência - colaboração - estáticos
D) Sequência - atividade - estáticos
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
68
E) Gráfico de estado - colaboração – dinâmicos
13. Na UML (Unified Modeling Language), o _______________________
é utilizado para indicar as comunicações dinâmicas entre objetos
durante a execução de uma tarefa. Ele mostra a ordem temporal na
qual as mensagens são enviadas entre os objetos para executar aquela
tarefa.
A) Diagrama de Casos de Uso
B) Diagrama de Classes
C) Diagrama de Estados
D) Diagrama de Sequência
E) Diagrama de Comunicação
14. De acordo com o diagrama, podemos afirmar que:
A) A execução do caso de uso 'Consultar estoque' incorpora
opcionalmente o caso de uso 'Liberar desconto'.
B) A execução do caso de uso 'Liberar desconto' incorpora
opcionalmente o caso de uso 'Realizar venda'.
C) A execução do caso de uso 'Realizar venda' incorpora
obrigatoriamente o caso de uso 'Consultar estoque'.
D) A execução do caso de uso 'Realizar venda de produto nacional'
incorpora obrigatoriamente o caso de uso 'Liberar desconto'.
E) Um gerente pode interagir com o caso de uso 'Realizar venda', pois
ele é um Usuário.
15. Observe o diagrama e marque a alternativa correta:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
69
A) SITUAÇÃO é uma classe dependente de carro, ou seja, não poderá
existir quando não participar da associação.
B) CARRO pode ser criado sem participar da associação, mas
CLIENTE somente poderá ser criado se participar pelo menos de uma
associação.
C) CLIENTE pode ser criado sem participar da associação, mas CARRO
somente poderá ser criado se participar pelo menos de uma
associação.
D) ALUGUEL é uma classe do tipo independente, onde serão
registradas as ocorrências de aluguel de carro.
E) CARRO e CLIENTE podem ser criados sem participar pelo menos deuma associação.
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
1. Quais os elementos básicos de um Diagrama de Casos de Uso?
Descreva-os
Ator – Responsável por realizar o caso de uso. Pode se pessoas,
hardware ou software
Caso de Uso – Representa um requisito do sistema ou uma operação
Interações – Representa a realização do caso de uso
2. Quais os elementos básicos de um Diagrama de Classes? Descreva-
os.
Classe – Conjunto de objetos com atributos e comportamentos
representados por métodos
Atributos – Característica ou identificação do objeto
Métodos – Operações realizadas para um objeto
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
70
Associações – Ligação estabelecida entre as classes, por necessidade
de comportamentos do negócio analisado
3. Quais os elementos básicos de um Caso de Uso Descritivo?
Nome, Descrição, Pré-Condições, Fluxo Principal, Fluxo
Alternativo, Pós-Condições, etc.
4. Quais os elementos básicos de um Diagrama de Atividades?
Início, Raia, Atividade, Decisão, Separação ou “Barra de
Sincronização”, Junção, fim
5. Qual a finalidade dos Diagramas de Casos de Uso ?
A)Mostrar os relacionamentos entre os atores externos (pessoa,
software ou hardware) e os requisitos do sistema.
B) Treinar o usuário final na utilização da nova ferramenta.
C) Usar o plano de teste na fase final do projeto
D) Mostrar a sequência em que ações ocorrem no sistema.
E) Mostrar todas as classes utilizadas no sistema
6. Qual a diferença entre Requisitos Funcionais e Não Funcionais?
Requisitos funcionais – Descrevem as funções que o software deve
executar
Requisitos Não Funcionais – Descrevem a infraestrutura necessária
para a operação do software
7. Explique o que significa multiplicidade em um Diagrama de Classes?
Representa a informação dos limites inferior e superior da quantidade
de objetos aos quais um outro objeto pode estar associado.
8. Quais os elementos básicos de um Diagrama de Implantação?
Descreva-os
Componente – Modelam coisas físicas que podem residir em um nó,
como: executáveis, bibliotecas, tabelas, arquivos e documentos.
Interface – Elemento que possibilita acessarmos os recursos do
componente
Nó – É um objeto físico que representa um recurso computacional
(Servidores, impressoras, roteadores, etc.). Servem de container para os
componentes.
Dependência – Relacionamento do uso de uma interface de nó ou
componente
9. O que motivou a criação do Modelo de Desenvolvimento de
Software Iterativo Incremental?
Foi criado para suprir os problemas apresentados pelo modelo
cascada, onde uma fase só poderia ser iniciada quando todas as
atividades da fase anterior fossem concluídas. Esse modelo cria mini
ciclos, envolvendo todas as fases do projeto, para um determinado
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
71
conjunto de requisitos, até que todo o escopo do projeto seja
desenvolvido.
Respostas: 1A, 2C, 3V…
Exercícios do TEMA
Perguntas
Respostas: 1A, 2C, 3V…
TEMA – III: IMPLEMENTACAO
UNIDADE Temática 3.1. Introdução, Atividades relacionadas ao
código-fonte do Sistema
UNIDADE Temática 3.2. Modelagem de Processo Desenvolvimento de
Software – Introdução, Modelo Cascada, em fonte , Espiral ,
Iterativo/Incremental e Ágeis
UNIDADE Temática Processo Unificado
UNIDADE Temática 1.4. EXERCÍCIOS deste tema
UNIDADE Temática 3.1. Introdução, Atividades relacionadas ao código-fonte do
Sistema
Introdução
A fase da implementação é da responsabilidade dos construtores ou
programadores, tendo estes que interpretar a informação contida nos
modelos e convertê-la para uma linguagem executável pelo
computador. É nesta fase que se faz a escolha da tecnologia mais
apropriada, podendo-se recorrer à ajuda dos vendedores ou
consultores tecnológicos. Qualquer SI, independentemente do tipo,
necessita de futuras intervenções a nível de manutenção de conteúdos;
por esta razão, no momento da implementação esse facto deve ser
compreendido em toda a sua extensão e para que o problema possa
ser devidamente enfrentado. Infelizmente, no caso dos SI distribuídos na
Web, o problema aumenta de complexidade, e muitas vezes
alterações simples a nível de interfaces podem envolver muito trabalho.
Se imaginarmos aplicações de grande dimensão, na ordem das
centenas de instâncias por classe, rapidamente se conclui que a
manutenção a nível das instâncias seria impensável. O ideal seria a
escolha de tecnologias, tais como, ASP, ASP.NET, PHP, JSP, que
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
72
permitam actualizações ou outro tipo de manutenção a nível das
classes, o que, por sua, permitirá simplificar bastantes intervenções
futuras no SI.
Atividades relacionadas ao código-fonte do sistema:
✓ Escrever
✓ Documentar
✓ Debugar
✓ Preparar a aplicação para testes
▪ Unitário
▪ Usuário
Artefatos de Entrega (Saída)
Código-fonte, de preferência, versionado
Documentação do código-fonte
Produto para teste
Possíveis Falhas:
Implementação em desacordo com o requisito.
Descumprimento de prazo
Dimensionamento equivocado do esforço a ser colocado nas tarefas de
implementação
Déficit técnico
Sumário
Nesta Unidade temática 3.1 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
73
UNIDADE Tematico 3.2. Modelagem de Processo Desenvolvimento de Software
– Introdução, Modelo Cascada, em fonte , Espiral , Iterativo/Incremental e Ágeis
Processo Cascata (Water Fall) ou TOP DOWN.
Processo Iterativo.
Processo Ágil.
Introdução
• Há um bom tempo busca-se um processo ou metodologia que
seja previsível e repetível, e que melhore a produtividade e a
qualidade do desenvolvimento de software
• Vários modelos foram idealizados com o intuito de organizar o
processo, podendo assim alcançar a máxima eficiência
pretendida, com o menor custo relacionado
Modelo Cascata (Waterfall)
O ciclo de vida em Cascata (Clássico ou Linear) possui uma
tendência maior para a progressão sequencial apesar de pode haver
retroalimentação.
Problemas:
Projetos reais raramente seguem o fluxo;
Presume possibilidade de declarar previamente todos os
requisitos;
A implantação fica distante da fase inicial;
Aplicabilidade:
Modelo apropriado quando se tem requisitos bem definidos
Extraido de BEZZERA, E .Principio de Analise e Projecto de Software
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
74
Modelo em Fonte
• Baseado no modelo de cascata
• Porém, observe que a sequência sempre contém ciclos
• Reflete o fato de que algumas fases não podem iniciar antes de
outras
• E que algumas fases são intercaladas
Modelo em Espiral
• Sugerido por Boehmen em 1988
• Representação em espiral, não como sequência de tarefas
• Não tem número fixo de fases
• Os riscos são tratados explicitamente
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
75
“O modelo espiral pode ser adaptado para ser aplicado ao longo de
todo o ciclo de vida de umaaplicação, desde o desenvolvimento de
conceitos até a sua manutenção” [PRESSMAN, 2011]
Modelo Iterativo / Incremental
• A cada iteração:
• O software é incrementado em termos de artefatos de software
• A definição desses artefatos e suas iterações seguem a
necessidade do Cliente/Usuário
• As primeiras devem abordar os artefatos de maior relevância
para o produto.
Metodologias Ágeis
O desenvolvimento ágil de software defende alguns pontos de vista em
detrimentos de outros:
Manifesto Ágil:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
76
• Indivíduos e interações entre eles mais que processos e
ferramentas;
• Software em funcionamento mais que documentação abrangente;
• Colaboração com o cliente mais que negociação de contratos;
• Responder a mudanças mais que seguir um plano.
Metodologias Ágeis - Feedback
• Processos ágeis usam feedback, ao invés do planeamento como
seu mecanismo de controle rimário
• O feedback é orientado por testes e releases periódicos do
software envolvido
Metodologias Ágeis - Exemplos
• Scrum
• eXtreme Programming (XP)
• Etc.
SCRUM
• Scrum é uma metodologia ágil para gestão e planeamento de
projetos de software.
• Os projetos são divididos em ciclos (mensais, semanais, etc.)
chamados de Sprints. O Sprint representa um Time Box (intervalo
de tempo) dentro do qual um conjunto de atividades deve ser
executado.
• Metodologias ágeis de desenvolvimento de software são
iterativas, ou seja, o trabalho é dividido em iterações, que no caso
do Scrum, são as Sprints.
• As funcionalidades a serem implementadas em um projeto são
mantidas em uma lista que é conhecida como Product Backlog.
• No início de cada Sprint, faz-se um Sprint Planning Meeting, ou
seja, uma reunião de planeamento na qual o Product Owner
prioriza os itens do Product Backlog e a equipe seleciona as
atividades que ela será capaz de implementar durante o Sprint
que se inicia.
• As tarefas alocadas em um Sprint são transferidas do Product
Backlog para o Sprint Backlog.
• Alguns termos serão comumente vistos ao utilizar essa
metodologia:
✓ Produt Backlog
✓ Sprint Planning Meeting
✓ Sprint Backlog
✓ Daily Scrum
✓ Release Burndown
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
77
✓ Sprint Review
✓ Sprint Retrospective
SCRUM – Product Backlog
• É uma lista contendo todas as funcionalidades desejadas para um
produto.
• O conteúdo desta lista é definido pelo Product Owner.
• O Product Backlog não precisa estar completo no início de um
projeto. Pode-se começar com tudo aquilo que é mais óbvio em
um primeiro momento.
• Com o tempo, a lista cresce e muda à medida que se aprende
mais sobre o produto e seus usuários.
SCRUM – Sprint Planning Meeting
• É uma reunião na qual estão presentes o Product Owner, o Scrum
Master e todo a equipe, bem como qualquer pessoa interessada
que esteja representando a gerência ou o cliente.
• Durante o Sprint Planning Meeting, o Product Owner descreve
as funcionalidades de maior prioridade para a equipe.
• A equipe faz perguntas durante a reunião de modo que seja
capaz de quebrar as funcionalidades em tarefas técnicas, após
a reunião.
• Essas tarefas irão dar origem ao Sprint Backlog.
SCRUM – Sprint Backlog
• É uma lista de tarefas que a equipe se compromete a fazer em
um Sprint.
• Os itens do Sprint Backlog são extraídos do Product Backlog,
pela equipe, com base nas prioridades definidas pelo Product
Owner e a percepção da equipe sobre o tempo que será
necessário para completar as várias funcionalidades.
SCRUM – Daily Scrum
• A cada dia do Sprint a equipe faz uma reunião diária, chamada
Daily Scrum.
• Ela tem como objetivo disseminar conhecimento sobre o que foi
feito no dia anterior, identificar impedimentos e priorizar o
trabalho a ser realizado no dia que se inicia.
• É composta pelo Scrum Master e a equipe de desenvolvimento.
SCRUM – Release Burndown
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
78
• Em um projeto Scrum, a equipe monitora seu progresso em
relação ao projeto, atualizando um gráfico chamado Release
Burndown ao final de cada Sprint (iteração).
• O eixo horizontal de um Release Burndown Chart mostra os
Sprints;
• O eixo vertical mostra a quantidade de trabalho que ainda
precisa ser feita no início de cada Sprint.
• O trabalho que ainda resta pode ser mostrado na unidade
preferencial da equipe: Pontos de função, dias de trabalho e
assim por diante.
SCRUM – Sprint Review Meeting
• É feito ao final de cada Sprint.
• Durante esta reunião, a equipe mostra o que foi alcançado
durante o Sprint.
• Tipicamente, isso tem o formato de um demo das novas
funcionalidades.
• Os participantes do Sprint Review tipicamente incluem o
Product Owner, a equipe, o Scrum Master, gerência, clientes
e engenheiros de outros projetos.
SCRUM – Sprint Retrospective
• Ocorre ao final de um Sprint e serve para identificar o que
funcionou bem, o que pode ser melhorado e que ações serão
tomadas para melhorar.
• Pode servir também para iniciar o planeamento da nova
Sprint.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
79
• Conta com a participação do Scrum Master e com a equipe
de desenvolvimento.
eXtreme Programming (XP)
• É uma metodologia de desenvolvimento de software,
nascida nos Estados Unidos ao final da década de 90.
• Vem fazendo sucesso em diversos países, por ajudar a criar
sistemas de melhor qualidade, que são produzidos em menos
tempo e de forma mais econômica que o habitual.
• Tais objetivos são alcançados através de um pequeno
conjunto de princípios e práticas, que diferem
substancialmente da forma tradicional de se desenvolver
software.
Princípios:
Comunicação
Coragem
Feedback
Respeito
Simplicidade
Comunicação:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
80
Coragem:
• Única constância nos projetos de software é a mudança
• A confiança nas ferramentas e nas metodologias
adotadas ajudam em tomadas de decisões corajosas, para o
bem do projeto
Feedback
• Projetos de software requerem alto investimento por parte
do cliente
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
81
• É preciso que o cliente tenha conhecimento do status do seu
investimento, a cada instante
• Para isso, a comunicação e o respeito devem esta presente
na relação Equipe x Cliente
Respeito
• Membros de uma equipe só irão se preocupar em
comunicar-se melhor, por exemplo, se houver respeito uns com
os outros
Simplicidade:
• Pesquisa sobre as funcionalidades desenvolvidas para um
software
Muito esforço é, geralmente, empregado na produção do software, sem
que haja agregação de valor no produto final
eXP
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
82
eXtreme Programming (XP) – Práticas
Organizacionais:
• Jogo de Planeamento
• Pequenas Versões (Releases)
• Teste de Aceitação
• Time Coeso
Equipe:
• Propriedade Coletiva
• Padronização de Código• Ritmo Sustentável
• Integração Contínua
• Metáforas
Pares:
• Programação em Par
• Refatoração
• Projeto Simples
• Desenvolvimento Orientado a Teste (TDD)
Jogo de Planeamento:
• É a reunião feita no início da iteração, entre
desenvolvedores e cliente, cuja finalidade é identificar as
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
83
prioridades do projeto para que os desenvolvedores
estimem o esforço das tarefas.
• O cliente é essencial neste processo e assim ele fica sabendo
o que está acontecendo e o que vai acontecer no projeto.
• Como o escopo é reavaliado a cada ciclo, o projeto é
regido por um contrato de escopo negociável, que difere
significativamente das formas tradicionais de contratação de
projetos de software.
• Ao final de cada ciclo, o cliente recebe novas
funcionalidades, completamente testadas e prontas para
serem postas em produção.
Pequenas Versões (Releases):
• A liberação de pequenas versões funcionais do projeto
auxilia muito no processo de aceitação por parte do cliente,
que já pode testar uma parte do sistema que está
comprando.
• As versões chegam a ser ainda menores que as produzidas
por outras metodologias incrementais, como o RUP.
Teste de Aceitação:
• São testes construídos pelo cliente e conjunto de analistas e
testadores, para aceitar um determinado requisito do
sistema.
• Descreve um cenário (de sucesso ou não) com uma
expectativa do cliente em relação à história ou
funcionalidade.
• Como o nome sugere, ele ajuda a equipe a entender
quando uma história está completa (aceita).
Time Coeso:
• Deve ser formado pelo cliente, desenvolvedores e por
profissionais que contribuam para o desenvolvimento do
projeto, como consultores, por exemplo.
• A equipe de desenvolvimento é formada por pessoas
engajadas e de perfis multidisciplinares, com o objetivo de
termos um vasto conjunto de habilidades necessárias para o
projeto.
• Um projeto bem-sucedido precisa levar em conta a opinião
de diversas partes, bem como incorporar diferentes pontos
de vista.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
84
Propriedade Coletiva :
• O código fonte não tem dono e ninguém precisa solicitar
permissão para poder modificar o mesmo.
• O objetivo com isto é fazer a equipe conhecer todas as
partes do sistema.
Padronização de Código :
• A equipe de desenvolvimento precisa estabelecer regras
para programar e todos devem seguir estas regras.
• Desta forma parecerá que todo o código fonte foi editado
pela mesma pessoa, mesmo quando a equipe possui 10 ou
100 membros.
• IDEs e Frameworks contribuem de forma significativa para
implantar essa prática.
Ritmo Sustentável :
• Trabalhar com qualidade, buscando ter ritmo de trabalho
saudável (40 horas/semana, 8 horas/dia), sem horas extras.
• Horas extras são permitidas quando trouxerem
produtividade para a execução do projeto.
• Outra prática que se verifica neste processo é a prática de
trabalho energizado, onde se busca trabalho motivado
sempre.
• Para isto o ambiente de trabalho e a motivação da equipe
devem estar sempre em harmonia.
Integração Contínua:
• Sempre que produzir uma nova funcionalidade, nunca
esperar uma semana para integrar à versão atual do
sistema.
• Isto só aumenta a possibilidade de conflitos e a
possibilidade de erros no código fonte.
• Integrar de forma contínua permite saber o status real da
programação.
Metáforas :
• Procura facilitar a comunicação com o cliente, entendendo a
realidade dele.
• O conceito de rápido para um cliente de um sistema jurídico
é diferente para um programador experiente em controlar
comunicação em sistemas em tempo real, como controle de
tráfego aéreo.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
85
• É preciso traduzir as palavras do cliente para o significado
que ele espera dentro do projeto.
Programação em Par :
• É a programação em par/dupla num único computador.
• Geralmente a dupla é formada por um iniciante na
linguagem e outra pessoa funcionando como um instrutor.
• Como é apenas um computador, o novato é que fica à
frente fazendo a codificação, e o instrutor acompanha
ajudando a desenvolver suas habilidades.
• Desta forma o programa sempre é revisto por duas pessoas,
evitando e diminuindo assim a possibilidade de defeitos.
• Com isto busca-se sempre a evolução da equipe,
melhorando a qualidade do código fonte erado.
Refactoração:
• É um processo que permite a melhoria contínua da
programação, com o mínimo de introdução de erros e
mantendo a compatibilidade com o código já existente.
• Refatorar (ou refabricar) melhora a clareza (leitura) do
código, divide-o em módulos mais coesos e de maior
reaproveitamento, evitando a duplicação de código-fonte
Projeto Simples :
• Simplicidade é um princípio da XP. Projeto simples significa
dizer que caso o cliente tenha pedido que na primeira
versão apenas o usuário "teste" possa entrar no sistema com
a senha "123" e assim ter acesso a todo o sistema, você vai
fazer o código exato para que esta funcionalidade seja
implementada, sem se preocupar com sistemas de
autenticação e restrições de acesso.
• Um erro comum ao adotar essa prática é a confusão por
parte dos programadores de código simples e código fácil.
• Nem sempre o código mais fácil de ser desenvolvido levará
a solução mais simples por parte de projeto.
• Esse entendimento é fundamental para o bom andamento do
XP.
• Desenvolvimento Orientado a Teste (TDD)
Testing Driven Development
• Primeiro crie os testes unitários (Unit Tests) e depois crie o
código para que os testes funcionem.
• Esta abordagem é complexa no início, pois vai contra o
processo de desenvolvimento de muitos anos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
86
• Só que os testes unitários são essenciais para que a
qualidade do projeto seja mantida.
Variação entre os modelos
Como o processo de desenvolvimento de software se
distribui/concentra no tempo dentro de um projeto?
Cada modelo tem suas vantagens e desvantagens
Cabe aos gerentes e analistas escolherem a melhor abordagem
para o projeto a ser desenvolvido
Sumário
Nesta Unidade temática 3.2 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
87
UNIDADE Temático 3.3. Processo Unificado
Fases do Processo.
Ciclo de vida do processo.
• Orientado por Casos de Uso, surgiu para realizar o
desenvolvimento de software visando a construção de sistemas
orientados a objetos.
• Este modelo de desenvolvimento de software é iterativo e
adaptativo, desta forma consegue produzir um sistema de
grande porte como se fossem vários pequenos sistemas, o que
diminui o risco do projeto.
• O PU utiliza um paradigma evolucionário paro o
desenvolvimento de softwares. O ciclo de vida iterativo é
baseado em refinamentos e incrementos sucessivos a fim de
convergir para um sistema adequado.
• Em cada iteração incrementa-se um pouco mais o produto,
baseando-se na experiência obtida nas iterações anteriores e
no feedback do usuário. Cada iteração pode ser considerada
um miniprojeto de duração fixa,sendo que cada um destes inclui
suas próprias atividades de análise de requisitos, projeto,
implementação e testes.
Segundo Ivar Jacobson, Grady Booch e James Rumbaugh
(1999):
– Hoje em dia, a tendência do software é no sentido de sistemas
maiores e mais complexos. Isso deve, em parte, ao fato de que
os computadores tornam-se mais potentes a cada ano, levando
aos usuários a ter uma expectativa maior em relação a eles (...)
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
88
Queremos software que seja mais e mais adaptado as nossas
necessidades, mas isso, por sua vez, simplesmente torna o
software mais complexo.
Características
• Baseado em componentes que realizam interfaces
• Usa UML
• Aspectos:
– Dirigido por Casos de Uso
– Centrado em arquitetura
– Iterativo e incremental
– Focado no Risco
• Composto pelos 4 P’s: Pessoal, Projeto, Produto e Processo
P4 = Pessoa, Projeto, Produto, Processo
• PESSOAS: Financiam, escolhem, desenvolvem, gerenciam,
testam, usam e são beneficiadas por produtos
• PROJETOS: Sofrem alterações. Determinam os tipos de
pessoas que irão trabalhar no projeto e os artefatos que serão
usados
• PRODUTO código fonte, código de máquina, subsistemas,
classes, diagramas: interação, de estados e outros artefatos
– ARTEFATO é qualquer tipo de informação criada por uma
pessoa (diagramas UML, textos, modelos de interfaces)
• PROCESSO define quem faz o que, quando e como
• PU é um processo. Considera fatores organizacionais, do
domínio, ciclo de vida e técnicos
Dirigido a Use-Cases
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
89
• Capturar os requisitos: o Diagrama Use-Case mostra quais
atores usam quais use-cases
• Dirigir o processo: para realizar os use-cases são definidos
classificadores (classes, subsistemas, interfaces) e
relacionamentos (colaborações) entre estes
• Elaborar a arquitetura, determinar iterações, determinação
dos manuais de usuário
Centrado na arquitetura
• A organização do sistema como um todo
• Os elementos estruturais, interfaces e seu comportamento
• Composição de elementos estruturais e comportamentais em
subsistemas
• A ARQUITETURA descreve as partes essenciais do sistema,
importantes para todos desenvolvedores
– Menos de 10% das classes são relevantes para a arquitetura
• Descrição de REQUISITOS ADICIONAIS: segurança,
distribuição, concorrência, plataformas, etc.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
90
• Sequência para o arquiteto:
• Criar uma visão preliminar da arquitetura
• Analisar os use-cases chave (5-10%) e especificar um
subsistema para cada um
• Pela especificação dos subsistemas aparecem mais detalhes
da arquitetura e novos use-cases
• Repetir o passo acima, até terminar o sistema
Benefícios
• Mitigação precoce, ao invés de tardia, minimizando os riscos
do projeto;
• Progresso visível desde o início
• Realimentação, envolvimento do usuário e adaptação
imediatos, levando a um sistema refinado que atenda, de forma
mais adequada, às reais necessidades dos interessados;
• A complexidade é administrada
– A equipe não é sobrecarregada pela “paralisia da análise”
ou por passos muito longos e complexos;
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
91
• O aprendizado obtido em uma iteração pode ser usado para
melhorar o próprio processo de desenvolvimento.
Fases do Processo Unificado
Fases do Processo Unificado
• Concepção
• Elaboração
• Construção
• Transição
• Produção
Concepção:
• Estabelece o business case (prioridade de negócio)
• Envolve tanto a atividade de comunicação com o cliente como
a de planeamento
• Delimita o escopo do sistema
• Determina arquitetura candidata (elementos novos, arriscados)
• Identifica riscos críticos
• Identifica potenciais usuários ou clientes do sistema
Elaboração:
• Determina uma arquitetura estável
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
92
• Identificar e reduzir riscos de construção
• Especificar maioria dos Casos de Uso
• Fixar a arquitetura em proporções executáveis
• Preparar o plano de projeto (para a próxima fase)
• Estimar e justificar o orçamento
• Finalizar o business case
Construção:
• Determina capacidades operacionais iniciais
• Estender o modelo de Casos de Uso para toda a aplicação
• Finalizar a análise, projeto, implementação e testes
• Verificar integridade da arquitetura (com possíveis alterações)
• Monitorar riscos críticos
Transição:
• Transforma versão beta em um sistema em produção
• Preparar atividades de transição
• Avisar clientes sobre mudanças no ambiente (hardware,
software, distribuição, ..)
• Preparar documentação final
• Carregar o novo sistema
• Corrigir possíveis defeitos detectados no beta-teste
Produção (Segundo Pressman [2010])
• Durante essa fase, monitora-se o uso contínuo do software
• Disponibiliza-se suporte para o ambiente operacional
(infraestrutura)
• Realiza-se e avalia-se relatórios de defeitos e solicitações de
mudanças
Sumário
Nesta Unidade temática 3.3 estudamos e discutimos fundamentalmente
……
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
93
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE Temático 3.4. Padrões de Implementação
Projetar um sistema orientado a objeto não é simples, mas realizar este
projeto levando em consideração o reuso é ainda mais complexo. Você
deve estabelecer as classes pertinentes, com a granularidade
necessária e relacioná-las da melhor maneira possível.
Uma das maneiras de facilitar esta tarefa é realizar o reuso de boas
soluções propostas para problemas recorrentes do desenvolvimento de
software. Este cenário de reuso é descrito através de padrões de
projeto. Vale frisar que padrões promovem o reuso das ideias de como
solucionar o problema, não de código Padrões de projeto apresentam
as seguintes vantagens e desvantagens:
Vantagens
• Facilidade de repassar conhecimento entre os desenvolvedores
experientes;
• Capturar experiências, tornando-as acessíveis aos novatos;
• Tornar mais rápido o entendimento de sistemas (documentados por
meio de padrões);
• Facilitar a evolução do código – quando padrões são usados no
desenvolvimento, fica mais fácil entender o código para evoluí-lo;
• Modularidade – código que usa padrões possui maior coesão e,
portanto, módulos mais bem definidos, com consequente diminuição da
complexidade por quebrar o problema em problemas menores;
Desvantagens
• Menor Eficiência: Em alguns casos, o uso de um padrão de software
pode exigir que seja adicionada novas classes ou novas camadas de
aplicação ao modelo original do
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
94
sistema, o que pode causar uma sobrecarga na sua execução,
tornando-o mais lento;
• Menor Legibilidade: Apesar de serem concebidos para melhorar o
entendimento de programas, em certos casos padrões podem diminuir a
compreensão de um projeto ou de uma implementação;
• Falta de Motivação daEquipe: Assim como em outras formas de
reuso, pode haver resistência ao uso de padrões por parte da equipe.
Para que uma solução seja considerada um padrão, ela deve
preencher os seguintes requisitos:
• Deve ser uma solução para um problema em um contexto;
• Deve ser capaz de dizer ao solucionador do problema o que fazer
e como resolver o problema;
• Deve ser maduro, uma solução provada;
• A solução deve ser construída dentro da ótica do solucionador do
problema e pode ser implementada milhões de vezes sem se repetir;
• Deve ser capaz de se reproduzir
Existe uma infinidade de padrões de projeto propostos na literatura,
dentre eles podemos citar: Padrões GoF, Padrões POSA e Padrões
J2EE. Dentre eles destacamos os padrões GoF. Quanto ao propósito,
eles podem classificar-se em:
• Padrões de Criação: Diz respeito ao processo ou ciclo de criação de
um objeto.
• Estruturais: Diz respeito à composição de objetos e classes.
• Comportamentais: Caracteriza o modo como classes e objetos
interagem e compartilham responsabilidades.
A organização dos padrões GoF é dada de acordo com a tabela a
seguir:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
95
A seguir um padrão de cada propósito será detalhado.
Singleton
Singleton é um exemplo de padrão GoF criacional que permite que
uma classe possibilite apenas uma instância e provê um ponto global de
acesso a esta instância.
• Motivação: É importante para algumas classes ter exatamente uma
instância. Como nós gostaríamos que a classe fosse? E o acesso a esta
instância?
• Descrição do Problema: Um atributo de instância criado com tipo
base da própria classe possibilita a acessibilidade de uma instância a
partir da classe base, mas não elimina a possibilidade de instanciar
vários objetos a partir dela.
• Descrição: Permite que a própria classe base (que possui uma
instância de si mesma) controle sua única instância. A classe pode
garantir que nenhuma outra instância pode ser criada e pode fornecer
uma maneira de acessar a instância.
• Consequências: A classe base deve ser responsável por interceptar
solicitações para criar novos objetos.
• Estrutura da Solução: A estrutura deste padrão é bastante simples.
Uma única classe é utilizada, esta classe possui uma instância de si
mesma e um método que devolve esta instância. Tanto o atributo
(Instância da classe) quanto o método de retorno são estáticos, isto
permite que outra classe possa acessar o método sem instanciar a
classe diretamente. Observe que o atributo que armazena a instância
da classe é privado, deste modo o método de retorno é capaz de
garantir que apenas uma instância seja criada. Em linguagens que
disponibilizam o conceito de construtor, deve ser criado um construtor
privado sem parâmetros para garantir que outras classes tenham
acesso à instância da classe base somente através do método
getInstancia.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
96
Exemplo: O exemplo a seguir utiliza o contexto de um sistema
universitário, onde é permitido que somente um reitor exista na
instituição em de -terminado momento. Além disto, a classe UAB, recebe
a instância da classe ReitorSingleton.
Em Java, o código destas classes ficaria da seguinte forma:
Composite
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
97
Composite é um exemplo de padrão GoF estrutural que compõe
objetos em árvores de agregação (relacionamento parte-todo) e
permite que objetos agregados sejam tratados como um único objeto.
• Motivação: Permitir que as aplicações gráficas como editores de
desenho possibilitem que usuários possam construir diagramas
complexos a partir de componentes simples.
• Descrição: O padrão Composite descreve como usar a composição
recursiva para que os clientes não precisem fazer essa distinção.
• Descrição do Problema : O utilizador do padrão pode agrupar
componentes para formar componentes maiores, que por sua vez
podem ser agrupados para formar componentes ainda maiores. Uma
implementação simples pode definir classes para componentes gráficos
primitivos, tais como texto e linhas mais outras classes que atuam como
recipientes para essas primitivas.
• Consequências: código que usa essas classes deve tratar objetos
primitivos e recipiente de forma diferente, mesmo que na maioria das
vezes o usuário os trata de forma idêntica. Ter que distinguir estes
objetos torna a aplicação mais complexa.
• Estrutura da Solução: A solução é simples. Várias classes
implementam as partes da solução (Folha) e uma classe representa o
todo (Composite), adicionalmente uma superclasse ou interface pode ser
criada para relacionar as folhas e composite de modo a possibilitar o
uso de qualquer folha pelo todo
Exemplo: Um desenho pode ser composto de vários círculos e linhas.
Cada um deles é uma figura que pode ser adicionada, removida,
desenhada e pode ter seu desenho retornado.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
98
Em Java, o código destas classes ficaria da seguinte forma:
// Interface Figura
public interface Figura {
public abstract void desenhar();
public void adicionar(Figura fig);
public void remover(Figura fig);
public Figura getFigura(int indice);
}
__________________________________________________
// Classe Circulo
public class Circulo implements Figura{
public void adicionar(Figura fig) {
System.out.println(“Círculo não tem Filhos.”);
}
public void desenhar() {
System.out.println(“()”);
}
public Figura getFigura(int indice) {
System.out.println(“Círculo não tem Filhos.”);
return null;
}
public void remover(Figura fig) {
System.out.println(“Círculo não tem Filhos.”);
}
}
__________________________________________________
//Classe Linha
public class Linha implements Figura{
public void adicionar(Figura fig) {
System.out.println(“Linha não tem Filhos.”);
}
public void desenhar() {
System.out.println(“____________________ ”);
}
public Figura getFigura(int indice) {
System.out.println(“Linha não tem Filhos, será retornado
nulo.”);
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
99
return null;
}
public void remover(Figura fig) {
System.out.println(“Linha não tem Filhos.”);
}
}
__________________________________________________
//Classe Desenho
public class Desenho implements Figura {
ArrayList<Figura> filhos = new ArrayList<Figura>();
public void adicionar(Figura fig) {
this.filhos.add(fig);
}
public void desenhar() {
Figura f;
for(int i = 0; i < this.filhos.size(); i++){
f = this.filhos.get(i);
f.desenhar();
}
public Figura getFigura(int indice) {
return (Figura) this.filhos.get(indice);
}
public void remover(Figura fig) {
this.filhos.remove(fig);
}
}
Template Method
Template Method é um exemplo de padrão GoF comportamental que
permite que subclasses componham o algoritmo e tenham a
possibilidade de redefinir certos passos a serem tomados no processo,
sem contudo alterar sua interface.
• Motivação: Deseja que subclasses implementem versões diferentes,
mas com a mesma estrutura de um método da superclasse. O que faria?
• Descrição:Define o esqueleto de um algoritmo em uma operação. O
Template Method permite que subclasses componham o algoritmo e
tenham a possibilidade de redefinir certos passos a serem tomados no
processo, sem contudo, mudá-lo.
• Descrição do Problema: Implementar as partes invariantes de um
algoritmo uma só vez e as subclasses implementam comportamentos
variantes. Quando comportamento comum entre subclasses deve ser
fatorado e localizado em uma classe comum para evitar duplicação de
código.
• Consequências: É importante dizer o que os métodos: devem, podem
e não podem ser sobrescritos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
100
• Estrutura da Solução: Uma classe abstrata que possui o método
template é definida e utilizada como base para as classes que
utilizarão o conjunto de passos do método template e definirão as
operações abstratas (cada passo) definidas na classe pai.
Exemplo: O exemplo a seguir utiliza a feitura de café e de chá para
exemplificar o uso do padrão de Projeto Template Method. Para
fazermos um café, é necessário ferver água, infundir os grãos de café,
despejar na panela e condimentar com açúcar. Para o preparo do chá,
é necessário ferver água, infundir as folhas do chá, despejar na panela
e condimentar com limão. Observe que a sequência das operações é
semelhante, o que muda são os ingredientes.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
101
Em Java, o código destas classes ficaria da seguinte forma:
// Classe BebidaQuente
public abstract class BebidaQuente {
public void preparar(){
ferverAgua();
despejarNaChaleira();
infundir();
condimentar();
}
public void ferverAgua(){
System.out.println(“Água fervida.”);
}
public void despejarNaChaleira(){
System.out.println(“Água na chaleira.”);
}
public abstract void infundir();
public abstract void condimentar();
}
___________________________________________________
// Classe Cafe
public class Cafe extends BebidaQuente{
public void condimentar() {
System.out.println(“Açúcar adicionado.”);
}
public void infundir() {
System.out.println(“Pó de café adicionado.”);
}
}
___________________________________________________
//Classe Chá
public class Cha extends BebidaQuente{
public void condimentar() {
System.out.println(“Limão adicionado.”);
}
public void infundir() {
System.out.println(“Folhas adicionadas.”);
}
}
Sumário
Nesta Unidade temática 3.4 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
102
Respostas: 1A, 2C, 3V…
Exercícios de AUTO-AVALIAÇÃO
1. Qual o objetivo dos padrões Comportamentais, segundo o catálogo
GOF?
Definir formas de gerenciar e combinar diferentes
comportamentos e responsabilidades de classes e objetos de
uma aplicação.
2. Qual o objetivo dos padrões Estruturais, segundo o catálogo
GOF?
Facilitar o design do sistema identificando maneiras de realizar
o relacionamento entre as entidades, deixando o desenvolvedor
livre desta preocupação.
3. Qual o seu entendimento sobre Processo de Desenvolvimento de
Software e quais são os seus objetivos básicos?
É um conjunto de atividades que, coordenadas entre si, visam
a construção de software. Seus objetivos são aumentar a
produtividade e melhorar a qualidade dos projetos de software
desenvolvidos na organização.
4. Descreva o que significa desenvolver um software de qualidade?
Objetivar desenvolver um software que esteja em conformidade
com os requisitos coletados junto ao cliente, visando a sua
satisfação, assim como seguir os processo de desenvolvimento
de software com o intuito de se gerenciar o projeto de maneira
eficiente, buscando assim o resultado esperado.
5. NÃO é considerada uma metodologia para processos de
desenvolvimento de software.
a) RUP
b) ISO/IEC 12207
c) LINUX
d) XP
e) SCRUM
6. Relacione o artefato de entrega com a atividade de PDS
correspondente.
Artefatos:
I - Questionário de entrevista
II - Plano de teste
III - Código fonte do software
IV - Diagrama de Casos de Uso
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
103
V - Diagrama de Classes
Atividade de PDS:
A) Análise
B) Especificação
C) Projeto
D) Implementação
E) Teste
A relação correta é:
A) A-I, B-II, C-III, D-IV, E-V
B) A-IV, B-I, C-III, D-II, E-V
C) A-I, B-IV, C-V, D-III, E-II
D) A-II, B-III, C-VI, D-I, E-V
E) A-III, B-II, C-I, D-V, E-IV
7. São fases do Processo Unificado:
a) Negócios, Elaboração, Construção e Transição.
b)Iniciação, Elaboração, Construção e Transição.
c) Iniciação, Elaboração, Codificação, Testes e Transição.
d) Iniciação, Requisitos, Modelagem, Construção e
Transição.
e) Negócios, Elaboração, Construção e Implantação.
8. XP – eXtreme Programming. - Baseado em 5 valores, qual da
opções abaixo NÃO é um desses valores ?
a) Complexidade
b) Comunicação
c) Simplicidade (fazer o necessário)
d) Feedback
e) Coragem (para lidar c/ mudança requisito)
9. O Processo Unificado divide a realização de um projeto para
desenvolvimento de um sistema de software em fases. Em cada uma
dessas fases, são executadas atividades de diversas disciplinas em
diferentes proporções. No desenvolvimento de um sistema de
software complexo, quais a principal recomendação desse
processo?
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
104
Usar a abordagem de desenvolvimento iterativa e incremental,
para dividir as atividades em iterações em que cada iteração
gera um incremento do software, facilitando o seu
gerenciamento.
10. Os métodos ágeis trazem uma nova abordagem para o
desenvolvimento de software diferente das abordagens até então
utilizadas. Explique quais as principais diferenças existentes entre a
abordagem tradicional e a abordagem de métodos ágeis.
Está na especificação do software. Enquanto a abordagem
tradicional valoriza as fases especificação, análise e projeto do
sistema considerando-as fundamental para a produção de
artefatos bem definidos que possam nortear a programação, a
abordagem ágil faz uma especificação simples e sucinta do
sistema e tem como principal foco a codificação do software.
11. Considere um sistema cujos requisitos de interface são definidos
apenas quando o cliente realiza um test-drive na aplicação e
aprova essa interface. Assinale a alternativa que apresenta o
modelo mais adequado para o desenvolvimento da interface desse
sistema.
a) Ágil.
b) Cascata.
c) Iterativo incremental.
d)Prototipação.
e) RAD - Rapid Application Development.
12. Sobre o modelo iterativo e incremental, classifique cada sentença
como sendo V (verdade) ou F (falsa).
Em seguida, assinale a alternativa correta.
I. O modelo iterativo baseia-se na idéia do aumento da
abrangencia do sistema.
II. O modelo incremental baseia-se na ideia de refinamentos
sucessivos.
III. O modelo iterativo e incremental vale-se do modelo em cascata
para sua realização.
IV. A cada iteração, ocorre a especificação, implementação, teste e
implantação
Com base em sua analise assinale a opção que descrevea correta
sequência de V e F é:
a) I-F; II-F; III-V; IV-V
b) I-V; II-V; III-V; IV-V
c) I-V; II-V; III-V; IV-F
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
105
d) I-F; II-F; III-V; IV-F
e) I-V; II-V; III-F; IV-V
13. Em uma metodologia ágil para desenvolvimento de software como
XP, a técnica SCRUM para gestão de projeto é largamente
adotadas. Justifique essa afirmação explicando melhor como
funciona em SCRUM conceitos como Product Owner, Relase
Planning e SCRUM Master
Product Owner é o dono do produto, o gerente do projeto
responsável pelo que vai ser desenvolvido.
Release Planning é o planeamento de quantas e quais
funcionalidades serão feitas em cada entrega do produto e
SCRUM Master é o líder da equipe, responsável por liderar a
equipe e aplicar as técnicas de SCRUM
14. Qual o objetivo dos padrões de Criação, segundo o catálogo
GOF?
Abstrair o processo de criação de objetos, ou seja, a sua
instanciação. Desta maneira o sistema não precisa se preocupar
com questões sobre, como o objeto é criado, como é composto,
qual a sua representação real.
15. Assinale a opção cujos padrões de projeto estão todos classificados
como Comportamentais, segundo o catálogo GoF
A) Command, Bridge, Iterator, Mediator, Observer, State,
Strategy
B) Command, Bridge, Iterator, Mediator, Bridge, State,
Strategy
C) Command, Bridge, Iterator, Mediator, Composite, State,
Strategy
D) Command, Interpreter, Iterator, Mediator, Observer, State,
Strategy
E) Command, Interpreter, Iterator, Mediator, composite, State,
Strategy
16. Assinale a opção cujos padrões de projeto estão todos classificados
como criação, segundo o catálogo GoF:
A) Command, Builder, Factory Method, Protype , Singleton
B) Abstract Factory, Builder, Factory Method, Decorator, Singleton
C) Abstract Factory, Builder, Factory Method, Protype, Singleton
D) Abstract Factory, Builder, Composite, Protype, Singleton
E) Abstract Factory, Bridge, Factory Method, Protype, Singleton
17. Assinale a opção cujos padrões de projeto estão todos classificados
como Estruturais, segundo o catálogo GoF:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
106
A) Adapter, Bridge, Composite, Decorator, Façade, Flyweight,
Singleton
B) Adapter, Bridge, Protype, Decorator, Façade, Flyweight,
Singleton
C) Singleton, Bridge, Composite, Decorator, Façade, Flyweight,
Proxy
D) Singleton, Bridge, Protype, Decorator, Façade, Flyweight,
Proxy
E) Adapter, Bridge, Composite, Decorator, Façade, Flyweight,
Proxy
18. O que é o MVC e como ele é estruturado?
É um padrão arquitetura que tem como objetivo separar a
apresentação dos dados da sua manipulação. O MVC é composto,
basicamente, de 3 camadas:
View(Visão) – Apresentação do sistema para o usuário
Controller(Controle) – Efetuará o processamento das informações
fornecidas pela visão
Model(Modelo) – Responsável pela persistência (armazenamento)
dos dados na estrutura escolhida (Banco de Dados, XML, Etc.)
19. Em uma janela pode-se adicionar objetos como barras de rolagem,
caixas de texto, labels, etc. Pode-se criar uma classe Auxiliar que
será estendida pelos decoradores que irão inserir propriedades na
janela. O padrão de projetos que possibilita essa implementação
chama-se:
A) Memento
B) Template Method
C) Decorator
D) Prototype
E) Builde
20. Dois dos principais patterns utilizados atualmente são descritos a
seguir:
I. Visa garantir que uma classe só tenha uma única instância e
prover um ponto de acesso global a ela.
II. Visa definir uma dependência um-para-muitos entre objetos para
que quando um objeto mudar de estado os seus dependentes sejam
notificados e atualizados automaticamente.
Os Design Patterns descritos em I e II são, respectivamente:
A) Singleton e Observer.
B) Composite e Adapter
C) Singleton e Command.
D) Facade e Observer.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
107
E) Facade e Adapter.
21. A família de padrões GoF é dividida em três grupos principais de
padrões, a saber:
a) Padrões de Criação; Padrões Metodológicos; Padrões de Ponte.
b) Padrões de Processo; Padrões de Singularidade; Padrões de
Prototipação.
c) Padrões de Proxy; Padrões de Criação; Padrões de
Encadeamento.
d) Padrões Estruturais; Padrões de Processo; Padrões de
Responsabilidade.
e) Padrões Comportamentais; Padrões de Criação; Padrões
Estruturais.
Exercícios para AVALIAÇÃO
1. Qual a importância de padrões de projeto?
2. Consulte outros três padrões de projeto GOF e liste as principais
características deles.
3. Consulte mais cenários de aplicação para os padrões apresentados
nesta seção.
4. Que padrão utilizaria para implementar um sistema de uma fábrica
de ventiladores que possuem vários tipos de ventiladores, montados a
partir de um conjunto específico de peças? Ilustre este cenário.
TEMA -IV: TESTE DE SOFTWARE
UNIDADE Temática 4.1. Introdução, Importância do Teste de Software:
natureza, objectivos e definições do Teste.
UNIDADE Temática 4.2. Teste no projecto do Sistema
UNIDADE Temática 4.3. Teste no Programa
UNIDADE Temática 4.4. Teste na plantação do sistema
UNIDADE Temática 4.5. Teste do Software em Sistema em Produção
UNIDADE Temática 4.6. Ferramentas de Teste de Software
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
108
UNIDADE Temática 4.1. Importância do teste de software
Introdução
A atividade de teste de software é complemento indispensável à
atividade de construir e manter sistema.
A aplicação de teste de software deve ser planeada, supervisionada,
executada e avaliada.
Objetivos Gerais
Conhecer as técnicas de teste de software para aplicação no ambiente
de desenvolvimento e produção de sistemas.
Objetivos Específicos
• Identificar necessidade de uso de teste de software nas diversas fases
de vida e de construção do software;
• Selecionar os testes adequados para cada situação;
• Criar e escolher estratégias de teste de software;
• Aplicar e analisar teste de software.
4.1.1 - O teste nas fases de vida e de desenvolvimento de um
software.
A Importância do Teste
• O desenvolvimento de sistemas envolve uma série de atividades em
que as oportunidades de injeção de falhas são muito grandes.
• Estes erros podem começar a aparecer logo no início do processo,
onde os objetivos podem estar erroneamente especificados, além de
erros que venham a ocorrer em fases de projeto e desenvolvimento
posteriores.
• Por causa da inabilidade humana de realizar e de se comunicar com
perfeição, o desenvolvimento é acompanhado de garantia de
qualidade.
• A atividade de teste de software é um elemento crítico da garantia
de qualidade de software e representa a última revisão de
especificação, projeto e codificação.
Custo do Reparo
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
109
• Não é raro gastarmos entre 30 e 40% do esforço total do projeto no
Teste de Software.
• O Teste de Software para ambientes críticos (ex.: controle de voo,
monitoramento de reatores nucleares e etc.) pode custar de três a cinco
vezes mais do que todos os outros passos de engenharia de software
combinados.
Gráfico de Índice de Falhas x Tempo
Definindo o Teste de Software
• Avaliar se o software está fazendo o que deveria fazer, de acordocom os seu requisitos, e não está fazendo o que não deveria fazer;
• Qualquer atividade que, a partir da avaliação de um atributo ou
capacidade de um programa ou sistema, seja possível determinar se
ele alcança os resultados desejados. (Bill Hetzel – 1988).
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
110
• Processo de executar um programa ou sistema com a intenção de
encontrar defeitos (Glen Myers – 1979);
• Segundo Pressman, o teste de software é um conjunto de atividades
que podem ser planejadas com antecedência e executadas
sistematicamente.
• Uma estratégia de teste de software deve acomodar testes de baixo
nível, necessários para verificar se um pequeno segmento de código
fonte foi implementado corretamente, bem como testes de alto nível,
que validam as funções principais do sistema de acordo com os
requisitos do cliente.
• A atividade de teste é um passo do processo de Engenharia de
Software que visa encontrar/corrigir erros ao longo do software que
foi construído.
• Testes podem ser usados para descobrir a presença de erros, mas
não para mostrar a sua ausência.
• Testes de software é o processo de executar o software de uma
maneira controlada com o objetivo de descobrir diferenças entre o
comportamento previsto e o comportamento observado
Estratégias de Teste
• Todas estratégias fornecem um modelo para o teste e têm
basicamente as seguintes características:
–Para executar um teste eficaz, proceder a revisões técnicas eficazes.
Fazendo isso, muitos erros serão eliminados antes do começo do teste.
–O teste começa no nível do componente e progride em direção à
integração do sistema computacional como um todo.
–Diferentes técnicas de teste são apropriadas para diferentes
abordagens de engenharia de software e em diferentes momentos
–O teste é feito pelo desenvolvedor do software e (para grandes
projetos) por um grupo independente de teste.
–O teste e a depuração são atividades diferentes, mas a depuração
ocorre em consequência de um teste.
• A atividade de teste é o processo de executar um programa com a
intenção de descobrir um erro.
• Um bom caso de teste é aquele que possui uma elevada
probabilidade de revelar um erro ainda não descoberto.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
111
• Um teste bem-sucedido é aquele que revela um erro ainda não
descoberto.
Diretrizes para o Teste
• Determinar quando o teste deve ser interrompido.
• Atribuir a responsabilidade do teste a um testador.
• Descrever os resultados esperados para cada caso de teste.
• Escrever casos de teste para condições de entrada válidas e inválidas.
• Inspecionar o resultado de cada teste por completo.
• Alocar os programadores mais criativos para teste.
O Processo de Teste
• O processo de teste de software deve basear-se em uma
metodologia aderente ao processo de desenvolvimento, com pessoal
técnico qualificado, ambiente e ferramentas adequadas.
• Esta metodologia de teste deve ser o documento básico para
organizar a atividade de testar aplicações no contexto da empresa.
Assim como o processo de desenvolvimento de software, teste de
software também possui um ciclo de vida:
• Planeamento: Elaboração e revisão da Estratégia de teste e do
plano de teste;
• Preparação: Preparação do ambiente de teste, incluindo
equipamentos, rede, pessoal, software e ferramentas.
• Procedimentos iniciais: Consiste na elaboração de documento com o
estabelecimento de um acordo entre as partes envolvidas no projeto de
teste (usuários e técnicos):
– Objetivo do projeto de teste,
– Pessoal a ser envolvido,
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
112
– As responsabilidades de cada um;
– O plano preliminar de trabalho;
– Avaliação dos riscos;
– Os níveis de serviços acordados e etc.
• Especificação: Elaboração e revisão dos casos de teste , "scripts" (no
caso de ferramentas de automação de testes) e dos roteiros de Teste e
execução dos testes de verificação da documentação do sistema (testes
estáticos).
• Execução: Execução dos testes planejados conforme os Casos de
Teste, "scripts" e dos roteiros de Teste com os correspondentes registros
dos resultados obtidos.
• Entrega: Conclusão do processo de testes com a entrega do sistema
para o ambiente de produção.
Interação entre os Ciclos de Vida
• Há muitas estratégias que podem ser utilizadas para testar um
software. Uma das estratégias de teste que é preferida pela maioria
das equipes é a visão incremental do teste, começando com o teste das
unidades individuais de programa, passando para os testes destinados
a facilitar a integração de unidades e culminando com testes que usam
o sistema concluído.
• Verificação: Nesta etapa são realizadas inspeções/revisões sobre os
produtos gerados.
• Testes Unitários: São realizados no estágio mais baixo da escala de
testes e são aplicados nas menores componentes de códigos criados,
visando garantir que estes atendem as
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
113
especificações, em termos de garantia e de funcionalidade. Verificam o
funcionamento de um pedaço do sistema ou software isoladamente ou
que possam ser testado separadamente.
• Normalmente é feito pelos desenvolvedores.
• Testes de Integração: São executados em uma combinação de
componentes para verificar se eles funcionam corretamente juntos,
conforme as especificações.
• Componentes podem ser pedaços de código, módulos, aplicações
distintas, clientes servidores.
• Normalmente é feito pelos desenvolvedores
• Teste de Sistema: São realizados pela equipe de testes, visando a
execução do sistema como um todo ou um subsistema (parte de um
sistema), dentro de um ambiente operacional controlado, para validar
a exatidão e perfeição na execução de suas funções.
• Neste estágio de teste deve ser simulada a operação normal do
sistema, sendo testadas todas as suas funções de forma mais próxima
possível do que irá ocorrer no ambiente de produção.
• Esses testes são feitos pela equipe de teste de software.
• Teste de Aceitação: São os testes finais de execução do sistema,
realizados pelos usuários, visando verificar se a solução atende aos
objetivos do negócio e aos seus requisitos, no que diz respeito À
funcionalidade e usabilidade, antes da sua utilização no ambiente de
produção.
• Ao tratar os testes como um processo organizado e muitas vezes
paralelo e integrado ao processo de desenvolvimento, os custos de
manutenção serão reduzidos.
• Segundo Myers, o custo de correção de defeitos tende a aumentar
quanto mais tarde o defeito é detectado. Defeitos encontrados durante
a produção tendem a custar muito mais que defeitos encontrados em
modelos de dados e em outros documentos do projeto do software.
Os testes unitários podem remover entre 30% e 50 % dos defeitos dos
programas;
• Os testes de sistemas podem remover entre 30% e 50% dos defeitos
remanescentes.
• Desse modo, os sistemas podem ir para produção ainda com
aproximadamente 49% de defeitos.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
114
• Por últimos, as revisões de códigos podem reduzir entre 20% e 30%
desses defeitos.
4. 1.2 - O teste na engenharia de sistemas e na engenharia de
programas
Sumário
Nesta Unidade temática 4.1 estudamos e discutimos fundamentalmente……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE Temático 4.2 – Teste no projeto de sistema
4.2.1 – Revisões Técnicas Formais
FTR (Formal Technical Review)
• É uma atividade de Garantia de Qualidade (SQA) de um
software.
• Diferentemente dos testes, que só podem ser feitos após o término da
codificação do software, a FTR pode ser feita em qualquer fase do
projeto.
Objetivos:
Descobrir erros na função, na lógica ou na implementação, para
qualquer representação do software;
• Verificar se o software sob revisão satisfaz seus requisitos;
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
115
• Garantir que o software tenha sido representado de acordo com
padrões predefinidos;
• Conseguir software que seja desenvolvido de modo uniforme;
• Tornar os projetos mais administráveis.
• Além disso, a FTR serve como uma oportunidade de treinamento,
permitindo a jovens engenheiros observar abordagens diferentes para
a análise, projeto e implementação de software.
• A FTR é na realidade uma classe de revisões que inclui walkthoughs,
inspeções, revisões circulares e outras avaliações técnicas de software.
A Reunião de Revisão
• Independentemente do formato de FTR escolhido, cada reunião de
revisão deve atender às seguintes restrições:
– Entre três e cinco pessoas (em geral) devem ser envolvidas na
revisão. Preparativos devem ser feitos, os quais não devem exigir mais
de duas horas de trabalho de cada pessoa;
– A duração da reunião de revisão deve ser inferior a duas horas;
– À vista dessas restrições, fica óbvio que uma FTR focaliza uma parte
específica (e pequena) de todo o software.
• O foco de uma FTR é um Produto de Trabalho.
– Ex: Uma parte da especificação de requisitos, o projeto detalhado de
um componente, uma listagem do código-fonte de um componente,
• O indivíduo que desenvolveu o produto de trabalho (produtor)
informa ao líder do projeto que o produto do trabalho foi completado
e que é necessária uma revisão.
• O líder do projeto contata um líder de revisão, que avalia se o
produto está efetivamente pronto, gera cópias dos materiais do
produto e as distribui a dois ou três revisores para preparativos
antecipados.
• Concomitantemente, o líder de revisão também revisa o produto e
estabelece uma agenda para a reunião de revisão, que é usualmente
marcada para o dia seguinte.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
116
• A reunião de revisão tem a participação do Líder de Revisão, de
todos os Revisores e do Produtor.
• Um dos revisores assume o papel de Registrador, isto é, o indivíduo
que registra (por escrito) todas as questões importantes levantadas
durante a revisão.
• A FTR começa com a introdução da agenda e uma breve introdução
pelo produtor.
• O produtor então prossegue, percorrendo o produto de trabalho e
explicando o material, enquanto os revisores levantam questões
baseadas na sua preparação antecipada.
• Quando problemas ou erros válidos são descobertos, o registrador os
anota.
• No fim da revisão, todos os participantes da FTR devem decidir se:
– Aceitam o produto sem maiores modificações;
– Rejeitam o produto devido a erros graves;
– Aceitam o produto condicionalmente.
• Tomada a decisão, todos os participantes da FTR assinam uma lista
na qual indicam sua participação na revisão e sua concordância com os
resultados da equipe de revisão.
4.2.2 – Validação pelo usuário
• Os testes na fase de projeto que podem ser validados em conjunto
com o usuário, notadamente revisões guiadas por amostras.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
117
• Documentos revisados e Iterações estáveis são os artefatos de
software candidatos nessa atividade.
Sumário
Nesta Unidade temática 4.2 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE Temático 4.3 – Teste no Programa
Introdução
• "Há um mito segundo o qual, se fôssemos realmente bons para
programar, não haveria 'bugs' a ser procurados. Se pudéssemos realmente
nos concentrar, se todos usassem programação estruturada, projeto 'top-
down' , tabelas de decisão, se tivéssemos as balas de prata certas, então
não haveria 'bugs'." Beizer, 1990
• A tarefa de efetuar testes em software foi considerada secundária
por muito tempo.
• Geralmente era vista com um castigo para o programador, ou como
uma tarefa onde não se deveria gastar muito com tempo e
investimentos.
• O tema esteve relegado a segundo plano, e, até alguns anos atrás
não se encontrava muita literatura sobre o assunto.
• O objetivo primordial de qualquer técnica para testes é: MAXIMIZAR
(% defeitos encontrados/número de testes feitos)
• As técnicas que vamos estudar auxiliam principalmente na
minimização do número testes.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
118
• Deve-se deixar claro que testar não é a única maneira de se
detectarem erros.
• As técnicas do tipo "walkthroughs" (revisões estruturadas) quando bem
aplicadas chegam a detectar até 60% dos defeitos existentes.
• 4.3.1 – Depuração
• Antes de continuar deve ficar bem claro que teste e depuração são
conceitos diferentes.
• Objetivos do Teste: Mostrar que o software tem erros.
• Objetivos da Depuração (Debug): Encontrar a causa do erro
detectado no teste, projetar e implementar as modificações no
programa para correção do erro
Ferramentas de Depuração
• De forma geral, linguagens de alto nível tornam a depuração mais
fácil, pois fornecem mais ferramentas para identificar erros, como o
tratamento de exceções.
– Ex: Java, PHP, .Net, etc. Em ambos os casos as IDEs fornecem a
interface para a depuração
• Em linguagens de baixo nível, erros de código podem causar
problemas difíceis de serem identificados, como corrupção de memória.
Nesse caso, depuradores de memória podem ser necessários.
Exercício
Depurar código java para identificarmos onde está ocorrendo a falha
na exibição das respostas esperadas.
• 4. 3.2 – Teste de caixa branca
• Também conhecidos como Testes Estruturais
• Nesta metodologia os casos de teste são gerados tendo-se
conhecimento da estrutura interna (lógica) do programa, bem como os
seus requisitos.
• É executado na fase de implementação do software
• Estudaremos 2 métodos:
– Cobertura Lógica (Critérios Myers)
– Método dos Caminhos Básicos.
Cobertura Lógica (Critérios Myers)
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
119
• Este método é constituído de critérios que, quando obedecidos,
determinam os casos de teste a serem gerados.
• Os critérios vão se tornando cada vez mais abrangentes e rigorosos,
partindo-se:
– Do mais simples, ineficiente e menos rigoroso (Cobertura de
Comandos)
– Até o mais complexo, eficiente e rigoroso (Cobertura de Múltiplas
Condições).
• A escolha do critério adequado será norteada pelos seguintes fatores:
– Complexidade do programa a testar;
– Estrutura do programa a ser testado;
– Criticidade do programa a testar;
– Nível de confiança que se deseja atingir.
Complexidade do programa a testar
• Programas mais simples podem sersatisfeitos pela utilização de
critérios menos rigorosos.
• Muitas vezes a utilização de critérios mais rigorosos em programas
muito simples acaba por onerar excessivamente o processo de testes.
Estrutura do programa a ser testado
• Certas estruturas são mais adequadas a determinados critérios.
• Ex: Programas ricos em comandos, podem ser testados utilizando-se o
critério de cobertura de comandos, programas com decisões complexas
devem ser testados por cobertura de decisões /condições.
Criticidade do programa a testar
• Programas cujo funcionamento não é crítico podem exigir testes menos
rigorosos. Portanto, critérios menos rigorosos podem ser suficientes para
se testar o programa.
Nível de confiança que se deseja atingir
• Se o nível de confiança de bom funcionamento é alto, critérios mais
rigorosos são necessários.
Coberturas
• Comandos
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
120
• Decisões
• Condições
• Decisões-Condições
• Múltiplas Condições
Cobertura de Comandos
• Neste critério os casos de teste devem ser gerados de forma que ao
serem executados, o fluxo do programa passe por todos os
COMANDOS existentes no mesmo.
• 4. 3.3 – Teste de caixa preta
• Conhecido também como Teste Comportamental
• O seu foco principal é testar os requisitos funcionais (Software
entregue, Documentos de especificação, regras de negócio, etc.)
• As técnicas desse tipo de teste permitem derivar série de condições de
entrada que utilizarão completamente todos os requisitos funcionais
para um programa
• O teste Caixa-Preta não é uma alternativa ao Caixa-Branca, porém,
são abordagens complementares.
Possíveis Erros a serem encontrados
• Funções incorretas ou incompletas
• Erros de Interface
• Erro em Estruturas de Dados ou de acesso a bases de dados externas
• Erros de Comportamento ou de Desempenho
• Erros de Inicialização e Termino
Diferentemente do teste Caixa-Branca, que é executado na da fase de
implementação, o teste Caixa-Preta é executado na fase de teste do
projeto.
Métodos
• Partição em Classes de Equivalência
• Método do Grafo de Causa e Efeito
Partição em Classes de Equivalência
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
121
• Esta metodologia é adequada ao teste de valores típicos de entrada
de um programa.
• Os casos de teste são gerados a partir do conhecimento das entradas,
de maneira sistemática e direta.
• A entrada de dados no programa é dividida em classes que serão
testadas a partir de um caso de uso específico. O objetivo dessa
técnica é eliminar os casos de testes redundante.
• Projeto de casos de teste para particionamento de equivalência é
baseado numa avaliação das classes de equivalência para uma
condição de entrada
Etapas da Técnica
1. Identificar as classes de equivalência de Entrada
2. Refinar as classes de Entrada
3. Identificar as classes de Saída
4. Refinar as Classes de Saída
5. Relacionar as Classes de Entrada e de Saída
6. Definir os casos de teste
•4. 3.4 – Teste de ambiente Web
Introdução
• Com o crescimento da Internet e a evolução das tecnologias
envolvidas, as aplicações na WEB também evoluíram.
• Hoje grande parte dos negócios das organizações também estão na
WEB e consequentemente ocorreu um aumento nos números de
aplicações desenvolvidas para este fim.
• O teste de uma aplicação WebApp (aplicações para Web) é um
conjunto de atividades relacionadas com um único objetivo:
• Descobrir erros
• Mas como?
• Para atingir este objetivo deve ser utilizada uma estratégia de teste
que abrange as revisões e o teste executável
• O processo de teste começa focando os aspectos visíveis da aplicação
ao usuário e abrange os aspectos de tecnologia e infraestrutura, neste
caso em sete etapas de teste:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
122
1. No conteúdo,
2. Na função,
3. Na usabilidade,
4. Na navegabilidade,
5. No desempenho,
6. Na capacidade,
7. Na segurança das aplicações e etc.
• A qualidade, segundo Pressman (2011) é incorporada a uma
aplicação Web como consequência de um bom projeto.
• “Não se pode testar a qualidade. Se ela não estiver lá antes de você
começar a testar, não estará lá quando você tiver terminado de testar.”
(Pressman).
• A qualidade é incorporada ao software em todo o processo de
engenharia de software.
Conceito de Teste na Web
• A aplicação adequada de métodos e ferramentas, RTFs e um
gerenciamento e medição sólidos, todos levam à qualidade que é
confirmada durante o teste.
• A qualidade é avaliada aplicando-se uma série de revisões técnicas e
de um processo de teste com o objetivo de examinar uma ou mais das
seguintes dimensões de qualidade:
Dimensões de Qualidade
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
123
• Conteúdo: É avaliado no nível semântico e sintático. No nível sintático
examina-se a ortografia, pontuação e gramática. No nível semântico
são verificadas a exatidão, consistência e ausência de ambiguidade
das informações.
• Função: É testada para descobrir erros que indicam falta de
conformidade com os requisitos do cliente.
• Estrutura: É avaliada para assegurar o fornecimento apropriado do
conteúdo e função da aplicação. Que seja extensível e possa ser
mantida à medida que novo conteúdo ou funcionalidade é adicionado
• Usabilidade: é testada para garantir que cada categoria de usuário
seja suportada pela interface.
• Navegabilidade: É testada para assegurar que toda a sintaxe e
semântica de navegação sejam experimentadas para descobrir
quaisquer erros de navegação.
• Desempenho: É testado sob uma variedade de condições de
operação, configuração e carga para assegurar que o sistema
responda à interação com o usuário e suporte cargas extremas sem
degradação inaceitável de operação.
• Compatibilidade: É testada executando-se a aplicação em uma
variedade de diferentes configurações hospedeiras tanto no lado
cliente quanto no lado servidor.
• Interoperabilidade: É testada para garantir que a aplicação tenha
uma interface adequada com outras aplicações e/ou bases de dados.
Segurança: É testada para investigar vulnerabilidades potenciais e
tentar explorar cada uma delas.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
124
Qualquer tentativa bem-sucedida de invasão é considerada falha de
segurança.
Sumário
Nesta Unidade temática 4.3 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE Temático 4.4 – Teste na implantação do sistema
Introdução
O processo de desenvolvimento de sistemas pode ser visto como uma espiral
com suas etapas movimentando-se para dentro enquanto a estratégia de
teste pode ser vista movimentando-se para fora.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
125
Considerando de um ponto de vista procedimental, o teste no contexto
da Engenharia de Software é uma série de quatro passos, que são
implementados sequencialmente.
Estratégia de Teste
• Os testes iniciais também conhecidos como teste de unidade focalizam
um único componente e aplicam-se para descobrir erros nos dados e nalógica de processamento destes componentes.
• Posteriormente cada componente testado deve ser integrado.
• Neste momento ocorre o teste de integração, cuja preocupação é
verificar problemas associados à construção do programa.
• Após esta fase ocorrem testes de ordem superior, como por exemplo,
o teste de validação com o objetivo de garantir que o software
satisfaz a todos os requisitos informativos, funcionais, comportamentais e
de desempenho.
• A última etapa de teste de ordem superior é o teste de sistema que
verifica se todos os elementos se combinam corretamente e se a
função/desempenho global do sistema é conseguida.
• 4.4.1 – Teste de Unidade
• 4.4.2 – Teste de Integração
• 4.4.3 – Teste de Validação
• 4.4.4 – Teste de Sistema
• 4.4.5 – Teste na Migração
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
126
Sumário
Nesta Unidade temática 4.4 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
UNIDADE Temático 4.5 – Teste de software em sistema em produção
Introdução
• Estudaremos os testes de manutenção (corretiva, perfectiva, adaptativa e
preventiva) que um sistema em produção poderá sofrer.
• É importante ressaltar que estes tipos de testes de software aplicados na
manutenção de sistemas em produção demandam cuidados adicionais,
notadamente quanto à corretitude e ao tempo reduzido para realizar os
testes, depurar os erros e validar os resultados, uma vez que os sistemas são
ativos da empresa e suas interrupções podem causar danos e prejuízos à
empresa.
• Estudaremos também sobre a importância da medida de confiabilidade e
da disponibilidade de um software.
• Veremos que o conceito de confiabilidade se baseia na execução do
sistema em determinada unidade de tempo sem falhas. Enquanto o conceito
de disponibilidade se baseia na oferta do software em determinada unidade
de tempo, considerando-se, proporcionalmente, o tempo útil de uso e o
tempo de reparo de falhas.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
127
Fonte: Pressman, 2006
• A manutenção de software existente pode ser responsável por mais de
70% de todo o esforço despendido por um setor de desenvolvimento de
sistemas.
• A percentagem pode aumentar a medida que mais software é produzido
ou de acordo com o contexto organizacional.
• A mudança é inevitável quando se constroem sistemas baseados em
computador, já que os processos empresariais mudam e se renovam cada
vez mais rápido levando à um ciclo de vida dos produtos cada vez menor.
• Outro fator importante: algumas estatísticas apontam que para cada três
vezes que fazemos uma manutenção, em uma delas adicionamos um erro
por falha nossa.
• Uma das metas principais da Engenharia de Software é a de facilitar a
acomodação das mudanças, reduzir a quantidade de esforço despendido em
manutenção e aumentar a qualidade das tarefas associadas à Manutenção
de Software.
Tipos de Manutenção
• Independentemente do domínio da aplicação, tamanho ou complexidade,
o software continuará a evoluir com o tempo.
• Após seu desenvolvimento um sistema pode ficar operacional, ou seja, em
produção por anos ou até mesmo décadas.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
128
Porém durante este período o próprio sistema ou seu ambiente operacional
podem ser corrigidos, modificados ou completados.
Diferentes causas geram manutenções em um software em produção, e
podem ser classificadas em:
➢ Manutenção Corretiva;
➢ Manutenção Adaptativa;
➢ Manutenção Perfectiva;
➢ Manutenção Preventiva.
• 4.5.1 – Teste de software nos diversos tipos de manutenção
• 4.5.2 – Confiabilidade
Confiabilidade e Disponibilidade
• Com o constante desenvolvimento da TI, os sistemas computacionais
têm sido requisitados em quase todas as áreas da atividade humana.
• Essa crescente dependência em relação ao software tem
conscientizado os usuários, que cada vez mais exigem softwares
confiáveis .
• Por isso o software constitui a parte mais cara para a solução de um
problema que envolve a TI.
• Consequentemente desenvolver um software com qualidade tem
exigido um enorme esforço na atividade de teste.
• Os problemas de confiabilidade e disponibilidade podem quase
sempre ser associados a defeitos de projeto ou de implementação.
• Antes de estudarmos sobre a confiabilidade e disponibilidade de um
software, precisamos compreender o conceito de falha. Segundo
Pressman(2011):
• É a falta de conformidade com os requisitos de software.
• Existem diferentes tipos de falhas que podem ser problemáticas ou
catastróficas.
• Enquanto uma determinada falha pode ser corrigida em segundos,
outras necessitarão de horas ou até mesmo meses para serem
corrigidas.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
129
• É importante considerar também que às vezes a correção de uma
falha pode resultar na introdução de outros erros que resultarão em
outras falhas
• Componentes dos sistemas que estão sujeitos a falhas:
• Hardware: Erros de fabricação;
• Final de sua vida útil.
• Software: Especificação, projeto ou implementação;
• Operadores humanos;
• Falha ao operar o sistema.
• Dimensões da confiança de um software:
• Segundo Sommerville (2003), confiança de um sistema :
• É uma propriedade do sistema que equivale a sua integridade .
• Ou seja, é o grau de confiança dos usuários de que o sistema
operará como eles esperam e não “falhará” em uso normal.
• Existem quatro dimensões principais de confiança:
Fonte: Sommerville, 2003
• 4.5.3 – Disponibilidade
Disponibilidade
• Se baseia na oferta do software em determinada unidade de tempo,
considerando-se, proporcionalmente, o tempo útil de uso e o tempo de
reparo de falhas.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
130
• É a probabilidade de que um programa esteja operando de acordo
com os requisitos em determinado ponto do tempo.
• Se um programa deixar de funcionar repetidamente, pouco importa
se outros fatores de qualidade de software são aceitáveis.
• Confiabilidade é definida como a probabilidade de operação livre
de falhas de um programa de computador num ambiente específico
durante determinado tempo.
• O conceito de confiabilidade de software se baseia na execução do
sistema em determinada unidade de tempo sem falhas.
• A confiabilidade do produto de software é influenciada pelo processo
de software utilizado para desenvolver o produto.
• Um processo orientado no sentido de evitar defeitos poderá
desenvolver um sistema confiável.
Segurança de Software
• Quando o software é usado como parte do controle de Ambientes
Críticos, as falhas tornam-se muito mais difíceis de serem detectadas,
podendo resultar em significativos danos e até perda de vidas.
• É uma atividade que se concentra na identificação e avaliação de
casualidades em potencial que possam exercer um impacto negativo
sobre o software e fazer com que todo o sistema falhe.
• Se as casualidades puderem ser identificadas, é possível especificar
características de projeto que as eliminem ou controlem. Um processo
de modelagem e análise é levado a efeito. Inicialmente, as
casualidades são identificadas e dispostas por categorias, criticidadee
risco.
• Logo que as casualidades são identificadas e analisadas, os requisitos
relacionados à segurança podem ser especificados.
• A especificação pode conter uma lista de eventos indesejáveis e as
respostas desejadas a esses eventos.
Proteção
• A proteção de um sistema é uma avaliação do ponto em que o
sistema protege a si mesmo de ataques externos.
• Erros no desenvolvimento de um sistema podem levar a falhas de
proteção.
• Sem um nível razoável de proteção, a disponibilidade, a
confiabilidade e a segurança do
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
131
sistema poderão ser comprometidas se ataques externos provocarem
algum dano ao sistema.
Medida de Confiabilidade
• Um meio simples de se medir a confiabilidade de um software é
observar o tempo para a ocorrência da próxima falha.
• Métricas que podem ser utilizadas para medir a confiabilidade:
• O tempo médio entre falhas, MTBF (mean time between failure),
representa o tempo esperado para a ocorrência da próxima falha, ou
seja, é o tempo durante o qual o software funciona sem falhas
(Delamare & Maldonado & Jino, 2007).
• É calculado considerando-se a soma de duas medidas:
• MTTF (mean time to failure) – Tempo médio de uso até a falha do
software e
• MTTR (mean time to repair) – Tempo médio de reparo da falha no
software.
MTBF = MTTF + MTTR
• MTBF – tempo médio de ocorrência de falhas ( mean time between
failure )
• MTTF – tempo médio até a ocorrência de falha (mean time to failure )
• MTTR – tempo médio de reparo ( mean time to repair)
• Portanto, quanto maior for o MTBF e o MTTF em relação ao MTTR
mais tempo o sistema ficou operativo.
• Tempo gasto para reparar ou reiniciar o sistema
• A medida de disponibilidade de software considera as medidas MTTF
e MTTR, sendo mais sensível ao MTTR ou seja, tempo de correção da
falha, pois a disponibilidade é obtida através de:
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
132
Disponibilidade = MTTF x 100%
(MTTF + MTTR)
• Quanto mais próximo de 1 for a disponibilidade, mais disponível o
software esteve no período, logo, mais será produtivo.
Sumário
Nesta Unidade temática 4.5 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios para AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Unidade Temático 4.6 – Ferramentas de teste de software
Introdução
• 4.6.1 – Ferramentas de teste no desenvolvimento de sistema
• 4.6.2 – Ferramentas de teste para o programa
• 4.6.3 – Ferramentas de teste para o ambiente Web
• 4.6.4 – Ferramentas de teste para sistemas em produção
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
133
Sumário
Nesta Unidade temática 4.6 estudamos e discutimos fundamentalmente
……
Exercícios de AUTO-AVALIAÇÃO
Perguntas
Respostas: 1A, 2C, 3V…
Exercícios de AUTO-AVALIAÇÃO
1. Qual é a importância dos testes de software?
Descobrir o maior número possível de defeitos do software,
assegurar que o teste atende a todos os requisitos de sistema
estabelecido entre o desenvolvedor e o cliente.
2. Segundo Pressman, o teste de software é um conjunto de atividades
que podem ser planejadas com antecedência e executadas
sistematicamente. Por esta razão deverá ser definido:
a) Uma metodologia de desenvolvimento e um modelo ( template )
para o teste.
b) Um padrão de desenvolvimento e um processo de teste de software.
c) Um cronograma de teste e um padrão de desenvolvimento.
d) Um processo de teste de software e um modelo ( template) para o
teste.
e) Uma metodologia de desenvolvimento e um padrão de
desenvolvimento.
3. Sobre os objetivos de teste de software, considere as afirmativas
abaixo e assinale a alternativa correta:
1. A atividade de teste é o processo de executar um programa
com a intenção de descobrir um erro.
2. A atividade de teste pode comprovar a ausência de erros.
3. Um bom caso de teste é aquele que tem uma elevada
probabilidade de revelar um erro ainda não descoberto
4. Um teste bem- sucedido é aquele que revela um erro não
descoberto.
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
134
a) Somente as afirmativas 3 e 4 são verdadeiras.
b) Somente a afirmativa 3 é verdadeira.
c) As afirmativas 1, 2, 3 e 4 são verdadeiras.
d) Somente as afirmativas 1, 3 e 4 são verdadeiras.
e) Somente as afirmativas 2 e 4 são verdadeiras.
3. Analise o gráfico abaixo e responda a importância das revisões
constantes na produção do software, visando um uso consciente dos
recursos.
Quanto mais tarde os defeitos
são identificados, mais caro se
torna a sua manutenção
4. No processo de teste de software, temos as fases de
Planeamento e Preparação. Explique suas finalidades e
responda por que elas são atividades transversais as demais
fases do processo?
Planeamento: Elaboração e revisão da Estratégia de teste e do
plano de teste;
Preparação: Preparação do ambiente de teste, incluindo
equipamentos, rede, pessoal, software e ferramentas.
Porque todas as fases precisam de planeamento e preparação
para serem executados, tendo a preocupação com a aderência
das atividades ao processo
5. Qual o Objetivo das Revisões Técnicas Formais?
• Descobrir erros na função, na lógica ou na implementação,
para qualquer representação do software;
• Verificar se o software sob revisão satisfaz seus requisitos;
• Garantir que o software tenha sido representado de acordo com
padrões predefinidos;
ISCED Curso de Gestão de Sistema de Informação; 20 Ano Disciplina/Módulo: ADISI
135
• Conseguir software que seja desenvolvido de modo uniforme;
• Tornar os projetos mais administráveis.
Exercícios para AVALIAÇÃO