Upload
truongthuan
View
212
Download
0
Embed Size (px)
Citation preview
15/03/2018
1
Professor Ariel da Silva Dias
Introdução a Engenharia de Software
O mundo moderno poderia existir sem software?
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
2
Software◦ Associação de programas de computador e documentação;
Atributos de um bom software◦ Prover funcionalidade, o desempenho requerido pelo
usuário, ser confiável e fácil de usar;
Engenharia de software◦ Disciplina que se preocupa com todos os aspectos de
produção de software;
Principais atividades da engenharia de software◦ Especificação, desenvolvimento, validação e evolução.
Professor Ariel da Silva Dias - www.arieldias.com
O mundo moderno poderia existir sem software?
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
3
O mundo moderno poderia existir sem software?
Professor Ariel da Silva Dias - www.arieldias.com
Características do software◦ Os softwares são abstratos;
◦ Intangíveis;
◦ Não existe limites naturais para o potencial do software;
Devido a estas características, o software pode se tornar complexo, difícil de entender e caro para manutenção;
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
4
Existem vários tipos de sistemas de softwares, para os mais variados fins;
Todos estes sistemas precisam da engenharia de software;
Existe um método, notação ou técnica universal para a engenharia de software?◦ Não! Pois diferentes tipos de softwares requerem
abordagens diferentes;
Professor Ariel da Silva Dias - www.arieldias.com
Desenvolver um sistema empresarial web...
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
5
... é diferente de desenvolver um jogo computacional ...
Professor Ariel da Silva Dias - www.arieldias.com
... é diferente de desenvolver um software controlador ...
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
6
Completando
Existem vários tipos de sistemas de softwares, paraos mais variados fins;
Todos estes sistemas precisam da engenharia desoftware embora nem todos necessitem dasmesmas técnicas.
Professor Ariel da Silva Dias - www.arieldias.com
Temos problemas em desenvolver softwares maiscomplexos, mas sem a engenharia de software,não teríamos explorado o espaço, não teríamos ainternet ou as telecomunicações;
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
7
Disciplina com foco em todos os aspectos daprodução de software◦ Da especificação até a manutenção;
Não há preocupação apenas com os processostécnicos do desenvolvimento de software;
Engenharia tem a ver com obter resultado dequalidade requeridos dentro do cronograma eorçamento;
Professor Ariel da Silva Dias - www.arieldias.com
Engenharia de software é importante pois:◦ Indivíduos e sociedade dependem dos sistemas de
software;
◦ A longo prazo, é mais barato usar métodos e técnicas deengenharia de software, uma vez que, a maior parte docusto é mudar o software depois que ele já começa a serusado.
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
8
Processos de software◦ Especificação de software: definição do software a ser
desenvolvido e as restrições de operação;
◦ Desenvolvimento de Software: o software é projetado eprogramado;
◦ Validação de Software: é verificado para garantir que é oque o cliente quer;
◦ Evolução de Software: o software é modificado para refletira mudança de requisitos do cliente e do mercado;
Professor Ariel da Silva Dias - www.arieldias.com
Diferentes sistemas necessitam de diferentesprocessos de software◦ Por exemplo, software para controle de aeronave deve ser
completamente especificado antes de iniciar odesenvolvimento.
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
9
Muitas pessoas escrevem programas◦ Planilhas;
◦ Programas para registro de dados experimentais;
◦ Programas para hobby e diversão;
Todavia, o desenvolvimento de software é umaatividade profissional◦ com especificação, projeto e evolução;
A engenharia de software apoia o desenvolvimentoprofissional de software, mais do que aprogramação individual.
Professor Ariel da Silva Dias - www.arieldias.com
Um sistema de software é mais do que umprograma:◦ Consiste em uma série de programas e arquivos de
configuração;
◦ Inclui também a documentação do sistema, documentaçãodo usuário, site para acesso dos usuários, entre outros;
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
10
Existem dois tipos de produto de software◦ Produtos genéricos;
◦ Produtos sob encomenda;
Característica importante destes dois tipos:◦ Software Genérico: a organização que o desenvolve controla
sua especificação;
◦ Software sob Encomenda: a especificação é normalmentedesenvolvida e controlada pela empresa que estáadquirindo o software;
Professor Ariel da Silva Dias - www.arieldias.com
Características essenciais de um sistema profissional de software
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
11
Existem muitos tipos diferentes de softwares,incluindo◦ Stand-Alone: Aplicações executadas em um computador
local. Exemplo: Software de manipulação de fotos;
◦ Interativas baseadas em transações: Aplicações queexecutam em um computador remoto, acessado pelousuário a partir de seu computador. Exemplo: aplicações decomércio eletrônico, e-mail, compartilhamento de fotos;
◦ Controle Embutido: Sistemas que controlam e gerenciamdispositivos de hardware. Exemplo: software em micro-ondas, controle antitravamento de freios em um carro;
Professor Ariel da Silva Dias - www.arieldias.com
Existem muitos tipos diferentes de softwares,incluindo◦ Processamento de Lotes: São sistemas para processarem
grandes números de dados de entradas individuais paracriar as saídas correspondentes. Exemplo: Sistema decobrança telefônica, cobrança de energia elétrica e emissorde folha de pagamento;
◦ Entretenimento: Fornece interação com o usuário a fim deentretê-lo. Exemplo: jogos de diferentes tipos;
◦ Modelagem e Simulação: sistemas criados para modelarprocessos ou situações físicas. Exemplo: Simuladores devoo, Simulador de direção;
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
12
Existem muitos tipos diferentes de softwares,incluindo◦ Coleta de Dados: São sistemas que coletam dados a partir
de um conjunto de sensores e os enviam para outrosistema realizar o processamento. Exemplo: central demeteorologia;
◦ Sistemas de Sistemas: Um pacote de software que possuivários sistemas dentro dele. Exemplo: Pacote Office.
Professor Ariel da Silva Dias - www.arieldias.com
Não existe uma técnica ou método universal para odesenvolvimento de software, mas existem trêsaspectos gerais que afetam vários tipos diferentesde softwares citados anteriormente
Professor Ariel da Silva Dias - www.arieldias.com
15/03/2018
13
Aspectos gerais◦ Heterogeneidade: O desafio é desenvolver técnicas para
construir um software que seja flexível e possa executar emcomputadores, telefones móveis e tenha possibilidade deintegração com outros sistemas mais antigo;
◦ Mudança de Negócio e Social: Deve ser possível alterar e/oudesenvolver um software na mesma velocidade queocorrem as mudanças nos negócios e na sociedade;
◦ Segurança e Confiança: Precisamos ter certeza de que osusuários maliciosos não possam atacar nosso software e deque a proteção da informação seja mantida;
Estes aspectos não são independentes!
Professor Ariel da Silva Dias - www.arieldias.com
E para um sistema WEB?◦ uma abordagem baseada em desenvolvimento e entregas
iterativas pode ser adequada, com o sistema sendocomposto a partir de componentes reusáveis.
Professor Ariel da Silva Dias - www.arieldias.com