Buscar

ADS - ENG SW1 - AULA 1 - Engenharia de Software - objetivos e conceitos

Prévia do material em texto

Engenharia de Software I 
 
ENGENHARIA DE SOFTWARE 
 
OBJETIVOS E CONCEITOS 
2 
Questões... 
 O que é um sistema de informação? 
 
 Qual a importância de um sistema de Informação 
na atualidade? 
 
 O que envolve um sistema de Informação? 
 
 O que é a Engenharia de Software? 
 
 Por que a Egenharia de Software é importante? 
3 
Introdução 
 Todos os países, hoje me dia, dependem de sistemas 
complexos baseados em computadores; 
 
 Infra-estruturas e serviços contam com sistemas baseados 
em computador; 
 
 Maioria dos produtos elétricos inclui um computador e um 
software de controle; 
 
 Manufaturas e distribuições industriais estão 
completamente automatizadas; 
 
 O mesmo acontece com os Sistemas Financeiros. 
 
PRODUZIR E MANTER O SOFTWARE DENTRO DE CUSTO 
ADEQUADO É ESSENCIAL PARA O FUNCIONAMENTO 
DA ECONOMIA NACIONAL E MUNDIAL. 
4 
História da Engenharia de Software 
 
 Seu conceito foi inicialmente proposto em 1968. 
 
 Acontecido em uma conferência organizada para discutir o 
que foi chamado de: 
“CRISE DO SOFTWARE” 
 
 Resultado da criação de novos hardware de computador 
baseados em circuitos integrados. 
 
 Aplicações anteriormente consideradas não realizáveis, 
tornavam-se viáveis a partir dali. 
 
 Softwares mais complexos que sistemas anteriores de sw. 
 
 
5 
Engenharia de Software e 
 Ciência da Computação 
6 
Qual Papel da Engenharia de Software? 
 
Resolver Problemas 
7 
Definições 
 O que é Engenharia de Software? 
 
 Ocupa de todos os aspectos do desenvolvimento de 
software; 
 
 Conjunto de: técnicas, métodos, ferramentas e processos; 
 
 Isso utilizado: na especificação, construção, implantação e 
manutenção de um software ; 
 
 visa: garantir a gerência, o controle e a qualidade dos 
artefatos gerados através de recursos humanos. 
 
 Se dedica ao problema prático da produção do software. 
 
Como engenheiro de software, utilizamos nossos 
conhecimentos sobre computadores e computação 
para ajudar a resolver problemas. 
8 
Definições 
 Método 
 é um procedimento formal para produzir algum resultado. 
 Uma abordagem estruturada para o desenvolvimento, 
com objetivo de facilitar a produção de alta qualidade 
dentro de custos adequados. 
 
 Técnica 
 Aplicação ótima dos métodos com compromisso maior 
com o resultado esperado, não com a aplicação formal dos 
métodos. 
 
 Ex: chefe de cozinha pode preparar uma receita empregando 
ingredientes sequencialmente combinados em ordem e 
momentos específicos. 
 O procedimento de preparo envolve a preocupação com o 
tempo e os ingredientes, mas pode não depender do tipo de 
equipamento de cozinha utilizado. 
 
9 
Definições 
 Ferramenta 
 é um instrumento ou sistema automatizado utilizado para 
realizar uma tarefa da melhor maneira. 
 
 As ferramentas podem nos tornar mais precisos, 
eficientes e produtivos, isso pode melhorar a qualidade 
do produto. 
 A produção de um documento com uso de computador e 
impressora o torna mais fácil de ler que um produzido por 
máquina de escrever. 
 Entretanto nem sempre é necessária uma ferramenta para 
se fazer bem alguma coisa. 
 Uma técnica culinária pode melhorar a qualidade de um 
molho, o que não acontece pelo uso de determinada 
vasilha ou colher. 
10 
Definições 
 
 Procedimento 
 é como uma receita. Indica como fazer. 
 
 A combinação de ferramentas e técnicas que, em 
harmonia, produzem um resultado específico. 
 
 Processo 
 coordenação na aplicação das técnicas, métodos e 
ferramentas e recursos humanos durante a especificação, 
construção, implantação e manutenção de um software; 
 
 
11 
Definições 
 
 Paradigma 
 é como um estilo de fazer. 
 
 Representa uma abordagem ou filosofia em particular 
para a construção de um software. 
 
 Assim como diferenciamos a cozinha chinesa da 
francesa, podemos distinguir os paradigmas de 
desenvolvimento orientado a objetos do paradigma 
procedural. 
 
12 
Definições 
 Software 
 conjunto de artefatos gerados na solução de um problema 
computacional que tem como artefato principal um arquivo 
binário executável em um computador. 
 
 Artefato 
 qualquer produto gerado durante a especificação, 
construção, implantação ou manutenção de um software. 
 
 Sistema 
 software e seus artefatos de origem técnica. Ou seja, 
excluem-se os artefatos gerenciais e inclui-se infra-
estrutura de hardware. 
 
13 
Definições 
 
 Arquivo binário executável 
 um arquivo de computador passível de interpretação e 
execução por uma arquitetura de computador. Originado 
pela tradução de um código-fonte via compilação e ligação 
em um arquivo binário executável. 
 
 Código-fonte 
 Conjunto de instruções lógicas construídas com uma 
linguagem de programação que obedece a um conjunto de 
algarismos de forma a garantir a solução de um problema 
computacional proposto. 
14 
Engenharia de Software 
 Analisando as definições anteriores podemos encarar 
a Engenharia de Software como uma 
 tecnologia em camadas: 
 
ferramentas 
métodos 
processo 
foco na qualidade 
15 
 
Engenharia de Software 
ferramentas 
métodos 
processo 
foco na qualidade 
 É o “solo” e o porque de utilizarmos um processo de 
software 
 
 Gerenciamento da Qualidade Total e filosofias 
similares produzem uma mudança cultural que permite o 
desenvolvimento crescente de abordagens mais maduras 
para a Engenharia de Software 
16 
Engenharia de Software 
ferramentas 
métodos 
processo 
foco na qualidade 
 É a “fundação”; 
 
 É o que intermedeia as camadas de tecnologias e permite um 
desenvolvimento de software racional e em tempo; 
 
 Define um conjunto de áreas chave do processo (KPA) que deve 
ser estabelecido para um uso efetivo da Engenharia de Software; 
 
17 
Engenharia de Software 
ferramentas 
métodos 
processo 
foco na qualidade 
 É o “como fazer”; 
 
 Englobam um conjunto de tarefas que inclui 
análise de requisitos, projeto, implementação, 
teste e manutenção; 
18 
Engenharia de Software 
ferramentas 
métodos 
processo 
foco na qualidade 
• É o “instrumento apropriado”; 
 
• Dão suporte automatizado ou semi-automatizado aos métodos; 
 
• Quando as ferramentas que apoiam os métodos se integram, 
forma-se a Engenharia de Software auxiliada por computador – 
CASE – Computer Aided Software Engineering; 
 
19 
Produto de Software - Definição 
O Produto é composto por: 
1- Instruções (programas) 
 quando executadas produzem a função e o desempenho 
desejados 
2 - Estruturas de Dados 
 possibilitam que os programas manipulem adequadamente 
a informação 
3 - Documentos 
 descrevem a operação e o uso dos programas 
 
 - Facilidade de manutenção 
Atributos essenciais: - Confiança 
 - Eficiência 
 - Aceitação 
Processo de Software 
 
 O que é processo de software? 
 
 É um conjunto de atividades e resultados associados que 
geram um produto de software; 
 
 Um roteiro que o ajuda a criar a tempo um resultado de 
alta qualidade. 
 
 Esse roteiro a ser seguido é chamado de processo de 
software; 
 
 
 Esse processo é composto por 
 4 atividades fundamentais: 
20 
- Especificação 
- Desenvolvimento 
-Validação 
-Evolução do Software 
Custos de Engenharia de Software 
 
 Não é uma resposta simples. 
 
 Pois depende do processo e do tipo de software que esta 
sendo desenvolvido. 
 
 Existem várias abordagens de desenvolvimento, e cada 
uma possui um perfil diferente de distribuição de custos. 
 
Exemplos por atividade de processo: 
 
 Considerando o custo total por 100 unidades de custo, 
vejamos como essas unidades são empregadas para 
cada tipo de abordagem. 
21 
Distribuição de Custos nas Atividades de 
Engenharia de Software 
22 
Desafios da Engenharia de Software 
 
 O Desafio da heterogeneidade Operar em sistemas distribuídos, através de redes com 
diferentes tipos de computadores com diferentes tipos 
de sistemas operacionais; 
 
 A integração de um novo software com outro mais 
antigo e escrito em diferentes linguagens de 
programação. 
 
 
Temos a tarefa de desenvolver técnicas para 
construção de softwares confiáveis e flexíveis 
para adaptar-se a essa heterogeneidade. 
23 
Desafios da Engenharia de Software 
 
 O Desafio da Entrega 
 
 Algumas técnicas de desenvolvimento demandam 
tempo; 
 
 Ambientes de negócio de hoje devem apresentar 
respostas ágeis e mudar rapidamente; 
 
 O software de apoio deve acompanhar a velocidade da 
mudança. 
 
 
Diminuir o tempo de entrega dos sistemas grandes e 
complexos, sem comprometer sua qualidade. 
24 
Desafios da Engenharia de Software 
 
 O Desafio da Confiança 
 
 O software esta relacionado com os aspectos de nossa 
vida, é essencial que possamos confiar neles; 
 
 Em sistemas remotos acessados através de paginas da 
Web isso é especialmente verdadeiro; 
 
 
Desenvolver Técnicas que demonstrem que o 
software pode ter a confiança de teus usuários. 
25 
Responsabilidade Profissional e Ética 
 Devemos nos comportar de forma responsável ética e 
moralmente, para seremos respeitados como profissionais. 
 
 Defender padrões normais de honestidade e integridade. 
 
 Alguns itens de responsabilidade profissional: 
 Confidencialidade: respeitar a confidencialidade de seus funcionários 
e clientes, dependente de ter ou não assinado acordo. 
 Competência: voce não deve aceitar um trabalho que esteja fora de 
sua competência. 
 Direitos sobre propriedade intelectual: estar ciente das leis locais 
que regem uso de propriedade intelectual como patentes e direitos 
autorais. 
 Mau uso de computador: mau uso do computador de outros, desde 
o trivial como de execução de jogos nas maquinas da empresa ou 
sério como disseminação de vírus. 
 
 Sociedade e instituições definem padrões de ética: 
 ACM e IEEE (Institute of Electrical and Eletronic Engineers) 
26 
Pontos-Chave 
 
 A Engenharia de Software esta relacionada a todos os 
aspectos de produção de software. 
 Produtos de software são programas desenvolvidos e 
documentados, com atributos de: facilidade de 
manutenção, confiança, eficiência e aceitação. 
 Processo de software inclui todas as atividades envolvidas 
no processo de desenvolvimento (especificação, 
desenvolvimento, validação e evolução). 
 Métodos são meios organizados de produção de software. 
 Ferramentas CASE são sistemas de software projetados 
para apoiar as atividades de rotina no processo de 
software. 
 Engenheiros de software tem responsabilidades com a 
profissão e com a sociedade. 
 Sociedades profissionais publicam códigos de conduta. 
 
 
27 
28 
 
Conclusão 
ENGENHARIA DE SOFTWARE 
 pode ser vista como uma abordagem 
de desenvolvimento de software 
elaborada com disciplina e métodos 
bem definidos. 
 
 
Objetivo Principal 
Produzir software 
de alta qualidade e 
de baixo custo. 
29 
Referências 
 Engenharia de Software. Sommerville, I. – Ed. Pearson – 
Addison Wesley. 
 Capitulo 1 
 
 Engenharia de Software. Pressman, R. – Ed. McGraw Hill 
 Capitulo 1 
 
 Engenharia de Software Teoria e Prática. Pfleeger, L.S. 
– Ed. Pearson 
 Capitulo 1 
 
 Engenharia de Software. Fundamentos, Métodos e 
Padrões. Pádua, W. – Ed. LTC 
 Capitulo 1 
 
Engenharia de Software I 
 
ENGENHARIA DE SOFTWARE 
 
OBJETIVOS E CONCEITOS 
 
??? DUVIDAS ???

Continue navegando