380 likes | 577 Views
Engenharia de Software. Processos Desenvolvimento de Software Tradicionais – 2014/2. Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR. Processos. Um conjunto estruturado de atividades necessárias para o desenvolvimento de um sistema de software Especificação ; Projeto ; Validação ;
E N D
Engenharia de Software ProcessosDesenvolvimento de SoftwareTradicionais – 2014/2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR
Processos • Um conjuntoestruturado de atividadesnecessáriaspara o desenvolvimento de um sistema de software • Especificação; • Projeto; • Validação; • Evolução. • Um modelo de processode software é umarepresentaçãoabstrata do processo. Eleapresenta a descrição de um processo a partir de umaperspectiva particular.
Processos • Processo = Níveis ou etapas • Processo = Ciclo de vida do sw • Foco = Aprimorar o desenvolvimento • Processos Artesanais (Gambiarra) ... • Processos Tradicionais (Clássicos) • Processos Ágeis ...
Processos Tradicionais • Modelo CASCATA (waterfall) • Mais antigo/mais tradicional • Clássico • Atualmente existem adaptações e simplificações dele ... • Rígido ... Linear ...
Processos Tradicionais • Modelo CASCATA – Sub-processos
Processos Tradicionais • Modelo CASCATA – Sub-processos
Processos Tradicionais • Modelo CASCATA – Sub-processos
Processos Tradicionais • Modelo CASCATA – Sub-processos
Processos Tradicionais • Modelo CASCATA – Sub-processos
Processos Tradicionais • Modelo CASCATA (waterfall) • A principal desvantagem do modelocascata é a dificuldade de acomodação das mudançasdepoisque o processoestáemandamento. Umafase tem de estarcompleta antes de passarpara a próxima.
Processos Tradicionais • Modelo CASCATA (waterfall) • Particionamentoinflexível do projetoemestágiosdistintos, dificulta a respostaaosrequisitos de mudança do cliente. • Portanto, estemodelo é apropriadosomentequandoosrequisitossãobemcompreendidos, e quando as mudançasforembastantelimitadasdurante o desenvolvimento do sistema. • Poucossistemas de negóciotêmrequisitosestáveis. • O modelocascata é o maisusadoemprojetos de engenharia de sistemas de grandeporte, onde um sistema é desenvolvidoemváriaslocalidades.
Processos Tradicionais • Modelo Evolutivo/Evolucionário • Expandir e Incrementar sw • Direção determinada pela experiência operacional • Desenvolvimento de Protótipos ... • Solidificar requisitos ...
Processos Tradicionais • Modelo Evolutivo/Evolucionário
Processos Tradicionais • Modelo Evolutivo/Evolucionário
Processos Tradicionais • Modelo Evolutivo/Evolucionário • Problemas • Falta de visibilidade de processo; • Os sistemassãofreqüentemente mal estruturados; • Habilidadesespeciais (porexemplo, emlinguagensparaprototipaçãorápida) podem ser solicitadas. • Aplicabilidade • Para sistemasinterativos de pequeno e médioportes; • Para partes de um sistema de grandeporte (porexemplo, a interface de usuário); • Para sistema com curtociclo de vida.
Processos Tradicionais • Modelo Baseado em Componentes • Baseadoemreusosistemáticoondesistemassãointegrados a partir de componentesexistentesou de sistemas COTS (Commercial-of-the-shelf) (soluçõesprontasdisponíveis no mercado) • Estágios do processo • Análise de componentes; • Modificação de requisitos; • Projeto de sistema com reuso; • Desenvolvimento e integração. • Estaabordagemestá se tornandocadavezmaisusada à medidaquepadrões de componentestêmsurgido.
Processos Tradicionais • Modelo Baseado em Componentesfoco em REUSO
Processos Tradicionais • Modelo Iterativo • Requisitos de sistema SEMPRE evoluem no curso de um projeto e, sendoassim, a iteração de processo, ondeestágiosiniciaissãoretrabalhados, é sempre parte do processo dos sistemas de grandeporte. • A iteraçãopode ser aplicada a qualquer um dos modelosgenéricos do processo. • Duasabordagens (relacionadas) • Entrega incremental; • Desenvolvimentoespiral.
Processos Tradicionais • Modelo Iterativo - Incremental • Aoinvés de entregar o sistemacomoumaúnicaentrega, o desenvolvimento e a entregasãoseparadosemincrementos, sendoquecadaincrementofornece parte dafuncionalidadesolicitada. • Os requisitos de usuáriosãopriorizados e osrequisitos de prioridademaisaltasãoincluídosnosincrementosiniciais. • Umavezque o desenvolvimento de um incremento é iniciado, osrequisitossãocongelados, emboraosrequisitosparaosincrementosposteriorespossamcontinuarevoluindo.
Processos Tradicionais • Modelo Iterativo - Incremental
Processos Tradicionais • Modelo Iterativo - Incremental • O valorpode ser entreguepara o cliente com cadaincremento e, dessemodo, a funcionalidade de sistema é disponibilizadamaiscedo. • O incrementoinicial age como um protótipoparaauxiliar a elicitarosrequisitosparaincrementosposteriores do sistema. • Riscosmenores de falhageral do projeto. • Os serviços de sistema de maisaltaprioridadetendem a recebermais testes.
Processos Tradicionais • Modelo Iterativo - Incremental • INÍCIO dos MétodosÁgeis ... • Extreme Programming e outros ...
Processos Tradicionais • Modelo Iterativo – Espiral • O processo é representadocomoumaespiralaoinvés de umaseqüência de atividades com realimentação. • Cada loop naespiralrepresentaumafase no processo. • Semfasesdefinidas, taiscomoespecificaçãoouprojeto – os loops naespiralsãoescolhidosdependendo do que é requisitado. • Os riscossãoexplicitamenteavaliados e resolvidosaolongo do processo.
Processos Tradicionais • Modelo Iterativo – Espiral
Processos Tradicionais • Modelo Iterativo – Espiral
Processos Tradicionais • Modelo Iterativo – Espiral • Definição de objetivos • Objetivosespecíficospara a fasesãoidentificados. • Avaliação e redução de riscos • Riscossãoavaliados e atividadessãorealizadasparareduzirosriscos-chave. • Desenvolvimento e validação • Um modelo de desenvolvimentopara o sistema, quepode ser qualquer um dos modelosgenéricos, é escolhido. • Planejamento • O projeto é revisado e a próximafasedaespiral é planejada.
Processos Tradicionais • RUP – RationalUnifiedProcess
Processos Tradicionais • RUP – RationalUnifiedProcess • Desenvolvimento de Software Interativo • Gerenciamento de requisitos • Uso de arquitetura baseada em componentes • Modelagem visual • Verificação contínua da qualidade • Gerenciamento de mudanças
Processos Tradicionais • RUP – RationalUnifiedProcess • Conjunto de atividades • bem definidas • com responsáveis • com artefatos de entrada e saída • com dependências entre as mesmas e ordem de execução • com modelo de ciclo de vida • descrição sistemática de como devem ser realizadas • UML
Processos Tradicionais • RUP – RationalUnifiedProcess
Processos Tradicionais • Pontos Chave: • Processos de software são atividades envolvidas na produção e na evolução de um sistema de software. • Modelos de processo de software são representações abstratas destes processos. • Atividades gerais incluem especificação, projeto e implementação, validação e evolução de software. • Modelos genéricos de processo descrevem a organização dos processos de software. Exemplos incluem o modelo cascata, o desenvolvimento evolucionário e engenharia de software baseada em componentes. • Modelos de processo iterativos apresentam o processo de software como um ciclo de atividades.