Artigo Engenharia de Software 13 - Desenvolvimento Orientado a Componentes

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Artigo da Revista Engenharia de Software edição 13.

Esse artigo faz parte da revista Engenharia de Software 13 edição especial. Clique aqui para ler todos os artigos desta edição


Projeto


Desenvolvimento Orientado a Componentes

Um exemplo prático


De que se trata o artigo:

Este artigo detalha os benefícios e vantagens de se aplicar o desenvolvimento baseado em componentes como técnica a ser utilizada para o desenvolvimento de aplicações.

Para que serve:

Auxilia no desenvolvimento de aplicações com mais agilidade, através do reuso de componentes pré-existentes e com maior grau de confiabilidade e qualidade.

Em que situação o tema é útil:

Facilitar a construção de produtos que compartilham características similares com outras aplicações.

 

A competição entre as empresas está se tornando cada vez mais intensa e globalizada. Freqüentemente, elas competem com pequenas diferenças em novos serviços, que são rapidamente introduzidos no mercado. Melhorar o desempenho do negócio comumente significa que as empresas devem radicalmente melhorar seu desempenho no processo de desenvolvimento de software. Assim sendo, o sucesso do negócio é medido através da produção de software e de serviços de forma mais ágil, melhor e mais barata. A agilidade significa que o software deve ser disponibilizado em tempo hábil, para alcançar uma fatia maior do mercado. Neste contexto, “melhor” significa que o software deve atender aos requisitos do negócio e sem falhas relevantes, e “mais barato” quer dizer que o software deve ser produzido e mantido a baixo custo (Jacobson et al., 1997).

O desenvolvimento de software tradicional tem apresentado diversos problemas. Poucos são os projetos de software que têm sido entregues no prazo e dentro do orçamento previsto e a qualidade nem sempre está em níveis aceitáveis de confiabilidade. Além disto, cerca de 80% dos custos do software são gastos em atividades de manutenção, consumindo tempo e reduzindo consideravelmente a competitividade das empresas (Bosch, 2000).

O Desenvolvimento baseado em Componentes (DBC) (Brown, 2000) aparece como uma técnica promissora para a resolução destes problemas. Essa técnica consiste no desenvolvimento de aplicações a partir de componentes interoperáveis, reduzindo, assim, a complexidade e o custo do desenvolvimento, melhorando a qualidade do produto de software (Kallio, 2001) (Braga, 2000) (Woodman et al., 2001).

 

Desenvolvimento Baseado em Componentes

D’Souza (1998) define DBC como uma técnica de desenvolvimento de software, na qual todos os artefatos – desde códigos executáveis até especificações de interface, arquiteturas e modelos de negócio, e variando desde sistemas completos até pequenas partes – podem ser construídos pela combinação, adaptação e união de componentes numa variedade de configurações.

O conceito de componente ainda não possui um consenso entre os pesquisadores. Entretanto, uma visão bem aceita é que componentes reutilizáveis são artefatos auto-contidos, claramente identificáveis, que descrevem ou realizam uma função específica e têm interfaces em conformidade com um dado modelo de arquitetura de software, possuindo documentação apropriada e um grau de reutilização definido (Braga, 2000).

Para que possamos “montar“ aplicações a partir de componentes, duas atividades se mostram importantes: composição e adaptação. A composição é o uso de componentes na construção de um componente maior ou de um software completo. A melhor forma de reutilização seria o emprego do componente sem modificações. Entretanto, nem sempre isto é possível e, às vezes, é até importante o componente ser provido de mecanismos que permitam a sua adaptação, admitindo um maior espectro de possibilidades de uso.

A busca e a seleção de componentes são também atividades importantes em um processo de desenvolvimento baseado em componentes. A facilidade de localização e de compreensão da utilidade e das características do componente confere agilidade ao processo. Portanto, uma documentação acurada e um apropriado mecanismo de classificação de componentes são fundamentais para o sucesso da localização e reutilização de componentes (Kallio, 2001) (Braga, 2000).

 

Processo de Desenvolvimento de Componentes

O processo de desenvolvimento de componentes envolve quatro fases: análise de requisitos, especificação dos componentes, provisão e montagem de aplicações no domínio.

Na fase de análise de requisitos existe a preocupação com a definição e especificação dos requisitos do problema, ou seja, com o entendimento dos processos do negócio da aplicação. A fase de especificação de componentes se divide em três estágios intermediários (identificação de componentes, especificação de componentes e interação de componentes), através dos quais, a partir dos modelos especificados na fase de análise de requisitos, principalmente casos de uso, são identificadas as interfaces e especificações dos componentes. A fase de provisão determina quais componentes comprar, implementar, adaptar ou integrar com base nos resultados da especificação. Assim, a busca em repositórios de componentes já existentes é muito importante nesta etapa. Por fim, a fase de montagem guia a correta integração dos componentes, integrando-os a artefatos existentes para formar uma aplicação que satisfaça as necessidades do usuário.

No sentido de apresentar essa abordagem de forma prática, é apresentado a seguir um estudo de caso no domínio de gestão acadêmica, o qual detalha o processo de desenvolvimento, dando ênfase aos artefatos reutilizáveis gerados ao longo de todo o processo.

Estudo de Caso

Como já citado anteriormente, para o êxito no desenvolvimento de componentes e na sua posterior reutilização, deve-se ter um processo de desenvolvimento baseado em componentes que vai desde a fase de estudo do domínio dos componentes a serem desenvolvidos até a sua implementação.

Serão apresentadas a seguir as etapas de análise de requisitos e especificação dos componentes, brevemente descritas na seção anterior, através dos modelos gerados no desenvolvimento de aplicações com componentes.

Assim, foram desenvolvidos componentes para o domínio de gestão acadêmica, objetivando maior controle dos dados referentes aos alunos, professores, disciplinas, cursos, salas, ou seja, um maior detalhamento das informações pertinentes a este domínio como, por exemplo, a matrícula de alunos em cursos, a matrícula de alunos em disciplinas, o trancamento de curso por parte de alunos, o trancamento de disciplinas por parte de alunos, o cadastro de disciplinas com suas respectivas cargas horárias, a associação de disciplinas com suas respectivas salas, o cadastro de professores com suas respectivas disciplinas e o lançamento de notas. Foi desenvolvido também um componente de suporte para acesso ao banco de dados, sendo um componente genérico o suficiente para ser reutilizado em qualquer domínio de aplicação."

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?