Buscar

Aula Processo Software (aula_processo_software.pdf)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Disciplina: Analise e Projeto de 
Sistemas Orientado a Objetos 
Introdução e Conceitos 
Prof. Izaac Espíndola 
izaacesp@gmail.com 
 06/08/2013 
2 
Referências 
[1] DENNIS, Alan. ANÁLISE E PROJETO DE SISTEMAS 2ed. LTC 2005 
[2] BEZERRA, Eduardo . PRINCIPIOS DE ANÁLISE E PROJETO DE SISTEMAS 
 COM UML 2ed. CAMPUS 2007 
[3] MELO, Ana Cristina. DESENVOLVENDO APLICAÇÕES COM UML 2.0: DO 
 
 CONCEITUAL À IMPLEMENTAÇÃO. 2ed. BRASPORT 2004. 
 
[4] KRUCHTEN, Philippe. INTRODUÇÃO AO RUP RATIONAL UNIFIED PROCESS 
 CIÊNCIA MODERNA 2005. 
 
 
3 
Estrutura da Disciplina 
Analise e Projeto de Sistemas O. a Objetos 
Unidade I 
 1. Engenharia de Software 
1.1 Ciclo de vida 
1.2 Ferramentas CASE 
 2. Processos de Software 
2.1 Modelos de processo 
2.2 Interação 
2.3 Processo Unificado 
 3. Engenharia de Requisitos de Software 
3.1 Elicitação 
3.2 Interfaces 
3.3 Validação 
 
 
 
4 
Estrutura da Disciplina 
Metodologia de Desen. de Sistemas 
Unidade II 
 3. Engenharia de Requisitos de Software 
3.4 Gerenciamento 
 4. Modelos de sistemas 
 4.1 Paradigmas de desenvolvimento 
 
 5. Introdução à Programação Orientada a Objetos 
 
 6. Introdução a UML 
 
5 
Estrutura da Disciplina 
Métodos de Avaliação 
 1. Trabalho Evolutivo para duas unidades 
 2. Prova Escrita Questões Objetivas e 
 Discursivas com assunto cumulativo. 
 A média da unidade: Será a composição da 
soma da nota do trabalho e prova dividido por 
dois para cada unidade. 
 A média final é a soma das unidades dividido 
por dois. 
 
6 
Como Construir? 
Simplesmente 
“FAZER” OU 
Utilizar 
Metodologias de 
Desenvolvimento 
7 
Conceitos 
 
 O que é engenharia de software? 
 ? 
 
O que é engenharia de 
 software? 
 É uma disciplina que se ocupa de todos os 
aspectos da produção de software, 
utilizando processos de desenvolvimento 
desde os estágios iniciais do sistema até a 
manutenção desse sistema, depois que o 
mesmo entrou em operação. 
 
O que são métodos da 
engenharia de software? 
 É uma abordagem estruturada para o 
desenvolvimento de software, cujo o 
objetivo é facilitar a produção de software 
de alta qualidade dentro de custos 
esperados. 
 
Técnicas Diferentes 
• Análise, Projeto e Programação Estruturada 
– Técnica:Diagrama de Fluxo de Dados (DFD) 
– Linguagens: Cobol, Fortran, C, Pascal. 
• Análise, Projeto e Programação Orientada a Objetos 
– Técnica: Linguagem de Modelagem Unificada 
(UML) 
– Linguagens: Java e C++. 
Orientação a Objetos 
• É uma maneira de pensar os problemas utilizando 
modelos organizados a partir de conceitos do mundo 
real. 
• E, por isso, facilita o trabalho dos desenvolvedores. 
• Objeto é um conceito que existe no mundo real. 
• Exemplo: conta, cliente, banco, agência. 
12 
 Processo de Software 
 É uma série de passos (um ROTEIRO). 
 
 Para criar EM TEMPO um SOFTWARE de 
ALTA QUALIDADE, sem estourar o 
ORÇAMENTO . 
 
Motivação 
13 
Processo de Software 
 Como “escolher“ um processo? 
 As CARACTERÍSTICAS DA APLICAÇÃO 
(domínio do problema, tamanho, 
complexidade etc); 
 A TECNOLOGIA a ser adotada na sua 
construção (linguagem de programação, 
mecanismo de persistência etc), a 
organização; 
 ONDE o produto será desenvolvido; 
 O PERFIL DA EQUIPE de desenvolvimento. 
O que é processo de 
 software? 
 É um conjunto de atividades cuja meta 
é o desenvolvimento ou evolução de 
software 
Atividades dos Processos 
 Possui quatro atividades comuns 
 Especificação de software – o que o sistema 
deve fazer e suas restrições de 
desenvolvimento 
 Desenvolvimento de software – produção do 
sistema de software 
 Validação de software – checagem se o 
software é o que o cliente deseja 
 Evolução de software – modificação do software 
em resposta a demanda de mercado e/ou 
empresa 
16 
Modelo de Processo 
 Quando se “escolhe“ um processo DEFINE-
SE um: 
 Modelo de Ciclo de Vida ou Modelo de 
Processo. 
 É uma representação abstrata da estrutura 
(“ESQUELETO“) de processo. 
 Inclui algumas atividades principais. 
 A ordem de precedência entre elas. 
 Opcionalmente, artefatos requeridos e 
produzidos. 
O que um modelo de 
 processo software? 
 É uma representação simplificada de um 
processo de software, que é apresentada a 
partir de uma perspectiva específica. 
 
 Modelo: abstração do processo real. 
18 
Atividades de 
 Processos 
 Em geral, modelos envolvem as seguintes 
FASES : 
 Planejamento 
 Análise e Especificação de Requisitos 
 Projeto 
 Implementação 
 Testes 
 Entrega e Implantação 
 Operação 
 Manutenção 
19 
Fases dos Processos 
 Planejamento 
 Fornece uma estrutura que possibilita ao gerente 
fazer estimativas iniciais de recursos, custos 
e prazos; 
 O escopo do software é estabelecido; 
 Um plano de projeto deve ser elaborado 
configurando o processo a ser utilizado; 
 Esta atividade faz parte da gerência de 
projeto. 
20 
 Análise e Especificação de Requisitos 
 O escopo do software é refinado; 
 Descreve “o que“ o software deve fazer; 
 Devem ser analisados o domínio do problema 
e o domínio da solução. 
 Projeto 
 Utiliza a fase anterior como insumo; 
 Envolve duas grandes etapas: projeto da 
arquitetura do software e projeto detalhado. 
Fases dos Processos 
21 
Fases Processos 
 Implementação 
 O projeto é traduzido para uma para uma forma 
passível de execução pela máquina. 
 Testes 
 Testes de unidade e documentação dos 
resultados; 
 Integração dos componentes e teste do software 
como um todo; 
 Alguns modelos de processo prevêem a 
realização de testes já nas primeiras etapas. 
22 
Fases Processos 
 Entrega e Implantação 
 O software deve ser instalado em ambiente 
produção. 
 Envolve 
Treinamento de usuários; 
Configuração do ambiente de produção; 
Conversão bases de dados (se necessário). 
 Principal propósito desta fase: 
Realizase os Testes de Aceitação (estabelecer que 
o software satisfaz os requisitos dos usuários). 
23 
Fases Processos 
 Operação 
 Após o teste de aceitãção, o software passa a ser 
utilizado de fato em ambiente de produção. 
 Manutenção 
 Adaptativas 
 Corretivas 
 Evolutivas 
Tipos de modelos de 
Processos 
 
 Modelos de Workflow – seqüência de atividades 
 Entradas, saídas e dependências 
 Modelo de Fluxo de Dados ou de Atividades 
 Processo como um conjunto de atividades 
realização de transformações em cima dos 
dados 
 Modelo de Papel/Ação 
 papéis das pessoas envolvidas (“quem” faz “o 
que”). 
Tipos de modelos de 
Processos 
 Modelo Cascata (Ciclo de Vida Clássico) 
 Modelo Espiral 
 Modelo iterativo/incremental 
 Modelo Desenvolvimento Evolucionário 
 Prototipação – construção de protótipos 
(avaliação) 
 Engenharia de Software baseado em comp. 
 RUP(Rational Unified Process) 
 
Modelo Cascata 
• Exemplo: O ciclo de Vida Em Cascata (clássico ou linear) possui uma tendência macro para a 
progressão seqüencial apesar de poder haver retroalimentação; 
• Problemas: 
▫ Projetos reais raramente seguem o fluxo; 
▫ Presume possibilidade de declarar previamente todos os requisitos; 
▫ A implantação fica distante da fase inicial. 
 Aplicabilidade 
 Modelo apropriado quando se tem requisitos bem definidos 
 
27 
...Construindo o software 
 
Entendendo o problema... 
 
Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
Extraído de BEZERRA, E. Princípio de Análise e Projetos de Sistemas. 
Modelo de Cascata 
Problemas no modelo 
Cascata 
• Inflexível divisão do projeto em estágios 
distintos 
• Isto torna difícil responder a modificações nos 
requisitos solicitadas pelos clientes 
• Entretanto, este modelo é somente 
apropriado quando os requisitos estão bem 
entendidos 
Desvantagem do 
Modelo Cascata 
• Operação e manutenção (Operationand maintenance) 
• A desvantagem do modelo Cascata é a dificuldade de 
acomodar mudanças após o processo estar em 
andamento 
Planejar próxima 
fase 
Desenvolver e 
testar 
Determinar objetivos, 
alternativas e restrições 
Avaliar alternativas, 
e identificar e resolver 
riscos 
• Modelo Espiral: 
– Representação em espiral, não como seqüências de tarefas 
– Não tem número fixo de fases 
– Riscos são 
 tratados 
 explicitamente 
Modelo de Expiral 
Modelo iterativo 
incremental (1) 
Conceber 
Planejar 
Construir 
Entregar Fases 
• Conhecido como iterativo/incremental 
• A cada iteração 
– O software é incrementado em funcionalidades (requisitos 
do cliente/usuário) 
– A definição de funcionalidades e suas iterações seguem a 
necessidade do cliente/usuário 
• As primeiras DEVEM abordar as funcionalidades de maior 
importância 
 
Modelo iterativo 
incremental (2) 
Desenvolvimento 
Evolucionário 
• Desenvolvimento Exploratório 
– O objetivo é trabalhar com clientes e evoluir até 
um sistema final a partir de uma especificação 
inicial. O desenvolvimento inicia-se com as partes 
do sistema que são melhor entendidas 
• Prototipação Descartável 
– O objetivo é entender os requisitos do sistema. 
Inicia-se com um conjunto de requisitos ainda mal 
compreendidos 
Desenvolvimento 
Evolucionário 
• Problemas 
– O processo não é visível 
– Os sistemas freqüentemente são mal-estruturados 
– Podem ser exigidas ferramentas e técnicas 
especiais (ex. linguagens para rápida prototipação) 
Desenvolvimento 
Evolucionário 
Processo de 
Desenvolvimento de SW 
36 
Processo de 
Desenvolvimento 
de SW 
37 
Como o processo de 
desenvolvimento de software 
se distribui/concentra 
no tempo dentro de um projeto? 
 
Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
Levantamento 
de Requisitos 
38 
 
Objetivos: trabalhar para construir o sistema correto. 
Envolve: capturar os vários requisitos (funcionais e não 
funcionais), negociar prazo, custo e escopo ( o que e 
não como). 
Dificuldades: cliente e desenvolvedor falam línguas 
diferentes, é difícil definir o que o cliente quer e os 
documentos de requisitos dele são ambíguos. 
OBJETIVOS DAS 
ATIVIDADES INDEPENDENTE 
DO CICLO DE VIDA 
O que são requisitos? 
São características/necessidades do cliente que 
podem ser expressas como: 
- funcionais: o que o sistema deve fazer 
- não-funcionais: restrições sobre como o sistema deve 
desempenhar suas funções 
 
Exemplo 
- Registrar o empréstimo de uma fita é um requisito 
funcional. 
- Estabelecer que o tempo de empréstimo da fita não 
pode ser superior a 48 horas é uma restrição, ou 
requisito não funcional. 
 
Erros comuns na especificação de requisitos: 
 
Deve ficar claro ao analista que requisitos são 
coisas que o cliente ou usuário solicitam, e não 
coisas que ele, como analista, planejou. 
Análise Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
39 
Objetivos: Estudo dos requisitos levantados na fase 
anterior para construção de modelos que 
representem o sistema a ser desenvolvido. 
Envolve: eliminar falhas da análise de requisitos, 
abordar questões técnicas do desenvolvimento de 
software (como e não o que). 
Dificuldades: as mesmas dificuldades da análise de 
requisitos 
OBJETIVOS DAS 
ATIVIDADES INDEPENDENTE 
DO CICLO DE VIDA 
Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
40 
Projeto 
Objetivos: proposta de uma solução que atenda os 
requisitos da análise e que seja passível de 
implementação. 
Envolve: detalhes físicos de implementações, trabalha o 
comportamento interno do software, plano e 
implementação das decisões arquitetônicas. 
OBJETIVOS DAS 
ATIVIDADES INDEPENDENTE 
DO CICLO DE VIDA 
Podemos concluir que... 
-O resultado da análise é o enunciado do problema, e que 
o projeto será a sua resolução. 
 
-Problemas mal enunciados podem até ser resolvidos, 
mas a solução não corresponderá às expectativas. 
 
- A qualidade do processo de análise é importante 
porque um erro de concepção resolvido na fase de análise 
tem um custo; na fase de projeto tem um custo maior; na 
fase de implementação maior ainda, e na fase de 
implantação do sistema tem um custo relativamente 
astronômico. 
Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
41 
Implemen- 
tação 
Objetivos: construir uma versão operacional do 
software que possa ser entregue ao cliente para 
avaliação. 
Envolve: implementar código fonte em uma 
determinada linguagem, implementar código de teste 
unitário para o código fonte e integrar o sistema. 
Dificuldade: falta de conhecimento da equipe de 
desenvolvimento sobre a uma determinada tecnologia. 
OBJETIVOS DAS 
ATIVIDADES INDEPENDENTE 
DO CICLO DE VIDA 
Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
42 
Testes 
Objetivos: assegurar que o sistema tenha qualidade 
antes de ser entregue aos clientes; 
 
Envolve: definir o que será testado, executar os testes 
de integração do sistema e avaliar os testes. 
OBJETIVOS DAS 
ATIVIDADES INDEPENDENTE 
DO CICLO DE VIDA 
Análise 
Projeto 
Implemen-
tação 
Testes 
Implantação 
Levantamento 
de Requisitos 
43 
Implantação 
O sistema é empacotado, distribuído e 
instalado no ambiente do usuário. 
 
Os manuais são escritos, 
os dados são importados para o sistema 
e o pessoal é treinado para operá-lo. 
OBJETIVOS DAS 
ATIVIDADES INDEPENDENTE 
DO CICLO DE VIDA

Outros materiais