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

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

Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software"— Transcrição da apresentação:

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

2 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

3 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

4 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% Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

5 Motivações - aspectos jurídicos
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!). Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

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

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

8 Mitos sobre Requisitos
“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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

9 Definição x Especificação de Requisitos
Definição de requisitos Uma 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 Um documento estruturado definindo de forma detalhada descrições dos serviços. Escrito como um contrato entre cliente e fornecedor Especificação de software Uma descrição de software detalhada que serve de base para o projeto ou implementação. Escrito para os desenvolvedores. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

10 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; ... Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

11 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

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

13 Tipos de requisito Requisitos do Usuário Requisitos do Sistema
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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

14 Requisitos funcionais e não-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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

15 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

16 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

17 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

18 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

19 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… Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

20 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

21 Exemplos Um objetivo do sistema Um requisito não-funcional verificável
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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

22 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

23 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? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

24 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

25 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

26 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

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

28 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

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

30 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

31 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

32 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

33 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 Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

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

35 Linguagens para a Modelagem Conceitual
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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

36 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

37 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). Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

38 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

39 Linguagens para a Modelagem Conceitual
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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

40 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

41 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; Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

42 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; Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

43 Perfil do Engenheiro de Requisitos
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; Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

44 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. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho


Carregar ppt "Engenharia de Software"

Apresentações semelhantes


Anúncios Google