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.
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
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.
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.