Engenharia de Software



Documentos relacionados
Sistemas de Informações Gerenciais Introdução as redes de comunicação e redes de computadores Prof. MSc Hugo Vieira L. Souza

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

3. Fase de Planejamento dos Ciclos de Construção do Software

Introdução a Gestão da Informação: dado, informação, conhecimento e a organização empresarial Prof. MSc Hugo Vieira L. Souza

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

POLÍTICA DE GESTÃO DE RISCO - PGR

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Unidade II MODELAGEM DE PROCESSOS

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Processos de gerenciamento de projetos em um projeto

3 Qualidade de Software

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

QUANDO este projeto deve ser realizado e QUANTO este projeto deverá custar?

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Engenharia de Software Processo de Desenvolvimento de Software

Engenharia de Software

Leslier Soares Corrêa Estácio de Sá / Facitec Abril/Maio 2015

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

O Tema Progresso e o Princípio de Gerenciar por Estágios. Palavras Chave: Estágios de Gerenciamento. Progresso. Controle. Projetos. PRINCE2.

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Projeto de Sistemas I

EGC Gestão Estratégica da Tecnologia da Informação

Processo de Desenvolvimento de Software

Módulos QM de sistemas ERP ou MES X Sistemas LIMS?

Engenharia de Software Tema da Aula Definição e Especificação de Requisitos I - Conceitos. Exercício

(MAPAS VIVOS DA UFCG) PPA-UFCG RELATÓRIO DE AUTO-AVALIAÇÃO DA UFCG CICLO ANEXO (PARTE 2) DIAGNÓSTICOS E RECOMENDAÇÕES

Módulo 14 Treinamento e Desenvolvimento de Pessoas Treinamento é investimento

Gestão Estratégica de Negócios

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Introdução a microinformática: fundamentos de software, hardware, sistemas operacionais e tipos de computadores Prof. MSc Hugo Vieira L.

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE CIÊNCIAS DA EDUCAÇÃO CENTRO DE CIÊNCIAS DA EDUCAÇÃO CURSO DE BIBLIOTECONOMIA

Introdução a Gestão de Custos nas pequenas empresas Prof. MSc Hugo Vieira L. Souza

???? AUDITORIA OPERACIONAL. Aula 5 Auditoria Operacional: aspectos práticos OBJETIVOS DESTA AULA RELEMBRANDO... AUDITORIA OPERACIONAL?

Indicamos inicialmente os números de cada item do questionário e, em seguida, apresentamos os dados com os comentários dos alunos.

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Engenharia de Software II

Plano de Negócios. Por que escrever um Plano de Negócios?

AFETA A SAÚDE DAS PESSOAS

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos.

Unidade I Conceitos BásicosB. Conceitos BásicosB

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

Professor: Curso: Disciplina:

Gestão em Sistemas de Saúde

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Sessão 4: Avaliação na perspectiva de diferentes tipos de organizações do setor sem fins lucrativos

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Questionário de Avaliação de Maturidade Setorial: Modelo de Maturidade Prado-MMGP

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

FACULDADE PITÁGORAS DISCIPLINA: GESTÃO DE PROJETOS. Prof. Msc. Carlos José Giudice dos Santos

Desenvolvimento de Marcas Fortes. Criação de Brand Equity

PERFIL DOS FABRICANTES DE ESTRUTURAS DE AÇO. Resumo Executivo - Pesquisa

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

Projeto de Desenvolvimento de Software. Apresentação (Ementa) e Introdução

A Sustentabilidade e a Inovação na formação dos Engenheiros Brasileiros. Prof.Dr. Marco Antônio Dias CEETEPS

Erros no Gerenciamento de Projetos em Inteligência Competitiva

C O B I T Control Objectives for Information and related Technology

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

O Processo Unificado

Um passo inicial para aplicação do gerenciamento de projetos em pequenas empresas

INSTITUTO NACIONAL DE TELECOMUNICAÇÕES. Inatel Competence Center. Business School. Gestão de Projetos

Sistemas de Informações Gerenciais: princípios, tipos, apoio a decisão Prof. MSc Hugo Vieira L. Souza

Processos de Software

A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE

Aula 4 Estatística Conceitos básicos

Planejamento Estratégico

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da

Qualidade de Software

Gestão por Competências

Processo de Desenvolvimento Unificado

2 Engenharia de Software

7 perguntas para fazer a qualquer fornecedor de automação de força de vendas

Introdução. Gerência de Projetos de Software. Sumário. Sistemas de Informação para Processos Produtivos

Índice. Introdução 2. Quais funcionalidades uma boa plataforma de EAD deve ter? 4. Quais são as vantagens de ter uma plataforma EAD?

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

PMBoK Comentários das Provas TRE-PR 2009

Como vender a Gestão por Processos em sua organização?

Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS

Projeto de Gestão pela Qualidade Rumo à Excelência

O modelo unificado de processo. O Rational Unified Process, RUP.

Concurso da Prefeitura São Paulo. Curso Gestão de Processos, Projetos e Tecnologia da Informação. Tema: Gestão de Projetos - Conceitos Básicos

Coleta de Dados: a) Questionário

Análise e Projeto de Software

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

COMO COMEÇAR 2016 se organizando?

Metodologia de Desenvolvimento de Sistemas

Gráfico 1 Jovens matriculados no ProJovem Urbano - Edição Fatia 3;

Conceitos Fundamentais de Qualidade de Software

P4-MPS.BR - Prova de Conhecimento do Processo de Aquisição do MPS.BR

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Transcrição:

Engenharia de Software Introdução aos Processos de Software: modelos e ciclo de vida de software Prof. MSc. Hugo Vieira L. Souza

Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer partes do documento, em especial a interpretação de tradução, reprodução, distribuição ou comercialização física ou na Web do conteúdo contido nos slides, estão sujeitas a autorização prévia pelo autor. Hugo Vieira Lucena de Souza, 2015 Todos os textos, nomes, marcas e figuras de outras publicações e autores contidos neste documento estão devidamente referenciados através de suas obras originais e protegidos pelas leis de propriedades intelectuais.

Agenda Introdução aos Processos de Software Fundamentos da concepção de etapas em projetos de software Entrada, saída, trabalho, artefatos e insumos: estrutura funcional dos processos Arcabouço, subprocessos, atividades e tarefas: hierarquia Ciclo de vida de software O processo essencial de software: fases primárias e de suporte; Uma visão estrutural do ciclo de vida de software; Modelos de processos de software Modelo em cascata Modelo em espiral Modelo prototipado iterativo Modelo evolucionário Modelo de reuso Referências

Introdução aos Processos de Software Continuando nossas aulas sobre a Engenharia de Software, iremos estudar hoje um dos principais fundamentos desta disciplina, indispensável para entender todos os demais conteúdos que veremos mais a frente; Os processos de software compõem toda uma base das tecnologias atuais que as empresas utilizam em seus projetos, sendo importantes para que entendamos como estão compostas suas estruturas, além de suas aplicações; Também veremos os principais modelos, evolucionários e os princípios do ciclo de vida de software. Portanto, fiquem ligados nos tópicos abordados pelos slides e tenham uma boa aula!

Introdução aos Processos de Software Quando estudamos os fundamentos da ES, como vimos no slide anterior, entendemos que a construção de um software depende, e muito, da organização de como suas etapas estão decompostas; Estas etapas, precisam estar bem ordenadas, sendo exercidas de uma maneira sequencial ou paralela, mediante as exigências impostas pelo cliente, tempo e os custos que o projeto pode tangenciar; Desta forma, quando precisamos definir, seja em um ou mais projetos, como as atividades estar programadas, quais tarefas cada uma recomenda, além de outros fatores que podem facilitar o desenvolvimento das soluções, estamos falando de processos de software;

Introdução aos Processos de Software Um processo de software pode ser descrito simplesmente por: Um conjunto de atividades, tarefas, procedimentos ou um esforço concentrado em realizar o desenvolvimento de uma meta, objetivo, ou perspectiva buscando obter como resultado um produto, sendo este um documento, arquivo, código-fonte ou quaisquer outros artefatos em um ciclo de vida bem definido software

Introdução aos Processos de Software Os processos de software surgiram á medida que as empresas de desenvolvimento foram sendo fundadas. Algumas delas, contribuíram com a pesquisa, os testes e a aplicação de suas atividades internas, publicando os resultados para a comunidade acadêmica; Falando um pouco menos da história, e um pouco mais do contexto técnico, os processos não são tão simples como pensamos. Cada tipo de processo utiliza uma notação diferente, possui uma estrutura diferente, além de funcionalidades e aplicações que podem variar de acordo como cenário; Em tese, um processo pode ser composto de vários componentes, mas dois são fundamentais para serem estudados, sendo eles:

Introdução aos Processos de Software Uma estrutura funcional: todos os processos de software utilizam uma notação, ou seja, um fluxo, que garante a retroalimentação com os demais processos. Para entendermos melhor, podemos observar a figura: [1]

Introdução aos Processos de Software A estrutura funcional de um processo geralmente é formada por uma entrada, que pode ser renomeada por insumo. Um insumo é um item necessário para que o processo inicia, podendo ser várias coisas, desde um simples rabisco, até um pacote de códigos-fontes; As atividades são as rotinas de trabalho que os colaboradores desenvolvem. Cada processo pode variar totalmente suas atividades, que vão desde as de gestão até as produção; Os resultados, serviços ou produtos gerados podem ser reconhecidos como saída do processo, caracterizando um insumo de entrada para o próximo processo. Observe que esta sequencia forma um ciclo, que acontece a medida que as etapas vão evoluindo;

Introdução aos Processos de Software Uma estrutura hierárquica: os processos estão formados por uma hierarquia conhecida como arcabouço. O arcabouço é a forma pela qual o processo está decomposto, sendo mais complexo, ou mais simples, mediante as necessidades do cliente; O arcabouço tem uma estrutura padrão, considerada universal, que pode ser representada conforme a figura: Subprocessos Atividades Tarefas Estrutura básica de um processo

Introdução aos Processos de Software Cada processo é composto por outros processos [caso necessário], por atividades e tarefas. A estrutura é um padrão adotado por muitos autores e empresas, que estipulam como as etapas devem estar organizadas para obter resultados efetivos; Apesar de simples, a especificação do arcabouço é um pouco trabalhosa em ser realizada. Cada nível subsequente requer todo o conhecimento do negócio, para que sejam evitados desvios no projeto; Como entender isto na prática? Imagine um projeto de um software na engenharia civil; Como saber todos os detalhes que o software precisa implementar? Resposta: é preciso detalhar todas as características, por mais minuciosas que sejam elas;

Ciclo de vida de Software Todas as etapas e processos precisam ser configurados de forma similar. Desta forma, os processos de software podem ser formados por cinco, seis, n etapas, que delimitam como e por que cada profissional deve exercer suas atividades; Algo que garante que tudo ocorrerá bem é o alinhamento destes processos é o ciclo de vida de software. O ciclo é a composição de todos os processos participantes, adaptando as necessidades da empresa, do projeto e do cliente à infarestrutura, ao tempo e uma série de fatores que podem pesar para a evolução do produto; O ciclo de vida é comum na maioria dos modelos atuais. Isto significa dizer que existem alguns processos que são considerados por muitas tecnologias em seus arcabouços, como podemos ver a seguir:

Ciclo de vida de Software Fase de projeto/planejamento/análise: é uma etapa indispensável e comum a muitos modelos e tecnologias. Nesta fase, os profissionais buscam idealizar o que poderão projetar e como irão realizar este projeto; Fase de implementação/codificação/testes: é a etapa de plena operação, estando presente em todos os projetos. Os testes, podem ser realizados nesta etapa, como também podem ser definidos como processos, algo que varia com o escopo adotado pela empresa; Fase de validação/entrega/instalação: é a fase em que o cliente participa, recebendo parcialmente uma versão como protótipo ou até mesmo a versão final do software; Fase de otimização/atualização/feedback: nesta etapa o cliente já está com o software instalado [versão parcial ou final] e o mesmo reporta o que é necessário para melhorá-lo ou simplesmente para complementá-lo com novas funcionalidades;

Ciclo de vida de Software Todas estas etapas formam o que a literatura intitula como ciclo de vida essencial de software. Este ciclo serve como referência para que os processos estejam alinhado de acordo com as áreas-chave, que significam o que é, ou não, necessário, para ser considerado um processo de software; Quando falamos sobre área-chave, estamos nos referindo à qualidade. Como só iremos estudar a qualidade de software mais a frente, é importante que saibamos que cada grupo de processos pode se decompor ou estender novos processos, estipulando a quantidade de passos necessários para que se desenvolva o resultado buscado;

Ciclo de vida de Software Por formar um conjunto de processos, o ciclo de vida de software também requer uma estrutura. A estrutura do ciclo de vida remete definir quais processos serão primários, ou de implementação, quais processos serão secundários, conhecidos como de suporte; O que isto significa? Os processos que desenvolvem o software são fundamentais; Os processos primários são estes processos fundamentais; Os processos secundários são aqueles que buscam auxiliar com a documentação, configuração, dentre outras propriedades que podem variar de empresa para empresa;

Diante desta visão, a ES sugeriu que ao longo dos anos fossem publicados alguns ciclos de vida, baseados nesta notação que estudamos e com características diferentes; Os principais modelos serviram como fonte de referência para que os profissionais entendessem qual a importância em se formatar corretamente um ciclo de vida adequado as suas necessidades; Desta forma, os modelos foram utilizados por um longo tempo, sendo os mesmos conhecidos por: Modelo em cascata: foi o primeiro modelo de processo criado, e tem como principais características possuir um ciclo sequencial e linear em que cada processo só poderá iniciar quando seu antecessor estiver totalmente concluído. O modelo é conhecido por ser tradicional e hierárquico, sendo composto pelas seguintes etapas:

Modelo em Cascata; [2]

As etapas do Modelo em cascata diversificam suas funções a cada novo avanço obtido no projeto: Definição de requisitos: é a etapa em que são levantadas as demandas do cliente. Nesta etapa, é comum a realização de entrevistas, encontros, visitas, dentre outros eventos que facilitem a captação das necessidades acerca do problema do cliente; Projeto de sistema e software: o projeto não é formado apenas pelo software em si, mas uma série de fatores que impactam no seu sucesso ou fracasso. Podem ser analisadas a viabilidade, os custos, a configuração e mais outros escopos que contribuem para o fechamento ou não da proposta; Implementação e testes de unidade: é a etapa em que o produto de software é desenvolvido e testado. As unidades representam módulos do software ou pacotes de códigos-fontes que em breve serão integrados;

Integração e teste do sistema: é a etapa em que o produto de software é testado e integrado com outros softwares, sejam versões, ou ainda software diferentes de um mesmo projeto; Operação e Manutenção: é a etapa em que o software é instalado no ambiente do trabalho do cliente e posteriormente otimizado para correção de eventuais problemas; Apesar de ter um conjunto de etapas bem distribuídas, o modelo em cascata é ultrapassado e já está teoricamente em desuso. Por que teoricamente? Há empresas que moldam seus processos baseados neste modelo; Muitos processos surgem utilizando esta arquitetura;

Algumas de suas principais vantagens podem ser listadas por: Modelo bem estruturado e com etapas bem definidas; Etapas com funções descritas e hierarquicamente com uma retroalimentação que garante a produção do software; Processos de gestão integrados aos processos de engenharia; Algumas das principais desvantagens que pode ser listadas: Modelo rígido, o que não facilita a aplicação de mudanças nas etapas; O feedback do cliente torna a construção do software engessada, o que representa algo inviável caso seja seguido à risca; Não há ordenação sobre o que cada processo deve produzir, e quais são suas entradas e saídas, determinando que as etapas sejam interrompidas caso ocorra algum tipo de atraso;

Modelo em espiral: é um modelo que surgiu posteriormente ao modelo em cascata com uma proposta inovadora: integrar e e realizar as etapas todas de maneira paralela através de iterações; Uma iteração é um intervalo de tempo definido pela equipe de projeto para que todas as etapas do projeto sejam realizadas para que sejam analisados os resultados, problemas, mudanças, e de um modo geral, para que as informações relevantes sejam atualizadas; O modelo em espiral tem como principais características ser iterativo e prototipado. Isto significa que a cada nova iteração são apresentadas novas funcionalidades ao cliente, e que, pequenas versões do software são instaladas e disponibilizadas para que o mesmo teste, através de protótipos do software;

O modelo tem suas etapas paralelas, baseado em uma organização que segue o seguinte escopo: [3]

Observe que as etapas neste modelo variam em relação ao cascata. Desta forma, as etapas, que não são sequenciais, mas sim, paralelas, estão conhecidas como fases, especificando atividades diferentes; Qual a diferença entre etapa e fase? A etapa é aquela que sucede uma etapa anterior que foi concluída, e geralmente não precisará ser reiniciada. A fase pode retroalimentar outras fases, sem a determinação de conclusão, mas sim, de reinicio em um ciclo de vida de software

Planejamento: é a fase em que os custos, riscos e todas as estimativas de projeto são avaliadas para serem realizadas. Esta fase utiliza gráficos, rascunhos e outros artefatos que representam dados para serem utilizados e atualizados nas fases seguintes; Modelagem: a modelagem corresponde a especificação estrutural [arquitetura do software], funcional [métodos e funções], comportamental [fluxo] e demais propriedades que tornam o software mais enxuto e objetivo. Geralmente a modelagem ocorre com o uso da UML, uma linguagem de modelagem estudada em APS; Construção: corresponde a codificação do software com a realização dos testes; Entrega/feedback: a entrega corresponde a apresentação dos resultados ao cliente e a entrega das pequenas funcionalidades em um protótipo; A comunicação é algo que deve ser exercido à todo momento no ciclo. Algo fundamental para que os resultados apareçam é está em sintonia direta com o cliente;

Quais as vantagens do modelo em espiral? Modelo adaptável as mudanças, visto que as iterações atualizam as prioridades do cliente; Entregas rápidas das funcionalidades, reportando a evolução do software para verificar se o projeto tem um rumo de sucesso; Quais as desvantagens do modelo em espiral? Falta um pouco de foco no modelo, visto que as constantes mudanças podem dificultar o retorno, feedback, ou busca por funções substituídas em iterações que ja foram concluídas; Inconsistência no produto, e dificuldades de gerenciar versões que podem estar totalmente incompatíveis ao término do ciclo, dificultando a certificação de qualidade em alguns cenários;

Modelo prototipado iterativo: é um modelo conhecido por ser iterativo e ao mesmo tempo produzir versões completas do software que podem ser utilizadas e substituídas quando os requisitos do cliente estiverem totalmente atualizados e completos; Na prática, este modelo é similar ao em cascata e ao em espiral ao mesmo tempo. As semelhanças, na verdade, podem ser vistas pois o modelo reúne propriedades comuns à ambos, que vão desde a formação de um ciclo contínuo e sequencial, mas com entregas constantes; As fases estão presentes em cada iteração, mas com uma diferença simples. Cada fase não é realizada paralelamente, como o em espiral, mas de maneira linear, dando forma ao modelo, como uma espécie de fase completa com subfases que são exercidas, conforme consta a figura:

Modelo Prototipado Iterativo; [4]

Da mesma forma que os anteriores, o modelo tem lá suas vantagens e desvantagens. Algumas das principais vantagens que podemos citar estão listadas como: O ciclo de vida facilita a busca pelos requisitos reais, facilitando a adaptação do cliente à real proposta do projeto, economizando um certo tempo ao invés de entregar várias versões de protótipos; As versões completas servem para entender como o negócio realmente funcionam e servem para analisar o que se torna indispensável e dispensável como funcionalidades em um feedback mais completo; As principais desvantagens podem ser listadas por: O ciclo torna as mudanças mais demoradas e hierárquicas; Os protótipos completos podem estender o tempo do projeto e os custos;

Modelo Evolucionário: este modelo é um dos mais utilizados atualmente pelas empresas. Seu nome sugere o ciclo de vida que o mesmo desempenha, obtendo como principal característica desenvolver a construção do software e gradativamente ir incrementando novas funcionalidades em comum acordo entre o cliente e os desenvolvedores; Um pouco diferente dos demais, as fases do ciclo de vida evolucionário são realizadas de maneira concorrente. Isto significa dizer que uma fase não precisa ser realizada apenas quando sua antecessora for concluída, mas sim,que todas são realizadas ao mesmo tempo; Esta técnica é conhecida hoje em dia como desenvolvimento rápido ou desenvolvimento concorrente, em que o ciclo de vida segue:

Modelo Evolucionário [5]

Falando rapidamente sobre suas fases, podemos entender que a especificação ocorre com a prática na análise, mas sem um padrão comum a ser adotado. Cada empresa pode adotar suas técnicas, e ao mesmo tempo, ir retornando os primeiros documentos desta especificação; O desenvolvimento e a validação ocorrem instantaneamente quando novas funcionalidades estão sendo solicitadas pelo cliente, o que torna o ciclo concorrente e com papéis que precisam andar integrados; As entregas estão baseadas em software que serve como base, sendo otimizado à medida que o cliente vai ficando satisfeito. Por conta deste fator, o projeto pode ser simples ou mais complexo, variando o tempo e os custos ao longo da produção do software;

O modelo evolucionário reporta muitas vantagens dos quais podemos citar algumas: Desenvolvimento integrado e alinhado, garantindo uma maior contenção de erros e problemas de processo e produto; Geralmente o projeto reporta um tempo curto e o cliente pode está mais por dentro do que está sendo desempenhado, obtendo desta forma resultado mais objetivos e concretos; O modelo também abrange algumas desvantagens, dos quais podemos citar: A falta de pessoas qualificadas pode afetar o desempenho, visto que os processos buscam integração das atividades; Apesar de o ciclo não citar diretamente documentação, muitas vezes, o registro das atividades não é realizado, sendo algo determinante para garantir que o modelo tem uma arquitetura suficiente para cobrir grandes projetos;

Chegamos no último modelo que estaremos estudando, sendo o mesmo conhecido por Modelo de Reuso de Sofware. Apesar de não ser muito comentado nas aulas de ES, este modelo tem alavancado uma evolução impactante em mercados de software que buscam integrar soluções e portabilidade de software; O modelo tem como característica principal desenvolver modelos de componentes que podem ser adaptados em software diferentes, de arquiteturas diferentes, mas que podem se complementar nos mesmos mesmos projetos; Isto significa dizer que o software pode ser desenvolvido por completo, ou apenas em um formato de unidades, como pacotes, bibliotecas, módulos ou outras formas de especificação;

O ciclo de vida é simples, e a notação de desenvolvimento segue um processo contínuo de refinamento dos componentes. O refinamento ocorre conforme podemos ver na figura a seguir: [6]

O ciclo de vida utiliza técnicas provenientes de várias áreas da ES, sendo algumas delas: Projeto de componentes: é o conjunto de etapas que codifica, refina e testa modelos de classes, além da prescrição de domínios para o desenvolvimento de pacotes de software; Implementação e testes dos componentes: a implementação é algo comum a este modelo, pois o mesmo utiliza a linguagem Java e os fundamentos de orientação a objetos. A técnica de construção principal é conhecida como OCL, que busca delimitar as propriedades, diretrizes e restrições dos objetos criados; Gerenciamento e reuso: o gerenciamento é conhecido como reuso de software, realizado através da rastreabilidade dos componentes, que podem ser utilizados em vários projetos e módulos de software;

Quais as vantagens deste modelo? O modelo inova, evitando o retrabalho de software, além de economizar custos, tempo, dentre fatores de projeto; O reuso viabiliza o uso de soluções que já foram testadas e aprovadas, amenizando os riscos de investimentos em projetos complexos; E as desvantagens do modelo? Apesar de reportar boas soluções, cada cenário é um cenário e este pensamento requer uma análise mais complexa, o que pode ao mesmo tempo auxilia e prejudicar um ou mais projetos; O reuso é um ciclo complexo, que exige engenheiros capacitados e que na prática precisam está em um ambiente instável e seguro;

Concluindo nossas aulas, vimos os principais modelos de ciclo de vida de software e aprendemos que: Um processo de software é algo fundamental para um projeto, delimitando seu crescimento ou fracasso em uma empresa; Cada ciclo determina a forma como o software será desenvolvido, e quais as técnicas que podem ser adotadas nos projetos de software; A evolução dos processos depende das empresas e da forma com o que elas os avaliam; Projeto, produto e processo, além das pessoas, são componentes fundamentais para o alinhamento correto do sucesso nas empresas! Nos vemos na próxima aula! Até lá!

Referências [1] PRIME UP. Foto-reprodução pública Processos de Software. Material institucional da Pontifícia Universidade Católica do Rio de Janeiro - PUC-Rio. Disponível em: < http://www.les.inf.puc-rio.br/wiki/images/c/c7/prds2008-1_modulo2.pdf > Acesso em 18 fev. 2015 [2] NING. Foto-reprodução pública Modelo em Cascata. Disponível em: <http://api.ning.com/files/vnxswnoot05gla6ae4w- PLdPaBmPZziECNvNZ4AzBfvC1mqf0cb9SmjfeUlgcKoCJ4hZtHFGwrt3KoYf0jVXQ3CdrM5nwotr/ AANALISTADESISTEMASVALEC2012_61.jpg > Acesso em 19 fev. 2015 [3] DEV Media. Foto-reprodução pública Modelo em Espiral. Disponível em: < http://arquivo.devmedia.com.br/artigos/ Higor_Medeiros/processos_es/image003.gif > Acesso em 19 fev. 2015 [4] DEV Media. Foto-reprodução pública Modelo em Espiral. Disponível em: < http://arquivo.devmedia.com.br/artigos/ Higor_Medeiros/processos_es/image002.gif > Acesso em 19 fev. 2015 [5]RIOS, Jocelia. Foto-reprodução pública Modelo Evolucionário. Material Institucional do Instituto Federal de Ciência e Te c n o l o g i a d a B a hia - IFBA. Disponível e m : < http://www.google.com.br/url? sa=t&rct=j&q=&esrc=s&source=web&cd=12&cad=rja&uact=8&ved=0cfgqfjal&url=http%3a%2f%2fwww.wiki.ifba.edu.br%2fads %2Ftiki-download_file.php%3FfileId%3D626&ei=2OXlVNnGLrLLsAS-44DwDw&usg=AFQjCNEGKc4-NJYsYL12D4xhflJfcrSfA&sig2=bXfeGK0d26f6uwNS5KWNHw&bvm=bv.85970519,d.cWc > Acesso em 19 fev. 2015