Você está na página 1de 27

Prof.

Conceitos de Engenharia de Zefanias


Mobiua

Software
 Programas de computador e documentação associada
 Produtos de software podem ser desenvolvidos para um
cliente particular ou podem ser desenvolvidos para um
mercado geral
 Tudo que esteja envolvido com a operação correta do
programa.
 Instrucoes que quando executadas fornecem
catacteristicas, funcoes e desempenho desejados
 Estruturas de dados que possibilitam aos programas
manipular informacoes adequadamente
 Informacao descritiva, tanto na forma impressa quanto
virtual, descrevendo a operacao e o uso dos programas 2
 Software de Sistemas (Software Básico)
o Programas escritos para servir a outros programas. Ex:
Compiladores, Sistemas Operacionais.
 Software de Aplicação
o Programas que resolvem uma necessidade específica de um
negócio. Ex: Aplicações comerciais, tempo real, controle de
processos, ponto de venda, sistemas de gestão.
 Software para Linhas de Produto
o Dirigido a clientes. Ex: Office, Entretenimento, Multimídia
 Software Científico e de Engenharia
o Cálculos Estruturais, Naves espaciais

3
 Software Embutido
oProdutos inteligentes: microondas, automóveis.
 Software de Inteligência Artificial
oAlgoritmos não-numéricos, sistemas especialistas,
redes neurais.
 Aplicações da WEB
oB2B, Aplicações de comércio eletrônico, Páginas
hipertexto.

4
 Manutenibilidade
o O SW deve ser escrito de forma que possa evoluir para atender as
necessidades dos clintes
 Confiança e Proteção
o Um SW confiavel nao deve causar prejuizos fisicos ou economicos
no caso de falha de Sistema
 Eficiencia
o O SW nao deve desperdiçar os recursos do Sistema como memoria e
ciclos do processador
 Aceitabilidade
o O SW deve ser aceitavel para o tipo de usuario para o qual foi
projectado. Isso significa que deve ser compreensivel, usavel e
compativel com os outros sistemas usados por ele

5
Software cada vez
 Maior
 Mais funcionalidades
 Mais complexo
 Abrangendo mais usuários
 Exigindo a participação de equipes em seu
desenvolvimento

6
CAUSAS
Evolução significativa de hardware e
software.
Necessidade de criação de sistemas cada
vez maiores e mais complexos.
Surgiu em 1968 como uma solução para a
“crise de software”.

7
 Introdução de novo hardware de computador baseado em
circuitos integrados.
o Viabilização de propostas de aplicações até então impossíveis.
oO software era ordens de grandeza maior e mais complexo.
 A experiência inicial na construção destes sistemas.
 O desenvolvimento informal de software não era suficiente.
oGrandes atrasos em projetos.
oAlto custo de software, inclusive manutenção.
oDesempenho insatisfatório.
 Necessidade de novas técnicas e métodos para controlar a
complexidade.
8
 Introdução de erros no processo
oMá especificação
oMau projeto
oMá implementação
oTestes incompletos ou mal feitos
 Problemas na gerência
oFalta de treinamento em novas técnicas de
desenvolvimento
oO processo está evoluindo muito rapidamente em
função do aprendizado. É necessário reciclar. 9
 Dificuldades no Trabalho com Software
oMedidas pobres de eficiência e qualidade
oInsatisfação do usuário é frequente
Pouco entendimento dos requisites
Problemas de Comunicação entre o usuário e o analista
oA qualidade do software é frequentemente suspeita
Poucas medidas e critérios de qualidade
oSoftware existente é muito difícil de manter
E tem que ser mantido até ser substituído

10
 Estudo ou aplicação de abordagens sistemáticas,
económicas e quantificáveis para o desenvolvimento,
operação e manutenção de software de qualidade.
 Disciplina de Engenharia que se preocupa com todos
aspectos de producao e software
 Engenheiros de software devem adoptar uma
abordagem sistemática e organizada para seu trabalho
e usar ferramentas e técnicas/métodos apropriados
dependendo do problema a ser solucionado, das
restrições de desenvolvimento e dos recursos
disponíveis

11
Ciencia de Computacao vs Engenharia de Software
 Ciencia de Computacao
o foca a teoria e os fundamentos

 Engenharia de Software
o Preocupa-se com o lado pratico do desenvolvimento e entrega de software
uteis
Engenharia de Sistemas vs Engenharia de Software
 Engenharia de Sistemas
o Preocupa-se com todos aspectos do desenvolvimento de sistemas
computacionais, inluindo engenharia de hardware, software e processo
 Engenharia de Software
o Uma parcela da engenharia de sistemas
12
 Controle sobre o desenvolvimento de software dentro de custos,
prazos e níveis de qualidade desejados
 Produtividade no desenvolvimento, operação e manutenção de
software
 Qualidade versus Produtividade
 Produzir e manter o software dentro de custos adequados é essencial
para o funcionamento da economia nacional e internacional.
 Ramo da engenharia cujo foco é o desenvolvimento dentro de custos
adequados de sistemas de software de alta qualidade.
 Entendimento das atividades envolvidas no desenvolvimento.
 Desenvolvimento de métodos eficazes de especificação, projeto e
implementação de software.
 Novas notações e ferramentas reduzem o esforço necessário para
produzir sistemas complexos e de grande porte.
13
 Razao de Existir: Agregar valor para os usuarios
 KISS (Keep It simple, Stupid): Todo projecto
deve ser o mais simples possivel, mas nao
simpista
 Mantenha a visao: Uma visao clara ‘e essencial
para o sucesso
 Esteja abeto ao futuro: Sistemas precisam estar
prontos para se adaptar a mudancas
 Visao na reeutilizacao: reeutilizacao de codigo
foi uma das grandes bandeiras da OO

14
Avanços mais importantes 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.
oDesenvolvimento rápido de sistemas.
oEnvolvimento dos usuários na equipe.
oRedução de documentos e burocracia no
processo de software. 15
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
o Especificação detalhada antes de “colocar a mão na massa”
o Uma vez que a especificação é aceita, pouco se pode fazer para alterar
o Terrenos não estão constantemente mudando

 Engenharia de Software: a especificação faz parte da execução


o Códigos fontes são também especificações
o Tendência a clientes solicitar mudanças constantemente
o Em negócios, mudança é uma necessidade

 Conclusão
o Projetos de software possuem maiores riscos e devem ser gerenciados com
atenção voltada às mudanças

16
 FERRAMENTAS
Apoio automatizado para o processo e para os métodos
 MÉTODOS (Notações)
o Técnica de como fazer para construir software. Conjunto de
tarefas que incluem comunicação, análise de requisitos,
modelagem de projeto, construção de programas, testes e
manutenção.
 PROCESSO (Procedimentos)
o Alicerce da ES. Arcabouço para utilização da tecnologia. Permite o
desenvolvimento racional de softwares. Base de controle gerencial
de projetos de software. Onde os métodos são aplicados. Roteiro
 FOCO NA QUALIDADE
o Base da ES. Gestão de qualidade total, cultura de processo
contínuo de qualidade.
17
 Quais os passos para construir o software?
 Seqüência dos métodos
osequência de passos e atividades
 Resultados
odocumentos, relatórios, módulos
 Controles
ocoordenação, critérios de qualidade, pontos de
controle
 Equipe
18
 Atividades
oEspecificação de Software.
oDesenvolvimento de Software
Projeto e Implementação.
oValidação do Software
Verificação de acordo com os requisitos do
cliente.
oEvolução do Software
Modificações para se adaptar às mudanças
dos requisitos do cliente e do mercado.
19
 Como construir o software?
 Abordagem estruturada para desenvolvimento
de software.
 Base:
oModelos de desenvolvimento de sistema, que
pode ser representado graficamente.
oUso dos modelos como especificação e no
projeto de sistema.
 Análise Estruturada
 UML
20
 Computer-Aided Software Engineering (CASE)
 É preciso muito software para desenvolver software!
 Programas usados para dar apoio às atividades do
processo de
 software.
 Associada ao método, executa uma verificação com relação
a notações e conceitos específicos do método.
 São editores de diagramas.
 Podem conter um gerador de código.

21
 O software que satisfaz os requisitos solicitados pelo
usuário. Deve ser fácil de manter, ter boa performance,
ser confiável e fácil de usar
Alguns atributos de qualidade
 Manutenibilidade : O software deve evoluir para
atender os requisitos que mudam
 Eficiência: O software não deve desperdiçar os
recursos do sistema
 Usabilidade: O software deve ser fácil de usar pelos
usuários para os quais ele foi projetado

22
Qualidade de software e produtividade
garantem:
Disponibilidade de serviços essenciais
Segurança de pessoas
Competitividade das empresas
o Produtores
o Consumidores

23
 Engenharia de software é uma disciplina de engenharia que está
envolvida com todos os aspectos da produção de software
 Produtos de software consistem de programas desenvolvidos e
documentação associada. Alguns atributos de qualidade do produto
são manutenibilidade, eficiência e usabilidade
 O processo de software consiste nas atividades que são envolvidas
no desenvolvimento de produtos de software
 Métodos são formas organizadas de produzir software. Eles incluem
sugestões para o processo a ser seguido, as notações a serem
usadas, regras que governam as descrições do sistema que são
produzidas e diretrizes de projeto
 Ferramentas CASE são sistemas de software que são projetados
para suportar as atividades rotineiras no processo de software, como
edição de diagramas de projeto e verificação de consistência dos
diagramas 24
Paradigma é um conjunto de regras que estabelece fronteiras e
descreve como resolver problemas dentro destas fronteiras. Os
paradigmas influenciam nossa percepção: ajudam-nos a organizar e
a coordenar a maneira como olhamos para o mundo
Existem varios paradigmas para o desenvolvimento de SW:
 Modelos Prescritivos:
o “São modelos que definem um conjunto distinto de atividades, tarefas,
marcos e produtos de trabalho que são necessários para fazer
engenharia de software com alta qualidade.”
o Processos “que se baseiam em uma descrição de como as atividades
são feitas.
 Modelos Ageis

25
 Modelos Prescritivos:
 Cascata
 Modelo V
 Prototipacao
 Espiral
 Iterativo
 INCREMENTAL

 Modelos Ageis
 Scrum
 Xtremme Programing
 Kanban
 Crystal Family
 RAD, ...
26
 Depende
 Se o projecto ‘e grande ou complex
 A forca financeira do cliente
 O tempo que o cliente esta disponivel para dar ao projecto
 As tecnologias que vao ser usadas
 Se todos os requisites sao de conhecimento previo ou nao.

27

Você também pode gostar