UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelo Conceitual 879 Projeto e Desenvolvimento de Sistemas de Informação Prof. Dra. Inês A. G. Boaventura
Onde estamos no processo de desenvolvimento unificado: Planejar e Elaborar Construir Implantar Ciclo de Desenvolvimento Ciclo de Desenvolvimento 2... Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar 2
Atividades da Fase Analisar Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas de Seqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado 3
Modelo Conceitual Mostra todos os conceitos importantes do domínio do sistema, bem como as associações entre esses conceitos. A idéia é fazer com que o usuário que tem acesso a esse modelo entenda os principais elementos do domínio que estão envolvidos no sistema a ser desenvolvido. Não mostra artefatos de software ou classes. Ele pode mostrar: conceitos, associações entre conceitos e atributos de conceitos. O modelo conceitual ajuda a esclarecer a terminologia ou vocabulário do domínio. 4
Modelo Conceitual É exibido por um conjunto de diagramas de estrutura estática, no qual não se definem operações. 5
Exemplo Venda data hora 2 Pago-por Pagamento quantia 6
EVITAR Artefato de Software: BDdeVendas Nome da classe refere-se à Implementação Venda data hora imprimir () Definição de comportamento 7
Como Identificar Conceitos? Alguns conceitos são bastante óbvios quando se descreve o sistema, como por exemplo os conceitos Leitor e Livro quando se fala em um sistema de Biblioteca. 8
Como Identificar Conceitos? Entretanto, muitos conceitos estão geralmente implícitos e requerem uma maior maturidade do analista para descobri-los. Por exemplo, o conceito de Empréstimo, no mesmo sistema de Biblioteca, poderia passar desapercebido por um analista inexperiente, que o colocaria como uma associação entre Leitor e Livro. 9
Como Identificar Conceitos? Sugestões básicas: Passo : Isole, no documento de requisitos ou na descrição dos casos de uso, elaborados na fase anterior, todos os substantivos presentes no texto Exemplo à seguir: Caso de uso Emprestar Livro 0
Passo : Isolar os substantivos Ação do ator. Este caso começa quando o Leitor chega ao balcão de atendimento da biblioteca e diz ao atendente que deseja emprestar um ou mais livros da biblioteca.. 2. O Atendente seleciona a opção para adicionar um novo empréstimo. 3. O atendente solicita ao leitor sua carteirinha, seja de estudante ou professor. 4. O atendente informa ao sistema a identificação do leitor. 6. O atendente solicita os livros a serem emprestados. 7. Para cada livro, o atendente informa ao sistema o código de identificação do livro. Resposta do Sistema 5. O sistema exibe o nome do leitor e sua situação. 8. O sistema informa a data de devolução de cada livro.
Exemplo: Biblioteca Lista de candidatos: Leitor Carteirinha Data de devolução Balcão Estudante Etc. Biblioteca Atendente Livros Opção Professor Sistema Identificação de leitor Nome do leitor Empréstimo Código de identificação do livro 2
Como Identificar Conceitos? Sugestões básicas: Passo 2: Para cada substantivo Verifique se é relacionado a assuntos importantes no domínio do sistema. Descarte: Os que fogem do escopo do sistema, Os que são similares a outros conceitos já identificados, Os que são propriedades de outros substantivos. Lembre-se: Conceitos relevantes são aqueles que referem-se a entidades que tem que ser lembradas pelo sistema: fazem algo, sabem algo, conhecem algo. 3
Exemplo: Biblioteca Lista de candidatos: Leitor Carteirinha X Data de devolução X Balcão X Estudante Etc. Biblioteca Atendente Livros Opção X Professor Sistema X Identificação de leitor X Nome do leitor X Empréstimo Código de identificação do livro X 4
Como Identificar Conceitos? Sugestões básicas: Passo 3: Isole os verbos que poderiam ser transformados em substantivos (possivelmente com a ajuda de outras palavras). Concentre-se nos verbos que representam ações de interesse para o sistema, ou seja, aqueles relacionados a eventos e transações que possuem informações importantes e que devem ser lembradas pelo sistema.. 5
Exemplo: Biblioteca Ação do ator. Este caso começa quando o Leitor chega ao balcão de atendimento da biblioteca e diz ao atendente que deseja emprestar um ou mais livros da biblioteca. 2. O Atendente seleciona a opção para adicionar um novo empréstimo. 3. O atendente solicita ao leitor sua carteirinha, seja de estudante ou professor. 4. O atendente informa ao sistema a identificação do leitor.... Resposta do Sistema 5. O sistema exibe o nome do leitor e sua situação. 6
Exemplo: Biblioteca Lista de Candidatos: Emprestar X Adicionar X Informar X... Já havia sido acrescentado Pelo substantivo Empréstimo 7
Como Identificar Conceitos? Sugestões básicas: Passo 4: Para cada candidato a conceito, verifique se ele é composto de outras partes que sejam de interesse para o sistema, mesmo que essas não apareçam explicitamente no texto. Por exemplo, um empréstimo normalmente refere-se a vários livros emprestados em uma mesma ocasião para um mesmo leitor. Linha do Empréstimo é um outro conceito. ( Item do Empréstimo) 8
Como Identificar Conceitos? Checklist de possíveis conceitos: Objetos físicos ou tangíveis: Livro, Leitor, TPV Especificação (descrição) de coisas: EspecificaçãodeLivro, EspecificaçãodeProduto Lugares: Biblioteca, Loja Transações: Emprestimo, Reserva, Venda, Pagamento, Linha de Itens de Transações: LinhaDeEmpréstimo, LinhaItemdeVenda Papéis desempenhados por pessoas: Atendente, Caixa Contêineres de outras coisas: Estante, Depósito, Armário, Coisas em um contêiner: Cópia de livro, Revista, item Catálogos: Catálogo de Livros, Catálogo de Produtos 9
Diretrizes para construir um modelo conceitual Liste os conceitos candidatos, usando o checklist de Conceitos e a identificação de substantivos, relacionados com os requisitos que estão sendo considerados. Desenhe-os em um modelo conceitual. Acrescente os atributos necessários para completar os requisitos de memorização. Registre as associações para as quais há necessidade de preservar alguma memorização 20
ATENÇÃO: ) Alguns dos substantivos são candidatos a conceitos e outros são candidatos a atributos. 2) A linguagem natural é imprecisa e essa definição depende do conhecimento e experiência do engenheiro de software, embora haja diretrizes disponíveis. 2
Como Identificar Atributos? Substantivos sublinhados a partir do texto do caso de uso podem ser candidatos a atributos dos conceitos já identificados. Cautela: não torne o modelo conceitual muito complexo desnecessariamente. limite-se a adicionar os atributos importantes para compreender o conceito, ou atributos que serão importantes para o futuro projeto do sistema 22
Exemplo: Como Identificar Atributos? Nome do conceito Leitor idleitor nome si tuacao idlivro Livro Empréstimo datadedevolucao Atributos do conceito 23
Associações Associação é um relacionamento entre conceitos, que precisa ser lembrado pelo sistema durante seu funcionamento Por exemplo, existe uma associação entre Empréstimo e Leitor, que precisa ser lembrada pelo sistema, pois quando o Empréstimo termina o Leitor deve ter sua situação regularizada. 24
Como identificar Associações? Algumas associações são bastante simples de serem identificadas, bastando aplicar certas regras básicas. Outras associações são implícitas e podem requerer mais experiência do analista para identificá-las logo na fase de requisitos, ou podem surgir mais adiante, na fase de projeto. Cautela: incluir associações em demasia causa um efeito indesejado, levando a um modelo confuso e conseqüentemente com pouca legibilidade. Portanto, uma regra básica é evitar colocar associações redundantes 25
Como identificar Associações? Regra : Um conceito que, fisicamente ou logicamente, faz parte de outro. Por exemplo, um livro que está fisicamente armazenado em uma estante ou um Item de Empréstimo que logicamente faz parte do Empréstimo. 26
Como identificar Associações? Regra 2: Um conceito que serve para descrever ou qualificar outro conceito. Por exemplo, um Livro pode ser classificado em diversas Categorias ou por Autor; um Item de Estoque que é descrito por uma Especificação de Produto. 27
Como identificar Associações? Regra 3: Um conceito que é responsável por registrar ou manter informações sobre outro. Por exemplo, o Atendente é quem registra e atende o Leitor; a Bibliotecária é responsável pelos Livros. 28
Associações na UML Nome da associação Atendente Lê-se: Um Atendente registra 0 ou mais Leitores. Um leitor é registrado por um atendente registra 0..* Leitor idleitor nome situacao Multiplicidade da associação 29
Associações na UML Direção de leitura do nome da associação Atendente A direção só deve ser colocada se for da direita para a esquerda ou de baixo para cima. É registrado por 0..* Leitor idleitor nome situacao 30
Multiplicidade C * C2 zero ou mais Muitos (as) C..* C2 um ou mais C..40 C2 um a quarenta C 5 C2 exatamente cinco C 3,5,8 C2 exatamente três, cinco ou oito 3
Associação Reflexiva Papel Pessoa nome +filho 0..n +pai é pai de 32
Especialização/Generalização/ Herança Herança é um mecanismo que permite que características comuns a diversos tipos sejam colocadas em um tipo base, ou supertipo. A partir de um tipo base, outros tipos podem ser especificados (os subtipos). Cada subtipo apresenta as características (estrutura e atributos) do supertipo e acrescenta a ele novas características. Dizemos que um subtipo herda todas as propriedades do supertipo e acrescenta suas características próprias e exclusivas. As propriedades do supertipo não precisam ser repetidas em cada subtipo. 33
Tipos e Especialização na UML Forno capacidade Microondas horario potencia A Gas temperatura Elétrico voltagem A Lenha quantmaxlenha Analógico Digital Acendimento Elétrico Acendimento com Fósforo Figura A Camping 34
Regras de Herança A regra é-um estabelece que todos os membros do conjunto de um subtipo devem ser membros do conjunto do supertipo, ou seja o subtipo é um supertipo. Por exemplo, podemos dizer que um microondas digital é um forno, e por isso possui todos os atributos (e comportamentos) esperados de um forno. 35
Regras de Herança A regra dos 00% estabelece que 00% da definição do supertipo dever ser aplicado ao subtipo se o supertipo possui um dado atributo, é necessário garantir que todos os subtipos também o possuam, ou seja, o atributo deve fazer sentido para eles e deve ser importante conhecer seu conteúdo. O mesmo vale para as associações do supertipo, que devem ser aplicáveis aos subtipos. 36
Regras de Herança Por exemplo, se incluirmos o tipo Cozinheiro no modelo da Figura A, e associarmos esse tipo ao tipo forno, significando que o Cozinheiro utiliza o Forno, isso deve ser verdadeiro para todos os subtipos, ou seja, todos os tipos de forno devem poder ser utilizáveis por um cozinheiro. 37
Tipos e Especialização na UML Cozinheiro utiliza Forno capacidade Microondas horario potencia A Gas temperatura Elétrico voltagem A Lenha quantmaxlenha Analógico Digital Acendimento Elétrico Acendimento com Fósforo Figura A Camping 38
Agregação Agregação é um mecanismo pelo qual um tipo inclui atributos (e comportamento) de outros tipos a ele agregados, indicando a existência de um todo, composto por partes. Um exemplo de agregação é um Fogão: consiste de Tampa, Forno, Queimador, e assim por diante. 39
Agregação na UML PainelDeControle Fogão..6 Queimador..6 BotaoAcen dedor Tampa Estufa Forno capacidade CD titulo ano..n Música nome cantor 40
Agregação Composta A agregação composta ou composição ocorre quando a multiplicidade na extremidade do composto pode ser no máximo. A notação em UML é um losango negro Automóvel Roda 4 4
Agregação compartilhada A agregação compartilhada, denotada em UML por um losango vazio, denota que a multiplicidade na extremidade do composto pode ser maior do que um. Pacote de UML referencia * Elemento de UML 42
Tipo Associativo É uma associação que também possui propriedades de tipo (ou um tipo que tem propriedades de uma associação). É mostrada como um tipo e é ligada por uma linha tracejada a uma associação. Empresa +empregador 0..n +empregado..n Pessoa Emprego salario 43
Tipo Associativo Indícios de que um tipo associativo pode ser útil em um modelo conceitual: Um atributo está relacionado com uma associação As instâncias do tipo associativo têm um tempo de vida dependente do tempo de vida da associação Existe uma associação muitos-para-muitos entre dois conceitos, bem como informações relacionadas à associação propriamente dita Empresa +empregador oferece..n Emprego salario 0..n possui +empregado Pessoa 44
Modelo Conceitual Biblioteca ^ faz 0..n 0..n Reserva período situacao 0.. 0.. corresponde a Atendente nome 0..n registra Leitor nome tipo faz 0..n corresponde a 0.. Empréstimo/Devolução data do empréstimo situação Bibliotecaria nome refere-se a > 0..n registra Livro titulo autor ano ISBN editora tipo possui 0..n CopiaDoLivro nro sequencial situacao liberadoparaemprestimo LinhaDoEmpréstimo 0.. data_prevista_devolução data_entrega_real..n 0..n refere-se a 45
Modelo Conceitual Elevador 46
Estudo de Caso: Modelo Conceitual do Sistema TPV Alguns Conceitos do Sistema TPV: TPV Venda Loja 47
Estudo de Caso: Identificação de Substantivos. Este caso de uso começa quando um Cliente chega a um ponto de pagamento equipado com um TPV com vários itens que deseja comprar. 2. O caixa registra o código universal do produto (UPC) de cada item. Se houver mais de um exemplar do item o caixa também pode entrar a quantidade. 3. Determina o preço do item e acrescenta informação sobre o item à transação de vendas em andamento. A descrição e o preço do item corrente são apresentados 48
Conceitos candidatos para o domínio TPV, restritos ao caso de uso Comprar Itens TPV EspecificaçãodeProduto Item LinhadeItemdeVenda Loja Caixa Venda Cliente Pagamento Gerente CatálogodeProdutos transação de vendas 49
Objetos do tipo relatório: incluir no modelo? Um recibo (nota fiscal) é um relatório (uma saída do sistema) de uma venda. A informação nele contida é derivada de outras fontes. Esta é uma razão para excluí-lo. Um recibo desempenha um papel especial em termos das regras do negócio. Confere ao portador o direito de retornar o item comprado. Esta é uma razão para incluí-lo. Uma vez que retornos não estão sendo tratados neste ciclo, Recibo será excluído. 50
Analogia com o Cartógrafo Use os nomes existentes no território Exclua as características irrelevantes Não inclua coisas que não estão lá. 5
O que acontece quando o mundo é irreal, abstrato? Exemplo: software de telecomunicações. Os conceitos são então abstratos, embora relacionados ao domínio de aplicação. Exemplo: Mensagem, Conexão, Diálogo, Roteamento, Protocolo. 52
O Conceito de Especificação (Descrição) Item Descrição Preço número série CUP O que aconteceria se todas as TVs de 9 fossem vendidas? Como fazer para saber o preço desse item de venda? Produto Descrição Preço CUP * descreve Item número série 53
Quando utilizar Descrições ( ou especificações) Acrescente um conceito de especificação ou descrição quando: Estiver excluindo instâncias de coisas que elas descrevem e isso resulta numa perda de informação que necessita ser mantida, devido à associação incorreta da informação com a coisa excluída Ele reduz informação redundante ou duplicada 54
Associações necessário-serconhecido versus associações para compreensão Motivação: no sistema TPV, seria necessário registrar a associação entre o gerente e o TPV (iniciar) ou entre o cliente e a venda (fulano é- responsável-por venda)? Modelo mínimo versus modelo que ilustra todos os relacionamentos que possam ser concebidos? Critério básico: satisfazer a todos os requisitos do tipo necessário-ser-conhecido e comunicar claramente uma compreensão essencial dos conceitos importantes no domínio do problema. 55
TPV: Conceitos e Associações Registra-venda-de Descritos-por Catálogo de Produtos Contém * Especificação de Produto..* LinhadeItemdeVenda Usado-por..* Descreve * * Contido-em Loja Estoca Item Registra-dados-da * v * Venda Possui..* Iniciado por Gerente capturada-em TPV 0..* Paga-por < Registra-Vendas-do Iniciada-por Iniciada-por Caixa 56 Pagamento Cliente
Atributo ou associação? pior Caixa nome TPVcorrente Não é um atributo simples melhor Caixa nome Usa TPV número 57
Atributo ou associação? Os atributos serão melhor definidos na fase de projeto. Evitar infiltrar o projeto nesta fase. Ex. não pensar em chave estrangeira, como em BDs relacionais. Teste: faz sentido distinguir instâncias do atributo? Se sim, é um conceito, se não, é um atributo. Ex. Faz sentido distinguir entre duas instâncias do número 5? Da cadeia gato? Em caso de dúvida modele como um conceito separado 58
0....* Modelo conceitual para o domínio do TPV * LinhadeItemdeVenda quantidade Contido-em Paga-por Venda data tempo Pagamento quantia * Iniciada-por Registra-Dados-da v Cliente Registra-venda-de Catálogo de Produtos Usado-por Capturada-em Descritos-por *.. Loja endereço nome Possui TPV..*..* Contém..* Estoca Iniciado por < Registra-Vendas-do * Especificação de Produto descrição preço CUP * Descreve Item Gerente Caixa 59
Glossário 60
Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas de Seqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado 6
Glossário Um Glossário, ou Dicionário (de Dados) do Modelo lista e define todos os termos que requerem esclarecimento. Objetivos: melhorar a comunicação e reduzir o risco de mal-entendidos. 62
Glossário É criado inicialmente na fase Planejar e Elaborar. É continuamente aperfeiçoado em cada ciclo de desenvolvimento. Pode ser usado para registrar regras do negócio e restrições a elementos aos quais a regra ou restrição se aplica. 63
Exemplo: glossário para o TPV Termo Comprar Itens Categoria caso de uso Comentários Descrição do processo de compra de itens por um cliente em uma loja EspecificaçãoDoProduto atributo.descrição: Texto Uma curta descrição de um Item em uma Venda e sua EspecificaçãodeProduto associada Item tipo Um item à venda em uma loja Pagamento tipo Um Pagamento em dinheiro EspecificaçãodeProduto. Preço:Quantidade atributo O preço de um Item em uma Venda e sua especificação associada 64
Exemplo: glossário para o TPV Termo LinhadeItemdeVenda. Quantidade:Inteiro Categoria atributo Comentários A quantidade comprada de um tipo de Item Venda tipo Uma transação de Venda LinhadeItendeVenda tipo Uma linha de item para um particular Item comprado numa Venda Loja tipo O lugar onde ocorre venda de itens Venda.total:Quantia atributo O total geral da Venda 65
Exemplo: glossário para o TPV Termo Pagamento.quantia: Quantidade EspecificaçãodeProduto: UPC... Categoria atributo atributo Comentários A quantidade de dinheiro fornecida ou apresentada para pagamento pelo cliente O código universal de produto to item e sua EspecificaçãodeProduto 66
Próximo Assunto Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas de Seqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado 67