Software Engineering and Architecture > JBI > FWN > RUG

New Master Projects on SOA in e-Gov

SASLEG-MSC-A01: Literature review on Variability Management using a systematic research method

Assignment: Variability Management is extensively used in software design and especially software product lines. Software variability is the ability of a software system to adapt to various circumstances. Variability can affect the functional and the non-functional attributes of a system and it can be efficiently used for systems that operate in diverse environments and within different contexts. The use of variability in Service Oriented Architectures (SOAs) though is an emerging research sector and while some steps have been made, there is a lot of potential for innovation in this field.
Objective: This assignment is about using a systematic review method [1] in order to summarize and assess currently existing proposals that utilize variability points for the design of the software architecture of Service Oriented systems.
Profile: You should have basic research and organizational skills and the willingness to learn new things in case you are not familiar with the SOA and Variability domains. This is a good opportunity for a student who is interested to learn about research methodologies (especially empirical research) and delve into the broad domain of software architecture.
References
[1] B.A. Kitchenham, Procedures for performing systematic reviews, Keele University Technical Report TR/SE-0401 and NICTA Technical Report 0400011T.1, 2004. (http://www.idi.ntnu.no/emner/empse/papers/kitchenham_2004.pdf)


SASLEG-MSC-A02: Mapping study on variability in the context of service-oriented architectures

Assignment:
Variability management is important during software design. Variability describes the ability of a software system to adapt to various circumstances and enables systems to operate in diverse environments and within different contexts. Variability affects functional and non-functional attributes of a system. Service-oriented architectures (SOA) on the other hand are a new approach for developing distributed systems. SOA are a standard-based and technology-independent distributed computing paradigm for discovering, binding and assembling loosely-coupled software services. The use of variability in service-oriented architectures is an emerging research area. Even though some steps have been made, there is a lot of potential for innovation in this field.
Objective:
This assignment is about using the mapping study approach to summarize currently existing studies on variability and service-oriented architectures. A mapping study is an empirical research method that aims at classifying and thematic analysis of literature [1]. However, in contrast to a plain literature review, mapping studies explicitly answer general research questions, and have an explicit search process defined by the topic. In the assignment, emphasis can be put on a) variability in service-oriented architectures in general (e.g., variation points in the design of SOA, b) studying software product lines and service-oriented architectures, c) variability of quality attributes in SOA or how quality is impacted by variability, or d) any combination of a) to c).
Profile:
Students interested in this research should have basic research and organizational skills and in particular the willingness to learn new things that they are not familiar with (SOA, variability domain). This assignment is a great opportunity for students who are interested in learning about research methodologies, in particular empirical research, and how it is applied to software engineering (empirical research in software engineering and evidence-based software engineering (http://www.dur.ac.uk/ebse/) is becoming more and more popular). Students will have the opportunity to learn how to design an empirical study, how to conduct the study, and how to report such a study to the research community [2, 3]. Moreover, working on this assignment allows students to delve into the broad area of software architecture.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] David Budgen, Mark Turner, Pearl Brereton, Barbara Kitchenham, “Using Mapping Studies in Software Engineering,” in Proc. 20th Annual Psychology of Programming Interest Group Workshop, 2008, pp. 1-10. (http://www.ppig.org/papers/20th-budgen.pdf)
[2] Barabara Kitchenham, David Budgen, and Pearl Brereton, “The Value of Mapping Studies - A Participant-Observer Case Study,” in Proc. Evaluation and Assessment in Software Engineering (EASE 10), Keele University, UK, 2010, pp. 1-9. (http://www.bcs.org/upload/pdf/ewic_ea10_session2paper1.pdf)
[3] Kai Petersen, Robert Feldt, Shahid Mujtaba, Michael Mattsson, “Systematic Mapping Studies in Software Engineering,” in Proc. Evaluation and Assessment in Software Engineering (EASE 08), Bari, Italy, 2008, pp. 1-10. (http://www.bcs.org/upload/pdf/ewic_ea08_paper8.pdf)


SASLEG-MSC-A03: Mapping study on viewpoints for software architecture description

Assignment:
Architecture viewpoints are commonly used as part of architecture descriptions and help frame the various concerns of different stakeholders [1]. Based on reusable viewpoints, concrete views can be created for a particular system. The use of viewpoints is an emerging research area. Even though some progress has been made, there is a lot of potential for innovation in this field (in particular for developing new reusable viewpoints).
Objective:
This assignment is about using the mapping study approach to summarize currently existing studies on using viewpoints for software architecture description. A mapping study is an empirical research method that aims at classifying and thematic analysis of literature [2]. However, in contrast to a plain literature review, mapping studies explicitly answer general research questions, and have an explicit search process defined by the topic. In the assignment, emphasis can be put on either a) methods to design viewpoints, b) consistency between views and viewpoints, c) tools for viewpoint design, or d) surveying existing architecture viewpoints.
Profile:
Students interested in this research should have basic research and organizational skills and in particular the willingness to learn new things that they are not familiar with (viewpoints and architecture description). This assignment is a great opportunity for students who are interested in learning about research methodologies, in particular empirical research, and how it is applied to software engineering (empirical research in software engineering and evidence-based software engineering (http://www.dur.ac.uk/ebse/) is becoming more and more popular). Students will have the opportunity to learn how to design an empirical study, how to conduct the study, and how to report such a study to the research community [3, 4].
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] ISO/IEC, "Systems and Software Engineering - Architecture Description." ISO/IEC 42010, 2010.
[2] David Budgen, Mark Turner, Pearl Brereton, Barbara Kitchenham, Using Mapping Studies in Software Engineering, in Proc. 20th Annual Psychology of Programming Interest Group Workshop, 2008, pp. 1-10. (http://www.ppig.org/papers/20th-budgen.pdf)
[3] Barabara Kitchenham, David Budgen, and Pearl Brereton, "The Value of Mapping Studies - A Participant-Observer Case Study," in Proc. Evaluation and Assessment in Software Engineering (EASE 10), Keele University, UK, 2010, pp. 1-9. (http://www.bcs.org/upload/pdf/ewic_ea10_session2paper1.pdf)
[4] Kai Petersen, Robert Feldt, Shahid Mujtaba, Michael Mattsson, Systematic Mapping Studies in Software Engineering,"" in Proc. Evaluation and Assessment in Software Engineering (EASE 08), Bari, Italy, 2008, pp. 1-10. (http://www.bcs.org/upload/pdf/ewic_ea08_paper8.pdf)


SASLEG-MSC-A04: Market overview of tools to transform business processes into SOA-based applications

Assignment:
Service-oriented architectures are a standard-based, platform-independent computing paradigm for distributed applications. Creating service-based applications usually starts with modeling business processes which are then translated into the service-oriented system that implements business processes. Several technologies exist to help with this transition (such as WSDL, BPEL).
Objective:
This assignment is about creating a market overview of (commercial and non-commercial) tools that help with the transition from business processes into implementations based on service-oriented architectures (an example of a market overview of tools in a different domain can be found in [1]). In detail, this assignment includes a) creating a list of characterization criteria for tools, b) surveying the market for tools, c) assessing the tools with regard to the list of criteria, d) implement a business process transformation with the identified tools (for this task, we provide some real-world business processes). An emphasis should be put on how tools handle variability and flexibility in business processes and if / how these variabilities are translated into SOA structures.
Profile:
Students interested in this project should have basic research and organizational skills and the willingness to learn about business process modeling, service-oriented architectures and architecture quality. This assignment is a great opportunity for students who are interested in software engineering aspects not related to programming or low-level implementation. Students will have the opportunity to learn about a cutting-edge paradigm (SOA) as well as current tools used in industry. Moreover, by actually implementing business processes, students will get hands-on experience in using tools as well as in developing and implementing business processes.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Volker Hoyer, Marco Fischer, “Market Overview of Enterprise Mashup Tools”, in Proc. 6th International Conference on Service-oriented Computing, Sydney, Australia, 2008, pp. 708-721.


SASLEG-MSC-A05: Market overview of tools to handle variability

Assignment:
Variability describes the ability of a software system to adapt to various circumstances and enables systems to operate in diverse environments and within different contexts. Variability management is important during software design. Several commercial and non-commercial tools exist to help with handling variability, and support designing and managing software product lines (e.g., PureVariants, BigLever).
Objective:
This assignment is about creating a market overview of (commercial and non-commercial) tools that help with handling and managing variability (an example of a market overview of tools in a different domain can be found in [1]). In detail, this assignment includes a) creating a list of characterization criteria for tools, b) surveying the market for tools, c) assessing the tools with regard to the list of criteria, d) implement examples of variability with the identified tools.
Profile:
Students interested in this project should have basic research and organizational skills and the willingness to learn about variability management and product lines. This assignment is a great opportunity for students who are interested in software engineering aspects not related to programming or low-level implementation. Students will have the opportunity to learn about product line engineering as well as current tools used in industry. Moreover, by actually modeling variability, students will get hands-on experience in using tools.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
1. Volker Hoyer, Marco Fischer, “Market Overview of Enterprise Mashup Tools”, in Proc. 6th International Conference on Service-oriented Computing, Sydney, Australia, 2008, pp. 708-721.


SASLEG-MSC-A06: Patterns for variability in software architectures

Assignment:
Identifying, implementing and managing variability in software architectures is becoming more and more important to handle different versions of software. Variability describes the ability of a software system to adapt to various circumstances and enables systems to operate in diverse environments and different contexts. Variability affects functional and non-functional attributes of a system. However, handling variability is recognized as a complex and difficult task. In particular, handling variability in the context of service-oriented architectures (SOA) is still at an immature stage. Architecture patterns on the other hand provide proven solutions to known design problems. Patterns describe the context of a problem, the problem itself, the proposed solution as well as references to related patterns. Therefore, patterns might be applied to support handling variability at the software architecture level and in service-oriented architectures.
Objective:
This assignment is about identifying and developing architectural patterns that help managing variability in (service-oriented) software architectures. Some initial work on variability patterns can be found in literature [1]. In detail, the objectives of this assignments are: a) Define general architectural variability concerns (e.g., where should variability implemented and when); b) Identify existing architectural patterns (such as the ones in [2], [3] or [4]) and how these could be applied to address variability concerns in (service-oriented) architectures (this might require the adaptation of existing patterns); c) Create a collection of variability patterns, if possible supported by a tool to help select patterns based on the concern of interest.
Profile:
Students interested in this project should have basic research and organizational skills and the willingness to learn new things. Moreover, students should have some good programming skills (any programming language or implementation platform).This assignment is a great opportunity for students who are interested in software architectures and patterns as a way of reducing the complexity of developing architectures. Students will have the opportunity to learn about a cutting-edge paradigm (SOA), in combination with variability. Moreover, by developing a tool support, this assignment will allow students to combine research with practical implementation tasks.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Markus Voelter, “Handling Variability”, in Proc. 14th European Conference on Pattern Languages of Programs, Irsee, Germany, 2009, pp. 1-12. (http://www.voelter.de/data/pub/VariabilityPatterns2.pdf)
[2] Thomas Erl, “SOA Design Patterns”, Upper Saddle River, NJ: Prentice Hall, 2009, 814 pages.
[3] Christian Mauro, Jan Marco Leimeister, Helmut Krcmar, “Service-oriented Device Integration – An Analysis of SOA Design Patterns”, in Proc. 43rd Hawaii International Conference on System Sciences, Honolulu, HI, 2010, pp. 1-10.
[4] Juanjuan Jiang, Anna Ruokonen, Tarja Systa, “Pattern-based Variability Management in Web Service Development”, in Proc. 3rd European Conference on Web Services, Vaxi, Sweden, 2005, pp. 83-94.


SASLEG-MSC-A07: Investigating attribute-driven design for service-oriented development

Assignment:
Service-oriented architectures (SOA) are a standard-based, platform-independent computing paradigm for distributed applications and have recently gained popularity in industry as well as academia. As with conventional, non-service-based applications, quality attributes play a central role when developing SOA-based systems and therefore require special attention. One method that emphasizes quality attributes during software architecting is Attribute-Driven Design (ADD). ADD is an approach for defining software architectures in which the design process is based on the software quality attribute requirements [1]. ADD follows a recursive process that decomposes a system or system element by applying architectural tactics and patterns that satisfy desired quality attribute requirements. Even though some work has been done on quality attributes in the SOA context (in particular with regard to Quality of Service – QoS), there is still a need for development methods that take quality attributes as first-class constraints when constructing SOA systems. ADD is a candidate to quality-driven architecting of SOA.
Objective:
This assignment is about investigating the applicability of ADD (or similar methods that emphasize quality attributes in the architecture process, such as QASAR, BAPO/CAFCR, or concepts from RUP) to the development of service-based systems. In detail, the objectives of this assignment are: a) Comparison of ADD to other quality-attribute-driven architecture methods with regard to their suitability for being adapted to develop SOA-based applications; b) Adaptation of the proposed method for developing SOA-based systems (emphasizing SOA-specific quality attributes); c) Illustration of adapted method in a real-world example from the e-government domain.
Profile:
Students interested in this project should have basic research and organizational skills. Moreover, students should have a basic understanding about software architectures and non-functional requirements as well as software development processes. This assignment is a good opportunity for students who are interested in software architectures and methods to develop architectures. Students will have the opportunity to also apply their proposed approach in a real-world example to evaluate its feasibility.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Rob Wojcik, Felix Bachmann, Len Bass, Paul Clements, Paulo Merson, Robert Nord, Bill Wood, “Attribute-Driven Design (ADD), Version 2.0”, Technical report, Software Engineering Institute, CMU/SEI-2006-TR-023, 2008. (http://www.sei.cmu.edu/library/abstracts/reports/06tr023.cfm)


SASLEG-MSC-A08: Linking levels in service-oriented systems

Assignment:
In service-oriented development, architectures and services should be constructed from requirements and business processes. Seamless transitions between business process management solutions and service-oriented architectures are needed. This becomes a challenging task when taking variability in business processes in special consideration. Transition could be done in several ways:
A. Linking different languages at the various levels in service-oriented systems. In the context of e-government, at the business process level, business modeling languages can help model business processes in municipalities. At the architecture level, which is the first step towards implementing the business processes, Architecture Description Languages (ADL) can be used. Therefore, we need to find the most suitable ADL for modeling (SOA-based) systems. Eventually, we also need to find the most suitable language at the service level (i.e., a business process execution language; a starting point is VxBPEL, a new language to enable variability in BPEL to support variation points and variants in a BPEL process [1]). For a seamless transition from business process requirements to service implementation, we need to investigate how the business modeling language is linked to the ADL and subsequently to the business process execution language (a starting point could be investigating languages for variability management in product lines [2]). Here, quality-driven architecting and global quality attributes enable the development of service processes to fit the needs of the business requirements, which can be modeled from a business process modeling environment.
B. Another direction for streamlining the development process from business demands, the architecture and to services is utilizing Model-Driven-Development (MDD). Architectures and services should be constructed from requirements and business processes at the business level without a need for developing new specifications. So far, the SAS-LEG research has resulted in a UML profile to model variability in the architecture of Web service-based systems. This development supports run-time variability management whereby all variability information is stored in a Variation point Interaction Diagram [3].
Objective:
This assignment provides two options: The first option is to explore linking different languages. In detail, this includes: a) identifying a language for describing business processes (some work already exists which can be used as a starting point); b) identifying an ADL that helps represent variability and can be applied to develop SOA-based systems; c) create linking mechanisms between the ADL and the business process modeling language. The second option is to investigate MDD and how it can be applied to streamlining the process from business process specification, to the architecture and to services.
Profile:
Students interested in this project should have basic research and organizational skills and the willingness to learn new things. Moreover, students should have some good background in software architectures. This assignment is a great opportunity for students who are interested in formalisms in software engineering, MDD and architecture description languages. Students will have the opportunity to try out their proposed solutions in real-world problems.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Michiel Koning, Chang-ai Sun, Marco Sinnema, Paris Avgeriou, "VxBPEL: Supporting Variability for Web Services in BPEL", Information and Software Technology, 51(2), pp. 258-269, 2009.
[2] Steffen Zschaler, Pablo Sanchez, Joao Santos, Mauricio Alferez, Awais Rashid, Lidia Fuentes, Ana Moreira, Joao Araujo, Uira Kulesza, "VML* - A Family of Languages for Variability Management in Software Product Lines", in Proc. 2nd International Conference on Software Language Engineering, Denver, CO, 2010, pp. 82-102.
[3] Changai Sun, Rowan Rossing, Marco Sinnema, Pavel Bulanov, Marco Aiello, "Modeling and Managing the Variability of Web-Service-based Systems", Journal of Systems and Software, 83(3), pp. 502-516, 2010.


SASLEG-MSC-A09: Visualizing variability in software architectures

Assignment:
Understanding the software architecture is essential for building and maintaining software systems. However, it is hard to comprehend a software architecture without a visual representation. Visualizing architectures has been one of the most important topics in software visualization, and is not only of interest for architects, but also developers, tester and project managers. As part of architecture design, variability management has to be considered. Variability describes the ability of a software system to adapt to various circumstances and enables systems to operate in diverse environments and within different contexts. Variability affects functional and non-functional attributes of a system. Even though some work on software architecture visualization can be found, explicitly visualizing variability concerns in architectures is still an open issue with potential for innovation.
Objective:
This assignment is about developing a software application for visualizing software architectures, with an emphasis on visualizing variability concerns. Some work already exists in literature, e.g., 2D or 3D representations of software architectures (such as virtual environments) or visualizing software architectures as buildings that allow browsing through different levels of abstraction (examples can be found in [1] or by browsing SOFTVIS – the ACM Symposium on Software Visualization, or VISSOFT – the IEEE International Workshop on Visualizing Software for Understanding and Analysis). Existing work can be used as a starting point and then be extended towards the visualization of issues related to variability (such as variation points, variants or any other variability-related concerns). Based on personal interests, students have the choice to either a) develop a sophisticated visualization tool for variability and variability-related concerns in software architectures, or b) implement basic variability concepts and partially evaluate the tool by trying it out on real users.
Profile:
Students interested in this project should have good programming skills, preferably in programming graphical or visualization software. Any implementation framework can be used. Moreover, students should have the willingness to learn new things that they are not familiar with (e.g., the architecture variability domain). Also, creativity and the ability to work independently are essential when working on this assignment. This assignment is a great opportunity for students who are interested in learning about software architectures and at the same time work on an exciting project to implement a useful tool for practical application.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Yaser Ghanam, Sheelagh Carpendale, “A Survey Paper on Software Architecture Visualization”, Technical report, https://dspace.ucalgary.ca/bitstream/1880/46648/1/2008-906-19.pdf, 2008.


SASLEG-MSC-A10: Gaming environments to explore software architectures

Assignment:
Understanding the software architecture is essential for building and maintaining software systems. However, it is hard to comprehend a software architecture without a visual representation. Visualizing architectures has been one of the most important topics in software visualization, and is not only of interest for architects, but also developers, tester and project managers.
Objective:
This assignment is about developing a gaming environment for exploring and analyzing software architectures. Some work already exists in literature, e.g., 2D or 3D representations of software architectures (such as virtual environments) or visualizing software architectures as buildings that allow browsing through different levels of abstraction (examples can be found in [1] or by browsing SOFTVIS – the ACM Symposium on Software Visualization, or VISSOFT – the IEEE International Workshop on Visualizing Software for Understanding and Analysis). Based on personal interests, students can develop a gaming tool and partially evaluate the tool by trying it out on real users. Existing tool kits such as [2], [3] or [4] can be used. For example, UML diagrams can be used as input into a gaming environment to walk through, explore and analyze the architecture. Furthermore, activity diagrams could be converted to a rich visualization. An example of such an environment for architecting buildings can be found at http://www.udk.com/showcase-architectural.
Profile:
Students interested in this project should have good programming skills, preferably in programming graphical or visualization software. Any implementation framework can be used. Also, creativity and the ability to work independently are essential when working on this assignment. This assignment is a great opportunity for students who are interested in learning about software architectures and at the same time work on an exciting project to implement a useful tool for practical application.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Yaser Ghanam, Sheelagh Carpendale, "A Survey Paper on Software Architecture Visualization", Technical report, https://dspace.ucalgary.ca/bitstream/1880/46648 /1/2008-906-19.pdf, 2008.
[2] http://udn.epicgames.com/Three/DevelopmentKitHome.html
[3] http://www.udk.com/documentation
[4] http://msdn.microsoft.com/en-us/aa937791


SASLEG-MSC-A11: Variability in open source software systems

Assignment:
''Variability describes the ability of a software system to adapt to various circumstances and enables systems to operate in diverse environments and within different contexts [1-4]. Many projects are subject to variability but do not systematically handle variability.
Objective:
This assignment is about studying open source software systems (World Press, OxWall, Drupal) and identifying how these software systems handle variability. The goal is to define a list of variability handling approaches used by these systems and recommend best practices for handling variability in general. Students are encouraged to apply an empirical research method [5], such as case study research [6, 7].
Profile:
Students interested in this research should have basic research and organizational skills and in particular the willingness to learn new things that they are not familiar with. This assignment is a great opportunity for students who are interested in learning about research methodologies, in particular empirical research, and how it is applied to software engineering (empirical research in software engineering and evidence-based software engineering (http://www.dur.ac.uk/ebse/) is becoming more and more popular). Students will have the opportunity to learn how to design an empirical study, how to conduct the study, and how to report such a study to the research community.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] L. Chen, M.A. Babar, Variability Management in Software Product Lines: An Investigation of Contemporary Industrial Challenges, in: 14th International Software Product Line Conference, Springer Verlag, Jeju Island, South Korea, 2010, pp. 1-15.
[2] J. Estublier, G. Vega, Reuse and Variability in Large Software Applications, in: 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, ACM, Lisbon, Portugal, 2005, pp. 316-325.
[3] S.D. Kim, J.S. Her, S.H. Chang, A Theoretical Foundation of Variability in Component-based Development, Information and Software Technology, 47 (2005) 663-673.
[4] M. Svahnberg, J. van Grup, J. Bosch, A Taxonomy of Variability Realization Techniques, Software - Practice and Experience, 35 (2005) 705-754. [5] S. Easterbrook, J. Singer, M.-A. Storey, and D. Damian, "Selecting Empirical Methods for Software Engineering Research," in Guide to Advanced Empirical Software Engineering, 1st ed, F. Shull, J. Singer, and D. I. K. Sjoberg, Eds. Berlin: Springer, 2008, pp. 285-311."
[6] P. Runeson and M. Hoest, "Guidelines for Conducting and Reporting Case Study Research in Software Engineering," Empirical Software Engineering, vol. 14, pp. 131-164, April 2009.
[7] J. Verner, J. Sampson, V. Tosic, N. A. A. Bakar, and B. Kitchenham, "Guidelines for Industrially-Based Multiple Case Studies in Software Engineering," Proc. Third IEEE International Conference on Research Challenges in information Science, IEEE Computer Society, 2009, pp. 313-324.


SASLEG-MSC-A12: Sustainable software engineering

Assignment:
Software can contribute to a more sustainable world in several ways (e.g., by decreasing power consumption by being more energy efficient, hence using lesser resources and causing fewer CO2 emissions, or by making its supported processes more sustainable). On the other hand, software development and distribution process themselves could become more sustainable. As sustainable software engineering this is a rather new topic within the software engineering community, the assignment should not only review existing work, but critically investigate how software engineering can contribute to a more sustainable world.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
Some references:
[1] N. Amsel, Z. Ibrahim, A. Malik, and B. Tomlinson, "Toward sustainable software engineering," Proc. 33rd International Conference on Software Engineering, IEEE Computer Society, 2011, pp. 976-979.
[2] B. Penzenstadler, A. Fleischmann "Teach sustainability in software engineering," Proc. 24th IEEE Conference on Software Engineering Education and Training, IEEE Computer Society, pp. 454-458.
[3] http://www.cs.toronto.edu/wsrcc/Papers.html
[4] http://www.cs.toronto.edu/wsrcc/WSRCC1/Papers.html
[5] http://see.ws.dei.polimi.it/program.html


SASLEG-MSC-A13: Development of a software tool to support systematic literature reviews in software engineering

Assignment:
A systematic literature review (SLR) is an empirical research method that helps scientists answer specific research questions by collecting all available evidence on a topic (http://www.dur.ac.uk/ebse/). The aim of an SLR is to do this in an objective and unbiased manner. Moreover, SLR help consolidate current research, aid understanding of the nature of a field, and provide robust, reliable and repeatable techniques for addressing scientific questions [1]. Performing an SLR usually consists of developing research questions, developing a study protocol, a systematic exhaustive literature search, data extraction, data synthesis, production of a report, and the dissemination of results [2]. However, performing an SLR is challenging due to the amount of data to be managed (in particular during data extraction and synthesis), the collaboration of different researchers working on one SLR, as well as the analysis of the data collected in the SLR.
Objective:
This assignment is about developing a sophisticated tool that helps practitioners and researchers perform an SLR. In detail, this assignment involves a) the elicitation of requirements for an SLR tool from experts (e.g., through a survey in the software engineering research community), b) design and implementation of the tool, c) testing the tool. The tool should be developed as open source, using open standards, and be as platform-independent as possible. It should allow import and export functions to other tools, such as Endnote, Excel, etc., as well as support the collaboration of more than one person working on the SLR.
Profile:
Students interested in this research should have basic research and organizational skills and advanced programming skills. This assignment is a great opportunity for students interested in learning about research methodologies and at the same time work on a challenging software development project. Students will have the opportunity learn about SLR as an empirical research method, design a little empirical study (in form of a survey) themselves to collect requirements for the proposed tool, and implement the software tool.
Contact:
If you are interested in this project or have any questions, please do not hesitate to contact Matthias Galster (m.r.galster@rug.nl) or Paris Avgeriou (paris@cs.rug.nl).
References:
[1] Barbara Kitchenham, Pearl Brereton, David Budgen, Mark Turner, John Bailey, Stephen Linkman, "Systematic Literature Reviews in Software Engineering – A Systematic Literature Review," in Information and Software Technology, 51(1), 2009, pp. 7-15.
[2] Barbara Kitchenham, Stuard Charters, "Guidelines for Performing Systematic Literature Reviews in Software Engineering," Technical report, Keele University, EBSE 2007-001, 2007.