Topics offered for PhD supervision

Updated 04.07.2018 11:05

NEW! We have an open call for PhD student researcher in evolving service-based systems linked to a recently funded AFarCloud ECSEL project.

The following broad topics are offered as PhD dissertation themes under my supervision, mostly within our Reliable Software Architectures research group. The concrete topic is always negotiable — if the list does not fit exactly and you are interested in something related, just drop me a line.

Note: Whenever I use the term “component”, it primarily means _a black-box reusable piece of software but can also denote a “module” as in modular programming (think C or Ada), “service” as in service-oriented architectures (think SOAP/WSDL or REST), or possibly even “agent” as in autonomous systems._

Software process analysis and modeling

(lang:cz Analýza a modelování softwarových procesů)

Motivation: Software processes range from simple and ad-hoc to complex and over-specified. The development has its patterns and rules, but they are very often not known or violated in practice; the symptoms of problems that this causes are not recognized early enough.

When you find yourself in the middle of a running project, how do you know which methodology the project actually uses (possibly versus which is the officially declared one), and how do you find out which possible discrepancies and methodology issues to tackle first? Could we use existing project data from bugtracking / ALM tools and empirical research methods to detect and describe potential good/bad practices and the consequent benefits/risks for a given project?

Concrete example topics:

Efficient software component representation, verification and matching

(lang:cz Reprezentace, ověřování a porovnávání softwarových komponent s ohledem na efektivitu)

Motivation: Compilers and strongly typed languages give us basic level of assurance that a (monolithic) system will not encounter run-time failures due to mismatches on syntactical contract level. This is however not the case in dynamically composed modular systems, and reliability assurance is a challenge for safe assembly and updates in near future component/service-based mobile applications (cf. EZdroid) and/or highly dynamic re-configurable systems (SOA).

How can we design and improve component representation (meta-data), methods for its extraction from documentation and/or implementation and use for architectural consistency assurance? Can we devise methods for matching components (using these representations) within an application as well as with user requirements, which are computationally efficient for e.g. resource-constrained and dynamic scenarios?

Concrete example topics:

Architecture and Methodologies for Adaptive Software with Safety Requirements

(lang:cz Architektury a metodiky pro adaptivní software s požadovanou úrovní bezpečnosti)

Motivation: Current automotive, railway and similar systems are increasingly software-driven, composed of a mix ranging from safety-critical to infotainment elements. New versions of software parts need to be installed, and its architecture needs to enable adaptation to changing circumstances. Software systems tend to grow in size and complexity, and this trend has hit the safety-critical world as well — a modern high-end car now hides more LOC under its hood than a most popular desktop operating system did a decade ago.

This blend poses many challenges from the technological and methodological point of view: we would like to have a pleasant user experience yet we must not compromise system (and therefore user) safety while we have difficulties comprehending the system’s complexity. How should we design, develop, and maintain such systems? Where are methods which are sufficiently simple for everyday use yet profound in their foundations (so we can firmly rely on them)?

Concrete example topics:


(Previous Topics)

Visualization of complex modular software systems (2013+)

(lang:cz Vizualizace komplexních modulárních softwarových systémů)

Motivation: Very little advances have been made in visual representations that would scale with the structural complexity and size of current applications (thousands of components in flat diagram); UML is vastly inadequate.

Goals:

The topic mixes aspects of technological, information visualization and usability areas.

PhD students

Software component models for reliable composition (since ca 2010)

(lang:cz Komponentové modely pro spolehlivou kompozici software)

Motivation: Most current component models have “holes” or leaky abstractions – they don’t describe all features of the components on the interface level, e.g. events or configuration items. This leads to implementation (hidden) dependencies, in clear contradiction to the original purpose of black-box components = compositionality and substitutability.

Goals:

This is a basic research topic but requires validation of the concepts by real implementation to show they can be realized in a highly practical way.

Related projects:

and tools:

On the topic’s periphery are also these aspects:


Further topics of interest

(Read: if you are really interested in any of these, I’m open to discussion):

Component or module substitution/matching with margins of correctness

Software development process patterns

Copyright 2004-2011 ZČU v Plzni, Přemek Brada. Publikováno v textpatternu.