Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Teoria de Engenharia de Software Aula 2 Introdução à Engenharia de Software Prof. Rafael Targino rtargino@unicarioca.edu.br 2 O conteúdo desta aula foi parcialmente baseado nos slides disponíveis para os livros: Engenharia de Software Engenharia de Software – Uma Abordagem Profissional Roger S. Pressman, McGrawHill, 7a edição, 2011 Engenharia de Software Ian Sommerville, Pearson, 9a edição, 2011 2 3 Fazendo Um Programa Simples • Dada uma coleção de linhas de texto (“strings”) armazenadas em um arquivo, ordene-as alfabeticamente e escreva-as em outro arquivo. Engenharia de Software 4 Fazendo Um Programa Simples Madureira Tijuca Bangu Barra da Tijuca Copacabana Botafogo Ipanema Méier Rio Comprido Realengo Engenharia de Software Bangu Barra da Tijuca Botafogo Copacabana Ipanema Madureira Méier Realengo Rio Comprido Tijuca 3 5 Os Softwares Comerciais e Corporativos estão muito além de programas como esse, seja em complexidade, seja no número de pessoas envolvidas Fazendo Um Programa Simples Madureira Tijuca Bangu Barra da Tijuca Copacabana Botafogo Ipanema Méier Rio Comprido Realengo Engenharia de Software Bangu Barra da Tijuca Botafogo Copacabana Ipanema Madureira Méier Realengo Rio Comprido Tijuca 6 O que é Software? • Software é: – Instruções (programas de computador) que, quando executadas, produzem a função e o desempenho desejados; – Estruturas de dados que permitem a manipulação das informações; – Documentos que descrevem a operação e uso dos programas. Engenharia de Software 4 7 A Importância do Software • Durante as 3 primeiras décadas da era do computador, o principal desafio era desenvolver um HARDWARE de baixo custo e alto desempenho. • O hoje o desafio é melhorar a qualidade (e reduzir os custos) das soluções baseadas em SOFTWARE! Engenharia de Software Cliente Software Mobile O Software esta cada vez mais Pervasivo Internet das Coisas Banco de Dados Servidor Browser APIs dos Aplicativos BYOD Bring Your Own Device 5 9 Exemplos de Softwares • Automação Bancária • Freqüência e Folha de Pagamento • Controle de Tráfego Urbano • Controle Acadêmico • Editoração de Jornais e Revistas • Controle de Elevadores • Automação de Biblioteca • Sistema de Alarme em Edificações Engenharia de Software 10 A Era da Informação Engenharia de Software Sociedade Industrial Sociedade da Informação 1900 2000 • Da Era Industrial para a Era da Informação 6 11 Revolução Industrial: Primeira Onda • Ferro (Darby, 1709) • Máquina a vapor: – Inventada (Newcomen, 1712) – Aperfeiçoada (WATT, 1766 - ’69 -’82) • Mecanização da indústria têxtil: – Tear Mecânico (Kay, 1722) – Maquina de fiar (Hargreaves, 1764) • Aspectos sociais, políticos e econômicos – Têxteis, Carvão e Ferro Engenharia de Software 12 Revolução Industrial: Segunda Onda • Aço (Bessemel, 1856 e 1885 - Liga) • Locomotiva a Vapor (Rede de Transporte - 1830) • Máquina de Costura (SINGER,1851) • Motor a combustão interna: – Primeiro eficiente (OTTO, 1876) – Produção automobilística em massa (Daimler e Benz, 1896) • Desemprego e fim da escravidão Engenharia de Software 7 13 Revolução Industrial: Terceira Onda • Energia Nuclear (Fermi, 1942) • Uso Industrial/Comercial da Eletricidade • Computadores Eletrônicos (ENIAC 1946) • Transistor (Shockley, et al., 1948) Engenharia de Software 14 A Evolução do Software • Os primeiros anos (1950 a início dos 60) – Aplicações científicas e de engenharia • A segunda era (1960 a meados de 80) – Aplicações comerciais em grande-porte (sistemas de informação BD) • A terceira era (meados de 70 e década de 80) – Aplicativos pessoais em microcomputadores • A quarta era (meados de 80 a meados de 90) – Aplicativos com Interfaces Gráficas – Redes e Arquitetura Cliente-Servidor • A quinta era (de meados de 90 a ???) – Software Distribuídos, – Internet, Groupwares e Intranets • Sexta era?? – Computação Pervasiva, – Móvel e Ubíqua Engenharia de Software 8 15 Mudança de Paradigma • A mudança de uma sociedade industrial para uma baseada na informação é uma Radical Mudança Econômica: – Material tem menos valor e Informação tem mais valor • Antes: quanto menos pessoas possuísse algo, maior o valor. • Hoje: quanto mais pessoas possuem algo, maior o valor. Engenharia de Software 16 Construindo Software • O software a ser construído pode ser de diversos tamanhos e complexidades... Engenharia de Software • Equipes Pequenas • Uma pessoa diz o que precisa • Duas pessoas entendem, programam e testam o software • Utilizado em trabalhos de faculdade e trabalhos free lancers para pequenos comércios 9 17 Construindo Software • O software a ser construído pode ser de diversos tamanhos e complexidades... Engenharia de Software • Equipes Grandes • Diversas pessoas dizem o que querem – Nem sempre elas concordam entre si • Diversas pessoas entendem e documentam o seu entendimento – Nem sempre elas entendem de forma correta • Diversas pessoas programam e testam o software – Nem sempre elas programam o que realmente é o certo 18 Diferentes Níveis de Complexidade Engenharia de Software 10 19 Outras Questões Importantes na construção de Softwares • Qual é o prazos para a construção? • Qual o tamanho da equipe? • Como as pessoas serão pagas? Como elas estão motivadas para este trabalho? • Como será o processo de implantação deste software, ou seja, o início da sua operação? • Quantos usuários irão utilizá-lo? • Como ocorrerá a manutenção do software? Engenharia de Software 20 Características do Software - 1 • O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico: – Custos são concentrados no trabalho de engenharia. – Projetos não podem ser geridos como projetos de manufatura. – “Fábrica de Software!” Engenharia de Software 11 21 Características do Software - 2 • Software não desgasta! – Software não é sensível aos problemas ambientais que fazem com que o hardware se desgaste. – Toda falha indica erro de projeto ou implementação • manutenção do SW é mais complicada que a do HW. Engenharia de Software 22 22 Curva de Defeitos para o Hardware tempo “desgaste” “mortalidade infantil” índice de falhas Engenharia de Software 12 23 23 Curva de Defeitos para Software índice de falhas mudança curva real curva idealizada tempo Engenharia de Software 24 Características do Software - 3 • A maioria dos softwares é feita sob medida e não montada a partir de componentes existentes. • Diferentemente do Hardware. • Situação esta mudando: – Orientação a objetos. – Reusabilidade é o “Santo Graal”(diminui custos e melhora projetos). Engenharia de Software 13 25 Aplicações de Software Divisão sugerida por Pressman: • Software Básico • Software de Aplicação • Software de Tempo Real • Software Comercial • Software Científico ou de Engenharia • Software Embutido • Software de Computador Pessoal • Software de Inteligência Artificial• Aplicações para Web Engenharia de Software 26 Uma Crise no horizonte • A industria de Software tem tido uma “crise” que a acompanha há quase 30 anos: • Problemas não se limitam ao software que não funciona adequadamente, mas abrange: – desenvolvimento, testes, manutenção, suprimento, etc. Engenharia de Software 14 27 Dificuldades na Construção de Software • Estimativas de prazo e de custo • Produtividade das pessoas • Qualidade de software • Software difícil de manter Engenharia de Software 28 Therac-25 • Equipamento de Radioterapia. • Entre 1985 e 1987 se envolveu em 6 acidentes, causando mortes por overdoses de radiação. • Software foi adaptado de uma antecessora, Therac-6: – falhas por falta de testes integrados – falta de documentação Engenharia de Software 15 29 Denver International Airport • Custo do projeto: US$ 4.9 bilhões – 100 mil passageiros por dia – 1,200 vôos – 53 milhas quadradas – 94 portões de embarque e desembarque – 6 pistas de pouso / decolagem Engenharia de Software 30 Denver International Airport • Erros no sistema automático de transporte de bagagens – Atraso na abertura do aeroporto com custo total estimado em US$360 Milhões • 86 milhões para consertar o sistema Engenharia de Software 16 31 Ariane 5 • Projeto da Agência Espacial Européia que custou: – 10 anos. – US$ 8 Bilhões. • Capacidade 6 toneladas. • Garante supremacia européia no espaço. Engenharia de Software 32 Vôo inaugural em 4/junho/1996 Engenharia de Software • Explosão 40 segundos após a decolagem. • Destruição do foguete e carga avaliada em US$ 500 milhões. 17 33 O que aconteceu? • O veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que? • Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que? • O foguete tinha perdido o controle de direção (atitude). Causa disso? • Os computadores principal e back-up deram shut-down ao mesmo tempo. • Ocorrera um run time error (out of range, overflow , ou outro) e ambos computadores se desligaram. Engenharia de Software 34 Quais são os problemas? • A sofisticação do software ultrapassou nossa capacidade de construção. • Nossa capacidade de construir programas não acompanha a demanda por novos programas. • Nossa capacidade de manter programas é ameaçada por projetos ruins. Engenharia de Software 18 35 Mitos do Software… …da Gerência Manuais de Regras e Procedimentos resolvem os problemas Ferramentas modernas de software e hardware são suficientes Estamos atrasados… Vamos alocar mais gente ao projeto! Desatualizados, obsoletos O uso eficiente de ferramental exige conhecimento Custos de treinamento, gerência e entendimento do processo de trabalho Engenharia de Software 36 Programa escrito e testado! Acabei! Até que o programa esteja “rodando” não há como medir sua qualidade O único produto de um projeto de software é o conjunto de programas Quanto mais cedo voce escrever o código, mais tempo irá demorar para completá-lo De 50 a 70 % do custo de produção de um software vai ser gasto para operacionalizá- lo para o usuário Revisões anteriores à codificação Especificação, projeto, plano de trabalho Mitos do Software… …do Programador Engenharia de Software 19 37 Uma lista de intenções (boas) é suficiente para começar a produzir o software Minhas necessidades vão mudar… Mas mudanças são fáceis de introduzir porque software é bastante flexível Custo de mudanças é muito alto A Especificação do Software é a fase mais crítica do processo Erros na fase inicial têm um custo muito alto de correção Mitos do Software… …do Cliente Engenharia de Software 38 Custo de Mudanças Custo 1x 1,5 a 5X 60 a 100 X Definição Projeto Manutenção Fase Crítica Engenharia de Software 20 Engenharia de Software 40 A Crise de Software • Causas – Introdução de erros no processo • Má especificação • Mau projeto • Má implementação • Testes incompletos ou mal feitos – Problemas na comunicação homem-máquina – Problemas na gerência • Falta de treinamento em novas técnicas de desenvolvimento • O processo está evoluindo muito rapidamente em função do aprendizado. É necessário reciclar Engenharia de Software 21 41 Problemas • Complexidade – Especificar sistemas é uma atividade bastante complexa. Não se trata apenas de fazer uns “programinhas”. • Insatisfação dos usuários – usuários sentem-se frustrados com sistemas difíceis de serem operados e/ou cujo desenvolvimento se prolonga por vários anos. – usuário precisa de sistemas funcionando de acordo com suas necessidades “O valor de um sistema está em atender com precisão as necessidades de seus usuários.” Engenharia de Software 42 Problemas • Produtividade – Costuma estar quase sempre aquém do desejado. – Freqüentemente, a alocação de recursos e atividades são desbalanceadas. – Algumas questões recebem consideração demasiada, enquanto outras são insuficientemente consideradas. – Custos, tempo e recursos geralmente são subestimados Engenharia de Software 22 43 Problemas • Confiabilidade do Sistema – Há diversas estatísticas que provam a pouca confiabilidade de boa parte dos sistemas. – depende do uso de métodos que possam garantir uma boa qualidade do produto construído – Não basta que o sistema produza resultados solicitados pelo usuário. Mas que também tenha o desempenho adequado. “Não é suficiente que o sistema seja eficiente. É necessário ainda que ele seja eficaz” Engenharia de Software 44 Problemas • Manutenibilidade – Facilidade de se modificar um sistema para adaptar-se a circunstâncias novas, inexistentes à época da implantação. – Sistemas recentemente implantados são substituídos por novos, devido ao alto custo para sua manutenção Engenharia de Software 23 45 Problemas • Porque leva tanto tempo para terminar programas e sistemas? • Porque os custos são tão altos? • Porque temos dificuldade de medir o progresso do desenvolvimento do software? • Porque não conseguimos detectar todos os erros antes de entregar o software aos nossos clientes? • Porque os usuários estão sempre insatisfeitos com o software entregue? Engenharia de Software 46 Precisamos de uma Discipl ina que auxil ie na construção e manutenção de software Engenharia de Software 24 47 O que é Engenharia de Software • “Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e quantificável ao desenvolvimento, operação e manutenção de software” IEEE Std 610.12 (1990) Engenharia de Software Desenvolvimento Manutenção Ciclo de Vida de Projeto de Software Operação 48 O que é Engenharia de Software Engenharia de Software • Trata do desenvolvimento no sentido mais amplo, que é do processo de desenvolvimento de software Análise de Requisitos Projeto de Sistemas Codificação Testes Processo de Desenvolvimento de Software Gerência de Projeto de Software 25 49 Processos de Desenvolvimento de Software sempre devem buscar o equilíbrio entre a eficiência e a culturada organização Engenharia de Software 50 Resumindo até Aqui Engenharia de Software • Uma organização precisa de um Software também chamado de Sistema de Informação para automatizar suas operações 26 51 Resumindo até Aqui • A empresa decide comprar ou construir este Sistema de Informação – Difícil de especificar – Difícil de prever o prazo e o custo com precisão – Alto grau de risco Engenharia de Software 52 Questões de Concurso • Sobre a engenharia de software, considere: I. Atualmente todos os problemas na construção de software de alta qualidade no prazo e dentro do orçamento foram solucionados. II. Ao longo dos últimos 50 anos, o software evoluiu de um produto de indústria para um ferramental especializado em solução de problemas e análise de informações específicas. III. Todo projeto de software é iniciado por alguma necessidade do negócio. IV. O intuito da engenharia de software é fornecer uma estrutura para a construção de software com alta qualidade. Está correto o que consta em a) III e IV, somente. b) II e III, somente. c) I, II e IV, somente. d) II, III e IV, somente. e) I, II, III e IV. Engenharia de Software 27 53 Questões de Concurso • Sobre a engenharia de software, considere: I. Atualmente todos os problemas na construção de software de alta qualidade no prazo e dentro do orçamento foram solucionados. II. Ao longo dos últimos 50 anos, o software evoluiu de um produto de indústria para um ferramental especializado em solução de problemas e análise de informações específicas. III. Todo projeto de software é iniciado por alguma necessidade do negócio. IV. O intuito da engenharia de software é fornecer uma estrutura para a construção de software com alta qualidade. Está correto o que consta em a) III e IV, somente. b) II e III, somente. c) I, II e IV, somente. d) II, III e IV, somente. e) I, II, III e IV. Engenharia de Software 54 Engenharia de Software ainda é uma área muito nova • Tema relativamente novo no sentido do termo Engenharia de Software, causando muitas discordâncias de conceitos consensualmente aceitos, necessitando ainda de efetivas normas norteadoras do assunto. Nesse sentido, a sociedade ainda demanda de profissionais capacitados para elevar o software em termos de sistemas organizacionais, contribuindo de fato com as organizações modernas, sejam privadas ou públicas. Engenharia de Software 28 55 Avanços na Engenharia de Software • Aparecimento da UML como padrão para a descrição de sistemas orientados a objetos. • Desenvolvimento de métodos ágeis, como o Extreme Programming e Scrum – Desenvolvimento rápido de sistemas. – Envolvimento dos usuários na equipe. – Redução de documentos e burocracia no processo de software. Engenharia de Software 56 Engenharia de Software X Engenharia Civil • Porque pontes são geralmente construídas a tempo e a um custo conhecido... e softwares raramente os são? • 3000 anos de experiência a mais • Engenharia Civil: Clara separação entre especificação e execução • Especificação detalhada antes de “colocar a mão na massa” • Uma vez que a especificação é aceita, pouco se pode fazer para alterar • Terrenos não estão constantemente mudando Engenharia de Software 29 57 Engenharia de Software X Engenharia Civil • Engenharia de Software: a especificação faz parte da execução • Códigos fontes são também especificações • Tendência a clientes solicitar mudanças constantemente • Em negócios, mudança é uma necessidade • Conclusão: Projetos de software possuem maiores riscos e devem ser gerenciados com atenção voltada às mudanças Engenharia de Software 58 Perguntas que Engenharia de Software quer responder: • Porque demora tanto para concluir um projeto (não cumprimos prazos)? • Porque custa tanto (uma ordem de magnitude a mais)? • Porque não descobrimos os erros antes de entregar o software ao cliente? • Porque temos dificuldade de medir o progresso enquanto o software está sendo desenvolvido? Engenharia de Software 30 59 Causas Óbvias • Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resulta em estimativas “a olho”. • Comunicação entre o cliente e o desenvolvedor é muito fraca. • Falta de testes sistemáticos e completos. Engenharia de Software 60 Causas menos Óbvias • O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (característica 1) • Gerentes sem background em desenvolvimento de software • Profissionais recebem pouco treinamento formal • Falta investimento (em Engenharia de Software) • Falta métodos e automação Engenharia de Software 31 61 Elementos da Engenharia de Software Engenharia de Software 62 Papéis Envolvidos na Construção de Software Usuário Cliente Analista de Negócio Gerente de Produto Engenharia de Software Testador Analista de Sistema Programador Desenvolvedor 32 63 O Negócio – Sistema para Chamar Táxi Engenharia de Software 64 O Negócio – Sistema para Chamar Táxi Engenharia de Software Pessoas querendo pegar um Táxi Eles fazem o download do aplicativo Chamam o Táxi usando a localização do GPS Passageiro acompanha o deslocamento do Táxi O taxista aceita a corrida e a localização do cliente é enviada Taxistas são avisados sobre os passageiro 33 65 Requisitos de Negócio • Uma condição ou capacidade necessária que o software deve possuir para que o usuário possa resolver um problema ou atingir um objetivo • Expressam as características e restrições do produto de software do ponto de vista de satisfação das necessidades do usuário Engenharia de Software 66 Exemplos de Requisitos • O sistema deve calcular o salário do funcionário considerando as suas faltas e todos os impostos devidos • O sistema deve permitir que o usuário emita seus pedido de compra diretamente • O sistema deve possuir a possibilidade de aprovação de pedidos de empréstimo por parte do analista de crédito • O sistema deve permitir que os fornecedores incluam os preços dos seus produtos por uma interface via Internet Engenharia de Software 34 67 Exemplos de Requisitos • O sistema deve fornecer informações sobre todas as ações executadas por seus usuários em qualquer período de tempo • O sistema deve estar integrado com o sistema do Banco Central • O sistema deve oferecer ao clinte a compra menos custosa segundo as suas configurações • O sistema deve gerar relatórios sobre vendas por período, evidenciando os parâmetros de avaliação dos envolvidos Engenharia de Software 68 Requisitos Engenharia de Software Usuário queria uma escada assim Usuário recebeu uma escada assim 35 69 Requisitos Engenharia de Software Poderia ser pior... 70 36 71 Para escolha de um Ciclo de Vida de software: • Natureza do projeto e da aplicação • Métodos e ferramentas a serem usados • Controles e produtos que precisam ser entregues Engenharia de Software Foco em Qualidade Processo Métodos Ferramentas 72 Processos • Processos: constituem o elo de ligação entre os métodos e ferramentas – Sequencia em que os métodos serão aplicados – Produtos que se exige que sejam entregues – Controles que ajudam assegurar a qualidade e coordenar as alterações – Marcos de referência quepossibilitam administrar o progresso do software. Engenharia de Software 37 73 Métodos • Métodos: proporcionam os detalhes de como fazer para construir o software – Planejamento e estimativa de projeto – Análise de requisitos de software e de sistemas – Projeto da estrutura de dados – Algoritmo de processamento – Codificação – Teste – Manutenção Engenharia de Software 74 Ferramentas • Ferramentas: dão suporte automatizado aos métodos – Existem atualmente ferramentas para sustentar cada um dos métodos – Ferramentas integradas estabelecem um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering Engenharia de Software 38 75 Elementos da Engenharia de Software 1. Coloque em uma panela funda o leite condensado, a margarina e o chocolate em pó. 2. Cozinhe [no fogão] em fogo médio e mexa sem parar com uma colher de pau. 3. Cozinhe até que o brigadeiro comece a desgrudar da panela. 4. Deixe esfriar bem, então unte as mãos com margarina, faça as bolinhas e envolva-as em chocolate granulado Engenharia de Software Fonte: material de aula do Prof. Leonardo Murta O que é método, processo e ferramenta? 76 Elementos da Engenharia de Software 1. Coloque em uma panela funda o leite condensado, a margarina e o chocolate em pó. 2. Cozinhe [no fogão] em fogo médio e mexa sem parar com uma colher de pau. 3. Cozinhe até que o brigadeiro comece a desgrudar da panela. 4. Deixe esfriar bem, então unte as mãos com margarina, faça as bolinhas e envolva-as em chocolate granulado Engenharia de Software Fonte: material de aula do Prof. Leonardo Murta Ferramenta Método Processo 39 77 Processo de Desenvolvimento de Software Engenharia de Software Análise de Requisitos Projeto de Sistemas Codificação Testes Processo de Desenvolvimento de Software 78 Análise de Requisitos • Identificar – desejos, intenções, procedimentos atuais e dados; • Organizá-los de forma coerente • Definir de uma forma geral – o que será tratado pelo software – interface com o que fica de fora do software • Entendimento e Representação – Domínio do problema – Conceitos – Funcionalidades – Casos de uso Desejos Intenções Procedimentos Dados Requisitos do Software Engenharia de Software 40 79 Projeto de Software Requisitos do Software Arquitetura Interfaces Estrutura de Dados Detalhes dos Procedimentos Projeto do Software • Projetar o Software – Arquitetura – Interfaces – Estrutura de Dados – Procedimentos • Independente da Tecnologia onde será “encarnado” o software Engenharia de Software 80 Construção do Código • Implementação – Programação do código • Tecnologia – linguagem – ambiente – etc Arquitetura Interfaces Estrutura de Dados Detalhes dos Procedimentos Projeto do Software Código Software Engenharia de Software 41 81 Testes • Estou construindo um sistema correto? • Estou construindo o sistema certo? • Teste de código • Teste de sistema • Testes com usuários Engenharia de Software 82 Relembrando a definição geral da Engenharia de Software • “Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e quantificável ao desenvolvimento, operação e manutenção de software” IEEE Std 610.12 (1990) Engenharia de Software Desenvolvimento Manutenção Ciclo de Vida de Projeto de Software Operação 42 83 Implantação do Software • Pôr o Software em operação – Entrada de dados – Conversões de dados – Treinamento de operadores – Disponibilização de Manuais – Suporte à operação • Help Desk – Acompanhar • Também chamado de Ambiente de Produção Software Software Dados Conversões Pronto para operar Engenharia de Software 84 Manutenção do Software • Manutenção – Tipos • Corretiva • Novos Requisitos • Novas Tecnologias – Alto Custo • Podem requerer mudanças nas fases iniciais do desenvolvimento Software Em Operação Erros Software Nova Versão Requisitos Engenharia de Software 43 Engenharia de Software 86 Questões de Concurso • A Engenharia de Software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção do mesmo. A Engenharia de Software adota métodos de engenharia de software que a) são um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software. b) são uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica. c) são abordagens estruturadas para o desenvolvimento de software, que incluem modelos de sistemas, notações, regras, recomendações de projetos e diretrizes de processos. d) se ocupam da teoria e dos fundamentos de desenvolvimento de software. e) se ocupam de todos os aspectos relacionados ao desenvolvimento de sistemas com base em computadores, incluindo hardware, software e engenharia de processos. Engenharia de Software 44 87 Questões de Concurso • A Engenharia de Software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção do mesmo. A Engenharia de Software adota métodos de engenharia de software que a) são um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software. b) são uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica. c) são abordagens estruturadas para o desenvolvimento de software, que incluem modelos de sistemas, notações, regras, recomendações de projetos e diretrizes de processos. d) se ocupam da teoria e dos fundamentos de desenvolvimento de software. e) se ocupam de todos os aspectos relacionados ao desenvolvimento de sistemas com base em computadores, incluindo hardware, software e engenharia de processos. Engenharia de Software
Compartilhar