Um sistema é desenvolvido para solucionar problemas. Então, o 1º passo é definir e entender o problema. O 2º é desenvolver soluções alternativas, e o 3º escolher a melhor solução. O último passo é implementar a solução. O 3 primeiros passos são chamados de análise de sistemas. Definir um problema pode dar trabalho, pois vários membros podem ter ideias diferentes sobre a sua natureza e gravidade. Deve-se definir se trata-se de um problema humano, organizacional ou tecnológico e conhecer os objetivos da empresa: reduzir custos, aumentar as vendas ou melhorar o relacionamento com clientes, fornecedores ou funcionários. Alguns problemas não exigem uma solução de sistemas de informação, mas sim um ajuste na administração, treinamento adicional ou refinamento dos procedimentos organizacionais existentes. Outras, porém, exigem modificações nos sistemas de informação existentes ou, ainda, um sistema de informação totalmente novo. A análise de sistemas inclui um estudo de viabilidade para determinar se cada solução proposta é viável, do ponto de vista financeiro, técnico e organizacional. Um relatório escrito apresentando uma proposta de sistemas descreve os custos e benefícios, as vantagens e desvantagens de cada alternativa. Com base nesse relatório, a administração seleciona aquela que acredita ser a melhor solução para a empresa. O 1º passo é criar especificações de projeto detalhadas. Ele mostra com a solução escolhida deve ser concretizada. É a planta ou modelo para uma solução de sistemas de informação e consiste em todas as especificações que executarão as funções identificadas durante a análise de sistemas. Elas devem abordar todos os componentes organizacionais, tecnológicos e humanos da solução de sistema. •Seleção e aquisição de hardware •Desenvolvimento e programação de software •Testes •Treinamento e documentação de como o sistema funciona •Conversão: passagem do sistema antigo para o novo •Produção e manutenção Como montar o estudo de caso empresarial para o novo sistema: Aspectos financeiros: há os custos de implantação e operacionais, os benefícios tangíveis (produtividade aumentada, força de trabalho, custos operacionais e de infra-estrutura reduzidos, etc) e intangíveis (maior satisfação do cliente, melhor imagem corporativa, etc). Aspectos não financeiros: os SI também criam valor por fortalecer estrategicamente a empresa, ao diferenciar produtos e serviços, fortalecer os laços com clientes e fornecedores ou proporcionar flexibilidade para responder rapidamente a mudanças futuras. Muitas vezes as empresas criam um plano de sistemas de informação para ter certeza que a solução escolhida se encaixa na sua estrutura e plano de negócio. Ele contém uma declaração de metas corporativas e especifica como a tecnologia de informação apóia a realização dessas metas. A análise de carteira (portfólio) ajuda a avaliar alternativas de projetos de sistemas, fazendo um inventário dos ativos e projetos de SIs da empresa, incluindo infra-estrutura, contratos de terceirização e licenças. Assim pode-se focar sistemas de alto benefício e baixo risco, que prometem retornos rápidos e seguros. Em 2º lugar, devem ser analisados os sistemas de alto benefício e alto risco. Os de baixo benefício e alto risco devem ser evitados, e os de baixo benefício e baixo risco devem ser reexaminados e tentar remodelá-los. Outro método de decisão é o modelo de pontuação (scoring), onde atribui-se às alternativas uma pontuação única, baseada no grau de atendimento a objetivos selecionados. O relacionamento entre usuários finais e especialistas de informação tem sido, tradicionalmente, uma área problemática para os esforços de implementação de sistemas de informação, pois esses 2 grupos tendem a ter diferentes informações técnicas e pessoais, interesses e prioridades. Isso cria uma dificuldade de comunicação. Freqüentemente, as orientações são tão conflitantes que eles parecem estar falando idiomas diferentes. Quando um projeto de sistema de informação tem o respaldo e o comprometimento dos vários níveis da administração, é mais provável que receba prioridade mais alta tanto dos usuários quanto da TI. O respaldo da administração também garante que um projeto de sistema receberá financiamento e recursos suficientes par ser bem-sucedido. Quando o risco é muito alto, há mais probabilidade de fracassar ou sofrer atrasos, como projetos grandes e complexos. Projetos de sistema de grande escala têm índices de fracasso 50% a 75% mais altos que os outros, por serem difíceis de controlar. Os riscos também são mais altos no caso de sistemas em que os requisitos de informação não estejam claros e bem delineados, ou em que a equipe de projeto lide com uma tecnologia nova e complexa. Um projeto de desenvolvimento de sistemas precisa ser cuidadosamente gerenciado para que se tenha certeza de que as tarefas serão finalizadas a tempo e que todos os grupos envolvidos no novo sistema trabalharão juntos com eficiência. Às vezes são esquecidos elementos básicos, como treinamento dos usuários finais. Sem o gerenciamento adequado, pode levar mais tempo para ser finalizado e exceder o orçamento designado. Você pode superar a resistência do usuário promovendo sua participação (tanto para estimular seu comprometimento quanto melhorar o projeto). Ele podem transformar-se em membros ativos da equipe de projetos, assumir papéis de liderança e encarregar-se da instalação do sistema e do treinamento. A ergonomia não pode ser esquecida, assim como as transformações em cada cargo, por meio de uma análise de impacto organizacional. Ciclos de vida de sistemas tradicional: é o método mais antigo de montagem de sistemas de informação. É uma abordagem em fases à montagem de um sistema, dividindo o seu desenvolvimento em estágios formais. É uma abordagem em cascata, na qual as tarefas de cada estágio devem estar concluídas antes que o estágio seguinte se inicie. Tem uma divisão de trabalho formal e é mais usado para o desenvolvimento de grandes sistemas complexos. Prototipagem: consiste em montar um sistema experimental rapidamente e sem muitos gastos para submetê-lo à avaliação de usuários finais. O protótipo é uma versão funcional de um sistema de informação, ou de parte dele, mas deve ser considerado apenas um modelo preliminar. Ele pode ser refinado inúmeras vezes. É especialmente útil para o projeto de interface de usuário do sistema de informação. Desenvolvimento pelo usuário final: pode criar sistemas de informação simples, reduzindo o tempo e as etapas necessárias pra produzir uma aplicação acabada. Utilizando linguagens de quarta geração, linguagens gráficas e ferramentas de softwares para PCs (como WebFocus), ele pode acessar dados, criar relatórios e desenvolver sistemas de informação inteiros por si mesmo, com pouca ou nenhuma assistência de analistas de sistemas ou programadores profissionais. Pacotes de softwares aplicativos: muitas aplicações são comuns a todas as empresas, como folha de pagamento, contas a receber e controle de estoque. Para tais funções, cujos procedimentos são padronizados e não mudam muito ao longo do tempo, um sistema generalizado atenderá aos requisitos de muitas organizações, poupando tempo e dinheiro. Muitos pacotes incluem recursos de customização. Terceirização (outsourcing): há 2 tipos – o que as empresas assinantes usam o software e hardware fornecidos pelo provedor de serviço aplicativo como plataforma técnica para seus sistemas, e o que uma empresa contrata um fabricante externo p/ projetar e criar o software para seu sistema, mas opera o sistema em seu próprio computador. O fornecedor pode ser doméstico ou estrangeiro. A escolha pelo 1º é motivado das empresas terceirizadas possuírem mais habilidades, recursos e ativos que seus clientes. A outra decisão é motivada pelo custo: programadores indianos ou russos ganham cerca de U$ 10.000 ao ano, contra U$ 70.000 de um americano. Mas deve-se ficar atento aos custos ocultos (como diferenças culturais) que podem aumentar os custos de um projeto de terceirização de 15 a 57%. As tecnologias e condições de negócio estão mudando rapidamente, então as empresas vÊm adotando processos de desenvolvimento mais curtos e informais para suas aplicações de ebusiness, que oferecem soluções rápidas sem causar rupturas em seus sistemas transacionais centrais e bancos de dados organizacionais. O RAD – desenvolvimento rápido de aplicações – refere-se ao processo de criar sistemas aptos a funcionar em um curto espaço de tempo. Inclui o uso de programação visual e outras ferramentas p/ desenvolver interfaces gráficas de usuário, prototipagem iterativa de elementos de sistemas essenciais, automação da geração de códigosfonte para programas e colaboração mais estreita entre usuários finais e especialistas em sistemas de informação. Sistemas simples podem ser montados com componentes pré-construídos. Uma técnica denominada projeto conujnto de aplicações – JAD – é usada para acelerar a geração de requisitos de informação e desenvolver o projeto inicial de sistemas. A JAD reúne usuários finais e especialistas em sistemas de informação em uma sessão interativa para discutir o projeto do sistema. Se adequadamente preparadas e mediadas, essas sessões podem acelerar significativamente a fase de projeto e envolver intensamente os usuários. Metodologias estruturadas: são elaboradas passo-a-passo, sendo cada um fundamentado no anterior. São executadas de cima para baixo, partindo-se do nível mais alto e mais abstrato para o mais baixo de detalhe – do geral p/ o específico. São orientados a processos. A ferramenta primária é o diagrama de fluxo de dados, que oferece um modelo gráfico lógico do fluxo de informações. Desenvolvimento orientado a objetos: os métodos estruturados tratam dados e processos como entidade logicamente separadas, mas no mundo real tal separação é pouco natural. Diferentes convenções de formatação são usadas para análise e projeto. O desenvolvimento orientado a objetos aborda essas questões. Usa o objeto como unidade básica da análise e projeto de sistemas. Um objeto combina dados e os processos específicos que operam nesses dados. Os dados encapsulados num objeto podem ser acessados e modificados somente pelas operações associadas àquele objeto. Em vez de passar os dados para os procedimentos, os programas enviam uma mensagem para que o objeto execute o procedimento nele embutido. O sistema é modelado como um conjunto de objetos e segundo o relacionamento entre eles. Como a lógica de processamento reside dentro de dos objetos, e não em programas de software independentes, os objetos precisam colaborar entre si para fazer o sistema funcionar. Baseia-se em conceitos de classe e herança. Objetos pertencentes a certa classe tem suas características. Novas classes de objetos são criadas escolhendo-se uma classe já existente e especificando quanto a nova classe difere dessa, em vez de começar do zero. É mais interativo e incremental. E como os objetos são reutilizáveis, pode reduzir o tempo e investimento necessários para escrever um software, caso as organizações reutilizem os objetos de software já criados como componentes de outras aplicações. Serviços Web e desenvolvimento baseado em componentes: grupos de objetos são reunidos na forma de componentes de software p/ funções comuns, tais como interface gráfica de usuário ou uma função de processamento de pedidos online, e esses componentes são combinados p/ criar aplicações empresariais de grande escala. Ex.: Aplicações de e-commerce, como carrinho de compra, autenticação de usuário, mecanismos de busca e catálogos. Oferece ferramentas de software que automatizam as metodologias que acabamos de descrever, reduzindo a quantidade de trabalho repetitivo no desenvolvimento de sistemas. Oferecem recursos gráficos automatizados para produzir gráficos e diagramas, dicionários de dados e geradores de telas e relatórios. Facilitam a documentação clara e coordenação do trabalho da equipe de desenvolvimento.