Especializados

Os modelos especializados de processos tem algumas características dos outros modelos de processos convencionais.

1) Desenvolvimento Baseado em Componentes

O modelo de desenvolvimento baseado em componentes incorpora muitas das características do modelo espiral, com ênfase na decomposição dos sistemas. O modelo compõe aplicações à partir de componentes de software previamente definidos. Um componente é uma parte independente do sistema, que pode ser substituído, mas que possue uma função clara e bem definida na estrutura do sistema.
As atividades de modelagem e construção começam com a identificação de componentes candidatos. Esses componentes podem ser projetados como módulos de software convencional ou como classes ou pacotes de classes orientados a objetos.
O modelo de desenvolvimento baseado em componentes incorpora os seguintes passos:
  • Produtos baseados em componentes disponíveis são pesquisados e avaliados para o domínio da aplicação em questão.
  • Tópicos de integração de componentes são considerados.
  • Uma arquitetura de software é projetada para acomodar os componentes.
  • Componentes são integrados à arquitetura.
  • Testes abrangentes são realizados para garantir a funcionalidade adequada.
O modelo de desenvolvimento baseado em componentes leva ao reuso de software, e a reusabilidade fornece vários benefícios. Com base em estudos de reusabilidade, a QSM Associates, Inc. relata que o desenvolvimento baseado em componentes leva à redução de 70% do prazo do ciclo de desenvolvimento; uma redução de 84% no custo do projeto; e um índice de produtividade de 26,2, comparando com o padrão de 16,9 para a indústria. Apesar desses resultados, existe pouca dúvida de que o modelo de desenvolvimento baseado em componentes fornece vantagens significativas para os desenvolvedores de software.
Para projetar um sistema baseado em componentes é necessário entender os benefícios e dificuldades da tecnologia, bem como a ferramenta disponível. Os benefícios da componentização estão ligados a manutenabilidade, reuso, composição, extensibilidade, integração, escalabilidade, entre outros.
As dificuldades podem ser separadas em dificuldades do desenvolvimento para componentização
(construção dos componentes e da infra-estrutura) e dificuldades do desenvolvimento com componentização.
As primeiras estão ligadas ao esforço inicial de análise, projeto e desenvolvimento, enquanto as segundas estão ligadas ao esforço despendido no entendimento dos componentes e das ferramentas envolvidas,
à perda de flexibilidade, à dependência de terceiros e à adaptação do processo de desenvolvimento.

Clique na imagem para ampliar.

2) O Modelo de Métodos Formais

O modelo de métodos formais abrange um conjunto de atividades que levam à especificação matemática formal do software de computador.
Os métodos formais permitem especificar, desenvolver e verificar um sistema baseado em computador pela aplicação de uma rigorosa notação matemática. Quando métodos formais são usados durante o desenvolvimento, eles fornecem um mecanismo para eliminação de muitos problemas.
Ambiguidade, inconclusão e inconsistência podem ser descobertas e corrigidas mais facilmente por meios de análises matemáticas. Isso permite que os desenvolvedores descubram e corrijam erros que possam passar desapercebidos.
O modelo formal fornece a promessa de um software sem defeitos, mas algumas preocupações devem ser levantadas em um ambiente comercial:
- o desenvolvimento de métodos formais é muito lento e dispendioso
- como poucos desenvolvedores de software têm o preparo necessário para aplicar métodos formais, torna-se necessário um treinamento extensivo.
- é difícil usar os modelos como um mecanismo de comunicação, com clientes despreparados tecnicamente.

Apesar dessas preocupações, a abordagem de métodos formais tem ganho adeptos entre desenvolvedores de software que precisam construir softwares críticos em termos de segurança (por exemplo, desenvolvedores de aviões e dispositivos médicos) e entre desenvolvedores de software que sofreriam pesadas sanções econômicas se ocorressem erros no software.

3) Desenvolvimento de Software Orientado a Aspectos

O desenvolvimento de software orientado a aspectos é um paradigma relativamente novo de engenharia de software que fornece um processo e abordagem metodológica para definir, especificar, projetar e construir aspectos.
Ele permite aos desenvolvedores de software separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns). Essa metodologia busca desenvolver métodos, técnicas e ferramentas que dêem apoio a todas as fases do  desenvolvimento.
Na Programacão Orientada por Aspectos, requisitos de sistemas são modelados por meio de classes, que implementam os objetos do mundo real, e aspectos, que implementam requisitos transversais do sistema, tais como geracão de registro de operacões, tratamento de erros, segurança e comunicação.


Clique na imagem para ampliar.