Topics offered for PhD supervision

Updated 20.01.2017 17:55

The following broad topics are offered as PhD dissertation themes under my supervision. 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.

Architecture and Methodologies for Adaptive Software with Safety Requirements (2017+)

(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. 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. How should we design, develop, and maintain such systems?

Concrete topics (you are welcome to propose your own as well):

Software Modeling and Quality Evaluation for Safe and Secure Systems (2017+)

(lang:cz Modelování a vyhodnocování kvality software pro bezpečné systémy)

Motivation: 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. While sufficient description and verification of a desktop software product is important, it is an absolute must for systems with safety requirements. How can we create their models, define metrics and verify their quality in ways which are both simple to perform (so that humans can handle the task reliably) and profound in their foundations (so that we can firmly rely on the information obtained)?

Concrete topics (you are welcome to propose your own as well):

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. 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?

Concrete topics:

Efficient software component representation, verification and matching (2014+)

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

Motivation: Provide safe assembly and updates for near future component/service-based mobile applications (cf. EZdroid) and/or highly dynamic re-configurable systems (SOA).

Goals:

We cover mainly type-based signature and extra-functional property matching, but design the methods in extensible way so that they can incorporate results of semantic matching, simulation verification, regression tests, …

Related projects:

and tools:

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.

Related projects:

and tools:


(Outdated / Obsolete Topics)

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.