Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processo de Desenvolvimento de software Análise e Desenvolvimento de Sistemas Janete Pereira do Amaral janete@mentoring.com.br janete@fic.br Processo de Desenvolvimento de Sistemas Boas Vindas! Conhecer e utilizar ferramentas que auxiliem no desenvolvimento de um software com base nas metodologias e padrões vigentes. • Conhecer a necessidade de se adotar um processo de desenvolvimento de software. • Identificar qual modelo se adapta para cada tipo de software. • Descrever as fases do processo de desenvolvimento. • Conhecer os principais modelos de qualidade de software. • Conhecer as ferramentas mais utilizadas no mercado. Processo de Desenvolvimento de Sistemas 1. Conceitos Gerais 2. Atividades em PDS 3. Suporte e Manutenção do Software 4. Introdução aos padrões de PDS 5. Modelagem de PDS 6. Processo Unificado 7. Ferramentas de PDS Processo de Desenvolvimento de Sistemas O QUE EU JÁ SEI? Processo de Desenvolvimento de Sistemas Era Inicial – (1950-1960)- Orientação batch, distribuição limitada, software projetado para um usuário específico Segunda Era – (... Até meados de 1970) – Multiusuário, tempo real, banco de dados, software produto. Terceira Era – (... Até meados de 1980) – Sistemas distribuídos, inteligência embutida, hardware de baixo custo, impacto das vendas de computadores pessoais. Quarta Era – (... Até nossos dias) – tecnologias orientadas a objeto, sistemas baseados em conhecimento, sistemas web, redes neurais, computação paralela, etc. PROBLEMAS ATUAIS – A crise do software PERSPECTIVAS DA INDÚSTRIA – Padrões, metodologias, componentes, reuso EVOLUÇÃO DO SOFTWARE Software Básico ou Sistema Operacional Software de Linguagem ou Linguagem de Programação Software Aplicativo ou Sistema Aplicativo CATEGORIAS DE SOFTWARE • Software de sistema - inclui firmware, drivers de dispositivos, o sistema operacional e tipicamente uma interface gráfica que, em conjunto, permitem ao usuário interagir com o computador e seus periféricos. • Software aplicativo - permite ao usuário fazer uma ou mais tarefas específicas. Aplicativos podem ter uma abrangência de uso de larga escala • Software embutido ou Software embarcado - destinado a funcionar dentro de uma máquina que não é um computador de uso geral e normalmente com um destino muito específico • Software como serviço - utilizado diretamente na internet, não sendo necessário instalar nada no computador do usuário. CATEGORIAS DE SOFTWARE • Software Proprietário/Comercial – distribuído sem seu código fonte. Normalmente comercializado sob termos de uma licença de uso. • Shareware - Software aplicativo protegido por direitos autorais, tornado disponível para efeito de experiência e teste, sendo pago se for utilizado posteriormente. • Freeware - Software distribuído gratuitamente. O fonte não é disponibilizado (Adobe Acrobat Reader, Real Player, etc) • Open-source - código fonte é distribuído e os termos de licença permitem que o software seja modificado e redistribuído com as mesmas liberdades do software original. Programas que usarem o código fonte livre deverão sujeitar-se aos termos originais da licença aberta. (Linux, servidor web Apache) • Outros (adware, trialware, nagware, bookware, postcardware, stampware, etc). SOFTWARE – PROCESSO AQUISIÇÃO A indústria de software continua lidando com projetos mal sucedidos. As estatísticas do desenvolvimento de software apresentam que: • Somente 34% dos projetos são bem sucedidos • 15% dos projetos são cancelados • 43% é o erro médio em relação ao orçamento do projeto daqueles que foram completados • Somente 52% das características (requisitos não funcionais) e funcionalidades são entregues no produto. Os principais problemas que afetam o desenvolvimento de software não são tecnológicos. A principal preocupação da indústria refere-se à falta de previsibilidade de prazo e de custo dos projetos. Qual a causa destes problemas? Esta situação vem melhorando, mais ainda observa-se um % muito alto de projetos mau sucedidos! Problemas do Desenvolvimento de Sistemas Problemas do Desenvolvimento de Sistemas • Custo maior que o previsto • Alto custo de manutenção • Descumprimento de cronograma • Relação pobre entre cliente e fornecedor • Produtos inexeqüíveis • Não atendimento às necessidades e expectativas do usuário • Não atendimentos aos requisitos especificados • Dificuldades de personalização do software • Perda de controle do projeto • Falta de acompanhamento do projeto • Ciclo de desenvolvimento muito longo • Excesso de retrabalho • Falta de habilidade de prever problemas • Dificuldade na prevenção de defeitos • Baixa disponibilidade e alta rotatividade de recursos humanos CLÁSSICOS Problemas do Desenvolvimento de Sistemas • Requisitos pobres: o cliente fornece ao Contratado um conjunto de requisitos incompleto e sem validação • Aquisição incompetente: falhas no entendimento das necessidades particulares da aquisição de software • Falsas promessas: o pessoal de marketing do fornecedor faz promessas ao cliente que a equipe técnica não pode cumprir • Falta de disciplina: processo de desenvolvimento ad hoc, quando o prazo de entrega do produto está próximo • Expectativas não realistas: cronogramas inexequíveis e desconsideração das limitações das tecnologias usadas • Recurso inadequado quanto a provimento financeiro, equipe, ferramentas e equipamentos • Ausência de apoio da alta gerência da empresa • Ausência de objetivos claros, conduzindo os membros do projeto para direções não uniformes (não-alinhamento de objetivos) • Comunicação ineficiente: ausência de um canal de comunicação efetivo, fazendo com que as informações não cheguem até as pessoas em tempo hábil para tomada de alguma medida • Incompetência: ausência de perfil técnico e de liderança apropriados; e • Atritos, comprometendo a cooperação de uma das partes envolvidas Problemas do Desenvolvimento de Sistemas • Custo do desenvolvimento maior que o orçamento previsto • Atraso no prazo de entrega • Resultados insatisfatórios em relação às expectativas do usuário • Não-intervencionismo: o cliente não é parte ativa do projeto após a assinatura do contrato • Burocracia: excesso de burocracia administrativa para monitorar o contrato e pouco foco nos aspectos técnicos do projeto • Escopo volátil: o cliente adiciona e altera o escopo e a funcionalidade do projeto com o trabalho em andamento e com prazos e recursos limitados • Fragmentação: membros das equipes (cliente/contratado são retirados dos projetos aleatoriamente • Preciosismo: requisitos e imposição de soluções complexas no lugar de soluções tecnicamente simples • Engenharia: o cliente diz COMO fazer seu trabalho, e não QUAL é o trabalho • Indicadores: as medidas de progresso e de desempenho são qualitativas, e não quantitativas. Os indicadores de níveis de desempenho são pobres • Comando: com muitos chefes, as decisões não são tomadas em tempo • Não-envolvimento do usuário final: o ponto de vista do usuário final não é incorporado na funcionalidade e usabilidade do produto Problemas do Desenvolvimento de Sistemas MITOS E REALIDADES NO DESENVOLVIMENTO DE SOFTWARE Mito “Minha equipe tem as ferramentas mais atuais da Engenharia de Software e os melhores computadores” MITOS E REALIDADES NO DESENVOLVIMENTO DE SOFTWARE Mito “Minha equipe tem as ferramentas mais atuais da Engenhariade Software e os melhores computadores” Realidade • Não basta! • Ferramentas CASE, em muitos casos, não são utilizadas • Mesmo a melhor ferramenta não pode transformar um desenvolvedor medíocre num bom desenvolvedor • A essência da construção de software é encontrar a solução para os problemas Ferramentas podem ajudar muito em tarefas repetitivas MITOS E REALIDADES NO DESENVOLVIMENTO DE SOFTWARE • Mais importante: a competência da equipe • Ainda mais importante: aspectos não tecnológicos Atributos pessoais e relações humanas fornecem a maior fonte de oportunidades para melhorar a produtividade no desenvolvimento de software • Investir em pessoas com talento é mais importante do que investir em tecnologia • Entretanto, pessoas competentes mas egoístas e sem capacidade de colaboração irão falhar Para ter sucesso, são necessárias pessoas competentes e colaborativas MITOS E REALIDADES NO DESENVOLVIMENTO DE SOFTWARE Mitos O problema de atraso no cronograma pode ser resolvido aumentando a equipe Todos os programadores são iguais Todos os programadores experientes têm a mesma habilidade O programa está quase pronto … O programa está 95% pronto Para iniciar a programação basta uma identificação geral dos objetivos. Os detalhes podem ser identificados depois As mudanças no software podem ser feitas rapidamente porque o software é flexível Enquanto não se tem um programa “rodando” não é possível avaliar a sua qualidade O único produto de um projeto de desenvolvimento de software é um programa funcionando MITOS E REALIDADES NO DESENVOLVIMENTO DE SOFTWARE Lidar com sistemas legados, lidar com diversidade crescente e lidar com necessidades de tempos de entrega reduzidos • Sistemas legados - Sistemas velhos e valiosos devem ser mantidos e atualizados • Heterogeneidade - Os sistemas são distribuídos e incluem uma combinação de hardware e software • Entrega - Há uma pressão crescente para entrega mais rápida de software Desafios do Desenvolvimento de Software CONCEITOS GERAIS Dado • isolado • independente do contexto • fatos (símbolo, texto, figura) • armazenados em Sistemas de Informação Banco de dados, arquivos (imagens, texto) Informação • dado combinado • dado em contexto • dado estruturado, (ex. Por tópico) • catálogo (diretórios) Conhecimento • individual (humano) • baseado em interpretação, cognição, experiência Dado, Informação e Conhecimento Há mais de 400 definições, conceitos, abordagens etc. utilizados por pesquisadores de diferentes áreas e culturas para caracterizar o fenômeno informação. Informação Níveis Hierárquicos da Informação Dados Informação Conhecimento Inteligência PROCESSAMENTO ANÁLISE SÍNTESE Decisão Dado, Informação e Conhecimento Um grupo de itens que interagem entre si, formando um todo unificado, orientado para atender objetivos específicos Um conjunto organizado de doutrinas, idéias ou princípios, habitualmente previstos para explicar a organização ou o funcionamento de um conjunto sistemático Um sistema de informação é um conjunto de elementos inter-relacionados, processos, dados e tecnologia, cuja finalidade é alimentar os centros de decisões com as informações necessárias à escolha de diretrizes de ação que permitam a obtenção dos objetivos da organização. Hardware / Software / Pessoas Dados / Procedimentos Componentes de um Sistema de Informação SISTEMA SISTEMA DE INFORMAÇÃO Sistemas de Informação (SI) permitem a coleta, o armazenamento, o processamento, a recuperação e a disseminação de informações. Apóiam as funções operacionais, gerenciais e de tomada de decisão. Os usuários são provenientes de todos os níveis da organização. Utilizam SI para alcançar os objetivos e as metas de suas áreas funcionais. SISTEMA DE INFORMAÇÃO Componentes Sistema de Informação Hardware Software Pessoas Dados Procedimentos Componentes de um Sistema de Informação Sistemas de Informação é composto de um sub-sistema social e de um sub-sistema automatizado. Sub-Sistema Social: pessoas, processos, informações e documentos Sub-Sistema Automatizado: meios automatizados (máquinas, computadores, redes de comunicação) que interligam os elementos do sub-sistema social SUB-SISTEMA SOCIAL SUB-SISTEMA AUTOMATIZADO SISTEMA DE INFORMAÇÃO Redefinição de Tarefas e Funções ALTERAR OS SISTEMAS DE INFORMAÇÃO GERALMENTE IMPLICA Mudanças Significativas nos Processos Redefinição do Plano de Autorizações Redesenho dos Controles Chaves SISTEMAS DE INFORMAÇÃO O responsável por esta tarefa é o Analista de Sistemas Sua principal tarefa é descobrir o que um sistema deverá fazer A Análise de Sistemas consiste nos métodos e técnicas de investigação e especificação da solução de problemas, a partir dos requisitos levantados, para criação e implementação do software em algum meio que o suporte. Desenvolver Sistemas de Informação não é desenvolver programas O processo de informatização (criação de sistemas de informação) dentro de uma empresa, traz inúmeras implicações, que vão desde mudanças nas rotinas de trabalho até reestruturações organizacionais, com toda a problemática que daí decorre. A tarefa de construir Sistemas de Informação é uma das mais complexas e, em última análise, é um processo de solução de problemas. SISTEMAS DE INFORMAÇÃO Iniciação O usuário é resistente a informática e seu envolvimento é superficial. A organização encoraja o uso da informática e se preocupa com o aprendizado, mas poucas atividades são automatizadas. Contágio Começam a proliferar SI informatizados, que automatizam atividades antes desenvolvidas manualmente. Não há a preocupação com a integração das informações. Controle O crescimento do uso de SI passa a ser explosivo, o usuário sendo a força propulsora. A organização passa a exigir melhor gestão dos recursos de informática. Integração Em resposta à pressão por melhor gestão, os SI passam a ser orientados para atender às necessidades dos níveis gerenciais, as informações são de melhor qualidade e é exigida maior integração entre elas. Administração de Dados Os SI começam a ser organizados em termos de sistemas que interessam à organização como um todo (corporativos) e sistemas de uso setorial ou especializado, havendo cuidado com a correta administração dos dados, de modo a evitar redundâncias. Maturidade A informação passa a ser considerada como patrimônio da organização, o usuário é participativo e responsável e o crescimento da informática é ordenado. EVOLUÇÃO DO USO DE SISTEMAS DE INFORMAÇÃO NAS ORGANIZAÇÕES Richard Nolan CRIATIVIDADE CONCENTRAÇÃO PERSUASÃO AUTOCONFIANÇA AÇÃO CONCILIADORA ESPIRÍTO DE EQUIPE DETERMINAÇÃO CLAREZA DE RACIOCÍNIO INICIATIVA SIMPLICIDADE PERCEPÇÃO PERSISTÊNCIA FLEXIBILIDADE SENSIBILIDADE COMUNICATIVO Perfil do Analista de Sistemas Processo Padrões Produtividade Técnicas Clientes Ferramentas Medições Produto Prazos O Desenvolvimento de Software INFORMAÇÃO SISTEMAS DE INFORMAÇÃO DADOS SISTEMAS OPERACIONAIS/ TRANSACIONAIS GERENCIAIS APOIO A DECISÃO ? O CONTEXTO DOS SISTEMAS DE INFORMAÇÃO CONHECIMENTOSABEDORIA Nível Gerencial ou Tático Nível Estratégico Nível de Conhecimento Gerentes Médios Fabricação Trabalhadores do Conhecimento e de Dados Vendas e Marketing Nível Operacional Contabilidade Gerentes Seniores Pessoal Finanças SISTEMAS DE INFORMAÇÃO Sistemas de Informação Transacionais Sistemas de Apoio a Decisão Sistemas de Informação Gerenciais Sistemas de Automação de Escritório Nível Estratégico –> Nível Gerencial ou Tático –> Nível de Conhecimento –> Nível Operacional –> SISTEMAS DE INFORMAÇÃO OPERACIONAL TÁTICO ESTRATÉGICO 50 60 70 80 90 Simulação Processamento de textos 00 Transações Informação por área funcional Visão da organização e seu contexto Substituir o julgamento humano Integração da informação OPERACIONAL TÁTICO ESTRATÉGICO SIT ES SAE EIS SIG ERP SAD TÁTICO ESTRATÉGICO OPERACIONAL CRM Explorar dados Informação por cliente BI e-BI SISTEMAS DE INFORMAÇÃO - EVOLUÇÃO Processo de Desenvolvimento de software Análise e Desenvolvimento de Sistemas Janete Pereira do Amaral janete@mentoring.com.br janete@fic.br
Compartilhar