AgileAndArt

The Art Improving Agile Software Development

Browsing Posts in Academic

The CHOReOS Solution

CHOReOS will implement a framework for scalable choreography development. The goal is to enable domain experts to develop decentralized ultra-large scale (ULS) solutions composed of heterogeneous services that are adaptable and QoS (Quality-of-Service) aware. Prior to this, these solutions were only possible with the support of dedicated IT professionals to provide the skills needed for architectural design and software engineering.
CHOReOS will deliver formally grounded abstractions and models, dynamic choreography-centric development processes, governance and service-oriented middleware manipulated via an Integrated Development Runtime Environment (IDRE) aimed at overcoming the ULS impact on software system development.

Here is what to expect from the CHOReOS project:

  • Abstractions and models
  • A choreography-based development environment
  • Service-oriented middleware
  • Governance mechanisms

Formally grounded abstractions and models for the Future Internet of Services

CHOReOS will elaborate a reference software architecture for the target choreography-based software systems, introducing abstractions for services, interaction protocols, and coordination (choreography patterns). Abstractions are central to the software engineering discipline. Indeed, abstraction is an essential means to deal with complexity. Formally grounded abstractions and models enable reasoning about the properties, both functional and non-functional, of ULS choreographies.

Dynamic choreography-centric development process and supporting environment for the Future Internet

CHOReOS will define a model-driven process and provide the necessary tools to enable rigorous and systematized development, as well as requirements specifications and choreography modelling by domain experts (as opposed to IT professionals) including further synthesis of concrete adaptable, QoS-aware choreographies built on top of an ultra-large repository of services (service base).

A dynamic choreography-centric development process allows the fusion of the user/developer/system roles, while managing the ULS service base and supports the synthesis of scalable and adaptable choreographies.

Service-oriented middleware for the Future Internet

Here’s where my PhD work will be focused!!!

CHOReOS will implement service middleware support, effectively enabling the deployment of adaptable, QoS-aware choreographies in the ULS Future Internet, integrating and further evolving the latest research advances in the area of Grid and Cloud computing, Enterprise Service Bus (ESB), and pervasive computing. Service-oriented middleware enables adaptable choreographies over ESB-based middleware, Grids, Clouds, and technologies for the Internet of Things, thus overcoming scalability and heterogeneity issues of the Future Internet.

Governance and V&V for the Future Internet

CHOReOS will define concepts of governance of services and choreographies. To support governance CHOReOS will develop mechanisms for Verification and Validation (V&V) of adaptable, QoS-aware choreographies in the context of the ULS Future Internet. Such mechanisms will be conceived to apply model-based techniques and to extend V&V activities to run-time. Governance includes service integration policies and rules, as well as tools for dynamic verification and validation of choreographies.

Last but not least, CHOReOS assesses the industrial exploitation of this choreography-centric vision by experimenting on three demanding use cases in different domains (passenger-friendly airportmobile-enabled coordination of peoplevehicular network) and by carrying out a study of social-technical factors.

Next month I’ll start my PhD program @ University of São Paulo.

I’ll work on a project called CHOReOS – Large Scale Choreographies for the Future Internet. People are asking me what is this project, what I will study, what exactly I’ll do and I have a simple answer to these questions: I don’t know. I mean, I don’t know exactly. But I know it’s cool and that I will be involved with great people. That’s enough.

But I promisse, as soon as I start understanding deeply the CHOReOS project, I’ll post details on my blog. For now, you can have the explanation given at the project’s blog:

What is CHOReOS?

  • CHOReOS is a joint IT research and development project, whose sixteen members consist of companies, universities and research centers from six European countries and Brazil.
  • CHOReOS is a project of the FP7 European program: FP7-ICT-2009-5 – Objective 1.2; it is co-funded by the European Commission (8.665.785 € of investments).
  • CHOReOS is a high-technology software project addressing one of the most acute challenges of the future Internet of Services: the design and management of ultra large-scale web services coordination.
  • CHOReOS is an open source project, the technology developed by the project will be publicly accessible from software repositories hosted on the OW2 Forge.
  • CHOReOS is a nascent community, a community that will come together and share via this web site, LinkedIn, Twitter, StatusNet and IRC.

What CHOReOS is not.

  • CHOReOS is not a company and you cannot buy shares in it.
  • CHOReOS is not a Greek island.

For more details, here’s the CHOReOS website.

Here’s a small table of many terms I’ll have to be used to in my PhD program, which starts on the next month. It’s just a small part of hundreds of abbreviations we software developers have to deal with on our daily work. Please comment down if you have suggestions to add to this table. I’m sure every person can add at least 30 itens to this table:

a.k.a. Also known as
API Application Programming Interface
BDD Behavior Driven Development
BPEL Business Process Execution Language
BPEL4SWBPMI Business Process Execution Language for Semantic WeBusiness Process Management Initiative
BPMN Business Process Modeling Notation
BPSS Business Process Specification Schema
CA Consortium Agreement
CBDI Component Based Development and Integration
CBDI-SAE CBDI Service Architecture and Engineering
DAML DARPA Agent Markup Language
DAML-S DARPA Agent Markup Language for Services
DCV&V Decentralized Collaborative Validation and Verification
DDD Domain Driven Design
DL Deliverable Leader
DoDAF Department of Defense Architecture Framework
DOW /DoW Description of Work
DSB Distributed ESB
EAI Enterprise Application Integration
EDA Event-Driven Architecture
EFSM Extended Finite State Machine
ESB Enterprise Service Bus
ETP European Technology Platform
FI Future Internet
FIA Future Internet Assembly
FTP File Transfer Protocol
GRL Goal Representation Language
HTTP HyperText Transfer Protocol
IaaS Infrastructure as a Service
IAC Industrial Advisory Committee
IDE Integrated Development Environment
IDRE Integrated Development and Runtime Environment
IT Information Technology
JBI Java Business Integration
MBT Model-Based Testing
MDD Model Driven Development
MODAF Ministry of Defence Architecture Framework
MST Management support team
M2M Model-to-Model
M2T Model-to-Text
OMG Object Management Group
OSGi Open Services Gateway Initiative
OSS Open Source Software
OWL Ontology Web Language
OWL-S Ontology Web Language for Services
PaaS Platform as a Service
PL Project Leader
PMT Project Management Committee
PO Project Officer
PTC Project Technical Committee
QoS Quality of Service
R&D Research & Development
RDF Resource Description Framework
REST REpresentational State Transfer
RTD Research and Technology Development
SaaS Software as a Service
S-APL Semantic-Agent Programming Language
SAWSDL Semantically Annotated Web Service Description Language
SBPM Semantic Business Process Management
SL Scientific Leader
SLA Service Level Agreement
SLS Service Level Specification
SOA Service-Oriented Architecture
SoaML Service-oriented architecture Modeling Language
SOAP Simple Object Access Protocol
SOC Service-Oriented Computing
SoTA /SOTA State of The Art
SQL Structured Query Language
TCC Test Collaboration Contracts
TDD Test-Driven Development / Design
TSC Testing Service Contract
UDDI Universal Description Discovery and Integration
ULS Ultra-Large-Scale
ULS-FI Ultra-Large-Scale Future Internet
UML Unified Modeling Language
UMM UN/CEFACT Modeling Methodology
UPDM Unified Profile for DoDAF and MODAF
V&V Verification & Validation
W3C World Wide Web Consortium
WP Work Package
WPL Work Package Leader

Há algum tempo, fizemos uma peça de teatro que ensina os conceitos de Domain Driven Design (DDD). O foco desse teatro é a parte de Projeto Estratégico (Strategic Design) de DDD. Essa peça é baseada no roteiro escrito pelo próprio Eric Evans. Em 2008, na QCON SF, eu participei de um Workshop de DDD com o Raph Johnson. Depois fiz a tradução do roteiro, que pode ser baixado aqui.

Para saber mais sobre DDD, leia esse post no meu blog.

Ontem, durante o I CBSoft (Congresso Brasileiro de Software), Rafael Prikladnicki e eu (representando a Locaweb e a Agilcoop) demos um mini-curso de Introdução a Métodos Ágeis. Ficamos muito felizes em saber que foi um dos cursos mais procurados do evento. No início do curso, fizemos uma dinâmica com os participantes para que escrevessem em post-its suas experiências. Eles teriam que nos dizer sua opinião sobre por que um projeto de software fracassa ou por que um projeto de software tem sucesso. Baseado nessas respostas, fomos moldando o curso, tentando responder o que Métodos Ágeis ajuda a resolver e o que não.

Uma das coisas mais interessantes foi o fato de que eu não conhecia o Rafael antes. Nós organizamos o esqueleto do curso por e-mail, nos encontramos um dia antes para acertarmos os últimos detalhes e improvisamos muito durante a apresentação. Assumimos a filosofia ágil e íamos apresentando os assuntos que mais interessavam ao cliente (no caso o nosso público). Foi uma experiência divertida.

Para quem quiser ver um pouco do conteúdo do mini-curso, aqui vão os slides.

Desde a apresentação da minha defesa de mestrado muita coisa aconteceu. Recebi comentários de várias pessoas do Brasil todo sobre a defesa e fiquei extremamente feliz com a repercussão, tanto no meio acadêmico quanto na indústria. Tive oportunidade de conhecer e conversar com muita gente interessante por causa do trabalho que fiz. Entre essas pessoas, gostaria de compartilhar aqui uma parceria que surgiu e que ainda tem muito para evoluir.

Ano passado eu estava lendo uma matéria na revista Mente e Cérebro e um artigo me chamou muito atenção. Ele foi escrito pela professora e pesquisadora Maira Fróes. O artigo falava sobre a união da Arte e da Ciência. Várias das ideias apresentadas tinham muita relação com a minha dissertação de mestrado e a minha visão pessoal sobre o que eu acredito ser Ciência.

Escrevi para a Maira parabenizando pelo artigo. Contei da minha defesa, mostrei para ela o vídeo e me ofereci para unirmos força e trabalharmos juntos em algo. Ficamos encantados, um com as ideias do outro e combinamos um encontro no Rio de Janeiro para conversarmos sobre como poderíamos de fato trabalhar juntos para evoluir esse projeto. Nesse momento ainda estamos numa fase embrionária, mas que já temos muitos elementos ricos e um bando de gente competente e talentosa envolvida no grupo, que é coordenado pela Maira.

Algumas pesquisas já estão sendo feitas e a primeira delas, que já mostrou resultados interessantes, é o de introduzir elementos artísticos em aulas de anatomia. A ideia é transformar a sala de aula de anatomia, normalmente fria e insensível, em algo vivo, emocionante. A inclusão da emoção e sensibilidade no ensino pode trazer benefícios enormes para os alunos, tanto no nível do aprendizado quanto no da experiência e vivência pessoal de cada um.

Semana passada estive junto com o grupo da Maira em Caxambu, no XXXIV Congresso da Sociedade Brasileira de Neurociências e Comportamento. Tive a oportunidade de fazer uma apresentação sobre a minha visão de unir Arte e Ciência. Vejam os slides da palestra:

Também gostaria de compartilhar aqui um pequeno vídeo da exposição criada pelo grupo da Maira e que estava sendo realizada dentro do Congresso. A exposição se chama EXPO UMA CIÊNCIA SENSÍVEL (grupo Anatomia das Paixões). Infelizmente o vídeo não expressa toda a emoção que é adentrar uma sala escura de corpos dançantes, verdadeiras obras de artes, e experimentar sensações de aprendizado sobre nomes de ossos humanos nesse ambiente.

Gostaria de deixar aberto aqui um espaço, para que as pessoas pudessem sugerir ideias ou compartilhar vivências de como podemos integrar melhor não só a Arte com a Ciência, mas Arte com Computação, ou Arte com ambiente de trabalho, de maneira que possamos incluir e integrar emoção humanas nas vivências do dia-a-dia. Todos são bem vindos a participar desse grupo!

Here are the slides of a talk I gave to young people, from  14 to 16 years, about how is the life of a Computer Scientist. Some time ago, I’ve made a blog post with 15 question and answers about Computer Science. I hope this presentation and the blog post can be useful to teenagers. I know choosing the course which will be your life for the next 4 or 5 years is not an easy task, so, the more information available the better. And don’t forget: every time is time to change and make other choices.

It took a long time, but I finally migrated my old blogspot blog to WordPress. Please, give me your feedback about the new blog’s layout. I hope I can create much more content for you, with this incredible tool.


Nas últimas semanas troquei algumas conversas com amigos que, coincidentemente, tiveram o mesmo tema. Paralelamente a isso, fui indicado por uns professores do IME a responder um questionário que ajudará alunos ingressantes na Universidade a escolherem o curso que possivelmente definirá todo o resto de uma vida. Esse questionário será respondido por algumas pessoas e existe um grupo que está encarregado de colher as informações e colocar no site do IME-USP. Decidi tornar a resposta do meu questionário pública, para aqueles que querem saber um pouco mais sobre o que é Ciência da Computação, tanto no nível acadêmico quanto profissional. Me coloco a disposição para responder perguntas e ouvir sugestões.

1 – O que o motivou a fazer Ciência da Computação?

Eu sempre tive interesse por Computação. Comecei cedo na área, quando ganhei meu primeiro 386 em 1992, isso sem contar o TK3000 que eu ganhei quando era criança e o MSX de um amigo, com o qual eu passava horas digitando códigos em BASIC que na época se comprava em banca de jornal. Na minha primeira tentativa de entrar na faculdade, eu prestei Engenharia Mecatrônica. Eu acho que naquela eu era muito influenciado pelo que meus pais falavam e eles comentavam muito sobre essa tal de Mecatrônica. Eu prestei sem nem saber direito o que era e tive a grande sorte de não ter entrado :-)
No ano seguinte, fiz cursinho e estudei melhor quais eram as faculdades que existiam e o que elas ofereciam. Achei que Ciência da Computação se encaixava exatamente no que eu gostava de fazer: software.

2 – O que o levou na época a escolher o BCC da USP?

Estava dentro dos meus objetivos fazer uma faculdade pública e gratuita. Não queria mais que meus pais tivessem gastos com meus estudos e me sentia capaz de entrar numa Universidade pública boa. Prestei UNESP, UNICAMP e USP, além do Mackenzie. A única que eu não entrei, por muito pouco, foi a UNICAMP. Mas mesmo se tivesse entrado, acho que escolheria a USP, não por eu considerar a melhor (acho que UNICAMP e USP são equivalentes), mas pelo fato de eu já morar em São Paulo.

3 – Como você avaliaria sua formação no BCC?

continue reading…

Há algum tempo venho enrolando para publicar a minha dissertação de mestrado. O motivo dessa enrolação é bem simples: eu não terminei de revisar a dissertação. Foram vários e vários comentários que a banca fez no dia da defesa e que eu tinha que alterar no texto.

Bom, eu fiz a primeira revisão e mandei para o meu orientador, mas ele me mandou de volta com mais trocentas mil coisas para mudar. Enfim… é um processo infinito! E o pior é que eu entrei em outra rotina, que fez com que eu tirasse totalmente o foco do mestrado. Como a banca no final aprovou a tese, eu tenho apenas um compromisso moral de revisá-la, o que torna a coisa muito mais difícil de ser terminada. Ou seja, não sei quando vou terminar, se é que eu vou terminar um dia.
Enquanto isso, vou assumir que a versão que eu tenho já está boa o suficiente para publicar num blog. Tudo bem: segundo os acadêmicos, não está boa o suficiente para ser publicada num jornal científico ou na biblioteca digital da USP. Mas isso é assunto para outra sindicância…
Algumas pessoas já leram versões preliminares e parciais dessa dissertação. Algumas partes do texto já foram publicadas, parcialmente em posts desse blog. A tese é, no final das contas, um relato da minha experiência dos últimos 3 anos trabalhando na Locaweb e dos últimos 15 anos como desenvolvedor de software e aluno de Ciência da Computação no IME.
Quem tiver paciência de ler as 145 páginas, segue o texto abaixo:

Padrões para introduzir novas ideias na indústria de software

. O texto está bem dividido em duas partes quase distintas:
  • A primeira fala sobre Padrões para Introduzir Novas Ideias, como foi a utilização deles na implantação de métodos ágeis na Locaweb.
  • A segunda fala sobre as relações entre Arte e o Desenvolvimento de Software e faz o link com a primeira parte com o padrão ‘Faça Arte’
Como eu disse, ainda faltam fazer as últimas alterações sugeridas pelo meu orientador. Continuo aceitando sugestões e críticas de todos. Se ninguém me escrever nada, poderá ser por 2 motivos:
  1. Ninguém leu o texto
  2. O texto está perfeito
Como sou um homem livre e de bons costumes, caso ninguém mesmo comente, vou assumir o segundo como verdade… :-)

Switch to our mobile site