Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise e Projeto de Sistemas I Introdução a Engenharia de Software / Análise de Sistemas Prof. Eduardo Siqueira Martins Análise de Sistemas Importância � Estudo do problema e de suas possibilidades de solução � Interação com o usuário final para adequação do sistema as suas necessidades � Especificação da solução mais indicada � Avaliação prévia do custo- benefício � Análise da viabilidade de implantação � Flexibilidade para desvios de rota sem grandes prejuízos � Documentação de todo o processo 2 Objetivos Específicos • Identificar as necessidades dos usuários • Avaliar a concepção do sistema quanto à sua exeqüibilidade (que se pode executar) • Executar análise econômica e técnica • Atribuir funções ao hardware, ao software, às pessoas, ao banco de dados e aos demais elementos do sistema • Estabelecer restrições de prazo e custo • Criar uma definição do sistema que constitua a base para todo trabalho subseqüente (incremental) Principais Questões � A maioria dos profissionais reconhece que o tempo e o esforço despendidos na análise de sistemas é vantajoso? � Quanto esforço deve ser despendido na análise e definição de sistemas? � O tamanho e complexidade do sistema, área de aplicação, usuário final e obrigações contratuais são apenas algumas das muitas variáveis que afetam o esforço de análise global � Regra empírica: 10 a 20% do esforço aplicados na análise 3 Principais Questões � Por que é tão difícil? � Um conceito nebuloso deve ser transformado num conjunto de elementos concretos (a comunicação é elevada durante a análise, surgem oportunidades para desentendimento, inconsistência e erros) � A percepção do sistema pode modificar-se à medida que a atividade progride, invalidando trabalho anterior � Quem o faz? � Um analista experiente deve dirigir a maioria das tarefas (o analista trabalha em conjunto com o pessoal administrativo e técnico do cliente e com a equipe de desenvolvimento do sistema) � Para projetos muito grandes, uma equipe pode ser formada para dirigir cada tarefa de análise 4 Pessoas envolvidas na Análise � Usuários: pessoas para quem o sistema está sendo construído � operadores � supervisores � executivos � Analistas de Sistemas: pessoas responsáveis pela especificação do sistema � Programadores: pessoas responsáveis pela implementação, em uma linguagem de programação específica, da especificação gerada pelos Analistas de Sistemas � Administradores de Dados: Responsáveis pela gestão dos dados da aplicação 5 O Analista de Sistemas � Participa do processo de Desenvolvimento de Software � Interage diretamente com o usuário, levantando as suas necessidades � Especifica O QUE DEVE ser feito � Deve estudar e entender o negócio e a missão da empresa � Capacidade de absorver fatos pertinentes a partir de fontes conflitantes ou confusas � Capacidade de se comunicar bem de forma escrita e verbal � Capacidade de "ver a floresta ao invés das árvores” � É o responsável pelo desenvolvimento de uma Especificação de Requisitos de Software e participa de todas as revisões � Estuda a viabilidade do sistema � Técnica, Financeira, Prazos (Viabilidade Técnica, Viabilidade Econômica, Definição de Cronograma, Alternativas) 6 O Analista de Sistemas � Pode sugerir diferenciais competitivos com a informática � Capacidade para compreender conceitos abstratos, reorganizar esses conceitos em divisões lógicas e sintetizar "soluções" baseado em cada divisão � Trata a complexidade do problema por níveis de abstração 7 • Utiliza metodologias de fácil compreensão do usuário para especificar o sistema a ser implementado Perfil do Analista 8 Conhecimentos Técnicos do Analista • Metodologias de Análise • Modelagem de Dados • Planejamento e Gerência de Projetos • Engenharia de Software • Administração • Tecnologias Emergentes Ferramentas de Análise 9 Ciclo de Trabalho do Analista � Modelagem das Funções do Sistema � Análise Estruturada � Diagrama de Fluxo de Dados � Diagrama de Contexto � Dicionário de Dados � Modelagem de Dados Armazenados � Diagrama de Entidades e Relacionamentos � Entidades � Relacionamentos � Análise e Projeto Orientado a Objetos Introdução �Como você desenvolve software hoje? �Crise do software (crise de qualidade, prazos e custos) �Engenharia Civil x Engenharia de Softwares: Pedreiro / Programador – Engenheiro Civil /Analista de Sistemas �Contexto: software de porte considerável e de responsabilidade, não “software de padaria” (pequenos programas feitos em poucos dias) Tipos de Software �O que é software? � Produto �Documentação (do sistema e do usuário) �Arquivos de configuração �Tipos de software �Genéricos (software de prateleira) � Produtos sob encomenda (específicos / personalizados) Processos � Objetivo: desenvolvimento de softwares de forma sistemática (não artística). � Processo: conjunto de passos parcialmente ordenados, constituído por atividades, métodos, práticas e transformações usadas para atingir uma meta (documentos, modelos, produtos, etc). � Ex.:Praxis, Rup, Processo Unificado. � Um processo deve detalhar: - O que deve ser feito - Quando - Por quem - O que usa - O que deve ser produzido � Algumas empresas fazem seus próprios processos Projeto de Software �O desenvolvimento de um software é feito dentro de um projeto. �Todo projeto tem: - Data de início; - Data de fim; - Uma equipe. - Um responsável (gerente de projetos) - Outros recursos �Um projeto bem definido tem subdivisões que permitem avaliar seu progresso e corrigir seus rumos Projeto de Software Planejamento do Projeto: • Processo; • Cronograma; • Documentação; • Pessoas; • Recursos computacionais: Hardware e Software; • Riscos: � Ex.: Tecnologia desconhecida; � Possibilidade de mudança dos requisitos; � Possibilidade de mudança da equipe; • Controle de Qualidade. Etapas de um sistema Etapas para o desenvolvimento de sistema: � Antes de iniciar o desenvolvimento: elaborar uma proposta de desenvolvimento. � Objetivos, funcionalidades, prazos e custos � No inicio do desenvolvimento: elaborar o planejamento do projeto. � Desenvolvimento: � Especificação de requisitos; � Análise de requisitos; � Projeto; � Implementação ou codificação; � Testes. � Após o desenvolvimento: manutenção. Ferramentas Case �CASE (Computer-Aided Software Engeneering): ferramentas para auxiliar nas etapas de desenvolvimento de sistemas �Agilizam e automatizam várias atividades: � Gerência do projeto (planejamento, estimativas, controle de versões); � Modelagem do sistema (Ex.: Rational Rose, Poseidon, Jude, Microsoft Visio, Umbrello); � Modelagem do banco de dados (Ex.: Case Studio, ERWin); � Nos testes do sistema, prototipação, entre outras tarefas. Mensagem Tempo Requisitos Análise Desenho Implementação Testes Implantação Correções Resultados “Se tivesse seis horas para derrubar uma árvore, eu passaria as primeiras quatro horas afinando o machado” (Abraham Lincoln) •Desenvolver software não é só codificação
Compartilhar