• Nenhum resultado encontrado

3.2 Engenharia de Domínio

3.2.2 O Método PLUS

O projeto de software do arcabouço que forma o núcleo da LPS para iMA foi executado se- guindo o método PLUS (Product Line UML-based Software Engineering Method , que pode ser traduzido como Método de Engenharia de Software para Linha de Produto baseado em UML) (Gomaa,2004). Esse método foi escolhido principalmente pelo fato de ser baseado em UML (Miles e Hamilton, 2006), o que facilita o processo, e por ser utilizado em um livro dedicado ao método e que apresenta exemplos de projetos de linhas de produto. Outras referências com mé- todos de projeto de linha de produto também foram consultados, mas o nível de detalhe de cada etapa do processo ou o número de exemplos não eram suficientes para serem usados neste trabalho (Clements et al.,2006;Pohl et al.,2005).

O método PLUS consiste, basicamente, em aplicar a criação de diagramas UML, adaptados ao contexto de uma família de aplicativos, para projetar o núcleo de uma LPS. Ele é dividido em cinco etapas: (i) modelagem de características, (ii) análise de casos de uso, (iii) análise estática, (iv) análise dinâmica e (v) projeto arquitetural. A etapa de modelagem de características é similar à análise de domínio executada pelo método FODA, apresentado na seção anterior. Nela as características de todos os aplicativos da família são listadas e posteriormente classificadas em obrigatórias, opcionais ou variantes. As outras etapas do método PLUS são apresentadas a seguir.

Análise de Casos de Uso

Uma vez listadas e classificadas as características dos aplicativos da LPS, a etapa de análise de casos de uso é executada para cada uma. Assim, os casos de uso são relacionados às características, o que permite também separar as etapas seguintes dessa maneira. Uma influência dessa separação é a possibilidade de considerar as características opcionais e variantes em diferentes períodos do desenvolvimento da LPS, quando as obrigatórias já tiverem sido projetadas.

O método PLUS adapta a análise de casos de uso da linguagem UML para o contexto de LPS, incluindo a variabilidade nessa análise. Os casos de uso no método PLUS são classificados em obrigatório, opcional ou variante. Essa variabilidade é uma especialização em maior nível de detalhe daquela realizada na modelagem das características. Casos de uso obrigatórios pertencem a todos os aplicativos inseridos na LPS, enquanto que os opcionais são escolhidos para pertencer ao aplicativo durante a engenharia de aplicação. Casos de uso variantes ou alternativos podem ser escolhidos entre os elementos de uma lista. A Figura 3.2 mostra um exemplo de diagrama de casos de uso do método PLUS.

Figura 3.2: Exemplo de diagrama de casos de uso do método PLUS.

Nesse exemplo para o caso do projeto de um sistema de controle para uma linha de produto de microondas (Gomaa,2004), o diagrama de casos de uso mostra casos de uso obrigatórios, opcionais e alternativos. Os casos de uso Cozinhar Comida e Definir Hora são obrigatórios, pois devem estar presentes em todos os microondas da linha. O caso de uso Descongelar Comida é opcional, apenas alguns microondas, mais completos, têm essa funcionalidade. Por fim, o caso de uso Campainha é alternativo, pois em cada microondas é possível ter uma campainha diferente, ou seja, uma campainha deve ser escolhida entre a lista de disponíveis.

Os casos de uso de uma característica permitem relacioná-la às classes, ou componentes arqui- teturais. Dessa forma é possível determinar as classes responsáveis pelas funcionalidades de cada característica. As classe e a arquitetura são definidas nas etapas posteriores de análise estática e projeto arquitetural.

3.2 ENGENHARIA DE DOMÍNIO 31

Análise Estática

A etapa de análise estática trata da modelagem do domínio e das funcionalidades selecionadas para a LPS em forma de classes, da mesma forma que o projeto de software com UML para aplicativos individuais. A adaptação proposta pelo método PLUS para o contexto de LPS é similar àquela para os casos de uso. Assim, as classes são classificadas como obrigatórias, opcionais e variantes. A figura3.3mostra um exemplo de diagrama de classes em um projeto de LPS.

Figura 3.3: Exemplo de diagrama de classes do método PLUS.

Usando o mesmo exemplo da seção anterior, o da linha de produtos de sistemas de controle de microondas, o diagrama de classes mostra elementos obrigatórios, opcionais e alternativos. A classe central é a de controle, uma agregação de classes que representam interfaces dos vários dispositivos sensores e atuadores dos microondas. As classes Timer, Teclado e Sensor de Porta são obrigatórias, e todos os microondas da linha têm iguais. Por outro lado, as classes do Aquecedor e do Display são obrigatórias, mas podem variar entre dois tipos mutualmente exclusivos (representado pela expressão xor ). A classe Lâmpada é opcional, o que indica que alguns microondas têm, outros não.

Análise Dinâmica

Uma vez definidas as classes que modelam as funcionalidades dos aplicativos e classificadas de acordo com a variabilidade dos casos de uso que fazem parte, a análise dinâmica pode ser executada. Similarmente, são usados os diagramas UML de sequência ou de colaboração. Incluindo a variabilidade definida na análise estática, é necessário criar diagramas para cada uma das variações, como mostra a figura 3.4.

Ainda usando o exemplo da linha de produto de controladores de microondas, esse diagrama de colaboração mostra apenas a parte variante do passo “4” de um caso de uso com relação a uma das classes alternativas. Nesse caso a classe alternativa é a Display. Assim, para o exemplo da figura, a alternativa de display de uma linha foi escolhida, e o diagrama criado. Essa análise é necessária para cada alternativa pelo fato das diferentes alternativas poderem se comunicar de diferentes maneiras com os outros elementos do sistema.

Figura 3.4: Exemplo de diagrama de colaboração do método PLUS.

Projeto Arquitetural

O projeto arquitetural refina a análise estática e a análise dinâmica com informações mais precisas sobre a comunicação dos objetos e encapsula classes em componentes de acordo com as características da LPS. Essa etapa também inclui a variabilidade como classificação dos componentes e outros elementos envolvidos.

Ao fim dessa etapa, todas as especificações necessárias para a implementação do núcleo da LPS estão definidas. Isso envolve um processo iterativo de revisão das outras etapas, uma vez que novas informações são coletadas ao longo do projeto. Na seção seguinte é relatado o método utilizado para o a criação do modelo de sistema, incorporado pelo projeto e implementação do arcabouço de aplicação da LPS para iMA, utilizando o método PLUS.