Escolar Documentos
Profissional Documentos
Cultura Documentos
Stefani Valmini
REQUISITOS DE SOFTWARE 2
SUMÁRIO
Introdução 3 Associações 36
Princípios da Engenharia 4 Diagrama de Classe 38
Fundamentos 5 Abstração 40
Métodos da Engenharia de Software 8 Encapsulamento 40
O que é Requisito: 12 Associações 41
Stakeholder 13 Associações Unárias ou Reflexivas 41
CENTRO UNIVERSITÁRIO UNIFTEC
Artefato 13 Associações Binárias 42 Rua Gustavo Ramos Sehbe n.º 107.
Engenharia de Requisitos 15 Associações Ternárias ou N-árias Caxias do Sul/ RS
42
Etapas da Engenharia de Requisitos 16 Associação de Agregação 42 REITOR
Classificação de Requisitos 21 Associação de Composição 43
Claudino José Meneguzzi Júnior
PRÓ-REITORA ACADÊMICA
Requisito de Qualidade/ Não Funcionais 21 Associação de Generalização 43
Débora Frizzo
PRÓ-REITOR ADMINISTRATIVO
Análise e Negociação de Requisitos 22 Diagrama de Sequência 46 Altair Ruzzarin
DIRETORA DE EDUCAÇÃO A DISTÂNCIA (NEAD)
Qualidade de Software 26 Lígia Futterleib
Elementos do Diagrama de Sequência 48
Modelos de Qualidade 27 Diagrama de Máquinas de Estados 49 Desenvolvido pelo Núcleo de Educação a
CMMI 28 Auto Transições 51 Distância (NEAD)
Designer Instrucional
MPS.BR 29 Barra de União 51 Sabrina Maciel
Diagramação, Ilustração e Alteração de Imagem
UML 32
Diagrama de Atividades 52 Igor Zattera, Gabriel Olmiro de Castilhos
Revisora
Diagrama de Caso de Uso 34 Referências 55 Ana Clara Garcia
REQUISITOS DE SOFTWARE 3
Introdução
PRINCÍPIOS DA
ENGENHARIA
Entenda conceitos básicos da engenharia e
sua importância no processo de criação de
software
Você acha que o software já passou por alguma crise?
Você já se questionou se para “fazer” software precisa de
planejamento ou se é possível sair escrevendo os códigos e
depois tudo funcionar/integrar?
• Caso Federal Aviation Adminis- Ao final do projeto a FAA acabou mostram que houve melhorias nos proje-
tratuin USA (FAA) pagando de 700 a 900 dólares por linha tos de software, porém continuam altos
de código, foram canceladas duas partes os percentuais. É possível concluir com
do projeto. Mesmo assim houve atraso na estes dados que o grande problema é a
entrega e o sistema estava cheio de bugs. falta de planejamento, gerenciamento de
projeto. Para minimizar devemos utilizar
Segundo pesquisas do “CHAOS” as práticas da engenharia.
em 1994, as empresas dos Estados Uni-
dos gastavam 81 milhões de dólares em “O estabelecimento e uso de sólidos
projetos de software que eram cancelados, princípios de engenharia para que
31% dos projetos eram cancelados antes se possa obter economicamente
de serem concluídos.
um software que seja confiável e
Mais da metade dos projetos exce- que funcione eficientemente em
diam mais do que 50% a sua estimativa máquinas reais” (BAUER, Fritz 1969)
de custo e somente 9% eram entregues no
tempo e dentro do orçamento, em grandes
Um projeto de um novo sistema de empresas.
tráfego aéreo chamado AAS. Era um pro-
grama arrojado, com milhões de linhas Em 2012, o mesmo relatório atuali-
de código distribuidas entre centenas de zado mostra uma evolução de planejamen-
computadores funcionando em tempo real, to. A porcentagem de projetos entregues
feita pela IBM. dentro do prazo, custo e especificações
subiu para 39%. O índice de projetos que
O custo estimado era de 500 dólares ultrapassam o orçamento e prazo ficou
por linha de código, cinco vezes mais cara em 43%. E houve uma redução dos proje-
que a média do mercado na época. tos cancelados antes de serem concluídos,
ficando em 18%. WEstas pesquisas nos
REQUISITOS DE SOFTWARE 7
Mas como fazer isso? Existem métodos que funcionam como uma receita de Desta forma, percebam que não é
bolo e se seguidos podem ajudar a construir projetos melhores dentro do tripé custo, simplesmente especificar, projetar e manter
prazo e qualidade. São eles: o código fonte, mas sim todos os artefatos
gerados no processo do desenvolvimento,
como a modelagem do sistema, manuais,
documentos em geral.
• Modelo Cascata
a fabricação. Caso os requisitos mudem pode ocorrer que todo o projeto tenha que Projeto - Nesta fase são detalhadas
ser refeito e as partes fabricadas descartadas. Outro ponto negativo é a demora da as partes que compõe o projeto.
entrega do produto e também o fato de que raramente os projetos seguem o fluxo
sequencial como proposto. Fabricação - É onde o projeto é
implementado de fato.
Modelo em V
As fases de um ciclo de vida dos modelos clássicos são:
Planejamento - É o início do projeto. Nesta fase são estabelecidos os Neste modelo temos as etapas muito
parecidas com o modelo anterior, porém
objetivos do projeto, em linhas gerais. para cada etapa da horizontal há uma veri-
ficação. Desta forma os problemas encon-
Requisitos - Nesta fase são especificados os requisitos técnicos do projeto. trados em cada etapa já são identificados
REQUISITOS DE SOFTWARE 10
Neste modelo são obtidos os requisi- próxima com o cliente, definindo de forma • Maximização na qualidade do sof-
tos e a partir deles é feito um projeto rápido imediata as especificações do sistema. tware desenvolvido;
e a construção do protótipo. O usuário
Início
avalia este protótipo, que pode ser ou não • Software final mais adequado às
funcional e através dessa avaliação o pro- necessidades do usuário.
duto de fato é construído. A prototipação Fim
poderá ser implementada de três maneiras Obtenção dos
requisitos Métodos Ágeis – SCRUM
diferentes:
Construção Projeto
• Protótipo baseado em papel ou do produto O SCRUM é um método ágil, ou
rápido
em computador pessoal com a intenção seja, um processo que foi criado para aten-
de exibir a interface a ser desenvolvida e Refinamento Construção der a flexibilidade e agilidade dos nossos
permitir a rápida identificação dos requi- do protótipo protótipo dias atuais.
sitos do sistema.
Avaliação do Nele temos uma lista de tarefas, que
• Protótipo criado para implemen- protótipo precisam encaixar no intervalo definido
tação de alguma rotina a fim de testar do Sprint (período de tempo ), que deve
requisitos específicos a serem agregado ser de 2 a 4 semanas. Em métodos ágeis
FIGURA – Ciclo de vida da prototipação (PRESSMAN, 2011)
ao sistema. a documentação é somente a extritamente
As principais vantagens da proto- necessária, desta forma, exige maior inte-
• Programa já existente dentro do tipação são: ração das equipes. Por este motivo, neste
sistema com a possibilidade de ser melho- método são feitas reuniões diárias para
rado a fim de justificar o custo do desen- • Menor prazo para o sistema entrar que o time saiba o que está sendo feito e
volvimento da solução específica. em produção; quais são as dificuldades.
O ciclo de vida da prototipação é • Acompanhamento do usuário nas Ao final das 2 ou 4 semanas é ne-
diferente de um projeto de engenharia, fases do desenvolvimento minimizando cessário que seja entregue um produto
e ocorre através de uma interação mais possíveis erros; funcional finalizado para o cliente.
REQUISITOS DE SOFTWARE 12
Já viram aquela imagem famosa das árvores? Ela mostra exatamente o que
acontece com um software que não tem os requisitos identificados corretamente.
O que é Requisito:
Stakeholder
Artefato
ENGENHARIA DE
REQUISITOS
Entenda conceitos da engenharia de
requisitos e sua importância no software
REQUISITOS DE SOFTWARE 16
Depois de feita a etnografia é pre- Etapa 1: utilização da abordagem de brainstorming, ou similar, para identificar
ciso documentar todas as descobertas e os serviços em potencial.
consolidar o resultado, revendo-os com
as pessoas observadas e seus respectivos Exemplo: cliente do banco, cliente do banco conveniado, funcionários do banco,
gestores. gerente, serviços prestados.
Pontos de Vista Etapa 2: agrupamento dos pontos de vista relacionados criando uma hierarquia.
Funcionários
Cliente
Esta técnica busca identificar os di- (interação)
do banco
(indireto)
ferentes pontos de vista, para estruturar e
organizar os requisitos. Por exemplo:
Cliente Cliente de Gerente de Engenheiro
do banco banco contar de Software
O sistema de um caixa eletrônico conveniado
Etapa 3: refinamento das descrições Análise de Documentação JAD (Joint Application Design)
dos pontos de vista e serviços.
Identificar documentos, relatórios Técnica para promover cooperação,
Etapa 4: mapear o sistema, identi- impressos ou digitais utilizados pelos usu- entendimento e trabalho em grupo entre
ficar os objetos (no caso de Programação ários em suas tarefas. Após identifica-los os desenvolvedores. Seus princípios são:
Orientada a Objetos), utilizando o encap- com nome e cenário em que é utilizado,
sulamento nos serviços. detalhar as informações e periodicidade 1. Dinâmica de grupo: reuniões para
da utilização. despertar a força e criatividade.
Casos de Uso/Cenários
Técnica utilizada quando já existe 2. Uso de técnicas visuais: aumentar
Análise de situações reais, focando um sistema informatizado na empresa. comunicação e entendimento.
nas atividades que as pessoas realizam. Consiste em ler/analisar interfaces, fun-
Inclui: cionalidades, incluindo se possível código 3. Manutenção do processo organi-
e estrutura do banco de dados. zado e racional, análise top-down
• Descrição da situação inicial; e atividades bem definidas.
Neste cenário é muito importante
• Descrição do f luxo normal de identificar principalmente o que NÃO 4. Utilização de documentação padrão,
eventos; DEVEMOS FAZER. Afinal, se o cliente garantindo a qualidade do projeto.
está trocando de sistema, é por que não
• Descrição do que pode dar errado; está satisfeito com o mesmo. As etapas dessa técnica são o Plane-
jamento, fase de elicitação e especificação
• Informação sobre outras atividades de requisitos. E de Projeto, fase do projeto
concorrentes; de software.
• Mock-up: protótipo em tamanho Os requisitos de qualidade são classificados também como requisitos não fun-
real do produto com possibilidade de in- cionais. Eles expressam como deve ser feito. Normalmente estão relacionados aos
teração do usário. requisitos funcionais dando suporte a eles.
REQUISITOS DE SOFTWARE 22
As restrições não são implementadas, são cumpridas. Por exemplo, o sistema 2. Requisitos tem relevância legal, ou
deverá ser totalmente web, ou o sistema deverá ser lançado até o segundo semestre, etc. seja, são legalmente vinculantes para
Dicas para extração de Requisitos Funcionais o contratante e o contratado. Poden-
• O sistema deve... (realizar cadastro, gerar relatório, etc.) do até mover um processo contra o
• O processo de negócio consiste em... contratado em caso de não cum-
• O tratamento dessas informações é realizado da seguinte forma.... primento.
• Quais informações não podem faltar...
REQUISITOS DE SOFTWARE 23
3. Documentos de requisitos são com- Nesta forma o requisito é documentado PROPÓSITO DO DOCUMENTO DE REQUISITOS
plexos, possuem interdependências de forma mais compacta, o que facilita a ESCOPO DO PRODUTO
DEFINIÇÕES, ACRÔNIMOS E ABREVIAÇÕES
em múltiplos níveis, que sem a do- compreensão, diminui a ambiguidade, e REFERÊNCIAS
cumentação adequada, manter a si- tem maior grau de formalidade. INTRODUÇÃO VISÃO GERAL DO RESTANTE DO DOCUMENTO
todas as partes envolvidas. Com guagem natural e dos modelos conceituais, SUPOSIÇÕES E DEPENDÊNCIAS
GERAL
o passar do desenvolvimento do assim é possível aproveitar as vantagens de
projeto tanto o conteúdo, quanto ambos e diminuir as desvantagens.
REQUISITOS DE INTERFACES EXTERNAS
o pessoal pode mudar, por isso os REQUISITOS FUNCIONAIS
veis para qualquer membro acessar guagem utilizada, a documentação precisa REQUISITOS ATRIBUTOS DO SISTEMA
OUTROS REQUISITOS
Gerência de Escopo
Gerência de Mudanças
QUALIDADE DE
SOFTWARE
O que é qualidade para você?
“Propriedade específica. Condição natural
de um ser vivo ou inaminado. Dote; Atributo;
predicado“ (LUFT, 1991, p. 512).
Ao ler o conceito mais recente de qualidade fica explícito
que qualidade é essencial e não é apenas mais um diferencial
nas empresas.
requisitos de qualidade, as medições, mo- sua maturidade e capacidade por área de Agrupamento de práticas relaciona-
delos, além de como deve ser feita a gestão processo, como priorizar as melhorias e das a determinado contexto que, quando
da qualidade e como avaliar tudo isso. como implementá-las. executadas de forma coletiva, atingem um
nível de maturidade.
Para entendermos este modelo pre-
cisamos primeiro ver alguns conceitos bá-
sicos.
• Nível de Maturidade
para avaliar a maturidade da organização se aumente a maturidade no processo de Processos são caracterizados por pro-
com relação a engenharia de software. software. jeto e as ações são frequentementes
MPS.BR C. Definido
D. Largamente Definido
O MPS.BR - Melhoria de Proces-
E. Parcialmente Definido
so do Software Brasileiro nasceu de um
projeto que uniu universidades, grupos de F. Gerenciado
pesquisa e empresas, sob a coordenação
G. Parcialmente Gerenciado
da SOFTEX (Associação para Promoção
da Excelência do Software Brasileiro) em
dezembro de 2003.
A. Em Otimização
B. Gerenciado Quantitativamente
REQUISITOS DE SOFTWARE 30
UML
Nos primórdios do software o cenário
era o seguinte: cada grupo ou organização
desenvolvia seu sistema e criava sua própria
maneira de documentar/modelar o software.
Foi aí que percebeu-se a necessidade de um padrão
para a modelagem de sistemas, que fosse aceito e utilizado
amplamente.
Com o uso da UML podemos iden- Eles permitem visualizar, especificar e documentar o comportamento dos
tificar diversas visões diferentes do projeto, elementos.
como por exemplo, visão de projeto, de
implementação, de caso, de uso, etc. É uma descrição de um conjunto de sequências de ações que um sistema pode
produzir um resultado de valor observável pelo ATOR. A descrição do caso de uso
Conforme mostrada na imagem é feita através de CENÁRIOS.
cada diagrama da UML será importante
para compreender os comportamentos e
estrutura do projeto.
CLIENTE
Gerente
CADASTRAR
Gerar relatório Gerar relatório
financeiro gerencial
No exemplo abaixo interpretamos da seguinte forma: 3. Para cada ator, identifique os objetivos do usuário, ele-
vando até o nível mais alto do objetivo; Diferencie atores
• O vendedor pode tirar pedidos, mas obrigatoriamente principais e secundários.
ele deverá verificar os pagamentos atrasados. Se quiser, pode
REQUISITOS DE SOFTWARE 38
4. Defina casos de uso que satisfaçam aos objetivos do usuário, nomeando-os de Diagrama de Classe
acordo com os objetivos.
No final da década de 80 houve o
amadurecimento da Orientação a Objeto,
fronteira do sistema ProxGear comunicação
que é utilizado até hoje, e assim surgiu a
notação AOO, Análise Orientada a Objetos.
alternativa
Processar para um ator
Venda que é um sistema A Análise Orientada a Objetos se
de computador baseia em conceitos simples que o homem
serviço de
Caixa Tratar Autorização adquire desde a infância, como objetos e
Devoluções de Pagamento atributos, classes e membros, todo e partes
<<ator>> do todo.
ator Processar Calculador de
Aluguel Impostos
O sistema é uma coletânea de ob-
<<ator>> jetos que irão interagir entre si, com suas
Abrir Sistema de características, os atributos e operações.
Contabilidade
<<ator>>
Sistema
Atividade de Analisar <<ator>>
Vendas Atividade Sistema RH
Gerenciar
Segurança
Administrador Administrar
Usuários casos de uso
de Sistema
...
REQUISITOS DE SOFTWARE 39
Exemplo de uma classe, com atri- Atributos: as variáveis, caracterís- software, que representam instâncias de
butos e métodos: ticas entidades do mundo real. É geralmente
identificado por um substantivo.
Abstração Encapsulamento
Uma classe abstrata é desenvolvida para representar entidades e conceitos abs- O encapsulamento protege os dados
tratos. A classe abstrata é sempre uma superclasse que não possui instâncias. do acesso descontrolado, sendo possível
o acesso somente através de mensagens
Cada uma das classes derivadas, completa a funcionalidade da classe abstrata (execução das operações) trocadas entre
adicionando um comportamento específico. os objetos;
– Privados (private): Visível somente dentro da
própria classe, representado pelo sinal de menos;
+ Públicos (public): Visível por qualquer outra
classe, representado pelo sinal de mais;
# Protegido (protected): Visível dentro da própria
classe e classes filhas, representado pelo sinal de
sustenido.
EMPREGADO
NOME: string
ENDEREÇO: string
DATA_NASC: date
CPF: string
SALARIO: float
+Contratar()
+Demitir()
#Alterar_dados
REQUISITOS DE SOFTWARE 41
A comunicação entre os objetos das classes ocorre pela troca de mensagens. São os casos onde a classe se rela-
Um objeto solicita informações de outro objeto para realizar suas funções. ciona com ela mesma, por exemplo, uma
classe Funcionário, quem irá chefiar os
As mensagens são execuções de operações, que podem ou não enviar parâmetros funcionários também é um funcionário
para outro objeto, assim como podem receber ou não parâmetros. e a representação fica da seguinte forma:
A ligação mais comum é a ligação binária, entre duas classes. A agregação é utilizada para repre-
sentar a relação do “todo” composto por
“partes”. Objetos “partes” podem ser com-
partilhados por mais de um objeto “todo”.
Ações ternárias entre três classes, ou as N-árias que são associações entre várias
classes.
REQUISITOS DE SOFTWARE 43
Associação de Composição
Associação de Generalização
• Um objeto e outro objeto, onde um Eliminando um objeto: Fragmentos: Servem para separar
objeto transmite uma mensagem para ou- blocos de mensagens.
tro solicitando a execução de um método;
Auto-Chamadas:
A um objeto já existente:
Fragmentos Combinados
Dicas importantes:
Estado
• Indica o final da modelagem de estados de um elemento; Não mudam o estado do objeto. São representadas dentro
do estado e podem ser:
• É representado por um círculo não-preenchido envol-
vendo um segundo círculo preenchido. • Entry: atividade executada quando o objeto assume um
estado (entra em um estado);
Pseudoestado de Escolha
REQUISITOS DE SOFTWARE 52
Ou em casos que poderão ser executados estados em paralelo Uma atividade é composta por um
conjunto de passos necessários (ações) para
que a atividade seja concluída;
• Nó de Ação
• Fluxo de Controle
Diagrama de Atividades
• Nó Inicial • Nó de Objeto
• Nó Final
Exemplo:
• Nó de Decisão
• Nó de Bifurcação/União
Questões
1) Diferencie associação por Agregação e Composição.
2) Onde você trabalha utilizam algum dos Diagramas? Quais?
3) Se você fizesse um projeto de software para o mercado quais
dos diagramas iria utilizar?
4) Expliquei o que é a UML.
REQUISITOS DE SOFTWARE 55
REFERÊNCIAS
Sommerville, Ian. Engenharia de Software. 8a edição. São Paulo. Pearson Addison-Wesley. 2007. (Também disponível na biblioteca virtual da
Pearson).
PRESSMAN, Roger S. Engenharia de Software: uma abordagem prática. 7 ed. São Paulo: Makron Books, 2011.
MACHADO, Felipe Nery. Análise e Gestão de Requisitos de Software: onde nascem os sistemas.1 ed. Érica, 2011.
Luft, Celso Pedro. Minidicionário Luft / colaboradores Francisco de Assis Barbosa, Manuel da Cunha Pereira. São Paulo: Ática, 2000;
Sacconi, Luiz Antônio. Minidicionário Sacconi da Língua Portuguesa. 11, Ed. São Paulo: Nova Geração, 2009;
Guedes, Gilleanes T.A. UML 2 Uma abordagem prática. -- 2. ed. -- São Paulo: Novatec Editora, 2011.
Pohl, Klaus. Rupp, Chris. Fundamentos da Engenharia de Requisitos: Um guia de estudo para o exame CPRE-FL. – , T&M e IBQTS – IREB.
STANDISH Group, The Standish Group Chaos Report, 1995, disponível em http://www.projectsmart.co.uk/docs/chaos_report
Larman, Craig. Utilizando UML e padrões – Uma introdução à análise e projeto orientado a objetos e ao processo unificado. 2ª edição. Porto
Alegre. Bookman, 2004.
Koscianski, André; Soares, Michel dos Santos. Qualidade de software: aprenda as metodologias e técnicas mais modernas para o desenvolvimento
de software. São Paulo. Novatec, 2007.
Wazlawick, Raul S. Análise e Projeto de Sistemas de Informação Orientado a Objetos. 1ª edição. São Paulo. Editora Campus, 2004.