View
214
Download
0
Category
Preview:
Citation preview
APRESENTAÇÃOFormação Técnica:
� Informática(IFCE-Campus Tianguá-CE)�Secretária Escolar(FDR)Graduação:
� Bacharelado em Sistemas de Informação(Ieducare)Pós-Graduação:
� Especialização em Engenharia de Software (WPÓS)� Especialização em Engenharia de Software (WPÓS)� MBA em Sistemas de Informação (ESAB)Atividades Profissionais:
�Profª. Faculdade Ieducare.�Profª. IFCE – Campus Tianguá-CE – Pronatec (Programação Web).
EMENTA�Conceitos e princípios fundamentais.
� Ciclo de vida de software e estágios de desenvolvimento:
requisitos de software, projeto, implementação, gerenciamento
e qualidade de software.
� Ferramentas e ambientes de desenvolvimento integrado.
CARGA HORÁRIA : 60 HORAS/AULA = 15 ENCONTROS
REFERÊNCIAS
PAULA FILHO, W. P. Engenharia de Software –Fundamentos, Métodos e Padrões. 2. ed. Rio de Janeiro: LTC, 2003.
PFLEEGER, S. L. Engenharia de Software –Teoria e Prática. 2. ed. São Paulo: Pearson PrenticeHall, 2004.
PRESSMAN, R.S.Engenharia de Software.6. ed. São Paulo: McGraw-Hill, 2006.
SOMMERVILLE, I. Engenharia de Software. 8. ed. São Paulo: Pearson, 2007.
METODOLOGIA DE AVALIAÇÃO
(Nota1+Nota2+Nota3)\3= Média final;�Nota1 = (1*Exercícios + 2*Artigo)/3;�Nota2= (1*Exercícios + 2*Prova escrita)/3;�Nota2= (1*Exercícios + 2*Prova escrita)/3;�Nota3= Trabalho;
FALTAS E ATRASOS
O aluno deve evitar ao máximo ter faltas,pois dificulta o aprendizado.pois dificulta o aprendizado.
As aulas iniciam às 19:00 horas, o intervaloinicia às 20:15 horas, com 15 minutos deduração, terminando o encontro pontualmenteas 22:00 horas.
O QUE É ENGENHARIA DE SOFTWARE?
" É uma disciplina da engenharia que se preocupacom todos os aspectos da produção de software, desde osestágios iniciais de especificação do sistema até amanutenção desse sistema, depois que ele entrou emmanutenção desse sistema, depois que ele entrou emoperação".(SOMMERVILLE,2007)
Com isso o engenheiro de software deve adotar umperfil sistemático e organizado para seus trabalhos e utilizarferramentas e técnicas apropriadas, dependendo doproblema a ser resolvido e dosobstáculos no desenvolvimento e dos recursos disponíveis.
OBJETIVOS DA ENGENHARIA DE SOFTWARE
�Controlar o desenvolvimento de software dentro de custos,prazos e níveis de qualidade desejados;
�Qualidade X Produtividade;
QUAL A DIFERENÇA ENTRE ENGENHARIA DE SOFTWARE E DE
SISTEMAS?A Engenharia de Software é mais especifica, a de
Sistemas é mais genérica. Enquanto a Engenharia deSistemas está mais envolvida com o sistema como um todoSistemas está mais envolvida com o sistema como um todoe seus detalhes, a Engenharia de Software é mais especifica,em especial ao hardware e software.
O QUE É CASE?
• Compute raided software engineering (engenharia de
software como auxílio de computador). Se refere a
uma ampla gama de diferentes tipos de programas
utilizados para apoiar as atividades de processo deutilizados para apoiar as atividades de processo de
software, como a análise de requisitos, modelagem
de sistema, a depuração e os testes.
• •Upper-CASE: Apoio as atividades iniciais (requisitose projeto);
• •Lower-CASE: Apoio as atividades finais
(programação, depuração e teste).
ATRIBUTOS DE UM BOM SOFTWARE
O software deve oferecer aos usuários as funcionalidades e o
desempenho por ele desejado, deve possuir fácil manutenção,
ser eficiente...
Características Descrição
Facilidade de Manutenção Esse é um atributo crucial, porque as
15
Facilidade de Manutenção Esse é um atributo crucial, porque as
modificações em um software são uma
consequência inevitável de um
ambiente de negócios em constante mutação.
Nível de Confiança Neste nível incluem-se as características de
confiabilidade, proteção e segurança
Eficiência O Software não deve desperdiçar os recursos do
sistema, como por exemplo os ciclos do processador
Facilidade de Uso O software deve ser utilizável, usuários leigos não
devem sentir muita dificuldade.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
O Conjunto de atividades associadas geram um produto
de software. Há quatro atividades de processos fundamentais
comuns a todos os processos de software que são:
� Especificação do software;
� Desenvolvimento do software;
16
� Desenvolvimento do software;
� Validação do software;
� Evolução do software.
CICLO DE VIDA DE DESENVOLVIMENTO DE
SOFTWARE
O CVDS descreve como o software deve ser desenvolvido,
ou seja, define a ordem global das atividades e propõe uma
estratégia de desenvolvimento.
17
estratégia de desenvolvimento.
Simplificando: Todo desenvolvimento de um software é
caracterizado por fases que quando colocadas em sequência
obtêm-se um Ciclo de Vida do Sistema.
MODELO BALBÚRDIA
No início da computação, poucos programadoresseguiam algum tipo de metodologia baseando-se, emsua maioria, na própria experiência. Era o quechamamos hoje de Modelo Balbúrdia, que sãosistemas desenvolvidos na informalidade sem nenhumtipo de projeto ou documentação.
18
tipo de projeto ou documentação.Nesse modelo, o software tende a entrar num ciclo
de somente duas fases: o de implementação e deimplantação. E os ajustes ao software para atenderaos novos requisitos, sempre são em clima deurgência e de stress, motivados por vários fatores, eprincipalmente por pressão política.
MODELO CASCATA�O modelo em Cascata a fase seguinte não deve se iniciar
até que a fase precedente tenha sido concluída;
�Na prática os estágios se sobrepõem e trocam informações
entre si;
20
entre si;
�A principal desvantagem do modelo em cascata é a
dificuldade de acomodação das mudanças depois que o
processo está em andamento. Uma fase tem de estar
completa antes de passar para a próxima;
DESVANTAGENS DO MODELO CASCATA
�Particionamento inflexível do projeto em estágios
distintos, dificulta a respota aos requisitos de mudança do
cliente;
�Este modelo é apropriado somente quando os requisitos
são bem compreendidos, e quando as mudanças forem
21
são bem compreendidos, e quando as mudanças forem
bastante limitadas durante o desenvolvimento do sistema;
�Poucos sistemas de negócio têm requisitos estáveis;
DESVANTAGENS DO MODELO CASCATA
�Pode não permitir a visão real do processo em andamento.
�Dois universos:
�Universo que se refere ao processo em andamento;
�Universo que se refere às mudanças que deveriam ser
aplicadas, mas não são pelo fato do modelo não
22
aplicadas, mas não são pelo fato do modelo não
incorporar em sua dinâmica.
FASES DO MODELO CASCATA�Análise e definição de requisitos;
�Projeto de sistema e software;
�Implementação e teste de unidade;
�Integração e teste de sistema;
�Operação e manutenção;
23
�Operação e manutenção;
MODELO EVOLUCIONÁRIOTem como base a idéia de desenvolver uma
implementação inicial, expôr o resultado ao comentário do
usuário e fazer seu aprimoramento por meio de muitas
versões, até que um sistema adequado tenha sido
desenvolvido.
24
desenvolvido.
MODELO EVOLUCIONÁRIO: DESENVOLVIMENTO
EXPLORATÓRIO
O desenvolvimento se inicia com as partes do sistema que estão bem compreendidas adicionar novas características à medida que forem propostas pelo
26
características à medida que forem propostas pelo cliente.
MODELO EVOLUCIONÁRIO: PROTOTIPAÇÃO DESCARTÁVEL
O objetivo é compreender os requisitos de sistema. Deve iniciar com requisitos mal compreendidos para esclarecer o que é realmente necessário.
28
DESVANTAGENS DA PROTOTIPAÇÃO DESCARTÁVEL
� Falta de visibilidade do processo;� Os sistemas são frequentemente mal estruturados;
29
DESENVOLVIMENTO ORIENTADO A REUSO
Baseado em reuso sistemático onde sistemas são integrados a
partir de componentes existentes.
Estágios do processo:
•Análise de componentes;
30
•Análise de componentes;
•Modificação de requisitos;
•Projeto de sistema com reuso;
•Desenvolvimento e integração.
DESENVOLVIMENTO ORIENTADO A REUSO
Vantagens do Desenvolvimento Orientado a Reuso
-Reduzir a quantidade de software a ser desenvolvida;
-Reduzir custos;
31
-Reduzir custos;
-Reduzir riscos.
Problema do Desenvolvimento Orientado a Reuso
-Perda do controle sobre a evolução do sistema.
ITERAÇÃO DE PROCESSO
-Requisitos de sistema SEMPRE evoluem no curso de um projeto
e, sendo assim, a iteração de processo, onde estágios iniciais são
retrabalhados, é sempre parte do processo dos sistemas de
grande porte.
32
grande porte.
-A iteração pode ser aplicada a qualquer um dos modelos
genéricos do processo.
Duas abordagens (relacionadas)
-Entrega incremental;
-Desenvolvimento espiral.
ENTREGA INCREMENTALAo invés de entregar o sistema como uma única entrega, o
desenvolvimento e a entrega são separados em incrementos,
sendo que cada incremento fornece parte da funcionalidade
solicitada.
Os requisitos de usuário são priorizados e os
requisitos de prioridade mais alta são incluídos nos incrementos
33
requisitos de prioridade mais alta são incluídos nos incrementos
iniciais.
VANTAGENS DA ENTREGA INCREMENTAL
O valor pode ser entregue para o cliente com cada
incremento e, desse modo, a funcionalidade de sistema é
disponibilizada mais cedo.
O incremento inicial age como um protótipo para auxiliar a
elicitar os requisitos para incrementos posteriores do sistema.
34
elicitar os requisitos para incrementos posteriores do sistema.
Riscos menores de falha geral do projeto.
Os serviços de sistema de mais alta prioridade tendem a
receber mais testes.
EXTREME PROGRAMMING
Uma abordagem baseada no desenvolvimento e na entrega
de incrementos de funcionalidade muito pequenos.
Baseia-se no aprimoramento constante de código, no
envolvimento do usuário na equipe e no desenvolvimento e
programação em pares.
35
programação em pares.
DESENVOLVIMENTO EM ESPIRAL
O processo é representado como uma espiral ao invés de uma
sequência de atividades como realimentação.
Cada loop na espiral representa uma fase no processo.
Sem fases definidas, tais como especificação ou projeto;
Os riscos são explicitamente avaliados e resolvidos ao longo do
36
Os riscos são explicitamente avaliados e resolvidos ao longo do
processo.
DESENVOLVIMENTO EM ESPIRAL
Setores do Desenvolvimento em Espiral-Definição de objetivos:-Objetivos específicos para a fase são identificados.
-Avaliação e redução de riscos:-Riscos são avaliados e atividades são realizadas para reduzir os
38
-Riscos são avaliados e atividades são realizadas para reduzir os
riscos-chave.
-Desenvolvimento e validaçãoUm modelo de desenvolvimento para o sistema, que pode ser
qualquer um dos modelos genéricos, é escolhido.
-Planejamento
-O projeto é revisado e a próxima fase da espiral é planejada.
DESENVOLVIMENTO EM ESPIRAL
Atividades de Processo- Especificação de software;
- Projeto e implementação de software;
- Validação de software;
- Evolução de software.
39
- Evolução de software.
DESENVOLVIMENTO EM ESPIRAL
Atividades de Processo- Especificação de software;
- Projeto e implementação de software;
- Validação de software;
- Evolução de software.
40
- Evolução de software.
PROCESSO DE SOFTWARE
-Como definir o modelo de processo do software?
-Como definir a iteração do projeto?
41
PROCESSO DE SOFTWARE
“Uma empresa de produção de calçados deseja automatizar o
setor de estoque e contrata um serviço terceiriza do para
desenvolver um software que atenda as necessidades. A
princípio, existem muitos riscos no projeto, pois o setor de
estoque apresentar e quisito pouco definido. O cliente pretende
42
estoque apresentar e quisito pouco definido. O cliente pretende
esclarecer o quanto antes os requisitos que ainda não estão
claros.”
PROCESSO DE SOFTWARE
“Uma rede de hotéis deseja renovar o sistema de controle de
hospedagem e contrata um serviço terceirizado para desenvolver
um software que atenda as necessidades. A princípio, os
requisitos estão muito bem definidos, pois a empresa possui um
sistema anterior que facilita o entendimento. O cliente pretende
43
sistema anterior que facilita o entendimento. O cliente pretende
ter um acompanhamento modular do desenvolvimento do
software.”
Recommended