alt="" hspace=0 src="/loja/img/Capa_SQL45_G.gif" align=bottom border=0>
Clique aqui para ler todos os artigos desta edição
Projeto de software orientado a objetos com UML 2.0
Saiba como elaborar o diagrama de classes e de seqüência de sua aplicação a partir da especificação de requisitos do software
Desenvolver software é uma atividade complexa por natureza. Uma das razões para esta afirmação é que não existe uma única solução para cada cenário de desenvolvimento. Além disso, lidamos o tempo todo com pessoas, o que torna o sucesso do projeto bastante relacionado à competência da equipe e à forma como trabalham, e, para dificultar ainda mais, muitas vezes não fazemos uso de um processo bem definido para apoiar as atividades do projeto.
Entende-se por processo, neste contexto, como sendo um conjunto de atividades bem definidas com os respectivos responsáveis por execução, ferramentas de apoio e artefatos produzidos. Ou seja, define-se como a equipe deverá trabalhar para alcançar o objetivo: desenvolver software com qualidade dentro de prazos, custos e requisitos definidos.
A boa notícia é que muitas empresas estão se movimentando no sentido de definirem detalhadamente seus processos para apoiarem suas atividades de desenvolvimento. Uma recente matéria publicada na revista Exame relata o crescimento do número de empresas que atingiram níveis de maturidade considerando modelos como MPS.BR e CMMI. Este resultado é um forte indicador de que as empresas nacionais estão se preocupando com a qualidade dos serviços que oferecem, conseguindo, dessa forma, uma inserção maior no mercado internacional de desenvolvimento de software.
Neste artigo, focaremos em duas atividades básicas do desenvolvimento: a especificação dos requisitos de software e a construção do diagrama de classes. Ao final do artigo, temos uma breve introdução à elaboração do diagrama de seqüência.
Cenário de desenvolvimento
Nesta seção apresentamos uma descrição inicial do estudo de caso que guiará a discussão sobre requisitos e diagrama de classes.
O software a ser desenvolvido possibilitará a gestão de festas de casamento. O programa deverá permitir ao usuário, dentre outras coisas, escolher o buffet, se haverá grupo musical, escolher tipo de decoração, entre outros itens afins. O usuário também poderá definir uma loja para disponibilização da lista de presentes. O sistema deverá emitir relatório das vendas realizadas por período e gerar orçamento.
Requisitos
Existem diferentes definições encontradas na literatura técnica para requisitos:
· Um requisito é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar para atingir os seus objetivos;
· As descrições das funções e restrições são os requisitos do sistema;
· Um requisito é uma propriedade que o software deve exibir para resolver algum problema no mundo real;
· Uma condição ou uma capacidade que deve ser alcançada ou estar presente em um sistema para satisfazer um contrato, padrão, especificação ou outro documento formalmente imposto...
Percebe-se que as citações encontradas definem o mesmo conceito sob diferentes perspectivas. Podemos entender requisitos como sendo o conjunto de necessidades explicitadas pelo cliente que deverão ser atendidas para solucionar um determinado problema do negócio no qual o cliente faz parte. É importante estar atento para esta definição: embora o requisito seja definido pelo cliente, nem sempre o que o cliente quer é o que o negócio precisa. Cabe à equipe de consultores identificar a real necessidade do negócio.
Entendida a definição de requisitos, é preciso conhecer seus tipos.
Requisitos funcionais
São requisitos diretamente ligados a funcionalidade do software, descrevem as funções que o software deve executar. Alguns exemplos são:
· O software deve permitir o cadastro de clientes;
· O software deve permitir a geração de relatórios sobre o desempenho de vendas no semestre;
· O software deve permitir o pagamento das compras através de cartão de crédito.
Requisitos não funcionais
São requisitos que expressam condições que o software deve atender ou qualidades específicas que o software deve ter. Em vez de informar o que o sistema fará, os requisitos não-funcionais colocam restrições no sistema. Alguns exemplos são:
· O software deve ser compatível com os browsers IE (versão 5.0 ou superior) e Firefox (1.0 ou superior);
· O software deve garantir que o tempo de retorno das consultas não seja maior do que 5 segundos.
Requisitos de domínio
São requisitos derivados do domínio da aplicação e descrevem características do sistema e qualidades que refletem o domínio. Podem ser requisitos funcionais novos, restrições sobre requisitos existentes ou computações específicas. Um exemplo de requisito do domínio é:
· O calculo da média final de cada aluno é dado pela fórmula: (Nota1 * 2 + Nota2 * 3)/5.
Neste momento, temos o conhecimento básico necessário para discutirmos como devemos elaborar a especificação de requisitos do software.
Especificação de requisitos do software
A atividade de especificação de requisitos do software é uma atividade bastante desafiadora. É complexo:
· Identificar as reais necessidades do cliente;
· Lidar com clientes;
· Formalizar as necessidades do cliente através da especificação de requisitos, de forma que esta seja de fácil entendimento para o cliente e forneça as informações necessárias para a equipe de desenvolvimento;
· Lidar com domínios desconhecidos. Entende-se por domínio o contexto para o qual o software está sendo desenvolvido; por exemplo: contabilidade, medicina, controle de estoque. Para ilustrar esta dificuldade, imagine-se elaborando a especificação dos requisitos de um módulo estatístico para um sistema do mercado financeiro.
A lista apresentada não é completa, mas fornece indícios reais da complexidade desta atividade. Iremos trabalhar nesta matéria com uma visão mais simplificada e didática do problema. É importante que fique claro que sempre a melhor forma de aprendermos algo é exercitando na prática e que o material técnico disponível na literatura vai sempre fornecer apenas o embasamento para que você possa desempenhar suas atividades. A distância entre o que está escrito e o que é feito dependerá do esforço, competência e experiência de cada um.
Dito isto, voltemos ao nosso estudo de caso. Devemos definir os requisitos para o sistema de gestão de festas. O primeiro passo será definir os requisitos funcionais do software. Esta definição é feita através de reuniões de identificação dos requisitos envolvendo clientes e analistas de requisitos. Para o software de gestão de festas, chegou-se aos requisitos funcionais definidos na Tabela 1.
|
O software deverá permitir que o gerente cadastre salões de festas. | |
|
O software deverá permitir que o gerente cadastre profissionais. | |
|
O software deverá permitir que o gerente realize o cadastramento de serviços utilizados em uma festa de casamento, como buffet, carros utilizados. | |
|
O software deverá permitir que o cliente realize o cadastramento da lista de convidados. | |
|
O software deverá permitir que o cliente realize o cadastramento das lojas de presentes. | |
|
O software deverá permitir que o cliente elabore da configuração da festa pelo cliente. |