O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Introdução Eng. de Software

Rodrigo Pereira Engenharia de Software Inglês

Introdução Eng. de Software

Conteúdo do mapa

Introdução Eng. de Software

  1. Software

    • Software é um produto maleável no qual seu material componente (código fonte) é manipulável. Deve-se ter em mente que a aparente facilidade de mudança que o software possui não é de todo verdadeira. Afinal, o software não está restrito apenas ao seu código fonte e seu executável, mas também a toda a documentação e configuração associadas, que são necessárias para que esse funcione corretamente.
    • Produto
      • <> dos comuns
      • Maleável
        • Maleabilidade
          • Aparente facilidade nas alterações
      • Custo no desenvolvimento
        • Fator Humano
          • Criatividade
          • Capacidade de produção
    • Desenvolvimento custa caro
      • Quase sempre, os recursos (equipe) são insuficientes e incapazes de realizar as atividades
    • É desenvolvido, não produzido
      • Alto custo de desenvolvimento (Engenharia)
      • Baixo custo na reprodução
      • Tempo de desenvolvimento, quase sempre é superado
    • Tipos
      • Sistemas de software
        • Uma coleção de programas escritos para servir a outros programas.
      • Sistemas de tempo real
        • Programas que monitoram e controlam eventos do mundo real ao mesmo tempo em que estes eventos ocorrem. São sistemas que devem atender a rígidas restrições de tempo de resposta.
      • Sistemas de informação
        • Sistemas de apoio a processos de negócio e que consistem na manutenção e processamentos de bases de informações.
      • Sistema de engenharia
        • Apóiam atividade de negocio, não manipulando grandes bases de dados, mas processando informações através de algoritmos complexos.
      • Sistemas embarcados
        • Sistemas que residem em memória não volátil e são distribuídos como parte de algum equipamento.
      • Sistemas para computadores pessoais
        • Sistemas como planilhas, jogos.
      • Sistemas distribuídos
        • Sistemas formados por componentes de software executando em computadores distintos e conectados por uma rede.
    • Modelo de ciclo de vida
      • É uma descrição de um conjunto de etapas que devem ser executadas para o desenvolvimento e manutenção de um produto de software. O ciclo de vida determina a interação entre estas etapas e o momento em que elas devem ser executadas em relação umas às outras. Cada etapa define a atividade a ser executada, quem participa e quais são os critérios de encerramento. A transição entre as fases ocorre com entregas de produtos ou transferência técnica de especificações e, em geral, as fases terminam quando a entrega da fase anterior foi homologada. Para isso, devem existir critérios tangíveis para a homologação (isto é, aprovação).
      • Principais etapas ciclo de vida clássico
        • Codificação
          • Pode ser considerada como a tradução do projeto para uma linguagem de programação.
        • Projeto
          • Define uma solução computacional para a implementação de um conjunto de requisitos definidos na análise.
        • Análise de requisitos
          • Etapa que tem o objetivo de descrever o que o software deve fazer e para quem devem ser construídas estas funcionalidades.
        • Testes
          • Verificação do código para determinar se este atende ao projeto e implementa corretamente os requisitos.
        • Manutenção
          • Etapa em que se atua sobre o software já desenvolvido e em produção, em geral, para corrigir erros ainda presentes nele ou para evoluí-lo de forma que se mantenha útil.
    • Crise do Software
      • Início dos Anos 70, final dos anos 60
        • Definição
          • Expressava as dificuldades do desenvolvimento de software frente ao rápido crescimento da demanda por software, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.
          • Os problemas mais comuns no desenvolvimento de software
            • Produtividade das pessoas da área de software não acompanha a demanda.
            • Prazos ultrapassados.
            • Custos acima do previsto.
            • A facilidade de manutenção não era enfatizada como um critério importante, gerando assim custos de manutenção elevados.
            • Não atendimento dos requisitos do usuário.
            • 1/3 dos projetos eram cancelados.
            • 2/3 dos projetos extrapolavam o orçamento.
            • Estimativas de prazo e de custo imprecisas.
      • Marcada também pela queda do valor do hardware
    • Legado
      • Software desenvolvido a há muitas décadas atrás.
      • Software que foi muitas vezes modificado para se adequar aos requisitos
      • Apesar de ser antigo, eles são considerados indispensáveis para funções de negócios vitais.
  2. Mitos do desenvol. de software

    • da Gerência
      • Ferram. modernas de hardware e software são suficiente.
      • Manuais de Regras e procedimentos.
      • Estamos atrasados ? Vamos alocar mais gente ao projeto.
    • Do desenvolvedor/ Programador
      • Até que o programa esteja "rodando" não a como medir sua qualidade
      • O único produto de um projeto de software é o conjunto de programas
      • Programa escrito e testado! acabei
    • Do cliente
      • Uma lista de inteções(Boas) é suficiente para começar a produzir um software
      • Minhas necessidades vão mudar? mas mudanças são faceis de introduzir porque software é bastante flexível
  3. Engenharia de Software

    • “O estabelecimento de um conjunto de princípios de engenharia com o objetivo de se construir software confiável, eficiente e economicamente viável e em máquinas reais”. A Engenharia de Software é a aplicação de abordagens sistemáticas para desenvolvimento de software de maneira disciplinada e quantificável. A Engenharia de Software surgiu para identificar e analisar as causas de problemas no desenvolvimento de software, propondo soluções economicamente viáveis para esses problemas. Ela também busca organizar o conhecimento sobre diferentes técnicas para o desenvolvimento de software.
    • Princípios
      • Métodos
        • Representações do software durante seu desenvolvimento. Os métodos, em geral, estão baseados em modelos de desenvolvimento, que podem ser representados graficamente ou textualmente, e no uso desses modelos como especificação e projeto de um sistema. Uso de notações e linguagens (por exemplo: UML; analise estruturada).
      • Ferramentas
        • são softwares quem auxiliam na construção de software, oferecendo suporte automático ou semi-automático aos métodos. Ferramentas CASE (computer aided software engineering): abrangem uma larga faixa de diferentes tipos de programas&nbsp;utilizados nas atividades do processo de software, tais como ferramentas de análise de requisitos, ferramentas de modelagem do sistema, ferramentas de suporte a teste, etc.
      • Procedimentos
        • Seqüência de passos para construir um software, incluindo os resultados gerados por estes passos e os controles aplicáveis sobre estes resultados.
      • Abstração
        • é a capacidade de descrever problemas em um nível de generalização que esconde detalhes (não importantes naquele momento) e permite o foco dos analistas nos principais mecanismos que regem o sistema. O uso da abstração no desenvolvimento de software permite que um grupo de desenvolvedores entenda gradualmente um problema de larga escala a ser abordado pelo software.
      • Notação de Análise e projeto
        • Durante o desenvolvimento do software, há a comunicação entre os integrantes da equipe. Por isso, é importante que haja padronização e formalismo na documentação e nos artefatos produzidos por essas equipes. As notações de análise e projeto ajudam muito neste sentido.
      • Prototipagem
        • É a construção de versões mais simples dos sistemas para verificar o entendimento dos requisitos, a qualidade da interface com o usuário e a capacidade de um projeto resolver o problema.
      • Arquitetura de sistema
        • Mecanismos fundamentais que direcionam a construção do produto de software e servem como base para seu posterior refinamento.
      • Processo de desenvolvimento
        • Formalização e disciplina nas atividades que serão executadas no processo de desenvolvimento, visando qualidade no produto. A qualidade de um produto está ligada a qualidade do processo com o qual foi construído.
      • Reutilização
        • Princípio baseado na oportunidade decorrente da similaridade entre aplicações para o reuso de artefatos previamente construídos (não somente o código fonte, mas também especificações, arquiteturas, documentos de projeto, testes, etc.).
      • Medição
        • Mecanismos para avaliação de qualidade do produto e do processo de desenvolvimento. A medição é utilizada com o intuito de controlar tanto a qualidade do produto como do processo, e também para aprimoramento.
      • Ferramentas de desenvolvimento
        • Apóiam o processo de desenvolvimento de maneira automatizado, também permitem a integração das diversas atividades do processo de desenvolvimento.
      • Separação de objetivos
        • O desenvolvimento de software envolve múltiplas habilidades e diferentes objetivos nas diversas fases de desenvolvimento.
      • Antecipação a mudanças
        • Mudanças afetam os sistemas, e é certo que essas ocorrem. Portanto, um sistema deve ser suscetível a mudanças.
    • Processo desenvolvimento de Software
      • Tentativa de sistematizar o desenvolvimento de software, estabelecendo as atividades que devem ser realizadas para construir o software, a ordem em que estas atividades devem ser executadas, os papéis e pessoas envolvidos, os artefatos que devem ser gerados e como estes podem ser validados.
      • Conjunto formado por
        • Atividades
        • Métodos
        • Práticas
  4. Processo de Software

    • Definição 1
      • Um conjunto de atividades realizadas por pessoas cujo objetivo é desenvolvimento ou evolução de software e sua documentação.
    • Definição 2
      • Conjunto de atividades, métodos, práticas e tecnologias utilizadas para o desenvolvimento e manutenção de software e produtos relacionados
    • Atividades genéricas em todos os processos
      • Especificação
        • O que o sistema deve fazer (funcionalidade) e quais as restrições
      • Desenvolvimento
        • Produção do software
      • Manutenção
        • mudanças no software
      • Verificação
        • Avaliar correção, validação e outros aspectos de qualidade
    • Método x Processo
      • Método
        • (ou modelo de processo) é algo teórico, um conjunto de possíveis ações – conteúdo do método.
        • Método + Planejamento = Processo
        • Define:
          • Define quem e quando fazer.
      • Processo
        • determinar ações práticas a serem realizadas pela equipe como prazos definidos e métricas para se avaliar como elas estão sendo realizadas.
        • Define:
          • Define o que, como e porque fazer

Imagens e arquivos do mapa

  • Introdução Eng. de Software
  • Introdução Eng. de Software
  • Introdução Eng. de Software
  • Introdução Eng. de Software

Informações

Descrição
Engenharia de Software Mapa Mental sobre Introdução Eng. de Software, criado por Rodrigo Pereira em 07-02-2017.
Criado por
Rodrigo Pereira
Visualizações
3
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?