59
UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE INFORMÁTICA INF655 – Computação Móvel Controla4Mobile – Ferramenta de apoio gerencial ao processo de desenvolvimento de software para dispositivos móveis Alunos: Clayton Vieira Fraga Filho Evaldo de Oliveira da Silva Geraldo Afonso da Cruz Ronney M. de Castro Professor: Mauro Nacif Viçosa – MG Fevereiro de 2007

Controla4Mobile – Ferramenta de apoio gerencial ao ...nacif/cmovel/files/2006/03/relat.pdf · processo de desenvolvimento de software em pequenas empresas não é algo comum, pois

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DE VIÇOSA

CENTRO DE CIÊNCIAS EXATAS

DEPARTAMENTO DE INFORMÁTICA

INF655 – Computação Móvel

Controla4Mobile – Ferramenta de apoio gerencial ao processo

de desenvolvimento de software para dispositivos móveis

Alunos: Clayton Vieira Fraga Filho

Evaldo de Oliveira da Silva

Geraldo Afonso da Cruz

Ronney M. de Castro

Professor: Mauro Nacif

Viçosa – MG

Fevereiro de 2007

Sumário

1. Introdução e Motivação ................................................................................................4 2. Tecnologias usadas......................................................................................................7

2.1. Análise e detalhamento das Tecnologias Usadas.................................................8 2.2. Características dos Dispositivos Móveis para o desenvolvimento de Aplicações Web 8 2.3. Capacidades .........................................................................................................9 2.4. A importância da Conectividade............................................................................9 2.5. Independência de Dispositivo................................................................................9 2.6. Microsoft .Net ......................................................................................................10 2.7. Microsoft Smart Device Extension (MSDE) .........................................................10 2.8. Microsoft Asp.Net Mobile Controls ......................................................................10 2.9. Descrição do .NET Framework ...........................................................................11 2.10. Projetando Aplicações Web Multiplataforma usando .NET..............................12 2.11. A linguagem de programação ASP.NET Mobile Web Application ...................13 2.12. Desenvolvimento de Controles em Asp.NET e APIs .......................................14 2.13. Asp.Net Architecture........................................................................................15 2.14. Soluções existentes para o desenvolvimento de aplicativos Web em dispositivos móveis ........................................................................................................15 2.15. Banco de dados Access ..................................................................................16 2.16. Tecnologia Wi-Fi ..............................................................................................16 2.17. .NET Compact Framework ..............................................................................17 2.18. SQL Server CE ................................................................................................18

3. Descrição do funcionamento do Controla4Mobile ......................................................19 3.1. Exemplos de utilização em Emuladores..............................................................26 3.2. Consulta Estados dos Requisitos - Motorola SVLR L7.......................................27 3.3. Tela Principal – NOKIA 3650...............................................................................27 3.4. Seleção de Projetos - Nokia 3250 .......................................................................28 3.5. Requisitos Alterados - Siemens SX1...................................................................28 3.6. Alterações Propostas – Nokia N70......................................................................29 3.7. Seleção do Estado do Caso de Uso – XDA III ....................................................29 3.8. Consulta de Detalhes do Projeto – SDA..............................................................30 3.9. Consulta do Requisito – SHARP GX30...............................................................30 3.10. Listagem de Requisitos – XDA III ....................................................................31

4. Documentação do sistema .........................................................................................32 4.1. Objetivos deste documento .................................................................................32 4.2. Metas do Sistema................................................................................................32 4.3. Expectativas dos usuários...................................................................................32 4.4. Limitações ...........................................................................................................33 4.5. Equipe de desenvolvimento ................................................................................33

5. Requisitos...................................................................................................................33 5.1. Requisitos Funcionais .........................................................................................33 5.1.1. Informações Cadastrais dos Projetos ..............................................................33 5.1.2. Lista de Requisitos...........................................................................................34 5.1.3. Lista de Casos de Usos...................................................................................34 5.1.4. Lista de Casos de Testes ................................................................................34 5.1.5. Os dez últimos requisitos alterados .................................................................34 5.1.6. Rastreabilidade................................................................................................35 5.1.7. Estados dos requisitos.....................................................................................35

5.1.8. Número de alterações propostas por stakeholder ...........................................35 5.1.9. Consulta dos Casos de Usos por Estado ........................................................36 5.2. Requisitos Não-Funcionais..................................................................................36 5.2.1. A disponibilidade do Browser no Dispositivo Móvel.........................................36 5.2.2. Acesso aos dados ...........................................................................................36 5.2.3. Consulta dos Casos de Usos por Estado ........................................................36

6. Casos de Uso.............................................................................................................37 6.1. Diagrama de Caso de Uso ..................................................................................37 6.2. Listar Requisitos..................................................................................................38 6.3. Consultar Estados do Caso de Uso ....................................................................39 6.4. Consultar Estados dos Requisitos.......................................................................40 6.5. Consultar Requisitos Alterados ...........................................................................41 6.6. Consultar Alterações Propostas ..........................................................................42 6.7. Selecionar Projeto ...............................................................................................43

7. Diagramas de Seqüência ...........................................................................................44 7.1. Consulta dos Estados dos Requisitos .................................................................44 7.2. Consulta Alterações Propostas ...........................................................................45 7.3. Consulta Casos de usos......................................................................................46 7.4. Consultar Requisitos Alterados ...........................................................................46 7.5. Consultar Requisitos ...........................................................................................47 7.6. Lista Requisitos ...................................................................................................47 7.7. Selecionar Projeto ...............................................................................................48

8. Modelo de Classes .....................................................................................................49 8.1. Diagrama de Classes de Trabalho ......................................................................49 8.2. Diagrama de Classes - Interfaces .......................................................................49 8.3. Diagrama dos Objetos de Negócios....................................................................50 8.4. Diagrama da Camada de Negócios e Interfaces.................................................50 8.5. Diagrama dos Objetos de acesso ao banco de dados ........................................51

9. Projeto da camada de Interface com o Usuário (GUI)................................................52 9.1. Diagrama de Estados de Navegação..................................................................52

10. Camada de Persistência.........................................................................................53 10.1. Modelo de Entidade-Relacionamento do Banco de Dados..............................53 10.2. Esquema Físico do Banco de Dados...............................................................53

11. Protótipo para Palm ................................................................................................54

1. Introdução e Motivação

Com a globalização, atualmente os mercados têm se tornado mais competitivos, e a

demanda por produtos e serviços de melhor qualidade surgem como fatores decisivos no

momento da escolha do parceiro para o crescimento dos negócios.

Na área de desenvolvimento de software não é diferente. O cliente, cada vez mais

exigente, demanda por um sistema seguro, que atenda suas necessidades e que seja

desenvolvido no menor tempo possível.

Geralmente a empresas têm buscado não somente colocar no mercado produtos

que atendam as demandas dos seus clientes, mas também a otimização da sua

produção. Essa otimização se relaciona com as técnicas e o modo de produção referente

às empresas produtoras de software.

Na indústria em geral, a qualidade de um produto depende diretamente dos

processos, materiais e técnicas utilizadas. A realidade do setor de desenvolvimento de

software é semelhante, pois este também precisa de processos definidos para o

desenvolvimento de seus produtos, como também a utilização de ferramentas adequadas

que garanta a qualidade do produto e a satisfação do cliente [KAN 2002].

Segundo [PRESS 2006], o American Heritage Dictionary define qualidade como uma

característica ou atributo de alguma coisa. Como atributo de um item, a qualidade se

refere a características mensuráveis – coisas que nós podemos comparar com padrões

conhecidos tais como comprimento, cor, propriedades elétricas e maleabilidade.

A qualidade do projeto de software refere-se a características que os projetistas

especificam para certo item. Além disso, a qualidade do produto final também pode ser

medida de acordo com as especificações seguidas durante a fabricação, atendendo os

requisitos levantados e atingindo as expectativas do cliente [PRESS 2006].

Porém, para se obter qualidade nos projetos de software é necessário que se tenha

um processo bem definido para seu desenvolvimento. Pode-se considerar como

vantagem a adoção de processos e metodologias para o desenvolvimento de software.

Como desvantagem o tempo gasto para gerenciar e documentar todo o projeto de acordo

com o processo. Mas, um software bem documentado é a garantia de que as

manutenções serão feitas com menos impacto, além de permitir a localização dos

requisitos e suas dependências, possibilitando o gerenciamento das mudanças e

evoluções no funcionamento da aplicação.

5

Grandes empresas produtoras de software têm seus processos definidos e contratos

de níveis de serviço estabelecidos com os seus clientes, podendo inclusive mensurar a

satisfação e qualidade do produto entregue. No entanto, a implantação ou criação de um

processo de desenvolvimento de software em pequenas empresas não é algo comum,

pois geralmente o foco está no desenvolvimento para o atendimento imediato do

problema do cliente. Sendo assim, o gerenciamento dos requisitos e das mudanças ao

longo do projeto torna-se um processo bastante árduo, uma vez que, não há

documentação formal e padronizada das necessidades do cliente, quadro esse agravado

muitas vezes pela grande rotatividade de mão-de-obra (turnover) [FRAGA FILHO e REIS

2005].

A falta de registro formal e padronizado de requisitos afeta o processo de

manutenção adaptativa ou evolutiva do software, dificultando a identificação dos impactos

da mudança de algum requisito sobre o restante do sistema. O registro e o gerenciamento

das solicitações do cliente e as suas posteriores mudanças ao longo do projeto exigem,

da empresa desenvolvedora de software, organização e padronização, para que o

produto final apresente qualidade, proporcionando uma fácil manutenção e continuidade.

Desta forma, torna-se viável a criação de ferramentas para gerenciamento e/ou

registro de requisitos de software que possibilitem flexibilidade aos desenvolvedores de

software. Este trabalho apresenta o Controla4Mobile, como uma solução para o registros

e consultas de requisitos de software. Esta aplicação se baseia nos princípios da

computação móvel, oferecendo ao engenheiro de software, responsável pelo

levantamento de requisitos, desenvolver suas atividades de forma flexível.

O Controla4Mobile é um módulo do Controla (Figura 1) , que é uma ferramenta para

gestão de requisitos disponível gratuitamente na Internet [FRAGA FILHO e REIS 2005].

Atualmente, o Controla possui mais de 12000 downloads, e aproximadamente 1500

usuários ativos (universidades, professores e alunos). Através da comunicação do

dispositivo móvel (Palmtop’s, PDA’s, celulares, etc.), o engenheiro de software pode

utilizar o Controla4Mobile para se comunicar à base de dados do Controla, realizando

consultas no projeto em desenvolvimento. Isto permite acelerar o processo de mudança

ou desenvolvimento do software de forma on-line, uma vez que o engenheiro de software

pode estar distante da equipe e do gerente de desenvolvimento.

6

Figura 1 - Tela principal do Controla

2. Tecnologias usadas

Para o desenvolvimento do Controla4Mobile foram usadas tecnologias de

desenvolvimento de software da Microsoft, através do .NET Framework, ASP.NET e o

banco de dados Microsoft Access. Para a execução do Controla4Mobile, é necessário a

existência de um browser no dispositivo móvel.

Todas as tecnologias usadas para a construção Controla4Mobile são muito

difundidas, devido à facilidade de encontrar tutoriais, livros e grupos de discussão. Outro

fator importante na escolha dessas tecnologias é a curva de aprendizagem. O

aprendizado em outras tecnologias como Java e Oracle, por exemplo, é mais difícil do

que as tecnologias usadas pela Microsoft. Além disso, o uso de tecnologias (arquitetura,

linguagem de programação e banco de dados) de uma mesmo fabricante facilita a

integração e a implantação do sistema, sem a necessidade de plug-ins entre outros

recursos de instalação e implementação.

O Controla4Mobile foi desenvolvido em 3 camadas:

• Camada de Apresentação

• Camada de Negócios

• Camada de Banco de dados ou persistência

O desenvolvimento em camadas facilita a reutilização e manutenção do código do

sistema, Além disso, a documentação fica mais fácil de entender quando ocorrem

modificações.

Devido à portabilidade dos controles desenvolvimento através da arquitetura

oferecida pelo .NET Framework, o Controla4Mobile pode ser executado na maioria do

dispositivos móveis, como PDAs, celulares e Palmtops.

O Controla4Mobile é portável devido à sua plataforma de desenvolvimento, a qual é

baseada na linguagem ASP.NET, que oferece recursos para o desenvolvimento para

ambiente Web para dispositivos móveis.

As próximas seções se baseiam na descrição das tecnologias e metodologias

usadas para o desenvolvimento do Controla4Mobile, como forma de embasamento

teórico para este trabalho. O referencial teórico para a definição das tecnologias está

fundamentado em [MAZHAR 2005], o qual enfatiza o uso do .NET Framework como

arquitetura para o desenvolvimento de aplicações web voltadas a dispositivos móveis.

8

2.1. Análise e detalhamento das Tecnologias Usadas

Muitos dos dispositivos foram inventados de acordo com nossas necessidades de

forma muito rápida. Por exemplo, os pagers foram inventados para facilitar a entrega

rápida de mensagens personalizadas, telefones móveis foram desenvolvidos rompendo

as barreiras geográficas, laptops ganharam mais mobilidade e absorveram muitas

características que só eram encontradas nos computadores pessoais, como por exemplo,

a recursos de multimídia, capacidade de memória e mais velocidade.

Os tópicos a se seguir fazem uma análise das tecnologias de software e hardware

existentes para o desenvolvimento de aplicações para dispositivos móveis.

2.2. Características dos Dispositivos Móveis para o desenvolvimento

de Aplicações Web

Cada dispositivo requer uma plataforma particular, uma arquitetura que permita

trabalhar de forma otimizada. Um PC ou computador de mesa pode desempenhar, em

seu processamento, várias tarefas dependendo da arquitetura do software. Um telefone

móvel pode receber chamadas em qualquer lugar somente por causa da infra-estrutura de

rede sem fio que o cerca, e um receptor do GPS pode informar o ponto de origem

somente de acordo com a posição dos satélites. A escolha por um desses equipamentos

está relacionada à necessidade profissional ou pessoal de cada indivíduo. Seria mais

simples se existisse somente um dispositivo com todas essas funcionalidades. Devido ao

número grande de dispositivos existentes, muitas plataformas e as arquiteturas devem ser

tratadas e codificadas dentro destes equipamentos. Há muitas qualidades e um

dispositivo que o difere de outro. As especificações diferem em relação à velocidade da

rede (largura de faixa), nos tamanhos de tela, na definição para gráficos, nas

potencialidades de entrada do dispositivo, na memória e no poder processamento. Não há

nenhuma classificação universal destes dispositivos. Mesmo assim podem ser divididos

em duas categorias principais:

• A classificação homogênea de um dispositivo, tais como o tamanho de tela,

capacidade da rede e assim por diante.

• A classificação híbrida , que pode conter propriedades múltiplas.

9

2.3. Capacidades

Abaixo segue uma comparação sobre as principais classificações para dispositivos

móveis de acordo com a capacidade de processamento, comunicação e memória,

discutindo as potencialidades entre dispositivos móveis e estáticos (Figura 2).

Figura 2. Discussão das Potencialidades dos Disposi tivos Móveis. Fonte : [MAZHAR 2005]

2.4. A importância da Conectividade

A principal proposta da Internet é aumentar a acessibilidade de aplicações através

de vários múltiplos em todo mundo. Cada fabricante de software e de hardware para

dispositivos móveis terá que customizar seus produtos a fim de atender melhor o seu

cliente, oferecendo flexibilidade no acesso às informações através da Internet. Esta

evolução está relacionada à necessidade da conectividade, seja qual for a localização do

indivíduo, tornando mais flexível e comum o uso da Internet através de dispositivos

móveis.

2.5. Independência de Dispositivo

A solução ideal ao problema da acessibilidade seria conseguir a independência do

dispositivo, ou seja, permitir o acesso à Internet através de qualquer dispositivo e em

qualquer lugar.

Há várias maneiras de se conseguir esta independência de dispositivo. Alguma delas

são:

• Usando tradutores: Um tradutor pode ser usado converter o código e os dados ao

formato específico compreensível pelo dispositivo. As passagens são usadas para a

tradução de uma língua do markup a outra tal como a passagem de WAP que é usada

traduzir o pedido de WAP do dispositivo móvel no pedido do HTTP e a resposta do HTTP

do Internet à resposta de WAP para o dispositivo móvel.

10

• Usando o dispositivo com o conteúdo específico: Por exemplo, um mesmo Web site

é escrito no HTML e em WML para adaptar também as necessidades de usuários de

ambientes locais - Desktop e de usuários móveis. Tecnologias de XML tais como XSL,

XSLT, SVG, e outros são usados executar filtros através do dispositivo.

2.6. Microsoft .Net

Esta parte do documento enfatiza o uso das tecnologias da Microsoft pelo fato, de

suportar aplicações independente do dispositivo através de diversas plataformas, como

segue abaixo:

− Microsoft Smart Device Extension (MSDE)

− Microsoft Asp.Net Mobile Controls

2.7. Microsoft Smart Device Extension (MSDE)

Microsoft SDE é uma resposta ao J2ME produzido pela Sun MicroSystems. Esta

plataforma incorpora um conjunto de APIs (Application Program Interfaces) essenciais

para o desenvolvimento de aplicações para diversos dispositivos móveis. O conteúdo de

uma aplicação desenvolvida baseada em MSDE é executado pela Linguagem de

Execução (CLR - Common Language Runtime). A CLR é uma máquina virtual (VM) ou a

camada virtual que é instalada no dispositivo do cliente. O código da aplicação é instalado

ou baixado para o dispositivo. A diferença principal entre MSDE e J2ME é que MSDE

incorpora melhores recursos para o desenvolvimento de aplicações para Internet.

2.8. Microsoft Asp.Net Mobile Controls

Os principais controles disponibilizados pelo .NET Framework 2.0 são apresentados

na tabela 1 a seguir.

Controles Descrição

Command Serve para chamar outros eventos, seja através de

botão ou de um link.

Form Utilizado para comportar outros objetos, como uma

figura, texto, lista, tabela, gráfico, entre outros

Label, TextBox, TextView Utilizado para apresentar informações textuais

11

Image Utilizado para apresentar imagens, de preferência

JPG, pois ocupa menos espaço no dispositivo

List, Combobox, ListBox Utilizado para exibir uma lista de dispositivos

PictureView Utilizado para selecionar outros eventos, são

ícones.

Tabela 1- Principais Controles do .NET Framework

2.9. Descrição do .NET Framework

A plataforma de desenvolvimento usada para a construção do Controla4Mobile foi o

.NET Framework.

O .NET Framework é um ambiente para construção, implantação e execução de

WebServices e outras aplicações. Consiste de três partes principais: a Linguagem de

Execução, a Arquitetura de Classes e o ASP.NET.

O .NET Framework foi criado pela Microsoft. É uma plataforma de desenvolvimento

que permite o desenvolvimento rápido das aplicações, sendo uma plataforma

independente e transparente para a equipe de desenvolvimento. O .NET é uma iniciativa

de estratégia da Microsoft para servir de desenvolvimento de aplicações através da

Internet ou desktop.

De acordo com a Microsoft, o .NET inclui muitas tecnologias que são projetadas para

facilitar o desenvolvimento rápido de aplicações voltadas para Internet e Intranet.

Muitos aspectos usados para o desenvolvimento em .NET são os mesmos usados

em muitas outras linguagens de programação. Porém, a Microsoft desenvolveu o MSIL

(Micrsoft Intermediate Language), que funciona como uma linguagem uma linguagem

intermediaria gerada no processo de compilação do código fonte. Desta maneira, ao final

da criação dos programas, é possível ter um código intermediário e dependente do

runtime do Framework ao invés dos executáveis "independentes", até então gerado pelos

compiladores.

O .NET Framework também fornece uma biblioteca de classes, a qual é organizada

dentro de uma simples árvore hierárquica contendo os namespaces. Na raíz o

namespace System, contém objetos que incluem tipos, como também classes e

interfaces, que podem ser usados de alguma linguagem suportada pelo Framework.

Objetos System estão contidos em um arquivo chamado Mscorlib.dll, e são usados

por todas as aplicações construídas na plataforma. O arquitetura de classes do .NET

Framework também inclui namespaces de classes abstratas e classes derivadas de

12

implementações de classes, incluindo classes usadas para leitura de arquivos, troca de

mensagens e segurança de acesso.

Bibliotecas de classes são organizadas dentro da hierarquia de namespaces. Os

namespaces são armazenados em arquivos executáveis e portáveis (PE – Portable

Executable). Tipicamente são arquivos com extensão DLL’s e arquivos EXE.

Um ou mais arquivos PE são combinados para criar uma aplicação, a qual é uma

unidade física que pode ser implantada, com numeração de versão, podendo ser

reutilizada em outras aplicações, facilitando a construção de aplicações em camadas com

componentes reutilizáveis.

Em 2005, a Microsoft lançou a versão 2 do .NET Framework. Com esta versão veio

inovações que permitem o desenvolvimento de aplicações para dispositivos móveis, a

qual recebeu o nome de .NET Compact Framework 2.0.

Com a introdução do .NET Compact Framework, a Microsoft trouxe todas as

vantagens do desenvolvimento de código gerenciado para os aplicativos móveis. A versão

2.0 do Microsoft® .NET Compact Framework torna o desenvolvimento mais fácil com a

introdução de novas ferramentas (como o Device Emulator Manager) e uma ampliação de

sua cobertura. Em especial, a versão 2.0 adiciona mais classes e métodos para trabalhar

com inclusão de gráficos, entre outros aperfeiçoamentos, texto inclinado, canetas

personalizadas, manipulação de imagens e interação com uma câmara interna no

dispositivo.

2.10. Projetando Aplicações Web Multiplataforma usa ndo .NET

A maioria dos aparelhos móveis no mundo atualmente, é classificada de acordo com

uma potencialidade específica de um dispositivo, como por exemplo, o tipo da rede

suportada pelo dispositivo. De acordo com a propriedade de rede existem as seguintes

classificações:

• Os dispositivos que se comunicam baseados em fio, que necessitam de uma rede

conectada através dos cabos físicos tais como os computadores de mesa, os leitores de

código da barra e a televisão digital (a cabo).

• Os dispositivos móveis, chamados também dispositivos de rede sem fio, são esses

que podem mudar sua posição e são ainda localizados pelo fornecedor de serviço da

rede. Alguns exemplos destes dispositivos são telefones móveis, PDA, pagers, receptores

do GPS e Laptops.

13

A abordagem de classificação híbirda é baseada em propriedades múltiplas dos

dispositivos móveis. De acordo com esta abordagem os dispositivos podem ser

classificados em três classes principais:

• Dispositivos do desempenho elevado, tais como os computadores pessoais e os

laptops com tamanhos de tela grande, com o poder de processamento e capacidade de

conectividade bem elevados.

• Dispositivos de desempenho médio, tais como PDA e os telefones móveis que

suportam tamanhos de tela médios e com pequena resolução de tela.

Dispositivos de baixo desempenho, tais como pagers, receptores do GPS e outros

telefones móveis com as mesmas características.

2.11. A linguagem de programação ASP.NET Mobile Web Application

O desenvolvimento de páginas ASP.NET para dispositivos móveis não difere da

forma de desenvolvimento usado para as páginas de navegadores usados em

computadores desktop. Para permitir a criação de aplicativos para dispositivos móveis, o

ASP.NET fornece um namespace chamado System.Web.Mobile, usado especificamente

para desenvolvimento de aplicativos para dispositivos móveis acessados via web.

É possível criar uma página web a partir da classe base MobilePage e adicionar

controles a partir do namespace System.Web.Mobile. Este namespace define um

conjunto de controles de servidor da Web e adaptadores que são especialmente úteis

para criar aplicativos que precisam estar disponíveis para muitos dispositivos móveis

diferentes, tais como telefones celulares.

O ASP.NET 2.0 também fornece uma arquitetura adaptável de controle que permite

que adaptadores de dispositivo personalizados sejam criados para os controles do

servidor web ASP.NET 2.0. Os adaptadores possibilitam o processamento personalizado

para um controle com base no navegador solicitante. Com a arquitetura adaptável, pode-

se usar páginas ASP.NET que herdam da classe base MobilePage (em vez de páginas

escritas especificamente para dispositivos móveis) e criar adaptadores personalizados

para controles de servidor web do ASP.NET para processar a saída específica para os

dispositivos que acessarem o aplicativo.

14

Em ambos os casos, o desenvolvimento segue o modelo controlado por evento .NET

padrão em que seu aplicativo responde às requisições de usuários, cliques de botão, e

assim por diante.

Embora o ASP.NET integre muitas tecnologias para permitir o desenvolvimento de

aplicativos móveis voltados para web, a intenção da arquitetura é que sejam criadas

somente páginas para dispositivos móveis, descartando a possibilidade de criá-las

também em ambientes desktop. O desenvolvedor pode criar adaptadores individuais para

ASP.NET, ou para controles móveis de servidor web, permitindo processar as páginas

para dois tipos de navegadores, tanto para dispositivo móvel, quanto para o ambiente

desktop.

Por exemplo, se o desenvolvedor decidir criar uma página web, incluindo um

cabeçalho de site, uma barra de navegação na parte superior da página, uma estrutura de

navegação secundária ao longo do lado da página, então a página será processada como

se estivesse sendo executada em um navegador desktop. Nesse caso, há geralmente

amplo espaço para processar todos os controles e ainda fornecer uma área com conteúdo

rolável. No entanto, esse layout em muitos navegadores de dispositivo móvel seria

impossível. Muitos dispositivos móveis possuem uma área menor da tela que monitores

desktop, então até a navegação se torna um processo em vários passos, no qual o

usuário deve clicar em vários controles para chegar ao conteúdo da página.

2.12. Desenvolvimento de Controles em Asp.NET e API s

As aplicações móveis desenvolvidas em Microsoft Asp.Net permitem ao

desenvolvedores estenderem suas aplicações aos múltiplos dispositivos e às plataformas

com menos esforço. Através de um conjunto de APIs, é possível construir componentes

de software independente do dispositivo onde funcionará a aplicação. Os componentes

são considerados controles, como por exemplo, caixa de texto, controle de tecla, controle

de hiperlink ou qualquer outro controle que possa ser desenvolvido para ser portável. Em

se tratando de desenvolvimento de software para Internet para o acesso através de

dispositivos móveis, a Microsoft disponibiliza as bibliotecas de construção de controles

através da linguagem Asp.NET. A seguir este documento descreve as características

desta linguagem para o desenvolvimento web para dispositivos móveis.

15

2.13. Asp.Net Architecture

Discutir a arquitetura do ASP.Net não é o foco deste trabalho, mas é importante

entender como esta linguagem permite o desenvolvimento de aplicações para Internet em

dispositivos móveis. A arquitetura da apresentação dos dados de Asp.Net é baseado do

padrão de projeto Model-View-Controller (MVC). Este padrão do projeto consiste em três

elementos essenciais:

− Model (Modelo), a aplicação funciona através de uma camada de negócios.

− View (Visão), para cada cliente pode ser customizado uma camada de interface.

− Controller (Controle), é a classe pela qual o modelo de visão manipula toda a

entrada e saída que ocorre entre a entrada e saída de informação produzida

durante o funcionamento da aplicação.

2.14. Soluções existentes para o desenvolvimento de aplicativos Web

em dispositivos móveis

Existem muitas soluções desenvolvidas em Asp.NET usando o padrão de projeto

MVC, onde o sistema é dividido em n-camadas. Este item do trabalho enfatiza o uso do

desenvolvimento de aplicativos móveis em camadas através do ASP.NET (Figura 3).

Figura 3. Desenvolvimento em Camadas. Fonte : [MAZH AR 2005]

A Figura 2 mostra um esquema onde o sistema está dividido em uma arquitetura de

3 camadas, em que nós temos a camada de apresentação, a camada de negócio e a

camada onde há a comunicação com a base de dados para a aplicação. A camada de

16

apresentação controla a eventos que o usuário executa, como por exemplo e entrada de

dados no formulário, para a camada de Controle da arquitetura MVC.

A camada de negócio encapsula as classes do modelo do negócio contendo

métodos que controlam as regras de negócios do sistema.

A camada de dados delega o pedido e a resposta entre classes do negócio e a base

de dados da organização.

2.15. Banco de dados Access

O Microsoft Access é um aplicativo para criação de banco de dados. Devido à sua

grande facilidade de uso e de integração com outros bancos de dados, o MS-Access foi

muito difundido.

Este aplicativo fornece várias formas de criação de banco de dados, além de

oferecer assistentes que permitem guiar os usuários na criação de tabelas, consultas,

formulários, relatórios, macros e módulos. É possível construir um banco de dados eficaz

na medida certa das necessidades da aplicação. Empresas que trabalham com vendas de

produtos, por exemplo, podem ter seu próprio sistema de controle de estoque e vendas,

utilizando unicamente o Access.

O Microsoft Access é um aplicativo, integrante do pacote Office, que gerencia

bancos de dados relacionais. Através dele é possível desenvolver aplicativos altamente

profissionais, para os mais diversos fins. Através da integração com diversas ferramentas

da Microsoft, o poder do Access se torna muito ampliado. Os aplicativos criados com o

Access podem ser usados facilmente até pelos usuários mais leigos, pois apresentam

interface gráfica e intuitiva, com menus, barras de ferramentas, formulários e uma ampla

gama de relatórios. Os bancos de dados gerados no Access podem ser acessados por

web-sites, através de linguagens voltadas para esse fim, como o ASP, o Dreamweaver e

outras, permitindo seu gerenciamento à distância.

2.16. Tecnologia Wi-Fi

O wi-fi1 ou também conhecida como WLAN, é uma tecnologia de conexão entre

redes sem fio, e que se utiliza da família de protocolos IEEE 802.11. Este padrão é muito

atraente, pois opera em faixas que não precisam de licença para instalação e/ou

operação, mas no Brasil, necessita de autorização da Anatel2.

1 Marca registrada da WECA – Wireless Ethernet Compatibility Alliance 2 Agência Nacional de Telecomunicações

17

Para ter acesso a este tipo de rede, é necessário estar no raio de ação do ponto de

acesso, chamado de hotspot, que é até 100 metros, e possuir um dispositivo móvel que

tenha uma placa para comunicar-se.

Algumas das limitações dos dispositivos que se utilizam da rede wireless é devido

a pequena banda de rede, o que acarreta retardo no carregamento dos dados e com isto

a performance é prejudicada. Mas isto está sendo resolvido com uma infinidade de

procotolos que estão sendo desenvolvidos para atender às necessidades destes

dispositivos móveis.

Devido às limitações para os dispositivos móveis (Palmtop’s, PDA’s, celulares,

etc...), e também da diversidade dos mesmos, os desenvolvedores são obrigados a

desenhar uma aplicação levando em consideração o tamanho da página web, imagens,

tamanho do texto, interação com o usuário, banco de dados, segurança, controle de

acesso, performance, entre outras características.

Para este trabalho, diversas destas características foram observadas, pois foi

possível trabalhar com vários dispositivos diferentes. Vários testes (de implementação)

em ferramentas de desenvolvimento e banco de dados puderam comprovar estas

limitações impostas, na maioria das vezes, pelo dispositivo.

2.17. .NET Compact Framework

O .NET Compact Framework (.NET CF) é um subset do .NET Framework.O

benefício é que os programadores tenham a mesma facilidade no desenvolvimento de

aplicações para dispositivos móveis utilizando a mesma IDE e qualquer uma das

linguagens que o Visual Studio .NET dispõe utilizando toda a tecnologia .NET Class

Library, entretanto não são todas as classes e métodos que se encontram no .NET

Framework que são suportadas dentro do .NET Compact Framework Class Library. A

Figura 4 demonstra a arquitetura .NET.

18

Figura 4. Componentes do .NET Compact Framework - em marron.

A plataforma permite que aplicações nativas Windows CE co-existam com

aplicações baseadas em .NET.O Aplication Domain Host ( aplicação nativa ) cria uma

instância da CLR para executar código gerenciado.Aplicações desenvolvidas com o SDE

executam no topo da CLR, utilizando o .NET Compact Framework Class Library

[ROMELLI 2002].`

2.18. SQL Server CE

O Microsoft® SQL Server™ 2000 Windows® CE Edition (SQL Server CE) é uma

versão especifica para a plataforma Windows CE-based, um banco de dados robusto,

veloz e confiável para SmartDevices, ele é um subset do SQL Server 2000, algumas

características não estão presentes na versão Server CE, para quem já usa o SQL Server

2000 o impacto será irrelevante. O .NET Framework fornece um Provider(Provedor) para

acesso ao SQL Server CE através do namespace System.Data.SqlServerCe. Você

poderá usar todo o poder do DDL(Data Definition Language) para criar um Banco de

Dados, alterar tabelas e fazer a definição de valores padrões, poderá usar a DML(Data

Manipulation Language) para inserir(insert), deletar(delete) e atualizar(update) os dados,

você terá todo o poder de um Banco de Dados Relacional, poderá usar criptografia de 128

Bits para senhas e arquivo. O SQL Server CE suporta Banco de Dados de até

2GB(GigaBytes) e Blobs de até 1GB(GigaByte) [JUNGLAUS 2004].

3. Descrição do funcionamento do Controla4Mobile

O Controla4Mobile é um módulo para consulta de informações gerenciais do projeto de desenvolvimento de software. Para exemplificar o funcionamento da aplicação, apresentamos na Figura 5 o diagrama de navegação.

cd Nav egação - Aplicativo

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

Principal

Proj eto

Initial

Detalhes do Projeto

Requisitos

Listagem de Requisitos Detalhes do Requisito

Rastreabilidade: Caso de UsoRastreabilidade: Caso de Teste

Últimos alterados

Estados dos requisitos Nro de Alterações propostas

Casos de Uso

Estados dos Casos de Uso

Figura 5 – Diagrama de navegação

O fluxo de funcionamento do Controla4Mobile é apresentado na Tabela 2.

1. Inicialmente o usuário deve selecionar um projeto através do link Selecionar projeto

2. É exibida uma lista de projetos onde o usuário pode selecionar um projeto. 2.1 O usuário pode retornar para a interface principal.

3. Após a seleção do projeto, é exibida uma tela de detalhes, com as informações detalhadas do projeto. 3.1 O usuário pode retornar para a interface principal. 3.2 O usuário pode selecionar o projeto e retornar para a tela principa.

20

4. O usuário retorna para a tela principal após selecionar o projeto. 4.1 O usuário pode selecionar outro projeto, caso desejar. 4.2 O usuário pode consultar a opção de Requisitos. 4.3 O usuário pode selecionar a Consulta de Casos de Uso

5. O usuário selecionou a opção de consulta de requisitos. O usuário pode selecionar as opções: 5.1 Listagem de Requisitos 5.2 Últimos requisitos alterados 5.3 Estados dos Requisitos 5.4 Número de Alterações propostas por requisitos

6. O usuário selecionou a opção para listar todos os requisitos. 6.1 O usuário pode clicar em qualquer requisito e ver seu detalhe 6.2 O usuário pode voltar a tela anterior ou a principal.

7. O usuário selecionou um requisito e o sistema exibe seus detalhes. 7.1 O usuário pode consultar a rastreabilidade para Casos de Uso, Casos de Teste 7.2 O usuário pode voltar a tela anterior ou a principal.

8. O usuário clica para ver a rastreabilidade para os Casos de Uso. 8.1 O usuário pode voltar a tela anterior ou a principal.

21

9.O usuário clica para ver a rastreabilidade para os Casos de Teste. 9.1 O usuário pode voltar a tela anterior ou a principal.

10. O usuário retorna a tela de Consulta de Requisitos e; 10.1 Clica na opção de consulta números de requisitos alterados por data. 10.1 O usuário pode voltar a tela anterior ou a principal.

11. O usuário retorna a tela anterior e 11.1 O usuário clica para consultar os requisitos por Estado. 11.2 O usuário pode voltar a tela anterior ou a principal.

12. O usuário retorna a tela anterior e 12.1 O usuário clica para consultar as alterações propostas por usuário do cliente. 12.2 O usuário pode voltar a tela anterior ou a principal.

13. O usuário retorna a tela principal e 13.1 O usuário clica para consultar informações relativas aos casos de uso. 13.2 O usuário pode voltar a tela anterior ou a principal.

14. O usuário pode selecionar na caixa de seleção um dos estados e confirmar para visualizar quais Casos de Uso estão classificados no estado indicado.

Tabela 2 - Fluxo de funcionamento do Controla4Mobile

22

A solução completa do Controla envolve um módulo local, situado na máquina do usuário que realiza a entrada de dados pela ferramenta Controla, apresentada na Figura 6. O banco de dados do Controla (instalado na máquina do cliente), é enviado para a Web utilizando um cliente de FTP. A aplicação Controla4Mobile está instalada no Servidor e a partir de agora passa a ter acesso ao banco de dados copiado da Máquina Local para o Servidor, permitindo acesso via dispositivo móvel.

Figura 6 - Tela principal do Controla

O diagrama de implantação e componentes do sistema é apresentado na Figura 7.

dd Dispositivos e Componentes do Sistema

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

«database»

Banco de Dados Local

«executable»

Controla

Serv idor Web

Máquina do Usuário

«database»

Banco de dados Remoto

Controla4Mobile

FTP

«mobile»

Dispositiv o Móvel

Acessa

Envia

Figura 7 - Diagrama de implantação e componentes do sistema

23

A tabela 3 representa a migração das interfaces da ferramenta Controla para o

ambiente .NET Móbile para dispositivos móveis.

Tela de Detalhes do Projeto

Listagem dos requisitos

24

Rastreabilidade Requisitos ���� Casos de Uso

Estados dos Requisitos

25

Alterações Propostas por usuário

Casos de Uso por estado

Tabela 3 – Interfaces com o usuário

26

3.1. Exemplos de utilização em Emuladores

Durante o desenvolvimento do Controla4Mobile, foram feitos vários testes que

permitiram comprovar o uso do sistemas em vários dispositivos móveis de diversos

fabricantes. Portanto, as seções a seguir mostram os exemplos de utilização da aplicação

de acordo com o a funcionalidade do sistema e o modelo do dispositivo, confirmando a

portabilidade. Cada funcionalidade do sistema será descrita na seção de documentação

do sistema.

Foram usados vários emuladores para os exemplos de utilização, através do site

http://mobilerunner.wap3.net/.

As figuras 8 até 16 a seguir apresentam o resultado da execução de algumas das

funcionalidades do Controla4Mobile em diversos aparelhos celular, via emulador, de

vários fabricantes.

A estrutura da informação apresentada segue o esquema da Figura 7.

Figura 7 – Estrutura da Informação apresentadas na Figuras.

Aparelho celular utilizado.

Tipo de Conteúdo utilizado.

Detalhes de Interface do celular.

27

3.2. Consulta Estados dos Requisitos - Motorola SV LR L7

Figura 8 – Tela de Consulta de Estados dos Requisit os no modelo Motorola SVLR L7.

3.3. Tela Principal – NOKIA 3650

Figura 9 – Tela Principal modelo Nokia 3650.

28

3.4. Seleção de Projetos - Nokia 3250

Figura 10 – Tela de Seleção de Projetos no modelo N okia 3250.

3.5. Requisitos Alterados - Siemens SX1

Figura 11 – Tela de Requisitos Alterados no Siemens SX1.

29

3.6. Alterações Propostas – Nokia N70

Figura 12 – Tela de Alterações Propostas no Nokia N 70.

3.7. Seleção do Estado do Caso de Uso – XDA III

Figura 13– Tela de Seleção do Estado do Caso de Uso no Palm XDAIII.

30

3.8. Consulta de Detalhes do Projeto – SDA

Figura 14– Tela de consulta de Detalhes do Projeto no DAS.

3.9. Consulta do Requisito – SHARP GX30

Figura 15– Tela de Consulta do Requisito no SHARP G X30.

31

3.10. Listagem de Requisitos – XDA III

Figura 15– Tela de Listagem de Requisitos no Palm X DA III

4. Documentação do sistema

4.1. Objetivos deste documento

Este documento tem o objetivo de apresentar a especificação e as etapas do

desenvolvimento do Controla4Mobile. O Controla4Mobile é um módulo do Controla, que

é uma ferramenta para gestão de requisitos disponível gratuitamente na Internet.

A documentação do sistema foi feita seguindo os princípios da orientação a objetos,

utilizando a UML (Unified Modeling Language) como linguagem para modelagem e

especificação do software [BOCH, RUMBAUGH e JACOBSON 2000]. O software utilizado

para a modelagem foi o Enterprise Architect, através da versão disponível na Internet [EA

2007].

O processo seguido para o desenvolvimento do Controla4Mobile foi o RUP (Rational

Unified Process).

O RUP é um processo iterativo, onde o desenvolvimento do sistema é feito de forma

seqüencial e evolutiva. As atividades do RUP oferecem ênfase à criação e manutenção

de modelos no lugar de documentos impressos. Os modelos – principalmente aqueles

especificados com a utilização da UML [BOCH, RUMBAUGH e JACOBSON 2000]

[WAZLAWICK 2004].

4.2. Metas do Sistema

O objetivo Controla4Mobile é gerenciar os requisitos de projetos através de uma

solução baseada em computação móvel. Além disso, visa permitir que os requisitos

sejam levantados, aprovados ou tenham seus estados modificados de forma on-line,

possibilitando agilidade no repasse de informações para a fábrica de software.

Diante dessas metas, o Controla4Mobile se caracteriza com uma ferramenta de

apoio indispensável quando se trata da integração e rapidez nas informações inerentes à

gestão de requisitos, independente da localização geográfica do engenheiro de software.

4.3. Expectativas dos usuários

Para utilizar o Controla4Mobile é preciso um dispositivo móvel, além disso é

necessário a conexão via Internet a fim de consultar e/ou alterar os requisitos para o

projeto sendo construído. A navegabilidade através das opções do Controla4Mobile é

simples e versátil, fornecendo listas e gráficos para as consultas.

33

Os usuários esperam obter uma ferramenta que facilite a gestão de requisitos

durante o desenvolvimento e as manutenções nos software. É desejável que a ferramenta

seja estável e que tenha seu uso facilitado.

4.4. Limitações

As limitações do Controla4Mobile envolvem características como dispositivo móvel a

ser utilizado para o acesso ao sistema, como também a falta de conexão com a Internet e

falta de energia.

No que diz respeito ao dispositivo móvel, pode-se considerar como limitações o

tamanho do hardware e a funcionalidade de acesso à Internet. Quanto menor os

dispositivos, maiores são as dificuldades para manuseio, podendo resultar em erros de

digitação [MAZHAR 2005].

A falta de energia é uma limitação para muitos dispositivos móveis quando os

recursos de hardware como, por exemplo, as baterias.

Outra característica considerada uma limitação para o funcionamento do

Controla4Mobile, é o acesso ao banco de dados, que é feito através do Microsoft Access,

o qual fica armazenado no módulo Controla existente na fábrica de software. Caso esta

base de dados fique indisponível ficaria impossível de obter dados sobre os projetos e

informações para serem enviadas às equipes de desenvolvimento.

4.5. Equipe de desenvolvimento

Nome Função Custo/Hora

Clayton Vieira Fraga Filho Analista/Desenvolvedor R$ 40,00

Geraldo Afonso da Cruz Analista/Desenvolvedor R$ 40,00

Ronney Moreira de Castro Analista/Desenvolvedor R$ 40,00

Evaldo de Oliveira da Silva Analista/Desenvolvedor R$ 40,00

5. Requisitos

5.1. Requisitos Funcionais

5.1.1. Informações Cadastrais dos Projetos

F1 Informações Cadastrais dos Projetos Estado : Aprovado

Prioridade : Alta Estabilidade : Categoria Funcional : Usabilidade

34

Alta

Descrição : Funcionalidade oferecida pelo sistema, onde o usuário pode escolher o

projeto especificado pelo cliente. As informações recuperadas são sobre o projeto

de software a ser especificado. Ou seja, o nome do projeto, a equipe e a empresa

de desenvolvimento e a mão de obra alocada, como também os usuários-chave do

sistema em construção.

5.1.2. Lista de Requisitos

F2 Lista de Requisitos Estado : Aprovado

Prioridade : Alta Estabilidade :

Alta

Categoria Funcional : Evidente

Descrição : Funcionalidade que permite ao usuário consultar a lista dos requisitos

relacionada ao projeto selecionado.

5.1.3. Lista de Casos de Usos

F3 Lista de Casos de Usos Estado : Aprovado

Prioridade : Alta Estabilidade :

Alta

Categoria Funcional : Evidente

Descrição : Funcionalidade disponível para o usuário no momento da escolha do

requisito, quando todos os casos de usos relacionados são exibidos.

5.1.4. Lista de Casos de Testes

F4 Lista de Casos de Testes Estado : Aprovado

Prioridade : Alta Estabilidade :

Alta

Categoria Funcional : Evidente

Descrição : Funcionalidade disponível para o usuário no momento da escolha do

requisito, quando todos os casos de testes relacionados são exibidos.

5.1.5. Os dez últimos requisitos alterados

F5 Os dez últimos requisitos alterados Estado : Aprovado

Prioridade : Alta Estabilidade : Categoria Funcional : Evidente

35

Alta

Descrição : Funcionalidade apresentada quando o projeto é selecionado. Existe

uma opção para escolha dos dez últimos requisitos alterados.

5.1.6. Rastreabilidade

F6 Rastrabilidade Estado : Aprovado

Prioridade : Alta Estabilidade :

Alta

Categoria Funcional : Usabilidade

Descrição : O sistema oferece a opção de rastrear os casos de usos e suas

relações. Esta funcionalidade permite validar o impacto da mudança do caso de uso,

se o mesmo estiver relacionado à Requisitos, Casos de Testes, Casos de Usos,

Erros e Liberações. O sistema deve mostrar as seguintes relações de

rastreabilidade:

• Casos de Uso � Requisitos

• Requisitos � Casos de Teste

5.1.7. Estados dos requisitos

F7 Estados dos Requisitos Estado : Aprovado

Prioridade : Alta Estabilidade :

Alta

Categoria Funcional : Evidente

Descrição : Funcionalidade apresentada quando o projeto é selecionado. Existe

uma opção para listar os requisitos com o seu respectivo estado (“Aprovado”,

“Cancelado”, “Suspenso”, “Rejeitado”).

5.1.8. Número de alterações propostas por stakeholder

F8 Número de alterações propostas por solicitante do

projeto

Estado : Aprovado

Prioridade : Alta Estabilidade : Alta Categoria Funcional :

Evidente

Descrição : O sistema tem a funcionalidade de fornecer o número de alterações

propostas por cada stakeholder.

36

5.1.9. Consulta dos Casos de Usos por Estado

F9 Consulta dos Casos de Usos por Estado Estado : Aprovado

Prioridade : Alta Estabilidade : Alta Categoria Funcional :

Evidente

Descrição : O sistema oferece a funcionalidade de consultar os casos de usos por

estado. Por exemplo, estados : “Aprovado”, “Cancelado”, “Suspenso”, “Rejeitado”.

5.2. Requisitos Não-Funcionais

5.2.1. A disponibilidade do Browser no Dispositivo Móvel

NF1 A disponibilidade do

Browser

Estado : Aprovado Obrigatório : Sim ( X ) Não ( )

Prioridade : Alta Estabilidade : Alta Categoria : Interface

Descrição : O dispositivo deve ter navegador embutido para acessar as

informações, uma vez que a aplicação só é acessada via Internet.

5.2.2. Acesso aos dados

NF2 Acesso aos dados Estado : Aprovado Obrigatório : Sim ( X ) Não ( )

Prioridade : Alta Estabilidade : Alta Categoria : Persistência e

Usabilidade

Descrição : O banco de dados usado como origem para a comunicação e troca de

informações deve estar disponível. Ou seja, o Controla4Mobile deve acessar a base

de dados MS Access existente no Controla, a qual fica localizada na fábrica de

software.

5.2.3. Consulta dos Casos de Usos por Estado

NF3 Consulta dos Casos de Usos por Estado Estado : Aprovado

Prioridade : Alta Estabilidade : Alta Categoria Funcional :

Evidente

Descrição : O sistema oferece a funcionalidade de consultar os casos de usos por

estado. Por exemplo, estados : “Aprovado”, “Cancelado”, “Suspenso”, “Rejeitado”.

6. Casos de Uso

6.1. Diagrama de Caso de Uso

ud Casos de Uso�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

Usuário

Selecionar projeto

Listar requisitos

Consultar requisitos alterados

Consultar estados dos requisitos

Consultar alterações propostas

Visualizar rastreabilidade

Visualizar detalhes do projeto

Visualizar detalhes do

requisito

Consultar estados dos Casos de Uso

Consultar requisitos

«extend»

«extend»

«extend»

«extend»

«include»

«extend»«extend»

Figura 17 – Diagrama de Casos de Uso Principal

38

6.2. Listar Requisitos

CU1: Listar Requisitos

Atores: Usuário

Interessados: Usuários

Pré-Condições: O sistema deve estar disponível no browser e disponibilizar os

requisitos do projeto.

Pós-Condições: Após escolher a listagem de requisitos, uma lista com os requisitos

é exibida, e ao escolher um requisito suas informações são mostradas, assim como

os casos de uso e casos de teste associados ao mesmo.

Requisitos Correlacionados: F2, F6 e (Visualizar detalhes requisito)

Variações Tecnológicas: Depende do dispositivo móvel utilizado (PDA, Celular,

Smartphone, etc).

Fluxo Principal

1 – O usuário escolhe a opção Consulta Requisitos � Listagem de Requisitos

2 – [EV] Ao escolher a opção listagem de requisitos, é exibida uma lista com os

requisitos.

3 – [EV] O usuário solicita o requisito desejado clicando em cima do mesmo.

4 – [RS] O sistema Controla4Mobile mostra todas as informações relacionada ao

requisito (Nome, Estado, Autor, Prioridade, Estabilidade, Responsável, Versão atual)

5 – [RS] O sistema Controla4Mobile exibe também as opções de rastreabilidade

com os casos de uso e com os casos de teste, e também as opções de voltar para

tela anterior ou para a tela principal.

39

6.3. Consultar Estados do Caso de Uso

CU2: Consultar Estados do Caso de Uso

Atores: Usuário

Interessados: Usuários

Pré-Condições: O sistema deve estar disponível no browser e disponibilizar os

casos de uso do projeto.

Pós-Condições: Após escolher o estado do caso de uso, uma uma lista com tipo do

estado de caso de uso é exibida.

Requisitos Correlacionados: F9

Variações Tecnológicas: Depende do dispositivo móvel utilizado (PDA, Celular,

Smartphone, etc).

Fluxo Principal

1 – O usuário solicita a opção Estados do Caso de Uso.

2 – [EV] Ao escolher esta opção, é exibida uma lista com os estados possíveis.

3 – [EV] O usuário solicita o estado do caso de uso e seleciona a opção confirma.

4 – [RS] O sistema Controla4Mobile mostra todos os casos de uso que se

encontram no estado selecionado, caso contrário exibe a mensagem que não foi

encontrado nenhum caso de uso neste estado.

5 – [RS] O sistema Controla4Mobile exibe também a opção de voltar para tela

anterior ou para a tela principal.

40

6.4. Consultar Estados dos Requisitos

CU3: Consultar Estados dos Requisitos

Atores: Usuário

Interessados: Usuários

Pré-Condições: O sistema deve estar disponível no browser e disponibilizar os

estados dos requisitos do projeto.

Pós-Condições: Após escolher a opção estados dos requisitos, uma lista com total

de requisitos por estado é exibida.

Requisitos Correlacionados: F7

Variações Tecnológicas: Depende do dispositivo móvel utilizado (PDA, Celular,

Smartphone, etc).

Fluxo Principal

1 – O usuário escolhe a opção Consulta Requisitos � Estados dos requisitos

2 – [EV] O usuário escolhe a opção estados dos requisitos.

3 – [RS] O sistema Controla4Mobile mostra uma lista contendo o número de

requisitos por tipo de estado.

4 – [RS] O sistema Controla4Mobile exibe também as opções de voltar para tela

anterior ou para a tela principal.

41

6.5. Consultar Requisitos Alterados

CU4: Consultar Requisitos Alterados

Atores: Usuário

Interessados: Usuários

Pré-Condições: O sistema deve estar disponível no browser e disponibilizar os

requisitos alterados do projeto.

Pós-Condições: Após escolher a opção requisitos alterados, uma lista com os 10

últimos requisitos alterados é exibida.

Requisitos Correlacionados: F5

Variações Tecnológicas: Depende do dispositivo móvel utilizado (PDA, Celular,

Smartphone, etc).

Fluxo Principal

1 – O usuário escolhe a opção Consulta Requisitos � Últimos alterados

2 – [EV] O usuário escolhe a opção últimos alterados.

3 – [RS] O sistema Controla4Mobile mostra os 10 últimos requisitos alterados com

seus respectivos nomes e data/hora alteração.

4 – [RS] O sistema Controla4Mobile exibe também as opções de voltar para tela

anterior ou para a tela principal.

42

6.6. Consultar Alterações Propostas

CU5: Consultar Alterações Propostas

Atores: Usuário

Interessados: Usuários

Pré-Condições: O sistema deve estar disponível no browser e disponibilizar as

alterações de requisitos do projeto que foram propostas pelos usuários.

Pós-Condições: Após escolher a opção número alterações propostas, uma lista

com contendo o nome e o número de requisitos propostos é exibida.

Requisitos Correlacionados: F8

Variações Tecnológicas: Depende do dispositivo móvel utilizado (PDA, Celular,

Smartphone, etc).

Fluxo Principal

1 – O usuário escolhe a opção Consulta Requisitos � Nº alterações propostas por

usuário

2 – [EV] O usuário escolhe a opção nº alterações propostas por usuário.

3 – [RS] O sistema Controla4Mobile mostra uma lista contendo o nome do usuário

e a quantidade de solicitações de requisitos propostas.

4 – [RS] O sistema Controla4Mobile exibe também as opções de voltar para tela

anterior ou para a tela principal.

43

6.7. Selecionar Projeto

CU6: Selecionar Projeto

Atores: Usuário

Interessados: Clientes e Usuários

Pré-Condições: O sistema deve estar disponível no browser e disponibilizar uma

lista de projetos.

Pós-Condições: Após escolher o projeto, uma tela com as informações é exibida.

Requisitos Correlacionados: F1

Variações Tecnológicas: Depende do dispositivo móvel utilizado (PDA, Celular,

Smartphone, etc).

Fluxo Principal

1 – O usuário solicita um projeto através do menu Selecionar Projeto.

2 – [EV] Ao escolher um novo projeto, o anterior será finalizado.

3 – [RS] O sistema Controla4Mobile mostra todas as informações pertinentes ao

projeto, como Nome Projeto, Empresa, Equipe e Usuários.

4 – [RS] O sistema Controla4Mobile exibe também a opção de selecionar outro

projeto ou cancelar o atual.

7. Diagramas de Seqüência

Serão apresentados a seguir os Diagramas de Seqüência dos Casos de Uso

relatados nesse documento com o objetivo de identificar as principais mensagens

contidas no sistema.

7.1. Consulta dos Estados dos Requisitos

sd Consulta Estados dos Requisito�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

usuário aplicação Controla4Mobile

Consultar Requisitos

Estados dos Requisitos

Lista(Estado, Quantidade)

Finaliza ou Volta Tela anterior

Figura 18 – Diagrama de Seqüência Consulta dos Esta dos dos Requisitos

45

7.2. Consulta Alterações Propostas

sd Consultar alterações propostas�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

usuário aplicação Controla4Mobile

Consulta Requisi tos

Consultar Alterações Propostas

Exibe Lista(Nome Usuário, Quantidade)

Finaliza ou Volta TelaAnterior

Figura 19 – Diagrama de Seqüência Consulta Alteraçõ es propostas

46

7.3. Consulta Casos de usos

sd Consultar Estados dos Casos de Uso�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

usuário aplicação Controla4Mobile

Estados Casos de Uso

Estados Casos de Uso

Listas(Tipos Estado)

Escolhe o Estado(Estado)

Lista casos de Uso(Ident. Caso Uso)

Finaliza ou Volta Tela Anterior

Figura 20 – Diagrama de Seqüência Consulta Casos de Uso

7.4. Consultar Requisitos Alterados

sd Consultar requisitos alterados�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

usuário aplicação Controla4Mobile

Consulta Requisi tos

Últimos al terados

Lista 10 últimos(Nome, Data, Hora)

Final iza ou Volta tela anterior

Figura 21 – Diagrama de Seqüência - Requisitos alte rados

47

7.5. Consultar Requisitos

sd Consultar requisitos�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

Páginas::Requisi tos

[EstadosRequisi tos.aspx]: Command1_Click(sender,e)

[AlteracoesPropostasRequisitos.aspx]: Command2_Click(sender,e)

[UltimosRequisi tosAlterados.aspx]: Command3_Cl ick(sender,e)

[ListaRequisitos.aspx]: Command4_Cl ick(sender,e)

[Defaul t.aspx]: Command5_Click(sender,e)

[Session["Projeto"]]: Page_Load(sender,e)

Figura 22 – Diagrama de Seqüência – Consulta Requis itos

7.6. Lista Requisitos

sd Listar requisitos�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

usuário aplicação Controla4Mobile

Consultar requisi tos

Listagem requisitos

Lista(requisitos)

Requisito(requisi to)

Requisi to(requisito)

Requisito(nome, autor, prioridade)

Rastreabil idade(caso uso, caso teste)

Final iza ou volta tela anterior

Figura 23 – Diagrama de Seqüência – Lista de Requis itos

48

7.7. Selecionar Projeto

sd Selecionar proj eto�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

Camada deNegócios(Modelo)::BLProjeto

Páginas::Projeto Páginas::DetalheProjeto Páginas::_Default

loop

[contador < objProjeto.ExibirTodos().Tables[0].Rows.Count]

Page_Load(sender,e)

BLProjeto()

System.Data.DataSet= ExibirTodos()

Command1_Click(object, EventArgs)

*

Figura 24 – Diagrama de Seqüência – Selecionar proj eto.

8. Modelo de Classes

Esta seção apresenta os diagramas de classes que foram usados para modelar o

Controla4Mobile através de camadas. Cada item desta seção representa um modelo de

classes referente a uma camada da arquitetura do sistema em questão.

8.1. Diagrama de Classes de Trabalho cd Páginas

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

System.Web.UI.Mobi leControls.MobilePage

AlteracoesPropostasRequisitos

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

CasodeTesteRequisito

# Command1_Click1(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

CasodeUsoRequisito

# Command1_Click1(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

CasosdeUso

# Command3_Cli ck(object, EventArgs) : void# Command4_Cli ck(object, EventArgs) : void# Command5_Cli ck(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

CasosdeUsoImplementados

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Command3_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void# SelectionList1_SelectedIndexChanged(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

DetalheProjeto

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

DetalheRequisito

# Command1_Click(object, EventArgs) : void# Command1_Click1(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Command3_Click(object, EventArgs) : void# Command4_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.Mobi lePage

EstadosRequisitos

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

ListaRequisitos

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

Projeto

# Command1_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

Requisitos

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Command3_Click(object, EventArgs) : void# Command4_Click(object, EventArgs) : void# Command5_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

SqlHelper

+ CONN_STRING: string

+ ExecuteNonQuery(string, string, OleDbParameter[]) : i nt+ ExecuteNonQuery(string, CommandType, string, OleDbParameter[]) : int+ ExecuteNonQuery(OleDbConnection, CommandType, string, OleDbParameter[]) : i nt+ ExecuteNonQuery(OleDbTransaction, CommandType, string, OleDbParameter[]) : int+ ExecuteReader(string, string, OleDbParameter[]) : OleDbDataReader+ ExecuteReader(string, CommandType, string, OleDbParameter[]) : OleDbDataReader+ ExecuteScalar(string, string, OleDbParameter[]) : object+ ExecuteScalar(string, CommandType, string, OleDbParameter[]) : object+ ExecuteScalar(OleDbConnection, CommandType, string, OleDbParameter[]) : object+ GetDataSet(string) : DataSet+ GetDataSet(string, OleDbParameter[]) : DataSet- PrepareCommand(OleDbCommand, OleDbConnection, OleDbT ransaction, CommandType, string, OleDbParameter[]) : void+ SqlHelper()+ SqlHelper(string)

System.Web.UI.MobileControls.MobilePage

UltimosRequisitosAlterados

# Command1_Click(object, EventArgs) : void# Command2_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

System.Web.UI.MobileControls.MobilePage

_Default

# Command2_Click(object, EventArgs) : void# Command3_Click(object, EventArgs) : void# Command4_Click(object, EventArgs) : void# Page_Load(object, EventArgs) : void

Figura 25 – Diagrama de Classes.

8.2. Diagrama de Classes - Interfaces

As interfaces apresentam a estrutura que as classes de negócios devem implementar. Elas servem como “moldes” que definem quais métodos e atributos devem ser implementados e serão vistos pela camada de negócios, fornecendo assim uma forma extra de avaliação sintática das classes que as implementarão.

50

cd Interface

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� ��������������������������

«interface»

IProjeto

property+ CodProjeto() : Int32+ Empresa() : string+ NomedoProjeto() : string

«interface»

IRequisito

property+ Autor() : string+ CodProjeto() : Int32+ CodRequisito() : Int32+ Estabilidade() : string+ Estado() : string+ NomedoRequisito() : string+ Prioridade() : string+ Responsavel() : string+ Rotulo() : string+ Versao() : string

«interface»

ICasosdeTeste

property+ Codigo() : string+ Descricao() : string

«interface»

ICasosdeUso

property+ Codigo() : string+ Descricao() : string+ Estado() : string

«interface»

IEquipe

+ GetEquipe(Int32) : System.Collections.Generic.List<string>property+ Funcao() : string+ Nome() : string

«interface»

IUsuarios

+ GetUsuarios(Int32) : System.Collections.Generic.List<string>property+ Cargo() : string+ Nome() : string

Figura 26 – Diagrama de Interface

8.3. Diagrama dos Objetos de Negócios

Classes que representam os objetos de negócios do sistema, localizados logo

abaixo da camada de apresentação e que serão diretamente acessado por elas,

fornecendo assim a semântica completa da relação dos objetos de negócio do sistema. cd BL�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

BusinessObjects

BLCasosdeTeste

- _Codigo: string- _Descricao: string

+ GetCasosdeTeste(Int32) : System.Collections.Generic.List<string>

property+ Codigo() : string+ Descricao() : string

BusinessObjects

BLCasosdeUso

- _Codigo: string- _Descricao: string- _Estado: string

+ GetCasosdeUso(Int32) : System.Collections.Generic.List<string>

property+ Codigo() : string+ Descricao() : string+ Estado() : string

BusinessObjects

BLEquipe

- _Funcao: string- _Nome: string

+ GetEquipe(Int32) : System.Collections.Generic.List<string>

property+ Funcao() : string+ Nome() : string

BusinessObjects

BLProjeto

- _CodProjeto: Int32- _Empresa: string- _EquipeProjeto: Bibl ioteca.BL.BLEquipe- _NomedoProjeto: string- _UsuariosProjeto: Bibl ioteca.BL.BLUsuarios

+ BLProjeto()+ BLProjeto(Int32)+ ExibirTodos() : System.Data.DataSetproperty+ CodProjeto() : Int32+ Empresa() : string+ EquipeProjeto() : Bibl ioteca.BL.BLEquipe+ NomedoProjeto() : string+ UsuariosProjeto() : Bibl ioteca.BL.BLUsuarios

BusinessObjects

BLRequisito

- _Autor: string- _CasosdeT este: Bibl ioteca.BL.BLCasosdeTeste- _CasosdeUso: Bibl ioteca.BL.BLCasosdeUso- _CodProjeto: Int32- _CodRequisito: Int32- _Estabil idade: string- _Estado: string- _NomedoRequisito: string- _Prioridade: string- _Responsavel: string- _Rotulo: string- _Versao: string

+ AlteracoesPropostasPorUsuario() : System.Data.DataSet+ BLRequisito(Int32)+ BLRequisito(Int32, Int32)+ CasosdeUsoporEstado(Int32) : System.Data.DataSet+ ExibirTodos() : System.Data.DataSet+ RequisitosporEstado() : System.Data.DataSet+ UltimosAlterados() : System.Data.DataSetproperty+ Autor() : string+ CasosdeTeste() : Bibl ioteca.BL.BLCasosdeTeste+ CasosdeUso() : Bibl ioteca.BL.BLCasosdeUso+ CodProjeto() : Int32+ CodRequisito() : Int32+ Estabil idade() : string+ Estado() : string+ NomedoRequisito() : string+ Prioridade() : string+ Responsavel() : string+ Rotulo() : string+ Versao() : string

BusinessObjects

BLUsuarios

- _Cargo: string- _Nome: string

+ GetUsuarios(Int32) : System.Collections.Generic.List<string>property+ Cargo() : string+ Nome() : string+ UsuariosProjeto() : BLProjeto

-_CasosdeUso-_CasosdeTeste

-_UsuariosProjeto-_EquipeProjeto

Figura 27 – Diagrama de Classes – Objetos de negóci o

8.4. Diagrama da Camada de Negócios e Interfaces

Representação da camada de negócio com a representação das interfaces

correspondentes caracterizando a implementação do seu comportamento.

51 cd Camada de Negócios(Modelo) - Interfaces�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� �������������������������� ��������������������������

BusinessObjects

BLCasosdeTeste

- _Codigo: string- _Descri cao: string

+ GetCasosdeTeste(Int32) : System.Collections.Generic.List<string>property+ Codigo() : string+ Descricao() : string

BusinessObjects

BLCasosdeUso

- _Codigo: string- _Descri cao: string- _Estado: stri ng

+ GetCasosdeUso(Int32) : System.Collections.Generic.List<string>property+ Codigo() : string+ Descricao() : string+ Estado() : stri ng

BusinessObjects

BLEquipe

- _Funcao: string- _Nome: string

+ GetEquipe(Int32) : System.Coll ecti ons.Generic.List<string>property+ Funcao() : string+ Nome() : string

BusinessObjects

BLProjeto

- _CodProjeto: Int32- _Empresa: string- _EquipeProjeto: Bi bl ioteca.BL.BLEquipe- _NomedoProjeto: stri ng- _UsuariosProjeto: Bibli oteca.BL.BLUsuari os

+ BLProjeto()+ BLProjeto(Int32)+ ExibirTodos() : System.Data.DataSetproperty+ CodProjeto() : Int32+ Empresa() : string+ EquipeProjeto() : Bi bl ioteca.BL.BLEquipe+ NomedoProjeto() : stri ng+ UsuariosProjeto() : Bibli oteca.BL.BLUsuari os

BusinessObjects

BLRequisito

- _Autor: stri ng- _CasosdeTeste: Biblioteca.BL.BLCasosdeTeste- _CasosdeUso: Biblioteca.BL.BLCasosdeUso- _CodProjeto: Int32- _CodRequi si to: Int32- _Estabi lidade: stri ng- _Estado: stri ng- _NomedoRequisito: stri ng- _Pri oridade: stri ng- _Responsavel: stri ng- _Rotulo: string- _Versao: stri ng

+ Al teracoesPropostasPorUsuari o() : System.Data.DataSet+ BLRequisito(Int32)+ BLRequisito(Int32, Int32)+ CasosdeUsoporEstado(Int32) : System.Data.DataSet+ ExibirTodos() : System.Data.DataSet+ Requisi tosporEstado() : System.Data.DataSet+ Ul tim osAl terados() : System.Data.DataSetproperty+ Autor() : stri ng+ CasosdeTeste() : Biblioteca.BL.BLCasosdeTeste+ CasosdeUso() : Biblioteca.BL.BLCasosdeUso+ CodProjeto() : Int32+ CodRequisito() : Int32+ Estabili dade() : stri ng+ Estado() : stri ng+ NomedoRequisito() : stri ng+ Priori dade() : stri ng+ Responsavel() : stri ng+ Rotul o() : string+ Versao() : stri ng

BusinessObjects

BLUsuarios

- _Cargo: string- _Nome: string

+ GetUsuarios(Int32) : System.Col lections.Generic.List<string>property+ Cargo() : string+ Nome() : string+ UsuariosProjeto() : BLProjeto

«interface»

Interfaces::ICasosdeTeste

property+ Codigo() : stri ng+ Descri cao() : string

«interface»

Interfaces::ICasosdeUso

property+ Codigo() : string+ Descricao() : stri ng+ Estado() : string

«interface»

Interfaces::IEquipe

+ GetEquipe(Int32) : System.Collections.Generic.List<stri ng>property+ Funcao() : string+ Nome() : string

«interface»

Interfaces::IProjeto

property+ CodProjeto() : Int32+ Empresa() : string+ NomedoProjeto() : string

«interface»

Interfaces::IRequisito

property+ Autor() : string+ CodProjeto() : Int32+ CodRequi sito() : Int32+ Estabi lidade() : string+ Estado() : string+ NomedoRequi si to() : string+ Prioridade() : string+ Responsavel() : stri ng+ Rotulo() : string+ Versao() : string

«interface»

Interfaces::IUsuarios

+ GetUsuarios(Int32) : System.Collections.Generic.List<string>property+ Cargo() : stri ng+ Nome() : string

-_CasosdeUso-_CasosdeTeste

-_UsuariosProjeto-_EquipeProjeto

Figura 28 – Diagrama de Classes – Camadas de negoci o.

8.5. Diagrama dos Objetos de acesso ao banco de dad os

Camada que representa o acesso aos dados, ou seja, representa a abstração do modelo

físico de dados (seção 10.2 – Esquema Físico do Banco de Dados).

cd Objetos de Acesso a Dados (Dados)

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

�������������������������� ��������������������������

DataAccessObjects

DACasosdeTeste

+ DACasosdeTeste()+ GetCasosdeTeste(Int32) : System.Collections.Generic.List<string>

DataAccessObjects

DACasosdeUso

+ DACasosdeUso()+ GetCasosdeUso(Int32) : System.Col lections.Generic.List<string>

DataAccessObjects

DAEquipe

+ DAEquipe()+ GetEquipe(Int32) : System.Collections.Generic.List<string>

DataAccessObjects

DAProjeto

+ DAProjeto()+ GetEquipe(Int32) : System.Collections.Generic.List<string>+ ListarProjetos() : System.Data.DataSet+ SelecionarProjeto(Int32) : System.Data.OleDb.OleDbDataReader

DataAccessObjects

DARequisito

+ AlteracoesPropostasPorUsuario(Int32) : System.Data.DataSet+ CasosdeUsoporEstado(Int32, Int32) : System.Data.DataSet+ DARequisito()+ GetCasosdeTeste(Int32) : System.Collections.Generic.List<string>+ ListarRequisitos(Int32) : System.Data.DataSet+ RequisitosporEstado(Int32) : System.Data.DataSet+ SelecionarRequisito(Int32) : System.Data.OleDb.OleDbDataReader+ UltimosAlterados() : System.Data.DataSet

DataAccessObjects

DAUsuarios

+ DAUsuarios()+ GetUsuarios(Int32) : System.Collections.Generic.List<string>

Figura 29 – Diagrama de Classes – Acesso a Dados.

9. Projeto da camada de Interface com o Usuário (GU I)

9.1. Diagrama de Estados de Navegação

O Diagrama de Estados de Navegação demonstra os caminhos que o usuário poderá

navegar pela aplicação. É uma especialização do Diagrama de Estados da UML. cd Nav egação - Aplicativo

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

�������������������������� �������������������������� �������������������������� ��������������������������

Principal

Proj eto

Initial

Detalhes do Projeto

Requisitos

Listagem de Requisitos Detalhes do Requisito

Rastreabilidade: Caso de UsoRastreabilidade: Caso de Teste

Últimos alterados

Estados dos requisitos Nro de Alterações propostas

Casos de Uso

Estados dos Casos de Uso

Figura 30 – Diagrama de Estados – Navegação na apli cação

10. Camada de Persistência

10.1. Modelo de Entidade-Relacionamento do Banco de Dados

Compoe

Tem_prioridade

Possui_versoes

Tem_Estabili dade

Tem_estado

Tem_equipe

Tem_stakeholders

Trabalham

Participa

Tem

É_Executado

Implementa

É_Implementado

Requisito_principalDepende_de

Testa

CasodeTeste

CodCasoDeTesteDescricaoDataCriacaoDadosDeEntradaResultadosEsperadosDataExecucaoResultadosObtidosCodCasoDeUsoCodPessoaCodProjetoCodFuncoesAlteradoIncorretoExecutadoNumeroCasodeTeste

IntegerCharacters (60)Date & TimeMultibyteMultibyteDate & TimeMultibyteIntegerIntegerIntegerIntegerBooleanBooleanBooleanInteger

<M><M><M>

CasosDeUso

DescricaoDataCadastroPreCondicaoSaidasCodEstadoCodTipoCasodeUsoAtoresNumeroCasosDeUso

Characters (80)Date & TimeMultibyteMultibyteIntegerIntegerCharacters (255)Integer

CasosDeUsoRequisitos

CodCasoDeUsoCodRequisitoAlterado

IntegerIntegerBoolean <M>

Cl iente

Cl ienteEndereco

Characters (100)Mul tibyte

Contatos

CodContatoNomeEmailTelefoneFuncaoDepartamentoDecideCodCliente

IntegerCharacters (100)Characters (150)Characters (40)Characters (80)Characters (80)BooleanInteger

<M>

DependenciaRequisito

CodRequisitoDependeDeAl terado

IntegerIntegerBoolean <M>

Empresa

EmpresaNumeroMaximoProjetosConcorrentesRegistraHistoricos

Characters (60)IntegerBoolean <M>

Equipe

CodPessoaCodProjetoDataEntradaCodFuncoesCustoHora

IntegerIntegerDate & TimeIntegerMoney

Estabilidade

CodEstabilidadeEstabilidadeDescricao

IntegerCharacters (30)Multibyte

Estados

CodEstadoEstadoDescricao

IntegerCharacters (30)Multibyte

Funcoes

FuncaoDescricao

Characters (35)Multibyte

Pessoa

NomeEmailContatoExperiencia

Characters (100)Characters (150)Characters (80)Multibyte

Prioridade

CodPrioridadePrioridadeDescricao

IntegerCharacters (25)Multibyte

Projeto

ProjetoMetasGerenciaisLimi tacoesCodTipoSistemaCodEmpresa

Characters (50)MultibyteMultibyteIntegerInteger

Requisito

RequisitoDataInicioDataFimCodTipoRequisitoResponsavelAprovacaoClienteDataCriacaoFi lhodeCodFuncoesAutorCodProjetoNumeroRequisito

Characters (50)Date & TimeDate & TimeIntegerIntegerDate & TimeIntegerIntegerIntegerIntegerInteger

Requisi tosHistorico

VersaoCodRequisitoHoraDataVersaoMoti voVersaoAutorCodEstadoResponsavelCli ente

IntegerIntegerDate & TimeDate & TimeMultibyteCharacters (20)IntegerInteger

10.2. Esquema Físico do Banco de Dados

Projeto

Prioridade

Historico

Estabi lidade

Estado

EquipeProjeto

Stakeholders

Cl ienteProjeto

EquipeProjeto

Funcoes

Executa

CasosdeUso

RequisitoCasodeUso

RequisitoPrincipalDependeDe

Testa

CasodeTeste

CodCasoDeTesteDescricaoDataCriacaoDadosDeEntradaResultadosEsperadosDataExecucaoResultadosObtidosCodCasoDeUsoCodPessoaCodProjetoCodFuncoesAl teradoIncorretoExecutadoNumeroCasodeTeste

INTEGERText(60)DATETIMEMemoMemoDATETIMEMemoINTEGERINTEGERINTEGERINTEGERYesNoYesNoYesNoINTEGER

CasosDeUso

CodCasoDeUsoDescricaoDataCadastroPreCondicaoSaidasCodEstadoCodTipoCasodeUsoAtoresNumeroCasosDeUso

INTEGERText(80)DATET IMEMemoMemoINTEGERINTEGERText(255)INTEGER

<fk1,fk2>

CasosDeUsoRequisi tos

CodCasoDeUsoCodRequisitoAl terado

INTEGERINTEGERYesNo

Cliente

CodClienteClienteEndereco

INTEGERText(100)Memo

<fk>

Contatos

CodContatoNomeEmailTelefoneFuncaoDepartamentoDecideCodCliente

INTEGERText(100)Text(150)Text(40)Text(80)Text(80)YesNoINTEGER

DependenciaRequisi to

CodRequisitoDependeDeAl terado

INTEGERINTEGERYesNo

Empresa

CodEmpresaEmpresaNumeroMaximoProjetosConcorrentesRegistraHistoricos

INTEGERText(60)INTEGERYesNo

<fk>

Equipe

CodPessoaCodProjetoDataEntradaCodFuncoesCustoHora

INTEGERINTEGERDATETIMEINTEGERCURRENCY

Estabi lidade

CodEstabilidadeEstabilidadeDescricao

INTEGERText(30)Memo

Estados

CodEstadoEstadoDescricao

INTEGERText(30)Memo

Funcoes

CodFuncoesFuncaoDescricao

INTEGERText(35)Memo

<fk>

Pessoa

CodPessoaNomeEmailContatoExperiencia

INTEGERText(100)Text(150)Text(80)Memo

<fk>

Prioridade

CodPrioridadePrioridadeDescricao

INTEGERText(25)Memo

Projeto

CodProjetoProjetoMetasGerenciaisLimitacoesCodClienteCodT ipoSistemaCodEmpresa

INTEGERText(50)MemoMemoINTEGERINTEGERINTEGER

<fk1,fk2>

<fk3>

Requisito

CodRequisi toRequisi toDataInicioDataFimCodTipoRequisitoResponsavelAprovacaoClienteDataCriacaoCodEstabi lidadeCodPrioridadeFilhodeCodFuncoesCodEstadoAutorCodProjetoNumeroRequisito

INTEGERText(50)DATET IMEDATET IMEINTEGERINTEGERDATET IMEINTEGERINTEGERINTEGERINTEGERINTEGERINTEGERINTEGERINTEGER

<fk2,fk5,fk6,fk7>

<fk3><fk1>

<fk2,fk4>

RequisitosHistorico

VersaoCodRequisi toHoraDataVersaoMotivoVersaoAutorCodEstadoResponsavelCl iente

INTEGERINTEGERDATETIMEDATETIMEMemoText(20)INTEGERINTEGER

11. Protótipo para Palm

Para fins de validação de controles e possibilidades de desenvolvimento para o dispositivo Palm, foi desenvolvido um protótipo funcional. O protótipo foi implementado na Linguagem Visual Basic .NET, sob a plataforma .NET Compact Framework. Por se um protótipo não utiliza a estrutura em 3 camadas, apresentada no item 2. O sistema de gerenciamento de Banco de dados utilizado é o SQL Server CE. Para fins de validação de controles e possibilidades de desenvolvimento para dispositivos Pda, foi desenvolvido um protótipo funcional. O protótipo foi implementado na Linguagem Visual Basic .NET, sob a plataforma .NET Compact Framework. Por se um protótipo não utiliza a estrutura em 3 camadas, apresentada no item 2. O sistema de gerenciamento de Banco de dados utilizado é o SQL Server CE. Foi utilizado ainda o DataPortWizard (http://www.primeworks-mobile.com/Products/DataPortWizard.html), uma ferramenta de auxílio para a conversão de um banco de dados feito em Access para o formato sdf, padrão do SQL Server CE. Algumas dificuldades foram encontradas ao se criar sistemas para dispositivos móveis (para Pocket PC especificamente), entre elas: O design que consiste na interface (menus, botões, logotipos, etc.) que faz do sistema muito mais que um simples formulário Diagrama de navegação dos sistemas que consiste no caminho que o usuário do sistema deverá fazer para chegar a um determinado ponto. Os limites impostos pelos dispositivos, como resolução de tela, teclado na própria tela, limitações de memória, etc. A criação do protótipo teve como foco criar a melhor forma de interface, buscado sempre a inovação e criando formas de navegação mais cômodas, atrativas e funcionais para os usuários levando sempre em conta as limitações impostas pelo dispositivo.

55

56

57

Conclusões Novas tecnologias e ambientes de desenvolvimento vem surgindo para apoiar o desenvolvimento para dispositivos móveis. Frameworks como o .NET Compact Framework, utilizando .NET Controls ainda não apresentam recursos para todos os modelos de dispositivos móveis existentes. Portanto, o bom senso ainda é fator determinante no momento de transpor o conteúdo de aplicações convencionais para dispositivos móveis. As soluções n-camadas( n-tier) se mostram promissoras por permitir fácil extensibilidade da aplicação e o compartilhamento das atividades de desenvolvimento até mesmo para aplicações para ambientes heterogêneos: Desktop, Web e Mobile.

Bibliografia [BOCH, RUMBAUGH e JACOBSON 2000] BOOCH, Grady, RUMBAUGH, James, JACOBSON, Ivar. UML Guia do Usuário. Rio de Janeiro: Campus, 2000. [EA 2007] Entrepise Architect. Disponível : http://www.sparxsystems.com.au/ea.htm. Acesso em 31 de jan 2007. [FRAGA FILHO e REIS 2005] FRAGA FILHO C.V., REIS, Maurício. Controla, ferramenta de apoio ao processo de desenvolvimento de software em pequenas empresas, 2005. [KAN 2002] KAN, Stephen H.; Metrics and Models in Software Quality 83 Engineering, Second Edition. Boston, Addison Wesley, 2002. [JUNGLAUS 2004] JUNGLAUS, Jefferson Luis. Introdução ao SQL Server CE. Disponível:http://www.devmedia.com.br/visualizacomponente.aspx?comp=95&site=5 [MAZHAR 2005] MAZHAR, Sheikh Tabish. Designing Multiplaform Web Applications Using . NET, 2005. [MSDN] Microsoft Developer Network. Disponível em http://msdn.microsoft.com. Acesso em 11 de fev 2007. [PRESS 2006] PRESSMAN, Roger S.; Engenharia de Software. 6 ed. São Paulo: McGraw-Hill, 2006. [ROMELLI 2002] ROMELLI, Maycol Sneider, Desenvolvendo Aplicações para Pocket PC utilizando SQL Server CE. Disponível: http://www.linhadecodigo.com.br/artigos.asp?id_ac=57 [WAZLAWICK 2004] WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Elsevier, 2004.