• No results found

University of Calgary Schulich School of Engineering Department of Electrical and Computer Engineering

N/A
N/A
Protected

Academic year: 2021

Share "University of Calgary Schulich School of Engineering Department of Electrical and Computer Engineering"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

University of Calgary

Schulich School of Engineering

Department of Electrical and Computer Engineering

Research Area: Software Engineering

Thesis Topics proposed by Dr. Dietmar Pfahl, Assistant Professor

E-mail: dpfahl@ucalgary.ca

URL: http://www.eng.ucalgary.ca/resrch_electrical/Elect_Pfahl.htm

(August 5, 2005)

My research interests focus in software process simulation modeling, value-based software engineering, empirical software engineering, and simulation-based virtual environments for software engineering education, decision support, and theory building. Within these research areas, several research topics are suitable for post-graduate research. Some of the potential thesis topics include:

A. Topics related to “Software Process Simulation Modeling”

The design of development processes that are adequate for specific software development tasks in a specific software organization is a rather complex task. As in other engineering disciplines, models are a powerful tool in supporting the process design task. With the help of models, one can capture and describe the relations between subsets of attributes. Dynamic models can be used to simulate the project and process behavior, i.e. the interaction between attributes and entities at any given point in time. In many traditional engineering disciplines and management science, simulation is a well-established and commonly used tool, in software engineering it is currently becoming an accepted and more widely used tool to support process analysis and improvement, and project planning and control. Particularly, process simulation can help to analyze and better understand the impact of process and people-related attributes on project performance (e.g., measured in terms of cost and duration) and product value (e.g., measured in terms of functionality and quality).

Topic A.1: Design Patterns for Software Process Simulation Modeling Level: MSc/MEng, PhD

Prerequisites/Background: Consult supervisor.

Synopsis: The IMMoS (Integrated Measurement, Modeling and Simulation) methodology supports modelers to cope with the dynamic complexity of software development by providing guidance on constructing simulation models and using them as a source for learning and improvement. Nevertheless, process simulation modeling for applications in software engineering is still considered being too time-consuming and expensive and thus has not yet been widely accepted in spite of its high potential for improving individual and organizational learning and decision-support for managers. One possibility to address this problem is to increase reusability by providing design patterns to software process simulation modelers. The goal of this thesis is to survey existing work in the field, define a pattern description language/formalism, and prove the

(2)

concept by providing an example set of reusable model components. For a PhD thesis, a more comprehensive solution to the problem is expected, incl. thorough empirical validation.

B. Topics related to “Value-Based Software Engineering”

While software engineering practice and research frequently lacks a value-oriented perspective, Value-Based Software Engineering (VBSE) seeks to integrate value considerations into current and emerging software engineering principles and practices. Software-related decisions cannot be extricated from business value concerns in a commercial software development context. A value-oriented approach provides explicit guidance for making products useful to people by considering different people’s utility functions or value propositions. The value propositions are used to determine relevant measures for given scenarios.

Much of current software engineering practice and research is done in a value-neutral setting, in which every requirement, use case, object, and defect is treated as equally important; methods are presented and practiced as largely logical activities; and a “separation of concerns” is practiced, in which the responsibility of software engineers is confined to turning software requirements into verified code. In earlier times, when software decisions had relatively minor influences on a system’s cost, schedule, and value, the value-neutral approach was reasonably workable. But today and increasingly in the future, software has a major influence on most systems’ cost, schedule, and value; and value-neutral software decisions can seriously degrade project outcomes.

In order to overcome this situation, Prof. Barry Boehm and other researchers proposed to switch to a value-based approach to software engineering. As a starting point, Boehm et al. propose to pursue seven key elements of value-based software engineering: 1. Benefits Realization Analysis; 2. Stakeholder Value Proposition Elicitation and Reconciliation; 3. Business Case Analysis; 4. Continuous Risk and Opportunity Management; 5. Concurrent System and Software Engineering 6. Value-Based Monitoring and Control; 7. Change as Opportunity.

Topic B.1: A Tool for the ProSim/RA Method Level: MSc/MEng

Prerequisites/Background: Consult supervisor.

Synopsis: Software process simulation can be used to reason about software value decisions. For example, it can analyze the impact of multivariate risk factors on those project parameters that are of particular interest to the project manager and/or its customers, and it can be combined with a VBSE decision framework involving expert opinion. This can happen either on the input side by eliciting expert estimates on the potential variation of risk factors, or on the output side by using expert estimates for constructing loss functions that are applied to the output probability distributions characterizing the risks of late product delivery, low product quality, and project effort overrun. ProSim/RA is a simulation-based approach to risk assessment, combining software process simulation with stochastic simulation. The goal of this thesis is to develop and evaluate a management tool that implements the ProSim/RA method.

C. Topics related to “Empirical Software Engineering”

Over the last decade, it has become clear that empirical studies are a fundamental component of software engineering research and practice: Software development practices and technologies must be investigated by empirical means in order to be understood, evaluated, and deployed in proper contexts. This stems from the observation that higher software quality and productivity have more chances to be achieved if well-understood, tested practices and technologies are introduced in software development.

(3)

Empirical Software Engineering can be understood as applied software engineering research with a strong empirical component. Reported empirical studies usually involve the collection and analysis of data and experience that can be used to characterize, evaluate and reveal relationships between software development deliverables, practices, and technologies. Over time, it is expected that such empirical results will form a body of knowledge leading to widely accepted and well-formed theories.

<currently no topics available>

D. Topics related to “Simulation-based Virtual Environments for Software Engineering Education”

There is an increasing demand for software project managers in industry. Therefore, efforts are needed to develop the management-related knowledge and skills of the current and future software workforce. In particular, university education needs to provide to their computer science and software engineering (SE) students not only technology-related skills but in addition a basic understanding of typical phenomena occurring in industrial large-scale software projects which are difficult to emulate through student projects.

The potential of simulation models for the training of managers has long been recognized: flight-simulator-type environments (or microworlds) confront managers with realistic situations that they may encounter in practice, and allow them to develop experience without the risks incurred in the real world. As regards the specific topic of software project management, experimental studies have been conducted on using software process simulation models (i.e., Simulation-based Virtual Environments) representing the typical behavior of software development projects.

Topic D.1: Component-Based Generic Software Process Simulator Level: MSc/MEng

Prerequisites/Background: Consult supervisor.

Synopsis: In order to adequately capture different kinds of software development processes, a software process simulation model (SPSM) needs to be easy to change. One possibility to achieve this goal is by constructing a specific SPSM from a well-designed set of parameterized model components. The objective of this thesis is to specify and implement a core set of reusable SPSM components. The reusability shall be demonstrated by modeling at least two sufficiently diverse software processes.

Topic D.2: Web-Based Multi-Project Simulation Game (2-4 Players) Level: MSc/MEng, PhD

Prerequisites/Background: Consult supervisor.

Synopsis: Software development is a dynamic and complex process as there are many interacting factors throughout the lifecycle that impact cost and schedule of the development project, and quality of the developed software product. In addition, software industry constantly faces increasing demands for quality, productivity, and time-to-market, thus making the management of software development projects one of the most difficult and challenging tasks in any software organization. Therefore, it is not surprising, that project management is one of the focus areas to which process simulation techniques have been applied in the domain of software engineering during the last decade.

The potential of simulation models for the training of managers has long been recognized: flight-simulator-type environments (or microworlds) confront managers with realistic situations that

(4)

they may encounter in practice, and allow them to develop experience without the risks incurred in the real world. Considering that the need for software is constantly growing world-wide, and hence the need for experienced and well-trained project managers, it is surprising that experience with using process simulation as a means for software project management education and training has rarely been published. The objective of this thesis is to develop a simulation-based management game for two to four players. Part of the work is the development of a process simulation model (based on existing work), didactic scenarios, a web-based GUI, and a proof of concept (i.e., at least one successful game with lessons learnt recorded). For PhD: more comprehensive game (based on learning theory) and thorough empirical validation.

E. Topics related to “Simulation-based Virtual Environments for Software Engineering Theory Building”

Different to other engineering disciplines, software engineering cannot build theory upon a set of universal laws of nature. It must rely exclusively on mathematical logic, and – to a much larger part – on aggregating isolated evidence resulting from observation and experimentation. This process of data collection and aggregation is extremely time and effort consuming, because for each new development technique or tool there exist infinitively many contexts, where context is defined as the set of possible combinations of product quality goals, time and budget constraints, development process designs, and available staff competencies and skills.

The objective of the proposed research is to accelerate theory building in software engineering by complementing and integrating current empirical research by a Virtual Software Production Laboratory (VSPL). A VSPL consists of a systematically developed set of reusable software process simulation modules which can be composed and tailored in order to run goal-oriented simulation experiments. In particular, the multitude of variations of an experiment, which is often necessary to cover different impact factors when exploring technology alternatives, can easily be performed in a controlled manner by simulation. Consequently, learning cycles can be shortened, as different starting conditions, external influences, or process characteristics can easily be generated.

Topic E.1: A Mechanism for Mapping Characteristics of Products, Processes, and People to a Generic Software Process Simulation Model

Level: MSc/MEng

Prerequisites/Background: Consult supervisor.

Synopsis: In order to function as a hypotheses generator, software process simulation models (SPSM) have to adequately represent the salient characteristics of products, processes, and people. The objective of this thesis is to develop a meta-model that helps to formally capture real-world characteristics in such a way that they can easily transferred into a SPSM. The feasibility of the proposed formalism must be demonstrated by a non-trivial example application.

Topic E.2: Presentation and Visualization of Technology Effectiveness Profiles Level: MSc/MEng

Prerequisites/Background: Consult supervisor.

Synopsis: In order to help experts interpret the output of software process simulation models (SPSM) resulting from comprehensive sensitivity analyses, a way must be found to present/visualize this multi-dimensional output in such a way that strong effects can be distinguished from weak effects. The objective of this thesis is to develop a method and implement a tool that addresses this problem.

(5)

F. Topics related to “Simulation-based Virtual Environments for Software Engineering Decision Support”

Software development and evolution is characterized by multiple objectives and constraints, by a huge amount of uncertainty, incomplete information and changing problem parameters. Success of software development very much depends on providing the right knowledge at the right time, at the right place, and for the appropriate person.

Decision-making is a well-established discipline with origins and close interactions with many other disciplines such as economics, operations research, game theory, probability theory, control theory, psychology, and cognitive science. The emphasis of decision support is to provide as much background as possible for actually making the decision. This is a very essential input for the actual decision-maker.

Decision support has been successfully designed, developed and applied in many areas such as logistics, manufacturing, health care, forestry or agriculture. Why do we also need decision support in software engineering? Some of the major concerns we encountered for current real-world situations in software development and evolution are summarized below:

- Decision problems are often poorly understood and/or described. - Decisions are done at the last moment and/or under time pressure.

- Decisions are not relying on empirically evaluated models, best knowledge and experience and a sound methodology.

- Decisions are made without considering the perspectives of all the involved stakeholders. - Decisions are not explained or made transparent to those involved.

One possibility to address these issues is to use (stochastic) software process simulation models.

Topic F.1: A Mechanism for Calibrating a Generic Software Process Simulation Model to Product, Process, and People Data

Level: MSc/MEng, PhD

Prerequisites/Background: Consult supervisor.

Synopsis: In order to be sufficiently valid for decision support, a software process simulation model (SPSM) needs to be calibrated to actual data. The objective of this thesis is to provide a method that calibrates SPSMs to given data (possibly incomplete). The feasibility of the proposed method must be demonstrated by a non-trivial example application. For PhD a more comprehensive method based on thorough theoretical research and in-depth empirical validation is required.

Topic F.2: A Soft Decision Support System for Software Release Planning Level: MSc/MEng, PhD

Prerequisites/Background: Consult supervisor.

Synopsis: With ReleasePlanner a tool exists that proposes diverse alternatives of requirements allocations to software releases. So far, however, no mechanism exists that would help predict whether an identified set of requirements will satisfy given time, effort and quality constraints. The objective of this thesis is to develop a method that would integrate such a mechanism into the decision-making process. The mechanism shall use software process simulation. The method shall be implemented as a prototypical extension to the existing ReleasePlanner software. For a PhD extensive empirical validation is required.

References

Related documents

Interviewer note: If the student is or was taking courses in an entirely different field that is or was unrelated to their previous education and that previous education was

Under the operations of the World Weather Watch, large amounts of data are exchanged daily on observed weather conditions.While this information is used extensively to feed into

A sound compensation philosophy articulates the roles and responsibilities of both line managers and human resources in the design and administration of a compensation

The questions were developed to examine four dimensions of public attitudes and aspirations by combining the concept of support, commitment, perceived benefits and aspiration for

2012 Leap of Sight, Galleri Olsson, Stockholm, Sweden 2011 Hide-outs, The Company, Los Angeles, CA 2010 Video Screenings , Inman Gallery, Houston, TX.. Sigrid Sandström,

The project aimed at showing the use of web services, rich internet application frameworks in a multi-tier architecture to address the implementation of sports event scheduling

Access World News (AWN) lists nearly 230 transcript sources, though its source list includes only the name of the broadcasting station rather than the individual program titles