CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS Tereza Gonçalves Kirner Apresentação elaborada com base em: Hoffer, Jeffrey A., George, Joey F. Modern Systems Analysis and Design (Capítulo 1), Pearson, 7 edition, 2013. 1
Apresentação Este módulo do curso apresenta os conceitos básicos de sistemas de informação e a abordagem do ciclo de vida de desenvolvimento de sistemas (SDLC), destacando as abordagens tradicionais de desenvolvimento em Espiral e em Cascata. Destaca o uso de ferramentes CASE (Computer-Aided Software Engineering) na geração de sistemas, descrevendo as metodologias RAD (Rapid Application Development) e XP (extreme Programming). Além disso, enfoca a análise e projeto orientado a objeto, apresentando a metodologia RUP (Rational Unified Process). Por fim, enfatiza os aspectos positivos da abordagem SDLC, que possibilita organizar e guiar a criação de sistemas, definir processos e atividades e estabelecer limites e comunicações entre os mesmos. 2
Sistemas de Informação Caracterizam-se por armazenar e gerenciar grandes volumes de dados e prover informações necessárias para solucionar problemas organizacionais Podem atender tanto as atividades do dia-a-dia quanto as necessidades gerenciais das empresas. Classificação de Sistemas de Informação: Sistemas de Processamento de Transações Sistemas de Apoio à Decisão Sistemas de Planejamento Estratégico 3
Sistemas de Processamento de Transações SPT Auxiliam na realização de atividades do dia-a-dia de uma empresa ou organização Direcionados para uma perspectiva de curto prazo Exemplos: - Controle de empréstimos de livros em uma biblioteca - Atendimento de pedidos / vendas online - Controle de consultas em uma clínica médica 4
Sistemas de Apoio à Decisão (SAD) Apóiam gerentes de nível médio das empresas e outros profissionais (knowledge workers) a tomarem decisões inteligentes, com menor risco e maior probabilidade de sucesso. Direcionados para uma perspectiva de curto/médio prazo. Exemplos: - Análise de previsões de vendas - Controle e acompanhamento de projetos 5
Sistemas de Informação Estratégicos (SIE) Usados pela alta administração de uma empresa para avaliação e escolha de ações que terão impacto decisivo na vida e sucesso da organização Direcionados para uma perspectiva de médio prazo/longo prazo Exemplo: - Planejamento das políticas de investimento em desenvolvimento de produtos de informática (software, hardware ou dispositivos) para o próximo qüinqüênio 6
Análise e Projeto de Sistemas de Informação Processo complexo para desenvolvimento e manutenção de sistemas e aplicações computacionais Abrange desde a decisão de se criar um sistema, passando pela entrega e acompanhamento do produto, até a sua descontinuação Composta por um conjunto de etapas, fases e atividades Utiliza metodologias, técnicas e ferramentas para apoiar o desenvolvimento dos sistemas Dirigida aos profissionais da área - analistas de sistemas, engenheiros de software 7
Evolução da Análise e Projeto de Sistemas 1950s: foco na automatização eficiente de processos já existentes 1960s: advento das linguagens procedurais de 3ª geração (3GL) e computadores mais rápidos e confiáveis 1970s: o desenvolvimento de sistemas torna-se mais estruturado (como uma disciplina de engenharia) 1980s: grande avanço, com linguagens de 4a geração (4GL), ferramentas CASE e métodos orientados a objeto 1990s: foco na integração de sistemas, interface com o usuário (GUI ), plataformas cliente/servidor e Internet Novo século: desenvolvimento de aplicações Web, aplicações para celular, sistemas baseados em componentes e provedores de serviços (ASP) 8
Ciclo de Vida do Desenvolvimento de Sistemas (SDLC) Metodologia tradicional usada para desenvolver, manter e substituir sistemas de informação Etapas Básicas do SDLC: - Planejamento - Análise - Projeto - Implementação - Implantação - Manutenção 9
Ciclo de Vida do Desenvolvimento de Sistemas (SDLC) Planejamento - as necessidades de informação são identificadas, priorizadas e organizadas Análise - os requisitos do sistema são elicitados e especificados Projeto - a solução obtida é convertida em um projeto lógico e depois em um projeto físico Implementação - o sistema de informação é codificado e devidamente testado Implantação o sistema de informação é entregue à organização e colocado em funcionamento Manutenção um sistema de informação passa por atualizações, correções e alterações preventivas 10
Modelos de Processo de Desenvolvimento de Sistemas Modelos Tradicionais: - Cascata - sequência de etapas/fases - Espiral - construção evolutiva, com refinamentos sucessivos do sistema que está sendo criado 11
Proposto por Barry Boehm Modelo Cascata Há várias versões do modelo será apresentada uma versão genérica Abordagem top-down, composta por uma seqüência de etapas, fases e atividades Cada etapa produz um resultado que, após validado, serve de entrada para a etapa seguinte O modelo cascata direciona o desenvolvimento do sistema, indicando as atividades necessárias, desde a concepção até a entrega do sistema 12
Planejamento Validação Análise Validação Projeto Preliminar Validação Projeto Detalhado Validação Codificação Modelo Cascata (Bohem - 1976) Validação Operação Validação Implantação Validação 13
Proposto por Barry Boehm Modelo Espiral Há várias versões do modelo será apresentada uma visão genérica Adota um Processo Iterativo cada iteração compõe-se de 4 etapas: (1) Inicialização do Processo de Desenvolvimento (2) Avaliação de Alternativas (3) Desenvolvimento do Produto (4) Planejamento do Desenvolvimento (continuidade e finalização) Cada iteração resulta em uma versão do sistema (refinamentos sucessivos) 14
Inicialização Avaliação Determinar objetivos, alternativas e restrições Avaliar alternativas, identificar e resolver riscos Decisão de prosseguir ou não Planejar as próximas fases Planejamento Desenvolver, verificar próximo nível do produto Desenvolvimento Modelo Espiral - (Boehm 1980) 15
Outras Abordagens de Desenvolvimento de Sistemas de Informação Desenvolvimento Rápido (RAD): prototipação do sistema, com uso de ferramenta Metodologias Ágeis Programação Extrema (xp - extreme Programming) 16
Desenvolvimento Rápido (RAD) - Prototipação Reduz o tempo de desenvolvimento do sistema Requer: participação intensiva do usuário, uso de ferramentas CASE, geradores de código, etc. Enfatiza a criação de boas Interfaces Humano- Computador (IHC) Menor preocupação com aspectos de desempenho do sistema 17
Fim Início Coleta e refinamento dos requisitos Engenharia do produto Projeto rápido Refinamento do protótipo Avaliação do protótipo pelo cliente Construção do protótipo Prototipação 18
Metodologias Ágeis Enfocam o desenvolvimento de sistemas como um processo fluido, dinêmico e não previsível totalmente Assumem 3 princípios básicos: - É um processo mais adaptativo do que preditivo - Enfatiza mais as pessoas (usuários) do que os papéis que estas desempenhanham na organização - Atividades de desenvolvimento são auto-adaptativas 19
Programação Extrema (xp) O desenvolvimento do sistema é feito por meio de ciclos curtos e incrementais Os testes são realizados automaticamente e ao longo de todo o desenvolvimento Utiliza a programação pareada os programadores trabalham em duplas, alternando atividades de codificação e de teste - codificar, testar, ouvir, projetar Vantagens: - Communicatção intensa entre desenvolvedores - Alto nível de produtividade - Código de alta qualidade 20
Análise e Projeto Orientado a Objeto (OOAD) Especifica o sistema com base em objetos relacionados ao problema e não em funções ou dados Conceitos da Orientação a Objetos: - Objeto - estrutura que inclui atributos e comportamentos de uma entidade existente no mundo real - Classe - agrupamento lógico de objetos que compartilham os mesmos atributos e comportamentos - Herança - permite que subclasses herdem propriedades de super classes 21
Rational Unified Process (RUP) Metodologia de desenvolvimento de sistemas orientada a objetos Utiliza a notação UML (Unified Modeling Language) para especificar, projetar e documentar o sistema Fases do desenvolvimento em RUP: - Concepção - ênfase no escopo do sistema - Elaboração - ênfase na arquitetura - Construção - ênfase no desenvolvimento - Transição - ênfase na implantação Cada fase pode incluir duas ou mais iterações. 22
Metodologia RUP 23
Ferramentas de Software Computer-Aided Software Engineering (CASE) Ferramentas de diagramação - permitem a modelagem gráfica do sistema Geradores de Relatório - apóiam a documentação da análise e projeto Ferramentas de Análise checam a c onsistência entre diagramas, formulários e relatórios Repositório central - permite armazenar diagramas, arquivos de dados, relatórios, etc. Geradores de Código produzem códigos de programas e bancos de dados automaticamente, a partir de especificações 24
Tela do ArgoUML - Ferramenta CASE de código aberto (http://argouml.tigris.org/) 25
Abordagem seguida no Curso Neste curso, será adotada a Metodologia de Análise e Projeto Estruturado, A Metodologia se adequa aos princípios de: - Análise e Projeto Top-Down, com Refinamentos Sucessivos - Ciclo de Vida de Desenvolvimento (SDLC) - Especificação Orientada a Funções O uso de Ferramentas CASE é fundamental para a geração de projetos corretos, completos e confiáveis 26