380 likes | 484 Views
LESERC. Laboratory of Software Engineering and Computer Network. Engineering for a better life. Estudo de caso em UML. Denivaldo Lopes. LESERC (Laboratório de Engenharia de Software e Rede de Computadores) Web Site: http://www.leserc.dee.ufma.br/ Contato: denivaldo.lopes AT dee.ufma.br.
E N D
LESERC Laboratory of Software Engineering and Computer Network Engineering for a better life Estudo de caso em UML Denivaldo Lopes LESERC (Laboratório de Engenharia de Software e Rede de Computadores) Web Site: http://www.leserc.dee.ufma.br/ Contato: denivaldo.lopes AT dee.ufma.br
Sumário • Sistema de controle de acesso a um prédio • Diagramas de caso de uso • Diagrama de seqüência • Diagramas de colaboração • Diagrama de classe • Diagrama de atividade • Diagrama de implantação
Abordagem • UML é uma linguagem de modelagem. • UML não é um método de modelagem. • UML não especifica uma abordagem de modelagem, cada um é livre para escolher um processo. • Um método serve para canalizar e ordenar a criatividade de pessoas que são responsáveis pela modelagem de uma aplicação. • UML por si só não garante um resultado satisfatório de desenvolvimento do sistema.
Abordagem • O valor não está no método, mas nas pessoas que se servem do método. • A abordagem que usaremos é seguinte: Arquitetura Iterativo e Incremental Caso de uso <<Centrado na>> <<No transcorrer>> <<dirigido por>> Processo genérico Grupo A Empresa B
Determinação das necessidades • O contato com o contratante: as necessidades do sistema são determinadas à partir das informações recolhidas durante os encontros com os funcionários de informática e os futuros utilizadores do sistemas. • Os usuários dizem o que querem • Os prof. de informática levantam as necessidades que os usuários desejam realizar. • Evitar conversas sobre hardware e linguagens de programação. • Centrar a discussão no problema e na lógica do negócio.
Representação das necessidades • As necessidades podem ser expressas na forma de caso de uso Utilizador C Utilizador A Conjunto de Necessidades Utilizador B
Análise do domínio • A modelagem através de caso de uso segue um critério de decomposição funcional. • Evite fazer a decomposição através da arquitetura do sistema, para não engessar o sistema. • Os aspectos estáticos devem ser expressos por diagramas de classe • Os aspectos dinâmicos devem ser expressos por diagramas de colaboração e atividade
Controle de acesso de um prédio • O espaço a proteger é um prédio de dois níveis com uma área de 250 m2 • O prédio é dividido em 4 zonas • Compartimentos: • Salas de escritório • Laboratórios • Administração • Deve haver direitos de acesso • Um administrador do sistema • Guardas • Usuários • O sistema deve permitir semanas tipo (configuração do acesso a salas em função do horário, dia da semana)
Supervisor Portador de cartão Guarda Descrição do caso de uso • Representação das categorias de usuários
configuração supervisor Identificação Controle de acesso Portador de cartão Guarda Supervisão Caso de uso
:Supervisor :Sistema Login(senha) verificação Autorização Caso de uso: configuração Identificação
:Sistema :Supervisor Modificação de uma porta Lista de porta Escolha de uma porta Informações da porta Modificação das informações Informação da porta Salvar informações Caso de uso: configuração Modificações das informações relativas a uma porta
:Sistema :Supervisor Modificação de uma pessoa Lista de pessoas Escolha de uma pessoa Informações da pessoa Modificação das informações Informação da pessoa Salvar informações Caso de uso: configuração Modificações das informações relativas a uma pessoa
:Sistema :Supervisor Modificação de um grupo de pessoas Lista de grupos Escolha de um grupo de pessoas Informações do grupo Modificação das informações Informações do grupo de pessoas Salvar informações Caso de uso: configuração Modificações das informações relativas a um grupo de pessoas
:Sistema :Supervisor Modificação de um grupo de portas Lista de grupos Escolha de um grupo de pessoas Informações do grupo Modificação das informações Informações do grupo de portas Salvar informações Caso de uso: configuração Modificações das informações relativas a um grupo de portas
:Sistema :Supervisor Busca de uma pessoa (cartão) Informações das pessoas Caso de uso: configuração Busca de uma pessoa em função do cartão
:Sistema :Supervisor Busca de portas autorizadas Lista de pessoas Escolha de uma pessoa Lista de portas Escolha de uma porta Informações da porta Caso de uso: configuração Busca de portas autorizadas para uma pessoa
:Supervisor :Sistema Modificação do acesso de um grupo de pessoas Lista o grupo de pessoas Escolha de um grupo de pessoas Informações de um grupo de pessoas Escolha de um acesso a um grupo de portas Informações sobre o acesso Modificações das informações Informações sobre o acesso Salvar informações Caso de uso: configuração Modificações de direitos de acesso de um grupo de pessoas
:Sistema :Supervisor Modificação de uma semana tipo Lista de semanas tipo Escolha de uma semana tipo Informações de uma semana tipo Modificações das informações Informações sobre a semana tipo Salvar informações Caso de uso: configuração Modificações de um tipo de semana
:Sistema :Supervisor Busca de direitos de acesso de uma pessoa por uma porta Lista de portas Escolha de porta Lista de pessoas Escolha de pessoas Informações sobre o acesso Caso de uso: configuração Busca dos direitos de acesso de uma pessoa por uma porta específica
:Guarda :Sistema Login(senha) verificação Autorização Caso de uso: supervisão O guarda utiliza a supervisão Identificação
Caso de uso: supervisão Relatório de eventos :Sistema :Guarda Relatório de alarmes (período) Lista de alarmes
Caso de uso: supervisão Relatório de eventos :Sistema :Guarda Relatório de eventos (período) Eventos
:Sistema :Guarda Abertura manual de uma porta Lista de portas Escolha de uma porta Abertura da porta Registro do evento Caso de uso: supervisão Abertura manual de uma porta
:Sistema :Guarda Incêndio Abertura de todas as portas Caso de uso: supervisão Alarme de incêndio
:Sistema :Portador de Cartão Apresenta seu cartão Verifica os direitos de acesso [direitos de acesso OK] Abertura de porta Caso de uso: controle de acesso O portador de cartão utiliza o controle de acesso
Exercício • Propor diagramas de colaboração, diagramas de classe e diagrama de implantação
1:nome=LerNome() 2:senha=LerSenha() :Login :Supervisor 3:Verificar(senha) Supervisor: Pessoa Login Pessoa Diagrama de colaboração referente a identificação Diagrama de classe preliminar
Diagrama de estado-transição Espera nome Nome lido [nome e senha incorreto] Espera senha [nome e senha OK]
2:Ler() 3:Escrever() p:Porta :Supervisor 1:selecionar() :Porta Diagrama de colaboração referente a modificação das informações de uma porta
:Pessoa 1:p=Selecionar() p: Pessoa 1:[i=1...n] g=Selecionar() :Grupo de Portas :Supervisor 3:Ler informações g: Grupo de Portas :Porta Pesquisa de portas habilitadas para uma pessoa específica p:Porta
:GrupoDePessoas 1:gPessoas=Selecionar() 3:Lista de acesso gPessoa: GrupoDePessoas 4: a=Acesso(gPortas) :Supervisor 2:gPortas= Selecionar() :Acesso 5:Leitura() 6:Salvar() a:Acesso :GrupoDePortas gPortas: GrupoDePortas Modificação de direitos de acesso de um grupo de pessoas a um grupo de portas p:Porta
1:Acesso(num. de cartão) :Portador de cartão cartão: Cartão 2:p=selectionar( num. cartão) :Porta :Pessoa 3:ListarAcesso() p:Pessoa 5:Éválida (Hora) 4:ListarAcessoNa(gPortas) :GrupoDePessoas :Acesso gPortas:GrupoDePortas Controle de Acesso: autorização de passagem gPessoa: GrupoDePessoas p:Porta :Acesso a:Acesso
Porta Pessoa GrupodePortas Nome Nome Acesso Cartão GrupodePessoas Validade NúmeroCartão Nome Diagrama de classe (parcial) gPessoa: GrupoDePessoas p:Porta :Acesso a:Acesso
1 <<RS422>> 1 <<processador>> <<dispositivo>> <<processador>> PC supervisor Leitor de cartões PC guarda 1 2 35 Arquitetura (Diagrama de Implantação) gPessoa: GrupoDePessoas p:Porta :Acesso a:Acesso
Exposição do exercício feito pelos alunos gPessoa: GrupoDePessoas p:Porta :Acesso a:Acesso
Exercício Propor o modelo UML de um sistema que gerencia a admissão de candidatos em um curso de pós-graduação. Realizar em grupos de 3 pessoas. Nota: A descrição do domínio deve ser pesquisada. gPessoa: GrupoDePessoas p:Porta :Acesso a:Acesso