Analise de Requisitos I

Analise de Requisitos I

FACCAMP - Engenharia de Software

Profa. Luciana Romani1

Análise de Requisitos de Software e deAnálise de Requisitos de Software e de SistemasSistemas

Profa Luciana Romani

SISTEMA Elementos de um sistemaElementos de um sistema

Engenharia de Software: Engenharia de Software: Fase de Definição

Planejamento do projeto de Software

RevisãoAnálise de

Requisitos ou Prototipação Revisão

Plano de ProjetoEspecificação dos Requisitos

Protótipo

FACCAMP - Engenharia de Software

Profa. Luciana Romani2

Engenharia de Software: Engenharia de Software: Fase de Desenvolvimento

Especificação Preliminar do Projeto

Especificação Detalhada do Projeto

Protótipo

Código-Fonte do Programa

Engenharia de Software:Engenharia de Software: Fase de Verificação, Liberação e Manutenção

Plano de Teste, Procedimentos de teste e resultados de teste

Documentação para o Usuário

Programa Operacional

Código-Fonte modificadoDocumentação modificada

Engenharia de Sistemas de Computador

Projeto de Software

Fase de Análise de RequisitosFase de Análise de Requisitos nprocesso de descoberta e refinamento

–ATORES: cliente e desenvolvedor –PROBLEMA: grande propensão a mal entendidos n"atividade aparentemente simples torna-se complexa"

FACCAMP - Engenharia de Software

Profa. Luciana Romani3

Atividades de Análise:Atividades de Análise:

nreconhecimento do problema navaliação do problema nsíntese da solução (modelagem) nespecificação dos requisitos do software n revisão

FaseFase de Análise de Requisitos de Análise de Requisitos

Plano de

Desenvolvimento do Software

Especificação dos Requisitos do Software

Atividade 1:Atividade 1:

Reconhecimento do ProblemaReconhecimento do ProblemaA meta é o reconhecimento dos elementos básicos do problema, conforme percebidos pelo cliente.

clientes Gerente do projeto analista desenvolvedores

Plano de projeto de softwareEspec. requisitosde software protótipo

FACCAMP - Engenharia de Software

Profa. Luciana Romani4

Atividade 2:Atividade 2: Avaliação do Problema e Síntese da SoluçãoAvaliação do Problema e Síntese da Solução nAvaliar os problemas na situação atual nPara o novo sistema: –definir e elaborar todas as funções do sistema

–identificar dados que o sistema produz e consome

–entender o comportamento do sistema

–estabelecer características de interface

–descobrir restrições do projeto

Atividade 2:Atividade 2: Avaliação do Problema e Síntese da SoluçãoAvaliação do Problema e Síntese da Solução nSintetizar uma ou mais soluções (dentro do alcance delineado no Plano de Projeto do Software)

–O processo de avaliação e síntese continua até que o analista e o cliente concordem que o software pode ser adequadamente especificado.

–É a maior área de esforço n Modelagem

–Durante a atividade de avaliação e síntese devem ser criados modelos do sistemamodelos do sistema para se compreender melhor o fluxo de dados e de controle, o processamento funcional e a operação comportamental, além do conteúdo da informação.

–O modelo serve como fundamento para o projeto de software e como base para a criação de sua especificação

Atividade 3Atividade 3 Especificação de RequisitosEspecificação de Requisitos ndescrição do fluxo e estrutura da informação nrefinamento detalhado de todas as funções do software nestabelecimento das características de interface nidentificação das restrições de projeto nespecificação dos critérios de validação

FACCAMP - Engenharia de Software

Profa. Luciana Romani5

Atividade 4: RevisõesAtividade 4: Revisões nDevem ser efetuadas revisões técnicas e revisões no Plano de Projeto de Software

–as revisões são conduzidas pelo Cliente e pelo Desenvolvedor

–a base para a revisão são os documentos produzidos na Especificação dos Requisitos nO Plano de Projeto do Software deve ser revisto devido ao conhecimento adquirido durante a análise.

Características do Analista de SistemasCaracterísticas do Analista de Sistemas

1)Capacidade para compreender conceitos abstratos, reorganizar esses conceitos em divisões lógicas e sintetizar "soluções" baseado em cada divisão.

2)Capacidade de absorver fatos pertinentes a partir de fontes conflitantes ou confusas.

4)Capacidade de se comunicar bem de forma escrita e verbal.

5)Capacidade de "ver a floresta ao invés das árvores”

Áreas ProblemasÁreas Problemas

1. Aquisição da informação

–que informação deve ser coletada e como ela deve ser representada?

–quem fornece as informações?

–que técnicas e ferramentas estão disponíveis para facilitar a coleta de informações?

FACCAMP - Engenharia de Software

Profa. Luciana Romani6

Áreas ProblemasÁreas Problemas

2. Tamanho do sistema

–como eliminar inconsistências na especificação de grandes sistemas?

–é possível detectar omissões?

–pode um grande sistema ser efetivamente particionado para que se torne intelectualmente administrável?

Áreas ProblemasÁreas Problemas

3. Alterações

–como as alterações efetuadas em outros elementos do software são coordenadas com os requisitos do software?

–como se determina o impacto de uma alteração em outras partes do software aparentemente não relacionadas?

–como se corrige erros na especificação para que não se gere efeitos colaterias?

Causas dos ProblemasCausas dos Problemas n comunicação ineficiente ntécnicas e ferramentas inadequadas ntendências de eliminar a tarefa de Especificação dos Requisitos nfalha de considerar alternativas antes que o software seja especificado

FACCAMP - Engenharia de Software

Profa. Luciana Romani7

Princípios de Análise (4)Princípios de Análise (4) ndomínio de informação do problema ® representado e compreendido (para que a função possa ser entendida + completamente) nmodelos que descrevam a informação, a função e o comportamento do sistema fi desenvolvidos (para que a informação possa ser comunicada compactamente)

Princípios de Análise (4)Princípios de Análise (4) nmodelos (e o problema) fi particionados, de maneira que revele os detalhes em forma de camadas (ou hierarquicamente) (para reduzir a complexidade) nprocesso de análise fi mover-se da informação essencial para os detalhes de implementação (para acomodar as restrições lógicas impostas por requisitos de processamento e as restrições físicas impostas por outros elementos do sistema)

1. Princípio -1. Princípio - Domínio da Informação Domínio da Informação nTodo software é construído para processar dados e eventos.

nOs dados e itens de controle residem no domínio de informação de um problema.

n3 diferentes pontos de vista:

–Fluxo da Informação: maneira pela qual os dados e o controle se modificam à medida que cada um se movimenta pelo sistema

–Conteúdo da Informação: os dados e os itens de controle individuais que compreendem certo item de informação mais amplo.

–Estrutura da Informação: a organização interna de vários itens de controle e de dados

FACCAMP - Engenharia de Software

Profa. Luciana Romani8

2. Princípio2. Princípio - Modelagem - ModelagemO modelo deve ser capaz de modelar a informação que o software transforma, as funções (ou subfunções) que possibilitam que as transformações ocorram e o comportamento do sistema quando a transformação está se desenvolvendo.Os modelos concentram-se naquilo que o sistema deve fazer, não em como ele faz.Papéis importantes do Modelo:

–ajuda o analista a entender a informação, a função e o comportamento de um sistema, tornando a tarefa + fácil e sistemática.

–torna-se o ponto focal para a revisão e, portanto, a chave para a determinação da completitude, consistência e precisão da especificação.

–torna-se a base para o projeto, fornecendo ao projetista uma representação essencial do software, a qual pode ser "mapeada" num contexto de implementação.

3. Princípio 3. Princípio -- Particionamento Particionamento nOs problemas freqüentemente são grandes demais e muito complexos para serem compreendidos como um todo.

nO particionamento divide o problema em partes mais facilmente entendidas nAtravés das interfaces estabelecidas entre as partes, a função global do software pode ser executada.

Particionamento Particionamento horizontalhorizontal

3. Princípio 3. Princípio -- Particionamento Particionamento n Particionamento Horizontal: decomposição funcional do problema nParticionamento Vertical: expõe detalhes crescentes

Particionamento Particionamento vertical vertical

FACCAMP - Engenharia de Software

Profa. Luciana Romani9

4. Princípio4. Princípio - Concepções essenciais e de - Concepções essenciais e de implementaçãoimplementaçãoA concepção essencial dos requisitos do software apresenta as funções a serem realizadas sem tratar dos detalhes de implementação.Ao se concentrar atenção na essência do problema nas primeiras etapas da análise de requisitos, deixa-se as opções abertas para especificar detalhes de implementação durante as últimas etapas de especificação dos requisitos e projeto de software.A concepção de implementação dos requisitos de software apresenta a manifestação das funções de processamento e estruturas de informação no mundo real.Não deve ser interpretada como uma representação do como. Um modelo de implementação representa o modo de operação corrente, ou seja a atribuição existente ou proposta para todos os elementos do sistema.

Princípios de uma boa especificaçãoPrincípios de uma boa especificação ((BalzerBalzer e Goldman) e Goldman)

1. Separe funcionalidade de implementação

2. É necessária uma linguagem de especificação de sistemas orientada ao processo

3. A especificação deve abranger o sistema do qual o software é um componente

4. Uma especificação deve abranger o ambiente no qual o sistema opera

5. Uma especificação de sistema deve ser um modelo cognitivo

6. Uma especificação deve ser operacional

7. A especificação do sistema deve ser tolerante com a não completitude e ser expansível

8. Uma especificação deve ser localizada e fracamente acoplada.

Formato da Especificação de RequisitosFormato da Especificação de Requisitos

I. Introdução - declara as metas e os objetivos do software, descrevendo-os no contexto do sistema baseado em computador

I. Descrição da Informação - descrição detalhada do problema que o software deve resolver

I. Descrição Funcional IV. Descrição Comportamental V. Critérios de Validação VI. Bibliografia

VII. ApêndiceA Especificação pode ser acompanhada de um PROTÓTIPO executável (ou em papel) e/ou um MANUAL PRELIMINAR DE USUÁRIO.

FACCAMP - Engenharia de Software

Profa. Luciana Romani10

Revisão da Especificação (nível macroscópico)Revisão da Especificação (nível macroscópico) nOs revisores tentam garantir que a especificação seja completa, consistente e precisa. Questões:

–Metas e objetivos do software permanecem consistentes com metas e objetivos do sistema?

–Foram descritas as interfaces importantes para todos os elementos do sistema?

–O fluxo e a estrutura de informação são adequadamente definidas para o domínio da informação?

–Os diagramas são claros?

Revisão da Especificação (nível macroscópico)Revisão da Especificação (nível macroscópico)

–As funções importantes permanecem dentro do escopo e cada uma foi adequadamente descrita?

–O comportamento do software é consistente com a informação que ele deve processar e as funções que deve executar?

–As restrições de projeto são realísticas? Qual é o risco tecnológico de desenvolvimento? Requisitos de software alternativos foram considerados?

–Critérios de Validação foram declarados detalhadamente?

Eles são adequados para descrever um sistema bem sucedido?

–Existem inconsistências, omissões ou redundâncias?

–O usuário revisou o Manual Preliminar ou o protótipo?

– Como as estimativas do Plano de projeto de Software foram afetadas?

Revisão da Especificação (nível detalhado)Revisão da Especificação (nível detalhado) nA preocupação é com o enunciado da especificação.

Tenta-se descobrir problemas que possam estar ocultos no conteúdo da especificação n Diretrizes:

–Esteja alerta para perceber conectivos persuasivos e perguntar por que eles estão presentes.

–Procure termos vagos e peça esclarecimento

–Quando forem fornecidas listas que não sejam completas, certifique-se de que todos os itens sejam entendidos

–Esteja certo de que os limites declarados não contenham pressuposições não declaradas

FACCAMP - Engenharia de Software

Profa. Luciana Romani11

Revisão da Especificação (nível detalhado)Revisão da Especificação (nível detalhado) n Diretrizes:

–Cuidado com verbos vagos. Há muitas maneiras de interpretá -los.

–Cuidado com pronomes "pendentes".

–Procure declarações que impliquem certeza e depois peça prova

–Quando um termo for explicitamente definido num lugar, evite utilizar outras definições para o mesmo termo

–Quando uma estrutura for descrita em palavras, verifique se há um gráfico ou uma figura para auxiliar a compreensão

–Quando um cálculo for especificado, desenvolva pelo menos dois exemplos.

Ferramentas de Especificação AutomatizadasFerramentas de Especificação Automatizadas n1 categoria: técnicas automatizadas que nada mais são do que um método manual que foi complementado com uma ferramenta CASE

–Possibilitam que o analista atualize informações e rastreie as conexões entre representações novas e existentes do sistema

–Ex: DEC Design (Digital Equipment Corp.), Design Aid

(Transform Logic Corp.), Excelerator (Intersolv), IEF (Texas Instruments), ADW (Knowledgeware), STP (Interative Development Environments), Teamwork (Cadre Technologies ).

Ferramentas de Especificação AutomatizadasFerramentas de Especificação Automatizadas n2 categoria: técnicas automatizadas que fazem uso de uma notação especial (na maioria dos casos, essa é uma linguagem de especificação de requisitos) que foi explicitamente projetada para processamento usando-se uma ferramenta automatizada.

–Ex: SREM (linguagem de especificação: RSL), PSL/PSA (linguagem de especificação: PSL), TAGS (linguagem de especificação: IORL)

FACCAMP - Engenharia de Software

Profa. Luciana Romani12

ConclusãoConclusão nLogo que a Revisão for concluída, a Espec. de

Requisitos de Software é "assinada" pelo cliente e pelo desenvolvedor nA especificação torna-se um "contrato" de desenvolvimento de software.

nMudanças solicitadas depois que a Espec. for concluída serão consideradas, porém cada mudança posterior pode aumentar o custo e/ou alongar o prazo de entrega nMesmo com os melhores procedimentos de revisão em andamento, uma série de problemas de especificação ainda persiste

Comentários