Sistema de Inscrições A Universidade pretende desenvolver um Sistema de Inscrições A Secretaria Académica prepara o curriculum de disciplinas para um semestre • Uma área vocacional oferece várias disciplinas Cada Estudante selecciona 6 disciplinas, 4 da sua área vocacional e 2 de uma área de opção Assim que o estudante faz a sua inscrição a Contabilidade é notificada e o valor é contabilizado na conta do estudante. Os estudantes podem utilizar o Sistema de Inscrições para alterar as disciplinas escolhidas durante um certo periodo após a inscrição Os professores utilizam o sistema para aceder á lista dos candidatos inscritos nas disciplinas que oferecem. Os utilizadores do Sistema de Inscrições possuem senhas (passwords) que são utilizadas para validar o acesso. Actores Um actor é alguém ou algo que tem de interagir com o sistema que está a ser desenvolvido Secretaria Académica Professor Estudante Contabilidade Use Cases Um “use case” é um padrão de comportamento que o sistema exibe; pode ser associado a um serviço que é disponibilizado. – Cada “use case” é uma sequencia de transações relacionadas, executadas num diálogo entre um actor e o sistema Os actores são identificados para que se determinem as suas necessidades – – – – Secretaria Académica -- manter curriculum de disciplinas Professor -- solicitar lista de candidatos inscritos Estudante -- inscrever em disciplina Contabilidade -- receber a informação contabilística da Secretaria Académica Manter Curriculum Solicitar Lista Candidatos Fazer inscrição Fluxo de Eventos Manter Curriculum Este “use case” inicia-se quando a Secretaria Académica acede ao Sistema de Inscrições e fornece a sua password. O sistema verifica que a password é valida (E-1) e notifica a Secretaria Académica para seleccionar o semestre corrente ou um semestre futuro (E-2). A Secretaria insere o semeste pretendido. O sistema solicita à Secretaria Académica que seleccione a operação que pretende realizar: ADICIONAR, REMOVER, REVER ou TERMINAR. Se a actividade selecionada for ADICIONAR inicia-se o subfluxo S-1: Adicionar uma disciplina. Se a actividade selecionada for REMOVER inicia-se o subfluxo S-2: Remover uma disciplina. Se a actividade selecionada for REVER inicia-se o subfluxo S-3: Rever curriculo. Se a actividade for QUIT, o “use case” termina. Diagrama de “Use Case” Os diagramas de “Use case” são criados para visualizar as relações entre os actores e os “use cases” Solicitar Lista de Candidatos Professor Estudante Inscrever em Disciplina Contabilidade Manter Curriculum Secretaria Académica Concretização do “Use Case” O diagrama de “use case” apresenta uma visão externa do sistema O diagrama de interacção descreve o funcionamento do “use cases” através das interacções entre comunidades de objectos. Podem ser utilizados dois tipos de diagramas de interacção – – Diagramas de Sequencia Diagramas de Colaboração Diagrama de Sequencia Um diagrama de sequencia apresenta as interacções entre objectos organizadas numa sequencia temporal : Estudante formulário Inscrição gestor inscrição matemática 1: preenche info 2: submete 3: adiciona disciplina (jose, matematica, estatística) 4: Funciona? 5: Funciona? 6: adiciona (jose) 7: adiciona (jose) matemática estatística Diagrama de Colaboração Um diagrama de colaboração apresenta as interacções entre objectos organizadas em torno dos objectos e das suas ligações 1: define informação disciplina 2: processa Formulario disciplina: FormularioDisciplina 3: adiciona disciplina : Secretaria Académica oGestor : gestorCurriculum umaDisciplina : Disciplina 4: nova disciplina Diagramas de Classes Um diagrama de Classes apresenta a existencia de classes e suas ligações segundo a visão lógica do sistema Elementos de modelaçãoUML nos diagramas de class – – – – Classes e a sua estrutura e comportamentos Relações de associação, agregação, dependencia,e herança Indicadores de multiplicidade e navigação Nomes de “papeis” Classes Uma classe é uma coleção de objectos com uma estrutura e comportamento, relacionamentos e semantica comuns Identificam-se classes examinando os objectos presentes nos diagramas de sequencia e de colaboração Uma classe é desenhada como um rectangulo com três compartimentos Classes devem ser designadas através de nomes utilizados no vocabulário do domínio. – – Devem ser criadas normas de identificação ex., todas as classes tem um nome singular que começa por maiuscula Classes AlgoritmoPlaneamento FormInscricao GestorInscricao Disciplina Estudante Professor OfertaDisciplina Operações O comportamento de uma classe é representado pelas suas operações Operações são identificadas nos diagramas de interacção formulario inscrição gestor inscrição GestorInscrição 3: adicionar disciplina (jose, matematica, estatistica) adicionarDisciplina (Estudante, Area,Disciplina) Atributos A estructura de uma classe é representada pelos sues atributos Podemos determinar os atributos examinando a definição das classes, os requisitos do problema e apliccando o nosso conhecimento do domínio Cada oferta de disciplina possui um número, localização e hora OfertaDisciplina numero localização hora Classes AlgoritmoPlaneamento FormInscrição GestorInscrição adicionarEstudante(Disciplina, InfoEstudante) Disciplina nome numeroCreditos Estudante open() addStudent(StudentInfo) nome área Professor nome categoriaAcademica OfertaDisciplina localização abri() AdicionarEstudante (InfoEstudante) Relacionamentos Os relacionamentos estabelecem um caminho para a comunicação entre objectos Os diagramas de sequencia e/ou colaboração devem ser examinados de modo a determinar as ligações que devem existir entre objectos para concretizar o comportamento deverá existir uma ligação entre dois objectos que precisam de “falar”. O UML define três tipos de relacionamentos: – – – Associação Agregação Dependencia Procurar Relacionamentos Os relacionamentos identificam-se a partir dos diagramas de interacção – Se dois objectos necessitam de “falar” então deverá existir um caminho para a essa comunicação GestorInscrição Gestor Inscrição Matematica: Disciplina 3: adiciona estudante(jose) Disciplina Relacionamentos AlgoritmoPlaneamento FormInscrição GestorInscrição adicionaEstudante(Disciplina, InfoEstudante) Disciplina nome numeroCreditos Estudante abre() adicionaEstudante(InforEstudante) nome área Professor nome categoriaAcademica OfertaDisciplina localização abre() adicionaEstudante(InfoEstudant) Multiplicidade e Navigação Multiplicidade define quantos objectos participam no relacionamento – – Multiplicidade representa o número de instancias de uma classe que estão relacionadas com UMA instancia de outra classe. Para cada associação e agregação temos de decidir qual a multiplicidade em cada extremo do relacionamento. Embora, por princípio, as associações e agregações sejam bi-direcionais é desejavel restringir a navegação a uma direcção previlegiada – Se a navegação for restringida, será incluida uma seta para indicar a direcção da navegação Multiplicidade e Navigação AlgorimoPlaneamento FormInscrição 0..* 1 GestorInscrição adicionaEstudante() Disciplina 1 0..* Estudante nome numeroCreditos abre() adicionaEstudante(InfoEstudante) nome area 1 3..10 Professor 4 nome categoriaAcademica 1 1..* OfertaDisciplina localização 0..4 abre() adicionaEstudantet(InfoEstudante) Herança Herança é um relacionamento etre uma superclasse e as suas subclasses Existem dois modos de identificar herança: – – Generalização Especialização No nivel mais elevado da hierárquia apresentam-se atributos, operações e/ou relacionamentos comuns Herança AlgoritmoPlaneamento FormInscrição GestorInscricao adicionaEstudante() Disciplina nome numeroCreditos UtilizadorInscricao nome Estudante abre() adicionaEstudante(InfoEstudante) area Professor categoriaAcademica OfertaDisciplina localização abre() adicionaEstudantet(StudentInfo) O Estado de um Objecto O diagrama de transição de estados apresenta – – – a história da vida de uma dada classe os eventos que provocam a transição de um estado para outro As acções que resultam de uma mudança de estado Os diagrama de transição de estado são criados para objectos com um comportamento dinamico significativo Diagrama de Transição de Estado Adiciona estudante[ contador < 10 ] Adiciona Estudante / Set contador = 0 Iniciado do: Inicia disciplina Aberto entry: Regista estudante exit: Incrementa contador Cancela Cancela [ contador = 10 ] Cancelado do: Notifica estudantes inscritos Cancela Encerrado do: Finaliza disciplina O Mundo Físico: Implementação Diagramas de componente ilustram a organização e dependencias entre componentes de software Um componente pode ser – – – Um componente programa fonte Um componente “run time” Um componente executavel Diagrama de Componentes SecretariaAcademica.exe Pessoa.dll Disciplina.dll Disciplina Estudante OfertaDisciplina Professor Interfaces Os interfaces de um componente devem ser apresentados no diagrama de componentes Registo.exe Contabilidade.exe Contabilidade Implantação do Sistema O diagrama de implantação apresenta a configuração dos elementos de processamento (computadores) e dos processos de software que os utilizam O diagrama de implantação descreve a localização dos componentes na empresa. Diagrama de Implantação Secretaria Académica Base de dados Edíficio Principal Biblioteca Sala Convívio Estensão do UML Os Estereotipos são um mecacnismo de classificação que permitem estender os elementos de notação do UML Os Estereotipos podem ser utilizados para classificar e estender associações, relações de herança, classes e componentes Exemplos: – – – Estereótipos de classe : fronteira, controlo, entidade, utilidade, excepção, interface Estereótipos de herança: “uses” e “extends” Estereótipos de componente: subsistema “Control” “Excepção” GestorInscrição Inscrição Recusada Estensão do UML Um package é uma forma de organização de elementos de modelação. Cada pacote pode conter uma colecção de “use cases”, uma colecção de classes ou uma colecção de componentes. As setas descrevem dependencias entre packages. Exemplos – – – – Interfaces: FormInscrição, FormSelacçaoDisciplina, ... Elementos da Universidade: Disciplina, OfertaDisciplina, ListaCandidatos Pessoas: InfoEstudante, InfoProfessor Base de Dados: repositório de dados Package Estensão do UML Packages Interfaces Elementos Pessoas Universidade Base de dados Conclusões Modelação visual pode ser utilizada para: – – – – – Definir processos de negócio Comunicar Dominar complexidade Definir arquitectura de software Promover reutilização O UML é uma linguagem “standard” para visualizar, especificar, construir e documentar os elementos de um sistema complexo de software. – O UML pode sre utilizado com todos os processos, ao longo de todo o ciclo de desenvolvimento e utilizando diversas tecnologias de implementação.