CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO

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

Download "CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO"

Transcrição

1 81,9(56,'$'(/87(5$1$'2%5$6,/ &2081,'$'((9(1*e/,&$/87(5$1$³6 23$8/2 Reconhecida pela Portaria Ministerial nº 681 de07/12/89 DOU de 11/12/89 &$ (6 CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO 2%-(&725< MAURICIO VOLKWEIS ASTIAZARA MARCELO WAIHRICH DE SOUZA ENGENHARIA DE SOFTWARE II PROF. ADRIANA ROMA TORRES, OUTUBRO DE 2001

2 Sumário Lista de Tabelas e Figuras...3 Resumo...4 Introdução Histórico Visão Geral Análise Análise dos Requisitos / Modelo dos Requisitos Casos de Uso Descrição de Interfaces do Usuário Objetos do Domínio Análise Robusta / Análise Os Três Tipos de Objetos Subsistemas Construção Projeto / Projeto Diagrama de Blocos Diagrama de Interação Interface de Blocos Implementação / Implementação Teste / Teste Teste de Unidade Teste de Integração Teste do Sistema Conclusão...16 Bibliografia

3 Lista de Tabelas e Figuras Tabela 1: Fases e Modelos do Objectory... 6 Figura 1: Coesão de Todos os Modelos com os Casos de Uso... 7 Figura 2: Fase de Análise... 7 Figura 3: Esboço de um Diagrama de Casos de Uso... 8 Figura 4: Descrição de Interface com o Usuário... 9 Figura 5: Representação Gráfica dos Diferentes Tipos de Objetos Figura 6: Divisão do Modelo em Subsistemas Figura 7: Fase de Construção Figura 8: Diagrama de Interação Figura 9: Fase de Teste

4 Resumo Este trabalho contém os fundamentos básicos da metodologia Objectory, desenvolvida por Ivar Jacobson. Começando por um histórico sobre o autor e o surgimento da metodologia. Depois são abordadas cada uma das fases descritas pelo Objectory: Análise, Projeto, Construção e Teste, bem como os modelos produzidos por cada uma delas. Se tem um foco especial no conceito de Casos de Uso, que é base fundamental desta metodologia. Abstract This work contain the basic foudation of Objectory metodology, developed by Ivar Jacobson. Starting by a historic about author and his metodology. We shall describe each phase of Objectory: Analysis, Design, Construction and Testing, also the models developed in each phase. There are a special focus in Use Case concept, that is the base this metodology. 4

5 Introdução O desenvolvimento de software orientado a objeto é a grande tendência desses tempos, devido às grandes vantagens que oferece, como reusabilidade, encapsulamento e extensibilidade. Mas um real aproveitamento dessas vantagens não é obtido simplesmente adotando-se uma linguagem de programação orientada a objeto. É necessário uma metodologia de desenvolvimento que apoie a orientação a objeto, imprimindo essas características em todo o desenvolvimento desde o princípio até o término. Por isso abordamos aqui uma das diversas metodologias orientadas a objeto existentes: a Objectory. Com base neste trabalho o leitor será capaz de avaliar esta metodologia, o que pode contribuir na sua escolha de uma metodologia de desenvolvimento de software orientada a objeto. 5

6 1 Histórico O Dr. Ivar Jacobson é um dos líderes mundiais em metodologia de desenvolvimento de software. É também o principal autor da metodologia Objectory, uma das metodologias pioneiras em relação à orientação a objeto. O nome Objectory vem de 2EMHFW )DFWRU\, ou seja, fábrica de objetos para o desenvolvimento de software. Veremos um breve histórico sobre Ivar Jacobson e a metodologia Objectory. Em 1967, Jacobson, trabalhando na empresa Ericsson, desenvolve a abordagem da arquitetura cêntrica para desenvolvimento de software, que é baseada na interação e colaboração de subsistemas. Esta abordagem foi adotada pelo padrão de telecomunicação SDL (6SHFLILFDWLRQ DQG 'HVFULSWLRQ /DQJXDJH). Jacobson passa a enfatizar o desenvolvimento de software baseado em casos de uso, processo este que foi o primeiro exemplo de desenvolvimento baseado em componentes. Em 1987, com o aprimoramento desse processo de desenvolvimento, Jacobson o nomeia Objectory e acaba fundando a sua própria empresa: a Objectory AB, na Suécia. A metodologia passa a chamar a atenção da indústria de desenvolvimento de software devido a 15 projetos de sucesso ao redor do mundo. No começo de 1990, Jacobson expande o Objectory para incluir a engenharia de negócios, para assim melhor entender o contexto do negócio e melhor capturar os seus requisitos. Em 1992, o metodologista lança o OOSE, 2EMHFWRULHQWHG 6RIWZDUH (QJHQHHULQJ Engenharia de Software Orientada a Objeto, que nada mais é que uma versão simplificada do método Objectory. A companhia de Jacobson, Objectory AB, acaba se fundindo com a empresa Rational Software Corporation em Junto com seus colegas da Rational, Grady Booch e Jim Rumbaugh, ele desenvolveu a Linguagem Unificada de Modelagem UML (8QLILHG 0RGHOLQJ /DQJXDJH), que é a linguagem padrão para especificação, visualização, construção e documentação para artefatos de sistema de software. A UML foi oficialmente adotada como padrão pelo Grupo de Gerenciamento de Objetos OMG (2EMHFW 0DQDJHPHQW *URXS) em Atualmente, Jacobson é vice presidente de desenvolvimento de software na Rational, sendo responsável por ajudar a empresa a definir associações e estratégias de produto na área de desenvolvimento de software. Ele também trabalha com Grady Booch e Jim Rumbaugh no refinamento e aperfeiçoamento da UML. Jacobson durante este tempo escreveu com a ajuda de outros autores três influentes livros campeões de venda: Object-Oriented Software Engineering - A Use Case Driven Approach, The Object Advantage--Business Process Reengineering with Object Technology, and Software Reuse: Architecture, Process, and Organization for Business Success. 2 Visão Geral A metodologia Objectory descreve todo o ciclo de vida de desenvolvimento, enfatizando o usuário, o processo de engenharia e a interação entre as fases do ciclo de vida. O ciclo de vida é dividido em três fases: Análise, Construção e Teste. Cada fase tem seus processos, que geram diferentes modelos representando diferentes visões do sistema. Os modelos gerados numa fase serão utilizados em outras fases. )DVH (QWUDGD 3URFHVVRV 6DtGD Análise Especificação dos Requisitos Análise de Requisitos Análise Rigorosa Construção Requisitos Projeto Análise Implementação Teste Requisitos Projeto Implementação Teste de Unidade Teste de Integração Teste do Sistema Requisitos Análise Projeto Modelo de Implementação Teste Tabela 1: Fases e Modelos do Objectory Todo o processo de desenvolvimento é baseado nos casos de uso. Um caso de uso representa um diálogo (seqüência de transações) entre o sistema e um usuário realizado para alcançar algum objetivo. Os casos de uso tentam capturar a funcionalidade do sistema pela representação do que os usuários deveriam ser capazes de fazer com ele. Todos os outros modelos são construídos com base nas considerações feitas para os casos de uso; como conseqüência esses casos proporcionam elos de ligação entre as fases do Objectory. 6

7 Casos de Uso Expressado por Estruturado por Realizado por Implementado por Testado em Requisitos Análise Projeto Implementação Teste Figura 1: Coesão de Todos os Modelos com os Casos de Uso Apesar de as fases estarem descritas de forma seqüencial, elas não são executadas seqüencialmente, e sim iterativamente. Quando o modelo que está sendo usado numa fase possui pontos não esclarecidos, deve-se voltar a fase que gerou o modelo para o esclarecimento desses pontos. A execução de forma iterativa permite que fases ocorram em paralelo. Esta metodologia tem como argumento que um sistema construído ao redor de exemplos de ações de prováveis usuários terá um grande grau de reusabilidade e flexibilidade. Veremos agora de forma detalhada cada uma das fases, seus processos e modelos, mostrando qual o objetivo de cada um, como são construídos e a forma como representam o sistema. 3 Análise O objetivo da análise e especificar e definir o sistema que será construído. Os modelos desenvolvidos irão descrever o que o sistema faz. A base para esta modelagem são os requisitos dos clientes ou usuários finais para o sistema. Por isso é importante manter um diálogo contínuo com os clientes e possíveis usuários para que se tenha certeza que o sistema a ser construído é o sistema que se quer. Os modelos são construídos de forma a facilitar o entendimento do sistema. Os modelos desenvolvidos durante a análise são completamente orientados para a aplicação e não para o ambiente de implementação. Eles são modelos essenciais, que são independentes de coisas como sistema operacional, linguagem de programação, banco de dados, configuração de hardware. Os modelos baseados em conceitos orientados a aplicação podem ser discutidos com os usuários sem o uso de termos de implementação. Eventualmente o sistema terá que ser adaptado para o ambiente de implementação, mas isto é feito na construção. O fato de pouca atenção ser dada ao ambiente de implementação garante que a arquitetura resultante seja baseada no próprio problema e não em condições de implementação. Além disso, os modelos de análise permaneceram intactos e utilizáveis se as condições de implementação mudarem. A análise consiste de dois processos: Análise de Requisitos e Análise Robusta, que respectivamente produzem o Requisitos e Análise. Análise Especificação dos Requisitos Análise dos Requisitos Análise Rigorosa Modelo dos Requisitos Análise Figura 2: Fase de Análise 7

8 3.1 Análise dos Requisitos / Modelo dos Requisitos Este modelo delimita o sistema e define quais as funcionalidades que o sistema deve oferecer. Ele é visão do desenvolvedor do que o cliente quer, e serve como um contrato entre o desenvolvedor e o cliente. É essencial que este modelo seja legível por pessoas que não estejam familiarizadas com orientação a objeto e com objectory, sendo fácil entendimento. Para isso ele deve ser elaborado a partir da perspectiva do usuário. O modelo de requisitos consiste de: Casos de Uso, Descrição de Interfaces do Usuário e Objetos do Domínio. Já a partir do primeiro modelo elaborado, é possível avaliar se o usuário está satisfeito com o que nós estamos projetando sobre o sistema, sem termos iniciado a sua construção Casos de Uso Este modelo é baseado em atores e casos de uso. Estes conceitos auxiliam a definir o que existe fora do sistema (atores) e o que o sistema deve ser capaz de desempenhar (casos de uso). Atores representam tudo o que interage com o sistema, tudo que precisa trocar informações com ele. Um ator não é um usuário, mas o papel que um usuário pode exercer em relação ao sistema. Um usuário é uma pessoa (às vezes um dispositivo, ou outro sistema) que usa o sistema. Diferente de muitos outros objetos, os atores não são deterministas (possuem liberdade para executar as ações). Atores podem ser comparados a classes e usuários a instâncias dessas classes. Esta instância somente ocorre quando o usuário faz alguma coisa no sistema. Uma mesma pessoa pode aparecer como instância de diversos atores. Por exemplo, um sistema pode ter pilotos e passageiros como atores. João pode ser um usuário que às vezes atua no papel de piloto e às vezes como passageiro, desempenhando diferentes casos de uso. Cada ator pode desempenhar diferentes ações com o sistema. A definição de um casos de uso é: um ator utilizando o sistema para desempenhar uma seqüência de transações que possuem um comportamento relacionado, num diálogo com o sistema. Cada caso de uso é uma maneira específica de utilizar o sistema, logo a coleção de casos de uso contém a funcionalidade completa do sistema a ser construído. Cada caso de uso tem uma descrição e o sistema deve ser capaz de executar tudo o que está descrito no modelo de casos de uso. No modelo os casos de uso são representados por elipses e os atores por bonecos. A relação que existe entre eles é representada por uma seta de duplo sentido, representando uma troca de informações. Vejamos o esboço de um modelo de casos de uso para um sistema para uma máquina que recebe embalagens retornáveis em um supermercado. O cliente utiliza o sistema para trocar suas embalagens (garrafas e outros recipientes retornáveis) por tickets para serem descontados no supermercado. Diariamente um operador do sistema pede um relatório e recolhe as embalagens depositadas. Sistema de Recebimento de Embalagens Cliente Receber Embalagens Imprimir Relatório Recolher Embalagens Depositadas Operador Figura 3: Esboço de um Diagrama de Casos de Uso Nem sempre é fácil identificar se uma funcionalidade deve ser colocada como um caso de uso separado ou como uma variação de um casos de uso existente. Se as diferença são pequenas, é melhor descrever como uma variação de um caso de uso. Se as diferenças são grandes, deve ser descrito como um caso de uso separado. A identificação dos casos de uso é iterativa, ou seja, sofrerá diversas modificações até que os casos de uso sejam identificados da forma apropriada, se estabilizando. Só depois que desta estabilização é que cada caso de 8

9 uso é descrito em de forma mais detalhada. Até então eles só descreviam o curso básico, a mais importante seqüência para a compreensão do caso de uso. A partir do detalhamento, variações do curso básico e erros que podem ocorrer são descritos nas alternativas de curso. Um conceito poderoso utilizado para estruturar e relacionar descrições de casos de uso é o Construção Associada. Este conceito relata como uma descrição de caso de uso pode estar inserida em outra descrição, consequentemente expandindo esta descrição. Desta forma, descrições de casos de uso podem ser descritas de forma compacta, permitindo facilmente mudanças e adição de outras funcionalidades. Importante salientar que o caso construído deve compreender um curso completo por si próprio, totalmente independente da seqüência inserida. A descrição original não faz referência a qualquer curso inserido, escapando de compor complexidade ou dependência. Descrevendo o caso de uso independente de qualquer funcionalidade estendida, podemos adicionar novas extensões sem alterar a descrição original. O conceito de construção associada favorece muito a reutilização, uma das principais vantagens da orientação a objeto. Quando o sistema é projetado com o foco nos casos de uso ele possui uma importante característica no que se refere à mudanças: quando se deseja mudar o comportamento do sistema, se remodela apropriadamente os atores e os casos de uso. Como toda a arquitetura é controlada pelos casos de uso as mudanças irão se refletir em todos os outros modelos. Nós simplesmente questionamos os usuários sobre o que eles querem mudar (qual caso de uso) e veremos diretamente onde essas mudanças devem ser feitas em outros modelos Descrição de Interfaces do Usuário Para apoiar os casos de uso é essencial desenvolver modelos de interface para os casos de uso. Protótipos de interface facilitam a comunicação com os usuários mostrando o que eles verão quando estiverem executando o caso de uso no sistema que será construído. Pode-se, da forma mais simples, utilizar esboços de interface, ou da forma mais sofisticada, utilizar um software que permita a construção rápida de interfaces para que, com algum código, realize simulações. O uso de descrição de interfaces reduz a possibilidade de um desentendimento entre o que o usuário quer e o que o analista projeta. Quando se está projetando as interfaces, o futuro usuário deve estar envolvido no processo (casos de uso) para que então, as interfaces reflitam a sua visão lógica do sistema. &21752/(3$75,021,$/0RPEHOOL &LD/WGD 7Ë78/26 Figura 4: Descrição de Interface com o Usuário Objetos do Domínio MENSAGENS TECLAS DE FUNÇÕES Com a elaboração dos casos de uso, aparecerão objetos que tem relação direta com o ambiente e sobre os quais o sistema deve manipular informações. Estes objetos são especificados no modelo de objetos do domínio. O modelo de objetos do domínio, assim como a descrição de interfaces, apoia a especificação dos casos de uso, definindo os conceitos com o a qual o sistema deve trabalhar. A notação é similar a um modelo entidade 9

10 relacionamento, mostrando instâncias de objetos, classes e associações. Dentre as associações incluem herança e existência (isso é, um objeto mantém referência a outro). O modelo de objetos do domínio pode ser considerado como uma versão preliminar para modelo de análise desenvolvido na fase seguinte. Este modelo também tem a capacidade de funcionar como um glossário para os casos de uso, o que é de grande valor, especialmente quando diversas pessoas estão envolvidas na especificação dos casos de uso. 3.2 Análise Robusta / Análise Uma vez que o modelo de requisitos foi desenvolvido e aprovado pelos clientes, nos podemos iniciar um processo mais voltado à estrutura lógica interna do sistema, primeiramente com o desenvolvimento do modelo de análise. Este modelo define a estrutura lógica do sistema de forma independente do ambiente de implementação. A análise robusta distribui os comportamentos especificados na descrição dos casos de uso entre os objetos no modelo. Um objeto pode ser comum a diferentes casos de uso, e nos devemos definir qual objeto é responsável por oferecer qual comportamento em cada caso de uso. Ainda não é necessário quebrar o comportamento em operações nesta fase, a maneira mais natural é uma descrição verbal das responsabilidades ou papel desempenhado por cada objeto. Embora seja possível usar o modelo de objetos do domínio como base para a implementação do sistema, isto não resulta na estrutura mais robusta. O modelo de análise representa a mais estável e manutenível estrutura do sistema, que será robusta por todo o ciclo de vida. Isso significa que as muitas mudanças futuras, vindas do ambiente de implementação não irão afetar a estrutura lógica Os Três Tipos de Objetos Muitas metodologias de análise orientada a objetos reconhecem apenas um tipo básico de objeto. Mas com o emprego de três diferentes tipos de objetos, a estrutura será muito mais adaptável a mudanças. Os tipos de objetos utilizados na análise são: Objeto Entidade, Objeto de Interface e Objeto de Controle. Objeto Entidade Objeto de Interface Objeto de Controle Figura 5: Representação Gráfica dos Diferentes Tipos de Objetos Cada tipo de objeto tem seus diferentes propósitos: Objeto Entidade Modela a informação do sistema que deve ser armazenada por algum período de tempo. Tipicamente sobrevive depois que o caso de uso é terminado. Toda a informação e comportamento que são naturalmente acoplados devem ser colocados em um objeto entidade. Os objetos entidade normalmente são os primeiros a serem encontrados e estão presentes no modelo de objetos do domínio. Outros além desses são difíceis de serem encontrados. Objetos entidade na maioria das vezes correspondem a algo do mundo real, fora do sistema. É muito fácil elaborar um modelo com muitos objetos entidade, que não são realmente necessários. Para uma modelagem correta, é preciso utilizar os casos de uso como guia: somente objetos que podem ser justificados por descrições de casos de uso é que devem ser incluídos. Cada lugar num caso de uso onde é necessário armazenar informação é um objeto entidade em potencial. Para aramazenar informação, objetos entidade utilizam atributos. Cada atributo tem um tipo, que pode ser tipo primitivo de dado, como inteiro ou string, ou pode ser um tipo de dado composto, que é mais complexo e especialmente definido. Para decidir se um pedaço de informação deve ser modelado como uma entidade ou um atributo, devemos analisar como a informação é utilizada. A informação que é manipulada separadamente deve ser modelada como um objeto entidade. A informação que está fortemente relacionada à outras informações e nunca é utilizada isoladamente deve ser um atributo. Como o caso de uso manipula a informação é decisivo. Um exemplo de objeto entidade é uma pessoa dados associados e comportamentos, como um cliente. 10

11 Objeto de Interface Modela comportamento e informação que é dependente de uma interface do sistema. É através desses objetos que os atores se comunicam com o sistema. A tarefa de um objeto de interface é traduzir as ações do ator no sistema em eventos no sistema e traduzir eventos no sistema no qual o ator está interessado em algo apresentável para o ator. Objetos de interface, em outras palavras, descreve a comunicação bidirecional entre o sistema e seus usuários, sendo que estes podem ser humanos ou outros sistemas. Logo, qualquer coisa sobre interface do sistema é colocada em objeto de interface. Um exemplo de objeto de interface é a funcionalidade de uma interface de usuário utilizada para apresentar informações sobre um cliente. Objeto de Controle Modela funcionalidades (são normalmente comportamentais) que não estão naturalmente ligadas aos outros tipos de objetos. Tipicamente um comportamento que consiste em operar diferentes objetos entidade, realizar algum processo e retornar o resultado para um objeto de interface, servindo como uma cola para unir os outros objetos num caso de uso. Este tipo de objeto aparece mais freqüentemente e sistemas mais complexos, e na maioria dos casos tem uma vida curta, sobrevivendo apenas durante a execução do caso de uso do qual faz parte. Um exemplo de objeto de controle é um objeto que calcula uma taxa utilizando diversos diferentes fatores. Para suportar melhor mudanças de funcionalidade, é importante que os objetos no modelo de análise estejam modelados com seu tipo adequado (entidade, interface ou controle). Dessa forma uma mudança de funcionalidade relacionada a uma informação que é mantida pelo sistema deve afetar somente o objeto entidade que representa esta informação. Da mesma forma, mudanças exigidas na interface afetarão somente objetos de interface e mudanças na funcionalidade envolvendo múltiplos objetos afetarão objetos de controle. Através desse três tipos de objetos nós podemos encapsular as áreas que nos queremos mudar Subsistemas Um número grande de objetos pode surgir, dependendo da complexidade do sistema. Para obter uma clara visão e entendimento do modelo é necessário agrupar os objetos em um ou mais níveis, dependendo do tamanho do sistema. Grupos de objetos são chamados de subsistemas. Subsistemas podem conter subsistemas, formando uma hierarquia. Os subsistemas empacotam os objetos para reduzir a complexidade, organizando o desenvolvimento e manutenção da estrutura. Os nomes dos subsistemas podem ser unidades da organização, como vendas, marketing, entrega, etc. A divisão em subsistemas deve ser baseada na funcionalidade do sistema e no forte acoplamento (relações funcionais) entre alguns objetos. Abaixo temos um exemplo de diagrama com divisão em subsistemas. Ele modela parte de um sistema para uma máquina que recebe embalagens retornáveis em um supermercado, citado anteriormente. Pacote Cliente Pacote Alarme e Impressora Receptor de Itens Dispositivo de Alarme Painel do Cliente Impressora Figura 6: Divisão do Modelo em Subsistemas 11

12 4 Construção Qual o propósito da fase de construção? O código fonte não pode ser escrito diretamente a partir do modelo de análise, uma vez que ele já descreve os objetos no sistema e como eles se relacionam? Existem três razões principais para o processo de construção: 1. O modelo de análise não é formal o suficiente. Para a transição para o código fonte devemos refinar os objetos que operações devem ser oferecidas, qual exatamente deve ser a comunicação entre os diferentes objetos, que estímulos são enviados, etc. 2. Deve ser feita uma adaptação para o atual ambiente de implementação. Na fase de análise nos assumimos um mundo ideal para o nosso sistema. Nós devemos agora transformar o modelo de análise do espaço de análise para o espaço de projeto, considerando por exemplo: requisitos de desempenho, requisitos de tempo real e concorrência, propriedades da linguagem de programação, o gerenciamento do banco de dados a ser usado, etc. 3. Nós queremos fazer a validação interna do resultado da análise. Como o sistema está crescendo e está sendo formalizado, nós veremos se os modelos da análise descrevem bem o sistema. Se forem descobertos pontos que não estejam claros no modelo de análise ou no modelo de requisitos nós devemos esclarecê-los, talvez pelo retorno à fase de análise. A construção é dividida em dois processos, projeto e implementação, cada um desenvolve o seu modelo. O modelo de projeto é um refinamento e formalização do modelo de análise no qual as conseqüências do ambiente de implementação tem que ser levadas em conta. O modelo de implementação é a atual implementação (código fonte) do sistema. Requisitos Processo de Construção Projeto Implementação Análise Projeto Implementação Figura 7: Fase de Construção 4.1 Projeto / Projeto O principal trabalho realizado no projeto é a adaptação do sistema ao ambiente de implementação que será utilizado. A meta é refinar o modelo de análise o suficiente para que ele facilite a escrita do código fonte (que é o modelo de implementação) na linguagem de programação escolhida a partir dele. Como dito, o modelo de análise servirá como base, entretanto, mudanças terão que ser feitas visando o ambiente de implementação, especialmente quando se tem por exemplo um banco de dados relacional, um ambiente distribuído, requisitos de desempenho ou processos concorrentes. O modelo de projeto consiste de três elementos: Diagrama de Blocos, Diagrama de Interações e Modelo de Interface de Blocos Diagrama de Blocos As estruturas com as quais nós trabalhamos no diagrama de blocos são basicamente as mesmas do modelo de análise, mas a visão muda já que é um passo na direção da implementação. Um bloco é um objeto de projeto. Como na análise diferentes tipos de blocos podem ser usados (Entidade, Interface e Controle). Inicialmente, cada objeto da análise é simplesmente transformado em um bloco. Mas com o trabalho de projeto, acaba-se inserindo alterações, por exemplo: um bloco pode ser dividido em dois para fins de desempenho, ou novos blocos podem ser adicionados para servirem de interface com um gerenciador de banco de dados. 12

13 4.1.2 Diagrama de Interação Os diagramas de interação são utilizados no modelo de projeto para descrever como cada caso de uso é manipulado pela interação dos objetos se comunicando. Interação é o envio ou recebimento de um estímulo de um bloco para outro. No diagrama de interação, cada bloco participante de um caso de suo particular é representado por uma coluna desenhada como uma linha vertical. Normalmente o ambiente externo ao sistema, a borda do sistema, é também representada por uma coluna mais à esquerda. Ela representa a interface para tudo o que está fora do diagrama de blocos (atores) e pode consequentemente corresponder a diferentes interfaces do sistema. No lado esquerdo da borda do sistema nos descrevemos as seqüências de interação. Esta descrição é textual, como texto estruturado ou pseudocódigo. Para pseudocódigo, a construção deve ser coerente com a linguagem de programação que será utilizada, para facilitar a migração para a implementação. O texto descreve o que está acontecendo numa parte particular caso de uso, chamada operação. A coluna, portanto o bloco, na qual a operação pertence é marcada com um retângulo, representando a operação. O diagrama de interação é controlado por eventos. Um novo evento dá margem a uma nova operação. Estes eventos são estímulos que são enviados de um objeto para outro e iniciam uma operação. Borda do Sistema Painel do Cliente Receptor de Itens Base de Recibos Item de Depósito Impressora iniciar ativar criar novo item Item( ) existe( ) inserir( item) incr obter nome obter valor recibo Imprimir recibo Imprimir( logo, data) imprimir Imprimir( nome, qtd, valor) destruir Figura 8: Diagrama de Interação 13

14 No diagrama está a representação de um dos casos de uso do sistema de sistema de recebimento de embalagens, citado anteriormente. O caso de uso começa quando o cliente pressiona o botão Iniciar. O bloco painel do cliente então ativa os sensores que são externos ao sistema. Agora o cliente pode iniciar o abastecimento de embalagens retornáveis. Isto é resolvido pelo comando DO...WHILE que termina quando o cliente requisita o recibo. Os itens são checados neste loop. Se o item é aceitável, nós incrementamos o número de coisas deste tipo abastecidas pelo cliente e no total do dia Interface de Blocos Este modelo apresenta toda a funcionalidade que cada bloco deve oferecer (interface). Para isso deve pegar um bloco e todos os diagramas de interação onde ele aparece, e a partir deles extrair as todas as operações que são requisitadas. Assim se obtém um retrato completo de cada bloco. 4.2 Implementação / Implementação Na implementação é feita a codificação do sistema. A base para a implementação é o modelo de projeto, que especifica a interface de cada bloco e descreve o comportamento esperado atrás de cada interface. O modelo de implementação consiste do código fonte acompanhado de seus comentários. O que ocorre é a transformação de cada bloco do modelo de projeto em uma ou mais unidades de código fonte, que nas linguagens de programação orientadas a objeto é representada por uma classe. A meta é que as classes sejam robustas e altamente reutilizáveis. Se uma classe oferece funcionalidade similar à outra, elas devem estar relacionadas por herança. As classes devem ter também alto grau de coesão, oferecendo funcionalidades que internamente estão fortemente interrelacionadas. Apesar de às vezes se ter a impressão que a construção é como caminho reto e fácil de se seguir, não exatamente esse o caso. O real desenvolvimento é um processo incremental, e freqüentemente muitas iterações devem ser feitas. Um exemplo de implementação complexa é o mapeamento para um banco de dados relacional, que requer coisas do tipo conversão de tipos, utilização de chaves, manipulação de erros e etc. 5 Teste / Teste A fase de teste verifica se o sistema que está sendo construído está correto. Os testes tradicionalmente são custosos, principalmente porque muitos defeitos não são detectados até o desenvolvimento. Uma abordagem bem organizada e disciplinada é necessária para aumentar a qualidade do sistema e diminuir o custo dos testes. Assim como as outras fases do objectory, os testes também são guiados pelos casos de uso, que afinal representam o que é desejado para o sistema. Os testes do sistema são realizados em três níveis, que serão vistos abaixo. Processo de Teste Requisitos Teste de Unidade Teste de Integração Teste do Sistema Projeto Implementação Teste Figura 9: Fase de Teste 5.1 Teste de Unidade Este tipo de teste consiste em examinar o sistema a partir de suas menores partes, como as operações de uma classe. Cada uma das operações é testada em separado. Quando estes testes tiverem sido terminados, iniciase o teste da classe como um todo. A base para estes dois testes é o modelo de projeto, em especial o modelo de interface de blocos que especifica o comportamento que é esperado para cada unidade de código. 14

15 5.2 Teste de Integração Quando todas as classes envolvidas num determinado caso de uso já foram testadas no teste de unidade, pode-se iniciar o teste de integração para este caso de uso. Este teste visa verificar se os objetos envolvidos estão se comunicando e colaborando corretamente para a resolução do caso de uso. Este teste é guiado pelo caso de uso que se está testando no momento, observando a devida descrição que está documentada no modelo de casos de uso. 5.3 Teste do Sistema Quando dois ou mais casos de uso que estejam relacionados já foram testados no teste de integração, é possível começar o teste do sistema, que só termina quando todos os casos de uso são testados em conjunto. Mais uma vez, o modelo de casos de uso é vital para estes testes. O modelo de testes nada mais é que o resultado documentado dos testes citados acima, relatando todo o teste: parte que estava sendo testada, tipo de teste realizado, dados utilizados, resultado obtido e avaliação (falho ou OK). Este modelo é especialmente importante quando o sistema está sendo desenvolvido em equipe. Os outros profissionais (analistas e programadores) poderão consultar o modelo de testes para auxiliar no descobrimento da causa do erro. Como os testes se iniciam por pequenas partes e vão crescendo com tempo, é perfeitamente possível que esta fase ocorra em paralelo com a fase de implementação e de forma paralela internamente. Importante salientar que em todos os níveis de testes, devem ser realizados os testes de caixa branca e de caixa preta, aplicando-se diversas técnicas diferentes de teste. Assim se tem uma melhor garantia contra erros. 15

16 Conclusão A metodologia de desenvolvimento de software Objectory realmente favorece a produção de um sistema com as caraterísticas da orientação a objeto, desde a análise até os testes. Porém, a metodologia parece se basear sempre na construção de um novo sistema, ainda não existente. Ela não oferece uma descrição explícita (pelo menos no material pesquisado) de qual deve ser o procedimento de análise baseada em um sistema já existente, como um sistema não informatizado ou um sistema legado. Talvez isso se deva ao fato de que o Objectory tenha surgido no meio das telecomunicações, onde a maioria dos sistemas é algo novo e inédito. Ele foi gradativamente adaptado para as áreas de negócios menores. Mas não se pode afirmar que em um dos livros de autoria do Jacobson, sobre Objectory, não haja alguma descrição de método para adaptação de sistemas existentes. Entre tanto, Objectory é uma metodologia que deve ser muito leva em consideração. Devido à sua técnica de desenvolvimento, sempre centrada nos casos de uso em todas as fases, tende a garantir um sistema consiste e coerente, que não se desvia de seus objetivos. Além disso, esta metodologia favorece o desenvolvimento em equipe, pois permite que as fases de desenvolvimento ocorram em paralelo, aumentando a produtividade. Isto se deve ao sistema de desenvolvimento de forma iterada, e não em seqüência. Outra vantagem do objectory é que ele descreve uma forma de análise em que o usuário é muito envolvido, não de forma formal como em entrevistas, mas de forma muito sinérgica, quase como se os usuários fizessem parte da equipe de desenvolvimento. Isso é possível devido a não utilização de termos técnicos na fase de análise e sim de termos do usuário. Com esta forma de análise é menor as chances de erros e se acabar construindo um sistema que não é o desejado pelos usuários. 16

17 Bibliografia 1. SELLERS, Brian Henderson; EDWARD, Julian M.. THE WORKING OBJECT. Rio de Janeiro: Prentice Hall, CARMICHAEL, Andy. OBJECT DEVELOPMENT. Nova York: Sigs, RATIONAL CORPORATION. DIRETORIA. Disponível na Internet no endereço em 14/09/ UML. Disponível na Internet no endereço em 14/09/01. 17

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

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: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet) UML Felipe Denis M. de Oliveira Fonte: Alice e Carlos Rodrigo (Internet) 1 Programação O que é UML? Por quê UML? Benefícios Diagramas Use Case Class State Interaction Sequence Collaboration Activity Physical

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

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

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

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no 1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

O modelo unificado de processo. O Rational Unified Process, RUP.

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML UML (Unified Modeling Language Linguagem de Modelagem Unificada) é uma linguagem-padrão para a elaboração da estrutura de

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

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Modelagem de Casos de Uso (Parte 1)

Modelagem de Casos de Uso (Parte 1) Modelagem de Casos de Uso (Parte 1) Roteiro Introdução Descrição: Sistema de Ponto de Vendas Casos de Usos Atores Fluxo de Eventos Cenários Formato de Documentação de Casos de Uso Diagramas de Casos de

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James

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

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

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

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

REQUISITOS DE SISTEMAS

REQUISITOS DE SISTEMAS REQUISITOS DE SISTEMAS MÓDULO 2 PROCESSOS DE NEGÓCIOS CONTEÚDO 1. PROCESSOS DE NEGÓCIO IDENTIFICAÇÃO CONCEITOS MODELAGEM (BPM e UML) PROCESSOS X REQUISITOS 1. PROCESSOS DE NEGÓCIO IDENTIFICAÇÃO CONCEITOS

Leia mais

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira

Leia mais

O Processo Unificado: Captura de requisitos

O Processo Unificado: Captura de requisitos O Processo Unificado: Captura de requisitos Itana Gimenes Graduação em Informática 2008 Captura de Requisitos Modelagem do negócio: Visão de negócios Modelo de objetos de negócio de negócio Especificação

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

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

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas Sistemas de Informação e Tecnologia em 3º Semestre Análise Orientada aos Objetos Modelagem de Casos de Uso Objetivo: Apresentar

Leia mais

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem

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

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

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC CURSO: Bacharelado em Ciência da Computação DISCIPLINA: ANPS Análise e Projeto de Sistemas AULA NÚMERO: 3 DATA: PROFESSOR: Murakami Sumário 1 APRESENTAÇÃO...1 2 DESENVOLVIMENTO...1 2.1 Revisão...1 2.1.1

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr Engenharia de Software Apostila I >>> Introdução à ES - HEngholmJr Histórico de Revisões Data Versão Descrição Autor 12/08/2014 1.0 Criação da primeira versão HEngholmJr Agenda Introdução à Engenharia

Leia mais

Processo Unificado (RUP)

Processo Unificado (RUP) Fases do Desenvolvimento Processo Unificado (RUP) Ulf Bergmann ulf@ime.eb.br Domínio do Problema Objetos Objetos do do Mundo Mundo real real Modelo Semântico Domínio da Solução Aplicação Interface Serviços

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

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0 O que é BABok? O BABok 2.0, Corpo de Conhecimento de Análise de Negócios, é considerado como um Guia Referência de Práticas de Análise de Negócio. Este guia é publicado e mantido pelo IIBA. O guia BABok

Leia mais

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como: Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Processo de Controle das Reposições da loja

Processo de Controle das Reposições da loja Processo de Controle das Reposições da loja Getway 2015 Processo de Reposição de Mercadorias Manual Processo de Reposição de Mercadorias. O processo de reposição de mercadorias para o Profit foi definido

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Unified Modeling Language Benno Eduardo Albert benno@ufrj.br O que é modelagem Tripé de apoio ao desenvolvimento. Notação: UML Ferramenta: Rational Rose. 2 O que é modelagem

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Notas de Aula 04: Casos de uso de um sistema

Notas de Aula 04: Casos de uso de um sistema Notas de Aula 04: Casos de uso de um sistema Objetivos da aula: Aprender os elementos básicos da modelagem por casos de uso Utilizar as associações entre casos de uso, atores e demais artefatos Compreender

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr Metodologia de Desenvolvimento de Software Prof. M.Sc. Sílvio Bacalá Jr Objetivos Discutir aspectos de Engenharia de Software Aplicar um método de desenvolvimento para especificação e projeto de software

Leia mais

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)

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

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

Leia mais

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

ROTEIRO PARA ELABORAÇÃO DE PROJETOS APRESENTAÇÃO ROTEIRO PARA ELABORAÇÃO DE PROJETOS Breve histórico da instituição seguido de diagnóstico e indicadores sobre a temática abrangida pelo projeto, especialmente dados que permitam análise da

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

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Abordagem de Processo: conceitos e diretrizes para sua implementação

Abordagem de Processo: conceitos e diretrizes para sua implementação QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

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

Engenharia de Software I: Análise e Projeto de Software Usando UML

Engenharia de Software I: Análise e Projeto de Software Usando UML Engenharia de Software I: Análise e Projeto de Software Usando UML Capítulo 1 Processo de Desenvolvimento de Software Metodologia de Desenvolvimento de Software Uma metodologia é um conjunto de métodos,

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP RUP Rational Unified Process ( Unificado de Desenvolvimento da Rational) Conjunto de passos que tem como objetivo atingir uma meta de software na ES, processo que visa a produzir o software - de modo eficiente

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

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

Uma Abordagem usando PU

Uma Abordagem usando PU Uma Abordagem usando PU Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Baseada em: Rational Software Corpotation G. Booch, Ivar Jacobson,

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

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

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Curso de Desenvolvimento de Software Prof. Alessandro J de Souza ajdsouza@cefetrn.br 1 Rational Unified Process RUP Fase Elaboração 2 VISÃO GERAL Fase Elaboração. Visão Geral 3

Leia mais