I Congresso Brasileiro de Software: Teoria e Pr�tica

SBCARS - Palestras

Arquiteturas de Linhas de Produtos
David Weiss (Iowa State University, USA)
Beyond Architecture in Software Architecture: A Unified Approach for Architecture-Driven Software Engineering
Fl�vio Oquendo (Universit� Europ�enne de Bretagne, France)


Arquiteturas de Linhas de Produtos

David M. Weiss (Iowa State University, USA)

Resumo

A product line is a family of products designed to take advantage of their common aspects (commonalities) and predicted variabilities. A product line may be software only, e.g., a family of GUIs; software + hardware, e.g., a family of televisions; or hardware only. Where software is a part of the product line, the variability accommodated by the product line is an economic decision and strongly affects the technology and the architecture used in the design and implementation of the product line. For example, where variability is narrowly bounded, a domain specific language may be used to define the product line and generate members of it, but the market for it may be relatively narrow. On the other hand, initial investment cost may be high, production cost very low, and time to market very short. Where variability is broadly bounded, a complex software architecture may be needed, production of products may be only semi-automated, time to market may increase, but market appeal may be much wider. Empirical studies, using baseline techniques, suggest that applying product line engineering produces a factor of three to five improvement in product development cost or product development speed.

This talk will focus on the architectural considerations in defining and designing a product line, particularly questions such as "What are the attributes of a good software product line architecture?" and "How might a product line architecture change the economics of software development?", introducing an open market both in architecture and in software components. I will illustrate points with examples taken from Lucent Technologies and Avaya, from the Software Product Line Hall of Fame, from building architecture, and from other industries.


Beyond Architecture in Software Architecture: A Unified Approach for Architecture-Driven Software Engineering

Fl�vio Oquendo (Universit� Europ�enne de Bretagne, France)

Resumo

Software architecture has emerged as an important subdiscipline of software engineering. A key aspect of the design of any software system is its architecture, i.e. the fundamental organization of the system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. It forms the backbone for building high-quality software-intensive systems relying on component-based and service-oriented technologies. Architecture descriptions provide thereby the conceptual abstraction for modeling complex software systems during initial development and their subsequent on-the-fly evolutions. Indeed, a rigorous engineering approach is needed that does concentrate on the architecture of the system: its description, analysis, and evolution at both design-time and run-time.

To address this challenge, we have developed a unified approach blurring the boundaries between design-time and run-time and bringing several advantages, in particular providing the capabilities for modeling the malleability of the system so that it can be designed and afterwards be evolved even contemporaneously with its actual execution.

This keynote will focus on the innovative principles, languages and tools for supporting architecture-driven development and evolution. I will describe current issues and promising solutions throughout exemplified by case studies and outline the applications of the proposed approach in different domains carried out by academia and industry in different countries, e.g. France, Italy, UK, Switzerland, and China. Especially, I will highlight the role of active architecture as a unifying concept at design-time and run-time for designing, implementing, and evolving software-intensive systems.