Sie sind auf Seite 1von 11

A preocupao com a qualidade do software desenvolvido uma realidade constante na vida dos desenvolvedores de software, principalmente os responsveis pela

a entrega final do projeto, estes devem manter a qualidade que os clientes desejam e manter o regist ro de todas as alteraes solicitadas. Aps a instalao em produo importante saber em qual verso o software se encontra, quais alteraes ele sofreu, garantir que erros corrigidos no voltem a aparecer, que verses antigas no tome o lugar de verses novas ou simplesmente no encontrar o cdigo fonte de um sistema em produo. O Gerenciamento de Configurao de Software um das atividades de apoio ao desenvolvimento de software, ele permite que todos os passos executados sejam registrados e monitorados, de forma que qualquer alterao de escopo do projeto ocorra de forma clara e com a devida aprovao. Muitas ferramentas para gesto e gerenciamento de configurao de software esto disponveis no mercado, algumas de cdigo proprietrio e de custos d e licenas variveis, outras de cdigo fonte aberto, livre e sem custos de licenas, nosso objetivo aqui apresentar as normas e modelos de prticas para esta atividade, listar algumas ferramentas disponveis no mercado, apresentar um estudo de caso com a implantao de ferramentas de cdigo fonte aberto, destacar que independente da ferramenta escolhida o que vai garantir o registro das alteraes o processo de gerenciamento do ciclo de vida de software escolhido e implantado, independente da ferramenta escolhida.

Ciclo de Vida de um Software


Postado por: Thiago F. Pereira em: Engenharia de Software| Modelo Cascata| Modelo Iterativo Um ciclo de vida de um software nada mais como as atividades sero executadas durante o projeto e em que ordem. Nos ltimos 40 anos foram criados vrios modelos de ciclos de vida. Aqui vamos descrever os dois modelos mais utilizados no mercado e que embora muitos sejam contra uma ou outra, ambas j provaram que com elas, o sucesso do projeto poder ser alcanado.

Ciclo de vida de um software ArtigoTabela de contedo

Ciclo de vida de um software


O ciclo de vida de um "software (em ingls software lifecycle), designa todas as etapas do desenvolvimento de um software, da sua concepo ao seu desaparecimento. O objectivo de tal segmentao definir balizas intermdias que permitem a validao do desenvolvimento do software, isto , a conformidade do software com as necessidades exprimidas, e a verificao do processo de desenvolvimento, quer dizer, a adequao dos mtodos aplicados.

A origem desta discriminao provm da constatao que os erros tm um custo ainda mais elevado quando so detectados tardiamente no processo de realizao. O ciclo de vida permite detectar os erros o mais depressa possvel e assim dominar a qualidade do software, os prazos da sua realizao e os custos associados. Geralmente, o ciclo de vida do software compreende, no mnimo, as actividades seguintes:
y

y y

Definio dos objectivos, consistindo em definir a finalidade do projecto e a sua inscrio numa estratgia global. Anlise das necessidades e viabilidade, quer dizer a expresso, a recolha e a formalizao das necessidades do requerente (o cliente) e do conjunto dos constrangimentos. Concepo geral. Trata-se da elaborao das especificaes da arquitectura geral do software. Concepo detalhada, que consiste em definir precisamente cada subconjunto do software. Codificao (Aplicao ou programao), quer dizer a traduo numa linguagem de programao das funcionalidades definidas aquando das fases de concepo. estes unitrio, que permitem verificar individualmen te que cada subconjunto do "software" aplicado em conformidade com as especificaes. Integrao, cujo objectivo assegurar a intercomunicao dos diferentes elementos (mdulos) do software. objecto de testes de integrao consignados num documento. Qualificao (ou receita), isto , a verificao da conformidade do software s especificaes iniciais. Documentao, destinada a produzir as informaes necessrias para a utilizao do software e para desenvolvimentos ulteriores. Produo, Manuteno, compreendendo todas as aces correctivas (manuteno correctiva) e evolutivas (manuteno evolutiva) no software.

A sequncia e a presena de cada uma destas actividades no ciclo de vida depende da escolha de um modelo de ciclo de vida entre o cliente e a equipa de desenvolvimento.

Modelos de ciclos de vida


Para estar em condies de ter uma metodologia comum ao cliente e empresa que realiza o desenvolvimento, foram criados modelos de ciclo de vida que definem as etapas do desenvolvimento, assim como os documentos a produzir que permitem validar cada uma das etapas antes de passar seguinte.

Modelo em cascata
O modelo de ciclo de vida em cascata foi criado logo em 1966, seguidamente formalizado por volta de 1970. Define fases sequenciais ao fim de cada uma das quais so produzidos documentos para verificar a conformidade, antes de passar seguinte:

Modelo em V
O modelo de ciclo de vida em V parte do princpio que os procedimentos de verificao da conformidade do software s especificaes devem ser elaborados logo durante as fases de concepo.

Ciclo de Vida do Software O ciclo de vida de um software descreve as fases pelas quais o software passa desde a sua concepo at ficar sem uso algum. O conceito de ciclo de vida de um software muitas vezes confundido com o de modelo de processo (assunto do prximo artigo). Existem vrias propostas e denominaes para as fases do ciclo de vida de um software. Nossa proposta identifica 4 fases que so delimitadas por eventos tpicos em diversos ciclos de vida. Cada fase inclui um conjunto de atividades ou disciplinas que devem ser realizadas pelas partes envolvidas. Essas fases so:
y y y y

Definio Desenvolvimento Operao Retirada

Fase de Definio
A fase de definio do software ocorre em conjunto com outras atividades como a modelagem de processos de negcios e anlise de sistemas. Nesta atividade, diversos profissionais buscam o conhecimento da situao atual e a identificao de problemas para que possam elaborar propostas de soluo de sistemas computacionais que resolvam tais problemas. Dentre as propostas apresentadas, deve-se fazer um estudo de viabilidade, incluindo anlise custo-benefcio, para se decidir qual soluo ser a escolhida. O resultado desta atividade deve incluir a deciso da aquisio ou desenvolvimento do sistema, indicando informaes sobre hardware, software, pessoal, procedimentos, informao e documentao. Caso seja decidido pelo desenvolvimento do sistema, no escopo da engenharia de software, necessrio elaborar o documento de proposta de desenvolvimento de software. Esse documento pode ser a base de um contrato de desenvolvimento.

Profissionais de engenharia de software atuam nesta atividade com o objetivo de identificar os requisitos de software e modelos de domnio que sero utilizados na fase de desenvolvimento. Os requisitos so tambm fundamentais para que o engenheiro possa elaborar um plano de desenvolvimento de software, indicando em detalhes os recursos necessrios (humanos e materiais), bem como as estimativas de prazos e custos (cronograma e oramento). No existe um consenso sobre o caracteriza o final da fase de definio. Isto varia de acordo com o modelo de processo adotado. Em algumas propostas, a fase de definio considerada concluda com a apresentao da proposta de desenvolvimento apenas. Outros modelos de processo, considera que o software apenas est completamente definido com a especificao de requisitos e com a elaborao do plano de desenvolvimento de software. De acordo com o modelo de processo adotado, pode-se iniciar atividades da fase de desenvolvimento mesmo que a fase de definio no esteja completamente concluda.

Fase de Desenvolvimento
A fase de desenvolvimento ou de produo do software inclui todas as atividades que tem por objetivo a construo do produto. Ela inclui principalmente o design, a implementao e a verificao e validao do software. Design A atividade de design compreende todo o esforo de concepo e modelagem que tm por objetivo descrever como o software ser implementado. O design inclui:
y y y y

Design conceitual Design da interface de usurio Design da arquitetura do software Design dos algoritmos e estruturas de dados O design conceitual envolve a elaborao das idias e conceitos bsicos que determinam os elementos fundamentais do software em questo. Por exemplo, um software de correio eletrnico

tradicional inclui os conceitos: mensagem, caixa de entrada, caixa de sada, etc. A mensagem, por sua vez, inclui os conceitos de para, cc, bcc, assunto, corpo, etc. Embora seja um design adotado pela maioria dos software, novos modelos conceituais podem vir a ser adotados. O conceito de conversao do Gmail um exemplo. O design conceitual exerce influncia na interface de usurio e na arquitetura do software. O design da interface de usurio envolve a elaborao da maneira como o usurio pode interagir para realizar suas tarefas, a escolha dos objetos de interfaces (botes, menus, caixas de texto, etc.), o layout de janelas e telas, etc. A interface deve garantir a boa usabilidade do software e um fundamental fator de sucesso do software. O design de arquitetura de software deve elaborar uma viso macroscpica do software em termos de componentes que interagem entre si. O conceito de componente em arquitetura varia de acordo com a viso arquitetnica adotada. So exemplos de vises arquitetnicas, a viso conceitual, viso de mdulos, viso de cdigo e viso de execuo. Na viso conceitual, os componentes de software so derivados do design conceitual. Estes componentes so abstraes que devem definir outros elementos menos abstratos. Exemplos so arquiteturas cliente-servidor e arquitetura em camadas. Na viso de cdigo, deve-se determinar como as classes e/ou funes esto organizadas e interagindo entre si. Estas classes implementam os componentes abstratos ou conceituais. Na viso de mdulos, devese determinar quais so os mdulos que sero utilizados na implementao e como eles organizam as classes e/ou funes. Na viso de execuo, a arquitetura deve descrever os diferentes processos que so ativados durante a execuo do software e como eles interagem entre si. Enquanto as anteriores oferecem uma viso esttica, esta uma viso dinmica do software. O design de algoritmos e estrutura de dados, tambm conhecido como design detalhado, visa determinar, de maneira independente da linguagem de programao adotada, as solues

algortmicas e as estruturas de dados associados. Deve-se decidir, por exemplo, como as informaes podem ser ordenadas (algoritmo de bolha ou quicksort) e em qual tipo de estrutura de dados (array, lista encadeada) elas vo ser armazenados. Implementao A implementao envolve as atividades de codificao, compilao, integrao e testes. A codificao visa traduzir o design num programa, utilizando linguagens e ferramentas adequadas. A codificao deve refletir a estrutura e o comportamento descrito no design. Os componentes arquiteturais devem ser codificados de forma independente e depois integrados. Os testes podem ser iniciados durante a fase de implementao. A depurao de erros ocorre durante a programao utilizando algumas tcnicas e ferramentas. fundamental um controle e gerenciamento de verses para que se tenha um controle correto de tudo o que est sendo codificado. Verificao e validao Verificao e validao destinam-se a mostrar que o sistema est de acordo com a especificao e que ele atende s expectativas de clientes e usurios. A validao visa assegurar se o programa est fazendo aquilo que foi definido na sua especificao (fazendo a coisa certa). A verificao visa verificar se o programa est correto, isto , no possui erros de execuo (fazendo certo a coisa). Existem diferentes formas de verificao e validao. Inspeo analtica e reviso de modelos, documentos e cdigo fonte so formas que podem ser usadas antes mesmo que o programa seja completamente codificado. Os testes de correo, desempenho, confiabilidade, robustez, usabilidade, dentre outros, visam avaliar diversos fatores de qualidade a partir da execuo do software. Diferentes tcnicas de testes podem ser aplicadas para cada um destes fatores

Fase de Operao
A fase de operao envolve diferentes tipos de atividades:

y y y y

Distribuio e entrega Instalao e configurao Utilizao Manuteno A distribuio e entrega pode ser feita diretamente pelo desenvolvedor (em caso de software personalizado), ou em um pacote a ser vendido em prateleiras de lojas ou para ser baixado pela Internet (em caso de software genricos). O processo de instalao e configurao, normalmente, pode ser feito com a ajuda de software de instalao disponibilizados pelos fabricantes dos ambientes operacionais. A atividade de utilizao o objeto do desenvolvimento do software. A qualidade da utilizao a usabilidade do software. A manuteno normalmente ocorre de duas formas: corretiva e evolutiva. A manuteno corretiva visa a resoluo de problemas referentes a qualidade do software (falhas, baixo desempenho, baixa usabilidade, falta de confiabilidade, etc.). A manuteno evolutiva ou adaptativa visa a produo de novas verses do software de forma a atender a novos requisitos dos clientes, ou adaptar-se s novas tecnologias que surgem (hardware, plataformas operacionais, linguagens, etc). Mudanas no domnio de aplicao implicam em novos requisitos e incorporao de novas funcionalidades. Surgimento de novas tecnologias de software e hardware e mudanas para uma plataforma mais avanada tambm requerem evoluo.

Fase de retirada
A fase retirada um grande desafio para os tempos atuais. Diversos software que esto em funcionamento em empresas possuem excelente nveis de confiabilidade e de correo. No entanto, eles precisam evoluir para novas plataformas operacionais ou para a incorporao de novos requisitos. A retirada desses software legados em uma empresa sempre uma deciso difcil: como abrir mo daquilo que confivel e ao qual os funcionrios esto acostumados, aps anos de treinamento e utilizao?

Processos de reengenharia podem ser aplicados para viabilizar a transio ou migrao de um software legado para um novo software de forma a proporcionar uma retirada mais suave. Resumo Aulas 17, 18 e 19 Aula 17 Existem vrios modelos de ciclo de vida de desenvolvimento de software, entre eles possvel citar: Fora bruta, nike-way, Cascata, Espiral e Iterativo. y Fora bruta o tipo de desenvolvimento sem organizao em fases e em fases sistemticas. Sabe-se o problema e desenvolve-se uma soluo para ele. y Modelo cascata ainda hoje o mais utilizado, tambm conhecido como modelo clssico, por ser um dos mais antigos. Existem vrias etapas que so desenvolvidas de forma sistemtica e sequncial:  Especificao de Requisitos  Anlise e Projeto  Implementao  Integrao e Testes  Implantao o Neste modelo existem pontos especficos para entrega dos artefatos, pois cada fase depende da anterior o Ela bastante simples e por conta disso acaba sendo bastante fcil de planejar o Contudo, existe iterao entre cada uma das fases, ou seja, uma altero em qualquer das fases pode alterar qualquer uma das outras, ou seja, por mais que se busque fases independentes, elas acabam se relacionando, no tendo, comeo e fim definidos e definitivos antes do final de todo o projeto o Ele leva em considerao que os requisitos no sero mudados, de forma a evitar mudanas que causassem o retorno a fases teoricamente j finalizadas o Por no estar considerando mudanas nos requisitos ele acaba, atrasando a reduo de riscos. Uma vez que o sistema sempre estar correndo o risco de uma mudana ser necessria no final de cada uma das fases, o que alteraria todo o ciclo, pois ele teria de ser reinializado. Este fato pode ser observado claramente atravs de grficos que definem que por conta de no considerar mudanas desde o comeo, estas s vem a aparecer no momento da integrao do sistema, provocando diversos atrasos no cronograma.

y Modelo Espiral um modelo que est mais integrado com a gesto de riscos e por conta disso acaba sendo muito dependente da mesma. Por ser mais suscetvel aos riscos e as possveis mudanas que o projeto pode sofrer acaba apresentado dificuldades para fechamento de contratos. Ele bastante complexo e exige um bom conhecimento de gesto de riscos para que ele seja eficiente. y Modelo Iterativo um modelo derivado do modelo cascata. Ele considera o tempo dividido em ciclos, chamados de iteraes. Para cada uma dessas iteraes haver todas as fases descritas pelo modelo cascata: especificao de requisitos, anlise e projeto, implementao, integrao e testes e Implantao. o A ordem em que os Casos de Uso sero implementados dependem da complexidade de cada um deles. Eles devem obedecer ordem em que os UC mais difceis so implementados primeiro. o A utilizao do modelo iterativo antecipa a reduo de riscos, uma vez que o projeto ser implementado e integrado aos poucos, logo se no primeiro UC houver uma falha de arquitetura ela j ser corrigida, e no ter que esperar que todo o sistema esteja pronto, para altera r um conjunto de arquivos. Para projetos de desenvolvimento de software quanto antes a mudana for reportada menor o trabalho para implement-la. o Ao utilizar o modelo Iterativo, Integrao e Testes so feitos desde o incio do projeto, uma vez que eles so as tarefas mais custosas, de forma contnua. o Com este modelo os riscos crticos so resolvidos logo no incio do desenvolvimento, evitando que grandes valores sejam investidos no projeto antes dos problemas crticos serem resolvidos. o Atravs dos testes desde o incio do ciclo de desenvolvimento, ele permite se ter um feedback do usurio final mais rpido o Por se tratar de pequenas iteraes, com curto-prazo e pequenos projetos, mais fcil acertar as estimativas e evitar grandes atrasos o Alm disso, o usurio estar sempre podendo observar os avanos que o seu sistema est obtendo, podendo medi -lo de forma mais concreta o E implementaesparcias tambm podem ser resolvidas Uma metodologia um processo de desenvolvimento que permite a utilizao de mtodos e prticas que so aperfeioadas a medida em que a instituio que a utiliza se torna mais experiente. Ela possui ainda orientaes nas linguagens, paradigmas, tecnologias e ferramentas que sero utilizadas. fundamental que esteja sempre bem definido para cada uma destas atividades: O que? Quando? E Como?

O processo de desenvolvimento necessita de um modelo de ciclo de vida como foi definido acima e de um conjunto bem definido das atividades que devem possuir: y Responsveis y Artefatos de entrada e sada y Dependncias entre as mesmas e a ordem de execuo J as prticas e mtodos de desenvolvimento so compostas por um conjunto de atividades com uma descrio sistemtica de como devem ser realizada, deve possuir detalhes especficos como de acordo com a lingua gem e ferramentas utilizadas na empresa, alm disso elas so baseadas em UML. As vantagens na utilizao de uma metodologia so a qualidade do software e a produtividade no desenvolvimento, operao e manuteno. Alm disso, com uma metodologia possvel controlar o desenvolvimento dentro de custos, prazos e nveis de qualidade desejados, at porque eles sero melhor estimados. Os benefcios no vem de imediato, preciso um tempo para adaptao ao novo processo. O RUP um framework para processos baseado em boas prticas de desenvolvimento para utiliz-lo preciso instanci-lo e definir padres e guias adaptados a realidade de cada empresa. Ele deve ser: y Iterativo e incremental y Guiado por casos de uso y Baseado na arquitetura do sistema y Orientado a objetos Iterativo e incremental, pois em cada iterao feita uma identificao e especificao dos casos de uso mais relevantes. Em seguida se define a anlise e o projeto deles baseado na arquitetura do sistema, os componentes so implementados e analisa-se se eles satisfazem os casos de uso. A ordem de desenvolvimento dos casos de uso baseado em uma anlise dos riscos envolvidos no projeto, quanto mais risco um caso de uso tiver, antes ele ser implementado, evitando que os problemas se prolonguem.

Das könnte Ihnen auch gefallen