Marcelo Henrique dos Santos
|
|
- Simone Godoi Madeira
- 6 Há anos
- Visualizações:
Transcrição
1 Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação marcelosantos@outlook.com REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos
2 AULA 03 Linha de Produto REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos
3 Introdução Um ponto crítico no projeto e na construção de todo o sistema de software é sua arquitetura: isto é, sua organização bruta como uma coleção de componentes de interação. Uma boa arquitetura pode permitir que um sistema satisfaça às exigências chaves em áreas como: o desempenho, a confiabilidade, a portabilidade, a escalabilidade, e a sua interoperabilidade. Uma arquitetura má pode ser desastrosa. 3
4 Introdução Apesar da existência de livros, artigos e ferramentas, a Arquitetura de Software todavia ainda está em uma fase pouco madura. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 4
5 A Crise de Software Dificuldades no Trabalho com Software Medidas pobres de eficiência e qualidade Insatisfação do usuário é frequente Pouco entendimento dos requisitos Problemas de Comunicação entre o usuário e o analista A qualidade do software é frequentemente suspeita Poucas medidas e critérios de qualidade 5
6 A Crise de Software Dificuldades no Trabalho com Software Software existente é muito difícil de manter E tem que ser mantido até ser substituído REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 6
7 Causas A Crise de Software Introdução de erros no processo Má especificação Mau projeto Má implementação Testes incompletos ou mal feitos Problemas na comunicação homem-máquina REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 7
8 A Crise de Software Causas Problemas na gerência Falta de treinamento em novas técnicas de desenvolvimento O processo está evoluindo muito rapidamente em função do aprendizado. É necessário reciclar REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 8
9 Problemas Complexidade Especificar sistemas é uma atividade bastante complexa. Não se trata apenas de fazer uns programinhas. Insatisfação dos usuários usuários sentem-se frustrados com sistemas difíceis de serem operados e/ou cujo desenvolvimento se prolonga por vários anos. usuário precisa de sistemas funcionando de acordo com suas necessidades O valor de um sistema está em atender com precisão as necessidades de seus usuários. 9
10 Problemas Produtividade Costuma estar quase sempre aquém do desejado. Freqüentemente, a alocação de recursos e atividades são desbalanceadas. Algumas questões recebem consideração demasiada, enquanto outras são insuficientemente consideradas. Custos, tempo e recursos geralmente são subestimados 10
11 Problemas Confiabilidade do Sistema Há diversas estatísticas que provam a pouca confiabilidade de boa parte dos sistemas. depende do uso de métodos que possam garantir uma boa qualidade do produto construído Não basta que o sistema produza resultados solicitados pelo usuário.mas que também tenha o desempenho adequado. 11
12 Problemas Manutenibilidade Facilidade de se modificar um sistema para adaptar-se a circunstâncias novas, inexistentes à época da implantação. Sistemas recentemente implantados são substituídos por novos, devido ao alto custo para sua manutenção REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 12
13 Custo de Mudanças Custo 1x 1,5 a 5X 60 a 100 X Definição Projeto Manutenção Fase Crítica 13
14 Problemas Porque leva tanto tempo para terminar programas e sistemas? Porque os custos são tão altos? Porque temos dificuldade de medir o progresso do desenvolvimento do software? Porque não conseguimos detectar todos os erros antes de entregar o software aos nossos clientes? 14
15 Problemas Porque os usuários estão sempre insatisfeitos com o software entregue? REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 15
16 Mitos... da Gerência... Desatualizados, obsoletos Ferramentas modernas de software e hardware são suficientes O uso eficiente de ferramental exige conhecimento Manuais de Regras e Procedimentos Estamos atrasados Vamos alocar mais gente ao projeto! Custos de treinamento, gerência e entendimento do processo de trabalho 16
17 Mitos... do Desenvolvedor/Programador... Até que o programa esteja rodando não há como medir sua qualidade O único produto de um projeto de software é o conjunto de programas Especificação, projeto, plano de trabalho Programa escrito e testado! Acabei! Revisões anteriores à codificação Quanto mais cedo voce escrever o código, mais tempo irá demorar para completá-lo De 50 a 70 % do custo de produção de um software vai ser gasto para operacionalizá-lo para o usuário 17
18 Mitos... do Cliente... Uma lista de intenções (boas) é suficiente para começar a produzir o software Minhas necessidades vão mudar Mas mudanças são fáceis de introduzir porque software é bastante flexível A Especificação do Software é a fase mais crítica do processo Custo de mudanças é muito alto Erros na fase inicial têm um custo muito alto de correção 18
19 Ciclo de Vida de Software Definição dos requisitos Análise Projeto Documentos são gerados a cada fase e servem de entrada para a fase seguinte Implementação Teste/Avaliação Implantação Manutenção 19
20 Papéis Apesar de existirem numerosas definições sobre arquitetura do software, no núcleo de tudo está a noção de que a arquitetura de um sistema descreve sua estrutura bruta. Esta estrutura ilumina as decisões de projeto de alto nível, incluindo coisas como: o sistema é composto das peças de interação, onde estão os principais caminhos de interação Adicionalmente, uma descrição arquitetural inclui informação suficiente para permitir a análise de alto nível e crítica do sistema. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 20
21 Papéis Fornecendo uma descrição abstrata do sistema, a arquitetura expõe determinadas propriedades, ao mesmo tempo que esconde outras. Idealmente, esta representação fornece um guia de entendimento intelectual do sistema como um todo, permitindo aos projetistas raciocinar sobre a possibilidade do sistema satisfazer a determinadas exigências. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 21
22 Papéis Por exemplo: uma arquitetura para um aplicação de processamento de sinal, pode ser construída como uma rede do fluxo de dados em que os nós lêem vetores de entrada dos dados, transformam esses dados, e os escrevem aos vetores da saída. E aqui, os projetistas devem pensar em estruturas para este tipo de processamento. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 22
23 Papéis Na elaboração da Arquitetura de um software, 6 papéis são desempenhados: Compreensão, Reuso, Construção, Evolução, Análise e Gerência. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 23
24 Papéis: Compreensão A arquitetura do software simplifica nossa habilidade de entender grandes sistemas apresentando-os em um alto nível do abstração de forma a ser facilmente compreendido. Além disso, expõe as principais restrições do projeto do sistema, tanto quanto o aspecto racional para fazer escolhas arquiteturais específicas. 24
25 Papéis: Reuso Descrições de arquiteturas suportam reuso em múltiplos níveis. Trabalhos correntes focam geralmente em bibliotecas de componentes. Projetos de Arquiteturas, promovem reuso em grandes componentes e em Frameworks, onde seus componentes possam ser integrados. 25
26 Papéis: Construção A Construção de uma arquiterua oferece um norte para os desenvolvedores, indicando ou apresentando os maiors componentes e suas dependências. Por exemplo: as camadas de uma arquitetura tipicamente documentam as fronteiras da implementação, expondo os maiores componentes e suas interfaces, bem como as suas principais restrições. 26
27 Papéis: Evolução A arquitetura do software pode expor as dimensões na linha do tempo da possível evolução de um sistema. Deixa explícito "as paredes internas" de um sistema, os desenvolvedores do sistema podem melhor compreender as ramificações das mudanças, e estimar desse modo mais preciso o custo das modificações. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 27
28 Papéis: Evolução Além disso, as descrições arquiteturais separam interesses sobre as funcionalidade de um componente da forma com que esse componente é conectado (interage) a outros componentes. Esta separação permite mais facilmente aos mecanismos da conexão obter um maior reuso e interoperabilidade. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 28
29 Papéis: Análise As descrições arquiteturais fornecem novas facilidades para a tarefa de análise tais como: a consistência do sistema, o conformidade dos atributos da qualidade, a análise da dependência e A análises específicas de domínio para identificar arquiteturas semelhantes. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 29
30 Papéis: Gerência A avaliação crítica de uma arquitetura conduz tipicamente a uma grande compreensão das exigências, das estratégias da execução, e de riscos potenciais a serem enfrentados na implementação de um sistema de software. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 30
31 Linhas de Produtos e Padrões O que são linhas de produtos? São produtos que apresentam similaridades nas suas especificações. Entretanto, em uma abordagem de linha de produto, deve-se também considerar requisitos para a uma família de sistemas, e o relacionamento entre eles. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 31
32 Codificação e Disseminação Um problema inicial para o avanço de projetos arquiteturais como uma disciplina da engenharia de software era a falta do compartilhamento de conhecimento sobre arquiteturas e técnicas para desenvolver estas arquiteturas. Uma boa saída foi uso e padrões (pipes and filters, blackboard, MVC e outros). REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 32
33 Linha de Produto de Software Por meio desta abordagem, é possível explorar as semelhanças dos seus produtos para aumentar o reúso de artefatos. A abordagem de LPS tem sido adotada na indústria de software. Vantagens: Maior reutilização de artefatos; Maximização de lucros; Diminuição do time to market; Diminuição de riscos; Produtos com maior qualidade; Contribuição para o aprimoramento; ROI; etc. 33
34 Linha de Produto de Software Atividades Essenciais de LPS Arquitetura da LPS Arquitetura de cada produto da LPS 34
35 Linha de Produto de Software A base de uma LPS é seu núcleo de artefatos. arquitetura da LPS, os componentes reusáveis, modelos de domínio, requisitos da LPS, modelos de características e planos de teste. Uma característica (feature) é uma capacidade do sistema que é relevante e visível para o usuário final. O modelo de características inclui todas as características de uma LPS e os seus interrelacionamentos. 35
36 Linha de Produto de Software A definição explícita de variabilidades em LPS é a diferença chave entre o desenvolvimento de sistemas únicos e o desenvolvimento de LPS. REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 36
37 Linha de Produto de Software Exemplo de Modelo de Características Legenda: Característica Obrigatória Característica Opcional Mutualmente Inclusivas Mutualmente Exclusivas 37
38 Linha de Produto de Software Variabilidade é a forma como os membros de uma família de produtos podem se diferenciar entre si. O gerenciamento de variabilidades é uma das atividades mais importantes no gerenciamento de uma LPS. A variabilidade é descrita por pontos de variação e variantes. 38
39 Linha de Produto de Software Ponto de variação: Um local específico de um artefato em que uma decisão de projeto ainda não foi tomada; Variante: Corresponde a uma alternativa de projeto para resolver uma determinada variabilidade. Restrições entre variantes: define os relacionamentos entre duas ou mais variantes para que seja possível resolver um ponto de variação ou uma variabilidade. 39
40 Gerenciamento de Variabilidade Similaridades Artefato de uma Linha de Produto Variabilidade Pontos de Variação REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 40
41 Gerenciamento de Variabilidade Artefato de uma Linha de Produto Variabilidade Variantes Pontos de Variação 41
42 Gerenciamento de Variabilidade Artefato de uma Linha de Produto Variabilidade Pontos de Variação 42
43 Restrições entre variantes Gerenciamento de Variabilidade Artefato de uma Linha de Produto Variabilidade Restrições entre variantes Pontos de Variação 43
44 Restrições entre variantes Gerenciamento de Variabilidade Opcionais podem ser selecionadas ou não. Ou uma ou mais podem ser selecionadas. Restrições entre variantes Mutualmente exclusivas (alternativa - XOR) apenas uma delas deve ser selecionada. 44
45 Gerenciamento de Variabilidade Possíveis produtos da LPS 45
46 Gerenciamento de Variabilidade Possíveis produtos da LPS Ou uma ou mais podem ser selecionadas. (alternativa - XOR) apenas uma delas deve ser selecionada. Opcionais podem ser selecionadas ou não. 46
47 Mapeamento de Características na arquitetura da LPS Uma das formas de se implementar características de LPS é tratando cada uma delas como um interesse presente na família. Interesses correspondem a requisitos, funcionais ou não, que devem estar presentes no sistema. Alguns são naturalmente transversais e, por isso, se espalham em vários pontos dentro do software. Quanto mais modularizado um interesse estiver dentro do projeto do software mais reusável será o seu projeto. Os interesses podem ser mapeados em artefatos da LPS usando estereótipos UML. 47
48 Mapeamento de Características na arquitetura da LPS Exemplo de Interface com Interesses associados usando estereótipos UML REUSO DE SOFTWARE E COMPONENTES Marcelo Henrique dos Santos 48
49 Metodologia Usada em PSS Use Case Descriptions Nome do Caso de Uso Categoria do Reuso obrigatório, opcional, alternativo Descrição Atores Dependências Estende Caso de Uso X Pré-condições Fluxo Principal Fluxos Alternativos Fluxos de Exceção Pontos de Variação Estruturas de Dados Regras de Negócio 49
50 Application Engineering Metodologia Usada em PSS Documento de como derivar produto Instruções para Derivação Indicar que artefatos (use cases, diagramas, classes) pertencem ao kernel e a cada feature Arquivo de Configuração Arquivo de Propriedades Arquivo XML do Spring Instanciação Automática GenArch Apresentar produto derivado 50
51 Referências Atkinson, C., Bayer, J., Muthig, D.: Component-based product line development: The kobra approach. In Donohoe, P., ed.: Proceedings of thefirstsoftware Product Line Conference. (2000) Cirilo, E., Kulesza, U., Lucena, C.: GenArch: A Model-Based Product Derivation Tool. In: Proceedings of the 1º Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS 2007), Campinas, Brazil (2007) Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison- Wesley, Boston, MA, USA (2002). Software Product Lines. Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison Wesley Longman (2000). Gomaa H. Designing Software Product Lines with UML: From Use Cases to Pattern- Based Software Architectures. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA,
52 Referências Kang K. C., Kim S., Lee J., Kim K., Shin E., and Huh M.. Form: A feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng., 5: , Matinlassi M. Comparison of software product line architecture design methods: Copa, fast, form, kobra and qada. In ICSE 04: Proceedings of the 26th International Conference on Software Engineering, pages , Washington, DC, USA, IEEE Computer Society. Nunes I., Nunes C., Kulesza U., and Lucena C. Developing and Evolving a Multi-Agent System Product Line: An Exploratory Study. In: 9th International Workshop on Agent-Oriented Software Engineering, 2008, Estoril. 9th International Workshop on Agent-Oriented Software Engineering, p Pohl, K., Bckle, G., van der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag, New York,USA (2005). Weiss D. M., Lai C. T. R.: Software Product-line Engineering: A Family-Based Software Development Process, Addison-Wesley,
53 ATIVIDADE 04 Leia o artigo Linhas de Produto de Software: riscos e vantagens de sua implantação e explique o conceito do modelo de linhas de produto de software, suas vantagens e desvantagens, assim como os riscos de sua implantação. (2 ou 3 alunos) 53
54 ATIVIDADE 05 Pense em um exemplo de projeto de software que possa ser uma linha de produtos. Quais seriam os produtos gerados por essa linha? (2 ou 3 alunos) 54
Marcelo Henrique dos Santos
Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação Email:
Leia maisEngenharia de Software
Engenharia de Software Marcelle Mussalli Cordeiro {mmussalli@gmail.com} Cordeiro Reflexão O que é software?? Cordeiro 2 O que é Software? Programa Dados de configuração Dados de documentação Tudo que esteja
Leia maisLinha de Produtos de Software (SPL) em Java: Teoria e Prática
Linha de Produtos de Software (SPL) em Java: Teoria e Prática Prof. Me. Djan Almeida Santos Prof. Me. Pablo Freire Matos Slides baseados no material elaborado pelos professores: Ingrid Oliveira de Nunes,
Leia mais3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks
48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o
Leia maisComposição e Geração de Aplicações usando Aspectos
Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Rosana Teresinha Vaccare Braga 1 1 Programa de Mestrado em Ciências de Computação e Matemática Computacional
Leia maisIntroduçã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 maisContexto. Motivação. variabilidade. variabilidade
Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade
Leia maisCaptor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos
Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Paulo Cesar Masiero 1 Rosana Teresinha Vaccare Braga 1 1 Instituto de Ciências
Leia maisREUSO E REUSABILIDADE
REUSO E REUSABILIDADE Manutenção de Software Profa. Cynthia Pinheiro Antes de mais nada... 2ª Lista de Exercícios Já está disponível no site a 2ª Lista de Exercícios Entrega: dia 03/10, no horário da aula.
Leia maisProcesso de Desenvolvimento de Software Linhas de Produtos de Software
Processo de Desenvolvimento de Software Linhas de Produtos de Software Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Departamento Acadêmico de Gestão e Tecnologia da Informação
Leia maisProfessor 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
Leia maisIntrodução ao Catalysis
Introdução ao Catalysis Tópicos Avançados de Engenharia de Software João Bosco jbapf@cin.ufpe.br Roteiro Dificuldades Motivação Componentes Desenvolvimento Baseado em Componentes (DBC) Catalysis jbapf@cin.ufpe.br
Leia maisHistórico: Linha de Produção
Escola Regional de Informática ERI-MG Linha de Produtos de Software: Conceitos Histórico: Linha de Produção Produtos em geral eram feitos manualmente Com o crescimento do consumo, foi necessário automatizar
Leia maisEngenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais
Um Processo de Engenharia de Domínio com foco no Projeto Arquitetural Baseado em Componentes Ana Paula Blois Cláudia Werner Karin Becker Agenda Motivação Engenharia de Domínio e Desenvolvimento Baseado
Leia maisAula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02
Reutilização de Software Aula 13 Aula 01: Apresentação Revisão para Prova 1 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 23 Setembro 2013 Bibliografia Método de avaliação
Leia maisUFG - Instituto de Informática
UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares Aula 1 - Apresentação Ementa Definição de arquitetura de software. Importância e impacto
Leia maisIntrodução à Qualidade de Software
Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução à Qualidade de Software Prof. Luthiano Venecian venecian@ucpel.tche.br
Leia maisFrameworks. Viviane Torres da Silva
Frameworks Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/es1 Frameworks Motivação Definição Classificação Características Propriedades Técnicas de Customização Frameworks
Leia maisIntroduçã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
Leia maisRosana T.Vaccare Braga
Rosana T.Vaccare Braga Processo de remover detalhes físicos,espaciais ou temporais no estudo de objetos ou sistemas com o objetivo de focar em outros aspectos de interesse (Colburn) Similar ao processo
Leia maisArquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999
Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999 Arquitetura de Software Este curso é baseado no livro Software Architecture in Practice, de Len Bass, Paul Clements and
Leia maisDMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]
DMS - DOCUMENTO DE MODELAGEM DE SISTEMA Este documento foi criado seguindo as recomendações e orientações do livro UML na Prática Do Problema ao Sistema e do modelo PRISM do MPDS (Modelo Prático para Desenvolvimento
Leia maisEngenharia de Software
Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 UML Linguagem Unificada de Modelagem Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto
Leia maisArquitetura 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
Leia maisEngenharia 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
Leia mais15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software
Professor Ariel da Silva Dias Modelos de Processo de Software Conjunto de atividades que leva à produção de um produto de Software [Sommerville,2011]; Podemos contar com ferramentas de apoio com o objetivo
Leia maisEngenharia de Software
Engenharia de Software Tópico 1 - Visão Geral da Engenharia de Software Sistemas Computacionais o Definição e conceitos básicos o Evolução do desenvolvimento Natureza do produto software Definição de Engenharia
Leia mais15/09/2014. Aula 01: Apresentação. Review to 1 st Exam. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02
Software Reuse Lecture 13 Aula 01: Apresentação Review to 1 st Exam Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 15 September 2014 Bibliografia Método de avaliação Provas
Leia maisENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE Qualidade de Software Qualidade do produto e do processo Padrões de software Revisões Medições e métricas de software Kele Teixeira Belloze kelebelloze@gmail.com CONCEITO DE QUALIDADE
Leia maisDesenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa
Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Qualificação de Mestrado Instituto de Matemática
Leia maisDesenvolvimento de Software Baseado em Componentes. Paulo C. Masiero
Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio
Leia maisUsando RDL para Derivação de Produtos em uma Linha de Produtos de Software
Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software Juliano Dantas Santos Universidade Federal do Rio de Janeiro COPPE - Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa
Leia mais6.1. Teste Baseado em Gramática e Outras Abordagens de Teste
6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam
Leia maisRoni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná
Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná Reuso Motivações para reutilização de software Aspecto econômico Produtividade Time to market Qualidade Utilização de artefatos (código,
Leia maisProf. 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
Leia maisElicitando Semelhanças e Variabilidades de Linhas de Produtos de Software com Diagramas de Interação do Usuário
Computer on the Beach 2015 - Artigos Completos 219 Elicitando Semelhanças e Variabilidades de Linhas de Produtos de Software com Diagramas de Interação do Usuário Jefferson Kobs, Patrícia Vilain Departamento
Leia maisDesenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos
Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Segundo Workshop de Desenvolvimento Baseado em Componentes Itana Maria de Souza Gimenes itana@din.uem.br Departamento de Informática
Leia maisPrincípios da Engenharia de Software aula 03
Princípios da Engenharia de Software aula 03 Prof.: José Honorato Ferreira Nunes Material cedido por: Prof.: Franklin M. Correia Na aula anterior... Modelos de processos de software: Evolucionário Tipos
Leia maisArquitetura de software
Arquitetura de software Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Recebe encomendas e pagamento Recomenda itens a usuários Por onde começamos? Arquitetura =
Leia maisJADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.
JADEX: A BDI REASONING ENGINE Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp. 149-174 Volume 15 Motivação Existem muitas plataformas para desenvolvimento
Leia maisRational 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
Leia maisEngenharia de Software.
Engenharia de Software Prof. Raquel Silveira O que é (Rational Unified Process)? É um modelo de processo moderno derivado do trabalho sobre a UML e do Processo Unificado de Desenvolvimento de Software
Leia maisComponentes de Software Baseados em Engenharia de
19 a 21 de mar o de 2010 117 Componentes de Software Baseados em Engenharia de Domínio Leonardo Ciocari, Rafael Cancian 1 Centro de Ciências Tecnológicas da Terra e do Mar (CTTMar) Universidade do Vale
Leia maisEngenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno
Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Engenharia de Requisitos É, talvez, o maior problema da indústria de SW; Está relacionada
Leia maisFUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001
FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS Projeto de Programas PPR0001 2 Introdução Antes de desenvolver ou construir qualquer produto ou sistema em engenharia é necessário um... o PROJETO O que é um
Leia maisIntrodução. Conteúdo. Usabilidade. Engenharia de software X Usabilidade. Benefícios. Introdução. Introdução. Introdução. Introdução.
Engenharia de Usabilidade Prof.: Clarindo Isaías Pereira da Silva e Pádua Synergia / Gestus Departamento de Ciência da Computação - UFMG Clarindo Pádua 2 Referências Hix, D.; Hartson, H. R. Developing
Leia maisCiência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução
Ciência da Computação ENGENHARIA DE SOFTWARE Capítulo 1 Introdução Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Plano de Ensino 1. Introdução à Engenharia de Software Importância da Engenharia
Leia maisFábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias
Fábricas de Software Processos de Software Jorge Dias Um processo estruturado, controladoe melhoradode forma contínua, considerando abordagens de engenharia industrial, orientado para o atendimento a múltiplas
Leia maisProcessos 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
Leia maisAgenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software
Reuso de Software Aula 02 Agenda da Aula Introdução a Reuso de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Introdução a Reuso de Software Abordagens de Reuso
Leia maisBibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa
BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade
Leia maisAnálise de Domínio: Um Método para Geração Automática do Modelo de Features
Análise de Domínio: Um Método para Geração Automática do Modelo de Features Marianne B. Diniz da Silva 1, Isabel D. Nunes 2 1 Programa de Pós-Graduação em Ciência da Computação (PROCC) Universidade Federal
Leia maisAgenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software
Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais
Leia maisIntrodução 27/9/2005. Prof.: Clarindo Isaías Pereira da Silva e Pádua Departamento de Ciência da Computação UFMG Gestus. Usabilidade.
Introdução Prof.: Clarindo Isaías Pereira da Silva e Pádua Departamento de Ciência da Computação UFMG Gestus Referências Hix, D.; Hartson, H. R. Developing User Interfaces: ensuring usability through product
Leia maisRun-Time Variability through Component Dynamic Loading
Run-Time Variability through Component Dynamic Loading Leonardo Murta, Aline Vasconcelos Ana Paula Blois, Marco Lopes Carlos Júnior, Marco Mangan Cláudia Werner Agenda Contexto e Motivação Variabilidades
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE
1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer
Leia maisArquitetura de Software: Documentação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Documentação SSC-0527 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Tiago Volpato Introdução
Leia maisEngenharia de Requisitos
Engenharia de Requisitos Criado: mar/2001 Atualizado: set/2005 Tópicos Definição de Requisitos Participantes Processo Documento de Requisitos (SRS) Evolução dos Requisitos 2 Referência I.Sommerville. Sw
Leia maisProblemas e Práticas Recomendadas no Desenvolvimento de Software
Problemas e Práticas Recomendadas no Desenvolvimento de Software Objetivos deste módulo Levantar problemas enfrentados na prática do desenvolvimento de software Discutir boas práticas para o desenvolvimento
Leia maisFerramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos
Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos Eduardo Santana de Almeida Daniel Lucrédio Calebe de Paula Bianchini Antonio Francisco do
Leia maisEngenharia de Software I
Engenharia de Software I Fundamentos da Engenharia de Software Modelos de desenvolvimento Importância do software Importância do Software Qualidade é fundamental Consequências de erros no software podem
Leia maisArquitetura de Software: Sistemas RNA e Ava Edulivre. Ana Claudia Costa, Rharon Maia, Wolgrand Cardoso1
Arquitetura de Software: Sistemas RNA e Ava Edulivre Ana Claudia Costa, Rharon Maia, Wolgrand Cardoso1 Arquitetura de Software Surgiu na década de 80 e hoje é amplamente usado. Permite que projetistas
Leia mais2 Desenvolvimento de Linhas de Produtos de Softwares
19 2 Desenvolvimento de Linhas de Produtos de Softwares Este capítulo apresenta uma visão geral do desenvolvimento de Linhas de Produtos de Software (LPS). Diversos conceitos relacionados ao desenvolvimento
Leia maisCiclo de vida: fases x atividades
Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação
Leia maisVisõ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
Leia maisModel Driven Development (MDD)
Model Driven Development (MDD) Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@puro.uff.br Sumário Introdução Desenvolvimento de Software
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
CI 221 DISCIPLINA: Engenharia de Software AULA NÚMERO: 5B DATA: / / PROFESSOR: Andrey APRESENTAÇÃO Nesta aula serão apresentados e discutidos os conceitos de planejamento de um projeto de software e elaboração
Leia maisUma Abordagem para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica
Uma Abordagem para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica Eldânae ogueira Teixeira Orientadora: Claúdia M. L. Werner PESC/COPPE Universidade Federal do Rio de Janeiro Caixa
Leia maisArquitetura de Software: Introdução
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo
Leia maisEngenharia de Software Processo de Desenvolvimento de Software
Engenharia de Software Processo de Desenvolvimento de Software Prof. Elias Ferreira Elaborador por: Prof. Edison A. M. Morais Objetivo (1/1) Conceituar PROCESSO E CICLO DE VIDA, identificar e conceituar
Leia maisPCS3413 Engenharia de Software e Banco de Dados
PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações
Leia maisQUALIDADE DE SOFTWARE DEFINIÇÕES / RESUMO. Apostilas de NORMAS, disponíveis no site do professor. Prof. Celso Candido ADS / REDES / ENGENHARIA
DEFINIÇÕES / RESUMO Apostilas de NORMAS, disponíveis no site do professor. 1 NORMAS VISÃO GERAL Qualidade é estar em conformidade com os requisitos dos clientes; Qualidade é antecipar e satisfazer os desejos
Leia maisDesenvolvimento 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
Leia maisMetamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo
Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados
Leia mais! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado
Agenda Rodrigo Reis Cleidson de Souza! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados!
Leia maisProcessos 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
Leia maisEngenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes
Engenharia de Software I: Introdução Graduação em Informática 2009 Profa. Itana Gimenes Programa 1. O processo de engenharia de software 2. Engenharia de requisitos 3. Modelagem de sistemas 4. Conceitos
Leia maisModelos de design arquitetural
Modelos de design arquitetural Jair C Leite Modelos de design arquitetural Objetivo Guiar o arquiteto nas etapas para desenhar a arquitetura Deve considerar diferentes visões arquiteturais Atualmente existem
Leia maisPROJETO DE PROGRAMAS. Projeto de Programas PPR0001
PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes
Leia maisDesenvolvimento de software orientado a características e dirigido por modelos
Desenvolvimento de software orientado a características e dirigido por modelos Universidade Federal de Uberlândia Rodrigo Reis Pereira Prof. Dr. Marcelo Almeida Maia Agenda Motivação Introdução Modelagem
Leia maisArquitetura de Software
Frameworks Wanderson Câmara dos Santos, Elves 1 wanderson@crea-rn.org.br,elveskiss@yahoo.com.br 1 Departamento Acadêmico de Tecnologia da Informação Centro Federal de Educação Tecnológica do Rio Grande
Leia maisRUP 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
Leia maisProf. Esp. Fabiano Taguchi
UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com UML COMPETÊNCIA: Conhecer e desenvolver estudos de caso usando modelagem orientada a objeto. HABILIDADE: Conhecer
Leia mais15/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,
Leia maisEngenharia de Software II
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 07 (rogerio@fct.unesp.br) Conceitos Básicos do Rational Unified
Leia maisINF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
Leia maisLINHA DE PRODUTO DE SOFTWARE. Por Sergio Crespo UFF Puro
LINHA DE PRODUTO DE SOFTWARE Por Sergio Crespo UFF Puro INTRODUÇÃO A engenharia de software tradicional tem como base a construção de um elemento de software ou um produto, no prazo definido. Um elemento
Leia maisTécnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.
DCC / ICEx / UFMG Técnicas de Reutilização Reutilização em Programação Orientada a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reuso de classes Bibliotecas Frameworks Considere três classes
Leia maisQualidade de software. Prof. Emiliano Monteiro
Qualidade de software Prof. Emiliano Monteiro Por que realizar revisões por pares? 1. Para melhorar a qualidade. 2. Captura 80% de todos os erros se feito corretamente. 3. Captura erros de codificação
Leia maisBibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.
Bibliografia Quais são os problemas? 4 A sofisticação do software ultrapassou nossa capacidade de construção. 4 Nossa capacidade de construir programas não acompanha a demanda por novos programas. 4 Nossa
Leia maisDesenvolvimento de Software Baseado em Componentes. Paulo C. Masiero
Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio
Leia maisLIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES
LIVRO ENGENHARIA FUNDAMENTOS, MÉTODOS E PADRÕES WILSON PADUA PAULA FILHO CAPÍTULO REQUISITOS 1 REQUISITOS TECNICO E GERENCIAL ESCOPO (RASCUNHO) CARACTERISTICAS 2 O que são Requisitos? São objetivos ou
Leia maisEngenharia de Software
Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e
Leia maisAná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
Leia maisEngenharia 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 maisRUP 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
Leia maisProfa. Reane Franco Goulart
Profa. Reane Franco Goulart É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro áreas principais: dados, arquitetura, interfaces e componentes.
Leia maisFORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA BAIANO Campus Senhor do Bonfim I N S T I T U T O F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O L O G I A B A I A N O C a m p u s S E N
Leia maisRAD Rapid Application Development
RAD Rapid Application Development Desenvolvimento Rápido de Aplicação Brunna Leite Rafaela Trevizan Renan Gonçalvez Samanta de Masi RAD é um modelo de processo de desenvolvimento de software iterativo
Leia mais