Projeto de Engenharia de Software

De Aulas

Links relacionados:

Definição Inicial

Projeto semestral: Modelar um sistema de software que automatize um sistema de informação ou controle um processo qualquer.

O primeiro documento a ser gerado deve conter:

  1. Escopo do Projeto;
  2. Justificativas;
  3. Alternativas;
  4. Produtos do Projeto;
  5. Beneficiários Alvo;
  6. Gestão;
  7. Desenvolvimento;
  8. Orçamento Preliminar;
  9. Tempo de Execução Estimado;
  10. Comentários Finais.

Etapas do Projeto

Visão Geral

Documento apresentando de maneira breve as principais ideias do projeto, destacando as principais funcionalidades que caracterizam o sistema.

Especificação de Requisitos

Consiste na coleta e organização dos requisitos funcionais e não funcionais que caracterizam a finalidade e uso do sistema. Para essa etapa, pode-se utilizar o FreeMind para organizar os requisitos e um texto auxiliar explicando a estrutura criada. Essa etapa também pode ser feita no astah professional através da criação de uma Requirement Table e/ou um Requirement Diagram. O conteúdo relevante de cada requisito pode ser consultado no livro referência da disciplina.

Casos de Uso

Consiste na relação dos principais processos do sistema. Deve ser pensando do ponto de vista do usuário usando o sistema, e deve consistir em uma unidade funcional coerente. A organização dos casos de uso é feita através do artefato UseCase Diagram no Dia, Umbrello ou astah professional.

Expansão dos Casos de Uso

Consiste na documentação dos casos de uso relacionados na etapa anterior, fornecendo detalhes que auxiliam na sua interpretação. Explicita as principais informações do sistema. Pode ser organizado em tabelas no LibreOffice ou, no caso do Astah Profissional, através da criação do artefato UseCase Description.

Operações e Consultas do Sistema

Operações de sistema consistem em métodos ativados a partir de um evendo de sistema, ou seja, resposta a ação do usuário. Uma consulta consiste em simples verificação de informação armazenada. Nesta etapa devem ser relacionados os principais procedimentos que o sistema deve ser capaz de executar para realizar os casos de uso. Devem ser organizados em um Sequence Diagram.

Modelo Conceitual

O Modelo conceitual serve para apresentar as principais entidados do domínio do sistema, bem como suas relações e principais características. Descreve a informação que o sistema vai gerenciar. Deve ser organizado em um Class Diagram.

Contratos

Os contratos capturam a intenção por parte do usuário, e relacionam as operações e consultas com as informações determinadas na etapa do modelo conceitual. A estrutura de um contrato pode ser encontrada no livro de referência e organizada de maneira a ser apresentada posteriormente.

Projeto da Camada de Domínio

Corresponde a etapa de projeto, onde questões de implementação começam a ser discutidas.

Diagrama de Classes do Projeto

É uma representação da estrutura e relação das classes que irão compor o sistema, onde classe é um componente de software de acordo com o paradigma de orientação a objeto explicado na disciplina. O diagrama de classes deve ser apresentado com um Class Diagram. Difere do Modelo Conceitual por apresentar classes de software, e não mais informações abstratas do domínio, ou seja, começa a representar questões de implementação.

Diagrama das Classes de Interface (Boundary) e Controle (Control)

Similar ao diagrama de classes de projeto, porém agora tem o objetivo de representar classes das camadas boundary e control, de acordo com o modelo de camadas MVC.

Diagramas de Sequencia e/ou Colaboração (Comunicação)

Diagramas que representam a dinâmica do sistema. Representam a sequencia de métodos a serem chamados dentro de um processo, bem como o fluxo de informações e troca de mensagens entre classes e/ou objetos de software. Podem ser representados através de Sequence Diagrams e Communication Diagram.

Diagramas de Transição de Estados

É uma representação do estado ou situação em que um objeto pode se encontrar no decorrer da execução de um processo de sistema. Pode ser representado pelo diagrama Statemachine Diagram.

Projeto da Camada de Persistência

A camada de persistência corresponde aos componentes responsáveis por armazenar informações relevantes do sistema de maneira persistente, ou seja, de maneira que os dados não se percam ao final da execução do software, e possam ser resgatados quando necessário. Pode-se usar bancos de dados, arquivos ou outras estratégias de armazenamento. Nesta etapa deve-se explicitar quais informações devem ser armazenadas, a estrutura destas informações e a maneira de armazenamento.

Detalhamento da Arquitetura

Documento descritivo das principais características estruturais do sistema, tais como: divisão do sistema em subsistemas, alocação de software e hardware, políticas de utilização de recursos, distribuição, linguagem a ser usada e etc.