Wednesday, January 16, 2008

RiSE’s Interviews: Episode 2 – Software Reuse with Dr. Dirk Muthig


It is one more interview performed during the RiSE Summer School on Software Reuse (RiSS). In the second one, Dirk Muthig, one of the most important researcher/practitioner working with Software Product Lines (SPL), from Fraunhofer Institute, Germany, answered 10 questions about software reuse and SPL. Watch the interview here. One more time, Thanks for Anderson Correia, Manager from TV C.E.S.A.R.

Tuesday, January 15, 2008

Model Search Evaluation

Hello there, reusers. This post is a request for help in a project about a model search engine that I am currently developing at George Mason University, USA. The idea is that current search engines (Google, Google code, Krugle, Koders, etc) can not be easily used to find models in the context of Model-Driven Development, since they do not have some features such as filtering by metamodel and having a proper visual representation. So, a search engine specifically designed for models could lead to a greater reuse of models.

For example, if you are developing a system for the gaming domain, you could use it to find other game models. Another possible scenario is a teacher trying to explain the concepts of use case modeling, and uses the search engine to find examples of use cases models.

We are now planning an experiment to determine if such search engine can really lead to some of the expected benefits, and for that we need... models! If you have access to some models that you can share (any model will work, as long as it is in the XMI format - this includes Rational, ArgoUML, and a number of other tools), please send it to me (dlucredio - gmail). It does not need to be UML, but if you have a different metamodel, I will also need the metamodel as well (xmi or emf-compliant jar file).

Thank you all, and wait for the results of the experiment in this blog!

Thursday, January 10, 2008

Software Reuse Doctoral Symposium

Ph.D. candidates in software reuse consider submit a paper for the Doctoral Symposium on Software Reuse which is part of the 10th International Conference on Software Reuse (ICSR) in order to get feedback on the main specialist about your thesis. The deadline for submission is January 15, 2008.

If your paper had been accepted, sure you will get valuable feedback. I will be there on the Panel with Dr. Bill Frakes and Dr. Gregory Kulczycki (Chair).

ADMIRE: Asset Development Metrics-based Integrated Reuse Environment

Today, we will publish in this blog one more M.Sc. dissertation defended in our group.

Jorge Mascena's dissertation presents a relevant contribution for the field involving reuse tools and metrics. Nowadays, Mascena is living in U.S. working as a Project Manager.

Here is the abstract of the work: “The challenge for achieving a more efficient software engineering practice comprises a vast number of obstacles related to the intrinsic complexity of software systems and their surrounding contexts. Consequently, software systems tend to fail in meeting the real needs they were developed to address, consuming more resources,
thus having a higher cost, and taking longer to complete than anticipated.

The software reuse field is often regarded as the most promising discipline for closing these gaps, however, it still fails to fulfill this promise by providing a comprehensive set of models and tools that can be adopted on a systematic way.

This leads to a poor reuse activity in most software development organizations. One of the main reasons for the low reuse activity is that developers simply do not attempt to reuse because of a number of factors, including lack of knowledge about reusable assets and the notion that the cost for reusing is higher than the cost of developing new code.

This work aims at building an integrated reuse environment, the Asset Development Metrics-based Integrated Reuse Environment (ADMIRE), that addresses this problem in two fronts: (1) aiding developers to achieve a higher reuse activity and (2) providing managers with means to monitor the achieved reuse activity and thus take prompt corrective actions.

An active information delivery scheme is used to provide the first part, while a continuous reuse metric extraction mechanism is employed to implement the second part. A new reuse metric is proposed for this purpose and the resulting ADMIRE environment is evaluated with a set of real projects from a software development organization.”

See the full document here.

Wednesday, January 9, 2008

Where the Jobs Are - Past Forecast

The research has one year, but I think that it is still valid to see what happened. IEEE Spectrum surveyed 752 IEEE members about the past, present and future technological trends they are seeing. The questions were:

1. Do you think the number of R&D employees in your organization has…
2. What type of change do you expect in the number of R&D employees at your organization?
3. What technology area, including academia, would you advise students interested in R&D to get involved with?
4. What proportion of your R&D do you do offshore?
5. Which of the following problems (if any) have you experienced with offshoring R&D?
6. How much money does your organization spend on R&D per year?


You can see the full research here.

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.