SBES - Minicurso 1
Título: A Primeira Década com Métodos Ágeis: desafios atuais e evidências encontradas
Autores: Claudia de O. Melo (IME-USP), Celio Santana (UAG-UFRPE), Alfredo Goldman (IME-USP), Fabio Kon (IME-USP)
Data: terça-feira (27-set-2011)
Horário: 18:30 - 20:00 / 20:30 - 22:00 (*)
- Resumo: O surgimento do manifesto ágil há 10 anos trouxe uma nova forma de conduzir o desenvolvimento de software, marcada por ciclos muito curtos de desenvolvimento, maior colaboração, busca de simplicidade e maior adaptabilidade. Métodos ágeis ficaram conhecidos no mundo todo, principalmente Scrum e XP. Além de uma maior adoção dos métodos de forma completa, também houve a adoção de princípios e práticas isoladas.
- Ao longo desses anos, muitas organizações de todos os tamanhos vêm enfrentando problemas para adotar métodos ágeis, seja por aspectos técnicos, organizacionais ou mesmo humanos. Neste curso vamos abordar questões como: por que grandes empresas como Salesforce, Google e Facebook apresentam resultados surpreendentes utilizando métodos ágeis, enquanto outras empresas em ambientes menos complexos não são tão bem sucedidas? Quais são os problemas atuais para adoção de métodos ágeis e como vêm sendo contornados na indústria? Que evidências já foram encontradas pela academia? Este curso também visa apresentar a evolução dos métodos ágeis nos últimos 10 anos, as principais evidências e lacunas em sua adoção pela indústria, assim como algumas técnicas de gerenciamento e melhoria para times ágeis.
- Claudia de O. Melo Doutoranda em métodos ágeis na Universidade de São Paulo (IME-USP), Mestre pelo IME-USP e Bacharel em Computação pela UFU. Trabalhou nos últimos 11 anos em projetos de desenvolvimento de software, qualidade e melhoria de processos em clientes como Banco Central, Santander, HSBC, CEF, Loterias, Banco24Horas, Casa Civil, Serpro/Imprensa Nacional, BRB e Ministério do Trabalho. Foi coordenadora da pós-graduação em Sistemas Orientados a Objetos da Universidade Católica de Brasília (UCB) e docente em disciplinas de graduação e pós-graduação em Brasília e São Paulo em Análise e Design OO, Requisitos, GCS e Qualidade. (home page)
- Celio Santana Graduado em Ciências da Computação pela Universidade Federal de Pernambuco - UFPE (2006), Especialista em Melhoria de Processo de Software pela Universidade Federal de Lavras - UFLA (2008), Mestre em Engenharia da Computação pela Universidade do Pernambuco - UPE (2008), Célio atualmente é professor na Universidade Federal Rural de Pernambuco - UFRPE - e doutorando Universidade Federal de Pernambuco - UFPE. (home page)
- Alfredo Goldman possui graduação em Bacharelado Em Matematica Aplicada pela Universidade de São Paulo (1990), mestrado em Matemática Aplicada pela Universidade de São Paulo (1994) e doutorado em Informatique et Systèmes - Institut National Polythecnique De Grenoble (1999). Atualmente é professor associado da Universidade de São Paulo, assessor ad-hoc da Fundação de Amparo à Pesquisa do Estado de São Paulo, editor associado da revista Parallel Computing, revisa artigos para as revistas Journal of Discrete Algorithms, IEEE Transactions on Parallel and Distributed Systems, IEEE Transactions on Computers e Journal of Parallel and Distributed Computing. Tem experiência na área de Ciência da Computação, atuando principalmente nos seguintes temas: computação paralela e distribuída, scheduling (escalonamento), e métodos ágeis de desenvolvimento de software. (home page)
- Fabio Kon possui graduação em Ciência da Computação pela Universidade de São Paulo (1990) e em Música (Instrumento - Percussão) pela Universidade Estadual Paulista Júlio de Mesquita Filho (1992), mestrado em Matemática Aplicada (modalidade Ciência da Computação) pela Universidade de São Paulo (1994) e PhD em Computer Science pela University Of Illinois At Urbana-Champaign (2000). Atualmente, é professor livre docente da Universidade de São Paulo. Tem experiência na área de Ciência da Computação, com ênfase em Sistemas de Software, atuando principalmente nos seguintes temas: sistemas distribuídos, computação em grade, middleware reflexivo, métodos ágeis de desenvolvimento de software, informática em saúde, multimídia e computação musical. Fabio é Senior Member da ACM, Editor-in-Chief do Journal of Internet Services and Applications, membro do corpo diretivo da Open Source Initiative (OSI) e Diretor do Centro de Competência em Software Livre (CCSL) do IME/USP. (home page)
SBES - Minicurso 2
Título: Teste de Software: aspectos técnicos e gerenciais
Autores: Adalberto Nobiato Crespo (CTI), Mario Jino (Unicamp), Miguel de Teive e Argollo Junior (CTI), Paulo Marcos Siqueira Bueno (CTI)
Data: quinta-feira (29-set-2011)
Horário: 18:30 - 20:00 / 20:30 - 22:00 (*)
- Resumo: O teste de software consiste em executar o software de uma forma controlada com o objetivo de avaliar se ele se comporta conforme o especificado. Trata-se de uma atividade fundamental para identificar deficiências que podem existir em produtos de software e avaliar se o software produzido atende aos requisitos levantados com os usuários. Identificar e remover as deficiências no software é essencial para aprimorar a qualidade desses produtos e para evitar que falhas do software em uso acarretem prejuízos operacionais, financeiros, ou de segurança.
- O curso apresenta uma visão geral sobre teste de software, abrangendo as idéias básicas sobre aspectos técnicos e aspectos gerenciais. Além disso, são apresentados os principais conceitos necessários para um bom entendimento do teste de software. O curso está direcionado aos iniciantes em teste de software e busca apresentar uma sólida fundamentação teórica voltada aos aspectos práticos da atividade de teste. No aspecto técnico, o participante saberá: o que é teste de software; quais são os objetivos de um teste de software e suas limitações; quais são as implicações de não se testar um software; os conceitos de erro, defeito e falha de software; casos de teste; níveis de teste; tipos de teste; técnicas de teste; teste baseado na especificação; teste baseado na estrutura; critérios para geração de casos de teste. No aspecto gerencial, o participante saberá: política de teste; processo de teste; planejamento de teste; projeto de teste; procedimento de teste; incidente de teste; registro de informações de teste; acompanhamento e controle do teste.
- Adalberto Nobiato Crespo possui graduação em Matemática pela Universidade Estadual Paulista Júlio de Mesquita Filho (1974), especialização em Probabilidade e Estatística pelo Instituo de Matemática Pura e Aplicada - Rio de Janeiro (1978), mestrado em Engenharia de Produção pela Universidade Federal do Rio de Janeiro (1980) e doutorado em Engenharia Elétrica pela Universidade Estadual de Campinas - área Engenharia de Software (1997). Atualmente é associado doutor da Universidade São Francisco e tecnologista do Centro de Tecnologia da Informação Renato Archer - CTI, instituto de pesquisas do Ministério da Ciência e Tecnologia . Tem experiência como docente atuando nas área de Engenharia de Software, Matemática, Probabilidade e Estatística, e Pesquisa Operacional. Na área tecnológica, tem experiência na Engenharia de Software, Teste de Software, Confiabilidade de Software, Modelos de Confiabilidade de Software, Processo de Teste de Software e Técnicas de Teste de Software. (lattes)
- Mario Jino possui graduação em Engenharia Eletrônica pelo Instituto Tecnológico de Aeronáutica (1967), mestrado em Engenharia Elétrica pela Universidade Estadual de Campinas (1974) e doutorado em Computer Sciences pela University of Illinois (1978). Atualmente é Professor MS-6 da Universidade Estadual de Campinas. Tem experiência na área de Ciência da Computação, com ênfase em Metodologia e Técnicas da Computação. Atuando principalmente nos seguintes temas: qualidade de software, teste de software, depuração e manutenção, orientação a objetos, e métricas de software. (home page)
- Miguel de Teive e Argollo Junior possui graduação em Matemática - modalidade informática pela Universidade Federal do Rio de Janeiro (1980) e mestrado em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro (1984). Atualmente é tecnologista do Centro de Tecnologia da Informação Renato Archer, atuando principalmente nos seguintes temas: engenharia de software, qualidade de software e teste de software, com ênfase no desenvolvimento de frameworks para a automação de testes de sistemas de informações. Ministra cursos há mais de 5 anos para empresas produtoras de software. (lattes)
- Paulo Marcos Siqueira Bueno é mestre pela Faculdade de Engenharia Elétrica e de Computação da Unicamp (FEEC/Unicamp) e bacharel em ciência da computação pela Pontifícia Universidade Católica de Minas Gerais (DCC/PUC-MG). Atualmente é doutorando na FEEC/Unicamp com estágio no Erik Jonsson School of Engineering and Computer Science da Universidade do Texas (UTD). É professor universitário na Anhanguera Educacional há 7 anos e possui 13 anos de experiência em teste de software. Colaborador do Centro de Tecnologia da Informação Renato Archer (CTI) desde 2005, tem atuado como: consultor em diversas iniciativas de implantação e melhoria de processos de teste de software em organizações; instrutor em programas de capacitação em teste e qualidade de software; e como pesquisador no desenvolvimento de novas técnicas de teste de software. Suas áreas de atuação profissional e de pesquisa incluem: melhoria de processos de software, teste de software e inteligência computacional. (home page)
SBES - Minicurso 3
Título: Desenvolvimento para Dispositivos Móveis com a Plataforma Android
Autores: Guilherme Frenhani (Motorola), Marcelo Almeida (Motorola)
Data: quinta-feira (29-set-2011)
Horário: 18:30 - 20:00 / 20:30 - 22:00 (*)
Apostila: pdf (**)
- Resumo: O minicurso será dividido em duas partes: Introdução e Demonstração Prática.
- Na Parte I, Introdução, será apresentado como utilizar o programa MOTODEV para desenvolver e distribuir aplicativos Android. Nesta sessão, mostraremos como utilizar os recursos do programa MOTODEV para acelerar seu desenvolvimento em Android e encontrar o caminho certo para comercializar seus aplicativos. Descubra os diversos modos de se envolver com a comunidade de desenvolvimento Android e tenha acesso às últimas ferramentas, documentação técnica, fóruns de discussão e suporte técnico fornecidos pela Motorola para ajudá-lo a obter sucesso no seu desenvolvimento. Conheça também a ferramenta MOTODEV Studio for Android, o mais completo ambiente de desenvolvimento para Android, bem como a loja de aplicativos SHOP4APPS, agora já disponível no Brasil, Argentina, México e China.
- Na Parte II, Demonstração Prática, será demonstrado o desenvolvimento e modelagem de um aplicativo Android desde o início. O Android introduziu diversos conceitos e recursos novos representando um marco significativo na evolução do desenvolvimento de aplicativos móveis. Esta sessão técnica destaca os recursos e componentes mais importantes da arquitetura Android e mostra como usá-los para criar aplicativos interessantes de maneira prática e eficiente.
- Guilherme Frenhani é Gerente de Desenvolvimento na Motorola. Ele supervisiona o programa de desenvolvimento MOTODEV no Brasil, gerenciando as equipes de engenharia responsáveis pelo desenvolvimento e suporte do conjunto de ferramentas MOTODEV Studio. Ele também coordena diversas outras iniciativas regionais dentro do programa MOTODEV no país. Com mais de 15 anos de experiência no setor de telecomunicações, Guilherme ocupou cargos de gerência e desenvolvimento de software em empresas como IBM, CPqD, Instituto Eldorado, Sapient e Motorola Inc. Guilherme tem bacharelado em Engenharia da Computação pela Universidade Estadual de Campinas e pós-graduação em Marketing pela ESPM. Ele também tem certificação PMP (Project Management Professional) pelo Project Management Institute (PMI) e Digital Six Sigma Green Belt pela Motorola.
- Marcelo Almeida é engenheiro de software sênior na Motorola. Ele trabalha com desenvolvimento de software na Motorola faz 9 anos e se orgulha de ter trabalhado em produtos que são usados por milhões de pessoas todos os dias. Marcelo foi o líder técnico do telefone BACKFLIP na América Latina e participou da implantação do MOTOBLUR na região. No passado ele desenvolveu aplicações de voz sobre IP para várias plataformas móveis incluindo Android, Symbian e o sistema operacional de tempo real da Motorola. Marcelo fez engenharia elétrica na Unicamp e mestrado em comunicações móveis no Politecnico di Torino.
SBES - Minicurso 4
Título: Evolução de Software: ferramentas, técnicas e métricas
Autores: Gustavo Ansaldi Oliva (IME-USP), Mauricio Finavaro Aniche (IME-USP), Marco Aurélio Gerosa (IME-USP)
Data: quinta-feira (29-set-2011)
Horário: 11:00 - 12:30 / 14:30 - 16:00 (*)
- Resumo: É largamente conhecido que um software tende a mudar continuamente, tornar-se mais complexo e perder qualidade interna. Tais fenômenos frequentemente resultam em um código difícil de mudar, não reusável e que não comunica por si só sua intenção. Um dos grandes desafios da pesquisa em evolução de software consiste então na concepção e aperfeiçoamento de estratégias e técnicas para controlar e diminuir o processo de degradação da estrutura do software. Neste curso, apresentaremos inicialmente um resumo histórico, conceitos básicos e atuais temas de pesquisa da área. Em seguida, discutiremos como métricas e técnicas escaláveis de visualização auxiliam o programador a entender e raciocinar a respeito da evolução do software. Por meio de tais métricas e visualizações, o programador é capaz de identificar sintomas de design em degradação e antipadrões estruturais; de modo que, em passos futuros, os problemas reconhecidos sejam corrigidos e a velocidade do processo de degradação do software seja então abrandada.
- Gustavo Ansaldi Oliva é mestrando em Ciência da Computação pelo IME-USP e bacharel em Ciência da Computação pela PUC-SP. Atuou como desenvolvedor na IBM Brasil por mais de 3 anos e possui experiência em Engenharia de Software, com interesse em evolução e manutenção de software, processos e métodos de desenvolvimento, computação orientada a serviços, arquitetura de software e orientação a objetos. Atualmente pesquisa técnicas de gerência de dependências para controle da degradação do software e técnicas de adaptação dinâmica para coreografias de serviços web.
- Mauricio Finavaro Aniche é mestrando em Ciência da Computação pelo IME-USP, onde pesquisa sobre Test-Driven Development e sua influência no design de sistemas orientados a objetos. Suas áreas de interesse são engenharia de software empírica, design orientado a objetos, métodos ágeis e evolução de software. Mauricio é também instrutor dos cursos de Java e Métodos Ágeis da Caelum Ensino e Inovação. Ele participou também do CASE Summer School 2010 em Bolzano. (lattes)
- Marco Aurélio Gerosa é professor do Departamento de Ciência da Computação do IME/USP. Realiza pesquisas em Engenharia de Software e Sistemas Colaborativos, sendo alguns subtópicos atuais: desenvolvimento baseado em componentes, linha de produto, Web 2.0, inteligência coletiva, redes sociais e coreografia de serviços Web. Coordena projetos que já receberam apoio do CNPq, FAPES e RNP. É membro de diversos comitês de programa, atua como parecerista da FAPESP e é bolsista de Produtividade em Pesquisa do CNPq. (home page)
SBLP - Minicurso 1
Título: Introdução à Otimização de Código
Autor: Sandro Rigo (Unicamp)
Data: quinta-feira (29-set-2011)
Horário: 11:00 - 12:30 / 14:30 - 16:00 (*)
- Resumo: Os projetistas de compiladores modernos investem cada vez mais esforços em desenvolver técnicas que possibilitem a geração de código eficiente. A crescente complexidade das arquiteturas modernas faz com que esta tarefa seja cada vez mais importante e complexa. Em contrapartida, esta complexidade das arquiteturas, incluindo o paralelismo presente nos processadores multicore, faz com que seja necessário ter um código eficiente para se atingir um bom nível de desempenho.
- Neste minicurso apresentaremos uma introdução a técnicas usadas nos compiladores em sua fase de otimização de código. Primeiramente, introduziremos algumas técnicas básicas de análise de fluxo de dados, como análise de variáveis vivas e expressões disponíveis, bem como suas aplicações em otimizações como alocação de registradores, propagação de constantes e eliminação de código morto. Laços são conhecidos por serem foco de atenção dos compiladores buscando gerar códigos mais eficientes, dado que boa parte do tempo de execução dos programas é gasto em laços. Na segunda parte do curso focaremos em detecção de laços e a aplicação de otimizações específicas para essas estruturas do programa, como detecção de computação invariante e variáveis de indução e transformações associadas. Finalmente, comentaremos sobre técnicas de extração de paralelismo em laços, como "Software Pipelining" e "Dynamic Software Pipelining", muito em evidência devido à grande disseminação de arquiteturas paralelas ocorrida nos últimos anos.
- Sandro Rigo concluiu o doutorado em Ciência da Computação pela Universidade Estadual de Campinas em julho de 2004. Atualmente trabalha como Professor Associado no Instituto de Computação da Universidade Estadual de Campinas. Publicou artigos em periódicos especializados e vários trabalhos em anais de eventos, tendo recebido o prêmio Julio Salek Aude de melhor artigo no Symposium on Computer Architecture and High Performance Computing (SBAC-PAD) de 2004. Prof. Sandro Rigo é membro do comitê de programa do Simpósio Brasileiro de Linguagens De Programação (SBLP). Atua nas áreas de compiladores e linguagens de programação, arquitetura de computadores com ênfase em simulação e verificação para projetos em nível de sistema, sistemas embarcados, otimização de código, memória transacional, e questões de interoperabilidade em sistemas hetergêneos de computação. (home page)
SBLP - Minicurso 2
Título: Introdução a "Slicing" de Programas
Autores: Marcelo d'Amorim (UFPE), Elton Alves (UFPE)
Data: sexta-feira (30-set-2011)
Horário: 11:00 - 12:30 / 14:30 - 16:00 (*)
- Resumo: Slicing é uma técnica popular de análise de programas com aplicações em diversos segmentos da engenharia de software, incluindo testes, depuração, e compreensão de código. O princípio da técnica é construir (ou fatiar) uma versão simplificada do programa original de acordo com algum critério informado pelo usuário. Um exemplo de "slice" é o programa obtido com todas as dependências de/para uma região que foi modificada em um ciclo de evolução de uma aplicação. O objetivo deste curso é introduzir os conceitos mais relevantes para uma audiência ampla. O curso é dividido em quatro partes: análise de dependência, diferenças de slicers, a construção de um slicer de código, e aplicações.
- Marcelo d'Amorim obteve graduação de bacharel (1997) e mestre (2001) em Ciência da Computação pela Universidade Federal de Pernambuco, e PhD pela Universidade de Illinois em Urbana-Champaign, E.U.A. (2007). Seu principais interesses de pesquisa são em teste automatizado de software. Marcelo tem como objetivo desenvolver técnicas de teste e depuração mais precisas e eficientes. Seu grupo desenvolve técnicas e ferramentas de localização de falha (teste) e faltas (depuração) que oferecem saída mais informativa para o usuário e melhor desempenho em software de escala industrial. (home page)
- Elton Alves possui graduação em Ciência da Computação pela Universidade Federal de Pernambuco (2009). Seu grupo investiga meios para melhorar a confiabilidade de software com apoio automatizado. Atualmente, ele trabalha em um sistema que combina slicing com outra técnica de localização de faltas chamada Tarantula que explora diversidade nos perfis de execução de testes. (home page)
SBMF - Minicurso 1
Título: Sistemas Distribuídos e Verificação de Modelo
Autor: Arnaldo V. Moura (Unicamp)
Data: terça-feira (27-set-2011)
Horário: 18:30 - 20:00 / 20:30 - 22:00 (*)
- Resumo: Neste minicurso vamos apresentar os formalismos mais tradicionais que dão suporte aos algoritmos básicos que permitem a certificação de propriedades de sistemas distribuídos usando técnicas de verificação de modelos (model checking).
- Iniciaremos apresentando algumas características gerais de sistemas distribuídos e verificação de modelos. Em seguida, mostraremos como usar sistemas de transição (autômatos) para modelar (alguns aspectos) do comportamento de sistemas distribuídos sobre um suporte temporizado discreto. Em particular, veremos como modelar a cooperação simultânea de modelos de transição de modo a capturar o efeito de sua execução paralela, síncrona ou assíncrona.
- Estabelecidos os modelos, passamos a mostrar como especificar, de forma rigorosa, algumas propriedades importantes (lineares) acerca do comportamento dos sistemas modelados, e que gostaríamos de garantir que são realmente satisfeitas. Tais como situações que não devem ocorrer (deadlocks) ou situações que devem ser garantidas (safety, liveness). Usaremos uma lógica temporal simples (linear) para formalmente especificar as propriedades comportamentais de interesse.
- Finalmente, ilustraremos como estas propriedades podem ser analisadas usando-se técnicas de verificação de modelos. Para tal serão necessários alguns conceitos simples envolvendo autômatos que trabalham sobre palavras infinitas (traces). Ilustraremos como sentenças lógicas dão origem a propriedades sobre estes autômatos e, a partir destas últimas, como funcionam os algoritmos básicos para verificação de modelos.
- Devido ao espaço alocado ao minicurso, a apresentação será mais conceitual e ilustrada, omitindo-se muitos dos detalhes matemáticos envolvidos.
- Arnaldo V. Moura possui graduação em Engenharia pelo Instituto Tecnológico de Aeronáutica (1973), mestrado em Matemática Aplicada (Ênfase em Computação) pelo Instituto Tecnológico de Aeronáutica (1976) e doutorado em Computer Science - University of California Berkeley (1980). Interesses principais nas áreas de automatos e linguagens formais, teste e verificação, otimização, heurísticas e programação por restrições. (home page)
SBMF - Minicurso 2
Título: SafeRefactor: refatoramento seguro de programas
Autores: Rohit Gheyi (UFCG), Gustavo Soares (UFCG)
Data: quarta-feira (28-set-2011)
Horário: 11:00 - 12:30 / 14:30 - 16:00 (*)
- Resumo: Refatoramento é o processo de alterar um software melhorando sua estrutura interna sem alterar seu comportamento observável. Esse processo é utilizado para melhorar qualidades do software tais como extensibilidade, reusabilidade, complexidade, e manutenabilidade. Atualmente, as principais IDEs automatizam diversos refatoramentos. Porém, essas ferramentas podem realizar transformações errôneas, gerando programas que não compilam ou com comportamento diferente dos originais. Este minicurso aborda uma técnica para detectar transformações que não preservam o comportamento. Na primeira etapa do curso, os participantes terão uma visão geral de refatoramentos, das principais ferramentas, bem como problemas em aberto e desafios na área. Em seguida, será introduzido o SafeRefactor, uma ferramenta para tornar refatoramento de programas mais seguro. O SafeRefactor utiliza análise estática e geração automática de testes para avaliar se uma transformação preserva o comportamento. Ele vem sendo utilizado para encontrar bugs em diversas implementações de refatoramentos do Eclipse e Netbeans. Nesta etapa, será detalhada como Alloy, uma linguagem formal de modelagem, e o SafeRefactor encontraram mais de 60 bugs automaticamente nestas ferramentas.
- Rohit Gheyi possui graduação em Ciência da Computação pela Universidade Federal da Paraíba (2001), mestrado (2004) e doutorado (2007) em Ciência da Computação pela Universidade Federal de Pernambuco. Realizou doutorado sanduíche no Massachusetts Institute of Technology (MIT). Em 2008 ingressou na Universidade Federal de Campina Grande (UFCG) como bolsista de pós-doutorado, e desde 2009 se tornou professor Adjunto I da mesma instituição. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: Refatoramentos, Métodos Formais, Linhas de Produtos de Software e Desenvolvimento de Software Orientado a Aspectos. (home page)
- Gustavo Soares é doutorando em Ciência da Computação (engenharia de software) pela Universidade Federal de Campina Grande. Possui mestrado pela Universidade Federal de Campina Grande (2010), e graduação em Ciência da Computação pela Universidade Federal de Sergipe (2008). Tem experiência na área de Ciência da Computação, com ênfase em engenharia de software, atuando principalmente nos seguintes temas: refatoramentos, evolução de software, programação orientada a aspectos, linhas de produto de software. (home page)
SBCARS - Minicurso 1
Título: SOA e Processos de Negócio: construindo sistemas de informação mais flexíveis e ágeis
Autor: Paulo Pires (UFRJ)
Data: segunda-feira (26-set-2011)
Horário: 11:00 - 12:30 / 14:30 - 16:00 (*)
- Resumo: Os objetivos deste curso são demostrar como os conceitos de Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA) e Gerência de Processos de Negócio (Business Process Mangement - BPM) podem ser utilizados de forma integrada para construir sistemas de informação capazes de apoiar de forma efetiva as necessidades dos complexos ambientes de TI existentes na atualidade. O tópico “Orientação a Serviços” será coberto de forma ampla desde a arquitetura básica até o desenvolvimento de processos de negócio baseados em composições de serviços.
- Ementa:
- 1. Conceitos básicos de Orientação a Serviços:
a) Arquiteturas Corporativas; e,
b) Conceitos básicos de orientação a serviços.
- 2. Arquitetura Orientada a Serviços:
a) Princípios, elementos, camadas;
b) Serviços Web & SOA; e,
c) Arquiteturas atuais de Referência.
- 3. Processos e SOA:
a) Conceitos básicos de BPM; e,
b) Integração BPM & SOA.
- 4. Desenvolvimento Dirigido a Processos e Orientado a Serviços:
a) Análise, Projeto, teste, instalação;
b) Metodologias Existentes; e,
c) Ferramentas de Apoio.
- 5. Ciclo de Vida SOA & Gerência de Projeto dirigida a SOA.
- Paulo Pires é Professor adjunto do Departamento de Ciência da Computação da Universidade Federal do Rio de Janeiro (UFRJ). Doutor em Engenharia de Sistemas pelo Programa de Engenharia de Sistemas da COPPE/UFRJ desde 2002. Em 2010 foi professor visitante na Universidade de Sydney, Austrália. Participa de projetos de consultoria e transferência de tecnologia em modelagem de processos de negócio, SOA, desenvolvimento baseado em componentes, integração de sistemas, e desenvolvimento com J2EE, e desenvolvimento com MDA em empresas e órgãos públicos tais como: Ministério da Defesa, EMBRATEL, Marinha do Brasil, ONS, Secretaria de Informática do Estado do Rio de Janeiro, entre outras. Membro do grupo de pesquisa Greco da UFRJ, no qual pesquisa questões relacionadas a Integração de Sistemas Distribuídos e Heterogêneos, Construção de Sistemas com Base em Componentes, Desenvolvimento Baseado em Modelos (MDA), Linhas de Produção de Software (SPL), Modelagem e Implementação de Processos de Negócios, Modelagem de Sistemas. (home page)
SBCARS - Minicurso 2
Título: Conformação e Recuperação de Arquiteturas de Software
Autores: Marco Túlio Valente (UFMG), Ricardo Terra (UFMG)
Data: terça-feira (27-set-2011)
Horário: 11:00 - 12:30 / 14:30 - 16:00 (*)
- Resumo: Arquitetura de software se preocupa em descrever os componentes principais de um sistema, bem como em especificar os relacionamentos possíveis entre esses componentes. Assim, a definição arquitetural de um sistema envolve um conjunto de decisões que são críticas para seu sucesso e que não poderão ser facilmente revertidas nas fases seguintes de seu desenvolvimento. No entanto, apesar de sua inegável importância, componentes e abstrações arquiteturais não possuem uma representação explícita em nível de código fonte. Como resultado, durante a implementação e evolução de um sistema, sua arquitetura concreta pode se desviar da arquitetura com que ele foi planejado. Mais importante, esses desvios normalmente não são detectados, documentados ou comunicados aos arquitetos e gerentes de projeto, dando origem ao fenômeno conhecido como erosão arquitetural. Assim, este mini-curso se propõe a apresentar uma visão geral das principais técnicas e ferramentas existentes para conformação e recuperação de arquiteturas de software. Em comum, essas técnicas e ferramentas têm como objetivo produzir representações arquiteturais do código de um sistema, permitindo que seus responsáveis possam detectar e atuar sobre erosões e desvios arquiteturais.
- Marco Túlio Valente é bacharel em Informática pela Universidade Federal de Viçosa (1992) e mestre e doutor em Ciência da Computação pela Universidade Federal de Minas Gerais (1995 e 2002, respectivamente). Desde novembro de 2009, é professor adjunto do Departamento de Ciência da Computação da UFMG. Anteriormente, foi professor da PUC Minas por onze anos. Atualmente, com suas pesquisas tem procurado gerar contribuições científicas e formar recursos humanos nas áreas de Engenharia de Software e Linguagens de Programação. (home page)
- Ricardo Terra é um aluno de doutorado na UFMG. Ele é Mestre em Informática pela PUC Minas. Ele trabalhou po cinco anos como arquiteto de software em empresas tais como DBA, Synos e Stefanini. Atualmente, ele também é professor na Universidade FUMEC. (home page)
(*) Observação 1: Todos os minicursos possuem três horas de duração, divididos em dois blocos de uma hora e meia cada um.
(**) Observação 2: As apostilas de todos os outros minicursos estão disponibilizadas no CD de anais do CBSoft 2011.