Este trabalho de investigao realizado no mbito da disciplina de Engenharia de software, do ano letivo 2014/2015. um TRABALHO DE PESQUISA, mais concretamente sobre modelo processo de software. O objetivo investigar sobre o tema dado e adquirir conhecimentos sobre o seguinte tema a se tratado. Encontra-se organizado em uma nica parte. Ser abordado de uma forma superficial com o objetivo de adquirir conhecimentos sobre o tema e seus tpicos. A metodologia utilizada foi a pesquisa bibliogrfica, enriquecida com alguns contedos de livros e documentos e textos retirados online.
4Ano Engenharia Informtica
O QUE PROCESSO DE SOFTWARE?
Neste trabalho sero definidos os termos, no contexto de modelagem de processo, que sero utilizados a partir de agora neste trabalho. Alguns desses termos so conceitos da rea da Engenharia de Software. Processo de software um conjunto de atividades e resultados associados que produzem um produto de software. Portanto, um processo de software se d pela estruturao de um conjunto de atividades que resultam num produto software. Um processo deve contribuir na reduo de custos, aumento de qualidade e de produo. Um processo que no suporta esses objetivos no considerado um processo adequado. Um processo de software pode conter diversas atividades. As principais atividades que normalmente todo processo possui so: especificao, projeto, implementao, validao, manuteno e evoluo. As atividades constituem um conjunto mnimo para se obter um produto de software. Quando temos um processo definido temos a garantia de uma estabilidade, controle e organizao. LARMAN (2000, p. 40), "um processo [sistematizado] de desenvolvimento de software um mtodo para organizar as atividades relacionadas com a criao, entrega e manuteno de sistemas de software."
MODELO DE PROCESSO DE SOFTWARE Um modelo de processo de software define o que deve ser realizado em cada fase do desenvolvimento e d as instrues de como realizar essas atividades. Um modelo serve como um guia, um roteiro para a execuo de um processo de desenvolvimento. Um modelo de processo pode ser muito ou pouco flexvel, por exemplo, ele pode permitir a escolha de um modelo de ciclo de vida diferente em cada desenvolvimento ou determinar que todos os desenvolvimentos iro usar o mesmo modelo de ciclo de vida. Alm disso, ele pode ser bastante detalhista ou mais alto nvel:
4Ano Engenharia Informtica
pode definir sub-atividades dentro de cada atividade ou pode apenas dar uma definio geral do que deve ser realizado em cada fase do desenvolvimento. QUALIDADE DO PROCESSO Um software de qualidade aquele que atende s necessidades de seu usurio. Tecnicamente falando, essas necessidades se traduzem em requisitos do sistema. Assim, um software de qualidade aquele que atende aos requisitos especificados inicialmente no seu planejamento. A qualidade de um produto de software fortemente dependente da qualidade do processo pelo qual ele construdo e mantido. Ou seja, a utilizao de um processo metdico e sistematizado tem muito mais chances de produzir um software de qualidade do que a utilizao de um processo catico e desordenado. Por processo metdico e sistematizado, entende-se por um processo cujas etapas detalhadas de tal forma que engenheiros podem consistentemente e repetidamente utiliz-lo. MODELO CICLO DE VIDA Outro conceito relacionado com processo de software o conceito de modelo de ciclo de vida. O modelo de ciclo de vida de um software determina as fases pelas quais o desenvolvimento de um software deve passar e, principalmente, a ordem e o nmero de repeties dessas fases. Enquanto o ciclo de vida trata apenas da ordenao das fases tcnicas do desenvolvimento, um processo abrange aspectos gerenciais e mais detalhados, como, definio de papis, ferramentas e mtricas. Apesar disso, o processo de desenvolvimento de um software est intimamente ligado com o modelo de ciclo de vida adotado para desenvolv-lo. No pode haver um modelo de processo definido sem um ciclo de vida definido.
4Ano Engenharia Informtica
EXEMPLOS DE MODELOS
CODE-AND-FIX Esse tipo de ciclo de vida se caracteriza por duas fases: produo de cdigo (code) e conserto do cdigo quando so detetados erros (fix). Essa sequncia repetida at que se esteja satisfeito com o cdigo resultante. Apesar de ser considerada uma tcnica um tanto primitiva, ainda muito utilizada. A Figura abaixo, mostra como a produo do software por meio desse modelo uma atividade "nebulosa".
4Ano Engenharia Informtica
CASCATA As fases (normalmente: anlise, projeto, implementao e testes) so executadas em sequncia, sendo que uma s inicia aps a outra haver sido completamente terminada. Alm disso, uma vez terminada a fase, os resultados dela no so mais alterados (por exemplo, durante a fase de projeto no h a possibilidade de alterao dos requisitos, documentados na fase da anlise). Por esse motivo, o mtodo cascata no muito utilizado. Na prtica, ele combinado com um ou mais modelos para resolver o problema. A Figura abaixo ilustra a sequncia de fases como explicado:
4Ano Engenharia Informtica
VANTAGENS Documentao rgida (idealmente completa) em cada atividade; Reflete abordagens adotadas em outras engenharias; Aderncia a outros modelos de processo; Pode ser combinado a outros modelos; DESVANTAGENS Projetos reais raramente seguem um fluxo sequencial; Em geral, difcil para o cliente estabelecer todos os requisitos a priori; Difcil se adequar a mudanas inevitveis de requisitos; Uma verso executvel somente ficar pronta na fase final do projeto;
APLICAO DO MODELO CASCATA Sistemas crticos; Quando os requisitos so bem compreendidos; Quando h pouca probabilidade dos requisitos mudarem;
4Ano Engenharia Informtica
MODELO EM V semelhante ao cascata, diferenciando-se apenas em relao aos testes. Durante as fases de anlise e projeto so planejados os testes e durante a fase de implementao eles so preparados. Na fase de testes, eles so apenas executados. Esse modelo melhor do que o cascata porque leva a procedimentos de teste mais criteriosos e tende a diminuir a quantidade de erros no identificados. Na Figura abaixo, pode-se observar a sequncia das fases e como os testes so projetados, produzidos e executados. Ela tambm permite entender o motivo do nome do modelo.
4Ano Engenharia Informtica
MODELO DESENVOLVIMENTO INCREMENTAL Esse modelo considerado um dos melhores, pois resolve o principal defeito da cascata: permite que os documentos de uma fase sejam melhorados (ou incrementados) mesmo aps essa fase haver sido completada. Isso ocorre porque o desenvolvimento baseado em ciclos. Um ciclo constitui uma sequncia das fases de anlise, projeto, implementao e testes. Os requisitos podem ser divididos grupos, e cada grupo implementado em um ciclo. Assim, muda-se de uma fase para a prxima, mesmo sem ela haver sido completamente terminada. Alm disso, o desenvolvimento incremental permite que, por exemplo, ao encontrar um requisito do sistema durante a fase de projeto (o que bastante comum), pode-se incluir esse requisito no documento de requisitos, na fase de anlise do prximo ciclo.
4Ano Engenharia Informtica
VANTAGENS Permite trabalhar com o cliente o entendimento dos requisitos; Pode-se comear o sistema pelas partes melhor entendidas; Feedback rpido ao cliente; DESVANTAGENS O processo pode no ser muito claro; A gerncia do software complicada; O sistema no completamente especificado; O produto final frequentemente mal estruturado; A mudana contnua tende a corromper a modularidade do sistema; Os problemas do desenvolvimento incremental se tornam mais graves em sistemas crticos.
4Ano Engenharia Informtica
MODELO ESPIRAL O modelo espiral " um modelo orientado a riscos que reparte o projeto em mini projetos. Cada mini projeto resolve um ou mais riscos maiores at que os riscos maiores sejam resolvidos." Ao final da espiral, os grandes riscos esto eliminados, e pode-se continuar o desenvolvimento com outro modelo de ciclo de vida. Entretanto, esse modelo necessita de um gerenciamento de riscos um tanto complexo, sendo recomendado apenas para equipes mais experientes. A Figura abaixo, ilustra mais detalhadamente esse modelo.
4Ano Engenharia Informtica
PROTOTIPAO uma abordagem baseada em uma viso evolutiva do desenvolvimento de software, afetando o processo como um todo. Envolve a produo de verses iniciais - prottipos (anlogo a maquetes para a arquitetura) - de um sistema futuro com o qual possvel realizar verificaes e experimentos, com o intuito de avaliar algumas de suas caractersticas antes que o sistema venha realmente a ser construdo, de forma definitiva. Um prottipo uma verso inicial de um sistema de software, que utilizada para mostrar conceitos, experimentar opes de projeto e, em geral, para conhecer mais sobre os problemas e suas possveis solues. O desenvolvimento rpido de um prottipo essencial para que os custos sejam controlados e os usurios possam fazer experincias com o prottipo no incio do processo de software. Um prottipo de software apoia duas atividades do processo de engenharia de requisitos: Levantamento de requisitos - Os prottipos de sistema permitem que os usurios realizem experincias para ver como o sistema apia seu trabalho. Eles obtm novas idias para os requisitos e podem identificar pontos positivos e negativos do software. Eles podem, ento, propor novos requisitos de sistema. Validao de requisitos - O prottipo pode revelar erros e omisses nos requisitos propostos. Uma funo descrita em uma especificao pode parecer til e bem-definida. Contudo, quando essa funo utilizada com outras, os usurios muitas vezes acham que sua viso inicial era incorreta e incompleta. A especificao de sistema pode ento ser modificada para refletir sua compreenso alterada dos requisitos.
4Ano Engenharia Informtica
VANTAGENS Modelo de desenvolvimento interessante para alguns sistemas de grande porte que representem um certo grau de dificuldade para exprimir rigorosamente os requisitos possvel demonstrar a realizabilidade atravs da construo de um prottipo do sistema possvel obter uma verso, mesmo simplificada do que ser o sistema, com um pequeno investimento inicial A experincia adquirida no desenvolvimento do prottipo vai ser de extrema utilidade nas etapas posteriores do desenvolvimento do sistema real, permitindo reduzir o seu custo e resultando num sistema melhor concebido
DESVANTAGENS Quando informamos que o produto precisa ser reconstrudo, o cliente exige que alguns acertos sejam aplicados para tornar o prottipo um produto; muito frequentemente, a gerncia de desenvolvimento de software cede. O desenvolvedor muitas vezes faz concesses de implementao a fim de colocar um prottipo em funcionamento rapidamente. Depois de algum tempo, o desenvolvedor pode familiarizar-se com essas opes e esquecer-se de todas as razes pelas quais elas so inadequadas - a opo menos ideal se tornou ento parte integrante do sistema.
O prottipo pode ser oferecido ao cliente em diferentes formas: Prottipo em papel; Modelo executvel em PC retratando a interface homem-mquina capacitando o cliente a compreen der a forma de interao com o software; Prottipo de trabalho que implemente um subconjunto dos requisitos indicados; Programa existente (pacote) que permita representar todas ou parte das funes desejadas para o software a construir;
4Ano Engenharia Informtica
CONCLUSO Neste trabalho foi abordado o assunto que foi pedido para serem pesquisado e foi constatado a importncia do estudo desse tema a fim de um melhor conhecimento a nvel de softwares (seus modelos e processos), visto que tambm que existe uma vasta documentao sobre o tema investigado e assim aumentar o conhecimento. Cumpri todos os objetivos que foram proposto durante a investigao, uma vez que como dito anteriormente encontra-se uma vasta documentao e visto que j tinha um breve conhecimento sobre o do tema. Este trabalho foi muito importante para o meu conhecimento e o aprofundamento deste tema foi importante, visto que permitiu a compreender melhor o tema acima referido, alm de ter ajudado a aperfeioar a competncias de investigao, seleco, organizao e comunicao da informao.
4Ano Engenharia Informtica BIBLIOGRAFIA Livros e documentos: De Souza ,Mara Bay. Modelo de Processo de Software: aplicao em uma empresa jnior - Florianpolis, 2004
Ramos, Ricardo Argenton. Modelos de Processo de Software (2012)