Prof. Ricardo José Pfitscher Material elaborado com base em: José Luiz Mendes Gerson Volney Lagemann Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização 1
Uma solução de SI pode seguir por vários rumos de desenvolvimento Ela pode exigir um mainframe 20 mil pessoas Pode exigir um computador pessoal com programação e testes avançados Ou um simples pacote de edição de imagens Os problemas a serem resolvidos pelo sistema podem ter diferentes características Estruturado Solução repetitiva, um mesmo procedimento pode ser utilizado sempre que surgir o problema Semi-Estruturado Somente parte do problema tem resposta imediata, ou seja, com um procedimento utilizado em outra situação Tipos diferentes de sistemas exigem abordagens diferentes para serem desenvolvidos Depende do escopo, tamanho, complexidade e característica da empresa A diferenciação entre usuários finais e técnicos podem ter abordagens diferenciadas Alguns métodos exigem uma separação nítida outros não A parte comum entre os métodos de desenvolvimento é a metodologia básica de solução de problemas 2
Metodologia: Constitui-se de uma abordagem organizada para atingir um objetivo, por meio de passos preestabelecidos. É um roteiro, um processo dinâmico e interativo para o desenvolvimento estruturado de projetos, sistemas de software, visando a qualidade e produtividade de projetos (soluções). (REZENDE, 2000) É a metodologia mais antiga para construção (desenvolvimento) de Sistemas de Informação Ainda é o método predominante para construção de sistemas de médio e grande porte Ciclo de vida dividido em um conjunto de estágios Início Meio - Fim 3
Estágios do desenvolvimento: Definição do projeto Estudo do sistema Projeto Programação Instalação Pós-Implementação Cada estágio é dependente do anterior O sistema deve ser desenvolvido sequencialmente Estágio por estágio Nítida e formal divisão de trabalhos entre especialistas empresariais e especialistas técnicos A maior parte fica designada com a área técnica Analistas e Programadores Analistas Análise dos problemas existentes e pelas especificações dos projetos de soluções Programadores Codificação e testes dos componentes de software dos sistemas 4
Relacionando o ciclo de vida com a solução de problemas Metodologia de solução de problemas Ciclo de vida do desenvolvimento de sistemas Divisão de tarefas 1. Análise do problema Definição de Projeto Especialistas Especialistas Empresariais: Identificar áreas/questões problemáticas Determinar se o problema requer mais pesquisa e projetar soluções Metodologia de solução de problemas 2. Entendimento do problema 3. Tomada de decisão Ciclo de vida do desenvolvimento de sistemas Estudo do sistema Divisão de tarefas Especialistas Empresariais: Fornecer documentos Descrever problemas e requisitos Fornecer restrições Coletar/sintetizar informações Analisar problemas Fornecer restrições técnicas Projetar soluções alternativas Avaliar a viabilidade 5
Metodologia de solução de problemas Ciclo de vida do desenvolvimento de sistemas Divisão de tarefas 4. Projeto da solução Projeto Especialistas Especialistas Empresariais: Fornecer especificações de projeto Aprovar as especificações Modelar e documentar o projeto lógico Modelar e documentar o projeto físico Metodologia de solução de problemas Ciclo de vida do desenvolvimento de sistemas Divisão de tarefas 5. Implementação Programação Especialistas Instalação Escrever o código dos programas Finalizar o hardware Finalizar o plano de testes Finalizar a documentação Supervisionar a conversão Especialistas empresariais Contribuir com os planos de testes e dados Validar os resultados dos testes Participar da conversão Pós-Implementação Avaliar o desempenho técnico Executar a manutenção Especialistas empresariais Avaliar o desempenho funcional (auditoria) Suprir novas exigências Utilizar o sistema 6
Muitos sistemas continuarão a utilizar a ideia do ciclo de vida Requisitos técnicos complexos Grandes sistemas (mainframes) No futuro muitas aplicações serão baseadas em workstation, PC, dispositivos móveis, tablets Geração de documentos em papel (especificações e documentação) Consomem muito tempo Pode atrasar a instalação do sistema por muitos anos A tecnologia projetada pode ser ultrapassada A metodologia é rígida e inflexível Etapas tem de ser repetidas se os requisitos e especificações precisarem ser revistos Pontos Fortes Especificação e documentação bem detalhada em todas as etapas Aplicações de médio e grande porte Pontos Fracos Volumosos documentos de especificações e acordos de metodologia consomem muito tempo Metodologia rígida e inflexível (passo a passo) Congela as especificações logo no início do desenvolvimento ( se surgir algo novo, volta ao início) 7
Outros meios de construir SI podem superar algumas das limitações do ciclo de vida Algumas alternativas: Prototipagem Desenvolvimento com pacotes de software Desenvolvimento de quarta geração Desenvolvimento pelo usuário final Terceirização Prototipagem Construção de sistema experimental ou parte do sistema Os usuários finais podem avaliá-lo As características e necessidades são passadas de modo a serem implementadas no sistema final Pacotes de software e aplicativos A empresa pode adquirir um pacote de software no qual todos os programas já foram escritos e testados 8
Desenvolvimento de 4ª geração Pouca assistência de especialistas técnicos Pequenos sistemas de informação ou aplicações de PCs Terceirização Empresa externa que executa o desenvolvimento dos SI de uma organização A organização desenvolve aplicações com recursos de um terceiro em lugar de seu próprio pessoal de TI Útil quando a organização não dispõe de recurso financeiro ou técnicos para desenvolver sistemas Uso de protótipos: Modelo preliminar de uma solução de sistema Parte do sistema Telas para entrada de dados Para que os usuários possam interagir Projeto de solução é menos formal Em vez de analisar detalhadamente o problema Gera-se um projeto de solução Os requisitos são gerados dinamicamente ao mesmo tempo que o protótipo é construído 9
Etapas 1. Identificação dos requisitos Especialista técnico e o especialista empresarial trabalham rapidamente para encontrar uma solução básica e determinar necessidades de informação 2. Desenvolvimento de um protótipo operacional Criado um protótipo que funcione Telas online, relatórios para um sistema, sistema completo com poucos arquivos 3. Utilização do protótipo O usuário final trabalha com o protótipo para verificar se atende as necessidades Faz recomendações de melhoria 4. Revisão e aperfeiçoamento Com base nas recomendações o protótipo é revisto Metodologia de Solução de Problemas 1. Análise do problema 2. Entendimento do problema 3. Tomada de decisão 4- Projeto de Solução 5- Implementação Processo de Prototipagem Identificar Requisitos Iniciais Desenvolver Protótipo Operacional Usar Protótipo Protótipo Aceitável? Sim Desenvolver Protótipo Final Desenvolver Versão para Produção Não Divisão de Tarefas Especialistas empresariais: Identificar áreas problemáticas Identificar as necessidades de informação Identificar as restrições empresariais : Documentar requisitos Documentar restrições Especialistas empresariais: Trabalhar em conjunto com os especialistas técnicos para fornecer entradas para o modelo : Gerar rapidamente o protótipo com ferramentas Modificar o protótipo em sucessivas iterações Especialistas empresariais: Voltar ao protótipo utilizando-o para necessidades Empresariais Avaliar o protótipo Informar os especialistas técnicos se o protótipo atende as necessidades e o que precisa modificar : Executar as modificações finais no software Utilizar a versão final com plano para a versão oficial de Produção do sistema Esta pode ser uma versão aperfeiçoada do protótipo ou um software completamente diferente 10
Adequada quando os requisitos dos usuários não são claros Especialistas empresariais podem utilizar um sistema como um mecanismo para facilitar a solução de um problema Solução rápida Útil para testar a interface com o usuário final de um SI Contato imediato com as partes do sistema que utilizarão Eficaz em pequenas aplicações A aplicação em sistemas que trabalham com cálculos complexos pode ser problemática Uso do ciclo de vida é mais apropriado Não substitui a pesquisa e análise detalhada Necessário para construção de um SI Em grandes sistemas é necessário a completa análise e investigação do problema para que a prototipagem seja iniciada 11
Pontos Fortes Eficaz quando os requisitos do usuário não são muito claros Facilita o processo de solução de problemas quando especialistas empresariais utilizam sistemas protótipos Promove testes de interface com usuários Permite contato direto do usuário com as partes do sistema que utilizará Pontos Fracos Não pode ser aplicada em grandes sistemas com instruções de processamento e cálculos complexos Não substitui toda a pesquisa e análise detalhada necessárias para a construção de um SI Programas pré-escritos, comercialmente disponíveis, que eliminam a necessidade de escrever programas quando se desenvolve um SI Alguns problemas são encontrados por muitas organizações Soluções de software similares para resolver problemas similares 12
Vantagens Empresas que não dispõem de pessoal técnico em sistemas, ou o pessoal não possui habilidades em desenvolvimento Se os pacotes serão adquiridos, não é necessário manter especialistas para desenvolve-los Economia dos custos relacionados ao desenvolvimento Mesmo considerando um pacote, os construtores do sistema tem de passar por algumas etapas Analisar, Especificar objetivos, Considerar restrições e avaliar soluções alternativas Entre estas etapas será possível definir se uma solução alternativas de pacotes pode atender os requisitos 13
Pacotes e o processo de desenvolvimento de solução Metodologia de solução de problemas Projeto de solução utilizando pacotes de software Divisão de tarefas 1. Análise do problema Definição de Projeto Especialistas Especialistas Empresariais: Identificar áreas/questões problemáticas Determinar se o problema requer mais pesquisa e se é necessário um projeto de desenvolvimento Determinar se uma solução por pacote deve ser pesquisada Metodologia de solução de problemas 2. Entendimento do problema 3. Tomada de decisão Projeto de solução utilizando pacotes de software Estudo do sistema Divisão de tarefas Especialistas Empresariais: Fornecer documentos Descrever problemas e requisitos Fornecer restrições Coletar/sintetizar informações Analisar problemas Fornecer restrições técnicas Projetar soluções inclusive pacotes Avaliar a viabilidade 14
Metodologia de solução de problemas Projeto de solução utilizando pacotes de software Divisão de tarefas 4. Projeto da solução Avaliação do pacote Especialistas Especialistas Empresariais: Avaliar o pacote do ponto de vista funcional Preparar as especificações do projeto lógico para avaliação do pacote Recomendar o melhor pacote Metodologia de solução Projeto de solução Divisão de tarefas de problemas utilizando pacotes de software 5. Implementação Instalação do pacote Especialistas Finalizar o hardware Adequação do pacote Pós-Implementação Iniciar o treinamento relativo ao pacote Customizar o pacote Finalizar plano de testes Finalizar a documentação Supervisionar a conversão Especialistas empresariais Fornecer especificações para customização Contribuir para o plano de testes Validar os dados dos testes Participar da conversão Corrigir problemas Instalar atualizações ou melhorias do pacote Especialistas empresariais Avaliar o desempenho funcional (auditoria) Suprir novas exigências Utilizar o sistema 15
Nem sempre são capazes de satisfazer todos os requisitos Cada organização trata suas funções padronizadas de formas diferentes Ex.: Folha de pagamento Muitas vezes esses problemas são resolvidos através de customização Existem limites de até onde os pacotes podem ser customizados Se o pacote não atender certos requisitos a empresa terá de se adequar as novas necessidades do software Desenvolvidos pelos usuários finais Pouca ou nenhuma assistência de especialistas técnicos Usuários: Maior controle do processo de solução de problemas Podem pesquisar e analisar um problema Executar parte do projeto lógico Implementar a solução por si próprios Utilizam softwares para desenvolvimento de fácil utilização, Ex.: linguagens de consulta e pacotes específicos de PCs 16
(a) Metodologia de (b) Processo de Solução de Problemas 4ª Geração 1. Análise do problema Definição do projeto (c) Divisão de Tarefas Especialistas empresariais: Identificar áreas problemáticas Fornecer restrições : Determinar se o problema requer assistência técnica 2. Entendimento do problema 3. Tomada de decisão 4- Projeto de Solução Geração da solução -Prototipagem -Finalização da da solução Especialistas empresariais: Projetar e implementar soluções utilizando ferramenta de software de 4a geração. : Fornecer assistência técnica aos especialistas empresariais 5- Implementação Pós-implementação Especialistas empresariais: Utilizar e avaliar a solução Modificar o sistema quando for apropriado : Fornecer conhecimento especializado para executar o sistema em produção e modificá-lo. Ferramentas de software: Fácil utilização que serão manipuladas pelos usuários finais Exemplos: Ferramentas para PCs Linguagens de consulta e geradores de relatório Linguagens gráficas Linguagens de programação de nível alto (longe do hardware) Pacotes de software específicos 17
Desvantagens Somente para resolver problemas onde a solução com sistemas é simples Perda do controle dos Sistemas de Informação existentes na organização Algumas organizações abriram mão de manter recursos internos relacionados a desenvolvimento e operação de SI Transferir para empresas externas essas obrigações Parte ou total Diversos serviços são prestados: Gerenciamento do centro de informática da empresa Operação dos sistemas de computador da empresa no centro de informática terceirizado (datacenter) Desenvolvimento de aplicações Operações de rede e telecomunicações 18
Metodologia de Solução de Problemas 1. Análise do problema 2. Entendimento do problema Terceirização Definição do problema Estudo do sistema Divisão de Tarefas Especialistas empresariais: Identificar áreas problemáticas Determinar razões empresariais para escolher a terceirização : Determinar se a terceirização deve ser pesquisada como solução alternativa Especialistas empresariais: Descrever problemas/requisitos Fornecer restrições : Analisar problemas Fornecer restrições técnicas Metodologia de Solução de Problemas Terceirização Divisão de Tarefas 3. Tomada de decisão 4- Projeto de Solução 5- Implementação Avaliação da empresa fornecedora Implementação Especialistas empresariais: Avaliar a viabilidade da terceirização do ponto vista empresarial : Sugerir soluções alternativas, inclusive a terceirização. Determinar a viabilidade Recomendar a empresa fornecedora do fornecedor Preparar especificações de projeto Especialistas empresariais: Contribuir planos de teste e dados Validar o resultado dos testes Participar da conversão Utilizar e avaliar o sistema : Monitorar a empresa fornecedora do fornecedor Preparar o projeto físico Instalar a solução Manter o sistema 19
É mais econômico terceirizar As empresas são especialistas nos serviços que oferecem Por isso conseguem oferecer por um preço condizente com a qualidade do serviço As empresas que têm pouco pessoal de SI muitas vezes utilizam a terceirização como um meio de liberar o pessoal mais talentoso para outros projetos Não pode ser utilizada em todas as empresas e todas as situações As empresas devem tomar cuidados com a perda de controle relacionada com a terceirização Muitas empresas confiam demais nos fornecedores O excesso de confiança pode deixar a empresa vulnerável a dificuldades financeiras do fornecedor, que pode fechar as portas 20
21