Showing posts with label research. Show all posts
Showing posts with label research. Show all posts

Thursday, September 16, 2010

The Rise and Fall of Product Line Architectures

During the 14 International Software Product Line Conference (SPLC), I was co-organizing a panel with Isabel John and Christa Schwanninger about the The Rise and Fall of Product Line Architectures.

The panel had the goldfish bowl format and had as panelists the main experts in the field: Paul Clements, Charles W. Krueger, John McGregor, Dirk Muthig, and David Weiss.

The panel discussed issues as: How do you think a good product line architecture should look like? How much up-front design do we need for a product line architecture? What are hot research topics in product line architecture?

The mind-map summarizing the panel can be seen here. [thanks to Klaus Schmid].

Saturday, March 27, 2010

RiSE in the 14th European Conference on Software Maintenance and Reegineering (CSMR'2010)

Between March 15 and 18, 2010, it was held on the Universidad Rey Juan Carlos, Madrid/Spain, the 14th European Conference on Software Maintenance and Reegineering (CSMR'2010). CSMR is one of the most important conferences on software maintenance. Although this year there was a reduction in the number of attendees, probably because of the crises, the conference was very exciting and produced nice discussions around the work/research being presented.

In particular, I would like to emphasize the keynote speech of Serge Demeyer about
in vitro and in vivo research for Software Evolution. Currently, it is a common sense in the research community that more well done experiment should be performed to evaluate our research. However, in this keynote, there was an special call for more in vivo evaluation for researches. It means that we, researchers, should be more concerned with evaluating our research/proposals in a real context, for example, applying it in real companies with the researcher shipped in it.

The RiSE group participated in the Software Evolution session of CSMR, with the the paper
"An Initial Study on the Bug Report Duplication Problem", written by Yguaratã Cavalcanti, Eduardo Almeida, Carlos Cunha, Daniel Lucrédio e Silvio Meira. One interesting point for this paper, was the close relation with the keynote speech of Judith Bishop. In his speech, Bishop talked about how Microsoft has been deal with the large amount of bug reports that are coming daily through their system for bug reports submission.

We had also a good session dedicated to Software Architecture papers, where it was clear that software architecture is still increasingly becoming a fundamental step through the software development life-cycle. I specially noticed some trends to researches on software architecture recovery and reflection. In the session for software evolution, where we presented our paper, it could be noticed that change impact analysis will continue playing an important field of research.

I hope to see you in the next edition of CSMR. I would like also to thank the hospitality of Spanish people. ;)
Reblog this post [with Zemanta]

Friday, June 26, 2009

9th RiSE Day


Next wednesday, on July 1st, right after IV WIRE(*), RiSE will promote its 9th internal workshop, the RiSE Day, an environment in which RiSE Members present their master and doctoral works, some concluded and some 'working in progress', in order to discuss and have feedback on the issues they have been devoted effort.

The 9th RiSE Day will be held at C.E.S.A.R, in Recife-PE, Brazil, at 10:00 a.m. Software reuse practitioners are welcome to make discussions more interesting!

(*) IV WIRE - Workshop to Introduce Reuse in Enterprises - is promoted by RiSE in conjunction with C.E.S.A.R and CIn, and it will be held in next June 29 and 30, 2009.



*UPDATE - Jul 1st, 2009*



This edition included the following presentations:
  • Towards an Approach for Service-Oriented Product Line Architectures - Lecturer: Flavio Medeiros
  • RiPLE-DE - The RiSE Process for Product Line Engineering Design - Lecturer: Ednaldo Dilorenzo
  • RiSE Adoption Process Framework for Software Reuse Adoption in Brazilian Companies - Lecturer: Vinicius Garcia
  • Towards an approach to deal with feature interaction in software product lines - Lecturer: Hernan Muñoz
  • SPL Architectures - Variability in Quality Attributes - Lecturer: Ricardo Cavalcanti
  • Towards an effective Software Product Line Testing Approach - Lecturers: Paulo Anselmo and Ivan Machado

The Ph.D. student Pàdraig O'Leary, from Lero, The Irish Software Engineering Research Centre, came to this workshop to experience the research the RiSE group has been conducted and exchange ideas with RiSE members as well. He presented the research he's been worked on, entitled A Process Framework for Product Derivation.

We are glad for the comments and contributions from John D. McGregor and Frank van der Linden, who also joined this international RiSE Day.

Wednesday, March 18, 2009

IEEE Software - Top List

"From its start in 1984 through 2008, IEEE Software published more than 1,200 peer-reviewed articles".

In order to celebrate 25 years of publication, they prepared a very nice list of 35 highly recommended articles based on several issues of software development. I read some of them but sure I will do the full list.

The list is here. Enjoy and spread this very useful knowledge in any project.

Tuesday, September 23, 2008

Six Steps to Develop a Good Survey

Often, we researchers and scientists have to understand, evaluate, and learn different methods, processes, techniques, technologies, and so on. We discussed previously the importance of empirical studies in the area. On the other hand, another important and probable the most used research method are Surveys.

If you take look, we are often asked to participate in surveys in our life, in different roles such as: electors, consumers, service user, and so on. Doing research, many times we have to design a survey to understand and characterize some particular phenomena. However, in some situations, we forget that there is a bunch of important material about it published in other sciences and, specially, in the software engineering area.

I am designing a survey to characterize the state of reuse measurement based on expert opinion and the series of paper published by Shari Pfleeger and her colleagues were and are being extremely valuable. Thus, if you need to understand, design, construct, and evaluate a survey, I strongly recommending these papers [P1, P2, P3, P4, P5, P6]. These papers gathered experience in the field during the last years and are extremely important for someone interested in this activity.

Regarding to reuse are, I recommend for example two papers in this direction [P1, P2]. The second one presents the state of software reuse in Brazil conducted by RiSE.

Friday, September 5, 2008

Computer Science and Software Engineering Ranking

Many times, I have met students and they ask me a similar question: What are the best universities and research centers in computer science and software engineering? Who are the main researchers in the software engineering area?

It is a complex question. However, some recent research addressed by important researchers can present some insights. These research were published in the main journals in the field and sure offer a good baseline.

Think in some universities, research labs, and researchers for computer science and software engineering around the world, write your opinion and check the results here [R1,R2, R3, R4]. However, it is important highlights that it is not a final and universal ranking.

Monday, May 19, 2008

Tribute to Honor Jim Gray

If you are in the U.S during May 31, 2008, you should consider participate in the Tribute to Honor Jim Gray. Jim Gray was a computer science pioneer, known for his incredible work as programmer and mentor. The University of Berkeley is organizing this tribute which will have the participation of important names in the computer science community. At this university, Jim Gray earned the university’s first Ph.D. in Computer Science.

Tuesday, May 13, 2008

Can We define a Software Reuse Dictionary?

Yesterday, I was listening the great interview with Krzysztof Czarnecki at Software Engineering Radio when the interviewer commented about the list of buzzwords that we have in the software engineering/reuse community. I agree with them, and I think that sometimes we have the same concepts with different names. I tried to put some ones here, please, help me with it.

Perhaps, we can create a reuse dictionary and after that, uniform it.

A – Application Generators, Application Engineering (AE)

C – Code Generators, Component, Component-Based Development (CBD), Core asset

D – Design Patterns, Domain Analysis, Domain Design, Domain Engineering, Domain Implementation, Domain Model, Domain Modeling, Domain-Specific Software Architecture (DSSA), Domain-Specific Languages (DSL), Domain Scope

F – Facets, Feature, Feature Modeling, Feature-Driven Development (FDD), Feature-Oriented Programming (FOP), Frameworks

G – Generative Programming (GP)

M – Model-Driven Development (MDD), Model-Driven Architecture (MDA)

P – Platform Independent Model (PIM), Platform Specific Model (PSM), Product Development, Product Lines Engineering (PLE), Product Instantiation

R – Reuse Maturity Model (RMM), Reuse Libraries, Repository System, Repository

S – Software Factories, Software Product Lines (SPL), Software Product Line Architecture

T – Transformational Systems

V – Visual Domain-Specific Languages

Thursday, May 8, 2008

Software Measurement: The Initial Climb

Software Measurement: The Initial Climb. Yes, it was the title of my talk at Virginia Tech University, Falls Church, U.S. In this talk, I presented an overview about this topic involving some definitions, the measurement process, the theory of measurement, software measurement programs, including empirical studies and companies reports, and the current state in the area.
You can see our previous discussion about software measurement here.

See the slides of the presentation here.

Tuesday, April 29, 2008

30th International Conference on Software Engineering (ICSE) - 40 years of Software Engineering

About forty years ago, it was started the main conference about Software Engineering. In that time, during the first NATO Software Engineering Conference this incredible field was starting. There, researchers such as E.W. Dijkstra (in memorian), Alan J. Perlis (in memorian), Peter Naur, Brian Randell, M. Douglas McIlroy, were discussing about the Software Crisis and new approaches as Software Reuse our main focus here.

40 years after, the country is the same, Germany, and many of that people will be there to celebrate the 40 years of Software Engineering, including M. Douglas McIlroy. See the Software Components Lecture by M.D. McIlroy.

If you have the opportunity sure go there. May 10-18, 2008, Leipzig, Germany (30th ICSE).



Saturday, April 19, 2008

21st IEEE Conference on Software Engineering Education and Training (CSEE&T)

Last week, I participated in a good conference the 21st IEEE Conference on Software Engineering Education and Training (CSEE&T). I said good because in this conference there was 3rd Academy for Software Engineering Educators & Trainers (ASEE&T). I did not know both and especially the second was incredible. Incredible because we have lectures with Barry Boehm, Victor Basili e Dieter Rombach. That was very nice. The slides are there. You can see it.

About CSEE&T, it was very good also. It is a good conference to discuss about software engineering education and training in general. There, we had discussions about games in software engineering, agiles and formal methods, etc. The keynote speakers included Bertrand Meyer and Watts Humphrey.

I was there presenting part of our experience teaching software reuse with the paper: A Case Study in Software Product Lines: An Educational Experience. It, in general, was well received by the software engineering education community with some questions. Next year, the conference will be in India.

Wednesday, March 5, 2008

Measurement: A quick start

Today, this blog will start some discussions related to the roots about software reuse: the productivity issue. These discussions will approach productivity in general, software metrics and, finally, software reuse metrics. We will begin with an important aspect when we are talking about productivity: Measurement. What is it and why we have to do it is the point inspired by Fenton & Pfleeger’s texts.

In our life, day by day we are applying measurements in our activities, jobs, etc. For example, we have economic measurements to determine the prices; measurements in radar and medical systems in order to diagnose illnesses, weather prediction etc. Thus, measurement helps us to understand the world, interact with it and, in some sense, improve our lives based on it.

These are examples of measurements, but a more formal definition stated by Fenton & Pfleeger is that: “Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined rules”.

But, what are the attributes and entities in their definition? Let us start with entities. An entity is an object (such as a person or a room, for example) or an event (such as a journey in a road or the testing phase of a software project) in the real world. On the other hand, an attribute is a feature or property of an entity. Typical attributes include the distance (of a journey) and its cost, or the time (during the test phase). In our life, we talk about entities and their attributes interchangeably. However, as highlighted by Fenton & Pfleeger, it is wrong to say that we measure things or that we measure attributes; in fact, we measure attributes of things. Thus, we can make judgments about entities by knowing and analyzing their attributes.

However, in this process, we have some difficulties issues which should be analyzed to avoid false assumptions:
1. In general, the accuracy of a measure depends on the measuring instrument as well as on the definition of the measurement. However, some measures are not likely to be accurate, either because the measurement is imprecise or because it depends on the judgment of the person doing the measuring. Think in soccer, how to define a good player or the best team?
2. Even when the measuring devices are reliable and used properly, there is margin for error in measuring the best understood physical attributes. Thus, how do we decide when error margins are acceptable and which are not?
3. When is a scale acceptable for the purpose to which it is put?

In general, we can see measurement and electrical, mechanical, and civil engineering. On the other hand, it is not often in software engineering and in some projects: we fail to set measurable targets for the products; to understand and quantify the component costs of software projects; and we do not quantify or predict the quality of the products which we produce. Moreover, when measurements are made, they are done infrequently, inconsistently, and incompletely. For example, you can remember a software engineer saying that in his code was found just 10 faults in 5000 lines of code. But, often we think: how these results were obtained, how this analysis was performed and interpreted, what entities were measured and how….Thus, as you can see, measurement in software engineering needs a rigorous approach to do it.

In summary, it is good to remember: even when a project is not in trouble, measurement is useful and necessary because how can you tell: ok, my project was a successful? How can we compare our project with some baseline? How to identify points to corrective action? Measurement is useful to understand, control and improvement the work. Thus, remember Tom DeMarco when he said:

You cannot control what you cannot measure”.

Remember also of managing the expectations of those who will make measurement-based decisions. Explain about the limited accuracy of prediction and the margin of error in the measurement.

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.

Tuesday, November 20, 2007

Towards a Query Reformulation Approach for Component Retrieval

This post presents topics related in the seminar that we had today for I.N.1.0.3.8 - Advanced Seminars in Software Reuse course at Cin/UFPE. The title is "Towards a Query Reformulation Approach for Component Retrieval". The presentation (see) evaluates several papers about Query Reformulation, exploring theirs approaches and strategies.

Software construction is done more quickly when a reuse process is adopted. But this is not enough if there is no market to absorb these software components. The component market still faces a wide range of difficulties such as lack of a efficient search engine.

One of the biggest problems in component retrieval and search is to increase the significance of the result since the user normally doesn´t formulate the query of the appropriate way. The searcher has a vision of the problem that is not necessarily the components repository reality. Several approaches try to solve this problem. The seminar focuses on the query reformulation technique which reduces the conceptual gap between problem and solution through query refinement based on formulated queries stored previously.

The Code Finder was one of the first attempts to implement component search and retrieval by query reformulation. The papper "Interactive Internet search: keyword, directory and query reformulation mechanisms compared" evaluates that query refomulation improves the relevance of documents, but increase search time. The work "Using Ontologies Using Ontologies for Database Query Reformulation" do query reformulation using ontology rules for query optimization and for data integration. Another very interesting study is "Lexical analysis Lexical analysis for modeling web query reformulation" that analyzes lexicaly the searcher behavior through that Query Clarity and Part-of-Speech.

My initial proposal is to develop a query reformulation engine for BART, using techniques that will be evaluated such ontology, keywords order and other. Approaches comparison matrix will be prepared to compare the several existing techniques e helps in the correct choose.

by Dimitri Malheiros

Tuesday, October 2, 2007

Changing the Research Focus: Towards Industrial Projects and New Startups

Since 2001, when George Johnson said: “all science is computer science” – even with some researchers from different areas not agreeing with it – we can see some changes in research and other discussions such as: “computation is the third branch of science, along with theory and experimentation” and “every discipline is becoming computationally intense” are being raised. In the EDUCAUSE review, on July-August 2006, Sandra Braman starts some important reflections about the Transformations of the Research Enterprise. In this interesting paper, she discusses – among other – that research is more likely to be carried out in the context of a problem-oriented application than within the context of a specific academic community. Her analyzes is based on key funding agencies as National Science Foundation (NSF) which is starting the process of shifting research funding attention toward specific problems and away from discipline-bound and theory-driven basic research. In her words “as a corollary, researchers are increasingly required to respond to social and political demands to be accountable rather than isolating themselves within an ivory tower”. In Brazil, we are having some initial efforts in this direction, for example, with the FINEP agency which has stimulated research projects involving academic institutions and companies. In special cases in the country, this reality is being common in some universities/innovation institutes which believe that this integration is essential for its impact on the city/state/country or even in the world. In Recife, this effort started about 11 years ago headed by Prof. Silvio Meira which was the mentor of the Recife Center for Advanced Studies and Systems (C.E.S.A.R) and next of the Porto Digital. The result of this new way of think/do/transform can be seen with important awards such as Microsoft Imagine Cup, ACM Programming Contest and recently with the Intel/UC Berkeley Technology Entrepreneurship Challenge. In the last one, in this year, in the first step, from 65 business plans from different universities were selected 20, which 5 were from Recife (RiSE was one of them). Considering that in the last year, the 2nd best business plan was from Recife, we can easily see the results. In addition, we can comment other programs in this direction involving universities (Recife Beat) at Federal University of Pernambuco and Garage at C.E.S.A.R which can increase these benefits in the future. For other universities and companies in the country, we hope that this feedback can be useful to start new reflection in this direction and generate a path for the country starts a new era.