Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introdução a Engenharia de software - Coggle Diagram
Introdução a Engenharia de software
Capítulo 1 Valente1.1 - Definição, contexto e história (2 alunos) Tomé e Nathan
Dificuldades essenciais da engenharia de software:
Complexidade
Software: uma das construções mais desafiadoras criadas pelo ser humano
Crescente dependência de outras tecnologias
Conformidade (específica da engenharia de software)
Precisa se adaptar ao ambiente
Ambiente muda constantemente na modernidade
Facilidade de mudanças
Evoluir constantemente
Incorporar novas funcionalidades
Invisibilidade
Natureza abstrata
Difícil vizualizar tamanho
Difícil estimar esforço para construção
Exemplo:
Linux v4.1.3 (2017)
• ~25 milhões de linhas de código
• +1700 engenheiros contribuindo
Capítulo 1 Valente 1.3 - Classificação dos sistemas de software (1 aluno) Mosiah
Sistemas B
Aplicações corporativas
Sistemas de gestão de estoque, ERP, CRM
Focados para os negócios
Sistemas C
Sistemas casuais
Toleram bugs
Equipes pequenas
Scripts para automatizar tarefas, to-do lists, etc
Sistemas A
Falhas tem graves consequências
Revisões rigorosas
Redundâncias
Sistemas de avião, usina nuclear, decolagem de foguetes, carros sem pilotos
Software nas atividades humanas
Presentes em todos os tamanhos e contextos
Risco: Achar que só existe um jeito de desenvolver
Capítulo 1 Pressman - 1.1 - A Natureza do software (3 alunos) Diêgo, Samuel e Felipe Iago
A NATUREZA DO SOFTWARE
Produto
Potencial Computacional (hardware)
Transformador de Informações
Produzindo
Gerenciando
Adquirindo
Modificando
Exibindo / Transmitindo
Informações
Veículo
base para o controle do computador (sistemas operacionais)
comunicação de informações (redes)
criação e o controle de outros programas (ferramentas de software e ambientes).
DEFINIÇÃO DE SOFTWARE
instruções
programas de computador
características
funções
estruturas de dados
lógico
característica fundamental que o torna consideravelmente diferente do hardware: o software não “se desgasta”.
DOMÍNIOS DE APLICAÇÃO DE SOFTWARE
Software de Sistema
Conjunto de programas para atender outros programas
Exemplos: compiladores, editores, utilitários, drivers, software de rede, processadores de telecomunicações.
Função: gerenciar informações complexas e estruturas determinadas/indeterminadas.
Software de aplicação
Programas independentes que resolvem necessidades de negócio.
Exemplos: sistemas comerciais, sistemas administrativos/técnicos.
Função: facilitar operações comerciais e decisões.
Software de engenharia/científico
Programas de cálculo em massa.
Áreas: astronomia, vulcanologia, análise de estresse automotivo, dinâmica orbital, genética, meteorologia etc.
Software embarcado
Reside em produtos ou sistemas para controlar características e funções.
Exemplos: controle de painel de micro-ondas, funções de automóveis (controle de combustível, sistemas de freio).
Funções: específicas, limitadas e críticas.
Software para linha de produtos
Composto por componentes reutilizáveis para diferentes clientes.
Pode focar em mercados específicos (herméticos) ou de massa.
Exemplos: controle de inventário, produtos de consumo.
Aplicações Web / Aplicativos móveis
Voltados para redes e dispositivos móveis.
Exemplos: apps de navegador, computação em nuvem, serviços.
Abrange grande variedade de aplicações.
Software de inteligência artificial
Usa heurísticas para resolver problemas não resolvíveis por análise direta.
Exemplos: robótica, sistemas de decisão, reconhecimento de padrões (imagem/voz), aprendizado de máquina, jogos.
SOFTWARE LEGADO
Definição de software legado
Programas desenvolvidos há décadas, modificados ao longo do tempo para atender mudanças de negócios e plataformas.
Apesar de antigos, ainda desempenham funções críticas para as organizações.
Representam risco e custo para manter e evoluir.
Problemas Comuns
Baixa qualidade: código difícil de entender, documentação deficiente/inexistente.
Testes e resultados não documentados.
Histórico de alterações mal gerenciado.
Sistemas complexos e caros de modificar.
Abordagem Mais Segura
Se o software está funcionando e atendendo às necessidades, a regra é “não faça nada”.
Evitar alterações sem necessidade real.
Razões para Evolução do Software Legado
Adaptar a novos ambientes/tecnologias.
Implementar novos requisitos de negócio.
Alterar arquitetura para manter viabilidade no futuro.
Integrar-se a bancos de dados ou sistemas modernos.
Engenharia de Software Moderna
Baseada na noção de evolução contínua.
Sistemas novos constroem-se a partir dos antigos.
Necessidade de interação e cooperação entre sistemas.
Capítulo 1 Pressman -1.2 - Definição da disciplina (1 aluno) Jaedson
DEFENIÇÃO ENGENHENHARIA DE SOFTWARE
DEFINIÇÃO (IEEE)
Sistematica
Quantificável
Desenvolvimento, Operação e Manutenção
Disciplinada
Tecnologias em Camadas
Base - Quaiidade
È como uma fundação de um prédio
Essa qualidade não depende só do código bem escrito, mas de um comprometimento organizacional
Envolvendo práticas como gestão da qualidade e seis sigma, que incentivam melhoria continua
Uma empresa com essa base forte consegue adotar processos e métodos de forma mais eficaz, resultando em software mais confiáveis e no prazo
Seis Sigma
3 more items...
Camada 1 - Processo
È como um mapa que orienta o desenvolvimento
2 more items...
Camada 2 - Métodos
Os métodos, incluem atividades com;
5 more items...
Esses métodos são guiados por princípios sólidos que ajudam a garantir que o software seja feito de forma correta e eficiente
Camada 3 - Ferramentas
Eles são os recursos que automatizam ou semi-automatizam tarefas
Quando essas ferramentas estão integradas, permitindo que informações circulem entre elas
È estabelecido um sistema para o suporte ao desenvolvimento de software, denominado CASE - engenharia de software apoiada por um computador
Capítulo 1 Pressman -1.3 - O processo do software (3 alunos) Guilherme, Kaio e Fillipe
METODOLOGIA GERAL DO PROCESSO
Modelagem
Construção
Planejamento
Entrega
Comunicação
ATIVIDADES DE APOIO
Revisões técnicas
Medição
Garantia de qualidade de software
Gerenciamento de configurações de software
Administração de riscos
Gerenciamento de capacidade de reutilização
Controle e acompanhamento do projeto
Preparo e produção de artefatos de software
PROCESSO DE SOFTWARE
Ágil e adaptável
Entregar algo satisfatório dentro do prazo
Conjunto de atividades
ADAPTAÇÃO DO PROCESSO
Possíveis diferenças entre processos
Modo de aplicar as atividades de acompanhamento e controle do projeto
Grau geral de detalhamento e rigor da descrição do processo
Modo de aplicar atividades de garantia de qualidade
Grau de envolvimento do cliente com o projeto
Até que ponto artefatos de software são identificados e exigidos
Nível de autonomia dada à equipe de software
Até que ponto as ações e tarefas são definidas dentro de cada atividade de metodologia
Grau de prescrição da organização da equipe
Fluxo geral de atividades, ações e tarefas e suas interdependências
Capítulo 1 Pressman -1.4 - A prática da engenharia de software (3 alunos) Anderson, Paulo e Diana
Essência da prática
Compreender o problema
Comunicação e análise
Perguntas básicas:
Quais são as incógnitas?
Quem está interessado na solução?
O problema pode ser dividido?
Representação gráfica do problema?
Planejar a solução
Projetos similares já existem?
Definir subproblemas
Soluções aparentes e imediatas?
Solução conduz à implementação efetiva?
Leve o plano adiante
O código-fonte corresponde ao projeto?
As partes da solução são corretas?
Revisão do código e testes?
Examinar o resultado
Estratégia de testes implementada?
Resultados adequados?
Validação do software?
Princípios gerais
Princípios listados
Razão de existir: Agregar valor para usuário
KISS (Keep It Simple, Stupid!): Simplicidade no projeto
Mantenha a visão: Visão clara para o sucesso do projeto
O que eu produzo, outros consomem: Especificar, projetar e documentar para facilitar entendimento
Esteja aberto para o futuro: Sistemas devem durar, serem adaptáveis
Planeje com antecedência, visando reutilização: Reutilização economiza tempo e esforço
Pense!: Analisar cuidadosamente para evitar erros e produzir melhores resultado