Você está na página 1de 42

Processos

de So*ware
Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br Slides originais elaborados por Ian Sommerville
O autor permite o uso e a modicao dos slides para ns did-cos

[if977] Engenharia de So*ware - SI - CIn - UFPE

O processo de so*ware
Um conjunto estruturado de a-vidades, procedimentos, artefatos e ferramentas necessrios para o desenvolvimento de um sistema de soGware Exemplos: Processo Unicado (RUP), Programao Extrema, UML Components Um modelo de processo de soGware apresenta a descrio de um processo de uma perspec-va par-cular, normalmente focando apenas em algumas a-vidades.
2

A-vidades: Especicao, Projeto, Validao, Evoluo

[if977] Engenharia de So*ware - SI - CIn - UFPE

Modelos genricos de processo de so*ware


O modelo cascata
Fases separadas e dis-ntas de especicao e desenvolvimento.

Engenharia de soGware baseada em componentes


O sistema montado a par-r de componentes existentes.

Desenvolvimento itera-vo
Sistema desenvolvido atravs de vrias etapas

Existem muitas variantes destes modelos


Ex: desenvolvimento formal onde um processo semelhante ao cascata usado, mas a especicao formal renada durante os vrios estgios para um projeto implementvel.
3

[if977] Engenharia de So*ware - SI - CIn - UFPE

Modelo cascata
Resposta ao modelo code-and-x vigente na dcada de 70

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

[if977] Engenharia de So*ware - SI - CIn - UFPE

Fases do modelo cascata


Anlise e denio de requisitos Projeto de sistema e soGware Implementao e teste de unidade Integrao e teste de sistema Operao e manuteno

Primeiro modelo a organizar as a-vidades de desenv. Uma fase tem de estar completa antes de passar para a prxima.
Sadas das fases so acordadas contratualmente!

Todas as fases envolvem a-vidades de validao


5

[if977] Engenharia de So*ware - SI - CIn - UFPE

Problemas do modelo cascata


ParEcionamento inexvel do projeto em estgios
Diculta a resposta aos requisitos de mudana do cliente.

Documentos completamente elaborados so necessrios para fazer as transies entre estgios Apropriado somente quando os requisitos so bem compreendidos e quando as mudanas so raras
Poucos sistemas de negcio tm requisitos estveis.
6

[if977] Engenharia de So*ware - SI - CIn - UFPE

Desenvolvimento evolucionrio
Implementao inicial, exposio do resultado aos comentrios do usurio e renamento desse resultado em verses Especicao, desenvolvimento e validao so intercaladas Dois -pos
Desenvolvimento exploratrio: explora requisitos e entrega um sistema nal Proto-pao throwaway: obje-vo compreender os requisitos do cliente
7

[if977] Engenharia de So*ware - SI - CIn - UFPE

Desenvolvimento evolucionrio
Vantagem: especicao desenvolvida de forma incremental Problemas:
Processo no visvel Sistemas podem ser mal estruturados devido mudana coninua

[if977] Engenharia de So*ware - SI - CIn - UFPE

Desenvolvimento Exploratrio
Idia geral:
Desenvolvimento da primeira verso do sistema o mais rpido possvel Modicaes sucessivas at que o sistema seja considerado adequado Aps o desenvolvimento de cada uma das verses do sistema ele mostrado aos usurios para comentrios

Adequado para o desenvolvimento de sistemas onde dijcil ou impossvel se fazer uma especicao detalhada do sistema
9

[if977] Engenharia de So*ware - SI - CIn - UFPE

ProtoEpao Descartvel
Como na programao exploratria, a primeira fase prev o desenvolvimento de um programa para o usurio experimentar

A construo de prot-pos com os quais os usurios possam brincar uma idia bastante atra-va:

No entanto, o obje-vo aqui estabelecer os requisitos do sistema O soGware deve ser reimplementado na fase seguinte

Para sistemas grandes e complicados Quando no existe um sistema anterior ou um sistema manual que ajude a especicar os requisitos
10

[if977] Engenharia de So*ware - SI - CIn - UFPE

ProtoEpao Descartvel
Os obje-vos do prot-po devem estar bem claros antes do incio da codicao. Possveis obje-vos:
Entender os requisitos dos usurios Denir a interface com os usurios Demonstrar a viabilidade do sistemas para os gerentes.

Uma deciso importante a ser tomada escolher o que ser e o que no ser parte do prot-po
No economicamente vivel implementar todo o sistema! Os obje-vos do prot-po so o ponto de par-da

11

[if977] Engenharia de So*ware - SI - CIn - UFPE

Engenharia de so*ware baseada em componentes

Baseado em reuso sistem-co onde sistemas so integrados a par-r de componentes existentes ou de sistemas COTS (Commercial-of-the-shelf) Estgios do processo
Anlise de componentes; Modicao de requisitos; Projeto de sistema com reuso; Desenvolvimento e integrao.

Esta abordagem est se tornando cada vez mais usada medida que padres de componentes tm surgido. Reuso acidental vs. Reuso planejado
12

[if977] Engenharia de So*ware - SI - CIn - UFPE

Processos IteraEvos
Requisitos de sistema SEMPRE evoluem no curso de um projeto Algum retrabalho necessrio A abordagem iteraEva pode ser aplicada a qualquer um dos modelos genricos de processo Duas abordagens (relacionadas)
Entrega incremental; Desenvolvimento espiral.

Essncia: especicao desenvolvida em conjunto com o soGware


13

[if977] Engenharia de So*ware - SI - CIn - UFPE

Entrega incremental
O sistema entregue ao cliente em incrementos
Cada incremento fornece parte da funcionalidade

Os requisitos so priorizados
Requisitos de prioridade mais alta so includos nos incrementos iniciais.

Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so congelados


Os requisitos para os incrementos posteriores podem con-nuar evoluindo (e incluir requisitos j implementados!)
14

[if977] Engenharia de So*ware - SI - CIn - UFPE

Desenvolvimento incremental

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

15

[if977] Engenharia de So*ware - SI - CIn - UFPE

Vantangens do desenvolvimento incremental Incrementos podem ser entregues regularmente ao cliente e, desse modo, a funcionalidade de sistema disponibilizada mais cedo. Os incrementos iniciais agem como protEpos para elicitar os requisitos para incrementos posteriores do sistema. Riscos menores de falha geral do projeto. Os servios de sistema de mais alta prioridade tendem a receber mais testes.
16

[if977] Engenharia de So*ware - SI - CIn - UFPE

Problemas do desenvolvimento incremental Incrementos pequenos exigem mapeamento entre requisitos e incremento de tamanho adequado Diculdade de iden-car os recursos comuns exigidos por todos os incrementos

17

[if977] Engenharia de So*ware - SI - CIn - UFPE

Extreme programming
Uma abordagem baseada no desenvolvimento e na entrega de incrementos de funcionalidade muito pequenos. Baseia-se no aprimoramento constante do cdigo, em testes automa-zados, no envolvimento do usurio na equipe e no desenvolvimento em pares.

18

[if977] Engenharia de So*ware - SI - CIn - UFPE

Desenvolvimento espiral
O processo representado como uma espiral ao invs de uma sequncia de a-vidades com realimentao. Cada loop na espiral representa uma fase no processo. Sem fases denidas, tais como especicao ou projeto os loops na espiral so escolhidos dependendo do que requisitado. Os riscos so explicitamente avaliados e resolvidos ao longo do processo.
19

[if977] Engenharia de So*ware - SI - CIn - UFPE

Modelo espiral do processo de so*ware

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

20

[if977] Engenharia de So*ware - SI - CIn - UFPE

Setores do modelo espiral


Denio de obje-vos Avaliao e reduo de riscos Desenvolvimento e validao Planejamento
Obje-vos especcos para a fase so iden-cados. Riscos so avaliados e a-vidades so realizadas para reduzir os riscos-chave. Um modelo de desenvolvimento para o sistema, que pode ser qualquer um dos modelos genricos, escolhido. O projeto revisado e a prxima fase da espiral planejada.

Processo de Desenvolvimento vs. Processo de Gerenciamento

21

[if977] Engenharia de So*ware - SI - CIn - UFPE

Transformao Formal
Idia geral:
Uma especicao formal (denio matem-ca, no ambgua) do soGware desenvolvida e posteriormente transformada em um programa atravs de regras que preservam a corretude da especicao
esp. 1 esp. 2 implement.

22

[if977] Engenharia de So*ware - SI - CIn - UFPE

Transformao Formal
A grande mo-vao por trs da idia de renamento formal a possibilidade de gerar programas que so corretos por construo
O prprio processo de desenvolvimento deve garan-r que o programa faz exatamente o que foi especicado

Este modelo tem sido aplicado ao desenvolvimento de sistemas cr-cos, especialmente naqueles onde a segurana um fator cr-co (ex: sistema de controle de ferrovias)
23

[if977] Engenharia de So*ware - SI - CIn - UFPE

AEvidades de um processo de desenvolvimento

Especicao de soGware Projeto e implementao de soGware Validao de soGware Evoluo de soGware

24

[if977] Engenharia de So*ware - SI - CIn - UFPE

Especicao de so*ware
O processo para denir quais servios so necessrios e iden-car as restries de operao e de desenvolvimento do sistema. Processo de engenharia de requisitos
Estudo de viabilidade;
Realizado antes do projeto ser iniciado

Elicitao e anlise de requisitos; Especicao de requisitos;


Requisitos do usurio (mais abstrato) e requisitos do sistema (descrio detalhada de funcioalidades)

Validao de requisitos.
25

[if977] Engenharia de So*ware - SI - CIn - UFPE

O processo de engenharia de requisitos

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

Tambm pode envolver a protoEpao de partes do sistema!

26

[if977] Engenharia de So*ware - SI - CIn - UFPE

Projeto e implementao de so*ware


o processo de converso da especicao em um sistema de soGware Projeto de soGware
Projetar uma estrutura de soGware que atenda especicao.

Implementao
Transformar essa estrutura em um programa executvel.

As a-vidades de projeto e implementao so fortemente relacionadas e podem ser intecaladas.


27

[if977] Engenharia de So*ware - SI - CIn - UFPE

AEvidades do processo de projeto


Projeto de arquitetura
Subsistemas e relacionamento

Especicao abstrata
Especicao abstrata de servios e restries de subsistemas

Projeto de interfaces entre componentes Projeto de componente Projeto de estrutura de dados Projeto de algoritmo
28

[if977] Engenharia de So*ware - SI - CIn - UFPE

Mtodos estruturados
Abordagens sistemEcas para projetar sistemas de soGware O projeto , em geral, documentado como um conjunto de modelos grcos Modelos possveis
Modelo de objeto; Modelo de sequncia; Modelo de transio de estado; Modelo estruturado; Modelo de uxo de dados. Project (gerenciamento) vs. Design (desenvolvimento)

29

[if977] Engenharia de So*ware - SI - CIn - UFPE

Programao e depurao
a transformao de um projeto em um programa e a remoo de defeitos desse programa. Programao uma a-vidade pessoal no h processo genrico de programao.
H algumas pr-cas, porm, que so universalmente consideradas boas

Programadores realizam alguns testes para descobrir defeitos no programa e removem esses defeitos no processo de depurao
30

[if977] Engenharia de So*ware - SI - CIn - UFPE

Validao de so*ware
Vericao e validao (V & V) tm a inteno de mostrar que um sistema est em conformidade com a sua especicao e que atende aos requisitos do cliente Vericao: construmos o sistema corretamente?
Exs: inspeo de cdigo, anlise est-ca

Validao: construmos o sistema correto?


Exs: testes, animao de especicaes

Testes envolvem a execuo do sistema com casos de teste que so derivados da especicao do sistema e de dados reais a ser processados por ele.

31

[if977] Engenharia de So*ware - SI - CIn - UFPE

Estgios de teste
Teste de componente ou unidade
Os componentes individuais so testados independentemente; Esses componentes podem ser funes ou classes de objetos, ou grupos coerentes dessas en-dades. Teste de sistema como um todo. O teste das propriedades emergentes par-cularmente importante. Busca erros que resultam de interaes no previstas entre componentes Teste com dados do cliente para vericar se o sistema atende s suas necessidades, ou seja, pode revelar problemas de requisitos
32

Teste de sistema

Teste de aceitao

[if977] Engenharia de So*ware - SI - CIn - UFPE

Fases de teste

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

33

[if977] Engenharia de So*ware - SI - CIn - UFPE

Evoluo de so*ware
O soGware inerentemente exvel e pode mudar Requisitos mudam devido a diversos fatores e o soGware deve acompanhar essas mudanas Processos an-gos separavam explicitamente desenvolvimento de evoluo Evoluo pode se dever a diversas razes:
Correes (patches) Mudanas de requisitos Melhoria de funcionalidades pr-existentes Processos e mtodos itera-vos (XP, RUP, Espiral) normalmente no fazem uma sepao explcita

34

[if977] Engenharia de So*ware - SI - CIn - UFPE

Evoluo de so*ware

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

35

[if977] Engenharia de So*ware - SI - CIn - UFPE

(RaEonal) Unied Process


um (modelo de?) processo moderno baseado na UML Fortemente focado na documentao do sistema Normalmente descrito a par-r de trs perspec-vas:
Uma perspec-va dinmica que mostra as fases ao longo do tempo; Uma perspec-va est-ca que mostra aEvidades de processo; Uma perspec-va pr-ca que sugere bons princpios e prEcas de desenvolvimento Tenta cobrir todos os aspectos do desenvolvimento de soGware

36

[if977] Engenharia de So*ware - SI - CIn - UFPE

Modelo de fases do RUP


Centrado no gerenciamento de projetos

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

37

[if977] Engenharia de So*ware - SI - CIn - UFPE

Fases do RUP
Concepo
Estabelecer o business case para o sistema.

Elaborao
Desenvolver um entendimento do domnio do problema, arquitetura do sistema e iden-car riscos

Construo
Projeto, programao, teste de sistema e documentao

Transio
Implantar o sistema no seu ambiente operacional.
38

[if977] Engenharia de So*ware - SI - CIn - UFPE

Boas prEcas do RUP


Desenvolver o soGware itera-vamente Gerenciar requisitos Usar arquiteturas baseadas em componentes Modelar o soGware visualmente Vericar a qualidade de soGware Controlar as mudanas do soGware
39

[if977] Engenharia de So*ware - SI - CIn - UFPE

Workows estEcos

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 4

40

[if977] Engenharia de So*ware - SI - CIn - UFPE

Leituras recomendadas
SOMMERVILLE, I. Engenharia de SoGware. 9. Ed. So Paulo: Pearson Educa-on, 2011
Captulo 4

Referncia adicional
Barry W. Boehm. A Spiral Model of So*ware Development and Enhancement. IEEE Computer, vol. 21, nmero 5, Maio de 1988.
h|p://dx.doi.org/10.1109/2.59

41

[if977] Engenharia de So*ware - SI - CIn - UFPE

AEvidades Projeto
Denio de equipes e projetos, montagem da infraestrutura da fbrica (site) - at 20/03

42

Você também pode gostar