A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Engenharia de Software Introdução à Engenharia de Requisitos.

Apresentações semelhantes


Apresentação em tema: "Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Engenharia de Software Introdução à Engenharia de Requisitos."— Transcrição da apresentação:

1 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Engenharia de Software Introdução à Engenharia de Requisitos

2 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Definições para Engenharia de Requisitos Definição Genérica: –Estabelecer o que o cliente quer de um sistema de software Definição da IEEE: –Processo de aquisição, refinamento e verificação das necessidades do cliente, com o objetivo de obter uma especificação correta e completa dos requisitos. Definição de A. Davis: –Durante a fase de requisitos, é necessário analisar, e portanto entender o problema a ser resolvido. –A análise do problema é a atividade que inclui o entendimento das necessidades do usuário e as limitações impostas na solução.

3 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Definições para Engenharia de Requisitos Definição de Boehm: –Disciplina para desenvolver uma especificação completa, consistente e não ambígua do software; –Um acordo entre as partes descrevendo o que o produto de software irá fazer. Definição de B. Meyer: –Especificar o documento de requisitos de um software é definir de uma forma completa e não ambígua: as características externas do software oferecidas aos usuários; a forma pela qual o software é integrado ao sistema.

4 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Motivações - aspectos sociais Baixo nível de aceitação dos sistemas pelos usuários. –S.I. comerciais: 40% –S.I. de tempo-real: 75%

5 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O documento de requisitos é um acordo contratual entre clientes e fornecedores; Os desenvolvedores de software têm obrigação de inquirir os requisitos dos seus clientes; Os desenvolvedores de software têm a obrigação de informar seus usuários acerca da solução proposta (um manual de usuários não é suficiente!). Motivações - aspectos jurídicos

6 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Motivações - aspectos econômicos

7 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Motivações - aspectos econômicos

8 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Você começa a codificar enquanto eu vou descobrir o que o cliente quer; Requisitos são fáceis de obter; O cliente/usuário sabe o que quer; Quando os requisitos estiverem congelados Mitos sobre Requisitos

9 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Definição x Especificação de Requisitos Definição de requisitos uUma declaração em linguagem natural (mais diagramas) dos serviços que o sistema deverá prover e suas limitações operacionais. Escrito para os clientes Especifição de requisitos uUm documento estruturado definindo de forma detalhada descrições dos serviços. Escrito como um contrato entre cliente e fornecedor uEspecificação de software uUma descrição de software detalhada que serve de base para o projeto ou implementação. Escrito para os desenvolvedores.

10 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Definições e Especificações - exemplos Definição de Requisito: –O software deve prover meios para representação e acesso a arquivos externos criados por outras ferramentas. Especificação de Requisitos: –O usuário deve ter facilidades para definir o tipo dos arquivos externos; –Cada arquivo externo pode ter uma ferramenta associada, a qual pode ser aplicada ao arquivo; –Cada arquivo externo pode ser representado como um ícone específico na tela do computador; –...

11 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Imprecisão dos requisitos Requisitos ambíguos podem ser interpretados de forma diferente por usuários e desenvolvedores Idealmente, os requisitos deveriam ser completos e consistentes Completo –Devem incluir a descrição de todos os itens requeridos Consistente –Não deve haver conflitos ou contradições na descrição dos requisitos Na prática, é quase impossível produzir uma especificação de requisitos completa de consistente

12 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Leitores dos Requisitos Definição dos requisitos –Gerente do projeto; –Usuários finais; –Engenheiros do projeto; –Contratante; –Projetistas. Especificação dos requisitos –Usuários finais; –Engenheiros do projeto; –Projetistas; –Equipe de desenvolvimento. Especificação do software –Engenheiros do projeto –Projetistas; –Equipe de desenvolvimento.

13 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Tipos de requisito Requisitos do Usuário –Texto em linguagem natural e diagramas mostrando os serviços oferecidos pelo sistema. Escritos para os clientes. Requisitos do Sistema –Um documento estruturado que provê descrições detalhadas dos serviços do sistema. Escritos como um contrato entre os clientes e os contratados. Especificação do Software –Uma especificação detalhada do software que serve de base para o projeto e a implementação. Escrita para os desenvolvedores.

14 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Requisitos funcionais e não- funcionais Requisitos funcionais –Serviços que o sistema deve prover, como o sistema deve reagir a determinadas entradas e como o sistema deve se comportar em determinadas situações. Requisitos não-funcionais –Restrições aos serviços ou funções oferecidas pelo sistema, tais como restrições de tempo, restrições quanto ao processo de desenvolvimento, padrões, etc. Requisitos de domínio –Requisitos que surgem do domínio da aplicação e que refletem características desse domínio.

15 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Requisitos funcionais Descrevem funcionalidades ou serviços do sistema Dependem do tipo de software, de quem são os usuários e do sistema onde o software é usado. Requisitos funcionais do usuário podem ser descrições de alto nível do que o sistema deve fazer, mas requisitos funcionais do sistema devem descrever os serviços do sistema de forma detalhada.

16 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Exemplos de requisitos funcionais O usuário deve poder procurar em todo o banco de dados ou em apenas um subconjunto deste. O sistema deve prover visualizadores adequados para que o usuário possa ler os documentos da base de documentos. Deve ser atribuído um identificador único a cada pedido e o usuário deve ser capaz de localizar opedido através do seu identificador.

17 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Requisitos Não-funcionais Definem propriedades e restrições do sistema. Ex: confiabilidade, tempo de resposta etc. Requisitos de processo também podem ser especificados. Ex: utilização de uma ferramenta CASE, linguagem de programação ou método de desenvolvimento particular. Requisitos não-funcionais podem ser mais críticos que os requisitos funcionais. O não atendimento a esses requisitos pode inutilizar o sistema

18 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Classificação de requisitos não- funcionais Requisitos de produto –Requisitos que especificam que o produto deve se comportar de determinada forma. Ex: tempo de execução, confiabilidade, etc. Requisitos organizacionais –Requisitos que são uma conseqüência de políticas e procedimentos organizacionais. Ex: padrões de processo utilizados, requisitos de implementação, etc. Requisitos externos –Requisitos que surgem de fatores externos ao sistema e ao processo de desenvolvimento. Ex: requisitos de interoperabilidade, requisitos legais, etc.

19 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Exemplos de requisitos não-funcionais Requisito de produto –O tempo de reinicialização do sistema deve ser inferior a 1 minuto Requisitos organizacionais –O processo de desenvolvimento e toda a documentação a ser entregue devem estar em conformidade com o padrão definido no documento XYZCo-SP-STAN-95 Requisitos externos –A cada compra realizada, o ssitema deve emitir uma nota fiscal contendo as informações especificadas na lei…

20 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Objetivos e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente, e requisitos imprecisos podem ser difíceis de verificar Objetivo –Uma intenção geral do usuário. Ex: facilidade de uso Requisito não-funcional verificável –Uma descrição usando alguma medição que possa ser testada objetivamente Objetivos ajudam os desenvolvedores a entender as intenções dos usuários

21 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Exemplos Um objetivo do sistema –O sistema deve ser fácil de usar para controladores experientes e deve ser organizado de forma a minimizar o número de erros. Um requisito não-funcional verificável –Controladores experientes devem ser capazes de utilizar todas as funcionalidades do sistema depois de duas horas de treinamento. Após esse treinamento, o número médio de erros cometidos por usuários experientes não deve passar de 2 por dia.

22 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Medições de Requisitos Velocidade –Número de transações por segundo –Tempo de resposta –Tempo de atualização da tela Facilidade de uso –Tempo de treinamento necessário –Quantidade de telas de ajuda Confiabilidade –Taxa de ocorrência de erros –Probabilidade de indisponibilidade Portabilidade –Número de plataformas compatíveis –Porcentagem de instruções dependentes de plataforma

23 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Interação entre requisitos Conflitos entre diferentes requisitos não- funcionais são comuns em sistemas complexos Sistema aero-espacial –Para minimizar o peso, o número de chips no sistema deve ser minimizado –Para minimizar o consumo de energia, chips menos potentes devem ser utilizados –Contudo, usar chips menos potentes pode significar que mais chips terão que ser usados. Qual é o requisito mais crítico?

24 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Requisitos de domínio Derivados do domínio da aplicação. Descrevem características e funcionalidades que refletem o domínio Podem ser requisitos funcionais ou não- funcionais Caso esses requisitos não sejam satisfeitos, pode ser inviável utilizar o sistema

25 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Razões para inconsistência Os grandes sistemas de software devem melhorar a situação existente. É difícil antecipar os efeitos que o novo sistema terá na organização. Diferentes usuários têm diferentes requisitos e prioridades. Há sempre uma constante mudança de compromissos. Os usuários finais do sistema e a organização (divisão) que paga pelo sistema possuem requisitos diferentes. Geralmente prototipagem é necessário para clarificar os requisitos

26 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Engenharia de Requisitos O processo de estabelecer que serviços são requeridos e as restrições à operação e desenvolvimento do sistema Processo de Engenharia de Requisitos –Estudo de viabilidade –Elicitação e análise de requisitos –Especificação de requisitos –Validação dos requisitos

27 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O processo de Engenharia de Requisitos

28 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O Documento de Requisitos O documento de requisitos é uma definição oficial do que é necessário dos desenvolvedores do sistema Deve incluir tanto uma definição como uma especificação dos requisitos NÃO é um documento de projeto. Na medida do possível, deverá definir o QUE do sistema em vez de COMO o sistema deverá ser feito

29 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O Documento de Requisitos Documento de Requisitos Requisitos Funcionais Não-Funcionais

30 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A Estrutura do Documento de Requisitos Introdução –Descreve as necessidades de ter tal sistema e como ele se adequa aos objetivos de negócio da empresa. Glossário –Define os termos técnicos usados. Modelos do sistema –Define os modelos mostrando os componentes do sistema e seus relacionamentos. Definição dos requisitos funcionais –Descreve os serviços providos.

31 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A Estrutura do Documento de Requisitos Definição de requisitos não funcionais –Define limitações no sistema e no processo de desenvolvimento Evolução do sistema –Define as premissas fundamentais na qual o sistema foi baseado e antecipa mudanças Especificação de requisitos –Especificação detalhada dos requisitos funcionais

32 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A Estrutura do Documento de Requisitos Apêndices –Descrição da plataforma de hardware do sistema –Requisitos do banco de dados (talvez em termos de um modelo ER) Índice

33 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Mudanças no documento de requisitos O documento de requisito deve ser organizado de forma que mudanças sejam feitas sem necessidade de re-escritas extensas Referências externas devem ser minimizadas e as sessões do documento devem ser tão modulares como possível Mudanças são facilitadas se o documento for eletrônico. A falta de padronização de documentos torna isto difícil

34 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Linguagens para a Modelagem Conceitual Linguagens Naturais: Texto informal não estruturado; Desenhos, tabelas, diagramas de fluxo, etc.

35 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Problemas com as linguagens naturais: ambigüidades (múltiplas interpretações); incompletude (sub-especificações); contradições (inconsistências); super-especificações (como ao invés do que); redundâncias; etc. Linguagens para a Modelagem Conceitual

36 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Linguagens para a Modelagem Conceitual Linguagens Naturais Estruturadas: Um forma limitada de linguagem natural usada para expressar requisitos; Isto remove alguns dos problemas resultantes da ambigüidade e flexibilidade, impondo um grau de uniformidade `a especificação; Geralmente melhor suportada através do uso de uma estratégia baseada em formulários.

37 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Linguagens para a Modelagem Conceitual Linguagens Naturais Estruturadas (Formulários): Definição da função ou entidade; Descrição das entradas e de onde eles se originam; Descrição das saídas e para onde elas vão; Indicação de outras entidades necessárias ; Pré e pós condições (se apropriado); Efeitos colaterais (se existirem).

38 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Linguagens para a Modelagem Conceitual Linguagens de Descrição de Projetos (PDL): Requisitos podem ser definidos operacionalmente usando uma linguagem similar a de programação, porém com mais flexibilidade de expressão.

39 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Linguagens Rigorosas: Propostas nos anos 70; Possuem uma base conceitual; Parte da especificação é escrita usando uma sintaxe formal (textual/gráfica); Parte da especificação é expressa informalmente; Especificações suportam uma limitada interpretação formal. Linguagens para a Modelagem Conceitual

40 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Linguagens para a Modelagem Conceitual Linguagens Formais: Linguagens baseadas em um sistema matemático que provê: –Notação matemática (regras de interpretação não- ambíguas); –Um sistema de inferência; –Uma metodologia que permite a verificação formal.

41 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Características Específicas da E.R. É uma atividade de negociação e comunicação entre especialistas e não-especialistas; A qualidade da comunicação entre as partes envolvidas depende: – de um bom entendimento; – de uma análise rigorosa. Usuários não sabem o que querem;

42 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Características Específicas da E.R. As visões parciais dos usuários não são consistentes; Usuários nem sempre querem um sistema baseado em computadores;

43 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Habilidade de lidar com conceitos abstratos, reorganizando-os em divisões lógicas, e sintetizando as soluções de acordo com cada divisão; Habilidade de absorver fatos pertinentes a partir de fontes conflitantes e confusas; Habilidade de entender o ambiente do usuário/cliente; Habilidade de lidar com problemas complexos; Perfil do Engenheiro de Requisitos

44 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Perfil do Engenheiro de Requisitos Habilidade de aplicar elementos de software/hardware ao ambiente do usuário/cliente; Habilidade de comunicar-se bem; Habilidade de evitar detalhes desnecessários, concentrando-se nos objetivos gerais do sistema.


Carregar ppt "Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Engenharia de Software Introdução à Engenharia de Requisitos."

Apresentações semelhantes


Anúncios Google