Escola Superior de Ciência e Tecnologia Engenharia Informática Análise de Sistemas Informáticos 3º ano Exame 12 de Julho de 2006 Docentes: José Correia e João Paulo Rodrigues Duração: 90 m; Tolerância: 10 m Parte Teórica- Prática Sem consulta Cotação: 1. 13%; 2. 6%; 3. 15%; 4. 8%; 5. 18%; 6. 25%; 7. 15% Observações: Escreva o seu nome no enunciado do teste. Se tiver dúvidas de interpretação em alguma das questões/problemas do enunciado deste teste, assuma a sua interpretação e indique-a na resolução do teste. 1. Para cada uma das afirmações seguintes, assinale (no enunciado do teste) as que são Verdadeiras (V) e as alsas (). No contexto da orientação por objectos, um objecto é algo que possui estado, comportamento e identidade. A abstracção (um dos princípios fundamentais da orientação por objectos) é o processo de esconder todos os detalhes dum objecto, que não contribuem para a definição das suas características essenciais. (o encapsulamento...) A Unified Modeling Language (UML) é uma norma da ISO. (norma da OMG) A Unified Modeling Language (UML) tem particularidades e notações específicas consoante a ferramenta de modelação que for utilizada. Todos os objectos de uma classe são, obrigatoriamente, caracterizados pelos mesmos atributos. O valor de um atributo de um objecto só pode mudar ao longo do tempo se a respectiva classe não fizer parte de uma generalização. Num diagrama de classes, a agregação traduz a criação de objectos mais complexos a partir de objectos mais simples. (o todo e as partes) Os diagramas de sequência mostram um padrão de interacção entre vários objectos, com objectos e mensagens trocadas entre esses objectos por uma certa ordem. Os diagramas de colaboração ilustram interacções entre objectos com ênfase para a representação das ligações entre objectos. Num diagramas de estados se houver duas transições diferentes que saiam do mesmo estado pode dar-se o caso de estas transições serem disparadas pelo mesmo evento. Num diagramas de estados o intervalo de tempo entre dois eventos corresponde a um estado em que o objecto/sistema se encontra. Num diagramas de estados as actividades estão associadas aos eventos. (aos estados) O estado de um objecto/sistema é uma condição, ou situação, na vida de um objecto/sistema, durante a qual o objecto/sistema satisfaz alguma condição, realiza alguma actividade, ou espera por algum evento. Pág. 1/5
2. Considere o seguinte diagrama UML: Que tipo de diagrama se trata? Identifique (escrevendo no próprio enunciado) os elementos UML que estão assinalados por setas ( ) Diagrama de distribuição Nota: Este exemplo foi usado na correcção da requência e faz parte dos acetatos de Diagramas de Implementação 3. No contexto da modelização usando UML, os diagramas de casos de uso permitem capturar o comportamento (funcionalidades) do sistema do modo como é visto pelos utilizadores, sem ter de especificar como é que esse comportamento é implementado. a) Em termos genéricos, a que critérios deve obedecer a definição (escolha) dos casos de uso de um dado sistema e a atribuição dos respectivos nomes? Um caso de uso deve corresponder a uma sequência de acções relacionadas que um sistema realiza para produzir um resultado com valor para um actor (que interage com esse caso de uso). Os nomes dos casos de uso podem ser dados na perspectiva do sistema ou do(s) actor(es) que com ele interage(m) e devem sempre incluir um verbo (porque os casos de uso representam acções). b) Quantos diagramas de sequência (zero, um, vários) podem ser associados a um determinado caso de uso? Justifique sucintamente. A um caso de uso podem-se associar vários diagramas de sequência, um para cada uma das sequências normais e sequências excepcionais de funcionamento do caso de uso. c) Os actores existentes num diagrama de casos de uso de um sistema podem aparecer em diagramas de interacção referentes a esse sistema? Justifique/explique sucintamente. Sim, Actores podem aparecer em diagramas de interacção diagramas de sequência ou colaboração, como objectos externos ao sistema, os quais, normalmente, iniciam as interacções. Pág. 2/5
4. Desenhe um diagrama de classes que ilustre (modelize) todas as possíveis ligações mãe filho e pai filho entre objectos da classe PESSOA. Ligações são instâncias de Associações entre Classes. Ligações da mesma associação relacionam objectos da(s) mesma(s) classe(s). Associações entre objectos da mesma classe necessitam, obrigatoriamente, de identificação explícita dos papeis desempenhados por cada objecto. Nota: Este exemplo faz parte dos acetatos de Diagramas de Classes. 5. Considere a máquina de corte de bacalhau de um hipermercado. Esta máquina é baseada numa lâmina operada pneumaticamente, de forma análoga a uma guilhotina. Devido à elevada força imprimida sobre a lâmina, foi instalado um sistema de forma a proteger o operador. A lâmina só é baixada por acção simultânea de dois botões, colocados em cantos opostos da máquina. Quando o operador carrega em simultâneo nos dois botões, a máquina baixa a lâmina até à sua posição mais baixa, regressando à posição de repouso após concluído o ciclo. Se durante o ciclo de operação (enquanto a lâmina baixa ou sobe) o operador libertar um dos botões, a máquina pára instantaneamente, só podendo voltar a trabalhar após ter sido carregado o botão RESET, que coloca a máquina no seu estado inicial. Apresente o diagrama de estados do sistema garantindo sempre uma operação segura. Proposta de solução: O Diagrama de Estados do sistema (da posição da Lâmina) inclui obrigatoriamente: ESTADOS: (1) Lâmina em cima (na posição de repouso) (2) Lâmina a baixar (3) Lâmina parada (4) Lâmina em baixo (5) Lâmina a subir TRANSIÇÕES entre ESTADOS e EVENTOS que as provocam: Estado inicial ( ) (1): Ligar a máquina (1) (2): premir simultaneamente os 2 botões (2) (3): libertar um dos botões (3) (5): premir botão RESET (2) (4): atinge posição mais baixa (4) (5): conclui corte (5) (1): atinge posição mais alta Pág. 3/5
Exemplo semelhante que faz parte dos acetatos: Porta da Garagem com motor Pág. 4/5
6. Uma empresa detentora de navios de cruzeiro, pretende um novo sistema de informação para instalar nos seus navios. O objectivo principal é o de acabar com as compras em dinheiro no navio, sendo todas as despensas pagas no final do cruzeiro. As despesas podem ser realizadas no bar, na loja, e na papelaria. Para um melhor controle das despesas dos clientes, as despesas são afectas aos passageiros e não ao camarote. Este processo permite que as despesas realizadas por crianças possam ser identificadas, de modo a ser possível responsabilizar os pais. Cada despesa tem também a indicação do funcionário envolvido na mesma. A despesa deve descrever o artigo, a data da despesa e a quantidade adquirida. O valor do artigo está guardado no registo dos artigos. As despesas são pagas no final do cruzeiro, sendo a factura emitida por camarote. Tenha em mente que as despesas realizadas (os artigos comprados) não podem ser vendidos fora da loja respectiva. Por exemplo: não deverá ser possível vender roupa no bar. Os passageiros são univocamente identificados pelo numero do seu bilhete e para cada um é necessária a seguinte informação: nome, morada, nacionalidade, idade e o camarote que ocuparam. Note que os camarotes podem ser ocupados por mais do que um passageiro. Existe na base de dados o registo de todos os funcionários do navio. Para além do seu nome e código é necessário saber também a patente. Represente o diagrama de classes do problema, tendo em conta que a informação deve ser obtida, sempre que possível, através de relações entre classes e não por atributos de texto. 7. Apresente o diagrama de classes que seria produzido por processos de reverse engineering por uma ferramenta CASE como o Rational Rose ou o Poseidon UML, a partir do código Java apresentado. class ClasseA int a; ClasseA ref0; void metodo1 () class ClasseB ClasseC ref1; ClasseD ref2[]; class ClasseC references ClasseA ClasseB ref3; void metodo1 () class ClasseD ClasseB ref4; ClasseA ref 5 Pág. 5/5