• Nenhum resultado encontrado

R EQUISITOS PARA O ENSINO DE QUALIDADE DE ARQUITETURA DE SOFTWARE CONSIDERADOS NO ROTEIRO

APÊNDICE G DIFERENÇAS ENTRE ISO/IEC 9126-1 E ISO/IEC 25010

9. Apresentação de resultados: baseando-se nas informações coletadas nas

3.4 R EQUISITOS PARA O ENSINO DE QUALIDADE DE ARQUITETURA DE SOFTWARE CONSIDERADOS NO ROTEIRO

Tanto a teoria construtivista como a de aprendizagem significativa afirmam que o aprendizado se consolida sobre as bases já existentes no aluno (AUSUBEL; NOVAK; HANESIAN, 1980; ROSA, 2007). Portanto, para que o aprendizado sobre qualidade de arquitetura de software se concretize de forma efetiva, o roteiro proposto tem como pré-requisitos o ensino de tópicos fundamentais da área de Engenharia de Software, como por exemplo: modelagem de negócios, orientação a objetos e o ciclo de vida de desenvolvimento de software, além de conhecimentos de programação. Esses tópicos fazem parte tanto do currículo do curso de Ciências da Computação, como do curso de Engenharia de Computação propostos pela The Joint Task Force

on Computing Curricula e IEEE Computer Society - Association for Computing Machinery (ACM/IEEE-CS JOINT TASK FORCE ON COMPUTING CURRICULA,

2004, 2013).

A Tabela 4 e Tabela 5 listam os pré-requisitos do roteiro proposto nas disciplinas do curso de Engenharia de Computação e Ciência da Computação respectivamente, propostos pela The Joint Task Force on Computing Curricula e IEEE

Computer Society - Association for Computing Machinery (ACM/IEEE-CS JOINT

TASK FORCE ON COMPUTING CURRICULA, 2004, 2013). Essas telas contém os tópicos que foram sufixados com o símbolo [P] na Tabela 2 e na Tabela 3:

Tabela 4 - Tópicos das disciplinas do curso de Engenharia de Computação considerados requisitos pelo roteiro proposto

Disciplina do Curso de Engenharia de

Computação relacionados à arquitetura de software e à qualidade Tópicos das disciplinas que abordam conceitos de arquitetura de software

Fundamentos de Programação Análise e projeto orientados a objeto [P] Tratamento de Exceções [P] Engenharia de Sistemas de Computação Testes de sistema e diagnostico de falhas [P]

Tipos de manutenção: corretiva e evolutiva [P] Engenharia de Software Ciclo de vida de um sistema de software [P] Verificação e validação [P] Fonte: Autor

Tabela 5 - Tópicos das disciplinas do curso de Ciência da Computação considerados requisitos pelo roteiro proposto

Disciplina do Curso de Ciência da

Computação relacionados à arquitetura de software e à qualidade Tópicos das disciplinas que abordam conceitos de arquitetura de software

Linguagens de Programação

Análise e projeto orientados a objeto [P] Tratamento de exceções [P]

Fundamentos de Desenvolvimento de

Software Fundamentos de testes e geração de testes [P]

Engenharia de Software

Introdução a modelos de processos de software (cascata, incremental e ágil) [P]

Ferramentas para testes estáticos e dinâmicos [P] Verificação e validação [P]

Fonte: Autor

O propósito da modelagem de negócio (domínio do problema) é auxiliar no entendimento, na análise, na melhoria, na substituição ou na automatização de um processo de negócio, além de prover um mecanismo de abstração que enfatize as características relevantes do problema em questão. O conceito de modelagem de negócio é crucial para que o aluno compreenda o contexto do problema que deverá ser parcial ou totalmente automatizado por meio de um sistema de software.

O entendimento de conceitos de modelagem orientada a objetos, os quais englobam princípios de abstração, encapsulamento, hierarquia e tipos, descritos em BOOCH et al. (2009), também foi considerado um requisito para o ensino de qualidade de arquitetura de software, pois os conceitos de qualidade de arquitetura de software

são ministrados no roteiro proposto utilizando-se sistemas orientados a objetos. Os seguintes diagramas da UML foram utilizados durante a aplicação do roteiro proposto:

Diagrama de classes: modela a visão estática (estrutural) do sistema, por

meio de um conjunto de classes, interfaces e seus relacionamentos;

Diagrama de sequência: modela a visão dinâmica (comportamental) do

sistema, enfatizando o aspecto temporal na troca de mensagens entre objetos por meio de cenários de utilização do sistema;

Diagrama de componentes: representa a organização e as dependências

entre um conjunto de componentes, endereçando a visão de implementação estática do sistema;

Diagrama de Implantação: visão estrutural de um conjunto de nós (elementos

de infraestrutura) e de seus relacionamentos.

O ensino do ciclo de desenvolvimento de software auxilia o aprendizado de arquitetura de software na medida em que esclarece ao aluno que a atividade de desenvolvimento de software engloba outras tarefas além da codificação. Para isso, é necessário enfatizar a importância do ciclo de desenvolvimento de software, que abrange um conjunto de atividades para transformar os requisitos do usuário em um sistema de software, composto pelas seguintes fases (BOOCH; RUMBAUGH; JACOBSON, 2005):

 Engenharia de Sistema: modelagem do processo de negócio, atividade essencial para o entendimento do domínio do problema, independentemente de idiossincrasias tecnológicas;

 Análise de Requisitos: modelagem orientada a objetos do sistema utilizando- se os diagramas da UML, provendo um entendimento detalhado dos requisitos;  Projeto: etapa na qual ocorre o dimensionamento do sistema, ou seja,

especificações técnicas de hardware e software, componentes, arquiteturas, considerando-se os requisitos funcionais e não funcionais do sistema computacional em construção;

 Codificação: implementação dos subsistemas que compõem o sistema de software, suas dependências, interfaces, componentes e arquiteturas;

 Validação: planejamento e aplicação dos testes, incluindo testes de integração e de sistema. Antes da entrega do sistema, é necessária a homologação por parte do cliente.

A Figura 13 descreve o ciclo de desenvolvimento descrito, destacando os artefatos produzidos em cada fase:

Figura 13 - Ciclo de Desenvolvimento de software

Fonte: Adaptado de Booch; Rumbaugh e Jacobson (2005)

Considerando-se as mudanças que ocorrem durante o processo de desenvolvimento de um sistema de software (mudanças nos requisitos, tecnológicas e mercadológicas), o ciclo de desenvolvimento representado na Figura 13 deve ser aplicado utilizando-se uma abordagem iterativa e incremental, o que potencialmente

traz os seguintes benefícios (BOOCH; RUMBAUGH; JACOBSON, 2005; KRUCHTEN, 2003):

 Identificação dos riscos e criticidades nas fases iniciais do projeto;

 Estabelecimento de uma arquitetura para direcionar o desenvolvimento do sistema;

 Estabelecimento de planos de contingência para melhor lidar com requisitos e mudanças inevitáveis;

 Construção incremental do sistema, o que diminui a probabilidade de mudanças radicais em estágios tardios do projeto, quando tais mudanças seriam muito caras;

 Possibilidade de validações periódicas por parte do usuário, aumentando as chances da construção do “sistema correto”.

3.5 CONCLUSÕES DO CAPÍTULO

Neste capítulo, foram apresentados os aspectos pedagógicos que orientaram na concepção da proposta do roteiro de ensino. Os aspectos de engenharia e de pedagogia, estudados nos Capítulos 2 e 3, respectivamente, constituem a base teórica para a elaboração do roteiro de ensino proposto neste trabalho, apresentado no próximo capítulo.

4. PROPOSTA DE UM ROTEIRO PARA O ENSINO DE QUALIDADE DE