Parceria Fundação Educacional do Município de Assis (FEMA) Universidade Federal de São Carlos (UFSCar)

Tamanho: px
Começar a partir da página:

Download "Parceria Fundação Educacional do Município de Assis (FEMA) Universidade Federal de São Carlos (UFSCar)"

Transcrição

1 Curso de Pós-Graduação Lato sensu Especialização em Computação Desenvolvimento de Aplicações Distribuídas Disciplina Análise Orientada a Objetos Professor Dr. Antonio Francisco do Prado Parceria Fundação Educacional do Município de Assis (FEMA) Universidade Federal de São Carlos (UFSCar) Assis, Março de 2006

2 Índice 1. INTRODUÇÃO ENFOQUES DOS MÉTODOS DE DESENVOLVIMENTO DE SOFTWARE MODELAGEM USANDO DECOMPOSIÇÃO FUNCIONAL MODELAGEM USANDO FLUXO DE DADOS MODELAGEM DE INFORMAÇÕES MODELAGEM ORIENTADA A OBJETOS PRINCÍPIOS DA ORIENTAÇÃO A OBJETOS ABSTRAÇÃO ENCAPSULAMENTO CLASSE E OBJETO HERANÇA ESCALA ASSOCIAÇÃO COMUNICAÇÃO COM MENSAGENS POLIMORFISMO MÉTODOS ORIENTADOS A OBJETOS(HISTÓRICO) MÉTODO WIRFS-BROCK [WIRFS-BROCK ET ALII 90] MÉTODO COAD/YOURDON ORIENTADO A OBJETOS[COAD E YOURDON 91A, 91B] METODO FUSION [COLEMAN ET ALII 94] Análise Projeto Implementação Dicionário de Dados LINGUAGEM UML/UML USE CASE VIEW Diagrama de Casos de Uso Diagrama de Seqüência Diagrama de Colaborações Diagrama de Atividades LOGICAL VIEW Diagrama de Classes Diagrama de Estados COMPONENT VIEW Diagrama de Componentes DEPLOYMENT VIEW Diagrama de Deployment PROCESS VIEW DESENVOLVIMENTO BASEADO EM COMPONENTES(DBC) MÉTODO CATALYSIS CONSTRUÇÃO DE COMPONENTES Domínio do Problema Especificação de Componentes Projeto de Componentes Implementação de Componentes REUSO DE COMPONENTES ESTUDO DE CASO PROPOSTO ESTUDO DE CASO PROPOSTO REFERÊNCIAS BIBLIOGRÁFICAS

3 1. Introdução Desenvolvimento de Software Os sistemas desenvolvidos hoje têm características diferentes dos sistemas de 10 a 15 anos atrás. São maiores, mais complexos e mais sujeitos a alterações constantes. Também, os sistemas interativos e on-line dedicam mais atenção à interface com o usuário do que os sistemas antigos, tipicamente com entradas em batch. Hoje, alguns sistemas chegam a ter 75 a 80 porcento da codificação relacionada à interface, que inclui manipulação de janelas, menus pull-down, ícones, movimentos de mouse, e outros recursos multimidia. Por outro lado, muitas organizações consideram seus sistemas atuais mais "baseados em dados" e com menor complexidade funcional do que os sistemas dos anos 70 e 80. A verdade é que o uso de Bancos de Dados tem-se tornado mais comum nos sistemas atuais. O crescimento das redes e dos Sistemas distribuídos e o grande uso da Internet e de dispositivos móveis, como telefones celulares e palmtops, têm motivado novas pesquisas para desenvolver técnicas e ferramentas que suportem o desenvolvimento de software. Embora ainda não tenhamos tecnologias consolidadas para suportar estas últimas mudanças, o mercado e as novas pesquisas na área de desenvolvimento de software, procuram oferecer uma grande quantidade de métodos, técnicas e ferramentas que facilitam e ajudam o desenvolvedor de software. Os métodos para desenvolvimento de software, orientado a objetos e mais recentemente baseados em componentes, são relativamente novos e a tendência é de serem aperfeiçoados cada vez mais na prática. Diferentes métodos têm sido propostos para melhorar o processo de desenvolvimento de software, procurando suportar as diferentes fases do ciclo de vida do software, que vão desde a identificação e análise dos requisitos, até as fases de projeto, implementação e testes. Contudo, sabe-se que o desenvolvedor precisa se comunicar efetivamente para extrair informações sobre o domínio do problema e sobre os requisitos do sistema. A engenharia de software depende muito mais das pessoas do que das fórmulas complicadas, como ocorre nas demais engenharias. A fase de Implementação Orientada a Objetos(IOO), sabe-se que esta teve início nos anos 70 com a linguagem SIMULA, parte da linguagem Smaltalk desenvolvida pela Xerox PARC. Até então o paradigma das linguagens imperativas, funcionais e lógicas dominava a programação de sistemas desenvolvidos usando métodos: de decomposição funcional e particionado em dados. Os conceitos básicos do desenvolvimento de software orientado a objetos levaram mais de 10 anos para amadurecerem. Da mesma forma que era difícil pensar em programação estruturada quando as linguagens disponíveis eram Assembler e Fortran, também ficava difícil pensar em programação orientada a objetos quando não se dispunha de linguagens como C++, Smaltalk, Ada, Delphi e Java. Assim, hoje com as atuais linguagens de programação orientadas a objetos, combinadas com linguagens, como HTML, XML, SQL e outras, disponíveis em ambientes integrados de desenvolvimento, torna-se cada vez mais adequado adotar uma abordagem para construção e reuso de componentes orientada para a prototipação evolutiva, conforme resume a Figura 1.1. Partindo dos requisitos numa primeira etapa tem-se a Especificação dos requisitos, seguida da Análise, Projeto, Implementação e Testes. Cada ciclo de execução destas etapas resulta em versões (1,2,etc), cada vez mais refinadas do protótipo do software que está sendo construído. 3

4 Figura 1.1 Prototipação Evolutiva Para melhor compreensão sobre o atual processo de desenvolvimento de software, apresenta-se no capítulo 2, uma visão geral sobre os principais enfoques adotados no desenvolvimento de software, desde a decomposição funcional até o desenvolvimento baseado em componentes. Em seguida, no capítulo 3, apresentam-se os princípios essenciais da orientação a objetos, que servem como ponto de partida para o entendimento dos atuais métodos, técnicas e ferramentas utilizadas no desenvolvimento de software, principalmente nas fases da Análise e Projeto do software. O capítulo 4 faz uma breve revisão dos principais métodos de desenvolvimento orientados a objetos até o surgimento da UML (Unified Modeling Language). O capítulo 5 apresenta os principais conceitos e técnicas da UML/UML2. O capítulo 6 dá uma visão geral do método de Desenvolvimento Baseado em Componentes denominado Catalysis, e finalmente propõe uma abordagem de desenvolvimento baseado em componentes que combina idéias da UML2, do método Calaysis e das experiências com projetos de desenvolvimento de software realizados no Departamento de Computação da Universidade Federal de São Carlos SP. A abordagem proposta serve como uma orientação inicial no desenvolvimento baseado em componentes, e pode ser adequada e estendida conforme as condições do projeto e da empresa ou organização que o desenvolve. 4

5 2. Enfoques dos Métodos de Desenvolvimento de Software Neste capítulo, são apresentados, de uma forma sucinta, os principais enfoques, anteriores ao surgimento da UML, utilizados pelos métodos de desenvolvimento particularmente na etapa de modelagem dos requisitos do software[davis 90]. Quatro enfoques são apresentados: Decomposição Funcional, Fluxo de Dados, Modelagem de Informações e Modelagem Orientada a Objetos. 2.1 Modelagem usando Decomposição Funcional Na decomposição funcional, o domínio do problema deve ser mapeado para uma hierarquia de funções e subfunções. Por exemplo, o método HIPO(Hierarchy plus Input-Process-Output), desenvolvido pela IBM, baseia-se em dois componentes principais: Representação Hierárquica, que mostra como uma função se subdivide em várias funções e Representação de Entrada-Processo-Saída, que mostra cada função na hierarquia em termos de suas entradas e saídas. De uma forma geral, na decomposição funcional, o desenvolvedor apresenta como resultado os níveis de sistema, subsistema, função e subfunção. Apesar desse enfoque ser natural para ser aplicado na solução de um problema, decompondo-o em funções, o mesmo apresenta problemas relacionados com a instabilidade da funcionalidade do sistema e com a dificuldade de se obter alta coesão e baixo acoplamento, na descrição da composição dos componentes do sistema e nas interfaces entre estes componentes. Muitos desenvolvedores encontraram dificuldades para identificar funções capazes de suportar os novos requisitos do sistema com mínimas alterações na análise e organização da especificação. Na prática, ainda se usa a decomposição funcional, porém num contexto muito específico, quando se deseja dividir um grande Serviço (comportamento que um objeto deve apresentar) em partes menores para tornar mais claro e diminuir a complexidade. Esta prática, normalmente, é feita dentro de um contexto muito limitado, não sendo usada como estrutura organizacional principal da modelagem. 2.2 Modelagem usando Fluxo de Dados Este enfoque talvez seja o mais conhecido, pois tem sido utilizado largamente no desenvolvimento da maioria dos sistemas. A principal técnica utilizada nesse enfoque é o Diagrama de Fluxo de Dados(DFD). Métodos conhecidos como análise estruturada mapeiam o mundo real através de Atividades e Fluxos de Dados. Os problemas com a análise estruturada e mais recentemente análise estruturada moderna, são relacionados com a dificuldade de integração dos modelos especificados com o DFD com os modelos de informações especificados com outras técnicas, como o Diagrama de Entidade e Relacionamento(DER). Particularmente, nas transições das fases de análise, projeto e implementação têm-se muitas dificuldades para se manter a implementação consistente com os requisitos. Também, o lado funcional deste enfoque é muito forte e acaba tendo os mesmos problemas da decomposição funcional. A utilização do DER em conjunto com o DFD e o particionamento do sistema por eventos da Análise Essencial trouxe alguns resultados positivos, porém mesmo assim continua difícil integrar os modelos especificados com essas técnicas. É crítica a passagem do DFD, uma representação em rede das atividades e dos depósitos de dados, para o Diagrama Estruturado(DE) 5

6 com representação hierárquica dos módulos. Ainda, a utilização de notações distintas para funções(dfd) e dados(der), embora suportado por ferramentas CASE, não é muita adequada porque leva a raciocínios separados. Outro aspecto a ser mencionado com relação a este enfoque de fluxo de dados é o tamanho do dicionário de dados que tende a ficar enorme no caso de existirem vários níveis de DFDs, quando centenas de equações de nivelamento de fluxo de dados podem ser necessárias. Outra consideração é que DFDs não são muito úteis para sistemas ou partes de sistemas baseados principalmente na atualização e recuperação de dados, ao contrário dos sistemas voltados para o processamento de transações. 2.3 Modelagem de Informações A modelagem de informações numa abordagem mais moderna consiste em mapear objetos do mundo real através de seus atributos; adicionar relacionamentos entre estes objetos; aperfeiçoar com supertipos/subtipos (para extrair atributos comuns) e objetos associativos (para descrever certos relacionamentos); e finalmente normalizar (um enfoque passo a passo para reduzir redundâncias de dados, o que é uma implementação típica de banco de dados relacional). A principal ferramenta deste enfoque é o DER. Esse enfoque tem sido bastante utilizado, particularmente para sistemas voltados para banco de dados. A predominância dos bancos de dados relacionais e, mais recentemente os relacionais estendidos fazem com que esse enfoque continue sendo bastante utilizado. Com o paradigma da orientação a objetos muito tem sido pesquisado para combinar as idéias desse enfoque com a de objetos, conforme apresentado a seguir. 2.4 Modelagem Orientada a Objetos Muito se tem pesquisado segundo este enfoque, que representa o mundo real com objetos e suas interações. Busca-se a solução dos problemas através de uma modelagem orientada a objetos, conforme ilustra a Figura 2.1. Os autores [Rumbaugh et all 91] apresentam conceitos importantes nos quais se baseia a modelagem orientada a objetos. Os grandes problemas da análise de sistemas em quase todos os sistemas estão relacionados com: a compreensão do domínio do problema, comunicação dos fatos, evolução contínua e reutilização. Para uma boa modelagem o desenvolvedor precisa compreender o domínio do problema, especialmente no caso de sistemas grandes e complexos. A partir do domínio do problema, concentrarse-á nos aspectos específicos do seu problema, ou seja, na descrição das responsabilidades do sistema que está sendo considerado, estabelecendo dessa forma as fronteiras do sistema. A interação entre o usuário e o sistema é baseada em mensagens, que correspondem, na análise estruturada moderna, à associação dos fluxos de dados com os eventos que documentam as solicitações do usuário. A grande dificuldade é que o desenvolvedor tem que conhecer o domínio do problema no qual trabalha, o que abrange um campo de atividades sob estudo ou consideração. Exemplos de domínios incluem as linguagens, as leis, as finanças e o controle do espaço aéreo. Assim, num domínio de bibliotecas o desenvolvedor precisa conhecer tudo sobre bibliotecas, regras gerais, linguagem usada, detalhes e exceções. Uma vez definido o domínio podem-se então desenvolver sistemas específicos de biblioteca. Se o desenvolvedor simplesmente assumir certos conhecimentos sobre o assunto, provavelmente, estabelecerá requisitos confusos ou inválidos. 6

7 Outro fator crítico do desenvolvimento é que os requisitos para um sistema são mutáveis. Sabese que novos requisitos podem surgir devido às mudanças de software, hardware, legislações, melhorias, ou outras necessidades. Na modelagem orientada a objetos, a identificação de características comuns facilita a absorção de alterações. Também, cada vez mais, a reutilização está presente em todo o ciclo de vida do software. O reuso da análise, projeto e código em sistemas semelhantes economiza tempo e recursos. Sabe-se que o domínio de problemas mudou muito pouco nos últimos anos. Os resultados das diferentes fases do desenvolvimento podem ser reutilizados e aperfeiçoados em novos sistemas, com soluções específicas de acordo com as restrições de cronograma e orçamento. Mundo dos Objetos Modelagem Problemas Sistemas Soluções Figura Paradigma da Orientação a Objetos Assim, a orientação a objetos aceitou o desafio de solucionar ou pelo menos amenizar estes problemas de: compreensão do domínio do problema, comunicação dos fatos, evolução contínua e reutilização. Para tal, a modelagem orientada a objetos baseia-se na aplicação uniforme dos princípios para administração da complexidade de um domínio de problemas e das responsabilidades do sistema dentro dele. Definido o domínio do problema, o desenvolvedor se concentrará nos aspectos específicos do seu trabalho, ou seja, na descrição das responsabilidades do sistema que está sendo considerado. Considerando sistema como um conjunto ou arranjo de elementos relacionados ou interligados de modo a formar uma unidade ou um todo orgânico[webster's 77] (como por exemplo o sistema rodoviário, de contabilidade ou de irrigação), as responsabilidades do sistema podem ser definidas como uma organização de elementos relacionados de modo a formar um todo. A modelagem orientada a objetos baseia-se em princípios cujo conhecimento é importante para o entendimento dos métodos utilizados no desenvolvimento de sistemas segundo esse paradigma. Esses princípios, usados em diferentes métodos de desenvolvimento orientado a objetos, para administrar a complexidade e facilitar a modelagem de sistemas, são apresentados a seguir. 7

8 3. Princípios da Orientação a Objetos O conhecimento dos princípios da Orientação a Objetos é de grande importância porque facilita o entendimento das idéias, técnicas e ferramentas deste novo paradigma. Um método, uma ferramenta, um ambiente ou uma linguagem é tanto mais orientado a objeto quanto mais atende aos princípios da orientação a objeto. 3.1 Abstração Abstração é a habilidade de ignorar os aspectos de um assunto não relevantes para o propósito em questão, tornando possível uma concentração maior nos assuntos principais[oxford 86]. A abstração consiste na seleção que um desenvolvedor faz de alguns aspectos, suprimindo outros. Pessoas, lugares, coisas e conceitos do mundo real são normalmente complexos. Quando queremos diminuir a complexidade selecionamos parte do que estamos analisando, em vez de tentarmos compreender o todo. A abstração pode ser de: procedimentos e objetos. Abstração de procedimentos baseia-se no princípio de que qualquer operação com um efeito bem definido pode ser tratada por seus usuários como uma entidade única, mesmo que a operação seja realmente conseguida através de alguma seqüência de operações de nível mais baixo[oxford 86]. Normalmente, usamos abstração de procedimentos quando definimos em nossos DFDs macrofunções que se decompõem em funções, as quais por sua vez se decompõem em subfunções. Um sistema em seu nível mais alto pode ser abstraído como uma caixa preta que, uma vez executado, produz os resultados desejados. Dividir o sistema em processos e subprocessos, muito usado na análise estruturada, não é a forma principal de particionamento ou abstração da AOO. Na AOO a abstração de procedimentos é usada dentro do contexto limitado da especificação e descrição de serviços. Abstração de objetos consiste em definir os serviços e atributos aplicáveis a estes objetos. Estes objetos só podem ser modificados e observados através destes serviços[oxford 86]. A abstração de objetos serve de base para a organização do pensamento e a especificação das responsabilidades do sistema. É a habilidade de descrever novos tipos de dados em termos de seus formatos e serviços que agem sobre eles. Ao aplicar a abstração de objetos, o desenvolvedor define: - atributos e - serviços que manipulam exclusivamente estes atributos. Atributo é qualquer propriedade, qualidade ou característica que pode ser atribuída a uma pessoa ou objeto[webster's 77]. Na AOO, o termo atributo é definido de forma a refletir o domínio do problema e as responsabilidades do sistema, ou seja, atributo é um dado (informação de estado) para o qual cada objeto em uma classe tem seu próprio valor. Os atributos só podem ser acessados através de um serviço. Serviço é uma atividade executada para permitir que as pessoas utilizem alguma coisa [Webster's 77]. Na AOO, o termo serviço é definido de forma a refletir o domínio do problema e as 8

9 responsabilidades do sistema, ou seja, serviço é um comportamento específico que um objeto deve exibir. A abstração também depende do ponto de vista. Por exemplo, o coelho da Figura 3.1, sob o ponto de vista da moça podem-se identificar os atributos cor, aparência, etc, e sob o ponto de vista do veterinário podem-se indenticar os atributos peso, tamanho, etc. Da mesma forma, têm-se os serviços correr e brincar, do ponto de vista da moça, e criar e comer do ponto de vista do veterinário. Correr Brincar cor aparência peso tamanho Criar Comer Figura Abstração 3.2 Encapsulamento Princípio usado no desenvolvimento de uma estrutura global de programa, que estabelece que cada componente do programa deve conter uma única decisão de projeto. A interface para cada módulo é definida de forma a revelar o menos possível sobre seu funcionamento interno[oxford 86]. O objetivo do encapsulamento (ocultamento de informações) é restringir o escopo ou visibilidade da informação para obter melhor legibilidade, manutebilidade e principalmente reutilizabilidade no desenvolvimento de um novo sistema. O encapsulamento permite que o desenvolvedor reuna os aspectos mais instáveis de forma a facilitar sua localização e manutenção em caso de alterações, hoje muito comum nos sistemas. O encapsulamento pode ainda ser visto como um processo pelo qual se combinam os atributos e os serviços que agem sobre esses atributos, em uma definição que oculta detalhes de implementação. Por exemplo, a calculadora da Figura 3.2, tem internamente seus registradores, que são ocultos por uma interface que disponibiliza para o usuário apenas os serviços de Somar, Subtrair e outras operações. Note ainda que detalhes dos processos pelos quais se obtem um resultado não estão diretamente visíveis para quem está usando a calculadora, e nem mesmo isto interessa. Em resumo, 9

10 reúnem-se atributos e serviços disponibilizando apenas o que interessa mostrar, normalmente os serviços. 3.3 Classe e Objeto Figura Encapsulamento : Calculadora Das idéias de abstração e encapsulamento tem-se o Tipo Abstrato de Dados(TAD), que possui uma interface para ocultar detalhes de implementação, possibilitando que se tenham diferentes especificações, em diferentes tempos, sem afetar as aplicações que utilizam o TAD. Um TAD pode também ser chamado de Classe, a qual pode ser vista como uma fábrica de objetos idênticos no que diz respeito à sua interface e implementação. Assim por exemplo, tem-se, na Figura 3.3, o TAD Pessoa, ou a Classe Pessoa, cujos atributos são Nome, Endereço, Identidade, Estado Civil e outros, e cujos serviços são Estudar, Trabalhar, Dirigir, Passear, e outros. Portanto, uma classe é um conjunto de objetos similares. Uma instância de uma classe é chamada Objeto da Classe. Na Figura 3.3 tem-se que Maria e Pedro são duas instâncias da classe Pessoa. 10

11 Classe Pessoa objeto Maria objeto Pedro Figura 3.3 Classe e Objeto Pessoa 3.4 Herança A abstração de dados é uma técnica efetiva para se definir um conceito único e claro, como os TADs. Contudo, muitas vezes pode-se ter um TAD que é quase, mas não exatamente o que queremos e, neste caso, a herança é uma técnica útil para ampliar a abstração de dados. Baseado nesses conceitos define-se: Herança é o mecanismo para expressar a similaridade entre Classes, simplificando a definição de Classes iguais a outras que já foram definidas. Este princípio permite representar uma só vez os membros comuns, serviços e atributos, assim como especializar estes membros em casos específicos. Outro aspecto importante é que a herança possibilita a reutilização nos diferentes níveis de abstração durante o desenvolvimento de software. Assim, logo na concepção e projeto a reutilização pode ocorrer através de especificações comuns, como no caso da hierarquia de classes. A herança define uma relação entre classes do tipo é-um(a), onde uma classe compartilha a estrutura e o comportamento definidos em uma ou mais classes. O reconhecimento da similaridade entre classes forma uma hierarquia de classes, onde superclasses representam abstrações generalizadas e subclasses representam abstrações, onde atributos e serviços específicos são adicionados, modificados ou removidos. As classes são conectadas por uma estrutura de generalização e especialização, tornando explícitos os atributos e serviços comuns em uma hierarquia de classes. Na Figura 3.4, tem-se, por exemplo, que Estudante é uma Pessoa, Professor é uma Pessoa. Um objeto da classe Estudante tem, não apenas os atributos e serviços de Estudante, como também os atributos herdados da classe Pessoa. Por exemplo, o estudante João tem atributos e serviços de Pessoa, como Nome, Endereço, Dirigir, Viajar, e atributos e serviços que expressam o comportamento específico de um estudante, como Curso, Nota, Estudar e Realizar Prova. A classe Pessoa é reconhecida como uma generalização e Estudante como uma classe especialização, a qual herda os serviços e atributos de Pessoa. Além disso, uma classe derivada (uma especialização) pode incluir novos serviços e atributos ou redefinir os serviços herdados. Dessa forma, Funcionário pode incluir 11

12 atributos como Salário e Profissão e serviços como CalcularSalário, que podem não ser relevantes ou apropriados para Pessoa em geral. P essoa Estudante Professor Funcionário Diretor Figura Herança : Classe Pessoa e classes derivadas 3.5 Escala É o princípio que permite ao desenvolvedor considerar algo muito grande através do enfoque Todo-Parte. Todo-Parte é um dos serviços básicos naturais de organização dos seres humanos que orienta o desenvolvedor através de um modelo extenso. Assim, grande parte da complexidade de um problema pode ser resolvida dividindo-o em partes. No caso de classes, Todo-Parte é um mecanismo que permite a construção de uma classe a partir de outras classes componentes. Usa-se dizer que um objeto da classe tem objetos das classes componentes (partes). Por exemplo, na Figura 3.5 tem-se que uma casa tem portas, janelas, paredes, escadas e outras partes. TODO PARTES Figura Todo-Parte : Classe Casa e classes compostas 12

13 Mesmo em se tratando de entidades abstratas, pode-se compor um objeto a partir de outros objetos. A Figura 3.6 mostra que um Pedido (Todo) é composto ou tem ItensPedidos (Partes), no caso Relógio e Computador. TODO PEDIDO PARTES Item 1: Relógio Item 2: Computador Figura Todo-Parte : Classe Pedido e classes compostas 3.6 Associação A associação vem do relacionamento entre as entidades do mundo real, e é usada para associar certos objetos que ocorrem em algum ponto no tempo ou sob circunstâncias similares. Associação é uma união ou conexão de idéias[webster's 77]. Na orientação a objetos a associação é modelada através de uma conexão de ocorrências. Uma conexão de ocorrência é um relacionamento que um objeto tem com outro(s) objeto(s), para cumprir suas responsabilidades. Por exemplo, a Figura 3.7 mostra a associação entre Estudante, Teste e Sala. Neste relacionamento ternário, tem-se que cada estudante faz determinado teste em uma sala. Outros tipos de relacionamentos binários ou de maior ordem podem existir, como o mostrado na Figura 3.8 onde Cliente faz determinado Pedido. 13

14 Estudante Faz Teste Sala Figura Associação : Relacionamento Estudante-Teste-Sala Cliente Faz Pe dido Figura Associação: Relacionamento Cliente - Pedido 3.7 Comunicação com Mensagens Mensagem é qualquer comunicação, escrita ou oral feita entre pessoas[webster's 77]. Na orientação a objetos a comunicação entre objetos, é feita através de mensagens modeladas através de conexões de mensagens. Uma conexão de mensagem representa a dependência de processamento de um objeto, indicando quais serviços ele precisa para cumprir suas responsabilidades. As conexões de mensagens existem somente em função dos serviços, e podem ser de: um objeto para outro objeto; um objeto para uma classe (criação de objetos); uma classe para outra classe (criação de objetos dentro de outros objetos). 14

15 Numa conexão de mensagem, tem-se uma classe ou objeto emissor que envia a mensagem para uma classe ou objeto receptor para realização de algum processamento. O processamento necessário é nomeado na especificação de serviços do emissor, e é definido na especificação de serviços do receptor. Na Figura 3.9, uma estudante, objeto da classe Estudante, dispara uma mensagem para o professor, objeto da classe Professor. A mensagem é tratada e é retornada uma resposta. Abram seus livros na página 36 Qual a próxima lição? Figura Conexão de Mensagem : Aluno e Professor Considerando que os serviços modelam o comportamento dos objetos, três tipos de classificações de comportamentos são mais freqüentemente usados: (1) com base na causa imediata; (2) conforme similaridade de evolução histórica(alteração com o tempo) e (3) conforme a similaridade de função. Considerando que os serviços definem o comportamento requerido que um objeto deve refletir, essas classificações são incorporadas nas estratégias que definem: (1) Estados de objeto - elaborada com base no princípio de alteração com o tempo. (2) Serviços requeridos - elaborada com base nos princípios de similaridade de função e causa imediata. 3.8 Polimorfismo 15

16 Polimorfismo é o princípio relacionado com as diferentes formas de um objeto. Operacionalmente, o polimorfismo pode ser visto conforme mostra a Figura 3.10, onde se pode instanciar um objeto Janela de várias formas. Também se pode observar que operadores podem ser sobrecarregados para realizar operações com diferentes tipos de objetos. Por exemplo, o operador + está sendo utilizado para somar inteiros e matrizes. 1 Janela ( ) Polimorfismo Janela ( 1 x 2, 2 ) Janela ( 1 x 2, 2, Azul ) = = Figura Polimorfismo Um exemplo clássico de poliformismo é o das formas geométricas. Uma hierarquia de classes pode ser construída a partir da classe FormaGeometrica. Assim, podem-se ter classes Elipse, Retângulo e outras derivadas de FormaGeometica, e classes Circulo e Quadrado, derivadas de Elipse e Retângulo, respectivamente. Essas classes podem ter atributos e comportamentos comuns definidos na classe FormaGeometica, como o centro da figura e o serviço moverfigura. Assim, para mover qualquer objeto da hierarquia de classes, por exemplo, um objeto círculo, basta mover seu centro usando o serviço moverfigura. Contudo, para redesenhar a figura é necessário buscar o comportamento específico definido em cada classe derivada. Nesse caso, tem-se o polimorfismo para buscar o comportamento adequado. Finalizando este capítulo, convém salientar que existem outros princípios aqui não apresentados, como o de meta objetos e genericidade (tipos genéricos), que também são importantes para conhecer melhor o paradigma da orientação a objetos. O conhecimento dos princípios da orientação a objetos é de fundamental importância, principalmente porque nos ajuda a pensar em objetos e não apenas em dados e/ou funções, como era no paradigma tradicional de desenvolvimento de software. Em seguida, serão apresentados alguns métodos utilizados para o desenvolvimento de software orientado a objetos, que antecederam a UML(Unified Modeling Language). 16

17 4. Métodos Orientados a Objetos(histórico) O termo orientado a objetos pode não apresentar uma idéia clara, porque o nome objeto tem sido usado de formas diferentes em duas áreas diferentes: (1) Na modelagem de informações para representar alguma coisa real e suas ocorrências. Aqui, objetos dizem respeito apenas a dados; e (2) Nas linguagens de programação orientada a objetos, significa uma instância em tempo de execução de algum processamento e valores, definidos por uma descrição estática chamada classe. Convém observar que na modelagem pura de informações não há mecanismo de dependência uniforme de processamento e nem herança. Peter Wegner[Wegner 89] dá o seguinte enfoque para as linguagens de programação definidas segundo o paradigma orientado a objetos: (1) Baseada em Objetos: Suporta a funcionalidade de objetos, mas não possui nem classes e nem herança. Por exemplo, ADA. (2) Baseada em Classes: Suporta a mesma funcionalidade da linguagem baseada em objetos e inclui o conceito de classe. Por exemplo, CLU. (3) Orientada a Objetos: Possui as mesmas características da linguagem baseada em classes e inclui o princípio de herança. Por exemplo, C++ e Smalltalk[Goldberg and Robson 83]. A verdade é que uma linguagem, um método ou mesmo uma ferramenta CASE é tanto mais orientado a objetos quanto mais atende aos princípios do paradigma da orientação a objetos. A AOO é baseada nos conceitos da modelagem de informações, das linguagens orientadas a objetos e ainda dos sistemas baseados em conhecimentos, ou seja, nos princípios básicos para a administração da complexidade. Existem hoje no mercado vários métodos para desenvolvimento de sistemas orientados a objetos. Alguns métodos cobrem melhor as fases iniciais da coleta de fatos e análise de requisitos e outros a fase de projeto e implementação. Poucas propostas cobrem todo ciclo de vida do software. A seguir apresentaremos uma descrição sucinta de alguns métodos mais conhecidos, elaborada por Cabral e outros [Cabral et alii 93]. Uma descrição mais detalhada pode ser encontrada nas bibliografias referenciadas. 4.1 Método Wirfs-Brock [Wirfs-Brock et alii 90] Esta metodologia utiliza a visão cliente-servidor, enfatizando o comportamento dinâmico e as responsabilidades das classes. A ênfase é dada às fases de Projeto e Implementação. O processo é exploratório e informal, sendo mais adequado ao desenvolvimento de pequenos projetos. A introdução de novas terminologias (contrato, responsabilidades e colaborações) podem dificultar a sua aceitação, por apresentar mudanças radicais em relação às metodologias já utilizadas. A sua notação é formada por: Cartões de classes e subsistemas; Diagrama de hierarquia de classes; 17

18 Diagrama de Venn: que ajudam a definir as responsabilidades das classes; Diagrama de colaboração entre classes: que representa o comportamento dinâmico destas e Cartões de contrato: que documentam todos os contratos entre clientes e servidores. 4.2 Método Coad/Yourdon Orientado a Objetos[Coad e Yourdon 91a, 91b] O modelo AOO proposto por Coad/Yourdon consiste em cinco atividades principais: identificação de Assuntos; localização de Classes-e-Objetos; identificação de Estruturas; definição de Atributos e definição de Serviços. Estas atividades podem ser executadas em ordens diferentes, dependendo do domínio do problema analisado e da experiência do desenvolvedor. Decidir quando a análise e a especificação termina depende do domínio, da responsabilidade dos sistema e das verificações, tudo conforme as exigências de cronograma e orçamento. Assim, o modelo de AOO é apresentado e revisado em cinco níveis, mostrados na Figura 4.1. Assunto Classe e Objeto Estrutura Atributo Servico Figura Níveis da AOO Estes cinco níveis podem ser vistos como cinco camadas de especificações superpostas, conforme mostra o exemplo da Figura 4.2, que modela um sistema de distribuidora de produtos. Os resultados da Análise são representados pelo componente Domínio do Problema (CDP), através dos diferentes níveis: Classe e Objetos, Atributo, Estrutura e Serviço. O sistema está particionado num único Assunto, que não está representado no modelo. 18

19 Conforme se pode notar, ainda não se têm idéias bem consolidadas sobre qual a melhor abordagem a aplicar no desenvolvimento de sistemas orientados a objetos. O método Coad/Yourdon, apesar de apresentar pequenos problemas denotacionais quando usado em sistemas de grande escala, tem as vantagens de ser bastante divulgado, muito didático e de facilitar a compreensão dos novos conceitos da AOO, POO e IOO. O método representa Classe e Objeto por retângulos com cantos arredondados, sendo o mais interno a representação da Classe e o mais externo os Objetos. Na parte superior, tem-se o nome da classe, no meio os atributos e na parte inferior os Serviços. A estrutura de Generalização-Especialização (herança) é representada por uma meia lua, ligando a classe pais às classes derivadas (filhos). Todo-Parte é representado por um triângulo, que aponta o Todo. As conexões de ocorrências são representadas por linhas cheias que ligam objetos de uma classe a objetos de outra classe. Tanto no Todo-Parte como nas conexões de ocorrências são indicadas as respectivas cardinalidades (mínima, máxima), que indicam as ocorrências de objetos nos relacionamentos. Conexões de mensagens são representadas por linhas mais cheias, ou também tracejadas, partindo da classe emissora da mensagem e apontando a classe receptora da mensagem. O método usa a mesma notação para análise e projeto. Outras ferramentas como Diagramas de Serviços e Diagramas de Transição de Estados são utilizados na modelagem. Cliente Cod Nome End Pagar 0,m 0,m Pedido Número Data Atender 1 1,m 1 Detalhe Pedido Quantidade Situação 0,m 1,n 1 0,m Produto Código Nome Listar 1 0,m Detalhe Requisição Quantidade Preço 1 1,m 0,m 1,m 1 0,m Fornecedor Código Nome End Pagar Requisicao Número Data NúmeroNE DataNE Situação Emitir TratarNota 0,m Pessoa Física CPF Pessoa Jurídica CGC 1 Fatura Número Valor Vencimento Situação 1 Emitir Liquidar Figura Distribuidora de Produtos - Camadas Classe e Objetos, Atributo, Estrutura e Serviço 19

20 4.3 Método Fusion [Coleman et alii 94] O método Fusion foi desenvolvido para prover uma abordagem sistemática para desenvolvimento de software orientado a objetos. O processo de desenvolvimento de software conta com dois estágios: produção e montagem. A produção cobre as três fases do ciclo de vida do software: Análise (O que o sistema faz), Projeto (define Como o comportamento especificado na análise é obtido) e Implementação (codificação do projeto em linguagem de programação). Neste estágio obtém-se qualidade, evitando os erros. No estágio da montagem do software, obtém-se qualidade pela detecção e remoção dos erros. Quanto mais tarde um erro é encontrado, mais cara será a sua reparação. Um método confiável deve usar técnicas que reduzam a probabilidade de erros, e deve conter checagem de erros que possam ocorrer, pois é mais eficiente evitar os erros que corrigi-los. O método Fusion, então, se concentra na produção, ao invés da montagem do modelo. Métodos sistemáticos gastam mais tempo nas fases prévias do desenvolvimento do software. O código leva mais tempo para aparecer, e seus benefícios incluem: verificação de requisitos; conceitos mais claros; menos reprojeto de trabalho; melhor fabricação do trabalho de projeto (decomposição do problema em partes independentes); melhoria das comunicações entre os desenvolvedores e necessidade de menos esforço na manutenção. Fusion é um método de desenvolvimento que fornece suporte em aspectos técnicos e gerenciais do desenvolvimento de software: Divide o processo de desenvolvimento em fases e indica o que deve ser feito em cada fase; Fornece notações compreensíveis e bastante formais e Possui verificações para assegurar a consistência dentro e entre as fases. Na análise, os modelos são produzidos com objetivo de descrever: classes de objetos que existem no sistema; relacionamentos entre as classes; operações que podem ser executadas no sistema e seqüências permissíveis das operações. No projeto, o desenvolvedor decide como as operações do sistema devem ser implementadas, pelo comportamento em tempo de execução da interação entre os objetos. Durante o processo, operações se prendem às classes, e o desenvolvedor escolhe também como os objetos vão se referir uns aos outros, e quais são os relacionamentos de herança apropriados entres as classes. Os modelos desta fase mostram: Como operações de sistemas são implementadas pela interação entre objetos; Como as classes se referem umas às outras e como se relacionam por herança; Classes, atributos e operações em classes. 20

21 Na fase de implementação, o projeto deve ser transformado em código numa linguagem de programação executável. A codificação numa linguagem orientada a objetos facilita a implementação. Convém observar que: Herança, referência e atributos de classes são implementados em linguagem de programação; Interações entre objetos são codificadas como serviços pertencendo à determinada classe e As seqüências permitidas de operações são reconhecidas por máquina de estados. O Fusion também oferece informação em questões de performance, e sugere como a inspeção tradicional e as técnicas de teste devem ser modificadas para software orientado a objetos Análise A análise focaliza o domínio do problema, e diz respeito ao comportamento visivelmente externo do sistema. A preocupação principal é com os requisitos do sistema, ou seja, O Que? se deseja do sistema. As restrições de implementação e os problemas de tecnologias como por exemplo, limitações de processadores, memória, tempo de resposta e outros, não são relevantes nesta fase. A fase de análise produz dois modelos que capturam diferentes aspectos de um sistema: Modelo Objeto: define a estrutura estática de informação no sistema e Modelo de Interface: define as comunicações de entrada e saída do sistema. Dependendo da complexidade do sistema, pode-se ter mais de um Modelo Objeto. Uma divisão por assuntos pode proporcionar uma visão geral que orienta o desenvolvedor em um modelo extenso. Os assuntos também são úteis para a organização de pacotes de trabalho em grandes projetos, para facilitar a visibilidade e compreensão do modelo Modelo Objeto Modela as classes de objetos e a associação entre objetos pertencentes às classes. Objeto é uma instância da classe que pode ser univocamente identificada. A parte estática do objeto é composta de: Identificador; número de atributos e nome dos atributos. Na fase de análise, raramente nos preocupamos em como um objeto pode ser univocamente identificado. Deve haver um identificador ou alguma combinação de atributos que contenha informações suficientes para tornar a identificação possível. É sempre possível distinguir objetos distintos, mesmo que tenham os mesmos valores de atributos. O objeto possui uma identidade que não pode ser mudada. Os objetos se comunicam para executar operações através de métodos ou serviços. Os serviços tratam da parte comportamental dos objetos. Uma classe é uma abstração que representa a idéia ou a noção geral de um conjunto de objetos similares. Objetos podem ter instâncias de conexões um com o outro, mas não necessariamente ter relacionamentos de subordinação. Estas conexões complementam a representação do estado do objeto feita pelos seus atributos, modelando a união ou conexão de idéias. As pessoas usam estas conexões para modelar certas coisas que acontecem em um determinado instante ou sob circunstâncias similares, 21

22 ou seja, para mapear os relacionamentos entre os objetos, para que estes cumpram suas responsabilidades. Na Figura 4.3 têm-se duas classes: Professor e Curso, cujos objetos se relacionam através do relacionamento ensina, representado pelo losango que liga as duas classes. Professor Curso Nome Disciplina + ensina 1 Nome Figura Relacionamento entre classes O relacionamento entre as classes utiliza o limite de cardinalidade para restringir o número de objetos que devem participar do relacionamento. As formas de representação são: 12 numérica 1..4 intervalo * zero ou mais (representação default ) + um ou mais todos os objetos da classe adjacente devem aparecer no relacionamento. Quando o relacionamento é obscuro, podemos atribuir papéis aos objetos, por exemplo no caso em que um objeto pessoa é pai ou mãe de outra pessoa ou é casado com outra pessoa. Algumas perguntas, apresentadas a seguir, podem orientar o desenvolvedor na definição dos atributos. Supondo ser um objeto específico, pergunte: Como sou descrito em geral? Como sou descrito neste domínio de problemas? Como sou descrito no contexto das responsabilidades do sistema? O que preciso saber? De quais informações de estado preciso sempre me lembrar? Quais podem ser meus estados? Seguindo os princípios básicos da análise, não crie atributos como Chave e TotalParcial, apenas para atender restrições de implementação. Identificadores explícitos como Chave servem para identificar um objeto específico, porém necessitam de garantias que evitem duplicatas, o que implica em decisões de projeto não importantes em nível de análise. TotalParcial representa um valor batch dos resultados de processamentos anteriores. Na AOO é mais adequado especificar o cálculo requerido, através de um Serviço CalcularTotalParcial, do que especificar o atributo TotalParcial. Outro caso, é o da normalização, que exige que não se tenha atributo multivalorado, porém esta preocupação também não é importante durante esta fase da modelagem, mesmo porque nesta fase o desenvolvedor ainda não sabe se irá normalizar os dados. A Figura 4.4 mostra um relacionamento entre Médico e PacienteInterno, tal que cada paciente de PacienteInterno tem obrigatoriamente um médico, e um médico pode ter 0 ou mais pacientes. Isto significa que paciente não existe sem médico e médico existe mesmo sem paciente. 22

23 Médico Id Nome Endereço 1 examina * PacienteInterno Quarto Leito Medicação Figura Conexão de Ocorrência O caso especial com relacionamento muitos-para-muitos, como o mostrado na Figura 4.5, em que os atributos DataHora e Quantia descrevem a interação, em determinado instante, entre um autor e um livro, podem requerer a adição ao modelo, na fase de implementação, de uma classe do tipo evento lembrado. Autor Nome Endereço + Publica DataHora Quantia + Livro Título ISBN Ano Figura Conexão de Ocorrência muitos-para-muitos A Figura 4.6 mostra um relacionamento entre objetos de uma única classe. Se o significado de um mapeamento for simples, como por exemplo, Proprietário que é casado com outro, então apenas a Conexão de Ocorrência é suficiente. Caso contrário, adicione uma nova Classe-e-Objeto do tipo evento lembrado. Proprietário 1 Marido Casado 1 Esposa Figura Relacionamento entre objetos de uma única classe Outro caso especial de Conexão de Ocorrência ocorre quando for necessário mais de um mapeamento entre objetos, os quais precisam de alguma distinção semântica, que pode ser obtida com a adição de uma outra Classe-&-Objeto, evento lembrado. Na Figura 4.7 a Classe-e-Objeto eventodeacesso capta a diferença semântica entre os diferentes mapeamentos das conexões ler e modificar. 23

24 eventolegal * ler * escriturário * modificar * eventolegal eventode 1 tem * acesso datahora * faz 1 tipoacesso escriturário Figura Múltiplas Conexões de Ocorrências entre objetos Para um mapeamento correto, no domínio do problema e nas responsabilidades do sistema, verifique as Conexões de Ocorrências para cada par de objetos. Se for necessário, então adicione a conexão correspondente. O método Fusion permite a agregação de classes, ou seja, a implementação do Todo-Parte. Permite a construção de uma classe agregada formada por outras classes componentes. Também é possível implementar a herança de classes, tanto simples como múltipla, através de estruturas de Generalização e Especialização(Gen-Esp). Gen-Esp representa a abstração que captura a relação geral/específico entre entidades ou problemas no mundo real, e pode ser pensada como uma estrutura é um ou é um tipo de, sob o ponto de vista de Especialização. É a implementação da herança. Por exemplo, em um sistema hospitalar, PacienteInterno e PacienteExterno são vistos como especializações da Classe Paciente, conforme mostra a Figura 4.8. Relacionamentos do tipo Gen-Esp implicam que objetos subordinados(pacienteinterno e PacienteExterno) sejam membros de Classe(Paciente). O triângulo sólido indica que as subclasses particionam a superclasse, ou seja, só existem PacienteInterno e PacienteExterno. Caso contrário, o triângulo é vazio, como no caso das classes Rel01 e Rel02, derivadas de Relatório, indicando que existem outras subclasses de Relatório, além de Rel01 e Rel02. Paciente Nome Nascimento Altura Peso PacienteInterno Quarto Leito Medicação PacienteExterno ÚltimaVisita PróximaVisita Médico Figura Exemplos de Estrutura Generalização-Especialização 24

25 A estrutura Gen-Esp é representada com uma classe de generalização no topo e classe(s) de especialização abaixo, refletindo um mapeamento entre classes e não entre objetos. É conveniente nomear as especializações com o nome da classe pai seguido de um qualificador que descreve a natureza da especialização. Por exemplo, no caso da classe Sensor, a especialização SensorCrítico é preferida em relação a apenas Crítico, conforme se pode ver na Figura 4.9. Sensor Modelo SequênciaInicial Conversão Intervalo Limiar Estado Valor SensorCrítico Tolerância Figura Sistema Sensor - Generalização-Especialização Todo-Parte representa o particionamento que captura a relação agregação/parte de entre entidades e problemas no mundo real, e pode ser pensada como uma estrutura tem um, sob o ponto de vista do Todo. Por exemplo, no sistema hospitalar, Coração, Rim e Vista são vistos como partes do Objeto Paciente, conforme mostra a Figura Relacionamentos do tipo Todo-Parte implicam que objetos subordinados(coração, Rim e Vista) sejam partes de outro Objeto (Paciente). Todo-Parte normalmente é usado para descrever um problema ou sua solução em termos de suas partes. Por exemplo, para descrever o problema de DefesaDeUmaNação contra mísseis balísticos fica mais fácil descrevê-lo em termos de sua partes: Detecção, Comunicação, Reconhecimento, Lançamento e Defensiva. Decompondo o problema em subproblemas facilita a análise. 25

26 Paciente Nome Nascimento Altura Peso 1 1,2 0,2 Coração Natural/Artificial Implantado Bpm Rim Natural/Artificial Implantado Tipo Vista Natural/Artificial Visão Tipo Figura Exemplo de Estrutura Todo-Parte A notação usada para representar a estrutura Todo-Parte permite expressar os diferentes relacionamentos entre os objetos. Em particular, na Figura 4.10, Paciente tem obrigatoriamente 1 Coração e 1 ou 2 Rins e até 2 Vistas. Uma estrutura Todo-Parte pode indicar: Montagem de partes, Conteúdos de Recipiente e Membros de Conjunto. Na Figura 4.11tem-se que 1 Avião é uma montagem com Motor como Parte. Note que posso ter vários motores em um avião, cujas montagens são realmente físicas. Avião 1,4 Motor Figura Estrutura Todo-Parte - Montagem-Partes Na Figura 4.12, tem-se que o Avião é considerado como um recipiente no qual Passageiro está dentro dele. 26

27 Avião * Passageiro Figura Estrutura Todo-Parte - Recipiente-Conteúdos Na Figura 4.13, tem-se que 1 Organização é um conjunto de Escriturário. Um PlanoDeGuerra pode ser visto como um conjunto ordenado de Ação, conforme mostra a Figura Organização * Escriturário Figura Estrutura Todo-Parte - Conjunto-Membros PlanoGuerra 1,m Especificação Adicional Ação Ação é um conjunto ordenado Figura Estrutura Todo-Parte - Conjunto-Membros (com uma restrição) Modelo de Interface Um sistema é modelado como uma entidade ativa que interage com outras entidades chamadas agentes. Os agentes modelam usuários humanos ou outros sistemas de hardware e software. O ambiente é constituído de agentes com os quais o sistema se comunica. A comunicação entre o sistema e o ambiente se dá através de eventos. Um evento pode ser disparado por agentes externos ou pelo tempo. Associado a cada evento externo tem-se um estímulo que vai disparar uma atividade do sistema. A interface de um sistema é o conjunto de operações associadas aos eventos que podem ser disparados. 27

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Figura 5 - Workflow para a Fase de Projeto

Figura 5 - Workflow para a Fase de Projeto 5. Fase de Projeto A Fase de Projeto caracteriza-se por transformar as informações modeladas durante a Fase de Análise em estruturas arquiteturais de projeto com o objetivo de viabilizar a implementação

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Análise e Projeto Orientado a Objetos

Análise e Projeto Orientado a Objetos Análise e Projeto Orientado a Objetos Linguagem UML Modelagem Estrutural Modelagem Estrutural Anderson Belgamo Classes Definição: uma classe é uma descrição de um conjunto de objetos que compartilham os

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

DESENVOLVENDO O SISTEMA

DESENVOLVENDO O SISTEMA DESENVOLVENDO O SISTEMA Declaração da Necessidade O primeiro passo do processo de análise de sistema envolve a identificação da necessidade [Pressman-95]. Normalmente o analista reúne-se com o usuário

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

Unidade II MODELAGEM DE PROCESSOS

Unidade II MODELAGEM DE PROCESSOS Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que

Leia mais

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie 1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância

Leia mais

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Introdução ao Paradigma Orientado a Objetos. Principais conceitos Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

Leia mais

Análise e Projeto de Software

Análise e Projeto de Software Análise e Projeto de Software 1 Mundo Real Modelagem Elicitação Análise Problemas Soluções Gap Semântico Mundo Computacional Elicitação de Requisitos Análise de Requisitos Modelagem dos Requisitos 2 Projeto

Leia mais

Guia para elaboração do Modelo de Domínio Metodologia Celepar

Guia para elaboração do Modelo de Domínio Metodologia Celepar Guia para elaboração do Modelo de Domínio Metodologia Celepar Agosto 2009 Sumário de Informações do Documento Documento: guiamodelagemclassesdominio.odt Número de páginas: 20 Versão Data Mudanças Autor

Leia mais

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

Leia mais

SISTEMAS DE INFORMAÇÃO GERENCIAIS

SISTEMAS DE INFORMAÇÃO GERENCIAIS SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo

Leia mais

Modelagem de Sistemas

Modelagem de Sistemas Capítulo 5 Modelagem de Sistemas slide 1 2011 Pearson Pren0ce Hall. Todos os direitos reservados. 1 Tópicos Apresentados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais

Leia mais

UML: Diagrama de Casos de Uso, Diagrama de Classes

UML: Diagrama de Casos de Uso, Diagrama de Classes UML: Diagrama de Casos de Uso, Diagrama de Classes Diagrama de Casos de Uso O modelo de casos de uso visa responder a pergunta: Que usos (funcionalidades) o sistema terá? ou Para que aplicações o sistema

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

3 Qualidade de Software

3 Qualidade de Software 3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo

Leia mais

Desenvolvimento de uma Etapa

Desenvolvimento de uma Etapa Desenvolvimento de uma Etapa A Fase Evolutiva do desenvolvimento de um sistema compreende uma sucessão de etapas de trabalho. Cada etapa configura-se na forma de um mini-ciclo que abrange as atividades

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Gerenciamento de Projetos Modulo II Clico de Vida e Organização Gerenciamento de Projetos Modulo II Clico de Vida e Organização Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com Bibliografia* Project Management Institute. Conjunto de Conhecimentos

Leia mais

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS Atualizado em 21/12/2015 GESTÃO DE PROCESSOS Um processo é um conjunto ou sequência de atividades interligadas, com começo, meio e fim. Por meio de processos, a

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Casos de uso Objetivo:

Casos de uso Objetivo: Casos de uso Objetivo: Auxiliar a comunicação entre os analistas e o cliente. Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. O cliente deve ver no diagrama de

Leia mais

O Processo de Engenharia de Requisitos

O Processo de Engenharia de Requisitos UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA O Processo de Engenharia de Requisitos Engenharia de Software 2o.

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

Disciplina Técnicas de Modelagem

Disciplina Técnicas de Modelagem T É C N I C A 3 MODELAGEM CONCEITUAL GENERALIZAÇÃO/ESPECIALIZAÇÃO, AGREGAÇÃO E COMPOSIÇÃO Generalização/Especialização Herança é o termo em orientação a objetos que se refere à criação de novas classes

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO) Programação Orientada a Objetos Introdução à Análise Orientada a Objetos (AOO) Cristiano Lehrer, M.Sc. Processo de Desenvolvimento de Software Um processo de software mostra os vários estágios do desenvolvimento

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO Santa Maria, 12 de Novembro de 2013. Revisão aula anterior Modelagem orientada a objetos com UML Software: Astah Community

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

Aula II Introdução ao Modelo de Entidade-Relacionamento

Aula II Introdução ao Modelo de Entidade-Relacionamento Aula II Introdução ao Modelo de Entidade-Relacionamento Referência bibliográfica ANGELOTTI, E S. Banco de Dados. Ed. Livro Técnico Introdução É um modelo conceitual e deve estar o mais próximo possível

Leia mais

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos. Programação II Prof. Gustavo Willam Pereira e-mail: gustavowillam@gmail.com ENG10082 Programação II 1 Ementa Programação orientada a objetos: classes e objetos, atributos e métodos, especificadores de

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Gerenciamento de Requisitos Gerenciamento de Requisitos

Gerenciamento de Requisitos Gerenciamento de Requisitos Gerenciamento de Requisitos Objetivos da disciplina Descrever o processo de Gerenciamento e Engenharia de Requisitos para projetos Treinar alunos no Gerenciamento de Requisitos Apresentar estudos de caso

Leia mais

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

Leia mais

Especificação Operacional.

Especificação Operacional. Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite

Leia mais

Tema 1: Modelo Estático

Tema 1: Modelo Estático Tema 1: Modelo Estático (fonte: http://www.macoratti.net/net_uml1.htm) A Programação Orientada a Objetos (POO) baseia-se na descoberta dos objetos que compõem um determinado escopo e nas trocas de mensagens

Leia mais

CAPÍTULO 25 COERÊNCIA REGULATÓRIA

CAPÍTULO 25 COERÊNCIA REGULATÓRIA CAPÍTULO 25 COERÊNCIA REGULATÓRIA Artigo 25.1: Definições Para efeito deste Capítulo: medida regulatória coberta significa a medida regulatória determinada por cada Parte a ser objeto deste Capítulo nos

Leia mais

Fundamentos de Banco de Dados e Modelagem de Dados

Fundamentos de Banco de Dados e Modelagem de Dados Abril - 2015 Universidade Federal de Mato Grosso Instituto de Computação Pós Graduação Lato Sensu em Banco de Dados Fundamentos de Banco de Dados e Modelagem de Dados Prof. Dr. Josiel Maimone de Figueiredo

Leia mais

3 Estratégia para o enriquecimento de informações

3 Estratégia para o enriquecimento de informações 34 3 Estratégia para o enriquecimento de informações Podemos resumir o processo de enriquecimento de informações em duas grandes etapas, a saber, busca e incorporação de dados, como ilustrado na Figura

Leia mais

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva UML & Padrões Aula 3 UML e Padrões - Profª Kelly Christine C. Silva 1 UML & Padrões Aula 3 Diagrama de Casos de Uso Profª Kelly Christine C. Silva O que vamos tratar: Modelos de Caso de Uso Diagrama de

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos SENAC Pós-Graduação em Segurança da Informação: Análise de Riscos Parte 2 Leandro Loss, Dr. Eng. loss@gsigma.ufsc.br http://www.gsigma.ufsc.br/~loss Roteiro Introdução Conceitos básicos Riscos Tipos de

Leia mais

Mapa Mental de Engenharia de Software - Diagramas UML

Mapa Mental de Engenharia de Software - Diagramas UML Mapa Mental Engenharia Software - Diagramas UML Mapa Mental Engenharia Software Diagramas UML Mapa Mental Engenharia Software Diagramas UML Mapa Mental UML - Diagramas, Fases e Detalhes Resolvi juntar

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Pessoal, fiz uma coletânea das questões mais recentes de concursos públicos de TODO o Brasil de várias bancas diferentes sobre os assuntos Orientação

Leia mais

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS Modelagem de dados usando o modelo Entidade-Relacionamento BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS Introdução Modelagem conceitual fase de planejamento/projeto de um BD; Modelo Entidade/Relacionamento

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 4 Projeto de Teste 1 SUMÁRIO INTRODUÇÃO... 3 ANÁLISE E PROJETO DE TESTE... 3 1.

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação

Leia mais

Diagramas de Casos de Uso

Diagramas de Casos de Uso UML Unified Modeling Language Diagramas de Casos de Uso José Correia, Março 2006 (http://paginas.ispgaya.pt/~jcorreia/) Objectivos O objectivo de um diagrama de casos de uso de um sistema é mostrar para

Leia mais

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos Sumário Modelagem de Processos Módulo 4 1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos M. Sc. Luiz Alberto lasf.bel@gmail.com Modelagem de Sistemas MP

Leia mais

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais http://www.edison.eti.br prof@edison.eti.

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais http://www.edison.eti.br prof@edison.eti. Engenharia de Software Engenharia de Requisitos Análise Orientada a Objetos Prof. Edison A M Morais http://www.edison.eti.br prof@edison.eti.br 1 Contextualizando... Fonte: [1] O Processo de ER pode ser

Leia mais

Porque estudar Gestão de Projetos?

Porque estudar Gestão de Projetos? Versão 2000 - Última Revisão 07/08/2006 Porque estudar Gestão de Projetos? Segundo o Standish Group, entidade americana de consultoria empresarial, através de um estudo chamado "Chaos Report", para projetos

Leia mais

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento O modelo Entidade-Relacionamento Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento 1 Antes de começarmos: A modelagem conceitual é uma fase muito importante no plamejamento de um

Leia mais

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 4º PERÍODO 7º MÓDULO AVALIAÇÃO A3 DATA 15/10/2009 ENGENHARIA DE SOFTWARE 2009/2 GABARITO COMENTADO QUESTÃO 1: Analise as afirmações

Leia mais

Uma visão mais clara da UML Sumário

Uma visão mais clara da UML Sumário Uma visão mais clara da UML Sumário 1 Método...2 2 Análise de requisitos...2 2.1 Diagramas de Casos de Uso...3 2.1.1 Ator...3 2.1.2 Casos de Uso (Use Case)...4 2.1.3 Cenário...4 2.1.4 Relacionamentos...6

Leia mais

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Sumário. Uma visão mais clara da UML

Sumário. Uma visão mais clara da UML Instituto Federal de Santa Catarina Câmpus Chapecó Ensino Médio Integrado em Informática Módulo V Unidade Curricular: Engenharia de Software Professora: Lara P. Z. B. Oberderfer Uma visão mais clara da

Leia mais

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados 01) Defina com suas próprias palavras: a) Banco de Dados b) Sistema Gerenciador de Banco de Dados c) Sistema de Banco de

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

GBD PROF. ANDREZA S. AREÃO

GBD PROF. ANDREZA S. AREÃO GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação

Leia mais

Todos nossos cursos são preparados por mestres e profissionais reconhecidos no mercado, com larga e comprovada experiência em suas áreas de atuação.

Todos nossos cursos são preparados por mestres e profissionais reconhecidos no mercado, com larga e comprovada experiência em suas áreas de atuação. Curso Formação Efetiva de Analístas de Processos Curso Gerenciamento da Qualidade Curso Como implantar um sistema de Gestão de Qualidade ISO 9001 Formação Profissional em Auditoria de Qualidade 24 horas

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

III. Projeto Conceitual de Banco de Dados. Pg. 1 Parte III (Projeto Conceitual de Banco de Dados)

III. Projeto Conceitual de Banco de Dados. Pg. 1 Parte III (Projeto Conceitual de Banco de Dados) III Projeto Conceitual de Banco de Dados 16 páginas INTRODUÇÃO CONCEITOS BÁSICOS ENTIDADES E TIPOS DE ENTIDADES RELACIONAMENTOS E TIPOS DE RELACIONAMENTOS ATRIBUTOS E TIPOS DE ATRIBUTOS ABSTRAÇÕES DE DADOS

Leia mais

Engenharia de Software

Engenharia de Software Conceitos básicos sobre E.S: Ambiência Caracterização do software Fases de desenvolvimento 1 Introdução Aspectos Introdutórios Crise do Software Definição de Engenharia do Software 2 Crise do Software

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Engenharia de Software III

Engenharia de Software III Departamento de Informática Programa de Pós Graduação em Ciência da Computação Laboratório de Desenvolvimento Distribuído de Software Estágio de Docência Cronograma e Método de Avaliação Datas Atividades

Leia mais

I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal)

I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal) Modelagem Conceitual C O objetivo É: Representar a semântica da informação, independente de considerações de eficiência. D O objetivo NÃO É: Descrever a estrutura do armazenamento do banco de dados. I

Leia mais

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos Março de 2010 UM NOVO PARADIGMA PARA AS AUDITORIAS INTERNAS Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos por Francesco De Cicco 1 O foco do trabalho dos auditores internos

Leia mais

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

PLANEJAMENTO ESTRATÉGICO

PLANEJAMENTO ESTRATÉGICO PLANEJAMENTO ESTRATÉGICO Este material resulta da reunião de fragmentos do módulo I do Curso Gestão Estratégica com uso do Balanced Scorecard (BSC) realizado pelo CNJ. 1. Conceitos de Planejamento Estratégico

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP Conceitos RUP RUP, abreviação de Rational Unified Process (ou Processo Unificado da Rational), é um processo de Engenharia de software criado pela Rational Software Corporation(a qual foi incorporada pela

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo Universidade Federal do Espírito Santo Inteligência Artificial Agenda Semântica Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo Vitória 2007/02 Agenda Semântica

Leia mais

Modelo Relacional. 2. Modelo Relacional (Lógico)

Modelo Relacional. 2. Modelo Relacional (Lógico) Modelo Relacional 2. Modelo Relacional (Lógico) Derivado do modelo conceitual; Depende do SGBD escolhido; Independe dos dispositivos de armazenamento; Primitivas: tabelas, linhas e colunas; Transformação

Leia mais

3 Gerenciamento de Projetos

3 Gerenciamento de Projetos 34 3 Gerenciamento de Projetos Neste capítulo, será abordado o tema de gerenciamento de projetos, iniciando na seção 3.1 um estudo de bibliografia sobre a definição do tema e a origem deste estudo. Na

Leia mais

Micro Mídia Informática Fevereiro/2009

Micro Mídia Informática Fevereiro/2009 Micro Mídia Informática Fevereiro/2009 1 UML Introdução Fases de Desenvolvimento Notação Visões Análise de Requisitos Casos de Uso StarUML Criando Casos de Uso Orientação a Objetos Diagrama de Classes

Leia mais

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto* IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO João Alvarez Peixoto* * Mestrando do Programa de Pós-graduação em Engenharia Elétrica - UFRGS Porto

Leia mais