Engenharia de Software Prof. Raquel Silveira O que é (Rational Unified Process)? É um modelo de processo moderno derivado do trabalho sobre a UML e do Processo Unificado de Desenvolvimento de Software associado. Tem como objetivo garantir a produção de software de alta qualidade que está de acordo com as necessidades dos seus usuários finais com um cronograma e custo previsível. Captura as principais boas práticas modernas da Engenharia de Software. -Fases do O ciclo de vida de um sistema consiste de quatro fases: Concepção Elaboração Construção Transição tempo Concepção (define o escopo do projeto) Elaboração (define os requisitos e a arquitetura) Construção (desenvolve o sistema) Transição (implanta o sistema) MODELAGEM DE NEGÓCIOS -Disciplinas do Modelagem do negócio Requisitos Análise & Projeto Implementação Testes Implantação Gerenciamento e planejamento Gerencia de configuração e mudanças Ambiente Objetivos: - Entender a estrutura e dinâmica da organização. - Entender os problemas e identificar as melhorias em potencial. 1
-O processo de estabelecer os serviços que o cliente requer a partir de um sistema e as restrições sob as quais ele opera e é desenvolvido. -Os próprios requisitos são as descrições dos serviços de sistema e das restrições que são geradas durante o processo de engenharia de requisitos. O que é um requisito? Pode variar de uma declaração abstrata de alto nível de um serviço ou de uma restrição de sistema para uma especificação matemática funcional. Isto é inevitável quando os requisitos podem servir uma função dual: Pode ser a base para uma proposta de um contrato portanto deve ser aberta para interpretação; Pode ser a base para o contrato em si portanto deve ser definido em detalhe; Ambas as declarações podem ser chamadas requisitos. Tipos de requisitos usuário Declarações em linguagem natural mais diagramas de serviços que o sistema fornece e suas restrições operacionais. Escritos para os clientes. sistema Um documento estruturado estabelecendo descrições detalhadas das funções, serviços e restrições operacionais do sistema. Define o que deve ser implementado e assim, pode ser parte de um contrato entre o cliente e o desenvolvedor. - Como seria descrito o requisito de usuário e o requisito de sistema de uma operação de Saque? Requisitos funcionais: Declarações de serviços que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como o sistema deve se comportar em determinadas situações. Requisitos não funcionais Restrições sobre serviços ou funções oferecidos pelo sistema tais como restrições de timing, restrições sobre o processo de desenvolvimento, padrões, etc. domínio Requisitos que vêm do domínio de aplicação do sistema e que refletem as características desse domínio. 2
REQUISITOS FUNCIONAIS - Descrevem a funcionalidade ou serviços de sistema. - Dependem do tipo de software, dos usuários esperados e o tipo de sistema onde o software é usado. - Requisitos funcionais de usuário podem ser declarações de alto nível do que o sistema deve fazer mas os requisitos funcionais de sistema devem descrever os serviços de sistema em detalhe. Um sistema de biblioteca fornece uma interface única para uma série de artigos em bibliotecas diferentes. Os usuários podem pesquisar, baixar e imprimir estes artigos para estudo pessoal. - Quais os requisitos funcionais podemos identificar neste sistema? REQUISITOS NÃO-FUNCIONAIS - Estes definem propriedades e restrições de sistema, por exemplo, confiabilidade, tempo de resposta e requisitos de armazenamento. Tipos de Requisitos Não-Funcionais Requisitos nãofuncionais Requisitos Requisitos produto organizacionais externos - Restrições são capacidade de dispositivos de E/S, representações de sistema, etc. funcilidade de uso eficiência confiabilidade portabilidade Requisitos éticos interoperabilidade Requisits legais - Requisitos não funcionais podem ser mais críticos do que os requisitos funcionais. Se estes não forem atendidos, o sistema é inútil. desempenho espaço implementa;áo entrega padrões seguran;a privacidade O cliente afirma que o sistema deve ser rápido, não podendo ultrapassar uma média de 3 segundos por operação. Além disso o idioma do sistema deve ser português e inglês. -Quais os requisitos não-funcionais podemos identificar este sistema? -Que outros requisitos não-funcionais podemos sugerir? Meta x Requisitos Requisitos não funcionais podem ser muito difíceis de definir precisamente e requisitos imprecisos podem ser difíceis de verificar. Meta: Uma intenção geral do usuário tal como facilidade de uso. Requisito não funcional verificável Uma declaração usando alguma medida que pode ser objetivamente testada. Metas são úteis para desenvolvedores quando exprimem as intenções dos usuários do sistema. 3
Exemplo: Meta x Requisitos. Medidas de Requisitos Meta do sistema: O sistema deve ser fácil de ser usado por todos os usuários e ser organizado de modo que os erros dos usuários sejam minimizados. Requisito não-funcional verificável Os usuários devem ser capazes de usar todas as funções do sistema depois de um treinamento de 2 horas. Após esse treinamento, o número médio de erros cometidos pelos usuários não deve exceder dois por dia. Propriedade Velocidade Tamanho Facilidade de uso Confiabilidade Medida Transações processadas/segundo Tempo de resposta de usuário/evento Tempo de atualização da tela Kbytes Número de chips de RAM Tempo de treinamento Número de frames de ajuda Tempo médio de falha Probavilidade de indisponibilidade Taxa de ocorrência de falhas Disponibilidade -De que forma podemos definir um requisito de velocidade e de confiabilidade - Derivados do domínio de aplicação e descrevem características de sistema que refletem o domínio. - Podem restringir os requisitos funcionais existentes ou estabelecer como cálculos especificos devem ser realizados. - Se os requisitos de domínio não forem satisfeitos, o sistema pode não funcionar. Exemplo: Devido às restrições de direitos autorais, alguns documentos devem ser excluídos imediatamente na chegada. Dependendo dos requisitos de usuário, esses documentos serão impressos localmente no servidor de sistema para serem encaminhados manualmente para o usuário ou direcionados para uma impressora de rede. Problemas Entendimento: - Requisitos são expressos na linguagem do domínio de aplicação; - Isso não é, freqüentemente, compreendido pelos engenheiros de software que estão desenvolvendo o sistema. Implícito - Especialistas em domínio compreendem a area tão bem que não pensam em tornar os requisitos de domínio explícitos. 4
Requisito 1. O relatório deve ser gerado em no máximo 10 segundos. 2. O sistema deve ser capaz de emitir um relatório de controle de estoque. 3. O percentual do lucro deve ser calculado da seguinte forma: Preço de venda Média de preço de compra das últimas 10 compras 4. O sistema deve possuir restrição das funcionalidades de acordo com o usuário. 5. O sistema deve ser instalado em máquina cliente com capacidade mínima de 2Gb de disco disponível. 6. O sistema deve possuir um cadastro de produtos que permita inserir, atualizar, remover e pesquisar os produtos. 7. O sistema deve ser internacionalizável. Tipo Dada a seguinte especificação, defina os requisitos funcionais, nãofuncionais e de domínio. Sistema de controle de cheques O banco X está renovando seu sistema de cheques e precisa armazenar informações de seus clientes, assim como dos cheques e todas as transações realizadas para o cheque. A quantidade máxima de passos para realizar uma transação não deve ultrapassar 3 menus. O banco possui um cálculo matemático que define a taxa de juros caso o cheque não seja compensado. A quantidade mínima de memória por máquina deve 1Gb. O sistema deve possuir segurança de acesso dos usuários através da autenticação por meio de teclado virtual. 5