Escolar Documentos
Profissional Documentos
Cultura Documentos
3 ESI Metodologias 3
3 ESI Metodologias 3
Processos de Software
Plano
Iteração de Processo
2
Modelos de Processo de Software
3
Processos de Software
Um processo de software é um conjunto estruturado de atividades
(ou fases) necessárias para produzir um produto de software.
4
Modelos de Processo
Modelo de processo de software – Descrição simplificada de um
processo de software, apresentada a partir de uma perspectiva
específica.
5
Modelo de Desenvolvimento
Representação abstrata das fases de um processo de software e suas
interdependências
7
Características do Modelo Cascata
Processo organizado em fases distintas e separadas (o que não
se verifica na prática)
8
O Modelo Cascata
Especificação
Projeto
Implementação
Validação
Manutenção
9
Desenvolvimento Evolucionário
10
Desenvolvimento Evolucionário
Há dois tipos de desenvolvimento evolucionário:
Desenvolvimento exploratório
Possui como objectivo o trabalho com o cliente, a fim de
explorar seus requisitos e entregar um sistema final.
O desenvolvimento do sistema inicia com as partes do
sistema que são compreendidas.
O sistema evolui com o acréscimo de novas características, à
medida que elas são propostas pelo cliente.
11
Desenvolvimento Evolucionário
Ciclos de desenvolvimento
Fases entrelaçadas
Especificação evolui junto com o sistema
Suporta requisitos parcialmente definidos
Protótipo “descartável” (Throw-away prototyping)
Jogar fora a primeira versão?
Pode ser aplicado para partes do sistema
Ex.: Interface do usuário
12
Desenvolvimento Evolucionário
Atividades
Concorrentes
Especificação Versão
Inicial
Descrição Versões
Desenvolvimento
Inicial Intermediárias
Versão
Validação
Final
13
Desenvolvimento Formal de Sistemas
Abordagem muito próxima ao modelo em cascata, mas cujo processo de
desenvolvimento tem como base a transformação matemática formal de
uma especificação de sistema em um programa executável.
14
Desenvolvimento Formal de Sistemas
15
Reuso de Componentes
16
Reuso de Componentes
Fases do processo orientado a reuso
Análise de componentes - identificação de componentes que
implementam determinada especificação de requisitos.
Modificação de requisitos - modificação dos requisitos para
que se adequam aos componentes encontrados.
Projecto com reuso – projecção ou reutilização de infra-
estrutura existente.
Desenvolvimento e integração – Desenvolvimento e
integração do software produzido com o existente.
18
Iteração de Processo
19
Iteração de Processo
20
Desenvolvimento Incremental
Fornece ao cliente a oportunidades de adiar decisões sobre seus
requisitos detalhados, até que ele tenha alguma experiência com o
sistema.
21
Desenvolvimento Incremental
Vantagens
O cliente pode tirar proveito do sistema antes mesmo do seu
término.
Os primeiros incrementos podem servir de protótipos e base para
definição de requisitos.
Existe um risco menor de fracasso completo do sistema.
As funções mais importantes do sistema passam a ser testadas mais
vezes porque as funções prioritárias são entregues primeiro.
Desvantagens
Propensão a desestruturação do software
Dificuldade na compreensão e manutenção do sistema
Incrementos devem ser relativamente pequenos (não mais do que 20
mil linhas de código)
22
Desenvolvimento Espiral
O processo de software passa a ser como uma espiral possibilitando
retorno de informação entre as actividades.
23
Desenvolvimento Espiral
24
Processos por Fase de
Desenvolvimento de Software
25
Processos de software
Processos de software não são só por si garantia para considerar que está sendo
satisfeito o conjunto básico de critérios apontado pela engenharia de software.
26
Processos por Fase de
Desenvolvimento de Software
27
Especificação de software
Destina-se a estabelecer quais funções são requeridas pelo
sistema e as restrições sobre a operação do sistema.
28
Especificação de Software
Existem quatro fases principais no processo de engenharia de
requisitos
1. Estudo de viabilidade: Analisam-se as necessidades dos
utilizadores, a viabilidade do sistema do ponto de vista comercial e
até que ponto o sistema pode ser implementado e a que custo
2. Levantamento e análise de requisitos: permite a obtenção dos
requisitos do sistema pela observação de componentes existentes
ou por conversa com utilizadores, entre outros.
3. Especificação de requisitos: Traduz as informações colectadas
durante a actividade de análise em um documento que defina um
conjunto de requisitos.
4. Validação de requisitos: Verifica os requisitos quanto a sua
pertinência, consistência e integridade.
29
Especificação de Software
Programação e depuração
A programação é a actividade que consiste em codificar um sistema
mediante requisitos solicitados.
A depuração consiste na actividade do programador testar o seu próprio
código, podendo assim identificar erros e corrigi-los.
3. Projecto de interface – Para cada subsistema, sua interface com outros subsistemas
é projectada e documentada.
33
Desenvolvimento do Software
(Projecto e Implementação)
34 O processo de depuração
Validação de Software
Destina-se a mostrar que um sistema está de acordo com a sua
especificação e que ele atende às expectativas do cliente comprador do
sistema.
35
Validação de Software
Estágios do processo de testes
Teste de unidade - ?
Teste de módulo: - ?
Teste de subsistema: - ?
Teste de sistema: - ?
Teste de aceitação: - ?
36
Validação de Software
O processo de teste
37
Validação de Software
38
Manutenção/Evolução de software
A manutenção de software é o processo de modificar um
software já em fase de produção, i. é. depois que ele entrou
em operação.
A flexibilidade de sistemas é uma das principais razões pelas
quais, cada vez mais os softwares estão sendo incorporados
em sistemas grandes e complexos.
39 Evolução de sistema
Metodologias de Desenvolvimento de
Software
40
Metodologias Desenvolvimento de
Software
Para além da sequência de etapas e procedimentos
recomendados para serem aplicados durante o processo de
desenvolvimento de sistemas de informação, acrescenta a esta
definição a utilização de um conjunto de ferramentas, técnicas e
notações [Booch94].
41
Metodologias Desenvolvimento de
Software
Metodologias clássicas
RUP – Rational Unified Process
ICONIX
Microsoft Solution Framework
Metodologias ágeis
XP – Extreme Programming
Scrum
DSDM – Dynamic Systems Development Method
42
Metodologias Clássica - RUP
43
Metodologias Clássica - RUP
Linhas mestras:
Desenvolvimento iterativo
Gestão de requisitos
44
Metodologias Clássica – RUP
O RUP é composto por 4 fases com
objectivos específicos. :
Concepção – Elaboração – Construção -
Transição
45
Metodologias Clássica – RUP
46
Metodologias Ágeis
A agilidade é dinâmica, específica em conteúdo, agressiva no acolhimento de
modificações e orientada ao crescimento.
Steven Goldman et. Al.
47
Equipa Ágil
Características de uma equipa ágil
Competência – talento inato, habilidades específicas relacionadas a
software e conhecimento global do processo.
Foco comum – Focados em uma meta.
Colaboração – Colaborar entre membros da equipa, com o cliente e
com os gerentes do negócio.
Capacidade de tomada de decisão – Equipa autónoma, com
autoridade para tomada de decisão sobre tópicos técnicos e de
projectos.
Respeito e confiança mútua.
Auto-organização – A equipa:
1. Organiza-se para o trabalho feito;
2. Organiza o processo para melhor acomodar seu ambiente local
3. Organiza o cronograma de trabalho para conseguir melhor entrega do
incremento de software.
48
Metodologias Ágeis –
Extreme Programming (XP)
Abordagem orientada a objecto
49
Extreme Programming (XP)
Extreme Programming é uma
disciplina de desenvolvimento
de software baseada em valores
de simplicidade, comunicação,
feedback e coragem.
Ron Jeffries
50
Metodologia Ágil - Scrum
Metodologia para gestão e planeamento de projectos de
software.
51
Scrum
Lista de funcionalidades –
Product Backlog
Product Owner
Sprint Retrospective
52
Prática
Problema: Criar um sistema de gestão de vendas e stock de
uma loja, considerando que a mesma já possui uma pequena
aplicação de gestão de vendas feita com o access2007. O
banco de dados já possui aproximadamente 1Gb de
informação. Teve-se a informação que o cliente deseja abrir
outra loja, querendo no entanto, poder partilhar a
informação entre as lojas. Ex: Caso não tenha um produto na
loja 1, possibilitar uma pesquisa e verificar sua existência na
loja2.
Mediante o conteúdo apresentado, discutir sobre como, quais
serão os passos e metodologia a utilizar para a produção do
software solicitado.
53