Fundamento Tecnologia
Exames: Fundamento Tecnologia. Pesquise 862.000+ trabalhos acadêmicosPor: aldenora • 16/11/2013 • 3.759 Palavras (16 Páginas) • 414 Visualizações
INTRODUÇÃO
Um modelo de processo de desenvolvimento de software, ou simplesmente modelo de processo de software, pode ser visto como uma representação, ou abstração dos objetos e atividades envolvidas no processo de software.
Além disso, oferece uma forma mais abrangente e fácil de representar o gerenciamento de processos de software e consequentemente o progresso do projeto.
Objetivo
Apresentar os principais paradigmas e modelos de processos de software, demonstrar o ciclo de vida do desenvolvimento de software e enfatizar os processos de especificação de requisitos, projeto, implementação, testes e mudanças.
Processo de software
“É uma sequência coerente de práticas que objetiva o desenvolvimento ou evolução de sistemas de software. Estas práticas englobam as atividades de especificação, projeto, implementação, testes e caracterizam-se pela interação de ferramentas, pessoas e métodos”.
Modelo de processo de software
“Um modelo de processo de software é uma representação abstrata de um processo. Ele apresenta uma descrição de um processo a partir de uma perspectiva específica”.
Exemplos de alguns modelos de processo de software;
1. Modelos ciclo de vida:
O ciclo de vida é identificado como um conjunto de fases ou etapas que representam uma evolução desde o nascimento da necessidade de criação de um software até sua descontinuidade ou morte.
As fases são identificadas pelos seguintes elementos; a) produtos a serem utilizados ao iniciar, geralmente são produtos resultados das fases anteriores; b) recursos necessários para desempenhar as atividades previstas, sejam recursos materiais, temporais ou pessoais; c) métodos para a realização das tarefas, de acordo com o planejado e previsto pelos recursos; d) resultados esperados, finais ou para ser utilizados na próxima fase.
Estes "modelos de ciclo de vida" ou "modelos de processos" são tipicamente produzidos a partir de uma perspectiva de que poderão existir vários modelos para o mesmo processo. Nenhum modelo é capaz de dar uma visão completa de um determinado processo.
2. Sequencial ou Cascata com fases distintas de especificação, projeto e desenvolvimento:
O modelo em cascata é um modelo de desenvolvimento de software sequencial no qual o desenvolvimento é visto como um fluir constante para frente (como uma cascata) através das fases de análise de requisitos, projeto, implementação, testes (validação), integração, e manutenção de software.
A origem do termo cascata é frequentemente citado como sendo um artigo publicado em 1970 por W. W. Royce; ironicamente, Royce defendia um abordagem iterativa para o desenvolvimento de software e nem mesmo usou o termo cascata.
3. Desenvolvimento iterativo e incremental:
O Desenvolvimento Iterativo e Incremental é um dos clássicos modelos de processo de desenvolvimento de software criado em resposta às fraquezas do modelo em cascata, o mais tradicional.
Os dois padrões mais conhecidos de sistemas iterativos de desenvolvimento são o RUP (Processo Unificado da Rational) e o Desenvolvimento ágil de software. Por isso o desenvolvimento iterativo e incremental é também uma parte essencial da Programação Extrema e outros.
4. Evolucional ou Prototipação - especificação, projeto e desenvolvimento de protótipos:
Prototipação é uma abordagem baseada em uma visão evolutiva do desenvolvimento de software, afetando o processo como um todo.
Envolve a produção de versões iniciais -protótipos (análogo a maquetes para a arquitetura) - de um sistema futuro com o qual é possível realizar verificações e experimentos, com o intuito de avaliar algumas de suas características antes que o sistema venha realmente a ser construído, de forma definitiva.
5. Espiral - evolução através de vários ciclos completos de especificação, projeto e desenvolvimento:
O Modelo em espiral é um processo de desenvolvimento de software que combina elementos de projeto prototipação-em-etapas, em um esforço para combinar as vantagens dos conceitos de top-down e bottom-up, acrescentando um novo elemento, a análise de riscos que falta a esses paradigmas.
O modelo em espiral foi definido por Barry Boehm em seu artigo de 1988 A Spiral Model of Software Development and Enhancement. Este modelo não foi o primeiro a discutir o Desenvolvimento iterativo e incremental, mas ele foi o primeiro modelo a explicar o porquê do modo iterativo.
Cada fase inicia com um objetivo esperado e termina como uma revisão pelo cliente do progresso (que deve ser interna) e assim por diante. Esforços de análise e engenharia são aplicados em cada fase do projeto, com um olho focado no objetivo do projeto.
6. Componentizado:
Reuso através de montagem de componentes já existentes.
7. Formal:
Implementação a partir de modelo matemático formal.
8. Ágil:
Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.
9. RAD:
Rapid Application Development (RAD) ou Desenvolvimento Rápido de Aplicação (em português), é um modelo de processo de desenvolvimento de software iterativo e incremental que enfatiza um ciclo de desenvolvimento extremamente curto (entre 60 e 90 dias).
O termo foi registrado por James Martin em 1991 e tem substituído gradativamente o termo de prototipação rápida que já foi muito utilizada no passado
10. Quarta geração:
Este modelo é baseado no uso de um conjunto de ferramentas de software que possibilita que o desenvolvedor de software especifique algumas características do software em nível elevado. Em seguida a ferramenta gera, automaticamente, o código-fonte do software.
A grande dificuldade em se aplicar este modelo é que nem todas as aplicações possíveis de desenvolvimento são aplicáveis nas ferramentas existentes para este modelo de clico de vida.
11. RUP- Rational Unified
...