Friday, December 21, 2007

RiSE’s Interviews: Episode 1 – Software Reuse with Dr. Ruben Prieto-Diaz

During the RiSE Summer School on Software Reuse (RiSS), the RiSE’s members had the opportunity to perform some interview with the keynote speakers at C.E.S.A.R. In the first one, Ruben Prieto- Diaz, the creator of facets ideas in the search and retrieval area of software componentes, from James Madison University answered 10 questions about software reuse. Watch the interview here. Thanks for Anderson Correia, Manager from TV C.E.S.A.R.

Saturday, December 15, 2007

Architecture vs. Design

This post discusses a philosophic question: Are there differences between architecture and design activities? Before answering this question, I would like to tell some assertions found in literature. Eden and Kazman discuss differences among Architecture, Design and Implementation fields. According to them: "Architecture is concerned with the selection of architectural elements, their interaction, and the constraints on those elements and their interactions... Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements". Following this idea, Bass et al. defines software architecture as "the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them". The SEI (Software Engineering Institute) considers two distinct activities in the life-cycle development: Architecture design and Detailed design.

We can found several methods, methodologies, approaches, and so on, that can be seen as an architecture or design activity. For example OOAD (Object-Oriented Analysis and Design) methods, CBD (Component-Based Development) methods, SOA (Service-Oriented Architecture) methods. Can these methods be considered design methods? In architecture point of view, we have other methods, such as ADD method by SEI and 4+1 Model View by RUP. These methods present some steps to design a high-level architecture on several views.
In this context, I have some questions:
- Design comprises architecture activities? Or is it the opposite? Do analysis and design discipline in the life-cycle development encompasses an architecture method?
- OOAD is a design method, architecture method or design technique?
- Are UML Components and Catalysis (CBD methods) design methods?

At the end, my final question is: How is named an approach that defines components of the system in a high-level architecture with different views (architecture concept), and defines details of these components such as their operations(design concept)?

Monday, December 10, 2007

More on Software Product Line Design

In this post I'll bring some initial work from my master thesis, which will bring some contribution on Software Product Line in the Digital Television Domain. Entitled "Designing Software Product Line Architecture", this talk was presented today at the Seminars in Software Reuse course at Cin/UFPE. It shows a survey on the well known Product Line Architecture Methods, comparison of those mathods by Marinlassi, M. and a nice state-of-art work by Hendrickson, S. A. & van derHoek A..

Software product line engineering is a pro-active reuse approach. It introduces software reuse in large scale, throughout the organization. Its adoption benefits from lowering costs and time-to-market as well as raising product quality.
The five best known architecting methods for Software Product lines, which were surveyed in this presentation were the FAST method, by David Weiss; FORM by Kio Kang, that focuses in the feature analysis and develops its architectural model based on its feature model; COPA, developed inside Philips, which is probably the most extense method, covering also organizational issues; the QADA method, by Matinlassi, focuses on architectural quality attributes and proposes designing and assessing the architecture; and last, but not least, the KobrA method, developd by Atkinson, inside the Fraunhofer Institute as a concrete, component-based, object-oriented instantiation of PuLSE-DSSA.
Besides the well known methods proposing a new way of modeling product line architectures, Hendrickson bases his work on change sets and relationships between those change sets. An interesting alternative for tackling complexity.
Agreeing with Matinlassi's comparison of the well known methods, the KobrA approach is the simplest one. It is very pragmatic and focuses directly on defining a conceptual architecture and realizing it through component-based development. The key activities in the KobrA approach are those related to context realization (Application Context, Framework Context...). Therefore, a worthy contribution shall come from closing this gap between the conceptual approach and the Digital TV application domain.

The slides are available here for download, already with some extensions suggested this morning, at the classroom.

Thursday, December 6, 2007

Software Component Certification: A Component Quality Model

Today, for the reuse community the RiSE is starting one more effort. We will publish in this blog all the M.Sc. and Ph.D. thesis defended in our group.
Starting, we have Alexandre Alvaro's dissertation, which won the best dissertation award in the Brazilian Simposium on Software Quality.
Here is the abstract of the work: "Component-based software development is becoming more generalized, representing a considerable market for the software industry. The perspective of reduced development costs and shorter life cycles acts as a motivation for this expansion. However, several technical issues remain unsolved before the software components industry reaches the maturity as other software industries.
Problems such as component selection, the lack of component catalogs formalization and the uncertain quality of third-party developed components bring new challenges to the software engineering community. On the other hand, software component certification is still immature and much research is needed in order to create well-defined standards for certification. This dissertation introduces a component quality model, based upon consistent and well-defined characteristics, quality attributes and related metrics for the component evaluation.
A formal case study was used in order to analyze the viability of the use such of a model. The results showed that the model is a good candidate for evaluating software component quality, and future work already scheduled to continue evolving until it reaches a maturation level that makes it applicable in industry."
See the full document here.

Monday, December 3, 2007

RiSE Summer School (RiSS) - Final Remarks

Yes, yesterday the RiSE Summer School – the first event around the world in this direction - came to its end. The event could put together the main names from industry and university together. During these days, Ivica, Frakes, Dirk, Wayne, Prieto and Krueger were incredible. In the second day, Dirk showed all his experience working with software product lines. It is incredible his experience and advances in the field. This guy is doing an incredible work in the field. After that, the show man, Wayne Lim, started a historical talk in software reuse. Wayne divided the room in a new shape and simulated a practical case study with roles and points of view. Wayne was brilliant.

In the last day, Prieto discussed his ideas about libraries, facets and their evolution into ontologies. After that, Krueger started his presentation. Krueger was incredible. He could show how a CEO can do a nice talk and present his product in a hands on way. Krueger was also very impressive. I think that he could discuss for all night.

After the talks, the awards were announced. The first one was the Reuse Guy. Ricardo Cavalcanti, software engineer at C.E.S.A.R, was incredible. This guy had several questions during all the talks and was awarded by audience and organizers. In the second one, Wayne Lim, was awarded with the best course in the summer school. Wayne was incredible and had incredible acceptance by the attendants.

If you did not have opportunity to be there, in the next week we will publish the videos and interviews during the conference. If you were there, it is time to remember more.