Schedule: May 28-29, 2012. 17:00 a 21:00
Lecturer: Ignacio Panach Navarrete (Universidad Politécnica de Valencia)
The course “Model-Driven Development: a practical experience” aims at introducing students to a model-driven software development environment from a practical point of view. These lessons start with a discussion of the methodological aspects necessary to work with holistic models, i.e., models that can represent all the relevant system characteristics combinedly. Next, we apply these concepts to a real industrial tool called INTEGRANOVA, which can generate fully-functional software systems from a set of models. Using INTEGRANOVA, we are going to build conceptual models that abstractly represent the system. These models are the input for a model compiler that can automatically generate the code that implements the system. Every model used in the course is compliant with the UML (the de-facto standard for conceptual modeling); therefore, it is convenient to have previous knowledge of UML (although a brief introduction will be offered). The course evaluation consists of several conceptual modeling exercises carried out during the lessons, as well as a knowledge test and a case development that puts in practice the MDD framework. Above all, the course is intended to provide an opportunity to students to know more about a novel but rapidly-growing software development paradigm, so as to prepare them for competences and CASE-tool knowledge that can be required in a close future.
Evaluation: Final practical case assignment.
Schedule: May 10, 2012. 15:00-17:00
May 11, 2012. 15:00-19:00
May 14, 2012. 19:00-21:00
May 16, 2012. 19:00-21:00
Lecturer: Emilia Mendes (Zayed University, United Arab Emirates)
Evaluation: Individual assignment.
To date the development of industrial software applications has been in general ad hoc, resulting in poor-quality applications, which are difficult to maintain. Some of the main reasons for such problems are unawareness of suitable design and development processes, and poor project management practices.
As the reliance on larger and more complex software applications increases so does the need for using methodologies/standards/best practice guidelines to develop applications that are delivered on time, within budget, have a high level of quality and are easy to maintain. To develop such applications software development teams need to use sound methodologies, systematic techniques, quality assurance, rigorous, disciplined and repeatable processes, better tools, and baselines. Software engineering aims to meet such needs.
Software engineering can be described as the use of scientific, engineering, and management principles and systematic approaches with the aim of successfully developing, deploying and maintaining high quality software applications.
Engineering is widely taken as a disciplined application of scientific knowledge for the solution of practical problems. A few definitions taken from dictionaries support that:
• “Engineering is the application of science to the needs of humanity. This is accomplished through knowledge, mathematics, and practical experience applied to the design of useful objects or processes.” (Wikipedia, 2004)
• “Engineering is the application of scientific principles to practical ends, as the design, manufacture, and operation of structures and machines.” (Houghton, 1994)
• “The profession of applying scientific principles to the design, construction, and maintenance of engines, cars, machines, etc. (mechanical engineering), buildings, bridges, roads, etc. (civil engineering), electrical machines and communication systems (electrical engineering), chemical plant and machinery (chemical engineering), or aircraft (aeronautical engineering).” (Harper, 2000)
In all of the above definitions, the need for “the application of scientific principles” has been stressed, where scientific principles are the result of applying a scientific process (Goldstein and Goldstein, 1978). A process in this context means that our current understanding, i.e. our theory (hypothesis) of how best to develop, deploy, and maintain high-quality software applications, may be modified or replaced as new evidence is found through the accumulation of data and knowledge.
Therefore, the objective of this seminar is to discuss the need for empirical investigations in software engineering, which is motivated by the very definition of Engineering. It also details three main types of empirical investigations – surveys, case studies, and formal experiments, and provides numerous practical examples illustrating when each empirical investigation can be used.
Schedule: May 3, 2012. 15:00-17:00 (Oscar Dieste)
May 7, 2012. 19:00-21:00 (Claes Wohlin)
May 8, 2012. 17:00-19:00 (Claes Wohlin)
May 9, 2012. 19:00-21:00 (Claes Wohlin)
May 10-11, 2012. 15:00-17:00 (Claes Wohlin)
Lecturers: Claes Wohlin (Blekinge Technical Institute, Sweden), Oscar Dieste (Universidad Politécnica de Madrid).
Evaluation: Individual assignment.
Systematic literature reviews and systematic mapping studies are becoming more and more common in software engineering. These types of studies are secondary studies, i.e. the build on studies conducted by other researchers. However, secondary studies come with challenges. Thus, it becomes more and more important to better capture lessons-learned from conducting such studies and understand the reliability of them. The part of the seminar is focused on experiences from conducting systematic literature reviews and systematic maps. The challenges and some pitfalls are highlighted. The part is devoted to discussing reliability of secondary studies. In particular, an example of a reliability study is presented as part of the discussion. The example presents a comparison of two systematic mapping studies. It is based on an in-depth study of two published mapping studies on software product-line testing. It is found that despite the two studies addressing the same topic there are quite a number of differences when it comes to papers included in the study and in terms of classification of the papers included in the two mapping studies. From this it is concluded that secondary studies are important, but their reliability cannot simply be taken for granted. The findings also lead to five conjectures that further research has to address to make secondary studies even more valuable to both researchers and practitioners.
Schedule: March 20-22, 2012. 16:00-19:00
Lecturers: Antonio Rodriguez Perales (IBM), Gabriela Zornoza (IBM) y Ana Moreno (UPM).
IBM Rational® Team Concert is IBM Rational’s first offering based on the Jazz platform that enables real-time collaboration between software teams. Rational Team Concert provides a fully integrated change, configuration and build management software delivery environment along with integrated Agile project planning and dashboards providing metrics and reporting.
In this seminar we will go through most of the key functionalities of Rational Team Concert in a software development environment and we will see with an example how it can help a team to follow a methodology and best practices.
Evaluation: After attending the seminar students will need to present a work related to the seminar content.
Schedule: January 13, 2012. 15:00-20:00
Lecturers: Alan Brown (IBM), Gabriela Zornoza (IBM).
This seminar will be composed by two different presentations about some of the most relevant issues in actual software development: agility and requirements. The first talk will address how to manage agile process in a big organization like IBM, where issues like outsourcing and contracts are intrinsic part of the organizational rules.
The second presentation will deal with the problem of software requirements elicitation and specification in big projects and big organizations. IBM will describe the process they follow for these activities and how it can be supported by tools like IBM-Rational Composer.
Evaluation: After attending the seminar students will present a summary with the main ideas gathered.
Schedule: October 2011 - January 2012.
Professors: Natalia Juristo, Oscar Dieste, in collaboration with Bertrand Meyer.
This seminar will have as an objective to make students know the challenges, advantages and inconvenients of distributed software development. In order to attain such objective, the students will carry out a development project of limited size, in collaboration with teams in universities from different countries. The participating universities are the following ones:
Team interaction with be carried out via email and Skype. Throughout the semester, students will have to submit 5 assignments with the following development products: Vision document, software requirements specification, contracts, code and test cases.
Evaluation: Each assignment will be evaluated and the final grade will be the mean value of the assignment grades.