Em um software em desenvolvimento para um Tribunal, foram levantados os seguintes requisitos:

1. A arquitetura do sistema deverá ser modularizada de modo a facilitar sua manutenção e adição de novas funcionalidades.

2. Ao registrar um processo, a descrição e todos os demais dados devem aparecer em, no máximo,2 segundos.

3. Cada processo deve ser associado a um identificador único (ID), que será utilizado para identificá-lo.

4. O sistema deverá suportar uma carga máxima de até 100000 usuários simultâneos.

5. Apenas usuários com privilégios de acesso de Juiz poderão visualizar históricos de andamento de processos.

6. O sistema deve permitir a inclusão, alteração e remoção de processos com os seguintes atributos: ID, número, origem, tribunal etc.

7. O sistema deve fazer log das transações autorizadas com processos em 24 horas, mesmo com falhas de energia ou de dispositivos.

8. O sistema deverá ser acessado completamente via browser HTTP/HTML, inclusive para suporte.

9. Deve ser possível capturar a informação do processo através de um leitor de código de barra, ou manualmente usando um código disponível e impresso no processo.

10. O sistema será desenvolvido para ambientes Windows e para máquinas com pelo menos 2 GB de memória.

11. O sistema será disponibilizado em português, mas de forma a permitir que versões em outros idiomas possam ser produzidas sem necessidade de ter acesso ao código fonte.

12. O usuário deve ser capaz de buscar todo o conjunto inicial dos bancos de dados ou selecionar um subconjunto a partir dele.

13. O sistema deverá usar componentes corporativos existentes sob forma de Enterprise JavaBeans.

14. Testes de Unidade e de Aceitação no sistema deverão ser completamente automatizados.

São requisitos funcionais os apresentados APENAS em