IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

80
IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire

Transcript of IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Page 1: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

IDENTIFICANDO REQUISITOS

ENGENHARIA DE SOFTWAREProf.: José Eduardo Freire

Page 2: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Identificando requisitos

Requisito: é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar para atingir seus objetivos

Não importa se a funcionalidade do sistema é nova ou antiga, cada sistema tem um propósito, geralmente expresso em termos do que o sistema pode fazer.

Vejamos a figura a seguir:

Page 3: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.1

Page 4: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Identificando requisitos

Pesquisa da Standish Group relata as causas dos projetos terem falhados: (350 empresas) requisitos incompletos: 13,1% falta de envolvimento dos usuários: 12,4% falta de recursos: 10,6% expectativas não realistas: 9,9% falta de apoio aos executivos: 9,3% modificações nos requisitos e especificações: 8,7% falta de planejamento: 8,1% o sistema não era mais necessário: 7,5%

Page 5: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Identificando requisitos

Três categorias de requisitos: 1-) requisitos que devem ser totalmente

satisfeitos 2-) requisitos que são altamente desejáveis, mas

não necessários 3-) requisitos que são possíveis, mas poderiam

ser eliminados

Page 6: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Identificando requisitos

Exemplo: Um sistema de cobrança de cartões de crédito deve ser capaz de relacionar as despesas atuais, somá-las e solicitar o pagamento para uma certa data, esses são requisitos da categoria 1. Mas ele pode também separar as despesas por tipo de compra, para auxiliar o comprador a entender os padrões de compra, esses são da categoria 2. O sistema de cobrança pode imprimir os créditos em preto e os débitos em vermelho, categoria 3.

Page 7: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Identificando requisitos

OS REQUISITOS IDENTIFICAM “O QUE”O SISTEMA DEVE FAZER, E O PROJETO IDENTIFICA O “COMO FAZER”.

Vamos analisar a figura a seguir, que apresenta as atividades do processo de desenvolvimento de software:

Page 8: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.2

Page 9: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Documentos de requisitos Definição dos requisitos: listagem completa

de tudo que o cliente espera que o sistema proposto faça (feita de modo que o cliente entenda)

Especificação dos requisitos: redefine os requisitos em termos técnicos apropriados para o desenvolvimento do projeto do sistema (analista de requisitos)

Page 10: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Documentos de requisitos

Gerência de configuração: correspondência direta entre os dois requisitos, que controlam: os requisitos que definem o que o sistema deverá

fazer os módulos de projeto que são gerados a partir

dos requisitos o código do programa que implementa o projeto os testes que verificam a funcionalidade do

sistema os documentos que descrevem o sistema

Page 11: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Requisitos funcionais versus não-funcionais Funcional: descreve uma

interação entre o sistema e seu ambiente

Exemplos: o sistema dever ter

comunicação com um sistema ‘x’ externo

Quais estados devem ser encontrados para uma mensagem ser enviada

Não-funcional: descreve uma restrição do sistema que limita nossas opções para criar uma solução para o problema

Exemplos: Contracheques distribuídos

em não mais que quatro horas depois de os dados iniciais terem sido lidos

Sistema limita o acesso a gerentes seniores

Page 12: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Tipos de requisitos Ambiente físico Interfaces Usuários e fatores humanos Funcionalidade Documentação Dados Recursos Segurança Garantia de qualidade

Page 13: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Ambiente físico

Onde o equipamento funcionará? Esse funcionamento se dará em um ou

vários locais? Existe alguma restrição ambiental, tal como

temperatura, umidade ou interferência magnética?

Page 14: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Interfaces

A entrada tem origem em outro ou outros sistemas?

A saída vai para outro ou outros sistemas? Existe uma maneira preestabelecida pela

qual os dados devem ser formatados? Existe alguma mídia definida?

Page 15: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Os usuários e os fatores humanos

Quem utilizará o sistema? Haverá diversos tipos de usuário? Qual o nível de habilidade de cada tipo de usuário? Que tipo de treinamento será necessário para cada

tipo de usuário? Que facilidade o usuário terá para entender e

utilizar o sistema? Qual será a dificuldade para que os usuários utilize

inadequadamente o sistema?

Page 16: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Funcionalidade

O que o sistema realizará? Quando o sistema o fará? Existem diversos modos de operaçãp? Como e quando o sistema pode ser

modificado ou aprimorado? Existem limitações quanto à velocidade de

execução, ao tempo de resposta, ou à saída?

Page 17: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Documentação

Que documentação é necessária? Essa documentação deve ser on-line, no

formato de livro, ou ambos? A que público se destina cada tipo de

documentação?

Page 18: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Dados

Qual deverá ser o formato dos dados de entrada e saída?

Com que freqüência eles serão enviados ou recebidos?

Que precisão devem ter? Com que grau de precisão os cáculos devem ser

feitos? Qual será o fluxo de dados do sistema/ Existem dados que devem ser mantidos por

algum tempo?

Page 19: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Recursos

Que materiais, pessoal ou outros recursos são necessários para construir, utilizar e manter o sistema?

Que habilidades os desenvolvedores devem ter?

quanto espaço físico será ocupado pelo sistema?

Quais são os requisitos quanto à energia, ao aquecimento ou condicionamento de ar?

Page 20: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Recursos

Existe um cronograma definido para o desenvolvimento?

Existe um limite de custo para o desenvolvimento ou para a aquisição de hardware ou software?

Page 21: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Segurança

O acesso ao sistema ou às informações deve ser controlado?

Como os dados de um usuário serão isolados dos de outros usuários?

Como os programas dos usuários serão isolados de outros programas e do sistema operacional?

Com que freqüência será feito o backup dos sistema?

Page 22: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Segurança

As cópias de segurança devem ser armazenadas em um local diferente?

Devem ser tomadas precauções contra fogo, danos provocados pela água, ou ocorrência de roubo?

Page 23: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Garantia da qualidade

Quais são os requisitos quanto a confiabilidade, disponibilidade, manutenibilidade, segurança e outros atributos de qualidade?

Como as características do sistema devem ser demonstrada para os outros?

O sistema deve detectar e isolar defeitos? Qual é o tempo médio entre falhas, que foi

determinado? Existe um tempo máximo permitido para reiniciar o

sistema, depois de uma falha?

Page 24: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Garantia da qualidade

Como o sistema pode incorporar modificações no projeto?

A manutenção meramente corrigirá os erros ou também incluirá o aprimoramento do sistema?

Que medidas de eficiência serão aplicadas à utilização dos recursos e ao tempo de resposta?

Com que facilidade o sistema se deslocará de um local para outro, ou de um tipo de computador para outro?

Page 25: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Fontes de Requisitos

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.3

Page 26: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Características dos Requisitos Estão corretos? São consistentes? Estão completos? São realistas? Cada requisito descreve algo necessário ao

cliente? Podem ser verificados? Podem ser rastreados?

Page 27: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Estão Corretos?

Engenheiros de software, analistas de sistemas, clientes e outros envolvidos devem analisar os requisitos para garantir que eles foram definidos sem erros.

Page 28: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

São Consistentes?

Por exemplo, se um requisito informa que, no máximo, 10 usuários podem utilizar o sistema ao mesmo tempo, e outro requisito diz que, em certa situação, pode haver 20 usuários simultaneamente, esses requisitos são inconsistentes.

Dois requisitos são inconsistente, se for impossível satisfazer aos dois simultaneamente.

Page 29: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Estão Completos?

O conjunto de requisitos é completo, se todos os possíveis estados, mudança de estado, entradas, produtos e restrições estiverem descritos por algum requisito.

Diz que a descrição de um sistema é externamente completa, se a descrição contém todas as propriedades do ambiente desejado pelo cliente.

É internamente completa, se não houver referências indefinidas entre os requisitos.

Page 30: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

São Realistas?

O que o cliente está pedindo pode realmente ser feito pelo sistema.

Todos os requisitos deverão ser analisados, a fim de assegurar que eles sejam possíveis.

Page 31: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descreve algo necessário para o cliente?

Algumas vezes, um requisito limita os desenvolvedores desnecessariamente ou inclui funções que não estão diretamente relacionadas com o problema em questão.

Deve-se rever os requisitos, de forma a manter somente requisitos que atuam diretamente na resolução do problema do cliente.

Page 32: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Podem ser Verificados?

Planejar testes que demonstrem que os requisitos foram satisfeitos.

Page 33: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Podem ser Rastreados?

Cada função do sistema pode ser rastreada para um conjunto de requisitos que a exige?

É fácil identificar o conjunto de requisitos que trata de um aspecto específico do sistema?

Page 34: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Como expressar os requisitos

Descrições estáticas Não descreve como os relacionamentos se

modificam ao longo do tempo. Uma descrição do sistema lista as entidades

ou os objetos do sistema, seus atributos e seus relacionamentos com cada um dos outros.

Page 35: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Maneiras de descrever um sistema estaticamente

Referência indireta: um sistema pode ser descrito com uma referência indireta ao problema e sua solução estar implícita e não declarada.

Relações de recorrência :uma condição inicial é definida, e a transformação de uma certa condição na condição seguinte é descrita em termos das condições previamente definidas. (sistema que acompanha a disseminação de uma doença)

Page 36: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Maneiras de descrever um sistema estaticamente

Definição axiomática: adequado para o desenvolvimento de sistemas especialistas, uma vez que o comportamento de tal sistema envolve a geração de novas informações a partir de declarações de conhecimento básico sobre um assunto específico.

Expressão como uma linguagem: linguagem de programação, por exemplo.

Page 37: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Maneiras de descrever um sistema estaticamente

Abstração de Dados: é uma técnica para descrever para que servem os dados, em vez de como eles se parecem ou de que modo são chamados.

Page 38: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abstração de dados

Page 39: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.4

Page 40: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrição Dinâmica

Quando se descreve um sistema em termos das relações entre suas entidades, não há um modo fácil de explicar como o sistema reage às coisas que modificam o seu comportamento em determinado período.

Por isso os engenheiros de software tem desenvolvido técnicas para visualizar o sistema em termos de mudanças que ocorrem com o decorrer do tempo.

Page 41: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrição Dinâmica

Tabelas de Decisão: algumas vezes, é conveniente descrever um sistema como um conjunto de condições possíveis, satisfeitas pelo sistema em determinado momento, de regras para reagir aos estímulos quando certos conjuntos de condições são satisfeitas, e de ações a serem tomadas, como resultado.

Page 42: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas: caso de admissão de calouros - EUA Tabelas de decisão

Page 43: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrição Dinâmica

Descrição Funcional e diagramas de transição: pode-se visualizar um sistema de maneira semelhante a um conjunto de estados, em que o sistema reage a certos eventos possíveis.

Page 44: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrição Dinâmica

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.5

Page 45: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas Descrição funcional e tabelas de transição

Page 46: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas: notação em UML

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.7

Page 47: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas: diagrama de transição para reservas de hotel

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.8

Page 48: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas

Tabelas de eventos: pode-se representar os estados e as transições de um sistema em uma forma tabular diferente.

Page 49: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas Tabelas de eventos

Page 50: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Descrições dinâmicas

Redes de Petri: quando diversos eventos ocorrem de uma vez, algumas vezes um sistema deve realizar processamento paralelo. (emergência de um hospital)

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.10

Page 51: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Muito se tem pesquisado segundo este enfoque, que representa o mundo real com objetos e suas interações.

Busca-se a solução dos problemas através de uma modelagem orientada a objetos, conforme mostra a Figura a seguir.

Page 52: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Modelagem

SistemasProblemas Soluções

Mundodos

Objetos

Page 53: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Na AOO a interação entre o usuário e o sistema é baseada em mensagens, que correspondem, na análise estruturada moderna, à associação dos fluxo de dados com os eventos que documentam as solicitações do usuário.

Page 54: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Os grandes problemas da análise de sistemas em quase todos os sistemas estão relacionados com: a compreensão do domínio do problema, comunicação dos fatos, evolução contínua e reutilização.

O desenvolvedor precisa compreender e modelar o domínio do problema, especialmente no caso de sistemas grandes e complexos.

A partir do domínio do problema, concentrar-se-á nos aspectos específicos do seu problema, ou seja, na descrição das responsabilidades do sistema que está sendo considerado, estabelecendo dessa forma as fronteiras do sistema.

Page 55: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Foco está nos dados e nas operações sobre os dados, e não sobre procedimentos.

É baseada na modelagem de objetos do mundo real.

Concentra-se, basicamente, na visão externa do objeto separando seu comportamento de sua implementação (abstração)

Consiste em capturar as informações essenciais das entidades ou objetos envolvidos no contexto do sistema sendo desenvolvido. (abstração)

Page 56: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

O que é um objeto? Uma entidade que você pode

reconhecer Uma abstração de um objeto do mundo

real Uma estrutura composta de dados

(“estado local”) e operações (executa processamentos)

Recebe e envia mensagens.

Page 57: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Exemplo de objeto: empregado de uma firma

Estado:Todo empregado tem um nome, carteira de identidade, CIC, endereco, seção na qual trabalha, salário, etc.

Comportamento: Pode-se alterar o salário de um empregado, imprimir seu endereço, etc.

Page 58: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Exemplo de objeto abstrato: ListaEstado Número de elementos. Elementos componentes Comportamento Elementos podem ser inseridos e removidos. Consultar informação exemplos de uso: agenda telefônica; cadastro

de produtos; lista de espera de um vôo...

Page 59: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

classe Pessoa

objeto Maria objeto Pedro

Page 60: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Cada entidade no sistema é um objeto. Um método ou uma operação é uma ação que

pode ser realizada pelo objeto ou pode acontecer com o objeto.

Usuário CLASSE: USUÁRIODADOS

OPERAÇÕES

Page 61: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Encapsulamento: maneira pela qual os métodos formam um limite de proteção em torno do objeto (os objetos podem ser manipulados somente por meio de seus métodos)

Page 62: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos - Encapsulamento

Page 63: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Hierarquias de classe de objetos estimulam a herança.

Page 64: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Herança é o mecanismo para expressar a similaridade entre Classes, simplificando a definição de Classes iguais a outras que já foram definidas.

Este princípio permite representar membros comuns, serviços e atributos uma só vez, assim como especializar estes membros em casos específicos.

Page 65: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Pessoa

Estudante Professor Funcionário Diretor

Page 66: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Engenharia de Software: Teoria ePráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.12

Page 67: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Abordagem orientada a objetos

Polimorfismo: mesmo método para diferentes objetos, cada qual com diferentes comportamentos

Page 68: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

MODELAGEM DE SISTEMAS

MODELAR UM SISTEMA significa identificar seus componentes, suas características e comportamentos e o relacionamento entre estes componentes.

Em sistemas OO: Componentes = Entidades Características = Atributos Comportamento = Métodos Relacionamento = Mensagens

Page 69: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Notações de requisitos adicionais Diagramas de fluxo de dados: o diagrama

mostra os dados que fluem para dentro do sistema, como eles são transformados e como eles saem do sistema.

A ênfase é sempre no fluxo dos dados, não no fluxo de controle.

Veja alguns símbolos usados para construir um diagrama:

Page 70: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Notações de requisitos adicionais

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.14

Page 71: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Notações de requisitos adicionais

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Figura 4.15

Page 72: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Prototipação de requisitos Protótipo descartável: exploratório Protótipo evolutivo: base de uma parte ou todo o

software (protótipo para interface) Protótipo rápido: entender os requisitos o decidir

sobre o projeto final.

Page 73: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Documentação de requisitos Documento de definição de requisitos: o que o

cliente gostaria de ver: propósito geral fundamentos e objetivos de desenvolvimento do

sistema descrição da abordagem características detalhadas ambiente operacional

Documento de especificação de requisitos: o que o desenvolvedor precisa saber

Page 74: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Participantes no processo de requisitos

Monitores do contrato Clientes e usuários Gerentes de negócios Projetistas Testadores

Page 75: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Page 76: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Page 77: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Revisão dos requisitos Rever metas e objetivos estabelecidos para o sistema Comparar requisitos metas o objetivos Descrever o ambiente operacional Examinar

interfaces fluxo de informações funções

Verificar omissões, imperfeições e inconsistências Documentar riscos Discutir sobre como o sistema será testado

Page 78: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Escolhendo uma técnica de especificação de requisitos

Aplicabilidade Possibilidade de implementação Testabilidade/simulação Avaliabilidade Manutenibilidade Modularidade Nível de abstração/expressividade Solidez

• Verificabilidade• Segurança durante a execução• Maturidade da ferramenta• Imprecisão• Curva de aprendizado• Maturidade técnica• Modelagem de dados• Disciplina

Page 79: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Fechando o Semestre!!!

A engenharia de software depende muito mais das pessoas do que das fórmulas complicadas, como ocorre nas demais engenharias.

O conhecimento dos princípios da orientação a objetos é de fundamental importância, principalmente porque nos ajuda a pensar em objetos e não apenas em dados ou funções, como era no paradigma tradicional de desenvolvimento de software.

Page 80: IDENTIFICANDO REQUISITOS ENGENHARIA DE SOFTWARE Prof.: José Eduardo Freire.

Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 4 Prentice Hall

Bibliografia

PFLEEGER, Shari Lawrence. Engenharia de Software. Ed: Prentice Hall. São Paulo, 2004.

Cap. 4 Identificando Requisitos