Capítulo 7 Conceção e Implementação 1
|
|
|
- Aurora Coimbra de Abreu
- 7 Há anos
- Visualizações:
Transcrição
1 Capítulo 7 Conceção e Implementação Capítulo 7 Conceção e Implementação 1
2 Assuntos abordados Design orientado a objetos com recurso ao UML Padrões de design Questões de implementação Desenvolvimento de código aberto Capítulo 7 Concepção e Implementação 2
3 Design e implementação Design e implementação de software é a fase do processo de engenharia de software em que um sistema de software executável é desenvolvido. Atividades de design e implementação de software são invariavelmente intercaladas. Design de software é uma atividade criativa em que você identifica os componentes de software e suas relações, com base nos requisitos do cliente. A implementação é o processo de realização do projeto como um programa executável. Capítulo 7 Concepção e Implementação 3
4 Construir ou comprar Em vários domínios, é agora possível comprar software que pode ser parameterizado e adaptado às necessidades dos utilizadores. Por exemplo, para se implementar um sistema de registos médicos, pode-se comprar um pacote que já é usado em hospitais. Pode ser mais barato e mais rápido usar essa abordagem em vez de desenvolver um sistema numa linguagem de programação convencional. Quando se desenvolve uma aplicação, o processo de design preocupa-se com a forma de utilizar os recursos de configuração desse sistema para entregar os requisitos do sistema. Capítulo 7 Concepção e Implementação 4
5 Design orientado a objetos com recurso ao UML Capítulo 7 Concepção e Implementação 5
6 Processo de design orientado ao objeto Os processos de design orientado a objetos envolvem o desenvolvimento de vários modelos de sistemas. Exigem um grande esforço para o desenvolvimento e manutenção destes modelos e, para pequenos sistemas, isso pode não ser rentável. No entanto, para grandes sistemas, desenvolvidos por diferentes grupos, modelos de design são um mecanismos importante de comunicação. Capítulo 7 Concepção e Implementação 6
7 Etapas do processo Há uma variedade de diferentes processos de design orientados a objetos. Atividades comuns nestes processos incluem: Definir o contexto e modos de utilização do sistema; Projetar a arquitetura do sistema; Identificar os principais objetos do sistema; Desenvolver modelos de design; Especificar interfaces de objetos. Capítulo 7 Concepção e Implementação 7
8 Contexto do sistema e as interações Compreender as relações entre o software que está a ser projetado e o seu ambiente externo é essencial para decidir como fornecer as funcionalidades necessárias do sistema e como estruturar o sistema para se comunicar com o seu ambiente. Compreensão do contexto permite também estabelecer os limites do sistema. Definir os limites do sistema ajuda a decidir quais os recursos que são implementados no sistema que está a ser desenhado e que recursos estão em outros sistemas associados. Capítulo 7 Concepção e Implementação 8
9 Modelos de contexto e interação Um modelo de contexto do sistema é um modelo estrutural que demonstra os outros sistemas no ambiente do sistema que está a ser desenvolvido. Um modelo de interação é um modelo dinâmico que mostra como o sistema interage com o seu ambiente, como ele é usado. Capítulo 7 Concepção e Implementação 9
10 Sistema contexto para a estação de metereologia Capítulo 7 Concepção e Implementação 10
11 Casos de uso da estação meteorológica Capítulo 7 Concepção e Implementação 11
12 Descrição do caso de uso Weather Report Sistema Caso de uso Atores Descrição Estímulo Resposta Comentários Estação meteorológica Boletim meteorológico Sistema de informação metereológica, Estação meteorológica A estação meteorológica envia um resumo dos dados meteorológicos que foram recolhidos, para o sistema de informações meteorológicas. Os dados enviados são a temperatura, a pressão do ar, a velocidade do vento, a precipitação e a direcção do vento com intervalos de cinco minutos. O sistema de informação metereológica estabelece um link de comunicação via satélite com a estação meteorológica e solicita a transmissão dos dados. Os dados resumidos são enviados para o sistema de informações meteorológicas. Estações meteorológicas são normalmente solicitados a relatar uma vez por hora, mas essa freqüência pode diferir de uma estação para outra e pode ser modificado no futuro. Capítulo 7 Concepção e Implementação 12
13 Projeto arquitetónico Uma vez que as interações entre o sistema e o seu ambiente ter sido compreendido, pode-se usar esta informação para projetar a arquitetura do sistema. Identificar os principais componentes que compõem o sistema e as suas interações, e, em seguida, pode organizar os componentes usando um padrão de arquitetura, tais como um modelo em camadas ou cliente-servidor. A estação meteorológica é composto por subsistemas independentes que se comunicam pela transmissão de mensagens numa infra-estrutura comum. Capítulo 7 Concepção e Implementação 13
14 Arquitetura alto-nível da estação meteorológica Capítulo 7 Concepção e Implementação 14
15 Arquitetura do sistema de recolha de dados Capítulo 7 Concepção e Implementação 15
16 Identificação da classe de objeto Identificar classes de objetos é muitas vezes uma tarefa difícil, parte do projeto orientado a objetos. Não há 'fórmula mágica' para a identificação de objetos. Baseia-se na habilidade, experiência e conhecimento de domínio dos projetistas de sistemas. Identificação de objetos é um processo iterativo. É improvável que se obtenha correto na primeira vez. Capítulo 7 Concepção e Implementação 16
17 Abordagens para a identificação Usar uma abordagem gramatical baseada numa descrição do sistema em linguagem natural. Basear a identificação em coisas tangíveis no domínio do aplicativo. Usar uma abordagem comportamental e identificar objetos com base no que participa o comportamento. Usar uma análise baseada em cenários. Os objetos, atributos e métodos em cada cenário são identificados. Capítulo 7 Concepção e Implementação 17
18 Classes de objeto da estação meteorológica Identificação das classe de objeto no sistema da estação meteorológica, pode ser baseada no hardware tangível e nos dados do sistema: Termómetro, anemómetro, entre outros Objetos de domínio da aplicação que são objetos 'hardware' relacionados com os instrumentos do sistema. Estação meteorológica A interface básica da estação meteorológica com seu ambiente. Reflete as interações identificadas no modelo de caso de uso. Dados meteorológicos Encapsula os dados recolhidos pelos instrumentos. Capítulo 7 Concepção e Implementação 18
19 Modelos de design Modelos de design mostram os objetos, classes de objetos e relações entre estas entidades. Existem dois tipos de modelo de design: Os modelos estruturais descrever a estrutura estática do sistema em termos de classes de objetos e as suas relações. Modelos dinâmicos descrevem as interações dinâmicas entre objetos. Capítulo 7 Concepção e Implementação 20
20 Exemplos de modelos de design Modelos de subsistemas que mostram os agrupamentos lógicos de objetos em subsistemas coerentes. Modelos de sequência que mostram a sequência de interações dos objetos. Modelos de máquina de estado que mostram como objetos individuais mudam o seu estado em resposta a eventos. Outros modelos incluem modelos de caso de uso, modelos de agregação, modelos de generalização, etc. Capítulo 7 Concepção e Implementação 21
21 Modelos de subsistema Mostra como o projeto está organizado em grupos de objetos logicamente relacionados. Em UML, estes são mostrados usando pacotes. Este é um modelo lógico. A organização real dos objetos no sistema podem ser diferentes. Capítulo 7 Concepção e Implementação 22
22 Modelos de sequência Modelos de sequência mostram a sequência de interações dos objetos Os objetos são dispostas horizontalmente na parte superior; O tempo é representado verticalmente para e são lidos de cima para baixo; Interações estão representadas por setas, diferentes estilos de seta representam diferentes tipos de interação; Um retângulo representa o momento em que o objeto é o objeto de controlo no sistema. Capítulo 7 Concepção e Implementação 23
23 Diagram de sequência que descreve a recolha de dados Capítulo 7 Concepção e Implementação 24
24 Diagramas de estado Diagramas de estado são usados para saber como os objetos respondem a diferentes solicitações de serviço e às transições de estado desencadeadas por estas solicitações. Diagramas de estado são modelos de alto nível de um sistema ou o comportamento de tempo de execução de um objeto. Normalmente não precisa de um diagrama de estado para todos os objetos no sistema. Muitos dos objetos num sistema são relativamente simples e um modelo de estado acrescenta detalhes desnecessários ao design. Capítulo 7 Concepção e Implementação 25
25 Diagrama de estados da estação metereológica Capítulo 7 Concepção e Implementação 26
26 Especificação de interface Interfaces de objetos precisam ser especificados para que os objetos e outros componentes possam ser projetados em paralelo. Designers devem evitar projetar a representação da interface, deve-se esconder isso no próprio objeto. Os objetos podem ter diversas interfaces que são pontos de vista sobre os métodos fornecidos. Em UML usa-se o diagrama de classes para a especificação da interface. Capítulo 7 Concepção e Implementação 27
27 Interfaces da estação metereológica Capítulo 7 Concepção e Implementação 28
28 Padrões de design Capítulo 7 Concepção e Implementação 29
29 Padrões de design Um padrão de design é uma maneira de reutilizar o conhecimento abstrato sobre um problema e a sua solução. Um padrão é uma descrição do problema e a essência da sua solução. Deve ser suficientemente abstrato para ser reutilizado em diferentes contextos. Descrições padrão costumam fazer uso de características orientadas a objetos, tais como herança e polimorfismo. Capítulo 7 Concepção e Implementação 30
30 Patterns Padrões e linguagens de padrões são formas de descrever as melhores práticas, bons projetos e experiência de captura de uma forma que é possível para os outros reutilizar essa experiência. Capítulo 7 Concepção e Implementação 31
31 Elementos do padrão teste Nome Um identificador padrão significativo. Descrição do Problema. Descrição da solução. Não é um projeto concreto, mas um modelo para uma solução de design que pode ser instanciado em maneiras diferentes. Consequências Os resultados e as compensações de aplicação do padrão. Capítulo 7 Concepção e Implementação 32
32 O padrão observador Nome Observador. Descrição Separa a exibição de estado do objeto a partir do próprio objeto. Descrição do Problema Usado quando são necessários vários monitores de estado. Descrição da solução Veja slide com descrição UML. Consequências Otimizações para melhorar o desempenho de exibição são impraticáveis. Capítulo 7 Concepção e Implementação 33
33 Vários monitores usando o padrão Observer Capítulo 7 Concepção e Implementação 36
34 Problemas de design Para usar padrões num projeto, precisa-se reconhecer que qualquer problema de design pode ter um padrão associado que pode ser aplicado. Vários objetos que o estado de algum outro objeto foi alterado. Arrumar as interfaces para uma série de objetos relacionados que foram muitas vezes desenvolvidas de forma incrementa. Fornecer uma maneira padrão de acessar os elementos em uma coleção, independentemente de como essa coleção é implementada. Permitir a possibilidade de estender a funcionalidade de uma classe existente no tempo de execução. Capítulo 7 Concepção e Implementação 38
35 Problemas de implementação Capítulo 7 Concepção e Implementação 39
36 Problemas de implementação Foco aqui não é sobre a programação, embora este é, obviamente, importante, mas em outras questões de implementação que muitas vezes não são abordados em programação: Reuso A maioria do software moderno é construído através da reutilização de componentes ou sistemas existentes. Quando se está a desenvolver um software, deve-se fazer o máximo uso possível de código existente. Gestão de configurações Durante o processo de desenvolvimento, tem que se manter a par das muitas versões diferentes de cada componente de software num sistema de gestão de configuração. Desenvolvimento O software de produção não costuma executar no mesmo computador como o ambiente de desenvolvimento de software. Em vez disso, desenvolve-se num computador (o sistema host) e executa-se num computador separado (sistema de destino). Capítulo 7 Concepção e Implementação 40
37 Reuso A partir dos anos 1960 aos anos 1990, a maioria dos novos software foi desenvolvido a partir do zero, escrito todo o código em uma linguagem de programação de alto nível. A única reutilização significativa foi a reutilização de funções e objetos em bibliotecas de linguagem de programação. Custos e pressão de cronograma, significa que esta abordagem tornou-se cada vez mais inviável, especialmente para sistemas comerciais e baseados na Internet. Uma abordagem ao desenvolvimento baseada em torno da reutilização de software existente é geralmente usado para software de negócios e software científico. Capítulo 7 Concepção e Implementação 41
38 Níveis de reutilização O nível de abstração Neste nível, não se reutiliza software diretamente, mas usar o conhecimento de abstrações na concepção do software. O nível do objecto Neste nível, reutiliza-se diretamente objetos de uma biblioteca, em vez de escrever o código. O nível de componente Os componentes são coleções de objetos e classes de objetos que se reutiliza em sistemas de aplicação. O nível de sistema Neste nível, reutiliza-se sistemas de aplicação inteiros. Capítulo 7 Concepção e Implementação 42
39 Reuso de software Capítulo 7 Concepção e Implementação 43
40 Custos de reutilização Os custos do tempo gasto na procura de software para reutilizar e avaliar se é viável ou não às necessidades. Quando aplicável, os custos de aquisição do software reutilizáveis. Para grandes sistemas off-the-shelf, estes custos podem ser muito elevados. Os custos de adaptação e configuração dos componentes ou sistemas de software reutilizáveis para refletir os requisitos do sistema que se está a desenvolver. Os custos de integração de elementos de software reutilizáveis uns com os outros (se estiver s usar software de diferentes fontes) e com o novo código que se desenvolveu. Capítulo 7 Concepção e Implementação 44
41 Gestão de configurações Gestão de configuração é o nome dado ao processo geral de gestão das mudanças de um sistema de software. O objetivo da gestão de configuração é apoiar o processo de integração do sistema de modo a que todos os programadores possam acessar ao código e documentos do projeto de uma forma controlada, descobrir que mudanças foram feitas, e compilar componentes de ligação para criar um sistema. Capítulo 7 Concepção e Implementação 45
42 Atividades de gestão de configuração Gestão de versões, onde se acompanha as diferentes versões de componentes de software. Sistemas de gestão de versões incluem instalações para coordenar o desenvolvimento de vários programadores. Integração de sistemas, onde os programadores a definem as versões de componentes que vão usar para criar cada versão do sistema. Acompanhamento de problemas, onde permite aos utilizadores reportar bugs e outros problemas, para permitir que os programadores os resolvam. Capítulo 7 Concepção e Implementação 46
43 Interação ferramenta de gestão de configuração Capítulo 7 Concepção e Implementação 47
44 Desenvolvimento Host-Target A maioria dos softwares é desenvolvido num computador (host), mas é executado numa máquina separada (o alvo). De modo mais geral, podemos falar de uma plataforma de desenvolvimento e uma plataforma de execução. A plataforma é mais do que apenas hardware. Inclui o sistema operacional instalado além de outros softwares de suporte, como um sistema de gestão de base de dados ou, para plataformas de desenvolvimento, um ambiente de desenvolvimento interativo. Plataforma de desenvolvimento tem geralmente software instalado diferente da plataforma de execução; essas plataformas podem ter diferentes arquiteturas. Capítulo 7 Concepção e Implementação 48
45 Desenvolvimento Host-Target Capítulo 7 Concepção e Implementação 49
46 Ferramentas para a plataforma de desenvolvimento Um compilador integrado e sistema de edição dirigida pela sintaxe que permite criar, editar e compilar o código. Um sistema de linguagem de depuração. Ferramentas de edição de gráficos, como ferramentas para editar modelos UML. Ferramentas de teste, tais como junit que pode executar automaticamente uma série de testes numa nova versão de um programa. Ferramentas de apoio ao projeto que ajudam a organizar o código para diferentes projectos de desenvolvimento. Capítulo 7 Concepção e Implementação 50
47 Ambientes de desenvolvimento integrado (IDEs) Ferramentas de desenvolvimento de software muitas vezes são agrupados para criar um ambiente de desenvolvimento integrado (IDE). Um IDE é um conjunto de ferramentas de software que suporta diferentes aspectos do desenvolvimento de software, dentro de algum quadro comum e interface de utilizador. IDEs são criados para apoiar o desenvolvimento de uma linguagem de programação específica, como Java. Capítulo 7 Concepção e Implementação 51
48 Componentes de implantação do sistema Se um componente é projetado para uma arquitetura de hardware específico, ou se baseia em algum outro sistema de software, deve, obviamente, ser implantado numa plataforma que fornece o suporte de hardware e software necessários. Sistemas de alta disponibilidade podem exigir componentes para ser implantado em mais do que uma plataforma. Isto significa que, em caso de falha da plataforma, uma implementação alternativa do componente está disponível. Se houver um alto nível de tráfego de comunicações entre os componentes, normalmente faz sentido implantá-los na mesma plataforma ou em plataformas que estão fisicamente próximos uma das outras. Isso reduz o atraso entre o tempo que uma mensagem é enviada por um componente e recebida por outra. Capítulo 7 Concepção e Implementação 52
49 Desenvolvimento de código aberto Capítulo 7 Concepção e Implementação 53
50 Desenvolvimento de código aberto Desenvolvimento de código aberto é uma abordagem para o desenvolvimento de software no qual o código fonte de um sistema de software é publicado e os voluntários são convidados a participar no processo de desenvolvimento Suas raízes estão na Free Software Foundation ( Que defende que o código fonte não deve ser proprietário, mas sim deve estar sempre disponível para os utilizadores o examinarem e modificarem como desejarem. Software de código aberto estendeu essa ideia usando a Internet para recrutar uma população muito maior de programadores voluntários. Muitos deles também são utilizadores do código. Capítulo 7 Concepção e Implementação 54
51 Sistemas de código aberto O produto de código aberto mais conhecido é, claro, o sistema operacional Linux, que é amplamente usado como um sistema de servidor e, cada vez mais, como um ambiente desktop. Outros produtos open source importantes são o Java, o servidor web Apache e o mysql Sistema de Gestão de Base de Dados. Capítulo 7 Concepção e Implementação 55
52 Negócios de fonte aberta Mais e mais empresas de produtos estão a usar uma abordagem de código aberto para o desenvolvimento. O seu modelo de negócio não é dependente da venda de um produto de software, mas na venda de suporte para esse produto. Elas acreditam que o envolvimento da comunidade de código aberto irá permitir que o software seja desenvolvido de forma mais barata, mais rápida e vai criar uma comunidade de utilizadores para o software. Capítulo 7 Concepção e Implementação 57
53 Licenciamento de fonte aberta Um princípio fundamental do desenvolvimento de código aberto é que o código fonte deve ser livremente disponíveis, isso não significa que qualquer um pode fazer o que quiserem com esse código. Legalmente, o programador do código (seja uma empresa ou um indivíduo) ainda possui o código. Eles podem colocar restrições em como ele é usado, incluindo condições juridicamente vinculativos em uma licença de software de código aberto. Alguns programadores de código aberto acreditam que, se um componente de código aberto é usado para desenvolver um novo Sistema em seguida, que o sistema também deve ser de código aberto. Outros estão dispostos a permitir que o seu código seja usado sem essa restrição. Os sistemas desenvolvidos podem ser proprietários e vendidos como sistemas de código fechado. Capítulo 7 Concepção e Implementação 58
54 Modelos de licença O GNU General Public License (GPL). Esta é uma chamada de licença 'recíproco' que significa que se usar o software de código aberto que está licenciado sob a licença GPL, então deve fazer esse software fonte aberta. O GNU Lesser General Public License (LGPL) é uma variante da licença GPL, onde se pode escrever componentes que apontam para abrir o código-fonte sem ter que publicar a origem desses componentes. Distribuição Berkley Padrão (BSD) License. Esta é uma licença não recíproca, o que significa que não são obrigados a voltar a publicar quaisquer alterações ou modificações feitas para abrir o código-fonte. Você pode incluir o código em sistemas proprietários que são vendidos. Capítulo 7 Concepção e Implementação 59
55 Gestão de licenças Estabelecer um sistema para manter as informações sobre os componentes de código aberto que são baixados e usados. Estar ciente dos diferentes tipos de licenças e compreender como um componente é licenciado antes de ser usado. Estar ciente dos caminhos de evolução para os componentes. Educar as pessoas sobre código aberto. Têm sistemas de auditoria no local. Participar da comunidade open source. Capítulo 7 Concepção e Implementação 60
56 Pontos chave O processo de concepção orientada para o objecto inclui actividades como conceber a arquitectura do sistema, identificar objectos no sistema, descrever a concepção utilizando diferentes modelos de objecto e documentar as interfaces de componentes. Uma gama de diferentes modelos podem ser produzidos durante um processo de concepção orientada por objectos. Estes incluem modelos estáticos (modelos de classe, modelos de generalização, modelos de associação) e modelos dinâmicos (modelos de sequência, modelos de máquinas de estado). Interfaces de componentes deve ser definido com precisão para que outros objetos possam usá-los. Capítulo 7 Concepção e Implementação 61
57 Pontos chave Ao desenvolver software, deve-se sempre considerar a possibilidade de reutilizar software existente, quer como componentes, serviços ou sistemas completos. Gestão de configuração é o processo de gerir mudanças para um sistema de software em evolução. É essencial quando uma equipa de pessoas estão a cooperar para desenvolver software. A maioria de desenvolvimento de software é o desenvolvimento host-target. Usa-se um IDE em uma máquina host para desenvolver o software, que é transferida para uma máquina de destino para execução. Desenvolvimento de código aberto envolve fazer o código fonte de um sistema acessível ao público. Isso significa que muitas pessoas podem propor alterações e melhorias no software. Capítulo 7 Concepção e Implementação 62
Capítulo 5 Modelação do Sistema 1
Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos
Capítulo 2 - Processos de Software
Capítulo 2 - Processos de Software Capítulo 2 Processos Software 1 Assuntos abordados Modelos de processo de software Atividades no processo de software Mudança no processo de software Melhoria de processos
15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos
DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,
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
Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1
Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando
Visões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Rational Unified Process (RUP)
Rational Unified Process (RUP) A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi à criadora da Unified Modeling Language (UML), assim como de várias ferramentas que
Engenharia de Software. Projeto de Arquitetura
Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra
Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência
Diagramas Os diagramas utilizados pela UML são compostos de nove tipos: diagrama de use case, de classes, de objecto, de estado, de sequência, de colaboração, de actividade, de componente e o de instalação/execução.
Especificação de Sistemas de Software e a UML
Modelagem de sistema Especificação de Sistemas de Software e a UML A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema Modelo => visão simplificada e abstrata de um sistema
UML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Introdução a UML (Unified Modeling Language)
Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário
ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software
ENGENHARIA DE SOFTWARE Aula 17 Reuso de software OBJETIVOS Entender os benefícios e problemas de reuso de software durante o desenvolvimento de novos sistemas; Entender o conceito de um framework de aplicações
MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro
MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade
Notas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE
1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira [email protected] O que é?? 2 A UML
Processos de software
Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de
O que é um sistema distribuído?
Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores
DIAGRAMAS DE CLASSE UML
DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar
INF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho [email protected] Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
RUP RATIONAL UNIFIED PROCESS
O que é RUP? É um metodologia para gerenciar projetos de desenvolvimento de software que usa a UML como ferramenta para especificação de sistemas. Ele é um modelo de processo híbrido Mistura elementos
Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.
Engenharia de Software Aula 07 Tópicos da Aula Introdução à UML e Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 28 Março 2012 A
Análise e projeto de sistemas
Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os
UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos
UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos [email protected] Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.
Capítulo 6. Projeto de arquitetura. 2011 Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1
Capítulo 6 Projeto de arquitetura slide 1 2011 Pearson Pren0ce Hall. Todos os direitos reservados. 1 Os tópicos abordados Decisões de projeto de arquitetura Visões de arquitetura Padrões de arquitetura
2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.
Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Ciclo de Vida - Fluxos Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre
Prof. Esp. Fabiano Taguchi
UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected] UML COMPETÊNCIA: Conhecer e desenvolver estudos de caso usando modelagem orientada a objeto. HABILIDADE: Conhecer
Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
Técnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
UML Unified Modeling Language Linguagem de Modelagem Unificada
UML Unified Modeling Language Linguagem de Modelagem Unificada Prof. Gilberto Porto e-mail: [email protected] A linguagem UML n UML (Unified Modeling Language) Linguagem de Modelagem Unificada
Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves
I Processos de desenvolvimento de SW profa. Denise Neves [email protected] 2018 Projeto Um projeto é um empreendimento temporário empreendido para alcançar um único conjunto de objetivos. (PMI,PMBOK
UML e seus diagramas
UML e seus diagramas A UML Unified Modeling Language (Linguagem de Modelagem Unificada), como o próprio nome já diz, é uma linguagem para modelagem de objetos do mundo real, usada para especificar, construir,
Análise e Projeto. Prof. Erinaldo Sanches Nascimento
Análise e Projeto Prof. Erinaldo Sanches Nascimento Objetivos Apresentar o ciclo de vida de desenvolvimento de sistemas. Descrever as metodologias de desenvolvimento de sistemas. 2 Introdução Programação
Engenharia de Software II
Engenharia de Software II Aula 4 http://www.ic.uff.br/~bianca/engsoft2/ Aula 4-03/05/2006 1 Modelos Prescritivos de Processo Modelo em cascata Modelos incrementais Modelo incremental Modelo RAD Modelos
Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU
Aula 2 POO 1 Introdução Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education
Reúso de Software Adaptado de Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reúso de Software Na maioria das disciplinas de engenharia, os sistemas são projetados por meio
Professor Emiliano S. Monteiro
Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer
Introdução a Engenharia de Software
Engenharia de Software Aula 02 Introdução a Engenharia de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] ou [email protected] 7 Março de 2018 Bibliografia
RUP Unified Process. Profª Jocelma Rios
RUP Unified Process Profª Jocelma Rios Nov/2012 O que pretendemos: Reforçar os aspectos que caracterizam o processo iterativo e incremental Identificar como atingir os objetivos dos projetos de software
ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software
ENGENHARIA DE SOFTWARE Aula 03 Processos de Software AGENDA Modelos de processo de software Atividades do processo Lidando com mudanças Rational Unified Process (RUP) 14/03/2017 IFPR QUEDAS DO IGUAÇU -
Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata
Processo de Desenvolvimento Também chamado de ciclo de vida do software Reflete os passos necessários para se construir um produto de software Existem vários modelos de ciclo de vida Cascata (1956) Iterativo
Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes
Engenharia de Software Aula 09 Tópicos da Aula Projeto de Software Revisão de orientação a objetos Projeto orientado a objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 04
Modelagem de Sistemas Web. Modelagem de BD
Modelagem de Sistemas Web Aula 9 Modelagem de BD OBS: Pré-requisito: noções intermediárias em BD e de modelo ER Fonte: Proj. e Mod. BD 4/E Capítulo: Análise de Req. E Mod. Dados Conceit. - Toby Teorey
Introdução a UML e seus diagramas
Introdução a UML e seus diagramas A Unified Modelling Language (UML) é uma linguagem ou notação de diagramas para especificar, visualizar e documentar modelos de software orientados por objetos. O UML
Projeto de Arquitetura
Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto
POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos
UEG - Universidade Estadual de Goiás (Câmpus Posse) Disciplina: Análise e Projeto de Sistemas II Turma: 4 Semestre Ano: 2016 Professor: José Ronaldo Leles Júnior O que é? É uma forma de abordar um problema.
SOFTWARE REUSE. Ian Sommerville, 8º edição Capítulo 18. Aula de Luiz Eduardo Guarino de Vasconcelos
SOFTWARE REUSE Ian Sommerville, 8º edição Capítulo 18 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Explicar os benefícios e alguns problemas do reuso de software Descrever diferentes tipos de
Processos de Software
Processos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama [email protected] Slides originais elaborados por Ian Sommerville e adaptado pelos profs. Márcio Cornélio, Vinicius
Requisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?
DCC / ICEx / UFMG A Linguagem UML A Linguagem UML Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo UML (Linguagem de Modelagem Unificada) É uma notação gráfica (visual) para projetar sistemas OO Não
UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas
Diagrama de Atividades Diagrama de Caso de Uso ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas [email protected] 1 - Conceitos 2 UML é uma linguagem para: Especificar Visualizar Construir...
UML Diagramas Estruturais Diagrama de Componentes
UML Diagramas Estruturais Diagrama de Componentes Representa um modelamento físico dos componentes de software de um determinado Sistema Um componente realiza um conjunto de interfaces e contém em seu
Generalização das técnicas de Piloto Automático para VANTs. Aluno: Raphael da Silva Teixeira (ED 14205) Professor: Cel R/R Cícero Garcez
Generalização das técnicas de Piloto Automático para VANTs Aluno: Raphael da Silva Teixeira (ED 14205) Professor: Cel R/R Cícero Garcez Introdução Um piloto automático é um sistema micro-elétrico-mecânico
Engenharia de Software
Instituto Superior Politécnico de Ciências e Tecnologia Engenharia de Software Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018 Capítulo 1 Introdução SUMÁRIO Engenharia de Software Definição; Objectivos
Visões Arquiteturais. Arquitetura de Software Thaís Batista
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Paradigmas de Software
Paradigmas de Software Objetivos Introdução aos paradigmas de software. Descrição de modelos genéricos e sua aplicabilidade. Descrição dos processos de requisitos, desenvolvimento, teste e evolução. Modelo
Introdução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador
Prof. Araken Medeiros [email protected] O processo de resolução de um problema com um computador leva à escrita de um algoritmo ou programa e à sua execução. Mas o que é um algoritmo? Angicos, RN 15/9/2009
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 2006 Profa. Dra. Itana Gimenes RUP: Projeto Artefatos Modelo de Projeto: Lista de classes de
UML. Rodrigo Leite Durães.
UML Rodrigo Leite Durães. [email protected] O que é Análise de Software? UML: É o estágio de um sistema que captura os requisitos e o domínio do problema, focalizando no que deve ser feito, não
Arquitetura de Software visão emergente
Arquitetura de Software visão emergente Objetivos Visão abstrata do software através de componentes e interfaces Independência de plataforma Independência de paradigma de programação Técnicas Estilos Arquiteturais
Engenharia de Software
Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento
RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN
RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS Prof. Fabiano Papaiz IFRN O RUP recomenda as seguintes práticas que devem ser utilizadas no desenvolvimento de um software: 1. Desenvolver de forma iterativa
Análise de Sistemas. Aula 5
Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles
1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010
1 1 Introdução 1.1 Teoria dos Sistemas 1.2 Constituição dos sistemas 1.3 Natureza dos sistemas 1.4 Parâmetros do sistema 1.5 Descrição de sistemas 1.6 Desafios enfrentados no desenvolvimento 1.7 Perfil
Engenharia de Software 2012/3 Aula 5 Modelagem de Sistemas
Engenharia de Software Engenharia de Software 2012/3 Aula 5 Modelagem de Sistemas Thiago P. da Silva [email protected] Agenda Modelagem de Sistemas Modelos de contexto Diagramas de Atividades Modelos
Manutenção Leitura: Sommerville; Pressman
Manutenção Leitura: Sommerville; Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 1 Manutenção de software É modificar um programa depois que ele
Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão
Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida [email protected] Marcelo Nassau Malta [email protected]
Estilos Arquiteturais
Estilos Arquiteturais Estilos Arquiteturais A arquitetura de um sistema pode aderir a um ou mais estilos arquiteturais Um estilo define os tipos de elementos que podem aparecer em uma arquitetura e as
Engenharia de Software. Herbert Rausch Fernandes
Engenharia de Software Herbert Rausch Fernandes O Processo Unificado É uma tentativa de unir os melhores recursos e características dos modelos convencionais; Reconhece a importância da comunicação com
Engenharia de Software
Universidade São Judas Tadeu Prof. André Luiz Ribeiro Prof. Jorge Luis Pirolla Introdução à Computação Engenharia de Software Tópicos O que é Engenharia de Software? Engenharia de Software em camadas Processo
Prof. Fábio Lúcio Meira
Prof. Fábio Lúcio Meira Objetivo Transformar os requisitos no design do futuro sistema Evoluir uma arquitetura robusta do sistema Adaptar o design para adequá-lo ao ambiente de implementação O principal
Modelagem de Sistemas. Análise de Requisitos. Modelagem
Modelagem de Sistemas Teoria Geral de Sistemas TADS 2. Semestre Prof. André Luís Para abordarmos de forma mais profunda os conceitos de Modelagem de Sistemas de Informação, precisamos também falar na Engenharia
Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.
Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio
Padrões. Arquitetura de Software Thaís Batista
Padrões Endereçam uma classe de problemas recorrentes e apresenta uma solução para eles (podem ser considerados um par problema-solução) Permitem a construção de software com propriedades definidas Ajudam
