Modelo de processo para desenvolvimento de software

Um modelo de processo para desenvolvimento de software é um modelo de processo adaptado para desenvolvimento de software no desenvolvimento de aplicativos profissionais ("engenharia"). É utilizado para tornar o desenvolvimento de software mais claro e gerenciável em termos de complexidade.

Plano de Desenvolvimento

Uma vez que software complexo é difícil de criar e manter, use os desenvolvedores de software como um plano para o desenvolvimento de software . Este plano (o modelo procedimental) divide o processo de desenvolvimento em fases gerenciáveis ​​que são limitadas em termos de tempo e conteúdo. O software é concluído passo a passo. O processo de desenvolvimento real é acompanhado por gerenciamento de projeto e garantia de qualidade.

Os modelos de procedimento dividem as atividades individuais em diferentes fases no processo de desenvolvimento e estas são executadas uma vez (por exemplo, modelo em cascata ) ou várias vezes (por exemplo, modelo em espiral ) - possivelmente com pequenas modificações . Se for executado várias vezes, os componentes de software individuais são refinados iterativamente (ou seja, repetidamente). Há discordância sobre os modelos procedimentais ideais. Como regra, eles distinguem entre pelo menos dois grandes grupos de atividades no processo de desenvolvimento: a análise de processos de negócios ( modelo de processo de negócios e modelo de dados) (independente da implementação de programação ) por um lado, e implementação de TI (design e programação ) por outro.

Os modelos de procedimento diferem significativamente em seu nível de detalhe. Abordagem OOTC , Rational Unified Process , Rapid Application Development, etc. são procedimentos detalhados que fornecem aos envolvidos no desenvolvimento instruções de trabalho específicas. O modelo V tem uma posição híbrida a esse respeito: é tanto um princípio (cada estágio de desenvolvimento corresponde a uma fase de teste) quanto (como geralmente é o caso) um modelo detalhado.

O desenvolvimento ágil de software lida com métodos que o desenvolvedor criativo trabalha e permite rescindir aspectos administrativos. As tecnologias de software alternativas ( aplicação universal , fábrica de software, etc.) buscam abordagens que questionam fundamentalmente a abordagem convencional de design de software e programação subsequente, adaptando software universalizado pronto para os respectivos requisitos via configuração.

Existem vários métodos de avaliação para o processo de software, incluindo o Capability Maturity Model (Integration) ou " Spice ".

Tipos de modelos de processo

Existem três tipos diferentes de modelos procedimentais:

Os processos de desenvolvimento de software são usados ​​para controlar o desenvolvimento do software desde a concepção até o uso na operação real, incluindo quaisquer alterações no software que ocorram na operação real. Um dos modelos mais antigos é o modelo em cascata , que assume uma sequência rígida de fases individuais. Desenvolvimentos adicionais, como o modelo em espiral , no entanto, fornecem iterações, i. H. a mesma etapa de trabalho (por exemplo, a análise) é executada várias vezes e os resultados da etapa de trabalho são refinados e melhorados por execução.

Veja também: Lista de processos de desenvolvimento de software

O gerenciamento do ciclo de vida do software estende as fases ao longo de todo o ciclo de vida de um software . O modelo procedimental define os requisitos para os processos operacionais (o "O QUÊ") e descreve os processos concretos implementados tecnicamente por TI (o "COMO"). Este tipo é uma mistura de uma descrição real e especificação normativa. Dependendo do grau de padronização, diferentes estágios de desenvolvimento são atribuídos. As empresas podem ter esses estágios de desenvolvimento certificados por órgãos externos.

A filosofia de desenvolvimento de software corresponde à filosofia do programador, uma abordagem particular de como os proponentes acreditam que o software deve ser melhor desenvolvido. Muitas vezes, essas filosofias também contêm elementos de processo e, portanto, também são chamadas de modelos de processo.

crítica

Positivo

  • Uma vantagem geral dos modelos de processo é que os processos de gerenciamento de projetos, os processos de garantia de qualidade e o processo real de criação do produto são mapeados juntos.
  • Uma abordagem direcionada melhora a clareza do projeto geral, a coordenação das equipes e ajuda a identificar erros em um estágio inicial. Normalmente, isso tem um efeito positivo na qualidade de todo o sistema ou permite uma reconstrução exata do processo de desenvolvimento e das decisões em que se baseia.
  • Vantagens de um procedimento de acordo com um modelo de procedimento:
    • Separação da análise dos processos de negócios (O QUE) da implementação técnica de TI (COMO)
    • Guia de desenvolvimento de sistema
    • documentação que acompanha o projeto
    • Independência pessoal
    • Detecção precoce de erros por meio de atividades de teste estabelecidas
  • Os modelos de processo fornecem uma estrutura na qual um projeto pode ser executado de maneira ordenada. O modelo de processo ajuda a estruturar e compreender o andamento de um projeto, pois descreve o processo e os documentos de desenvolvimento de software. Em contraste, a qualidade do software a ser criado também depende dos participantes do projeto. É importante que eles tenham muito conhecimento prévio, trabalhem bem juntos e usem o bom senso . O sucesso do projeto e não o modelo de processo é o objetivo principal.

Negativos

  • Várias propostas existiram em paralelo, sem que um dos modelos procedimentais tivesse ganhado efeito generalizado na prática.
  • Os fornecedores de modelos procedimentais são tendenciosos. Os modelos de processo são um negócio, portanto, o desenvolvedor de um modelo de processo aconselha no seu interesse. Os fornecedores apresentam seu modelo como a panaceia para todos os problemas, esta é a pedra angular de uma consequência do processo e tudo ficará bem - mentalidade. Um projeto falha quando os envolvidos deixam de olhá-lo objetivamente e passam apenas por meio das listas de verificação fornecidas , por exemplo .
  • Devido à estrutura de projetos que um modelo de processo cria, uma consultoria de gestão oferece consultores especializados para cada atividade individual. Devido à fragmentação das tarefas em especialistas individuais, o esforço de coordenação aumenta desproporcionalmente.
  • Os modelos de processos podem ajudar a florescer a lei de Parkinson para a administração e gestão, pois abrem a possibilidade de solicitar novos funcionários para novas tarefas de acordo com o modelo de processo. Esse fenômeno afeta particularmente as instituições que não estão sujeitas a um controle econômico rígido porque não podem se tornar insolventes ( poder público , repartição e instituição ). Como um alerta, os projetos de software do setor público, como INPOL -Neu (polícia), Nivadis (polícia da Baixa Saxônia), FISCUS (administração fiscal), Hercules ( forças armadas alemãs), que falharam até 2004, foram significativamente atrasados, revelaram-se inadequados e / ou significativamente mais caros , Bolsa de empregos online (agência de empregos), Toll Collect , A2LL (agência de empregos, software " Hartz IV "), POLIKS (polícia de Berlim), etc.
  • É controverso se o processo de desenvolvimento de software é compreendido tão bem que uma “produção semelhante à da engenharia” é possível: os críticos argumentam que software nada mais é do que “conhecimento executável”. No entanto, o conhecimento não pode ser produzido de uma forma de engenharia (como uma ponte ou um prédio alto ), mas é encontrado em um processo criativo. A posição contrária argumenta que é precisamente no “processo criativo” que existe o risco de problemas de manutenção e sujidade estrutural. O argumento dos críticos também não se aplica a outros processos de desenvolvimento técnico (por exemplo, construir uma ponte, uma casa, uma fábrica).

literatura

Links da web

Commons : Modelo de processo para desenvolvimento de software  - coleção de imagens, vídeos e arquivos de áudio