Teachers available for thesis supervising and their field of interest.
Software verification and validation, software testing, software quality, software metrics, software process improvement, empirical software engineering, data mining software repositories, search-based software engineering
Global software engineering, Global software development, Outsourcing, Offshoring, Risk management, Business processes, Alignment of business, Architecture, Processes and organization (BAPO)
Requirements Engineering, Software Design, Object-Oriented Design, Software Quality, Software Measurement, Software Process Improvement, Software Project Management, Traceability, Agile/Lean Development, Computer Science Education
Software Product Management, Requirements Engineering Education and Productivity, Requirements Communication (Product Development and Tenders)
Thesis opportunities in the following areas (Fall semester 2012):
|Nina D Fogelström||0||
Value-based software development, Agile software development, Global software development, Requirements engineering & product management, Software quality management & software metrics, Software testing, verification and validation
Scope management, Technical product management, Software product management, Requirements engineering, Distributed development, Quality assurance, Process assessment, Process improvement, Innovation, Empirical, Market-driven product development of software intensive products, Software and technology product management
Energy systems, District heating and cooling, Multi agent systems, Artificial intelligence, Mathematical optimization, Simulation, Wireless communication, Routing protocol
Quality management, Project management, System verification, Supplier management, Process and process improvement, Defect classification and testing, Quality attributes
Global software engineering, Global software development, Outsourcing, Offshoring, Insourcing, Empirical studies, Agile/Lean software development, Extreme programming, Scrum
Value-based decision-support for software development and management, Technical product management, Software product management, Requirements engineering, Value-based process assessment and improvement, Innovation, Software and technology product management. More topics for master thesis
Model Driven Development (MDD), UML, UML-based software development, Model transformations, Consistency issues in MDD, Domain specific modeling, Empirical methods in SE, Education related to modeling and MDE, Software product lines
Empirical Web engineering (Web cost estimation, Web usability, Web quality, Web process improvement, Web size measurement, human aspects in Web development, Agile development), Empirical Software engineering (Software cost estimation, software quality, software process improvement, software productivity measurement, human aspects in Software development, Agile development), Evidence-based Web/Software Engineering, Cloud Computing, Knowledge management, Computer Science and Software Engineering education
Lean software development, agile software development, software measurement, process improvement, software testing, verification and validation, empirical software engineering, evidence based software engineering, requirements engineering, software product line engineering, software variability modeling
Global software engineering, Global software development, Outsourcing, Offshoring, Insourcing, Global delivery models, Empirical studies, Software process improvement, Risk management, Agile software development
Requirements engineering, Software architectures, Quality assurance, Process improvement, Software product lines, Software engineering decision support, Software architecture evaluations, Quality attributes, Empirical, Large scale software engineering
Software Requirements, Software Design, Software Construction, Software Testing, Software Maintenance, Software Configuration Management, Software Engineering Management, Software Engineering Process, Software Engineering Tools and Methods, and Software Quality
Software Process Improvement and Assessment, Requirements Engineering, Verification and Validation, Software Testing, Alignment, Information flow in software projects, Data mining software repositories
Software verification and validation is a broad field concerned with activities such as formal technical reviews, inspections, walk-throughs, audits, testing and techniques for software quality measurement. Another possible way to understand software verification and validation activities is to categorize them into static and dynamic techniques complemented with different ways to conduct software quality measurements. Static techniques examine software artifacts without executing them (e.g., inspections and reviews) while dynamic techniques (software testing) executes the software to identify quality issues. Software quality measurement approaches, on the other hand, helps in management decision-making process (examples include assistance in deciding when to stop testing).
Contact information: firstname.lastname@example.org
In todays business environment, software development projects are increasingly conducted globally distributed because companies continually look for labor cost advantages, closer time-to-market or have a lack of resources. However, global software development projects are confronted with several challenges. For example language barriers and cultural differences need to be resolved as well as different understandings of business logic. Additionally, widely divergent time zones, and insufficient quality of technical infrastructure may cause problems. To overcome these challenges we need a clear understanding of the different existing global software development settings and their influence on the outcome of the project.
Contact information: email@example.com
Software Engineering is about the systematic (in contrast to ad-hoc) development of high quality software in an economic way. A lot of research in this area deals with the development, improvement and evaluation of methods, approaches and tools to produce better products in cheaper, faster or more predictable ways.
There are numerous approaches to software process improvement (SPI) and one has to keep in mind that changing a process affects the whole organization. It is therefore very important to analyze trade-offs carefully and take into account human factors. After all, software is built and managed by humans.
Contact information: firstname.lastname@example.org
Software Product Management: The product manager plays a key role to ensure that a product supports company strategy and satisfies market needs beyond a single development project. Software product management (SPM) is the discipline concerned of planning and managing the conception, development, distribution, and evolution of long-living software with a potentially significant number of users and customers.
Requirements Engineering Education and Productivity: Requirements engineering practices should have beneficial immediate and long-term effects for the company. We are collaborating with innovative companies and universities to understand how practices and their adoption affect engineering efficiency and productivity.
Requirements Communication: Requirements communication is the process of conveying needs from a given customer to a given supplier that enables the supplier to deliver a solution that is accepted by the customer. A product manager or a government agency can be a customer. An in-house development team or an external company may be a supplier.
Other: See Dr Samuel A. Frickers home page for more information.
Contact info: email@example.com
As requirements are direct products of the requirements engineering (RE) process, inadequacies herein can have severe consequences. These consequences are mainly due to the fact that problems in requirements filter down to design and implementation, and several sources indicate that inadequate requirements are the leading source for project failure. If RE is studied in the context of a markt-driven incremental product development situation, which is becoming increasingly commonplace in software industry, requirements engineering is also a prerequisite for release planning activities, i.e. the de3cision abou which customers get what features and quality at what point in time, which in itself is a major determinant of the success ot a product.
The importance of having an adequate RE process in place that produces good enough requirements can be considered as crucial to the successful development of produts, whether it be in a bespok or market-driven development effort. There are however clear indications that requirements engineering is lacking in industry since inadequacies in requirements is a major determinant in project failure.
Contact information: firstname.lastname@example.org
The challenge is to make good decisions and to achieve what is required and doing so in an efficient way. This brings the challenge to manage quality, project, and processes in an efficient way. The quality issue is a re-occurring challenge that requires a well-planned strategy, it is not good enough to make the best possible quality, one need to meet sufficient quality in an efficient way. One way to improve the organisation is to look and analyze the defects that has been made, and through that information point out areas for improvement.
All processes are in constant need for improvements, this being internal or supplier processes. The strategy as well as relations with suppliers are highly important and crucial to get initially correct since it is both costly and time consuming to redo.
Contact information: email@example.com
Global Software Engineering (GSE) has received attention mainly due to its perceived benefits such as reducing the development time by benefiting from follow-the-sun software development, closeness to market, and accessing a large pool of skilled developers. In contrast, many risks are also associated with GSE where people with potentially different cultural backgrounds and different social norms work together over a physical distance to solve some problems.
On the other hand, in striving for more efficient software development approaches, Agile values and principles were formulated aiming at responding flexibly and quickly to changes in customers needs.
Further research is required in order to investigate under which circumstances Agile is efficient (e.g. whether Agile methods/practices are applicable in all GSE settings) as well as to propose methods for mitigating challenges due to distance.
Contact information: firstname.lastname@example.org
Please note that this description relates to a specific project proposal. A cornerstone of the energy systems of the future is the ability to communicate sensor data among all participating system entities. This sensor data is used in order to optimize the operational and strategical behaviour of the system. Historically such communication is done by cable, but wireless technologies are continuously gaining ground. The advantages using wireless are numerous, but there are still a few challenges in order to make such systems work smoothly. One such challenge relates to the conservation of battery power in wireless nodes. Normally most of the power usage in a wireless node is related to communication behaviour. Hence it is very important to make sure that the wireless nodes communicate in such a way as to minimize power usage. Wireless nodes often communicate by forming network structures, and the layout of these structures can greatly affect the levels of power required for the data to traverse the network. The aim of this project is to develop an algorithm for automatically creating such network structures in relation to minimize power usage while maintaining required levels of communication availability among wireless sensor nodes. The project is done in cooperation with an industrial partner, which allows for practical experimentation in real-life settings.
Contact information: email@example.com
Value-based decision-support for software development and management
It is very hard to estimate and calculate software value, and this is especially true for embedded or hardware intensive products. In many cases, the traditional view has been that the software part of a product was the poor cousin that had to be there, bundled with the hardware, but without any real value in itself. Examples of this can be seen in many embedded fields like the automotive domain or in the automation domain. Thus, at best software was handled as a cost and there was no real perception of the software value beyond immediate sales of the product.
In todays competitive world, however, software has become the main competitive advantage, enabling faster and cheaper innovation as well as product differentiation, and at the same time hardware is becoming standardized. Simultaneously the size and complexity of software in products are increasing, and so is the impact of software development decisions on the overall product offering. That is, any decision taken regarding software (e.g. what features to realize, what quality to offer, or what technology to choose) will impact the entire products life cycle and value, not to mention that it limits future possibilities and direction of the product and business. This situation gives rise to many decision-making challenges for industry practitioners, for example, what is the actual value of software? How does the realization of one feature or quality aspect influence the overall value of the product offering, where short-term potential sales and revenues are only small parts of the complete picture?
In todays competitive environment, innovations play a major role for any product in the market by creating and sustaining competitive advantage, opportunities for company to evolve market trends, and expand the client base. However, for realizing these innovative features market uncertainty can become a major risk. A strategic and proactive approach in decision making becomes essential and this increases a product managers responsibilities. He has to think and act by analyzing various possibilities and perspectives to balance product value, company vision and mission, targeting and creating a market, killing market competition, and enhancing a products portfolio; but all in a specified time with available budget and resources keeping in view the with inherent uncertainty and risks involved.
Contact information: firstname.lastname@example.org
Modelling is playing essenatial role and is used as a basic tool in any engineering discipline. It is also becoming recognized as such in software engineering in particular. Introducing the Model Driven approaches, technology and tools reflects this. There is a number of ongoing initiatives towards both theoretical foundations, as well as practical realization of the idea. And in the research oriented towards software engineering, the usage of empirical methods is starting to play a significant role.
Basic areas of research interest:
I. Modeling in Software Engineering (SE):Model Driven Engineering (MDE), Model Driven Development (MDD), UML and UML-based Software Development, Model Transformations, Consistency Issues in MDD, Domain Specific Modeling.
II. Empirical Methods in SE: Empirical investigation of different phenomena in SE using surveys, in particular based on Hierarchical Cumulative Voting (HCV) and experiments.
III. Education related to Modeling and MDE: Best practices, methods, tools
IV. Software Product Lines (SPL): model driven SPLs
Contact information: email@example.com
Web and Software Engineering are described as disciplines that require the use of scientific, engineering, and management principles and systematic approaches with the aim of successfully developing, deploying and maintaining high quality systems and applications. Engineering is widely taken as the disciplined application of scientific principles to solving practical problems, where scientific principles are the result of applying a scientific process.
The scientific process supports knowledge building, which in turn involves the use of empirical studies that test models previously created, in order to ensure whether the current understanding of the discipline is correct.
Therefore empirical studies and experimentation in both Web and Software Engineering are essential. Such studies can be classified mainly as surveys, case studies, formal experiments and post-mortem studies, and the motivation and justification for carrying them out should be grounded on an evidence-based approach (e.g. systematic literature reviews).
Lean and agile software development
Manufacturing and product development have achieved vast improvements in terms of quality and efficiency using lean and agile manufacturing, Approaches in these areas (e.g. value stream mapping, Kanban, product backlogs, cross-functional teams, value analysis) have to be adapted to the software engineering context to be useful. Most of the approaches are directly connected to systematic process improvement (e.g. value stream mapping).
Verification and validation
Verification and validation activities aim at discovering defects. Resources for conducting the activities are limited, and exhaustive testing is not possible. Hence, we need to be able to prioritize what we are testing, and choose efficient methods to do so.
Evidence based software engineering
Evidence based software engineering focuses on approaches to identify and aggregate evidence from empirical studies. The area is relatively new and has been used intensively in medicine (evidence based medicine). Instruments (such as systematic reviews, meta analysis, etc.) need to be improved in order to allow for an objective integration of evidence in the software engineering domain.
Product line engineering and variability
Customers share needs, but they also have individual needs. Hence, we need a high degree of reuse, but at the same time a configurable product that can cater individual customer needs, which is achieved through variability. Many applications (especially in the automotive domain) are variant rich, which has major implications on all development activities, such as requirements engineering, design, implementation, and quality assurance.
Contact information: Kai.firstname.lastname@example.org
Tight budgets and shortage in resources motivate many companies to engage in Global Software Engineering. While there are many assumed benefits of offshoring, many studies however have identified that these benefits are neither clear‐cut nor can their realization be taken for granted. Due to a growing amount of failed projects research seeks the answers to questions related to evaluation of short-term and long‐term effects of offshoring, guidelines for building successful cross-border collaborations, applicability of traditional development methods in global environments, true benefits of offshoring software development: what, why, when and how to offshore, what works and what does not. These studies are expected to shed the light into the state-of-practice in relation to decision-making, cost and effort estimation, software engineering processes and work allocation strategies, and human factors including such topics as motivation, trust, culture among others.
Contact information: email@example.com
As the size of software systems grow, it is important to create sufficient decision support material without overlading the development organisation with too much administration. Thus, this involves an understanding of which decisions that are relevant to take, the information needed in order to take these decisions, and an understanding of the toolbox available for taking that particular type of decision. This spans the entire development cycle, starting with the decisions taken and the information gathered during the requirements engineering phase, later manifested in the software architecture, possibly in a software product line. In a sound engineering tradition, these decisions are then validated, with the help of various quality assurance activities, including evaluations of the software architecture, and any deficiencies found are addressed through controlled and measured process improvement activities.
Contact information: Mikael.Svahnberg@bth.se
Please see http://www.computer.org/portal/web/swebok for a more detailed description of each keyword.
Richard Torkar has during the last years supervised students in all knowledge areas as defined by SWEBOK, and also a number of related areas such as: Computer Science, Management, Statistics, Project Management (especially with a focus on software development projects) and Quality Management.
Contact information: firstname.lastname@example.org
Other: See http://www.torkar.se for some examples of areas where Richard Torkar has done research.
Software development is a human-centered effort in which processes orchestrate the collaboration and coordination between different stakeholders to reach a common goal: providing a software solution to a real-world problem.
Software requirements identify the needs and limitations placed on a software product. Requirements Engineering denotes the systematic handling of those requirements, including their elicitation, analysis, prioritization, validation and maintenance. Verification & Validation, on the other hand, denotes a process determining whether the developed product fulfills its intended purpose and meets the identified software requirements. Even though the respective areas are mature and have seen a lot of research, their interplay and connections have been less explored. Therefore, studying and improving the efficiency and effectiveness of the coordination and alignment between Requirements Engineering and Verification & Validation is of paramount importance for both research and practitioners.
Available Master Thesis projects: http://www.bth.se/com/mun.nsf/pages/master-thesis-projects
Contact information: email@example.com