Pro-ICSE 2010 Doctoral Symposium Resources
Presentations
Inexhaustive sample answers to 10 short questions:
1. What is the main goal of your work?
- The main goal of my work is to provide real-time and fine-grained awareness to developers in the context of multi-developer projects, especially when teams are not collocated.
2. What are the tangible benefits of achieving your goals?
- In general, developers find and prepare Enterprise Services for Enterprise Mashups, which requires both technical understanding of the service definition and business knowledge to identify relevant services, operations and parameters. However, the latter information normally resides with business users that best know their business. By supporting and partially automating the technical discovery process as well as simplifying the usually complex interface, the effort of developers can be reduced by leaving the decision of a service's meaning and application to the business users. In this respect, the majority of business users and knowledge workers (i.e. 85%, Quinn 2005) can be leveraged to compose applications using the emerging Mashup paradigm ($700 Mio Market, Forrester; top 10 technologies, Gartner).
3. What are the technical problems that make your goal difficult to achieve?
- Since our goal is to provide both fine-grained and real-time information of the activity of a project, a crucial problem is to balance the granularity of changes with the response time to deliver information. Looking at another perspective, there is a tradeoff between granularity and scalability in terms of number of developers we can track.
- Developing ontologies that are generic enough to accommodate data coming from different analysis providers but rich enough to capture all the vital features and concepts needed (and be easily understandable by users) is a major problem to be solved. The semi-automatic composition of several analyses into a well-structured and executable workflow, with just minimal user input, is another technical problem to be tackled. At last, the proposed approach uses semantic web technologies, namely ontologies, and RESTful webservices whose integration is still in an immature state, in particular lacking concrete uses.
4. What are the main elements of your approach?
- While we focus on collaboration, we store the entire evolution of the system at a fine-grained level. This data can be used for software evolution analysis purpose, such as bug prediction and code ownership analysis.
- (a) Tailored optimization meta-heuristic algorithm to search through the design space while considering the robustness. Meta-level architecture transformation operators will be defined in order to generalize different transformations.
(b)An incremental methodology to automatically re-construct the probabilistic quality evaluation model, when a transformation is applied to the architecture, as opposed to the complete reconstruction of the evaluation model.
(c) When probabilistic model is changed, a method to obtain the new quantitative measures by propagating the applied change through the model instead of complete re-evaluation, which is called as Delta(∆) Evaluation.
5. How does your approach handle the technical problems that have prevented progress in the past?
- In general, there are no clear guidelines on how to tailor software processes and organizations follow ad-hoc approaches. The strategy commonly adopted for software process tailoring in organizations is the definition of a standard and generic organizational process, inspired by one reference model, like CMMI, with static rules for tailoring this process to a specific project. Therefore, this work differentiates itself by offering a systematic approach, using process line, to support these organizations in this task. Moreover, due to the importance to review the process as more information is available and new situations happen during project execution, the proposed solution is evolvable and considers the process enactment context.
- In contrast to procedural interaction-based components, a call-graph does not sufficiently help to identify the dependencies between event-based components because event-based components do not directly invoke each other’s operations. Moreover, each event-based component typically contains code that filters incoming messages and dispatches these messages to diverging code regions that in turn may publish distinct new messages. Existing message dependence analysis techniques fail to recover a component’s message sinks, message sources, and intra-component dependencies because they do not analyze the data-flow of messages within a component. For example, the data-flow algorithm of my analysis technique captures message type information generated by a component’s filtering and dispatching code.
6. What are the unique, novel, and/or critical technologies developed in your approach?
- The novelty of this work is the combination of critical technologies to compose an integrated solution. It includes: a social network technology to offer collaboration analysis; technology to process line tailoring and visualization; a context management infrastructure composed by mechanisms to represent, capture, store, retrieve, and visualize the context; and the development of a tool that runs an optimization algorithm and generates a suggestion of a tailored process.
- (a) Tailored meta-heuristic for robust software architecture optimization which combines architecture optimization with uncertainty.
(b) Incremental construction of probabilistic quality evaluation models which is an enhancement for meta level model-to-model transformation.
(c) Mathematical formulations for the development of ∆ evaluation of probabilistic quality attributes, which increases the efficiency in architectures reevaluation.
7. What are the potential spin-offs or other applications of your work?
- While we focus on collaboration, we store the entire evolution of the system at a fine-grained level. This data can be used for software evolution analysis purpose, such as bug prediction and code ownership analysis.
8. How can the progress of your work be measured?
- The main goal of my work is to provide real-time and fine-grained awareness to developers in the context of multi-developer projects, especially when teams are not collocated.
- An automatic approach such as Helios can help to identify components that are independent of a particular change to the message communication, allowing an engineer to inspect fewer components. This potential effort reduction is based on the precision of the dependence analysis, i.e., the degree to which extracted inter-component and intra-component dependencies correspond to dependencies that can actually occur in the event-based system at runtime. I will show through experimental evaluation that my approach extracts more precise dependences (fewer false positives) than a recovery based on existing message-dependence recovery techniques. I will also develop a justification for the soundness of the approach (that it, that it does not result in false negative dependencies).
9. What have you accomplished thus far?
- The first result achieved was the characterization of software development models reconciliation, by conducting a systematic review of the literature. Regarding collaboration, the guidelines to identify the collaboration characteristics as well as requirements and architecture of a social network tool to support collaboration analysis were specified and this tool is currently under development. Concerning discipline, the initial version of process line engineering approach was developed and published. Another result obtained was the selection of features modeling as a context representation model. In addition, the initial set of context information has been obtained from literature review and author’s experience. Finally, the balance problem was formally described and modeled as a constraint satisfaction problem in order to be implemented in a support decision system.
- (a) A delta evaluation technique for DTMC based reliability evaluation has already been developed, and series of experiments has been carried out for the purpose of validation.
(b) Different optimization meta-heuristics has been studied and their performance in different architecture optimization problems has been experimentally compared.
(c) A comprehensive survey is being carried out on degrees of freedom in architecture design, architecture transformation operators and architecture optimization.
- In our first study, we showed that social tags for tasks in a large
software development project of 175 developers were eagerly adopted
and adapted. This study was published at ICSE 2009 and follow-up ideas
on this work will appear at the NIER track of ICSE 2010. In a second
study that will appear at ICSE 2010, we examined the role of
dashboards and feeds in collaborative software development. At ICSE
2010, we are also organizing a workshop on Web 2.0 in Software
Engineering (Web2SE).
- I have defined and implemented a preliminary version of the approach and evaluated it with event-based applications spanning four different Java-based middleware platforms. I have also developed, formalized, and partially implemented the branch-sensitive inter-procedural forward data-flow analysis that computes message sinks, message sources, and intra-procedural dependencies to analyze message-based systems that utilize type-based filtering (i.e., those in which message types correspond to programming language types.) The implemented algorithm contains currently fourteen critical data flow functions that capture how dependence-related data is extracted from and propagated through the code statements of the analyzed event-based system.
10. What is your schedule for the work remaining?
- The work plan includes to conclude the solution proposal and present the qualifier exam in June/2010. The next step is to finish the construction or adaptation of tool support for all parts of the solution until July/2011. Finally, all this solution should be validated to verify if: context information will be effective in process tailoring; the resulted process is better than what would be adapted without the support of the solution. This validation includes the conduction of some experimental studies, like comparative case studies.
- I am planning to finish the implementation and evaluation of the type-based intra-component data-flow analysis by the end of the third quarter of 2010. By the end of 2010, I am planning to design and implement algorithms that can identify subject-based and attribute-based messages within the code of an event-based component. By the end of the first quarter of 2011, I am planning to (1) adapt the data-flow analysis to handle attribute-based and subject-based message types, (2) implement the analysis, and (3) evaluate the analysis using event-based applications spanning different Java-based middleware platforms. By the end of the summer 2011, I am planning to complete writing the dissertation and defend this work.