Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Foco na qualidade
a. É a pedra fundamental que sustenta a ES
2. Processo
a. Sequência de atividades para o desenvolvimento de software,
de forma racional e dentro do prazo e outras restrições
b. Inclui atividades de apoio, como gerenciamento de projetos
3. Métodos
a. Fornecem informações técnicas para desenvolver o software
b. Inclui comunicação, análise de requisitos, modelagem de
projeto, construção de programa, testes e suporte
4. Ferramentas
a. Suporte para a qualidade, o processo e os métodos
b. Quando integradas, tem-se um sistema de suporte ao
desenvolvimento de software, chamado engenharia de
software com auxílio de computador (Computer-Aided
Software Engineering - CASE)
Processo de Software
Conjunto de atividades, ações e tarefas
realizadas na criação de software, onde:
● atividade é voltada para atingir um objetivo
amplo, usada independentemente do campo
de aplicação, do tamanho do projeto, da
complexidade de esforços ou rigor na
aplicação da ES
● ação é o conjunto de tarefas que resultam
em artefato
● tarefa tem objetivo restrito e bem definido,
produzindo um resultado tangível
Aplicação do Processo de Software
● Deve ter uma abordagem flexível que permite a
escolha de ações e tarefas apropriadas
● Considera o problema, o projeto, a equipe e a
cultura organizacional com a intenção de
entregar o software no prazo e com a qualidade
que satisfaçam àqueles que o patrocinaram e aos
que o usarão
● “Se os modelos prescritivos forem aplicados de
forma dogmática e sem adaptações, poderão
aumentar a burocracia associada ao
desenvolvimento de sistemas e... criarão
dificuldades para todos os envolvidos.”
Metodologia de Processo
Framework é o alicerce para um processo de ES
completo, por meio de:
● identificação de atividades estruturais
aplicáveis aos projetos de software,
independente de tamanho e complexidade
● conjunto de atividades de apoio para todo o
processo de software
● implementação de atividades metodológicas,
em todo processo de software
Atividades Metodológicas
Atividades da metodologia de processo de ES:
1. Comunicação: envolve comunicar-se e colaborar com os
interessados - clientes, usuários, gerentes do sistema e
outros, como reguladores que certificam a aceitabilidade
2. Planejamento: o Plano de Projeto de Software define o
trabalho de ES, descrevendo tarefas técnicas, riscos
prováveis, recursos necessários, produtos a serem
produzidos e cronograma
3. Modelagem: esboço do sistema para melhor entender as
necessidades do software e o projeto que irá atender a tal
demanda
4. Construção: combina geração de código, manual ou
automatizada, e testes para revelar erros na codificação
5. Implantação (emprego): entrega do software ao cliente,
que o avalia e fornece feedback dessa avaliação
Atividades de Apoio
Complemento do processo de ES, as quais são
aplicadas ao longo de um projeto, sendo:
1. Controle e acompanhamento do projeto: possibilita a
avaliação do progresso em relação ao Plano, tomando
medidas para cumprir o cronograma
2. Administração de riscos: avalia o que pode afetar o
resultado ou a qualidade do projeto e do produto
3. Garantia da qualidade de software: atividades que
garantem a qualidade do software
4. Revisões técnicas (testes): avaliação de artefatos da
ES, tentando eliminar a propagação de erros nas demais
atividades
Atividades de Apoio
Atividade de apoio mais adotadas (cont.):
5. Medição: define e coleta medidas do processo, do
projeto e do produto, auxiliando na entrega do software
de acordo com os requisitos;
6. Gerenciamento de configuração de software: trata
dos efeitos das mudanças ao longo do processo;
7. Gerenciamento da reusabilidade: define critérios para
reuso de artefatos, inclusive componentes de software, e
estabelece como ocorre a obtenção destes;
8. Preparo e produção de artefatos de software: criação
de artefatos como modelos, documentos, formulários,
etc.
Atuação na Engenharia de Software
● Atividades da metodologia e de apoio estabelecem
um esquema para a atuação do engenheiro de
software
● A essência da prática para solução de problemas é:
a. Compreender o problema (comunicação e
análise)
b. Planejar uma solução (modelagem e projeto de
software)
c. Executar o plano (geração de código -
construção)
d. Examinar o resultado para ter precisão (testes -
construção - e garantia da qualidade de
software)
ES1: Exercício 1 (fórum no Nead)
1. O que você entendeu por sistema de software?
2. Como definir a ES? Qual a sua importância?
3. Qual a relação entre a crise do software e a origem da ES?
4. Quais características são peculiaridades da ES, considerando
áreas correlatas da informática?
5. Para você que contribuição a ES pode dar às demais áreas
correlatas da informática?
6. Quais são as camadas da ES, explicando qual a relação entre
duas destas?
7. Com relação a atuação do engenheiro de software, que
desafios lhe chamou a atenção?
8. Qual princípio ético cada um pode destacar, explicando
porque é um destaque para você?
9. Que questão cada um pode levantar para o debate sobre:
a. Processo de software?
b. Metodologia de processo?
Modelos de Processo de Software
● Forma como as atividades, ações e tarefas
necessárias para o desenvolvimento de software,
com boa qualidade, são relacionadas com o
processo e umas com as outras, considerando o
prazo estabelecido
● Todos os modelos aplicam as atividades
metodológicas, com diferenças na ênfase e no
fluxo de processo que as invoca
● Fluxo de processo
○ Define como são organizadas as atividades
metodológicas, com as ações e tarefas de
cada uma, em relação à sequência e ao
tempo
Fluxos de Processo de Software
1. Fluxo de processo linear: cada atividade
metodológica é executada em sequência
2. Fluxo de processo iterativo: uma ou mais
atividades são repetidas antes de
prosseguir, sendo então aplicadas repetidas
vezes, em que cada iteração produzirá um
incremento de software, disponibilizando
recursos e funcionalidades
Fluxos de Processo de Software (cont.)
3. Fluxo de processo
evolucionário: executa
as atividades de forma
circular, onde cada volta
produz uma versão
mais completa
4. Fluxo de processo
paralelo: uma ou mais
atividades são
executadas
simultaneamente com
outras atividades
Modelo de Processo Prescritivo
1. Modelo em cascata: sugere uma abordagem sequencial
(linear) para o desenvolvimento do SW, sendo aplicado
em situações de adaptações ou aperfeiçoamentos bem
definidos em sistema existente. Problemas:
a. Projetos raramente seguem o fluxo sequencial
b. É difícil o cliente explicitar todas as suas necessidades
c. O cliente deverá esperar uma versão operacional
próximo do final do projeto
Modelo de Processo Prescritivo (cont.)
2. Desenvolvimento incremental: combina os fluxos de
processos linear e paralelos, de forma escalonada, onde
cada sequência linear gera incrementais do SW. Usado
quando há necessidade de fornecimento de
funcionalidade aos usuários, para somente após isso,
refiná-la e expandi-la em versões posteriores
● O primeiro incremento é
um produto essencial,
atendendo os requisitos
básicos
● Com resultado do seu
uso, é planejado o
incremento seguinte, que
considera a sua melhoria
e a entrega de
funcionalidades adicionais
Modelo de Processo Prescritivo (cont.)
3. Processo evolucionário: são modelos iterativos,
possibilitando desenvolver versões cada vez mais
completas do SW. Podem ser:
a. Prototipação: pode ser usada como técnica
implementada em qualquer modelo. É usada quando
os requisitos estão obscuros, permitindo aos
interessados compreender melhor a solução
● Na comunicação, define-se os objetivos
gerais do SW, identificando os
requisitos já conhecidos e as áreas
envolvidas na ampliação de suas
definições
● Uma iteração de prototipação é
planejada e ocorre a modelagem, na
forma de projeto rápido, que se
concentra no que é visível aos usuários
Modelo de Processo Prescritivo (cont.)
3. Processo evolucionário (cont.):
b. Modelo espiral: combina a prototipação (iterativa) com
aspectos do modelo em cascata, fornecendo potencial
para o desenvolvimento rápido de versões cada vez
mais completas do SW. A 1ª versão é um protótipo, mas
nas iterações posteriores são incrementados o grau de
definição e implementação de um sistema, enquanto
diminui o seu grau de risco
● Pontos âncora de controle
são indicados a cada
passagem evolucionária
● O 1º circuito pode resultar na
especificação de produto,
depois no desenvolvimento
de protótipo e de versões
melhores
Processo Unificado
É um exemplo de processo híbrido, reunindo elementos
gerais de modelos de processo, dirigido a casos de uso,
centrado na arquitetura, com apoio na iteração
(prototipação) e na entrega incremental. Tem as seguintes
fases:
1. Concepção: envolve a comunicação e o planejamento,
descrevendo requisitos de negócio demandados por
entidades externas (usuários e sistemas);
2. Elaboração: envolve a comunicação, planejamento e a
modelagem, desenvolvendo uma compreensão do
problema, um modelo de arquitetura para o sistema e o
plano do projeto;
3. Construção: desenvolve ou adquire componentes de
SW, onde as partes do sistema são desenvolvidas em
paralelo e integradas
Processo Unificado (cont.)
4. Transição: engloba a construção (entrega) e a
implementação (realimentação ou feedback), onde sistema
é usado, em versão beta, no ambiente real, tendo como
objetivo ajustar o seu funcionamento e sua documentação;
5. Produção: é a atividade de implantação (emprego) quanto
à monitoração do uso do SW, disponibilizando suporte para
o ambiente operacional. Também são elaborados e
avaliados relatórios de defeitos e solicitações de mudanças.
Disciplinas do Processo Unificado
Workflow Descrição
Modelagem de negócios Os processos de negócio são modelados por meio de casos de uso
Gerenciamento de
Workflow de apoio que gerencia as mudanças do sistema
configuração e mudanças
Especificação
Descreve os serviços fornecidos ao usuário e os RNF, incluindo as
de requisitos
normas de produto e processos que devem ser seguidas
de usuários
Especificação
Descreve em detalhes os requisitos funcionais e não funcionais,
de requisitos
podendo-se, caso necessário, definir interfaces com outros sistemas
de sistema
Processamento de
Entrada simples de Ocupa mais espaço de tela. Causa
Preenchimento controle
dados. Fácil de problemas onde opções de usuário
de formulário de estoque e
aprender. não se encaixam nos campos do
Empréstimo
Verificável formulário
pessoal
Sistemas operacionais
Linguagem Difícil de aprender. Gerenciamento
e Sistemas de Poderosa e flexível
de comando fraco de erros
comando e controle
Partes de tempo de
Programa de teste no ambiente-alvo, em sistemas de tempo real
resposta crítico
Protótipo de Requisitos
● É um protótipo visual de baixa fidelidade, com o objetivo
de explorar aspectos críticos dos requisitos de um SW,
simulando um subconjunto da sua funcionalidade
● Não representam fielmente as interfaces reais de usuário,
desde que sejam funcionalmente equivalentes
● Na confecção deve ser evitado o uso de ambientes de
desenvolvimento ou mesmo ferramentas avançadas de
desenho, devendo ser rápida, simples e independente da
tecnologia que será adotada na solução
● Os leiautes devem ser descritos em nível de detalhe
suficiente para o cliente possa aprová-los ou não, mas
sem focar nos aspectos de usabilidade
● Os campos e comandos incluídos em cada interface de
usuário devem ser suficientes para representar requisitos
de captura e exibição de informação, podendo depois ser
substituídos por soluções funcionalmente equivalentes
Protótipo de Requisitos: Exemplos
ConectaIF
● Informações
● Credenciamento
● Oficinas do Qualific Express
● Programação
● Incluído como item da 2ª avaliação
Validação de Requisitos
● Cada requisito e o modelo de análise como um todo deve
ser validado em relação às necessidades do cliente
para garantir a construção do sistema mais apropriado
● Validação de requisitos é o processo em que é verificado
se os requisitos definem o sistema que o cliente
realmente necessita
● A medida que cada elemento do modelo de requisito é
criado, deve ser examinado quanto a inconsistência,
omissões e ambiguidades
● Os requisitos são priorizados pelos interessados e
agrupados em pacotes, que poderão ser implementados
como incrementos de SW
● É importante porque erros em um documento de
requisitos geram custos maiores de retrabalho quando
descobertos durante a construção ou implementação do
SW
Validação de Requisitos: Tipos
1. Verificações de validade: um interessado pode pensar em
determinadas funções de sistema, mas uma análise
aprofundada pode indicar funções adicionais ou diferentes
2. Verificações de consistência: requisitos não devem entrar
em conflito, garantindo que não haja restrições contraditórias
ou descrições diferentes da mesma função
3. Verificações de completude: o documento deve incluir
requisitos que definam todas as funções e restrições
pretendidas pelos interessados do sistema
4. Verificações de realismo: assegura que os requisitos podem
ser implementados, considerando o conhecimento das
tecnologias existentes, o orçamento e o cronograma para o
desenvolvimento do sistema
5. Verificabilidade: requisitos devem ser passíveis de
verificação, permitindo escrever um conjunto de testes que o
demonstrem o atendimento de cada um no SW entregue
Validação de Requisitos: Técnicas
1. Revisões de requisitos: os requisitos são analisados
sistematicamente por uma equipe de revisores que
verifica erros e inconsistência
2. Prototipação: um protótipo do sistema em questão é
demonstrado aos usuários finais e clientes, que podem
experimentá-lo para verificar se atende as suas reais
necessidades
3. Geração de casos de testes: se os testes forem
concebidos como parte do processo de validação,
frequentemente revelam problemas de requisitos. Se é
difícil projetar um teste, isso normalmente significa que
os requisitos serão difíceis de serem implementados e
devem ser reconsiderados. O desenvolvimento de
testes a partir dos requisitos antes de qualquer código
ser escrito é parte integrante do Extreme Programming
Validação de Requisitos: Questões
As respostas a estas perguntas servem para garantir que o
modelo de requisitos reflita de maneira precisa as
necessidades dos interessados e forneça base sólida para o
projeto:
1. Para cada um dos requisitos, a validação deve tratar
destas questões:
a. está consistente com os objetivos globais do sistema?
b. é bem delimitado e sem ambiguidades?
c. possui atribuição? Ou seja, uma fonte, em geral um
indivíduo, é indicada para cada um?
d. é atingível no ambiente que irá abrigar o sistema?
e. uma vez implementado, ele pode ser testado?
f. é realmente necessário ou representa um recurso
adicional que pode não ser essencial para o objetivo
do sistema?
Validação de Requisitos: Questões
2. Todos os requisitos foram especificados no nível de
abstração adequado? Ou algum deles fornece um
nível de detalhe inapropriado no atual estágio?
3. Algum dos requisitos conflita com outros?
4. O modelo de requisitos reflete a informação, função e
comportamento do sistema a ser construído?
5. O modelo de requisitos foi dividido para expor
progressivamente informações mais detalhadas
sobre o SW?
6. Os padrões de requisitos foram utilizados para
simplificar o modelo de requisitos? Todos os padrões
foram validados? Todos os padrões são consistentes
com os requisitos do cliente?
Negociação de Requisitos
● É comum haver negociação da ER com um ou mais
interessados, a fim de contrabalançar funcionalidade,
desempenho e outras características do sistema, em
função de custo e prazo de entrega
● À medida que os requisitos são identificados e o modelo de
análise é criado, a equipe de SW e os interessados no
projeto negociam a prioridade, disponibilidade e o
custo relativo de cada requisito
● Com a negociação é desenvolvido um plano de projeto
que, ao mesmo tempo, atenda as necessidades dos
interessados e reflita as restrições impostas à equipe de
SW, como tempo, pessoal, orçamento
● Boas negociações buscam um resultado “ganha-ganha”,
onde os interessados ganham com um sistema que atenda
a maioria das suas necessidades e a equipe de SW ganha
por trabalhar com prazos e orçamentos reais e exequíveis
Negociação de Requisitos: Tarefas
● É uma ação da atividade de comunicação da ES e uma
etapa da ER, desenvolvida em tarefas que permitem
aumentar a estabilidade da equipe de SW
● O êxito nas seguintes tarefas permite um resultado em
que todos saem ganhando, o que é um critério-chave
para o prosseguimento das demais atividades da ES:
1. Identificação dos principais interessados no
sistema
2. Determinação das “condições de ganho” dos
interessados
3. Negociação das condições de ganho para
harmonizá-las em um conjunto de situações
“ganha-ganha” para todos os envolvidos, o que inclui a
equipe de SW
Arte da Negociação: Diretrizes
1. Reconhecer que não se trata de uma competição,
onde todas as partes precisam ceder para que atinjam
algum objetivo e sintam que ganharam
2. Planejar uma estratégia, na qual se define:
a. o que precisa ser atingido por si e pelos demais e
b. como fazer para que isso ocorra
3. Ouvir ativamente, esperando para formular sua opinião
apenas quando estiver ouvido as outras partes
4. Concentrar-se nos interesses das partes, não
assumindo posições rígidas para evitar conflitos
5. Não deixar a negociação ir para o lado pessoal,
devendo-se concentrar no problema a ser resolvido
6. Ser criativo, não tendo medo de inovar em situações de
impasse
7. Estar preparado para comprometer-se, pois uma vez
que o acordo tenha sido feito, deve-se levá-lo a diante
Ferramentas de Apoio à ER
Auxiliam no desenvolvimento de casos de uso:
● Objects by Design: lista de ferramentas UML
● OSRMT: Open Source Requirements Management Tool
● Pencil, Mockingbird e Marvel: elaboração de diagramas e prototipação de
GUI (Graphical User Interface)
● GitHub: plataforma de hospedagem de código-fonte com controle de versão
● Google Colab: plataforma cloud gratuita para desenvolvimento de códigos
Python de forma colaborativa
● Chrome Web Store:
○ draw.io: elaboração de diagramas online, inclusive UML
■ User Manual, Using with G.Drive, Table of Contents
○ ReqView: edição de requisitos, combinando documentos de estrutura
livre com uma tabela de atributos, discussões e links (inglês)
■ Documentation
○ Acunote: apoia a gerência de desenvolvedores, projetos e requisitos
para o processo Scrum (inglês)
○ MindMup: elaboração de mapas mentais online (inglês)
○ Lucidchart Diagramação: para criar fluxogramas, protótipos, UML, mapas
mentais
○ Desenhos Google: documentação e instalação
ES1: Exercício 5 - ER
1. Desenvolva o diagrama preliminar de casos de uso a partir do
Documento de Requisitos elaborado no exercício anterior,
seguindo estes passos:
a. Identifique os atores em cada requisito
b. Descreva as funções ou atividades de cada ator
c. Elabore os casos de uso que representam todos os requisitos
d. Componha o diagrama com os principais casos de uso
2. Classifique e organize os requisitos em grupos coerentes, a partir
do diagrama elaborado, realizando as devidas alterações no
Documento de Requisitos
3. Agende, planeje e realize a validação e nova elicitação de
requisitos junto aos interessados, postando no fórum do grupo
esse planejamento, com as perguntas, até o dia 14/10
4. Realize as correções e a descrição de cada caso de uso,
incluindo: diagrama de casos de uso; narrativa; sequência
ordenada (fluxo principal); e exceções (fluxos secundários) no
Documento de Requisitos, além de anexar o planejamento, com
as perguntas, postando-o no fórum do grupo até o dia 19/10
Modelagem Baseada em Cenários
● A modelagem de requisitos com UML começa com a
criação de cenários na forma de casos de uso, diagramas
de atividades e de raias
● Tais modelos são orientados a procedimentos,
representando a maneira pela qual vários atores
interagem com funções específicas
● UML: a “linguagem de modelagem unificada” é usada para
visualizar, especificar, construir e documentar artefatos de
um sistema de SW
● Casos de uso: preliminar, refinado e formal
● Diagrama de atividades: complementa o caso de uso com
a representação gráfica do fluxo de atividades envolvidas
no processo de interação, em um cenário específico
● Diagrama de raias: variação do diagrama de atividade
que, além de representar o fluxo de atividades, indica qual
ator ou classe de análise é responsável pela ação descrita
Diagrama de Atividades: Elaboração
Similar ao fluxograma, usa:
● Retângulos com cantos
arredondados para representar
determinada função do sistema
● Setas para indicar o fluxo
através do sistema
● Losango para representar
decisão com ramificação, onde
cada seta que parte do losango
é identificada
● Linhas horizontais cheias
indicam as atividades paralelas
que ocorrem
● Ex. Acessar vigilância por
câmeras via Internet - exibir
visões das câmeras
Diagrama de Raias: Elaboração
● As
responsabilidades
são representadas
como segmentos
paralelos que
dividem o
diagrama de
atividades
verticalmente,
como em raias de
piscina
● A raia Interface
representa a
interface de
usuário, conforme
vista por ele
Diagrama de Atividades: Símbolos
Símbolo Descrição
Retângulo ovalado Atividade (passo do fluxo)
Retângulo Objeto (artefato do fluxo)
Relação de precedência entre
Seta cheia
atividades
Consumo ou produção de objeto por
Seta pontilhada
atividade
Ponto de sincronização (onde
Linha horizontal cheia
subfluxos paralelos se juntam)
Pequeno círculo cheio Estado inicial
Círculo cheio dentro
Estado final
de círculo vazio
Diagrama
de
Atividades
: Exemplo
Gerenciamento de Requisitos: Contexto
● Durante o processo de SW o entendimento dos
interessados a respeito do problema está em
mutação, sendo necessário que os requisitos evoluam
para refletir essas novas percepções do problema
● É difícil para os interessados anteciparem os impactos
que o novo sistema terá sobre os processos de
negócio e suas formas de trabalho, o que origina novos
requisitos quando estiver implantado
● Os ambientes técnico e de negócios do sistema
sempre mudam, seja por novo HW ou SW, seja por
novas prioridades de
negócio ou novidades
na legislação, nos
regulamentos
Gerenciamento de Requisitos
● É o processo de compreensão e controle das
mudanças nos requisitos do sistema, no qual é
preciso:
○ Manter-se a par das necessidades individuais e
das ligações entre as necessidades
dependentes para conseguir avaliar o impacto
das mudanças nos requisitos
○ Estabelecer um processo formal para cada
proposta de mudança e sua ligação com as
exigências do SW
● Pode ser planejado durante o processo de
elicitação de requisitos
● Deve iniciar assim que a versão preliminar do
documento de requisitos estiver disponível
Gerenciamento de Requisitos: Planejamento
● Identificação de requisitos, devendo cada requisito ser
identificado unicamente
● Processo de gerenciamento de mudança, com
atividades que avaliam o impacto e o custo das mudanças
● Políticas de rastreabilidade, que definem os
relacionamentos entre cada requisito e entre os requisitos
e o projeto de sistema
● Ferramenta de apoio, que auxilia no controle de
informações sobre requisitos, variando de sistemas
especializados em gerenciamento destes até
processadores de planilhas, de texto e SGBD simples,
permitindo:
○ Armazenamento de requisitos
○ Gerenciamento de mudança
○ Gerenciamento de rastreabilidade: relacionamento
de requisitos
Gerenciamento de Requisitos: Mudança
● É essencial para decidir se os benefícios da
implementação de novos requisitos compensam os
custos envolvidos nessa mudança
● Tem a vantagem de tratar todas as mudanças de
maneira consistente, alterando o documento de
requisitos de forma controlada
● O documento de requisitos deve ser organizado
para permitir sua reformulação, onde as referências
externas devem ser mínimas e as suas seções o mais
modular possível
● Se um novo requisito precisa ser implementado com
urgência, a tentação de fazê-lo antes de modificar o
documento de requisitos deve ser evitada, impedido a
defasagem e a inconsistência entre esse
documento e o sistema
Mudança de Requisitos: Estágios
Estágios do processo de gerenciamento de mudança:
1. Análise de problema e especificação de mudanças,
onde é analisado se o problema impacta em um
determinado requisito ou uma proposta de um novo é
válida, reportando-se ao solicitante, que pode especificar
melhor ou retirar sua solicitação
2. Análise de mudanças e custos, na qual o efeito da
mudança proposta é estimado em termos de modificações
no documento de requisitos e, se apropriado, no projeto e
implantação do sistema, permitindo-se decidir quanto a
realização ou não da mudança de requisitos
3. Implementação de mudanças, em que o documento de
requisitos e, quando necessário, o projeto e a implantação
do sistema são modificados
Rastreabilidade de Requisitos
● Permite controlar a evolução dos requisitos
ao projeto do sistema, ajudando a garantir uma
contínua concordância entre os requisitos do
sistema e os demais artefatos produzidos ao
longo do seu processo de desenvolvimento
● A rastreabilidade de requisitos inicia na
elicitação e vai até a manutenção do SW,
constituindo a principal atividade do
gerenciamento de requisitos
● Um requisito é rastreável se seu enunciado
permite determinar facilmente os antecedentes
e consequências de todos os requisitos
Rastreabilidade de Requisitos: Tipos
● Para trás: possibilidade de localizar a origem de cada requisito,
sabendo-se porque existe e quem ou o quê o originou quando
há uma mudança, sendo necessário para entendê-la a partir
das informações usadas para elicitar o requisito alterado
● Para frente: capacidade de localizar quais os resultados do
desenvolvimento serão afetados por cada requisito, garantindo
que os artefatos de análise, desenho, código e testes cubram
todos os requisitos e permitindo que se possa avaliar o impacto
das mudanças nestes
● Pré-rastreabilidade: refere-se ao contexto a partir do qual
emergem os requisito, antes da sua inclusão na especificação
de requisitos, sendo útil para, por exemplo, obter suas fontes ou
as pessoas que o apoiam para validar a mudança
● Pós-rastreabilidade: refere-se aos aspectos da vida de um
requisito que resultam da sua inclusão na especificação de
requisitos, vinculando-o aos artefatos da modelagem de projeto
e da implementação, como manuais
Rastreabilidade de Requisitos: Visualização
● Visualizações através de hiperlinks: usadas
quando os objetos e as relações devem ser
apresentados no mesmo ponto de vista
● Matriz de rastreabilidade: usada quando uma visão
global das relações de rastreabilidade é necessária
● Explorador em formato de árvore: ajuda a navegar
através de relações específicas
ReqView - Licença
● Licença:
○ Instale em seu G. Drive
○ Cadastre seu usuário para obter a licença Tryal
○ Ative a licença recebida em seu e-mail: Help >
Import License Key
● Controle de Mudanças:
○ Defina seu usuário do Google: Edit > User
Settings
○ Grave, sempre que alterar, o seu arquivo no
GDrive: File > Upload, selecionando as opções
Save View e Save History
○ Para haver colaboração, no G.Drive compartilhe
os arquivos (.reqw) com o colega do grupo e
para 1968190@etfbsb.edu.br
ReqView - Personaliza Atributos
{
● Personalizar atributos: "status": {
Project > Document "type": "enum",
"name": "Status",
Attributes "values": [
{
○ Altere atributos de "key": "Desconhecido"
},
estado do requisito, {
substituindo pelo "key": "Rascunho"
},
código a seguir: {
"key": "Aprovado"
},
{
"key": "Rejeitado"
},
{
"key": "Implementado"
},
{
"key": "Validado"
}
]
}
}
ReqView - Personaliza Atributos
,
● Para adicionar atributo de "priority": {
prioridade, inclua antes "name": "Priority",
"type": "enum",
da última “}” o seguinte "values": [
código: {
"key": "-",
"label": "Indeterminada",
"default": true
},
{
"key": "1",
"label": "Desejável"
},
{
"key": "2",
"label": "Importante"
},
{
"key": "3",
"label": "Essencial"
}
]
}
ReqView - Rastreabilidade
● Pode-se personalizar atributos de rastreabilidade: Project
> Project Traceability
{
"reference": {
"name": "Reference",
"source": "Faz referência a",
"target": "É referenciado por"
}
}
● Visualize outros atributos: View > Attributes Pane para
visualização dos Links (rastreabilidade)
● Alguns atributos para edição: View > Table Columns
○ Selecione Priority para edição das prioridades
○ As colunas podem ser movidas para organização
● Atributos definidos:
○ Start link: defina um link de requisitos a partir do
requisito selecionado
○ Place link: defina um link para um determinado
requisito, cujo link tenha sido iniciado (start link)
ES1: Exercício 6 - ER
1. A partir do refinamento de requisitos realizado no exercício anterior, especifique os
requisitos de fluxo secundário
2. Desenvolva os seguintes diagramas, colocando-os no doc. requisitos:
a. de casos de uso completo
b. de atividades para um cenário que possua fluxo secundário
c. de raias para o caso de uso mais complexo, com mais de um ator e fluxo secundário
3. Realize a prototipação de ao menos um caso de uso, devendo ser anexada ao documento
de requisitos, que deve ser postado
4. Agende, planeje e realize junto ao cliente a validação e priorização dos requisitos a partir
dos diagramas e protótipo, postando no fórum do grupo esse planejamento, com as
perguntas, até o dia 22/10
5. Atualize o Documento de Requisitos, anexando o planejamento, devendo ser postado no
fórum do grupo até o dia 26/10
6. No Reqview faça, até dia 27/10:
a. Identificação de requisitos, com o mesmo nome que está no doc. de requisitos
b. Frequentemente o upload do arquivo de projeto, devendo estar compartilhado com o
grupo e com 1968190@etfbsb.edu.br
c. Personalização dos atributos Status, Priority e Reference
d. Ccnfiguração para incluir na grade as colunas Priority e Links (View > Table Columns)
e. Priorização dos requisitos (desejável, importante, essencial)
f. Especificação dos relacionamentos entre os requisitos, incluindo os links de
rastreabilidade
g. Ao final, além do upload do arquivo de projeto, imprimir como PDF o projeto (File >
Print), postando-o no fórum do grupo ainda no dia 27/10
Gerenciamento de Projetos de Software
Atividades de apoio relevantes que possibilitam planejar,
organizar, monitorar e controlar projetos de desenvolvimento
de SW, considerando aspectos organizacionais, de
orçamento e de cronograma
● Gerenciamento de riscos: identificar o que pode dar
errado e o que pode ser feito a partir da probabilidade de
ocorrerem
● Planejamento de projetos: definir estimativas e realizar o
acompanhamento
● Gerenciamento da qualidade: processos e técnicas para
garantir e melhorar a qualidade do SW
● Gerenciamento de configuração: planejamento de
configurações, gerenciamento de versões e de mudanças
● Melhoria do processo de SW: processos precisam ser
modificados para melhorar os atributos de produto e de
processo
Gerente de Projetos de Software
● Busca garantir que o projeto de SW atenda e supere as
restrições de orçamento e de cronograma
● Metas importantes:
○ Fornecer o SW ao cliente no prazo acordado
○ Manter os custos dentro do orçamento
○ Entregar SW que atenda as expectativas do cliente
○ Zelar pela qualidade e satisfação de trabalho da equipe
de desenvolvimento
● Desafios:
○ Produto intangível: não se pode ver o progresso olhando
para o artefato
○ Projetos de SW são geralmente únicos: são diferentes
dos anteriores, sendo difícil antecipar problemas
○ Processos de SW são variáveis e têm organização
específica: variam entre as organizações, podendo
conduzir a problemas de desenvolvimento
Gerente de Projeto de SW: Atividades
1. Planejamento de projeto: elaboração de
estimativa de custos e de cronograma de
desenvolvimento de SW e atribuição de
tarefas para interessados, acompanhando o
progresso para verificar se está ocorrendo
dentro do planejado
2. Geração de relatórios: sobre o andamento de
projeto para os clientes e gerentes da área de
desenvolvimento de SW, sendo capaz de
comunicar-se em vários níveis, desde
informações técnicas até resumos
gerenciais, abstraindo informações críticas dos
artefatos de projeto
Gerente de Projeto de SW: Atividades
3. Gerenciamento de riscos: avalia e controla
os riscos que podem afetar o projeto
4. Gerenciamento de pessoas: escolhe pessoas
e estabelece formas de trabalhar, buscando
favorecer o bom desempenho da equipe
5. Elaboração de propostas: descreve os
objetivos do projeto, como será realizado,
podendo incluir estimativa de custos e
cronograma, e justificativa que destaque o
porquê do projeto ser confiado à sua equipe
ou organização
Gerenciamento de Riscos
● Envolve antecipar os riscos que podem afetar o
cronograma do projeto ou a qualidade do software
que está sendo desenvolvido, evitando tais riscos
● Categorias de riscos:
○ Riscos de Projeto: afetam o cronograma ou os
recursos de projeto (perda de projetista
experiente)
○ Riscos de Produto: afetam a qualidade ou
desempenho do SW (falha no desempenho de
um componente comprado)
○ Riscos de Negócio: envolvem a organização
que desenvolve ou adquire o SW (concorrente
que introduz um novo produto)
Gerenciamento de Riscos: Etapas
1. Identificação dos riscos: aqueles que ameaçam o
processo de ES, o SW que está sendo desenvolvido ou a
organização do desenvolvimento
2. Análise de riscos: avaliação da probabilidade e das
consequências dos riscos
3. Planejamento de riscos: planejamento para enfrentar os
riscos, evitando ou minimizando seus efeitos sobre o
projeto (mitigação)
4. Monitoramento de riscos: avaliação dos riscos para a
mitigação desses e atualização a partir de outras
informações sobre os riscos
Os resultados desse processo deve ser documentado em um
plano de gerenciamento de riscos, incluindo as suas
descrições, análise e informações para mitigá-los, no caso de
tornarem-se problema
Análise de Riscos
Atividade em que cada risco é identificado e feito o
julgamento sobre a sua probabilidade e gravidade,
elaborando-se uma tabela ordenada de acordo com a
gravidade do risco, que deve ser atualizada a cada iteração
do processo de risco
● Probabilidade, que pode ser avaliada como:
○ Muito baixa: < 10%
○ Baixa: de 10% a 25%
○ Moderada: de 25% a 50%
○ Alta: de 50% a 75%
○ Muito alta: > 75%
● Impacto, onde os efeitos dos riscos podem ser:
○ Catastróficos: ameaçam a sobrevivência do projeto
○ Graves: causariam grandes atrasos
○ Toleráveis: atrasos estão dentro da contingência
○ Insignificantes
Análise de Riscos: Exemplo
Risco Probabilidade Impacto