SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Objetivo da Disciplina

                                                                                 • Apresentar os conceitos básicos de análise e
                                                                                   modelagem de sistemas e a importância
                                                                                   destas práticas para os projetos de software.
 Análise e Projeto de Sistemas                                                   • Apresentar parâmetros de comparação que
                                                                                   possibilitem a identificação da técnica
                                                                                   adequada para cada projeto.
                                                                                 • Capacitar o aluno a elaborar projetos
              Aula expositiva 01                                                   detalhados de sistemas através de técnicas
                                                                                   de análise praticadas no mercado, em
                                                                                   especial a Análise Orientada por Objetos
        Professor José Luiz Bastos                                                 com a utilização do padrão UML (Unified
                                                                                   Modeling Language) e seus diagramas de
                                                                                   representação.
                                                © 2008 José Luiz G. Bastos Jr.                                                          © 2008 José Luiz G. Bastos Jr.




            Ementa da Disciplina                                                               Ementa da Disciplina
1. FUNDAMENTOS DA ANÁLISE DE SISTEMAS                                            3. ANÁLISE ORIENTADA A OBJETOS E PADRÃO
1.1 Análise de sistemas e ciclo de vida dos sistemas.                               UML
1.2 Modelagem de sistemas.                                                       3.1 Conceitos básicos da orientação a objetos.
1.3 Evolução da análise de sistemas.                                             3.2 Os três pilares da orientação a objetos.
                                                                                 3.3 Linguagem de modelagem unificada – UML.
2. ENGENHARIA DE REQUISITOS                                                      3.4 Modelos da UML.
2.1 Técnicas envolvidas
2.2 Dificuldades                                                                 4. MODELAGEM DE SISTEMAS ATRAVÉS DA UML
2.3 Especificação e documentação                                                 4.1 Diagrama de Casos de Uso.
                                                                                 4.2 Diagrama de Classes.
                                                                                 4.3 Diagrama de Seqüência de Casos de Uso.


                                                © 2008 José Luiz G. Bastos Jr.                                                          © 2008 José Luiz G. Bastos Jr.




            Ementa da Disciplina                                                     Análise de Sistemas - Motivação
5. MODELAGEM DE SISTEMAS ATRAVÉS DA UML                                          • Por que analisar? Por que não começar logo pela
5.1 Diagrama de Colaboração.                                                       implementacão?
5.2 Diagrama de Estados.                                                         • Análise de sistemas:
                                                                                    – A análise de sistemas é um processo de análise detalhada
5.3 Diagrama de Atividades.
                                                                                      das necessidades de informação de uma organização, das
                                                                                      características e dos componentes dos sistemas de
                                                                                      informação atualmente utilizados (se existirem) e dos
                                                                                      requisitos dos sistemas de informação sendo propostos.
                                                                                    – Trata da análise detalhada dos componentes e requisitos
                                                                                      de um sistema.
                                                                                 • Objetivos da Análise de Sistemas:
                                                                                    – Padronizar, minimizar a redundância, evitar a ambigüidade e
                                                                                      reduzir a manutenção corretiva das
                                                                                      especificações do sistema.

                                                © 2008 José Luiz G. Bastos Jr.                                                          © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                         1
Análise de Sistemas - Visão Geral                                                      Análise de Sistemas - Visão Geral

• Sistema?                                                                                Sistemas de Informações
  – Um grupo de itens que interagem entre si ou que
    sejam interdependentes, formando um todo unificado,
    orientado para atender objetivos específicos.                                     • Um sistema de informações é um conjunto
  – Um conjunto organizado de doutrinas, idéias ou                                      de elementos inter-relacionados, processos,
    princípios, habitualmente previstos para explicar a                                 dados e tecnologia, cuja finalidade é
    organização ou o funcionamento de um conjunto
                                                                                        alimentar os centros de decisões com as
    sistemático.
  – Exemplos:
                                                                                        informações necessárias à escolha de
     •   Sistema gravitacional                                                          diretrizes de ação que permitam atingir os
     •   Sistema digestivo                                                              objetivos da organização.
     •   Sistema rodoviário
     •   Sistema bancário


                                                     © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




   Análise de Sistemas - Visão Geral                                                      Análise de Sistemas - Visão Geral

• Dados:                                                                              Componentes de um Sistema de
                                                                                       Informações:
  – São seqüências ordenadas de símbolos dos quais se
    pode extrair informações. Porém, não contêm nenhum
    significado quando analisados isoladamente.
                                                                                      •   Hardware;
                                                                                      •   Software;
• Informações:                                                                        •   Pessoas;
                                                                                      •   Dados;
  – São dados tratados, analisados ou processados,                                    •   Procedimentos.
    capazes de transmitir algum conhecimento ao
    receptor.


                                                     © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




   Análise de Sistemas - Visão Geral                                                      Análise de Sistemas - Visão Geral
Classificação quanto à forma de processamento:                                        Classificação quanto à forma de processamento:

                                                                                      • Sistemas em Tempo Real
• Sistemas Batch                                                                          – Controla um ambiente pelo recebimento de dados, seu
  – O usuário normalmente não interage com o computador por                                 processamento e apresentação dos resultados com rapidez
    terminal e as informações são processadas em lotes, de                                  suficiente para afetar o ambiente naquele momento.
    forma seqüencial.
                                                                                      • Sistemas Baseados em Conhecimento
                                                                                          – Esses sistemas estão associados ao campo da inteligência
• Sistemas On-Line                                                                          artificial. Contêm grande quantidade de conhecimentos
  – O usuário interage com o computador por terminal, os dados                              variados para utilização em determinadas tarefas.
    de entrada são fornecidos diretamente do local onde eles
    foram criados e os resultados do processamento são                                • Sistemas Especialistas
    dirigidos diretamente para onde sejam necessários.                                    – São sistemas baseados em conhecimento. Têm embutidos
                                                                                            o conhecimento e a capacidade que os tornam capazes de
                                                                                            funcionar como um especialista.


                                                     © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                             2
Análise de Sistemas - Visão Geral                                             Análise de Sistemas - Visão Geral

  Classificação quanto ao nível organizacional:
                                                                              Sistemas de Processamento de Transações

                                                                                Nível operacional;
                                                                                Apoia operações rotineiras da empresa;
                                                                                Registra transações;
                                                                                Origem dos dados: operações internas;
                                                                                Grau de agregação dos dados: dados analíticos, reais
                                                                              e precisos;
                                                                                Volumes manipulados: grandes;
                                                                                Saídas: relatórios analíticos, alguns sintéticos;
                                                                                Freqüência: periódica;
                                                                                Exemplos: faturamento, estoque, contabilidade etc.

                                             © 2008 José Luiz G. Bastos Jr.                                                    © 2008 José Luiz G. Bastos Jr.




     Análise de Sistemas - Visão Geral                                             Análise de Sistemas - Visão Geral

                                                                              Sistemas de Apoio à Decisão
Sistemas de Planejamento e Controle Operacional
                                                                                Nível tático (média gerência);
  Nível tático (supervisão);
                                                                                Apoia processos decisórios;
  Apoia o planejamento e controle operacional;
                                                                                Trabalha com análise matemática e estatística dos
  Coleta informações sobre o realizado e compara com
                                                                              dados;
o previsto;
                                                                                Origem dos dados: operações internas e fontes
  Origem dos dados: operações internas;
                                                                              externas;
  Grau de agregação dos dados: médio;
                                                                                Grau de agregação dos dados: alto;
  Volumes manipulados: médios;
                                                                                Volumes manipulados: pequenos;
  Saídas: relatórios consolidados;
                                                                                Saídas: gráficos e tabelas;
  Freqüência: periódica;
                                                                                Freqüência: a pedido (ad hoc);
  Exemplos: custos, planejamento e controle de
                                                                                Exemplos: análise de investimentos, análise estatística,
produção, planejamento e controle de projetos.
                                                                              simulação de cenários.
                                             © 2008 José Luiz G. Bastos Jr.                                                    © 2008 José Luiz G. Bastos Jr.




     Análise de Sistemas - Visão Geral                                             Análise de Sistemas - Visão Geral

Sistemas de Planejamento Estratégico                                            Princípios Gerais dos Sistemas:

  Nível estratégico (alta administração);                                       • Quanto mais especializado é um sistema,
  Apoia análise de fatores críticos de sucesso da                                 menos capaz ele é de se adaptar a
empresa: desempenho, mercado e concorrência;                                      circunstâncias diferentes;
  Trabalha com projeções a longo prazo e tendências                             • Quanto maior for um sistema, maior o
do mercado;
                                                                                  número de seus recursos que serão
  Origem dos dados: operações internas e fontes
                                                                                  destinados à manutenção diária;
externas;
  Grau de agregação dos dados: alto;                                            • Os sistemas sempre fazem parte de
  Volumes manipulados: pequenos;                                                  sistemas maiores e sempre podem ser
  Saídas: gráficos e tabelas sofisticados;                                        divididos em sistemas menores;
  Freqüência: a pedido (ad hoc);                                                • Os sistemas CRESCEM.
  Exemplo: sistemas de informações executivas.
                                             © 2008 José Luiz G. Bastos Jr.                                                    © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                3
Análise de Sistemas - Mais definições                                                                           Problemas
•    “A análise de sistemas é frustrante, repleta de relacionamentos
     entre pessoas, indefinida e difícil. Resumindo, é fascinante.
                                                                                               • Depende da clareza do usuário:
     Depois que você é fisgado, os velhos e fáceis prazeres da                                    – É ele o responsável por mostrar ao analista, de
     construção de sistemas nunca mais serão suficientes para                                       maneira clara, quais requisitos o sistema deve
     satisfazê-lo.” (DeMarco, 1989)                                                                 atender.
•    “Análise de sistemas é a atividade que tem como finalidade
     realizar estudos de processos a fim de encontrar o melhor e                               • Depende do entendimento do analista:
     mais racional caminho para que a informação possa ser
     processada.” (Wikipedia)                                                                     – É ele o responsável por identificar e analisar os
                                                                                                    requisitos esperados pelo usuário.
•    Análise de sistemas consiste em identificar, detalhar e                                      – Deve documentar de forma clara o seu trabalho, para
     documentar os processos de negócio para sua automatização                                      que os consumidores do mesmo saibam identificar os
     junto aos usuários. Essa análise deve produzir como resultado
                                                                                                    requisitos esperados pelos usuários.
     uma especificação completa de tudo que o sistema de
     informação deve realizar.


                                                            © 2008 José Luiz G. Bastos Jr.                                                        © 2008 José Luiz G. Bastos Jr.




                                                                                                                      Solução

                                                                                               • Técnicas para identificação e detalhamento
                                                                                                 de requisitos

                                                                                               • Técnicas para modelagem de sistemas




                                                            © 2008 José Luiz G. Bastos Jr.                                                        © 2008 José Luiz G. Bastos Jr.




                           Usuários                                                                                  Usuários

• Principais participantes do processo:
      – O sistema está sendo desenvolvido PARA ELES.                                         Cada projeto possui um elenco diferente de pessoas
      – O sistema automatizará os processos de negócio                                       envolvidas. Um analista de sistemas precisa ter aptidões
        executados POR ELES.                                                                 interpessoais (além do conhecimento da tecnologia), ou
      – Comprometimento dos usuários é fundamental para o                                    seja, deve falar com outras pessoas usando uma
        sucesso do projeto                                                                   “linguagem” diferente.




                                                            © 2008 José Luiz G. Bastos Jr.                                                        © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                   4
Usuários                                                                             Usuários


                                                                                     Classificação por Tipo de Função
O analista de sistemas deve fazer reuniões regulares
com os usuários (também chamados de clientes ou
                                                                                       Operacionais
proprietários). O ideal seria ter um usuário dedicado
integralmente ao projeto. Alguns defendem que o usuário                                    Têm visão local, isto é, não conhecem o processo de
deveria fazer o projeto.                                                                forma global;

                                                                                          Responsáveis por executar as funções do sistema;

                                                                                           Têm uma visão física do sistema, ou seja, imaginam o
                                                                                        funcionamento do sistema considerando a tecnologia de
                                                                                        implementação.


                                                    © 2008 José Luiz G. Bastos Jr.                                                     © 2008 José Luiz G. Bastos Jr.




                        Usuários                                                                             Usuários

  Supervisores
                                                                                       Executivos
     Podem ou não ter uma visão local;
                                                                                          Não têm experiência operacional;
      Geralmente conhecem as operações, pois muitos já
                                                                                           Têm iniciativa sobre o projeto;
   foram usuários operacionais. Além disso, têm que
   supervisionar os usuários operacionais;
                                                                                           Possuem uma visão global;
      Orientados por considerações orçamentárias (ex.:reduzir
                                                                                           Têm preocupações estratégicas;
   o quadro de funcionários ou aproveitá-los melhor);
                                                                                           Capazes de lidar com modelos abstratos.
      Normalmente, agem como intermediários em relação aos
   níveis mais elevados.

                                                    © 2008 José Luiz G. Bastos Jr.                                                     © 2008 José Luiz G. Bastos Jr.




                        Usuários                                                                             Usuários

Classificação por Nível de Experiência
                                                                                        Novato arrogante
  Amador
                                                                                            Participou de alguns projetos;
     Nunca trabalhou com um computador;
                                                                                            Possui ou trabalha com computadores;
     Tem dificuldade para entender os modelos produzidos
   pelos analistas;                                                                        Por conhecer algumas ferramentas, gosta de opinar
                                                                                         sobre as tecnologias a serem usadas para implementar
     Receia ser substituído pelo sistema ou ter sua                                      o sistema (normalmente, tem certeza que opina certo,
   importância minimizada.                                                               mas opina errado!).




                                                    © 2008 José Luiz G. Bastos Jr.                                                     © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                        5
Usuários                                                                                Usuários
                                                                                            Classificação quanto ao conhecimento de
                                                                                              tecnologia:
Experiente                                                                                     – Baixo:
                                                                                                  • Não compreende a linguagem técnica
    Conhece a análise de sistemas;                                                             – Médio
                                                                                                  • Tem algum conhecimento tecnológico
    Tem experiência de outros projetos;
                                                                                                  • Pode perder o foco e se preocupar com a solução
                                                                                                    tecnológica
     Discute sobre as ferramentas de modelagem sendo
  utilizadas.                                                                                  – Alto
                                                                                                  • Tem um bom conhecimento tecnológico
                                                                                                  • Pode perder o foco e se preocupar muito com
                                                                                                    solução tecnológica


                                                           © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




                  Equipe do Projeto                                                                       Equipe do Projeto

    Gerente de Projeto                                                                         Auditores, Controle de Qualidade e
                                                                                               Padronizadores
As principais funções de um gerente de projeto são:
                                                                                            Podem ser internos ou externos. Responsáveis por
  Gerenciar e alocar recursos de toda a equipe técnica;                                     garantir que o sistema será desenvolvido de acordo com
                                                                                            os vários padrões internos e externos da organização,
  Prestar constas junto à administração superior;
                                                                                            especialmente aqueles voltados à segurança e ao
  Encaminhar problemas identificados no decorrer do                                         controle de qualidade do produto final.
projeto;

 Gerentes de níveis mais altos se concentram nos aspectos
mais abstratos do sistema.


                                                           © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




                                                                                                          Equipe do Projeto
                  Equipe do Projeto

Alguns problemas        dos     Auditores     que     devem           ser                      Analistas de sistemas
considerados:

  Normalmente não se envolvem no projeto até que ele tenha sido                             • Analisam, detalham e documentam os
concluído. Nesse ponto, modificar o sistema é muito mais difícil;                             processos de negócios que serão
  Às vezes não estão habituados com a notação utilizada;
                                                                                              automatizados
                                                                                            • Ajudam os usuários a encontrarem as
  Geralmente, estão mais interessados na forma do que na
substância.                                                                                   soluções mais apropriadas
                                                                                            • Atuam como mediadores entre os diversos
 Verificam conformidades com padrões:
                        Padrões governamentais
                                                                                              participantes do processo
                      Padrões internos da empresa
                 Padrões do processo de desenvolvimento

                                                           © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                             6
Equipe do Projeto                                                                       Equipe do Projeto

Um analista de sistemas deve ter:                                                     O analista desempenha as seguintes funções:

                                                                                        Mediador: como os usuários dificilmente chegam a um consenso, o
  Habilidade de relacionamento social;                                                analista deve usar a arte da diplomacia e da negociação. O sistema
                                                                                      deve ser feito da forma como os usuários solicitaram;
   Conhecimento da tecnologia;                                                           Líder de projeto: Como o analista entrou antes no projeto,
                                                                                      freqüentemente também é o projetista e normalmente é uma pessoa
   Conhecimento dos processos de negócio                                              mais experiente, existe uma tendência natural de que ele assuma o
                                                                                      papel de gerente de projeto.

   Mente lógica e organizada (visualizar o
sistema sob diferentes perspectivas), ou seja,
raciocínio lógico e abstrato

                                                     © 2008 José Luiz G. Bastos Jr.                                                            © 2008 José Luiz G. Bastos Jr.




                 Equipe do Projeto                                                                       Equipe do Projeto
                                                                                         Projetistas de Sistemas
  Arqueólogo e escriba: deve trazer à luz os detalhes e
documentar as atividades cujos detalhes passam de geração em                          • Arquitetos do sistema
geração de usuários;
                                                                                      • Recebem o resultado do trabalho dos analistas de sistemas
  Inovador: não se limitar apenas a implementar as funções
atuais do sistema mas ajudar a encontrar produtos e mercados                          • Usam os requisitos levantados para desenhar a arquitetura do
novos;                                                                                sistema que servirá de base para o trabalho dos
                                                                                      programadores
                                                                                      • Interação constante com os analistas
                                                                                      • Podem verificar a inviabilidade de alguns requisitos




                                                     © 2008 José Luiz G. Bastos Jr.                                                            © 2008 José Luiz G. Bastos Jr.




                 Equipe do Projeto                                                                       Equipe do Projeto

   Projetistas de Sistemas
                                                                                           Programador
• O analista de sistemas deve fornecer informações
suficientemente detalhadas para que o projetista elabore um                            • Responsável por codificar e testar (usando uma
projeto tecnologicamente bom.                                                          linguagem de programação) os módulos dos sistemas
                                                                                       modelados pelos projetistas.
• O projetista deve fornecer informações suficientes para que o
analista possa dizer se os requisitos dos usuários podem ser                           • Em um cenário ideal, o programador não deveria ter
completamente atendidos ou devem ser modificados.                                      contato com o analista, já que se baseia apenas no
                                                                                       trabalho feito pelo projetista.

                                                                                       • Há programadores que são responsáveis apenas por
                                                                                       dar manutenção em um sistema.

                                                     © 2008 José Luiz G. Bastos Jr.                                                            © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                7
Equipe do Projeto                                                                                 Equipe do Projeto


   Programador

Segundo Zvegintzov (1987) - (autor do artigo Software
Maintenance News):

   Até o presente momento, o principal profissional da computação era alguém que podia
   aprender o suficiente sobre as necessidades das empresas para expressá-las na
   linguagem dos computadores. No futuro, quando nossa sociedade tornar-se
   irreversivelmente computadorizada, o principal profissional será alguém que possa
   aprender o suficiente sobre sistemas computadorizados para expressá-los em linguagem
   humana. Sem essa pessoa, teremos perdido o controle de nossa sociedade. Esse alguém
   é o engenheiro às avessas. Os mantenedores de software são os engenheiros às avessas
   da sociedade.




                                                                           © 2008 José Luiz G. Bastos Jr.                                           © 2008 José Luiz G. Bastos Jr.




                       Equipe do Projeto                                                                           Ciclo de vida de um projeto

 • Mais integrantes?                                                                                        Definição:

    –   Testadores                                                                                          • “Um ciclo de vida de projeto bem definido
    –   Analistas de usabilidade                                                                              oferece mecanismos para planejar e
    –   Engenheiros de processo
                                                                                                              acompanhar atividades de forma mais
    –   Gestores de configuração
                                                                                                              precisa, possibilitando a detecção de
    –   E por aí vai...
                                                                                                              problemas de forma rápida (YOURDON,
                                                                                                              1990)”.




                                                                           © 2008 José Luiz G. Bastos Jr.                                           © 2008 José Luiz G. Bastos Jr.




          Etapas do ciclo de vida clássico                                                                                   Questões

                                                                                                            1) Quais são os problemas do ciclo de
                                                                                                               desenvolvimento de sistemas apresentado
                                                                                                               na figura acima? De que forma esses
                                                                                                               problemas podem ser solucionados ou pelo
                                                                                                               menos minimizados?
                                                                                                            2) Esse ciclo de vida pode ser considerado
                                                                                                               realístico para projetos de software? Por
                                                                                                               quê?
                                                                                                            3) De que forma a fase de análise interfere e
                                                                                                               sofre interferência das outras etapas?


                                                                           © 2008 José Luiz G. Bastos Jr.                                           © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                     8
Etapas do ciclo de vida de                                                                                       Fases
          desenvolvimento de software
                                                                                                   Concepção    Fase na qual necessidades dos usuários e conceitos da
                                                                                                                aplicação são analisados o suficiente para justificar a
                                                                                                                especificação de um produto de software, resultando em uma
                                                                                                                proposta de especificação.

                                                                                                   Elaboração   Fase na qual a especificação do produto é detalhada o
                                                                                                                suficiente para modelar conceitualmente o domínio do
                                                                                                                problema, validar os requisitos em termos deste modelo
                                                                                                                conceitual e permitir um planejamento acurado da fase de
                                                                                                                construção.

                                                                                                   Construção   Fase na qual é desenvolvida (desenhada, implementada e
                                                                                                                testada) uma liberação completamente operacional do
                                                                                                                produto, que atende aos requisitos especificados.

                                                                                                   Transição    Fase na qual o produto é colocado à disposição de uma
                                                                                                                comunidade de usuários para testes finais, treinamento e uso
                                                                                                                inicial.




                                                                  © 2008 José Luiz G. Bastos Jr.                                                                 © 2008 José Luiz G. Bastos Jr.




                           Fluxos                                                                          Modelos de ciclo de vida
Requisitos      Visa obter um conjunto de requisitos de um produto,
                                                                                                   Modelo Codifica-Remenda:
                acordado entre cliente e fornecedor.

Análise         Visa detalhar, estruturar e validar os requisitos, em termos
                de um modelo conceitual do problema, de forma que estes
                possam ser usados como base para o planejamento e
                acompanhamento detalhados da construção do produto.


Desenho         Visa formular um modelo estrutural do produto, que sirva de
                base para a implementação, definindo os componentes a
                desenvolver e a reutilizar, assim como as interfaces entre
                eles.
Implementação   Visa detalhar e implementar o desenho através de
                componentes de código e de documentação associada.


Testes          Visa verificar os resultados da implementação, através do
                planejamento, desenho e realização de baterias de testes.




                                                                  © 2008 José Luiz G. Bastos Jr.                                                                 © 2008 José Luiz G. Bastos Jr.




             Modelos de ciclo de vida                                                                      Modelos de ciclo de vida

Modelo Codifica-Remenda:                                                                           Modelo em cascata:
                                                                                                   • As fases são executadas em estrita
                                                                                                     sequencia
•   Provavelmente o mais usado
                                                                                                   • Pouco realiza, não permite erros
•    Não exige sofisticação técnica ou gerencial
                                                                                                   • Pontos de controle bem definidos facilitam
•    Alto risco                                                                                      gestão
•    Impossível de gerir                                                                           • Teoricamente é confiável e utilizável em
•    Não permite assumir compromissos                                                                projetos de qualquer escala
    confiáveis                                                                                     • Rígido e burocrático
                                                                                                   • Baixa visibilidade para o usuário, que só
                                                                                                     recebe o resultado no final do projeto

                                                                  © 2008 José Luiz G. Bastos Jr.                                                                 © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                                  9
Modelos de ciclo de vida                                                Modelos de ciclo de vida

Modelo em cascata com realimentação:                                    Modelo em espiral:
• E possível voltar à fase anterior
• Mais fexível




                                       © 2008 José Luiz G. Bastos Jr.                                         © 2008 José Luiz G. Bastos Jr.




        Modelos de ciclo de vida                                                Modelos de ciclo de vida

Modelo em espiral:                                                      Modelo de entrega evolutiva:
• Software é desenvolvido em uma série de
  iterações                                                             • Combinação entre o modelo de Espiral e
• Cada nova iteração é um novo ciclo na                                   Cascata
  espiral
• Construção é feita de forma incremental
• Utilizado em processos ágeis, como o XP




                                       © 2008 José Luiz G. Bastos Jr.                                         © 2008 José Luiz G. Bastos Jr.




Projeto – Empresas de pequeno porte                                      Projeto – Empresas de grande porte

• Normalmente é iniciado após um acordo                                 • Existe um processo formal de engenharia de
  verbal entre os usuários e a equipe do                                  software
  projeto                                                               • Existem meios para verificar se o processo
• O desenvolvimento é feito logo após esse                                está sendo seguido
  acordo verbal, geralmente sem a existência                            • Todos conhecem o processo
  de análise.                                                           • O gerente é o responsável por organizar o
• Geralmente não existe um processo de                                    projeto de acordo com o processo
  desenvolvimento formal. Se existe,
  geralmente não é seguido ou verificado.



                                       © 2008 José Luiz G. Bastos Jr.                                         © 2008 José Luiz G. Bastos Jr.




                                                                                                                                               10
Modelos                                                                                Modelos

• A criação de um modelo corresponde à                                            • É a partir das especificações dos clientes e
  utilização de uma linguagem que possa ser                                         usuários que os modelos serão construídos e
  empregada por analistas e compreendida por                                        a partir dos modelos que o produto será
  usuários, para representar um sistema.                                            desenvolvido, portanto, o envolvimento do
• Os modelos são os principais produtos da                                          cliente é de fundamental importância nesta
  análise e são fundamentais para se obter um                                       etapa. Os modelos podem ser utilizados
  produto de software de qualidade, dentro de                                       também para a validação inicial do produto, o
  prazos e custos preestabelecidos.                                                 que os torna ainda mais importantes.




                                             © 2008 José Luiz G. Bastos Jr.                                                              © 2008 José Luiz G. Bastos Jr.




                      Modelos

Observação Importante:

• Um analista de sistemas, além de saber                                            Análise e Projeto de Sistemas
  construir modelos, deve se aprofundar no
  que está sendo modelado, seja um sistema
  de matrícula, vendas, controle de estoque,
  bancário, etc. Durante a modelagem, o                                                            Aula expositiva 02
  analista muitas vezes se torna um
  especialista na área.
                                                                                             Professor José Luiz Bastos


                                             © 2008 José Luiz G. Bastos Jr.                                                              © 2008 José Luiz G. Bastos Jr.




                                                                                    Fatores de insucesso em projetos de
                      Premissas
                                                                                                  software
                                                                              Por que os projetos de software são cancelados antes de serem concluídos?
Para desenvolver sistemas úteis, de alta qualidade e
que realmente satisfaçam as necessidades dos                                                    Fator de insucesso                 % dos projetos
usuários, é necessário considerar os seguintes                                      Requisitos incompletos                                            13,1
aspectos:                                                                           Falta de envolvimento dos usuários                                12,4
                                                                                    Falta de recursos                                                 10,6
  Produtividade;                                                                    Expectativas não-realistas                                           9,9
                                                                                    Falta de suporte executivo                                           9,3
  Confiabilidade;
                                                                                    Alterações nos requisitos e especificações                           8,7
  Manutenibilidade.                                                                 Falta de planejamento                                                8,1
                                                                                    O software não é mais necessário                                     7,5
                                                                                    Falta de gerenciamento de TI                                         6,2
                                                                                    Outros                                                            14,2
                                             © 2008 José Luiz G. Bastos Jr.                                                              © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                          11
Engenharia dos Requisitos                                                              Engenharia dos Requisitos


 • Motivação                                                                             • Princípios
    • Os problemas têm que ser enunciados antes de serem                                   • Boas especificações de requisitos são indispensáveis.
      resolvidos.                                                                          • Não representam custos supérfluos, mas investimentos
                                                                                             necessários.
    • Nada é mais caro do que resolver os problemas errados.
                                                                                           • A participação dos usuários na engenharia de requisitos é
    • A boa engenharia de requisitos reduz a instabilidade de                                fundamental para que suas necessidades sejam corretamente
      sistemas de informação:                                                                atendidas pelo produto.
        • Ajuda a obter os requisitos corretos em um estágio anterior                      • Uma boa especificação de requisitos custa tempo e
          ao desenvolvimento.                                                                dinheiro;
        • O custo de correção de defeitos cresce muito ao longo do                         • A ausência de uma boa especificação de requisitos custa
          tempo.                                                                             muito mais tempo e dinheiro.




                                                        © 2008 José Luiz G. Bastos Jr.                                                        © 2008 José Luiz G. Bastos Jr.




              Fase de Elaboração                                                             Levantamento dos Requisitos
• Fase na qual a especificação do produto é detalhada
  o suficiente para modelar conceitualmente o domínio                                    • Levantamento das funções, interfaces e
  do problema, validar os requisitos em termos deste                                       requisitos não-funcionais desejados para o
  modelo conceitual e permitir um planejamento                                             produto.
  acurado da fase de construção.
                                                                                         • Requisitos levantados apenas em nível
                                                                                           necessário para o estabelecimento de um
• É dividida em duas iterações:                                                            entendimento inicial entre usuários, clientes e
                                                                                           desenvolvedores.
   • Levantamento dos Requisitos: captura dos requisitos                                 • Levantamento de requisitos focalizando os
     junto aos usuários.
                                                                                           usuários.
   • Análise dos Requisitos: detalhamento e validação dos
     requisitos levantados junto aos usuários.                                           • Método típico:
                                                                                            * oficinas de levantamento de requisitos.
                                                        © 2008 José Luiz G. Bastos Jr.                                                        © 2008 José Luiz G. Bastos Jr.




            Análise dos Requisitos                                                                Análise dos Requisitos

 • Detalhamento e análise dos requisitos.                                                • Foco na visão que os desenvolvedores têm
                                                                                           dos requisitos do produto, ainda dentro do
 • Modelagem conceitual dos elementos                                                      espaço de problema e não do espaço de
   relevantes do domínio do problema e uso                                                 solução.
   desse modelo para validação dos requisitos e
   planejamento detalhado da fase de
   Construção.                                                                           • Métodos típicos:
                                                                                           * oficinas de detalhamento de requisitos;
                                                                                           * entrevistas.



                                                        © 2008 José Luiz G. Bastos Jr.                                                        © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                               12
Técnicas para Levantamento e Análise de                                               Técnicas para Levantamento e Análise de
                Requisitos                                                                            Requisitos
• Freqüentemente, falhas de comunicação e de
  entendimento entre a equipe de                                                       • Metodologia mais utilizada pelas empresas:
  desenvolvimento e clientes envolvidos                                                  • Entrevista individual entre o analista de sistemas e os
                                                                                           usuários.
  resultam em erros de especificação cuja
                                                                                       • Vantagens:
  posterior correção em sistemas já                                                      • Praticidade e fácil aplicação.
  construídos compromete prazos e custos                                               • Desvantagens:
  previstos.                                                                             • Lentidão do processo;
                                                                                         • Comprometimento:
                                                                                            • Da qualidade dos requisitos resultantes;

                         $$$                                                                • Da convergência de interesses entre os usuários;
                                                                                            • Consenso na priorização dos requisitos.




                                                      © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




 Técnicas para Levantamento e análise de
                Requisitos
                                                                                                      Metodologia JAD

 • Técnicas de dinâmica de grupo:                                                      • Benefícios:
    • Eficazes na agilização do processo;                                                • Redução da necessidade de manutenção nos aplicativos
    • Redução nas falhas de comunicação;                                                   desenvolvidos com o seu auxílio;
    • Metodologia JAD*:                                                                  • Redução de custos;
                                                                                         • Maior satisfação dos usuários, pois as aplicações atendiam ao
       • Uma abordagem usando um líder NEUTRO para
                                                                                           que eles realmente desejavam;
          orientar usuários através de um processo interativo
          e flexível, obtendo-se CONSENSO sobre um                                       • Maior entrosamento entre a área de Sistemas de Informações
          assunto pré-determinado.                                                         e os Departamentos Usuários;
                                                                                         • Menor necessidade de modificações durante o processo de
                                                                                           desenvolvimento;
                                                                                         • Nivelamento das expectativas de ambas as partes entre outros.
 *Joint Application Design
     • Metodologia desenvolvida nos anos 70 pela IBM – Canadá;
     • Objetivo inicial: levantamento de requisitos e desenho de
        interfaces de sistema;
                                                      © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




                 Metodologia JAD                                                                      Metodologia JAD

• Com o passar do tempo, JAD passou a ser
  utilizado:                                                                           • Componentes básicos de um JAD:
  • Em todas as fases do cliclo de desenvolvimento de software                           • Patrocinador do projeto:
    e não apenas durante o levantamento de requisitos (Joint
    Application Development);
                                                                                            • Possui poder de decisão e fornece os recursos
                                                                                              necessários para o projeto.
  • Planejamento de projetos em geral;
  • Planejamento estratégico;
                                                                                         • Líder da sessão:
  • Tomada de decisões, de qualquer natureza, que necessita                                 • Responsável por conduzir a sessão de forma
    de um consenso entre várias pessoas das diversas áreas de                                 NEUTRA.
    uma organização (Workshops).                                                         • Documentador:
                                                                                            • Responsável por redigir as decisões tomadas em
                                                                                              ata;




                                                      © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                              13
Metodologia JAD                                                                        Metodologia JAD

• Componentes básicos de um JAD:                                                   • Por que usar JAD?
  • Usuários finais:                                                                   •   Redução do tempo de desenvolvimento do software;
     • Conhecedores do negócio da aplicação;                                           •   Aumento da qualidade do software;
                                                                                       •   Aumento da produtividade;
     • Definem as necessidades do sistema em nível
                                                                                       •   Redução do custo;
       apropriado de detalhes;
                                                                                       •   Maior motivação e comprometimento da equipe;
  • Desenvolvedores:
                                                                                       •   Redução de alteração de requisitos;
     • Tomam conhecimentos das necessidades dos                                        •   Visão global do sistema pelos envolvidos;
       usuários finais e da aplicação durante a sessão de
       JAD;
     • Respondem questões técnicas;




                                                  © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




               Metodologia JAD                                                                     Oficina de Requisitos

• Sucesso de um JAD depende:
  • Liderança da sessão de forma eficiente;                                          • Definição do Local:
  • Participação de usuários finais, executivos e                                          ☺ Afastado do local de trabalho, onde os
    desenvolvedores;
                                                                                            participantes não possam ser interrompidos;
  • Alcance da sinergia do grupo durante a sessão.
                                                                                           ☺ Sem interferências externas (celular, bip, etc...);
                                                                                           ☺ Baixo nível de ruído;
                                                                                           ☺ Mesas arrumadas em “U” (se possível);
                                                                                           ☺ Serviço de café.




                                                  © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




       Principais Problemas no                                                                Principais Problemas no
     Desenvolvimento de Sistemas                                                            Desenvolvimento de Sistemas


                                                                                   Demanda reprimida
  Problemas de Produtividade
                                                                                   O backlog dos sistemas pode ser dividido em três
Os dois aspectos mais importantes desse problema                                   categorias:
são:
                                                                                   • Visível:
  A demanda reprimida (backlog) por novos sistemas;
                                                                                   Sistemas solicitados oficialmente pelos usuários e que
  O tempo necessário para construir um novo sistema.                               foram aceitos e tiveram suas verbas aprovadas pela
                                                                                   gerência. Ainda não foram iniciados por falta de
                                                                                   recursos humanos (analistas, programadores etc.).

                                                  © 2008 José Luiz G. Bastos Jr.                                                         © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                          14
Principais Problemas no                                                           Principais Problemas no
         Desenvolvimento de Sistemas                                                       Desenvolvimento de Sistemas


• Invisível:                                                                       Tempo de desenvolvimento

Sistemas que os usuários sabem que precisam, mas não                               Existe a preocupação com a perda de oportunidades de
se dão ao trabalho de solicitar oficialmente, porque ainda                         negócios, devido à incapacidade de desenvolver os
estão aguardando outros projetos.                                                  sistemas de apoio necessários no tempo necessário.
                                                                                   Muitos projetos nem são terminados. Dentre os principais
• Desconhecido:                                                                    motivos para estouro de tempo em projetos, podemos
                                                                                   citar:
Sistemas que os usuários ainda não sabem que precisam
mas que emergirão logo que sejam concluídos outros                                   Problemas técnicos;
sistemas dos backlogs visível e invisível.

                                                  © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




           Principais Problemas no                                                           Principais Problemas no
         Desenvolvimento de Sistemas                                                       Desenvolvimento de Sistemas


                                                                                   O tempo necessário para criar um sistema pode ser
  Problemas gerenciais;                                                            reduzido através de algumas técnicas:

  Inexperiência da equipe;                                                            Contratação de mais programadores e analistas de
                                                                                   sistemas;
  Falta de tempo para análise e projeto;
                                                                                      Contratação de programadores e analista de sistemas
  Escasso envolvimento por parte da gerência ou                                    mais talentosos, oferecendo-lhes melhores condições de
usuários.                                                                          trabalho;




                                                  © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




           Principais Problemas no                                                           Principais Problemas no
         Desenvolvimento de Sistemas                                                       Desenvolvimento de Sistemas


                                                                                   Razões para os analistas         terem   ciência        dos
   Deixar que   usuários     desenvolvam   seus   próprios                         problemas de produtividade:
sistemas;
                                                                                     A produtividade e qualidade do trabalho dos
  Melhores linguagens de programação;                                              programadores está diretamente ligada ao serviço feito
                                                                                   pelo analista;
  Ferramentas automatizadas de desenvolvimento.
                                                                                     Algumas das técnicas de aumento de produtividade
                                                                                   têm importância direta para os analistas;



                                                  © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                    15
Principais Problemas no                                                                   Principais Problemas no
          Desenvolvimento de Sistemas                                                               Desenvolvimento de Sistemas

                                                                                              Problemas de Confiabilidade

  A produtividade da análise é um problema politicamente                                   Os erros em sistemas podem passar desapercebidos (ex.:
sensível;                                                                                  uma impressão de relatório não formatada corretamente)
                                                                                           ou causar graves acidentes (problema em sistema de
  Usuários e gerente têm ansiedade pelo início da                                          tráfego aéreo).
programação;
                                                                                           Os erros em software são difíceis de serem extintos
  Usuários não entendem a importância da especificação.                                    porque:

                                                                                             É difícil descobrir como solucionar o erro;



                                                          © 2008 José Luiz G. Bastos Jr.                                                                   © 2008 José Luiz G. Bastos Jr.




            Principais Problemas no                                                                   Principais Problemas no
          Desenvolvimento de Sistemas                                                               Desenvolvimento de Sistemas

                                                                                            A figura 1 mostra o número de erros encontrados em
  Deve-se encontrar todos os pontos de correção;
                                                                                            função do tempo decorrido (YOURDON, 1990).
  Alta probabilidade de introduzir novos erros (efeitos
colaterais);

  Nem sempre são reportados pelos usuários;

  Dificuldade de reproduzir o erro.


                                                                                                         Figura 1 – Erros descobertos em função do tempo




                                                          © 2008 José Luiz G. Bastos Jr.                                                                   © 2008 José Luiz G. Bastos Jr.




            Principais Problemas no                                                                   Principais Problemas no
          Desenvolvimento de Sistemas                                                               Desenvolvimento de Sistemas
                                                                                                 Manutenibilidade
Sobre a curva na figura 1 é importante notar:
                                                                                             A correção de erros é apenas um dos aspectos da
  Inicialmente o nº de erros encontrados é pequeno (usuários sem
segurança para apontar erros), como indica T1;
                                                                                             manutenção de sistemas. A manutenção também está
                                                                                             vinculada a fatores como:
  À medida que os usuários se familiarizam com sistema os erros são
percebidos e reportados (entre T1 e T2);                                                       Modificações no hardware;

  Após um tempo (após T2) o nº de erros encontrados começa a                                   Novos dispositivos;
diminuir (sistema começa a tornar-se mais estável);
                                                                                               Necessidade de melhorar o desempenho;
  O número de erros volta a crescer devido a correções ou modificações
que introduzem novos erros (após T3);                                                          Garantir maior confiabilidade;

  A curva nunca atinge zero.                                                                   Alterações dos requisitos.
                                                          © 2008 José Luiz G. Bastos Jr.                                                                   © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                            16
Principais Problemas no                                                              Principais Problemas no
           Desenvolvimento de Sistemas                                                          Desenvolvimento de Sistemas

    A manutenção de um sistema deve ser sempre                                             Outros Problemas – Portabilidade
    acompanhada de modificações na especificação do
    sistema. Entretanto, isso nem sempre ocorre devido a                                   Consiste em escrever sistemas que podem ser
    fatores como:                                                                       transferidos para outras plataformas;

      Analista alocado para outro projeto;                                                 Apesar de não ser um problema da alçada do analista,
                                                                                        ele deve especificar que há essa necessidade;
      Urgência na implantação das modificações;
                                                                                          A portabilidade geralmente provoca ineficiência já que
     Inexistência de uma política            que   valorize          a                  recursos disponíveis de determinada plataforma não são
    manutenção da especificação.                                                        aproveitados.


                                                       © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




             Principais Problemas no                                                              Principais Problemas no
           Desenvolvimento de Sistemas                                                          Desenvolvimento de Sistemas

                                                                                               Principais causas dos Problemas
     Outros Problemas – Segurança

À medida que os sistemas de informações crescem em                                              Ausência de Planejamento de Sistemas;
  número e importância, o risco de violações aumenta.
                                                                                                Ausência de Administração de Dados;
A    segurança de sistemas         de   informações       consiste
     basicamente em:                                                                            Não utilização de Métodos e Técnicas Formais
                                                                                               de Desenvolvimento;
     Impedir o acesso de pessoas não autorizadas;
                                                                                                Não utilização de Técnicas e Ferramentas;
      Conceder acesso a certas funcionalidades apenas a
     algumas pessoas.                                                                           Adoção de Metodologias não ambientadas à
                                                                                               realidade da empresa;
                                                       © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




             Principais Problemas no                                                              Principais Problemas no
           Desenvolvimento de Sistemas                                                          Desenvolvimento de Sistemas

          Principais causas dos Problemas(cont.)                                           Nota Especial Sobre Qualidade

           Falta de definição precisa dos objetivos e                                     A qualidade de um sistema pode ser mensurada
          requisitos do sistema;                                                        considerando a eficácia e a eficiência obtidas:

           Dificuldade de comunicação e/ou falta de                                      Eficácia = Resultados Obtidos / Resultados Pretendidos
          entrosamento entre as pessoas envolvidas no
          processo, causada por problemas de linguagem                                   Eficiência = Resultados Obtidos / Recurso Consumido
          ou rivalidade entre usuários;

           Falta de precisão e clareza na especificação dos
          sistemas.

                                                       © 2008 José Luiz G. Bastos Jr.                                                   © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                         17
Principais Problemas no                                                                  Identificação, análise e gerência de
        Desenvolvimento de Sistemas                                                                             requisitos

 Problemas que denotam falta de qualidade em                                                   1 Técnicas de Entrevistas e de Coleta de Dados
 sistemas:
                                                                                                Por que e para que fazemos entrevistas ?
    Não contribuem para os objetivos da empresa;
                                                                                                    Para coletar informações armazenadas em cérebros sobre o
                                                                                                  comportamento de um sistema atual ou um novo sistema;
    Não atendem às necessidades dos usuários;
                                                                                                    Para verificar como compreendemos o comportamento de
    Não são confiáveis;                                                                           um sistema;

                                                                                                    Para elaborar um estudo de viabilidade de desenvolvimento
    São ineficientes;                                                                             de um sistema.

    Têm manutenção constante, difícil e onerosa.

                                                             © 2008 José Luiz G. Bastos Jr.                                                           © 2008 José Luiz G. Bastos Jr.




    Identificação, análise e gerência de                                                           Identificação, análise e gerência de
                 requisitos                                                                                     requisitos


2 Tipos de Entrevistas                                                                         3 Problemas ao Entrevistar Usuários

  Entrevista em forma de reunião pessoal;                                                        Entrevistar a pessoa errada no momento errado;

  Entrevista em forma de questionários abertos e fechados;                                       Fazer perguntas erradas e obter respostas erradas;

  Gravação de descrição de expectativas do usuário em relação                                    Criar ressentimentos recíprocos.
ao sistema.




                                                             © 2008 José Luiz G. Bastos Jr.                                                           © 2008 José Luiz G. Bastos Jr.




    Identificação, análise e gerência de                                                           Identificação, análise e gerência de
                 requisitos                                                                                     requisitos
4 Diretrizes para a realização de entrevistas

  Desenvolva um plano geral de entrevista;                                                    5 Possíveis Formas de Resistência na Entrevista
  Certifique-se de que você tem autorização para falar com os
                                                                                                Você está tomando muito o meu tempo;
usuários;
                                                                                                Você está ameaçando o meu emprego;
  Planejar a entrevista para fazer uso eficiente do tempo;

  Utilize ferramentas automatizadas que sejam adequadas, mas não                                Você não conhece nossa empresa e ainda quer nos dizer como deve
abuse;                                                                                        ser feito o novo sistema?

  Tente descobrir em que informações o usuário está mais
interessado;



                                                             © 2008 José Luiz G. Bastos Jr.                                                           © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                       18
Identificação, análise e gerência de                                                      Identificação, análise e gerência de
                requisitos                                                                                requisitos


                                                                                         6 Outros Problemas a Enfrentar
5 Possíveis Formas de Resistência na Entrevista(cont.)
                                                                                           Uma discussão que focalize mais os problemas                                                                de
  Você está tentando mudar o modo como as coisas são feitas                              implementação do que os problemas de requisitos;
aqui;
                                                                                           Confusão entre sintomas e problemas;
  Nós, usuários, não queremos este sistema;
                                                                                            O usuário pode ser incapaz de explicar o que ele quer que o
  Por que você está desperdiçando nosso tempo com esta                                   sistema faça ou pode mudar de opinião;
entrevista?
                                                                                           Desentendimento entre usuários de mesmo nível, subordinados e
                                                                                         chefes.



                                                        © 2008 José Luiz G. Bastos Jr.                                                                                                     © 2008 José Luiz G. Bastos Jr.




   Identificação, análise e gerência de                                                      Identificação, análise e gerência de
                requisitos                                                                                requisitos

7 Formas Complementares de Coleta de Dados                                               Requisitos Funcionais: Descrevem a funcionalidade
                                                                                         ou os serviços que se espera que o sistema forneça.
  Demonstrações feitas pelos fornecedores;                                               Descrevem a função de sistema detalhadamente, suas
                                                                                         entradas e saídas, excessões, etc. Exemplos:
  Visitas a outras empresas com sistemas semelhantes;
                                                                                                 “O sistema deve permitir que cada professor realize o
  Coleta de dados em manuais, formulários, relatórios, listagens de                           lançamento de notas das turmas nas quais lecionou”;
programas, etc.;
                                                                                               “O sistema deve permitir que um aluno realize a sua
  Pesquisa externa em instituições como IEEE e ACM.                                           matrícula nas disciplinas oferecidas em um semestre”;

                                                                                                 “O sistema deve permitir que o aluno consulte todo o seu
                                                                                              histórico de disciplinas cursadas”.


                                                        © 2008 José Luiz G. Bastos Jr.                                                                                                     © 2008 José Luiz G. Bastos Jr.




   Identificação, análise e gerência de                                                      Identificação, análise e gerência de
                requisitos                                                                                requisitos

                                                                                          Requisitos Não Funcionais:
Requisitos Não Funcionais: São aqueles que não
dizem respeito diretamente às funções específicas
                                                                                                                                             Requisitos não
fornecidas pelo sistema. Eles podem estar relacionados                                                                                         funcionais

a propriedades de sistemas emergentes, como
confiabilidade, tempo de resposta e espaço em disco.                                                          Requisitos do                    Requisitos                     Requisitos
                                                                                                                produto                      organizacionais                   externos
Alternativamente, podem definir restrições para o
sistema, como por exemplo, a capacidade dos
                                                                                            Facilidade                Confiabili      Portabili                  Interopera
dispositivos de E/S e as representações de dados                                             de uso
                                                                                                         Eficiência
                                                                                                                        dade           dade                       bilidade
                                                                                                                                                                                Legais           Éticos

utilizados nas interfaces de sistema.
                                                                                                   Desempe                                                               Privacida       Seguran
                                                                                                                 Espaço
                                                                                                     nho                                                                    de              ça


                                                                                                                                                  Implemen
                                                                                                                                   Entrega                     Padrões
                                                                                                                                                    tação

                                                        © 2008 José Luiz G. Bastos Jr.                                                                                                     © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                                                            19
Identificação, análise e gerência de                                                                         Identificação, análise e gerência de
                 requisitos                                                                                                   requisitos
Requisitos de Usuário:
                                                                                                            Requisitos de Sistema:
São os requisitos que descrevem os requisitos funcionais e não
funcionais de modo compreensível pelos usuários do sistema que                                              São descrições mais detalhadas dos requisitos de
não têm conhecimentos técnicos detalhados. Como redigí-los ?                                                usuários. Estes requisitos podem ser descritos utilizando-
                                                                                                            se:
  Utilize um formato-padrão e certifique-se de que todas as
definições de requisitos estejam conforme este formato;                                                     (1) Linguagem natural estruturada – depende de formulários padrão;
   Utilize a linguagem de modo consistente. Em particular, faça uma                                         (2) Linguagem de descrição de projeto – usando linguagens de
distinção entre os requisitos obrigatórios e os que são desejáveis;                                         programação como exemplo para descrever os requisitos;
  Evite, tanto quanto possível, o uso de jargões de informática.                                            (3) Notações gráficas – usando diagramas em geral (casos de uso,
Contudo, inevitavelmente, ocorerrá que termos técnicos detalhados,                                          atividades, seqüência, etc);
utilizados no domínio da aplicação do sistema, sejam incluidos nos
requisitos do usuário.                                                                                      (4) Especificações matemáticas – como uma máquina de estados
                                                                                                            finitos (de acordo com a transição de estados).
                                                                           © 2008 José Luiz G. Bastos Jr.                                                                         © 2008 José Luiz G. Bastos Jr.




    Identificação, análise e gerência de                                                                         Identificação, análise e gerência de
                 requisitos                                                                                                   requisitos
Observações Sobre os Requisitos:

  Volatilidade dos requisitos: atualmente, a                                                                 Documento de Requisitos:
volatilidade é mais uma regra que uma exceção. Os
requisitos mudam rapidamente atualmente, novos                                                               O documento de requisitos – às vezes chamado ER -
requisitos podem ser adicionados e outros removidos                                                          Especificação de Requisitos de software – é a
durante o processo.                                                                                          declaração oficial do que é exigido dos desenvolvedores
                                                                                                             de sistema. Ele deve incluir os requisitos de usuário para
  É importante ressaltar que, com a complexidade                                                             um sistema e uma especificação detalhada dos
dos sistemas atuais, é impossível pensar em todos os                                                         requisitos de sistema (SOMMERVILE, 2003).
detalhes do sistema a princípio.



                                                                           © 2008 José Luiz G. Bastos Jr.                                                                         © 2008 José Luiz G. Bastos Jr.




    Identificação, análise e gerência de                                                                         Identificação, análise e gerência de
                 requisitos                                                                                                   requisitos
    Usuários do Documento de Requisitos:
                                                                                                             Requisitos de um Documento de Requisitos:
                                Especificam os requisitos e os lêem para verificar
        Clientes do Sistema     se eles atendem a suas necessidades. Especificam
                                            as mudanças nos requisitos.                                      Segundo Heninger (1980), um documento de requisitos de software deveria
                                                                                                             satisfazer a seis princípios:
                                Utilizam o documento de requisitos para planejar
             Gerentes             um pedido de proposta para o sistema e para
                                     planejar o processo de desenvolvimento.
                                                                                                               Deveria especificar somente o comportamento externo do sistema;

                                                                                                               Deveria especificar as restrições à implementação;
      Engenheiros de Sistema      Utilizam os requisitos para compreender que
                                         sistema deve ser desenvolvido.
                                                                                                               Deveria ser fácil de ser modificado;
      Engenheiros de teste de                                                                                 Deveria servir como uma ferramenta de referência para os responsáveis pela
                                Utilizam os requisitos para desenvolver testes de
            Sistema                         validação para o sistema.                                        manutenção do sistema;
                                                                                                               Deveria registrar a estratégia sobre o ciclo de vida do sistema;
         Engenheiros de         Utilizam os requisitos para ajudar a compreender                               Deveria caracterizar respostas aceitáveis para eventos indesejáveis.
      manutenção de Sistema          o sistema e as relações entre suas partes.



                                                                           © 2008 José Luiz G. Bastos Jr.                                                                         © 2008 José Luiz G. Bastos Jr.




                                                                                                                                                                                                                   20
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML
Análise de Sistemas: Conceitos e Modelagem com UML

Mais conteúdo relacionado

Mais procurados

Fundamentos de sistemas de informação
Fundamentos de sistemas de informaçãoFundamentos de sistemas de informação
Fundamentos de sistemas de informaçãoLeonardo Melo Santos
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalDaniel Brandão
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasDiego Marek
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoLeinylson Fontinele
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaSuzana Viana Mota
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 

Mais procurados (20)

Fundamentos de sistemas de informação
Fundamentos de sistemas de informaçãoFundamentos de sistemas de informação
Fundamentos de sistemas de informação
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Uml
UmlUml
Uml
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemas
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 

Destaque

Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de SistemasNécio de Lima Veras
 
As aula 1 - introdução a análise de sistemas
As   aula 1 - introdução a análise de sistemasAs   aula 1 - introdução a análise de sistemas
As aula 1 - introdução a análise de sistemastontotsilva
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas iRay Fran Pires
 
Introdução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IIIntrodução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IINécio de Lima Veras
 
Análise de sistemas aula 2
Análise de sistemas   aula 2Análise de sistemas   aula 2
Análise de sistemas aula 2Mário Gomes
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistemaelliando dias
 
Análise essencial e análise estruturada
Análise essencial e análise estruturadaAnálise essencial e análise estruturada
Análise essencial e análise estruturadaWagner Bonfim
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoJean Carlos
 
Metodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemasMetodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemasSusana Oliveira
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLEliseu Castelo
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoLuciano Almeida
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoHelder Lopes
 
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...Universidade de São Paulo (EEL USP)
 

Destaque (20)

Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
As aula 1 - introdução a análise de sistemas
As   aula 1 - introdução a análise de sistemasAs   aula 1 - introdução a análise de sistemas
As aula 1 - introdução a análise de sistemas
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas i
 
Introdução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IIIntrodução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte II
 
Analise e Projeto de Sistemas
Analise e Projeto de SistemasAnalise e Projeto de Sistemas
Analise e Projeto de Sistemas
 
Análise de sistemas aula 2
Análise de sistemas   aula 2Análise de sistemas   aula 2
Análise de sistemas aula 2
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistema
 
Análise essencial e análise estruturada
Análise essencial e análise estruturadaAnálise essencial e análise estruturada
Análise essencial e análise estruturada
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informação
 
Analise sistemas 02
Analise sistemas 02Analise sistemas 02
Analise sistemas 02
 
Metodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemasMetodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemas
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Analise sistemas 03
Analise sistemas 03Analise sistemas 03
Analise sistemas 03
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contexto
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de Informação
 
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
 
Analise sistemas 01
Analise sistemas 01Analise sistemas 01
Analise sistemas 01
 
Curso Básico de UML
Curso Básico de UMLCurso Básico de UML
Curso Básico de UML
 

Semelhante a Análise de Sistemas: Conceitos e Modelagem com UML

Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Modelação Conceptual de Classes
Modelação Conceptual de ClassesModelação Conceptual de Classes
Modelação Conceptual de Classeselliando dias
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Cláudio Amaral
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdfRicardoZorekDaniel1
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasluanrjesus
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Marcelo Schumacher
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantaçãoelliando dias
 

Semelhante a Análise de Sistemas: Conceitos e Modelagem com UML (20)

Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Modelação Conceptual de Classes
Modelação Conceptual de ClassesModelação Conceptual de Classes
Modelação Conceptual de Classes
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Objectory
ObjectoryObjectory
Objectory
 
Apostila apsoo
Apostila apsooApostila apsoo
Apostila apsoo
 
57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf
 
Sis avionico
Sis avionicoSis avionico
Sis avionico
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemas
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
Aula2 tipos de analise
Aula2 tipos de analiseAula2 tipos de analise
Aula2 tipos de analise
 

Análise de Sistemas: Conceitos e Modelagem com UML

  • 1. Objetivo da Disciplina • Apresentar os conceitos básicos de análise e modelagem de sistemas e a importância destas práticas para os projetos de software. Análise e Projeto de Sistemas • Apresentar parâmetros de comparação que possibilitem a identificação da técnica adequada para cada projeto. • Capacitar o aluno a elaborar projetos Aula expositiva 01 detalhados de sistemas através de técnicas de análise praticadas no mercado, em especial a Análise Orientada por Objetos Professor José Luiz Bastos com a utilização do padrão UML (Unified Modeling Language) e seus diagramas de representação. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Ementa da Disciplina Ementa da Disciplina 1. FUNDAMENTOS DA ANÁLISE DE SISTEMAS 3. ANÁLISE ORIENTADA A OBJETOS E PADRÃO 1.1 Análise de sistemas e ciclo de vida dos sistemas. UML 1.2 Modelagem de sistemas. 3.1 Conceitos básicos da orientação a objetos. 1.3 Evolução da análise de sistemas. 3.2 Os três pilares da orientação a objetos. 3.3 Linguagem de modelagem unificada – UML. 2. ENGENHARIA DE REQUISITOS 3.4 Modelos da UML. 2.1 Técnicas envolvidas 2.2 Dificuldades 4. MODELAGEM DE SISTEMAS ATRAVÉS DA UML 2.3 Especificação e documentação 4.1 Diagrama de Casos de Uso. 4.2 Diagrama de Classes. 4.3 Diagrama de Seqüência de Casos de Uso. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Ementa da Disciplina Análise de Sistemas - Motivação 5. MODELAGEM DE SISTEMAS ATRAVÉS DA UML • Por que analisar? Por que não começar logo pela 5.1 Diagrama de Colaboração. implementacão? 5.2 Diagrama de Estados. • Análise de sistemas: – A análise de sistemas é um processo de análise detalhada 5.3 Diagrama de Atividades. das necessidades de informação de uma organização, das características e dos componentes dos sistemas de informação atualmente utilizados (se existirem) e dos requisitos dos sistemas de informação sendo propostos. – Trata da análise detalhada dos componentes e requisitos de um sistema. • Objetivos da Análise de Sistemas: – Padronizar, minimizar a redundância, evitar a ambigüidade e reduzir a manutenção corretiva das especificações do sistema. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 1
  • 2. Análise de Sistemas - Visão Geral Análise de Sistemas - Visão Geral • Sistema? Sistemas de Informações – Um grupo de itens que interagem entre si ou que sejam interdependentes, formando um todo unificado, orientado para atender objetivos específicos. • Um sistema de informações é um conjunto – Um conjunto organizado de doutrinas, idéias ou de elementos inter-relacionados, processos, princípios, habitualmente previstos para explicar a dados e tecnologia, cuja finalidade é organização ou o funcionamento de um conjunto alimentar os centros de decisões com as sistemático. – Exemplos: informações necessárias à escolha de • Sistema gravitacional diretrizes de ação que permitam atingir os • Sistema digestivo objetivos da organização. • Sistema rodoviário • Sistema bancário © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Análise de Sistemas - Visão Geral Análise de Sistemas - Visão Geral • Dados: Componentes de um Sistema de Informações: – São seqüências ordenadas de símbolos dos quais se pode extrair informações. Porém, não contêm nenhum significado quando analisados isoladamente. • Hardware; • Software; • Informações: • Pessoas; • Dados; – São dados tratados, analisados ou processados, • Procedimentos. capazes de transmitir algum conhecimento ao receptor. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Análise de Sistemas - Visão Geral Análise de Sistemas - Visão Geral Classificação quanto à forma de processamento: Classificação quanto à forma de processamento: • Sistemas em Tempo Real • Sistemas Batch – Controla um ambiente pelo recebimento de dados, seu – O usuário normalmente não interage com o computador por processamento e apresentação dos resultados com rapidez terminal e as informações são processadas em lotes, de suficiente para afetar o ambiente naquele momento. forma seqüencial. • Sistemas Baseados em Conhecimento – Esses sistemas estão associados ao campo da inteligência • Sistemas On-Line artificial. Contêm grande quantidade de conhecimentos – O usuário interage com o computador por terminal, os dados variados para utilização em determinadas tarefas. de entrada são fornecidos diretamente do local onde eles foram criados e os resultados do processamento são • Sistemas Especialistas dirigidos diretamente para onde sejam necessários. – São sistemas baseados em conhecimento. Têm embutidos o conhecimento e a capacidade que os tornam capazes de funcionar como um especialista. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 2
  • 3. Análise de Sistemas - Visão Geral Análise de Sistemas - Visão Geral Classificação quanto ao nível organizacional: Sistemas de Processamento de Transações Nível operacional; Apoia operações rotineiras da empresa; Registra transações; Origem dos dados: operações internas; Grau de agregação dos dados: dados analíticos, reais e precisos; Volumes manipulados: grandes; Saídas: relatórios analíticos, alguns sintéticos; Freqüência: periódica; Exemplos: faturamento, estoque, contabilidade etc. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Análise de Sistemas - Visão Geral Análise de Sistemas - Visão Geral Sistemas de Apoio à Decisão Sistemas de Planejamento e Controle Operacional Nível tático (média gerência); Nível tático (supervisão); Apoia processos decisórios; Apoia o planejamento e controle operacional; Trabalha com análise matemática e estatística dos Coleta informações sobre o realizado e compara com dados; o previsto; Origem dos dados: operações internas e fontes Origem dos dados: operações internas; externas; Grau de agregação dos dados: médio; Grau de agregação dos dados: alto; Volumes manipulados: médios; Volumes manipulados: pequenos; Saídas: relatórios consolidados; Saídas: gráficos e tabelas; Freqüência: periódica; Freqüência: a pedido (ad hoc); Exemplos: custos, planejamento e controle de Exemplos: análise de investimentos, análise estatística, produção, planejamento e controle de projetos. simulação de cenários. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Análise de Sistemas - Visão Geral Análise de Sistemas - Visão Geral Sistemas de Planejamento Estratégico Princípios Gerais dos Sistemas: Nível estratégico (alta administração); • Quanto mais especializado é um sistema, Apoia análise de fatores críticos de sucesso da menos capaz ele é de se adaptar a empresa: desempenho, mercado e concorrência; circunstâncias diferentes; Trabalha com projeções a longo prazo e tendências • Quanto maior for um sistema, maior o do mercado; número de seus recursos que serão Origem dos dados: operações internas e fontes destinados à manutenção diária; externas; Grau de agregação dos dados: alto; • Os sistemas sempre fazem parte de Volumes manipulados: pequenos; sistemas maiores e sempre podem ser Saídas: gráficos e tabelas sofisticados; divididos em sistemas menores; Freqüência: a pedido (ad hoc); • Os sistemas CRESCEM. Exemplo: sistemas de informações executivas. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 3
  • 4. Análise de Sistemas - Mais definições Problemas • “A análise de sistemas é frustrante, repleta de relacionamentos entre pessoas, indefinida e difícil. Resumindo, é fascinante. • Depende da clareza do usuário: Depois que você é fisgado, os velhos e fáceis prazeres da – É ele o responsável por mostrar ao analista, de construção de sistemas nunca mais serão suficientes para maneira clara, quais requisitos o sistema deve satisfazê-lo.” (DeMarco, 1989) atender. • “Análise de sistemas é a atividade que tem como finalidade realizar estudos de processos a fim de encontrar o melhor e • Depende do entendimento do analista: mais racional caminho para que a informação possa ser processada.” (Wikipedia) – É ele o responsável por identificar e analisar os requisitos esperados pelo usuário. • Análise de sistemas consiste em identificar, detalhar e – Deve documentar de forma clara o seu trabalho, para documentar os processos de negócio para sua automatização que os consumidores do mesmo saibam identificar os junto aos usuários. Essa análise deve produzir como resultado requisitos esperados pelos usuários. uma especificação completa de tudo que o sistema de informação deve realizar. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Solução • Técnicas para identificação e detalhamento de requisitos • Técnicas para modelagem de sistemas © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Usuários Usuários • Principais participantes do processo: – O sistema está sendo desenvolvido PARA ELES. Cada projeto possui um elenco diferente de pessoas – O sistema automatizará os processos de negócio envolvidas. Um analista de sistemas precisa ter aptidões executados POR ELES. interpessoais (além do conhecimento da tecnologia), ou – Comprometimento dos usuários é fundamental para o seja, deve falar com outras pessoas usando uma sucesso do projeto “linguagem” diferente. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 4
  • 5. Usuários Usuários Classificação por Tipo de Função O analista de sistemas deve fazer reuniões regulares com os usuários (também chamados de clientes ou Operacionais proprietários). O ideal seria ter um usuário dedicado integralmente ao projeto. Alguns defendem que o usuário Têm visão local, isto é, não conhecem o processo de deveria fazer o projeto. forma global; Responsáveis por executar as funções do sistema; Têm uma visão física do sistema, ou seja, imaginam o funcionamento do sistema considerando a tecnologia de implementação. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Usuários Usuários Supervisores Executivos Podem ou não ter uma visão local; Não têm experiência operacional; Geralmente conhecem as operações, pois muitos já Têm iniciativa sobre o projeto; foram usuários operacionais. Além disso, têm que supervisionar os usuários operacionais; Possuem uma visão global; Orientados por considerações orçamentárias (ex.:reduzir Têm preocupações estratégicas; o quadro de funcionários ou aproveitá-los melhor); Capazes de lidar com modelos abstratos. Normalmente, agem como intermediários em relação aos níveis mais elevados. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Usuários Usuários Classificação por Nível de Experiência Novato arrogante Amador Participou de alguns projetos; Nunca trabalhou com um computador; Possui ou trabalha com computadores; Tem dificuldade para entender os modelos produzidos pelos analistas; Por conhecer algumas ferramentas, gosta de opinar sobre as tecnologias a serem usadas para implementar Receia ser substituído pelo sistema ou ter sua o sistema (normalmente, tem certeza que opina certo, importância minimizada. mas opina errado!). © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 5
  • 6. Usuários Usuários Classificação quanto ao conhecimento de tecnologia: Experiente – Baixo: • Não compreende a linguagem técnica Conhece a análise de sistemas; – Médio • Tem algum conhecimento tecnológico Tem experiência de outros projetos; • Pode perder o foco e se preocupar com a solução tecnológica Discute sobre as ferramentas de modelagem sendo utilizadas. – Alto • Tem um bom conhecimento tecnológico • Pode perder o foco e se preocupar muito com solução tecnológica © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Equipe do Projeto Equipe do Projeto Gerente de Projeto Auditores, Controle de Qualidade e Padronizadores As principais funções de um gerente de projeto são: Podem ser internos ou externos. Responsáveis por Gerenciar e alocar recursos de toda a equipe técnica; garantir que o sistema será desenvolvido de acordo com os vários padrões internos e externos da organização, Prestar constas junto à administração superior; especialmente aqueles voltados à segurança e ao Encaminhar problemas identificados no decorrer do controle de qualidade do produto final. projeto; Gerentes de níveis mais altos se concentram nos aspectos mais abstratos do sistema. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Equipe do Projeto Equipe do Projeto Alguns problemas dos Auditores que devem ser Analistas de sistemas considerados: Normalmente não se envolvem no projeto até que ele tenha sido • Analisam, detalham e documentam os concluído. Nesse ponto, modificar o sistema é muito mais difícil; processos de negócios que serão Às vezes não estão habituados com a notação utilizada; automatizados • Ajudam os usuários a encontrarem as Geralmente, estão mais interessados na forma do que na substância. soluções mais apropriadas • Atuam como mediadores entre os diversos Verificam conformidades com padrões: Padrões governamentais participantes do processo Padrões internos da empresa Padrões do processo de desenvolvimento © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 6
  • 7. Equipe do Projeto Equipe do Projeto Um analista de sistemas deve ter: O analista desempenha as seguintes funções: Mediador: como os usuários dificilmente chegam a um consenso, o Habilidade de relacionamento social; analista deve usar a arte da diplomacia e da negociação. O sistema deve ser feito da forma como os usuários solicitaram; Conhecimento da tecnologia; Líder de projeto: Como o analista entrou antes no projeto, freqüentemente também é o projetista e normalmente é uma pessoa Conhecimento dos processos de negócio mais experiente, existe uma tendência natural de que ele assuma o papel de gerente de projeto. Mente lógica e organizada (visualizar o sistema sob diferentes perspectivas), ou seja, raciocínio lógico e abstrato © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Equipe do Projeto Equipe do Projeto Projetistas de Sistemas Arqueólogo e escriba: deve trazer à luz os detalhes e documentar as atividades cujos detalhes passam de geração em • Arquitetos do sistema geração de usuários; • Recebem o resultado do trabalho dos analistas de sistemas Inovador: não se limitar apenas a implementar as funções atuais do sistema mas ajudar a encontrar produtos e mercados • Usam os requisitos levantados para desenhar a arquitetura do novos; sistema que servirá de base para o trabalho dos programadores • Interação constante com os analistas • Podem verificar a inviabilidade de alguns requisitos © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Equipe do Projeto Equipe do Projeto Projetistas de Sistemas Programador • O analista de sistemas deve fornecer informações suficientemente detalhadas para que o projetista elabore um • Responsável por codificar e testar (usando uma projeto tecnologicamente bom. linguagem de programação) os módulos dos sistemas modelados pelos projetistas. • O projetista deve fornecer informações suficientes para que o analista possa dizer se os requisitos dos usuários podem ser • Em um cenário ideal, o programador não deveria ter completamente atendidos ou devem ser modificados. contato com o analista, já que se baseia apenas no trabalho feito pelo projetista. • Há programadores que são responsáveis apenas por dar manutenção em um sistema. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 7
  • 8. Equipe do Projeto Equipe do Projeto Programador Segundo Zvegintzov (1987) - (autor do artigo Software Maintenance News): Até o presente momento, o principal profissional da computação era alguém que podia aprender o suficiente sobre as necessidades das empresas para expressá-las na linguagem dos computadores. No futuro, quando nossa sociedade tornar-se irreversivelmente computadorizada, o principal profissional será alguém que possa aprender o suficiente sobre sistemas computadorizados para expressá-los em linguagem humana. Sem essa pessoa, teremos perdido o controle de nossa sociedade. Esse alguém é o engenheiro às avessas. Os mantenedores de software são os engenheiros às avessas da sociedade. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Equipe do Projeto Ciclo de vida de um projeto • Mais integrantes? Definição: – Testadores • “Um ciclo de vida de projeto bem definido – Analistas de usabilidade oferece mecanismos para planejar e – Engenheiros de processo acompanhar atividades de forma mais – Gestores de configuração precisa, possibilitando a detecção de – E por aí vai... problemas de forma rápida (YOURDON, 1990)”. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Etapas do ciclo de vida clássico Questões 1) Quais são os problemas do ciclo de desenvolvimento de sistemas apresentado na figura acima? De que forma esses problemas podem ser solucionados ou pelo menos minimizados? 2) Esse ciclo de vida pode ser considerado realístico para projetos de software? Por quê? 3) De que forma a fase de análise interfere e sofre interferência das outras etapas? © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 8
  • 9. Etapas do ciclo de vida de Fases desenvolvimento de software Concepção Fase na qual necessidades dos usuários e conceitos da aplicação são analisados o suficiente para justificar a especificação de um produto de software, resultando em uma proposta de especificação. Elaboração Fase na qual a especificação do produto é detalhada o suficiente para modelar conceitualmente o domínio do problema, validar os requisitos em termos deste modelo conceitual e permitir um planejamento acurado da fase de construção. Construção Fase na qual é desenvolvida (desenhada, implementada e testada) uma liberação completamente operacional do produto, que atende aos requisitos especificados. Transição Fase na qual o produto é colocado à disposição de uma comunidade de usuários para testes finais, treinamento e uso inicial. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Fluxos Modelos de ciclo de vida Requisitos Visa obter um conjunto de requisitos de um produto, Modelo Codifica-Remenda: acordado entre cliente e fornecedor. Análise Visa detalhar, estruturar e validar os requisitos, em termos de um modelo conceitual do problema, de forma que estes possam ser usados como base para o planejamento e acompanhamento detalhados da construção do produto. Desenho Visa formular um modelo estrutural do produto, que sirva de base para a implementação, definindo os componentes a desenvolver e a reutilizar, assim como as interfaces entre eles. Implementação Visa detalhar e implementar o desenho através de componentes de código e de documentação associada. Testes Visa verificar os resultados da implementação, através do planejamento, desenho e realização de baterias de testes. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Modelos de ciclo de vida Modelos de ciclo de vida Modelo Codifica-Remenda: Modelo em cascata: • As fases são executadas em estrita sequencia • Provavelmente o mais usado • Pouco realiza, não permite erros • Não exige sofisticação técnica ou gerencial • Pontos de controle bem definidos facilitam • Alto risco gestão • Impossível de gerir • Teoricamente é confiável e utilizável em • Não permite assumir compromissos projetos de qualquer escala confiáveis • Rígido e burocrático • Baixa visibilidade para o usuário, que só recebe o resultado no final do projeto © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 9
  • 10. Modelos de ciclo de vida Modelos de ciclo de vida Modelo em cascata com realimentação: Modelo em espiral: • E possível voltar à fase anterior • Mais fexível © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Modelos de ciclo de vida Modelos de ciclo de vida Modelo em espiral: Modelo de entrega evolutiva: • Software é desenvolvido em uma série de iterações • Combinação entre o modelo de Espiral e • Cada nova iteração é um novo ciclo na Cascata espiral • Construção é feita de forma incremental • Utilizado em processos ágeis, como o XP © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Projeto – Empresas de pequeno porte Projeto – Empresas de grande porte • Normalmente é iniciado após um acordo • Existe um processo formal de engenharia de verbal entre os usuários e a equipe do software projeto • Existem meios para verificar se o processo • O desenvolvimento é feito logo após esse está sendo seguido acordo verbal, geralmente sem a existência • Todos conhecem o processo de análise. • O gerente é o responsável por organizar o • Geralmente não existe um processo de projeto de acordo com o processo desenvolvimento formal. Se existe, geralmente não é seguido ou verificado. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 10
  • 11. Modelos Modelos • A criação de um modelo corresponde à • É a partir das especificações dos clientes e utilização de uma linguagem que possa ser usuários que os modelos serão construídos e empregada por analistas e compreendida por a partir dos modelos que o produto será usuários, para representar um sistema. desenvolvido, portanto, o envolvimento do • Os modelos são os principais produtos da cliente é de fundamental importância nesta análise e são fundamentais para se obter um etapa. Os modelos podem ser utilizados produto de software de qualidade, dentro de também para a validação inicial do produto, o prazos e custos preestabelecidos. que os torna ainda mais importantes. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Modelos Observação Importante: • Um analista de sistemas, além de saber Análise e Projeto de Sistemas construir modelos, deve se aprofundar no que está sendo modelado, seja um sistema de matrícula, vendas, controle de estoque, bancário, etc. Durante a modelagem, o Aula expositiva 02 analista muitas vezes se torna um especialista na área. Professor José Luiz Bastos © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Fatores de insucesso em projetos de Premissas software Por que os projetos de software são cancelados antes de serem concluídos? Para desenvolver sistemas úteis, de alta qualidade e que realmente satisfaçam as necessidades dos Fator de insucesso % dos projetos usuários, é necessário considerar os seguintes Requisitos incompletos 13,1 aspectos: Falta de envolvimento dos usuários 12,4 Falta de recursos 10,6 Produtividade; Expectativas não-realistas 9,9 Falta de suporte executivo 9,3 Confiabilidade; Alterações nos requisitos e especificações 8,7 Manutenibilidade. Falta de planejamento 8,1 O software não é mais necessário 7,5 Falta de gerenciamento de TI 6,2 Outros 14,2 © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 11
  • 12. Engenharia dos Requisitos Engenharia dos Requisitos • Motivação • Princípios • Os problemas têm que ser enunciados antes de serem • Boas especificações de requisitos são indispensáveis. resolvidos. • Não representam custos supérfluos, mas investimentos necessários. • Nada é mais caro do que resolver os problemas errados. • A participação dos usuários na engenharia de requisitos é • A boa engenharia de requisitos reduz a instabilidade de fundamental para que suas necessidades sejam corretamente sistemas de informação: atendidas pelo produto. • Ajuda a obter os requisitos corretos em um estágio anterior • Uma boa especificação de requisitos custa tempo e ao desenvolvimento. dinheiro; • O custo de correção de defeitos cresce muito ao longo do • A ausência de uma boa especificação de requisitos custa tempo. muito mais tempo e dinheiro. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Fase de Elaboração Levantamento dos Requisitos • Fase na qual a especificação do produto é detalhada o suficiente para modelar conceitualmente o domínio • Levantamento das funções, interfaces e do problema, validar os requisitos em termos deste requisitos não-funcionais desejados para o modelo conceitual e permitir um planejamento produto. acurado da fase de construção. • Requisitos levantados apenas em nível necessário para o estabelecimento de um • É dividida em duas iterações: entendimento inicial entre usuários, clientes e desenvolvedores. • Levantamento dos Requisitos: captura dos requisitos • Levantamento de requisitos focalizando os junto aos usuários. usuários. • Análise dos Requisitos: detalhamento e validação dos requisitos levantados junto aos usuários. • Método típico: * oficinas de levantamento de requisitos. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Análise dos Requisitos Análise dos Requisitos • Detalhamento e análise dos requisitos. • Foco na visão que os desenvolvedores têm dos requisitos do produto, ainda dentro do • Modelagem conceitual dos elementos espaço de problema e não do espaço de relevantes do domínio do problema e uso solução. desse modelo para validação dos requisitos e planejamento detalhado da fase de Construção. • Métodos típicos: * oficinas de detalhamento de requisitos; * entrevistas. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 12
  • 13. Técnicas para Levantamento e Análise de Técnicas para Levantamento e Análise de Requisitos Requisitos • Freqüentemente, falhas de comunicação e de entendimento entre a equipe de • Metodologia mais utilizada pelas empresas: desenvolvimento e clientes envolvidos • Entrevista individual entre o analista de sistemas e os usuários. resultam em erros de especificação cuja • Vantagens: posterior correção em sistemas já • Praticidade e fácil aplicação. construídos compromete prazos e custos • Desvantagens: previstos. • Lentidão do processo; • Comprometimento: • Da qualidade dos requisitos resultantes; $$$ • Da convergência de interesses entre os usuários; • Consenso na priorização dos requisitos. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Técnicas para Levantamento e análise de Requisitos Metodologia JAD • Técnicas de dinâmica de grupo: • Benefícios: • Eficazes na agilização do processo; • Redução da necessidade de manutenção nos aplicativos • Redução nas falhas de comunicação; desenvolvidos com o seu auxílio; • Metodologia JAD*: • Redução de custos; • Maior satisfação dos usuários, pois as aplicações atendiam ao • Uma abordagem usando um líder NEUTRO para que eles realmente desejavam; orientar usuários através de um processo interativo e flexível, obtendo-se CONSENSO sobre um • Maior entrosamento entre a área de Sistemas de Informações assunto pré-determinado. e os Departamentos Usuários; • Menor necessidade de modificações durante o processo de desenvolvimento; • Nivelamento das expectativas de ambas as partes entre outros. *Joint Application Design • Metodologia desenvolvida nos anos 70 pela IBM – Canadá; • Objetivo inicial: levantamento de requisitos e desenho de interfaces de sistema; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Metodologia JAD Metodologia JAD • Com o passar do tempo, JAD passou a ser utilizado: • Componentes básicos de um JAD: • Em todas as fases do cliclo de desenvolvimento de software • Patrocinador do projeto: e não apenas durante o levantamento de requisitos (Joint Application Development); • Possui poder de decisão e fornece os recursos necessários para o projeto. • Planejamento de projetos em geral; • Planejamento estratégico; • Líder da sessão: • Tomada de decisões, de qualquer natureza, que necessita • Responsável por conduzir a sessão de forma de um consenso entre várias pessoas das diversas áreas de NEUTRA. uma organização (Workshops). • Documentador: • Responsável por redigir as decisões tomadas em ata; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 13
  • 14. Metodologia JAD Metodologia JAD • Componentes básicos de um JAD: • Por que usar JAD? • Usuários finais: • Redução do tempo de desenvolvimento do software; • Conhecedores do negócio da aplicação; • Aumento da qualidade do software; • Aumento da produtividade; • Definem as necessidades do sistema em nível • Redução do custo; apropriado de detalhes; • Maior motivação e comprometimento da equipe; • Desenvolvedores: • Redução de alteração de requisitos; • Tomam conhecimentos das necessidades dos • Visão global do sistema pelos envolvidos; usuários finais e da aplicação durante a sessão de JAD; • Respondem questões técnicas; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Metodologia JAD Oficina de Requisitos • Sucesso de um JAD depende: • Liderança da sessão de forma eficiente; • Definição do Local: • Participação de usuários finais, executivos e ☺ Afastado do local de trabalho, onde os desenvolvedores; participantes não possam ser interrompidos; • Alcance da sinergia do grupo durante a sessão. ☺ Sem interferências externas (celular, bip, etc...); ☺ Baixo nível de ruído; ☺ Mesas arrumadas em “U” (se possível); ☺ Serviço de café. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas Demanda reprimida Problemas de Produtividade O backlog dos sistemas pode ser dividido em três Os dois aspectos mais importantes desse problema categorias: são: • Visível: A demanda reprimida (backlog) por novos sistemas; Sistemas solicitados oficialmente pelos usuários e que O tempo necessário para construir um novo sistema. foram aceitos e tiveram suas verbas aprovadas pela gerência. Ainda não foram iniciados por falta de recursos humanos (analistas, programadores etc.). © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 14
  • 15. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas • Invisível: Tempo de desenvolvimento Sistemas que os usuários sabem que precisam, mas não Existe a preocupação com a perda de oportunidades de se dão ao trabalho de solicitar oficialmente, porque ainda negócios, devido à incapacidade de desenvolver os estão aguardando outros projetos. sistemas de apoio necessários no tempo necessário. Muitos projetos nem são terminados. Dentre os principais • Desconhecido: motivos para estouro de tempo em projetos, podemos citar: Sistemas que os usuários ainda não sabem que precisam mas que emergirão logo que sejam concluídos outros Problemas técnicos; sistemas dos backlogs visível e invisível. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas O tempo necessário para criar um sistema pode ser Problemas gerenciais; reduzido através de algumas técnicas: Inexperiência da equipe; Contratação de mais programadores e analistas de sistemas; Falta de tempo para análise e projeto; Contratação de programadores e analista de sistemas Escasso envolvimento por parte da gerência ou mais talentosos, oferecendo-lhes melhores condições de usuários. trabalho; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas Razões para os analistas terem ciência dos Deixar que usuários desenvolvam seus próprios problemas de produtividade: sistemas; A produtividade e qualidade do trabalho dos Melhores linguagens de programação; programadores está diretamente ligada ao serviço feito pelo analista; Ferramentas automatizadas de desenvolvimento. Algumas das técnicas de aumento de produtividade têm importância direta para os analistas; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 15
  • 16. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas Problemas de Confiabilidade A produtividade da análise é um problema politicamente Os erros em sistemas podem passar desapercebidos (ex.: sensível; uma impressão de relatório não formatada corretamente) ou causar graves acidentes (problema em sistema de Usuários e gerente têm ansiedade pelo início da tráfego aéreo). programação; Os erros em software são difíceis de serem extintos Usuários não entendem a importância da especificação. porque: É difícil descobrir como solucionar o erro; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas A figura 1 mostra o número de erros encontrados em Deve-se encontrar todos os pontos de correção; função do tempo decorrido (YOURDON, 1990). Alta probabilidade de introduzir novos erros (efeitos colaterais); Nem sempre são reportados pelos usuários; Dificuldade de reproduzir o erro. Figura 1 – Erros descobertos em função do tempo © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas Manutenibilidade Sobre a curva na figura 1 é importante notar: A correção de erros é apenas um dos aspectos da Inicialmente o nº de erros encontrados é pequeno (usuários sem segurança para apontar erros), como indica T1; manutenção de sistemas. A manutenção também está vinculada a fatores como: À medida que os usuários se familiarizam com sistema os erros são percebidos e reportados (entre T1 e T2); Modificações no hardware; Após um tempo (após T2) o nº de erros encontrados começa a Novos dispositivos; diminuir (sistema começa a tornar-se mais estável); Necessidade de melhorar o desempenho; O número de erros volta a crescer devido a correções ou modificações que introduzem novos erros (após T3); Garantir maior confiabilidade; A curva nunca atinge zero. Alterações dos requisitos. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 16
  • 17. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas A manutenção de um sistema deve ser sempre Outros Problemas – Portabilidade acompanhada de modificações na especificação do sistema. Entretanto, isso nem sempre ocorre devido a Consiste em escrever sistemas que podem ser fatores como: transferidos para outras plataformas; Analista alocado para outro projeto; Apesar de não ser um problema da alçada do analista, ele deve especificar que há essa necessidade; Urgência na implantação das modificações; A portabilidade geralmente provoca ineficiência já que Inexistência de uma política que valorize a recursos disponíveis de determinada plataforma não são manutenção da especificação. aproveitados. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas Principais causas dos Problemas Outros Problemas – Segurança À medida que os sistemas de informações crescem em Ausência de Planejamento de Sistemas; número e importância, o risco de violações aumenta. Ausência de Administração de Dados; A segurança de sistemas de informações consiste basicamente em: Não utilização de Métodos e Técnicas Formais de Desenvolvimento; Impedir o acesso de pessoas não autorizadas; Não utilização de Técnicas e Ferramentas; Conceder acesso a certas funcionalidades apenas a algumas pessoas. Adoção de Metodologias não ambientadas à realidade da empresa; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Principais Problemas no Principais Problemas no Desenvolvimento de Sistemas Desenvolvimento de Sistemas Principais causas dos Problemas(cont.) Nota Especial Sobre Qualidade Falta de definição precisa dos objetivos e A qualidade de um sistema pode ser mensurada requisitos do sistema; considerando a eficácia e a eficiência obtidas: Dificuldade de comunicação e/ou falta de Eficácia = Resultados Obtidos / Resultados Pretendidos entrosamento entre as pessoas envolvidas no processo, causada por problemas de linguagem Eficiência = Resultados Obtidos / Recurso Consumido ou rivalidade entre usuários; Falta de precisão e clareza na especificação dos sistemas. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 17
  • 18. Principais Problemas no Identificação, análise e gerência de Desenvolvimento de Sistemas requisitos Problemas que denotam falta de qualidade em 1 Técnicas de Entrevistas e de Coleta de Dados sistemas: Por que e para que fazemos entrevistas ? Não contribuem para os objetivos da empresa; Para coletar informações armazenadas em cérebros sobre o comportamento de um sistema atual ou um novo sistema; Não atendem às necessidades dos usuários; Para verificar como compreendemos o comportamento de Não são confiáveis; um sistema; Para elaborar um estudo de viabilidade de desenvolvimento São ineficientes; de um sistema. Têm manutenção constante, difícil e onerosa. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos 2 Tipos de Entrevistas 3 Problemas ao Entrevistar Usuários Entrevista em forma de reunião pessoal; Entrevistar a pessoa errada no momento errado; Entrevista em forma de questionários abertos e fechados; Fazer perguntas erradas e obter respostas erradas; Gravação de descrição de expectativas do usuário em relação Criar ressentimentos recíprocos. ao sistema. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos 4 Diretrizes para a realização de entrevistas Desenvolva um plano geral de entrevista; 5 Possíveis Formas de Resistência na Entrevista Certifique-se de que você tem autorização para falar com os Você está tomando muito o meu tempo; usuários; Você está ameaçando o meu emprego; Planejar a entrevista para fazer uso eficiente do tempo; Utilize ferramentas automatizadas que sejam adequadas, mas não Você não conhece nossa empresa e ainda quer nos dizer como deve abuse; ser feito o novo sistema? Tente descobrir em que informações o usuário está mais interessado; © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 18
  • 19. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos 6 Outros Problemas a Enfrentar 5 Possíveis Formas de Resistência na Entrevista(cont.) Uma discussão que focalize mais os problemas de Você está tentando mudar o modo como as coisas são feitas implementação do que os problemas de requisitos; aqui; Confusão entre sintomas e problemas; Nós, usuários, não queremos este sistema; O usuário pode ser incapaz de explicar o que ele quer que o Por que você está desperdiçando nosso tempo com esta sistema faça ou pode mudar de opinião; entrevista? Desentendimento entre usuários de mesmo nível, subordinados e chefes. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos 7 Formas Complementares de Coleta de Dados Requisitos Funcionais: Descrevem a funcionalidade ou os serviços que se espera que o sistema forneça. Demonstrações feitas pelos fornecedores; Descrevem a função de sistema detalhadamente, suas entradas e saídas, excessões, etc. Exemplos: Visitas a outras empresas com sistemas semelhantes; “O sistema deve permitir que cada professor realize o Coleta de dados em manuais, formulários, relatórios, listagens de lançamento de notas das turmas nas quais lecionou”; programas, etc.; “O sistema deve permitir que um aluno realize a sua Pesquisa externa em instituições como IEEE e ACM. matrícula nas disciplinas oferecidas em um semestre”; “O sistema deve permitir que o aluno consulte todo o seu histórico de disciplinas cursadas”. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos Requisitos Não Funcionais: Requisitos Não Funcionais: São aqueles que não dizem respeito diretamente às funções específicas Requisitos não fornecidas pelo sistema. Eles podem estar relacionados funcionais a propriedades de sistemas emergentes, como confiabilidade, tempo de resposta e espaço em disco. Requisitos do Requisitos Requisitos produto organizacionais externos Alternativamente, podem definir restrições para o sistema, como por exemplo, a capacidade dos Facilidade Confiabili Portabili Interopera dispositivos de E/S e as representações de dados de uso Eficiência dade dade bilidade Legais Éticos utilizados nas interfaces de sistema. Desempe Privacida Seguran Espaço nho de ça Implemen Entrega Padrões tação © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 19
  • 20. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos Requisitos de Usuário: Requisitos de Sistema: São os requisitos que descrevem os requisitos funcionais e não funcionais de modo compreensível pelos usuários do sistema que São descrições mais detalhadas dos requisitos de não têm conhecimentos técnicos detalhados. Como redigí-los ? usuários. Estes requisitos podem ser descritos utilizando- se: Utilize um formato-padrão e certifique-se de que todas as definições de requisitos estejam conforme este formato; (1) Linguagem natural estruturada – depende de formulários padrão; Utilize a linguagem de modo consistente. Em particular, faça uma (2) Linguagem de descrição de projeto – usando linguagens de distinção entre os requisitos obrigatórios e os que são desejáveis; programação como exemplo para descrever os requisitos; Evite, tanto quanto possível, o uso de jargões de informática. (3) Notações gráficas – usando diagramas em geral (casos de uso, Contudo, inevitavelmente, ocorerrá que termos técnicos detalhados, atividades, seqüência, etc); utilizados no domínio da aplicação do sistema, sejam incluidos nos requisitos do usuário. (4) Especificações matemáticas – como uma máquina de estados finitos (de acordo com a transição de estados). © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos Observações Sobre os Requisitos: Volatilidade dos requisitos: atualmente, a Documento de Requisitos: volatilidade é mais uma regra que uma exceção. Os requisitos mudam rapidamente atualmente, novos O documento de requisitos – às vezes chamado ER - requisitos podem ser adicionados e outros removidos Especificação de Requisitos de software – é a durante o processo. declaração oficial do que é exigido dos desenvolvedores de sistema. Ele deve incluir os requisitos de usuário para É importante ressaltar que, com a complexidade um sistema e uma especificação detalhada dos dos sistemas atuais, é impossível pensar em todos os requisitos de sistema (SOMMERVILE, 2003). detalhes do sistema a princípio. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. Identificação, análise e gerência de Identificação, análise e gerência de requisitos requisitos Usuários do Documento de Requisitos: Requisitos de um Documento de Requisitos: Especificam os requisitos e os lêem para verificar Clientes do Sistema se eles atendem a suas necessidades. Especificam as mudanças nos requisitos. Segundo Heninger (1980), um documento de requisitos de software deveria satisfazer a seis princípios: Utilizam o documento de requisitos para planejar Gerentes um pedido de proposta para o sistema e para planejar o processo de desenvolvimento. Deveria especificar somente o comportamento externo do sistema; Deveria especificar as restrições à implementação; Engenheiros de Sistema Utilizam os requisitos para compreender que sistema deve ser desenvolvido. Deveria ser fácil de ser modificado; Engenheiros de teste de Deveria servir como uma ferramenta de referência para os responsáveis pela Utilizam os requisitos para desenvolver testes de Sistema validação para o sistema. manutenção do sistema; Deveria registrar a estratégia sobre o ciclo de vida do sistema; Engenheiros de Utilizam os requisitos para ajudar a compreender Deveria caracterizar respostas aceitáveis para eventos indesejáveis. manutenção de Sistema o sistema e as relações entre suas partes. © 2008 José Luiz G. Bastos Jr. © 2008 José Luiz G. Bastos Jr. 20