Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução a Engenharia de Requisitos • O que são requisitos? • O que é engenharia de requisitos? • Quanto custa a engenharia de requisitos? • O que acontece quando os requisitos são mal definidos? • O que é um processo de engenharia de requisitos? • Há um processo ideal para a engenharia de requisitos? • O que é um documento de requisitos? • O que são stakeholders (interessados)? • Qual o relacionamento entre requisitos de software e desenho de software? • O que é gerenciamento de requisitos? Perguntas básicas sobre ER • Requisitos de um sistema de software – Refletem os objetivos, necessidades dos interessados e características de qualidade que devem ser atendidas – Definem os serviços que um sistema deve prover e as restrições que devem ser consideradas no desenvolvimento e operação do sistema. – São descrições sobre como o sistema deverá se comportar, informações sobre o domínio da aplicação, restrições sobre a operação de um sistema, ou especificações de uma propriedade ou atributo do sistema. Requisitos de um Sistema de Software • Exemplos em um Sistema de Biblioteca: 1. O sistema deve manter registros de todos os itens do acervo da biblioteca, incluindo livros e periódico em quaisquer mídias em que eles forem disponibilizados (impressas ou eletrônicas) 2. O sistema deve permitir aos usuários buscarem itens de acervo pelo título, autor e ISBN. 3. A interface do sistema deve ser implementada visando sua utilização por um navegador na internet (world-wide-web browser). 4. O sistema deve suportar pelo menos 20 transações por segundo 5. As funcionalidades do sistema devem ser apresentadas aos usuários de acordo com o seu perfil. Por exemplo, o perfil usuário deve ver apenas as opções de funcionalidades que pode utilizar. Requisitos de um Sistema de Software • Exemplos de Requisitos em outros contextos: – Uma facilidade relacionada com a utilização do sistema pelos usuários. • Exemplo: “o processador de texto deve incluir uma verificação ortográfica, sugestão de correção de grafia e comandos de correção”. – Uma propriedade geral do sistema • Exemplo: “O acesso ao sistema deve ser garantido somente a pessoas autorizadas através de confirmação de senhas individuais”. – Uma restrição específica do sistema • Exemplo: “O sensor de temperatura de ambiente deve ser monitorado no mínimo dez vezes a cada segundo”. Requisitos de um Sistema de Software • Exemplos de Requisitos em outros contextos: – Como um cálculo deve ser feito • Exemplo: “A média final de um aluno é calculada como a média aritmética das suas notas bimestrais”. – Uma restrição relacionada com o desenvolvimento do sistema • Exemplo: “O sistema deve ser desenvolvido em Java”. Requisitos de um Sistema de Software Tipos de Requisitos • Os requisitos pode ser classificados de várias maneiras. Por exemplo: • Requisitos gerais do sistema (requisito 1 do exemplo da biblioteca) • Requisitos funcionais que definem parte das funcionalidades do sistema (requisito 2 do exemplo da biblioteca). • Requisitos de implementação que restringem as formas como o sistema deve ser implementado (requisito 3 do exemplo da biblioteca). • Requisitos de desempenho que especificam o nível mínimo de desempenho aceitável (requisito 4 do exemplo da biblioteca). • Requisitos de usabilidade que especificam o que um grupo de usuários pode ver (requisito 5 do exemplo da biblioteca). Tipos de Requisitos • Classificação mais conhecida: – Requisitos Funcionais – Requisitos Não Funcionais • Outras classificações conhecidas – Requisitos de Sistema x Requisitos de Software – Requisitos de Usuário x Requisitos de Software Tipos de Requisitos • Requisitos Funcionais – Requisitos relacionados com as funções básicas do sistema – Caracterizam necessidades vinculadas ao domínio do problema independentemente da solução computacional adotada. – Em geral definem o escopo do sistema Tipos de Requisitos • Requisitos Não Funcionais – Requisitos relacionados com características que qualificam uma solução para o problema diferenciando-as de outras possíveis – São também conhecidos como requisitos de qualidade. – Em geral definem a complexidade do sistema – Podem ser subdivididos em outros tipos Tipos de Requisitos • Restrições – São limitações que devem ser consideradas na condução do processo de desenvolvimento do sistema ou no próprio desenvolvimento técnico do software. – Restrições de projeto, em geral, definem limitações quanto a disponibilidade ou qualidade dos recursos que podem ser aplicados – Restrições técnicas, em geral, definem limitações quanto as soluções técnicas que podem ser aplicadas Engenharia de Requisitos • Termo relativamente novo. • Conjunto de processos envolvidos com a descoberta (levantamento, coleta), documentação e manutenção dos requisitos de um sistema de software. • O uso do termo “engenharia” implica o uso sistemático e repetido de técnicas para assegurar que os requisitos estejam completos, consistentes, relevantes, etc. Engenharia de Requisitos • Engenharia de Requisitos x Análise de Sistemas – A Engenharia de Requisitos executas as tarefas tradicionais da conhecida análise de sistemas porém com preocupações mais destacadas em relação aos processos adotados, a documentação de requisitos e ao gerenciamento de requisitos. • Custo da Engenharia de Requisitos – Capacitação – InfraEstrutura – Atividades – Pesquisas indicam que: • para sistemas de grande escopo e complexidade cerca de 15% do orçamento total é gasto nos processos de engenharia de requisitos. • Para sistemas menores onde o software é quase todo o sistema, os custos giram em torno de 10% do orçamento total. Engenharia de Requisitos • Processo de Engenharia de Requisitos – Conjunto estruturado de atividades que permitem derivar, validar e manter os requisitos de um sistema. – Um processo completo deve incluir as atividades que devem ser executadas, o escalonamento dessas atividades, o responsável por cada atividade, as entradas e saídas de cada atividade e as ferramentas e recursos que suportam a execução de cada atividade. – Subprocessos incluem: elicitação de requisitos, análise de requisitos, negociação de requisitos e validação de requisitos, gerência de requisitos. • Documentação de Requisitos – Um documento de requisitos é uma declaração oficial dos requisitos do sistema para todos os interessados (stakeholders) no sistema: clientes, usuários, desenvolvedores, etc. – Interessados são todas as pessoas e organizações afetadas pelo sistema e que tem uma influência direta ou indireta nos requisitos do sistema. • É extremamente importante identificar todos os interessados no sistema já que eles são a principal fonte de requisitos do sistema • A não identificação dos interessados pode aumentar o risco de mudanças nos requisitos. Engenharia de Requisitos • Relação entre requisitos e design do software – Requisitos definem o que o sistema deve fazer – Design define como os requisitos vão ser atendidos – Em geral, o documento de requisitos não trata aspectos de design a não ser que estejam envolvidos com restrições. – É fundamental correlacionar ao longo do projeto o que está sendo construído com os requisitos das com padrões, com sistemas já utilizados, com questões de arquitetura, restrições de projeto, exigências em licitações, etc. Engenharia de Requisitos • Gerenciamento de requisitos – Processo de gerenciamento de mudanças nos requisitos do sistema. – Principais atividades: controle de modificações e análise de impacto. – Controle de modificação está relacionado com o estabelecimento e execuçãode procedimentos formais para coleta, verificação e aprovação de modificações. – Análise de impacto está relacionada com a análise de como as modificações propostas afetam o sistema como um todo. Engenharia de Requisitos Engenharia de Requisitos e a Engenharia de Sistemas Engenharia de Requisitos de Sistema Desenho Arquitetural Particionamento dos Requisitos Engenharia de Requisitos de Software Validação de Sistema Integração de Sistema Desenvolvimento de Subsistemas • Passos: – Engenharia de Requisitos de Sistema • Os requisitos do sistema como um todo são estabelecidos. • Requisitos geralmente expressos em alto nível usando linguagem natural. • Alguns requisitos detalhados (por exemplo, requisitos de compatibilidade) podem ser incluídos se forem críticos para o sucesso do sistema. – Desenho Arquitetural • O sistema é decomposto em um conjunto de relativamente independentes subsistemas. Engenharia de Requisitos e a Engenharia de Sistemas • Passos (continuação) – Particionamento dos requisitos • Os requisitos são particionados pelos subsistemas. • Neste estágio deve ser decidido se os requisitos devem ser de hardware ou software. – Engenharia de Requisitos de Software • Os requisitos de alto nível de software são decompostos em requisitos mais detalhados para os componentes de software do sistema. – Desenvolvimento de subsistemas • Os subsistemas de hardware e software são desenhados e implementados em paralelo. Engenharia de Requisitos e a Engenharia de Sistemas • Passos (continuação) – Integração de sistemas • Os subsistemas de hardware e software são integrados para completar o sistema. – Validação dos requisitos • O sistema é validado em termos de atendimento aos requisitos. Engenharia de Requisitos e a Engenharia de Sistemas
Compartilhar