Você está na página 1de 15

Engenharia de Software

Introdução

Luiz Alberto Ferreira Gomes


Curso de Ciência da Computação

11 de agosto de 2009
Objetivos
 Entender o que é engenharia de software e por que ela é tão
importante;
 Responder questões-chave que fornecem uma introdução à
engenharia de software;
 Entender questões profissionais e éticas, relevantes para os
engenheiros de software.

2 de 15
Contexto Atual
 Economias de praticamente todos os paı́ses dependem de
sistemas complexos baseados em computadores.
 Mais e mais sistemas estão sendo controlados por software
 Exemplos: produtos eletrônicos, manufatura e sistemas
financeiros.

3 de 15
O Que é Software?

Software
Software não é apenas programa, mas também todos os dados de
documentação e configuração associados, necessários para que
um programa opere corretamente.

 Existem dois tipos principais de software


 Produtos genéricos
 Produtos sob encomenda (ou personalizados)

4 de 15
Caracterı́stica do Software
 Software é abstrato e intangı́vel
 não é limitado por materiais ou controlado por leis da fı́sica ou
processos de manufatura
 Software é elaborado não manufaturado
 Software não se desgasta mas se deteriora

5 de 15
Atributos de um Bom Software
 Funcionalidades e desempenho exigidos pelo usuário.
 Facilidade de manutenção
 Nı́vel de confiança
 Eficiência
 Facilidade de uso

6 de 15
O Que é Engenharia de Software?

Engenharia de Software
A engenharia de software é um ramo da engenharia que engloba
processos, métodos e ferramentas e cujo foco é o
desenvolvimento dentro de custos adequados de sistemas de
software de alta qualidade

 Conceito proposto em 1968 em uma conferência para discutir


a ’crise de software’.

7 de 15
Engenharia de Software vs. Ciência da
Computação
 Ciência da Computação
 Teorias e métodos que formam a base de computadores e
sistemas de software.
 Engenharia de Software
 Dedica-se a solução de problemas práticos da produção de
software.
 Utiliza práticas de desenvolvimento para a entrega de um
software útil.

8 de 15
O que é Processo de Software?

Processo de Software
Um processo de software é um conjunto de atividades e
resultados associados que produz um produto de software.

 Existem quatro atividades fundamentais de um processo de


software
1. Especificação
2. Desenvolvimento
3. Validação
4. Evolução
 Diferentes tipos de sistemas necessitam de diferentes processos
de software.
9 de 15
O Que é um Modelo Processo de Software?

Modelo de Processo de Software


Um modelo de processo de software é uma descrição simplificada
de um processo de software.

 Modelos incluem atividades, produtos de software e pessoas


envolvidas em um processo.
 Modelos gerais de processos de software
1. Modelo em cascata
2. Desenvolvimento iterativo
3. Engenharia de software baseada em componentes

10 de 15
O Que São Métodos da Engenharia de
Software

Métodos
Um método da engenharia de software é uma abordagem
estruturada para desenvolvimento de software. Inclui modelos de
sistemas, notações, regras, recomendações, orientações e etc.

 Tem como objetivo facilitar a produção de software de alta


qualidade.
 Não existe um método ideal.
 Diferentes métodos possuem diferentes áreas onde são mais
aplicáveis.
11 de 15
Quais os Custos do Desenvolvimento de
Software ?
 Não existe uma resposta simples
 Depende do processo e do tipo de software
 No modelo em cascata cada atividade tem seu custo medido
separadamente
 A integração de sistemas e testes são as atividades mais caras
(entre 40% e 50% do custo total)
 No desenvolvimento iterativo os custos de especificação são
reduzidos
 Especificação, projeto, implementação, integração e testes são
realizados paralelamente
 Existe a necessidade de uma atividade de teste independente
 Existem também os custos relacionados a evolução do
12 de 15
software
Desafios da Engenharia de Software
 A engenharia de software no século 21 depara com três
desafios-chave:
1. Desafio da heterogeneidade consiste em desenvolver técnicas
para a construção de software confiável que flexı́vel o suficiente
para se adaptar a diversos ambientes
2. Desafio da entrega consiste em diminuir os tempos de entrega
dos sistemas grandes e complexos, sem comprometer a sua
qualidade
3. Desafio da confiança é desenvolver técnicas que demonstrem
que o software pode ter a confiança do seus usuários

13 de 15
Responsabilidade Profissional e Ética

Ética
Ramo da filosofia que lida com o que se considera certo ou
errado.
 O trabalho do engenheiro implica em responsabilidades mais
amplas
 Não só a aplicação de habilidades técnicas
 Os engenheiros de software devem-se comportar de maneira
honesta e eticamente responsável
 Respeitar a confidencialidade
 Não devem desvirtuar o seu nı́vel de competência
 Respeitar a propriedade intelectual
 Usar corretamente o computador
14 de 15
Referências

I. Sommerville.
Engenharia de Software.
8 ed. São Paulo: Addison Wesley, 2007.
R. Pressman.
Engenharia de Software.
São Paulo: Makron Books, 1995.
S. Kendall.
O Processo Unificado Explicado.
São Paulo: Artmed, 2002.

15 de 15

Você também pode gostar