Slides
Transcrição
Slides
Requisitos • Objetivos ou restrições estabelecidas por clientes e usuários do sistema que definem as diversas propriedades do sistema • Condição ou capacidade necessária que o software deve possuir – para que o usuário possa resolver um problema ou atingir um objetivo – para atender as necessidades ou restrições da organização ou de outros componentes do sistema. Engenharia de Software, Jair C Leite Requisitos do usuário, do sistema e do software [Sommerville, 2004] • Requisitos do usuário – Declarações, em linguagem natural e diagramas, sobre os serviços que o sistema oferece e as restrições para a sua operação. Escrito para os clientes. • Requisitos do sistema – Estabelecem detalhadamente as funções e restrições do sistema. O documento de requisitos, chamado de especificação funcional, pode servir como um contrato entre cliente e desenvolvedor. • Especificação de software – Especificação abstrata e precisa do software, indicando o que ele deve fazer (sem dizer como) que serve de base para o design e implementação. Acrescenta mais detalhes à especificação funcional e é escrito para a equipe de desenvolvimento. Engenharia de Software, Jair C Leite Definição e especificação • Definição dos requisitos do usuário – O software deve fornecer um meio de representar e acessar arquivos externos criados por outras ferramentas. • Especificação dos requisitos do sistema – O usuário deve dispor de recursos para definir o tipo dos arquivos externos. – Cada tipo de arquivo externo pode ter uma ferramenta associada que pode ser aplicada a ele. – Cada tipo de arquivo externo pode ser representado por um ícone. – Quando um usuário seleciona um ícone, o efeito desta seleção é aplicar a ferramenta associada com o tipo de arquivo. Engenharia de Software, Jair C Leite Quem são os interessados nos requisitos? • Requisitos do usuário – – – – Gerentes e contratantes da organização cliente Usuários finais Engenheiros da organização cliente Arquitetos de sistema • Requisitos do sistema – – – – Usuários finais Engenheiros da organização cliente Arquitetos de sistema Engenheiros de software • Especificação de software – Engenheiros da organização cliente (possivelmente) – Arquitetos de sistema – Engenheiros de software Engenharia de Software, Jair C Leite Problemas comuns • Os envolvidos* não sabem o que eles realmente querem. • Se expressam num vocabulário diferente dos desenvolvedores. • Os envolvidos podem ter requisitos conflitantes. • Fatores organizacionais e políticos podem influenciar os requisitos. • Novos requisitos podem surgir durante o processo de levantamento/análise/especificação. • Novos envolvidos podem vir a participar do process. • Podem haver mudanças externas – ambiente ou regras de negócios. *Stakeholders: Envolvidos ou partes interessadas Engenharia de Software, Jair C Leite Como descrever os requisitos? • A especificação dos requisitos deve ser: – Completa – deve descrever tudo o que é necessário – Consistente – não deve haver conflitos e contradições – Não-ambígua – não deve levar a interpretações diferentes por desenvolvedores e usuários. • Difícil de atingir considerando que existem diferentes tipos de envolvidos. • Depende da precisão da linguagem utilizada – Linguagem natural, informal – apropriada para os requisitos do usuário e do sistema. – Linguagens gráficas, semi-formais – apropriada para os requisitos do sistema e do software. – Linguagens formais – apropriada para uma especificação formal de software em métodos formais. Engenharia de Software, Jair C Leite Requisitos funcionais • Descrição das diversas funções que clientes e usuários querem ou precisam que o software ofereça • Casos de Uso • Exemplos: – "o software deve possibilitar o cálculo dos gastos diários, semanais, mensais e anuais com pessoal". – "o software deve emitir relatórios de compras a cada quinze dias" – "os usuários devem poder obter o número de aprovações, reprovações e trancamentos em todas as disciplinas por um determinado período de tempo. Engenharia de Software, Jair C Leite Requisitos não-funcionais • Propriedades de um software, como manutenibilidade, usabilidade, desempenho, custos e várias outras • São exemplos de requisitos não-funcionais: – "a base de dados deve ser protegida para acesso apenas de usuários autorizados". – "o tempo de resposta do sistema não deve ultrapassar 30 segundo". – "o software deve ser operacionalizado no sistema Linux" – "o tempo de desenvolvimento não deve ultrapassar seis meses". Engenharia de Software, Jair C Leite Tipos de requisitos não-funcionais No n-fu nctional requ ir ements Pro du ct requ ir ements Ef ficiency requ ir ements Reliab ility requ ir ements Usab ility requ irements Perfo rmance requ irements Or gan izational requ ir ements Po rtability requ irements Delivery requirements Ex tern al requ irements Intero perab ility requ irements Implementatio n requ ir ements Sp ace requ ir ements Ethical requ irements Stand ard s requ irements Leg islative requ irements Privacy requ irements Safety requ irements Engenharia de Software, Jair C Leite Requisitos não-funcionais e métricas • Velocidade • • Tamanho – Tamanho em bytes do software final – Memória • Robustez – Tempo de reinício após falha – Porcentual de eventos que causam falhas • Facilidade de uso – Tempo de treinamento necessário – Número de telas de ajuda Confiabilidade – Tempo médio para falhar – Taxa de ocorrência de falhas. – Probabilidade de indisponibilidade. – Transações processadas/segundo – Tempo de resposta ao usuário • Portabilidade – Número de ambientes operacionais nos quais o sistema pode rodar. Engenharia de Software, Jair C Leite Engenharia de Requisitos – 1/2 • Requisitos mudam sempre! • Requisitos precisam ser levantados, analisados, especificados, rastreados, verificados e documentados. • Estas atividades ocorrem ao longo de todo o ciclo-de-vida do software. • A Engenharia de Requisitos propõe modelos, métodos, técnicas e ferramentas para a realização destas atividades Engenharia de Software, Jair C Leite Engenharia de Requisitos – 2/2 • • • • • • • • Estudo de viabilidade Levantamento Análise Especificação Gerenciamento Rastreamento Verificação e Validação Documentação Engenharia de Software, Jair C Leite O processo de engenharia de requisitos Fonte: Ian Sommerville Engenharia de Software, Jair C Leite Estudo de viabilidade • Decide se o sistema proposto é vantajoso e lucrativo. • Deve verificar se: – O sistema contribui para os objetivos organizacionais. – O sistema pode ser construído com a tecnologia corrente e com o orçamento disponível. – O sistema pode ser integrado com os outros sistemas em utilização. • Questões a serem respondidas por clientes e usuários: – – – – – – E se o sistema não for implementado? Quais os problemas atuais? Como o sistema irá ajudar? Quais serão os problemas de integração? Novas tecnologias são necessárias? Quais habilidades? Quais facilidades deve ser providas pelo sistema proposto? Engenharia de Software, Jair C Leite Levantamento de requisitos • Obter os requisitos dos especialistas no domínio – clientes e usuários • Principal problema: comunicação – Usuários e especialistas não compartilham o mesmo vocabulário • Técnicas de Comunicação – Entrevistas – Observação direta – Encontros Engenharia de Software, Jair C Leite Análise de requisitos • A análise possui dois propósitos: – Permite julgamentos sobre a qualidade dos requisitos do sistema – Elaborar um modelo de alto-nível do sistema com os principais componentes e suas interfaces • Abordagens para a análise – Análise Estruturada – OMT – UML: Casos de Uso e Diagramas de classes Engenharia de Software, Jair C Leite Especificação de requisitos • Descrição objetiva, precisa e completa dos requisitos do software • A especificação de um requisito funcional deve determinar o que se espera que o software faça, sem a preocupação de como ele faz • Requisitos funcionais podem ser descritos por Diagramas de Casos de Uso – UML • Requisitos não-funcionais são descritos textualmente. Engenharia de Software, Jair C Leite Verificação e Validação de Requisitos • Validação – “Estamos construindo o sistema certo?” • Verificação – “Estamos construindo certo o sistema?” • Consistência – Os requisitos não devem ser contraditórios. • Completeza – Os requisitos devem considerar todas as necessidades e restrições do envolvidos. • Viabilidade – Existe tecnologia e recursos suficientes? Engenharia de Software, Jair C Leite Abordagens para levantamentoanálise-especificação • Etnografia – Técnica de observação da antropologia. – Considera que os requisitos são derivados do contexto social e organizacional. – O engenheiro-analista se insere no ambiente de trabalho. • Cenários – Descrição de possíveis situações de uso. – Estimula o questionamento (5W 1H) • Casos de Uso – Baseada em cenários mais diagramas. – Parte da UML e fundamental para o RUP. • Definição de Requisitos Orientada a Pontos-de-Vista (VORD) – Analisa e descreve os requisitos a partir dos pontos-devistas dos envolvidos. Engenharia de Software, Jair C Leite Gerenciamento de requisitos • Requisitos mudam durante e depois do desenvolvimento (média de 1%/mês) • Causas: – Novas necessidades de clientes e usuários – Mudanças na tecnologia utilizada – Mudanças em leis, normas ou padrões • As mudanças nos requisitos podem causar impacto nos requisitos relacionados • As técnicas de gerenciamento visam rastrear e controlar estas mudanças Engenharia de Software, Jair C Leite O processo de levantamento-análiseespecificação-validação. Engenharia de Software, Jair C Leite Documentação • Normas e padrões – ANSI/IEEE STD 830-1993 – MIL-STD-2167A e MIL-STD-498 • Tópicos comuns – – – – – – Descrição geral Interfaces externas Requisitos funcionais Requisitos de desempenho Restrições de design Atributos de qualidade Engenharia de Software, Jair C Leite Documento de requisitos do IEEE • Introdução • – Propósito do documento de requisitos – Escopo do produto – Definições, acrônimos e abreviações – Referências – Visão geral do restante do documento • – Esta é a parte substancial do documento, mas não existe uma estrutura padrão, variando de acordo com o método utilizado. – Deve conter a arquitetura do sistema, interfaces externas e as funções (serviços) que o sistema oferece. – Os requisitos não funcionais são colocados aqui também. Descrição Geral – – – – – Perspectiva do produto Funções do produto Características dos usuários Restrições gerais Suposições e dependências Requisitos específicos • • Apêndices Indices Engenharia de Software, Jair C Leite
Documentos relacionados
Ciclo de vida Ciclo de vida: fases x atividades
Especificação de software (definição) • Processo de estabelecer quais serviços são necessários e quais as restrições estão associados ao desenvolvimento e operação do sistema. • Processo de Engenha...
Leia mais