Dr
Paul M.
Clarke
Academic biography
Associate Professor in the DCU School of Computing, where I am also presently serving as B.Sc. in Computer Science / Computer Applications Programme Board Chair.
In 2019, I was appointed Irish Head of Delegation to ISO/IEC Joint Technical Committee 1, Sub-Committee 7: Software and Systems Engineering, where I have also acted as editor and author of international standards. I am presently serving as Director and Treasurer for the International Systems and Software Process Association (https://isspa-process.org/), and Steering Committee Chair for the International Conference on Software and Systems Processes. I am also a Scientific co-Chair, co-Editor and Board Member for the European System, Software and Service Process Improvement Conference.
Recent research highlights include Principal Investigator on the Future Software Systems Architectures project which is funded by the Disruptive Technologies and Innovation Fund (DTIF). This project, funded to €2.1M, examines the application of AI to the task of software architectural transformation, notably in the context of microservices extraction from monolith-based architectures. Other research interests include continuous software engineering, serverless computing, human aspects of software development, gamification in software development, and software process adaptive capability. Formerly, I was Research Manager for the MDevSPICE? safety critical medical device software assessment framework project.
In the early part of my career, I accumulated 13 years of industrial experience in a number of successful software development firms, including Logica (formerly Aldiscon Ltd.), the FINEOS corporation and Arantech Ltd. (later acquired by Tektronix Ltd.). During this time, I held a range of positions such as Senior Software Engineer, Software Development Manager, Engineering Manager, Programme Manager, Global Head of Support and Maintenance, and Program Control Manager.
In 2012, I completed my PhD on the topic of evolutionary mechanisms that confer competitive advantages on software development firms, this work ultimately being published in IEEE Transactions on Software Engineering (TSE), see:
Research interests
My research is currently focused in the following areas:
(1) Software System Automated Architectural Transformation
(2) Complexity Theory and Software Development Processes.
(3) Software Development Process Terminology.
(4) Continuous Software Engineering.
(5) Software Process Adaptation.
(6) Human factors in Software Engineering & SE Education.
1. Software System Automated Architectural Transformation.
With the era of serverless computing emerging, there is a need to transform established monolith based software architectures into distributed software architectures. Such transformation tasks are presently largely manual, slow, expensive and risky. In an effort to reduce the effect of these concerns, we have proposed the use of dynamic and static system and code analysis in combination with other data sources of value, for example source code repository metrics. To support this research, we have secured a Disruptive Technologies and Innovation Fund (DTIF) grant of c.€2.1M together with FINEOS ltd and fourTheorem ltd.
2. Complexity Theory and Software Development Processes. Work to examine the relationship between situational factors and software development processes suggests that the design and adaptation of processes is similar to behaviour observed in complex adaptive systems. Further information is available at: Related research paper on complexity theory and software development processes.
3. Software Development Process Terminology. A great deal of process innovation has been proposed over the decades, up to the present time where we witness an explosion of lean and agile software development methodologies. With the passing of time, new terminology has been introduced, sometimes to refer to new concepts, other times just new terms for preexisting concepts. Our work in this areas seeks to understand the scale of terminological confusion and to examine its impact. Our terminology research is closely related to core software engineering process theory research which is concerned with the identification of universal concerns in software development (for example, we will always have at least one iteration, and we must always have some requirements, and we must always produce some code). Further information is available at: Related research paper on software development process evolution and Related research paper on software development process terminological confusion.
4. Continuous Software Engineering.In recent years, tooling has enabled software development to speed up. Tools now exist to allow us to rapidly deploy to target operational environments and to automatically perform a whole host of testing. These tooling advances - when coupled with emerging microservices architectures and container technology - allow for rapid and reliable new feature delivery. We term our research in this space Continuous Software Engineering. Further information is available at: Related research paper on continuous software engineering.
5. Software Process AdaptationIn common with some earlier software dev