40
Técnicas e Projeto de Sistemas André Mesquita Rincon [email protected] [email protected] Engenharia de requisitos Técnico Subsequente – Módulo III (08/03/2010)

Técnicas e Projeto de Sistemas André Mesquita Rincon [email protected] [email protected] Engenharia de requisitos Técnico Subsequente – Módulo

Embed Size (px)

Citation preview

Page 1: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Técnicas e Projeto de Sistemas

André Mesquita [email protected]@gmail.com

Engenharia de requisitos

Técnico Subsequente – Módulo III(08/03/2010)

Page 2: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Introduçãoo Uma das principais medidas do sucesso de um

software é o grau no qual ele atende aos objetivos e requisitos para os quais foi construído

Page 3: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Introduçãoo A Engenharia de Requisitos é o processo de

identificar todos os envolvidos (stakeholders), descobrir seus objetivos e necessidades, e documentá-los de forma adequada para análise, comunicação e posterior implementação

o Área do conhecimento do SWEBOK responsável pela elicitação, análise, especificação e validação dos requisitos

o O SWEBOK a denomina apenas Requisitos

Page 4: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Definiçãoo Requisitos expressam necessidades e limitações

sobre um produto que soluciona um problema do mundo real

o São uma combinação complexa de necessidades de diferentes pessoas em diferentes níveis de uma organização e do ambiente em que o software irá operar

o São parâmetros do produto que será desenvolvido (i.e.: requisitos sobre o que o software deve fazer)

o Requisitos devem ser definidos com clareza e de forma quantificável

Page 5: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Tipos de requisitoso Requisitos são classificados em:

o Funcionais e não funcionais

o Requisitos FuncionaisoRepresentam as funções que o software deve executar

o Indicam (apontam) as funções que o sistema deve fornecer e como o sistema deve se comportar em determinadas situações

Page 6: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Tipos de requisitoso Requisitos não funcionais

oDescrevem restrições sobre as funções oferecidas, tais como: o Restrições de uso de recursos, requisitos de qualidade, de

desempenho, de segurança, de manutenibilidade, de usabilidade, etc...

Page 7: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Processo de requisitoso Possui atividades como elicitar (levantar), analisar, documentar e

validar requisitos

o Ocorre desde o início do projeto e é refinado até o final dele

o Identifica os requisitos como itens de configuração e os gerencia

o Atores envolvidos no processo de requisitos

Page 8: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Processo de requisitoso Os processos de engenharia de requisitos variam

de uma organização para outra, mas a maioria dos processos de Engenharia de Requisitos é composta das seguintes atividades:o Elicitação (levantamento) de requisitos

oAnálise de requisitos

o Especificação de requisitos

oValidação de requisitos

Page 9: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Elicitação (levantamento)o Preocupa-se tanto com onde os requisitos podem

ser encontrados e como obtê-loso Fontes de requisitos

oObjetivos do negócio

oDomínio da aplicação

oPontos de vista de todos os Stakeholders (diferentes níveis da organização)

oAmbiente de operação

oOrganização (estrutura, cultura e política)

Page 10: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Elicitação (levantamento) – técnicaso Entrevistas: meio mais tradicional e seu sucesso depende

muito da forma como ela é conduzida

o Cenários: contexto operacional do usuário (notação: casos de uso)

o Prototipação: permite ao usuário uma visão melhor das informações que ele necessita

o Reunião com mediadores: identificar pontos de conflito e aplicar técnicas como brainstorming com várias pessoas pode ser mais proveitoso

o Observação: imersão no ambiente dos usuários possibilita um entendimento melhor de algumas funções (ou operações)

Page 11: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Elicitação (levantamento) – técnicaso Algumas dificuldades geralmente são encontradas:

o Dificuldades dos usuários em descrever suas funções

o Falta de vontade em cooperar

o O engenheiro deve entender que não é uma atividade passiva e que, nesta fase, os usuários, clientes e especialistas de domínio identificados devem trabalhar junto com os engenheiros de requisitos para levantar, articular e entender a organização como um todo, o domínio da aplicação, os processos de negócio específicos, as necessidades que o software deve atender e os problemas e deficiências dos sistemas atuaiso Sistema atual não referencia apenas softwares atuais

Page 12: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Elicitação (levantamento) – técnicas auxiliareso O&M

o Elaboração de funcionogramas e fluxogramas do ambiente de operação

o Visa “entender” como a organização atua sem a presença de um sistema, pois auxilia no entendimento dos objetivos e funcionalidades do software

o Exemplo 1 – Funcionograma

o Exemplo 2 – Fluxograma sem software

o Exemplo 3 – Fluxograma com software

Page 13: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Micro-atividade

1. Divisão dos grupos em: entrevistadores e 1 cliente (5 minutos)

2. Os entrevistadores deverão elaborar, no mínimo, três perguntas sobre o sistema a ser modelado por vocês (10 minutos)

3. Realizar a entrevista e documentar as respostas (15 minutos)

Page 14: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Processo de requisitoso Os processos de engenharia de requisitos variam

de uma organização para outra, mas a maioria dos processos de Engenharia de Requisitos é composta das seguintes atividades:o Elicitação (levantamento) de requisitos

oAnálise de requisitos

o Especificação de requisitos

oValidação de requisitos

Page 15: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitoso Complementa a elicitaçãoo Detectar e resolver conflito entre requisitos

o Stakeholders com interesses diferentes (incompatíveis)

oDeve-se evitar decisão unilateral por parte do engenheiro

oQuestões contratuais podem obrigar a presença do cliente

oCasos maiores podem ser analisados na fase de validação

Page 16: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitoso Estabelecer um conjunto de requisitos consistentes e sem

ambigüidades, que possa ser usado como base para o desenvolvimento do software

o Deve-se classificar os requisitos em: Funcionais e não funcionais

o Para esta atividade, alguns tipos de modelos podem ser construídos

o Um modelo é uma representação de alguma coisa do mundo real, uma abstração da realidade, e, portanto, representa uma seleção de características do mundo real relevantes para o propósito do sistema em questão

Page 17: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitoso São fundamentais no desenvolvimento de

sistemas e são construídos para:oAuxiliar no estudo do comportamento do sistema

o Facilitar a comunicação entre os componentes da equipe e clientes e usuários

o Facilitar a discussão de correções e modificações com o usuário

o Formar a documentação do sistema

Page 18: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitoso Como foi dito, os modelos possuem níveis de

abstraçãoo O nível de abstração de um modelo diz respeito ao

grau de detalhamento com que as características do sistema são representadas

o No caso do desenvolvimento de sistemas, geralmente, são considerados três níveis:oConceitual

o Lógico

o Físico

Page 19: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitos – níveis de abstraçãoo Conceitual

o Considera características do sistema independentes do ambiente computacional no qual o sistema será implementado

o Essas características são dependentes unicamente das necessidades do usuário

o Modelos conceituais são construídos na atividade de análise de requisitos

o Fatores que influenciam na escolha do modelo: natureza do problema, experiência do engenheiro, requisitos do processo e a disponibilidade de ferramentas e métodos

o A utilização de uma notação “aceitável” pela maioria pode trazer benefícios (UML)

Page 20: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitos – níveis de abstraçãoo Lógico

o Características dependentes de um determinado tipo de sistema computacional

o Essas características são, contudo, independentes de produtos específicos: tais modelos são típicos da fase de projeto (ex.: arquitetura do software)

o Físicoo Características dependentes de um sistema computacional

específico, isto é, uma linguagem e um compilador específico, um sistema gerenciador de bancos de dados específico, o hardware de um determinado fabricante, entre outras

Page 21: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Análise de requisitoso Nas primeiras etapas do processo de desenvolvimento

(levantamento de requisitos e análise), o engenheiro de software representa o sistema através de modelos conceituais

o Nas etapas posteriores, as características lógicas e físicas são representadas em novos modelos

o Paradigmaso Paradigmas de desenvolvimento estabelecem a forma de se ver o mundo e,

portanto, definem as características básicas dos modelos a serem construídos

o O paradigma orientado a objetos parte do pressuposto que o mundo é povoado por objetos, ou seja, a abstração básica para se representar as coisas do mundo são os objetos

o O paradigma estruturado adota uma visão de desenvolvimento baseada em um modelo entrada-processamento-saída

Page 22: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Processo de requisitoso Os processos de engenharia de requisitos variam

de uma organização para outra, mas a maioria dos processos de Engenharia de Requisitos é composta das seguintes atividades:o Elicitação (levantamento) de requisitos

oAnálise de requisitos

o Especificação de requisitos

oValidação de requisitos

Page 23: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Elicitaçãoo Produção de um documento que possa ser revisado,

avaliado e aprovado

o Especificação de Requisitos de softwareo Estabelece as bases para o acordo entre clientes

o Estabelece o que o software deve fazer e o que ele não deve

o Permite avaliação rigorosa dos requisitos e evita retrabalho

o Fornece base para estimar custo, prazo e risco e para elaboração dos planos de verificação e validação

o Normalmente escrito em linguagem natural, mas pode utilizar outras notações que auxiliem na compreensão do software, como: modelos conceituais para ilustrar o contexto do sistema, cenários (ou telas), principais entidades do domínio e fluxogramas

Page 24: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Processo de requisitoso Os processos de engenharia de requisitos variam

de uma organização para outra, mas a maioria dos processos de Engenharia de Requisitos é composta das seguintes atividades:o Elicitação (levantamento) de requisitos

oAnálise de requisitos

o Especificação de requisitos

oValidação de requisitos

Page 25: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Validaçãoo O documento de requisitos deve ser validado pelos

diferentes stakeholders (clientes e desenvolvedores)

o Processo de examinar os documentos para ter certeza que eles definem se o software faz o que o usuário espera dele

o Revisões de requisitoso A maneira mais comum é a inspeção ou revisão do documento

o O grupo de revisão (com pelo menos um representante do cliente) busca por erros, contradições, falta de clareza e desvios de padrões

o As revisões podem acontecer após o término de um dos documentos de requisitos ou em qualquer ponto do processo

Page 26: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Validaçãoo Prototipação

o Construção de um protótipo para validação dos requisitos (também utilizado na elicitação)

o Possibilita uma visão mais completa do funcionamento do SW

o Teste de aceitaçãoo Uma propriedade essencial do requisito é que deve ser possível

validar se um produto finalizado é capaz de satisfazê-lo

o Requisitos que não possam ser validados são “desejos”

o É preciso planejar como testar os requisitos (projetando os testes de aceitação)

Page 27: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Engenharia de requisitos

o Considerações sobre engenharia de requisitoso O processo de requisitos está em todo o ciclo de vida do

software

o Gerenciar a mudança e a manutenção dos requisitos são aspectos chave para o sucesso do processo de requisitos

o Natureza iterativa do processo de requisitoso É impraticável implementar requisitos como um processo linear

o O requisito sofre aperfeiçoamento continuado só ficando pronto quando o produto estiver terminado

o Grande parte dos requisitos irá mudar por: erros de análise, mudanças no ambiente ou de negócio, etc.

o Mudanças são inevitáveis e medidas devem ser tomadas para mitigar o seu impacto

Page 28: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Atividade

1. Definição da visão geral do software e o estado atual que motivou o desenvolvimento de um software.

1. Domínio

2. Visão geral e estado atual / Motivações

1. Principais funcionalidades

3. Usuários do sistema

1. Descrição de cenários (ou telas)

4. Requisitos funcionais

5. Requisitos não-funcionais

Page 29: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Técnicas e Projeto de Sistemas

André Mesquita [email protected]@gmail.com

Engenharia de requisitos – Casos de uso

Técnico Subsequente – Módulo III(22/03/2010)

Page 30: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Visão geral de UMLo Unified Modeling Language (Linguagem de

Modelagem Unificada)o UML é uma linguagem para visualização,

especificação, construção e documentação de artefatos de um software orientado a objeto

o Visa facilitar a comunicação entre “clientes” e desenvolvedores

Page 31: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Visão geral de UMLo Diagrama de classeso Diagrama de objetoso Diagrama de casos de usoo Diagrama de seqüênciao Diagrama de colaboraçõeso Diagrama de gráficos de estadoso Diagrama de atividadeso Diagrama de componenteso Diagrama de implantação

Page 32: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Introduçãoo É um documento narrativo que descreve a

seqüência de eventos de um ator (um agente externo) que usa um sistema para completar um processo

o Eles são histórias ou casos de utilização de um sistema

Page 33: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Objetivoo Um diagrama de Caso de Uso descreve um cenário

que mostra as funcionalidades do sistema do ponto de vista do usuário

o O cliente deve ver no diagrama de Casos de Uso as principais funcionalidades de seu sistema

Page 34: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Notaçãoo O diagrama de Caso de Uso é representado por:

oAtores, casos de uso e relacionamentos entre estes elementos

o Estes relacionamentos podem ser:o associações entre atores e casos de uso

o generalizações entre os atores

o extends e includes entre os casos de uso

o Casos de uso podem opcionalmente estar envolvidos por um retângulo que representa os limites do sistema

Page 35: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Atoreso Um ator é representado por um boneco e um

rótulo com o nome do atoro Um ator é um usuário do sistema, que pode ser

um usuário humano ou um outro sistema computacional

Page 36: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Casos de usoo Um caso de uso é representado por uma elipse e

um rótulo com o nome do caso de uso e define uma funcionalidade do sistema

Page 37: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Relacionamentoo Entre um ator de um caso de uso

oAssociação: define uma funcionalidade do sistema do ponto de vista do usuário

o Entre atoresoGeneralização: os casos de uso de B são também casos

de uso de A, mas A pode ter seus próprios casos de uso

Page 38: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Relacionamentoo Entre casos de uso

o Include: um relacionamento include de um caso de uso A para um caso de uso B indica que B é essencial para o comportamento de A

o Extend: um relacionamento extend de um caso de uso B para um caso de uso A indica que o caso de uso B pode ser acrescentado para descrever o comportamento de A (não é essencial). A extensão é inserida em um ponto de extensão do caso de uso A.

Page 39: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Casos de uso

o Exemplo de diagrama de caso de uso

Page 40: Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Engenharia de requisitos Técnico Subsequente – Módulo

Atividade

1. Elabore o diagrama de caso de uso do seu sistema