Webmail Biblioteca Contato

voltar

Pesquisas docentes - Linha: Modelagem de Sistemas de Software

1. Modelagem de Software para Aplicações Interativas

Ítalo Santiago Vega
Fernando Antonio de Castro Giorno

O projeto tem o propósito de investigar, estudar e propor métodos para a modelagem de sistemas de software (incluindo processos, ferramentas, técnicas, princípios e linguagens) e como podem ser aplicados em ambientes de aprendizagem para o desenvolvimento de aplicações interativas de software. Especial atenção será dada ao caso de aplicações que resultam da concepção de jogos.

O escopo essencial dos trabalhos da pesquisa inclui os processos de desenvolvimento e as arquiteturas de software interativo. Em função disso, as atividades a pesquisa estão norteadas pelos seguintes objetivos de longo prazo: constante revisão bibliográfica a respeito de processos e de arquiteturas; investigação e estudo de ferramentas, técnicas, princípios e linguagens que influenciam na execução dos processos e na concepção das arquiteturas de software; proposição de métodos de desenho (design) para o refinamento ou concepção de novos modelos de processos e de estilos arquiteturais e utilização de técnicas de concepção de jogos em ambientes de aprendizagem voltados ao desenvolvimento de software interativo.

2. Desenvolvimento de software para um mundo cada vez mais móvel

Alexandre Campos Silva
Demi Getschko

A tendência de crescimento de acesso à Internet por dispositivos móveis como celulares, smartphones e tablets, conectados a nova arquitetura de Cloud Computing, trazem novos desafios para a modelagem e o desenvolvimento de software e também na integração de aplicações Web 2.0 com redes sociais. Cada vez mais os usuários postam conteúdo e usam aplicativos via algum dispositivo móvel.

O desenvolvimento de novas aplicações e funcionalidades leva em conta a popularização de GPS com capacidades de geo-localização, capacidade de inteligência analítica e inteligência predictiva. As pessoas e as empresas cada vez mais geram informações digitais em uma quantidade infinitamente maior do que as dos sistemas de informação estiveram habituados a processar. Lidar com este volume excessivo de informações não estruturadas espalhadas pela Internet que devem ser acessadas, processadas e analisadas por novos sistemas de software, traz também novos desafios de modelagem para os sistemas de gerenciamento de banco de dados relacionais, muito eficientes para o armazenamento de dados estruturados tradicionais, mas com dificuldades em lidar com informações não-estruturadas. Analisar estas informações faz parte do escopo pesquisa baseado em Thomas Davenport para uma melhor tomada de decisão em determinadas situações.

O desenvolvimento de interfaces em telas cada vez menores e intuitivas em um espaço menor que a tela de PC traz outro novo desafio de pesquisa. Além da usabilidade e interatividade, estas novas aplicações trazem desafios de modelagem para lidar com um maior volume de informações assim como a integração com APIs de serviços online disponibilizados por serviços na Internet como a Amazon, o iTunes, iCloud, o Busca Pé, o Google, o Google+, o Facebook, o Orkut, o Foursquare, o Addthis e o YouTube, entre outros. Analisaremos novas tendências de usabilidade das interfaces criadas pela apple e baseado nas dez heurísticas de usabilidade de Jacob Nielsen.

Os projetos a serem pesquisados visam analisar e propor novos padrões de desenvolvimento de sistemas que levem em conta a usabilidade em ambientes móveis, somados a capacidade de processamento de uma maior volume de informações, integrados com aplicações com funcionalidades cada vez mais sociais/colaborativas e com a capacidade analítica de extrair informações para uma melhor tomada de decisão por parte dos usuários.

 

3. A modelagem de Software para investigar propriedades funcionais (algoritmos) e organizacionais (arquiteturas) de uma aplicação

Daniel Couto Gatti

A revolução informacional surgida no século passado vem causando uma mudança radical na comunicação, nos processos produtivos, no entretenimento e no convívio entre as pessoas. A complexidade no desenvolvimento de sistemas tecnológicos digitais tem aumentando de forma exponencial. A produção de software precisa acompanhar a demanda no crescimento pela necessidade de novos aplicativos.

Os aplicativos já participam de praticamente todas as atividades humanas, com maior ou menor intensidade. Um aplicativo pode ser usado como uma ferramenta para auxiliar o homem na realização de uma tarefa, ou pode automatizar uma tarefa antes realizada pelo homem, ou ainda controlar o processo humano na realização de um conjunto de tarefas. Nesse sentido, os aplicativos são sobrecarregados de requisitos dos usuários. E em muitas ocasiões o desenvolvimento destes aplicativos não segue um processo de desenvolvimento de software, dificultando o entendimento das necessidades dos usuários e consequentemente a produção de um aplicativo de baixa qualidade, ignorando aspectos de engenharia de software tais como: mutabilidade dos requisitos, complexidade do código etc...

Os processos de desenvolvimento de software precisam incorporar metodologias, princípios, ferramentas e notações para atender à demanda na produção de aplicativos de forma sistemática. Tom de Marco, em artigo recente, destacou que “você não controla o que não consegue medir”, indicando que os projetos sempre têm níveis diferentes de controle, o que impossibilita o desenvolvimento sistemático, abrindo espaço para criar processos adaptativos conforme o projeto.

Ao utilizar um processo tradicional de desenvolvimento de software, deve-se observar que ele envolva os seguintes aspectos: a análise dos requisitos; o design do software; a implementação do código; e o teste. Desses aspectos são identificadas as questões que envolvem as propriedades funcionais e organizacionais do aplicativo, sendo os requisitos ainda a grande causa dos problemas de manutenção dos sistemas. E a organização do código, o fator dificultoso na manutenção, pois ainda são necessárias muitas horas para entendimento do código antes da alteração necessária.

A modelagem de software lida diretamente com a elaboração dos artefatos intermediários a partir dos quais o software será implementado. O desenvolvimento da arquitetura do software permite que as decisões tomadas sejam documentas e estejam adequadas quanto aos princípios de modelagem. O problema de organização das instruções se sobrepõe ao problema de funcionamento (algoritmo) apenas quando a quantidade de instruções encontra-se acima das 5000 instruções.
Os projetos a serem desenvolvidos nesta pesquisa visam analisar como ocorre a invenção de um algoritmo e definir novos métodos e técnicas para a modelagem de software distintos daqueles já contemplados pelas metodologias tradicionais.