Kevin Lano

Kevin Lano
King's College London | KCL · Department of Informatics

About

357
Publications
77,754
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
3,780
Citations
Additional affiliations
July 1999 - present
King's College London
Position
  • Professor (Full)

Publications

Publications (357)
Article
Since 2021 we have been using UML and OCL to represent the semantics of software systems undergoing re-engineering, to facilitate translation of legacy systems to functionally-equivalent versions in a new platform or software language. In this paper we assess the lessons learnt from this approach, particularly as regards the appropriateness of OCL...
Article
Testing is one of the most time‐consuming and unpredictable processes within the software development life cycle. As a result, many test case optimization (TCO) techniques have been proposed to make this process more scalable. Object Constraint Language (OCL) was initially introduced as a constraint language to provide additional details to Unified...
Chapter
Full-text available
In this article, the authors describe the field of agile model-driven software engineering methods and present the results of a survey of the research and industrial practice in this field over the last 25 years. They evaluate how the field has grown and diversified over the surveyed time period, describe the range of applications of agile model-dr...
Article
Full-text available
In this paper we describe an Agile model-driven engineering (MDE) approach, AMDRE, for the re-engineering of legacy systems. The objective is to support the reuse of business-critical functionality from such systems and the porting of legacy code to modernised platforms, together with technical debt reduction to improve the system maintainability a...
Article
Full-text available
In this paper we present an approach for software language processing tasks such as code generation, reverse-engineering and refactoring, based upon text-to-text (T2T) transformations expressed using the concrete syntax of the source and target software languages. The goal of the approach is to provide simpler and more usable techniques for specify...
Article
Full-text available
Many organizations depend on software systems to accomplish their daily tasks, but these systems need to be maintained and evolved to cope with various changes and requirements. Before starting to maintain and evolve software systems, it is necessary to understand them. Reverse engineering plays a crucial role in comprehending various aspects of so...
Preprint
Testing is one of the most time-consuming and unpredictable processes within the software development life cycle. As a result, many Test Case Optimisation (TCO) techniques have been proposed to make this process more scalable. Object Constraint Language (OCL) was initially introduced as a constraint language to provide additional details to UML mod...
Article
Full-text available
The porting or translation of software applications from one programming language to another is a common requirement of organisations that utilise software, and the increasing number and diversity of programming languages makes this capability as relevant today as in previous decades. Several approaches have been used to address this challenge, inc...
Article
Full-text available
Requirements Engineering (RE) has undergone several transitions over the years, from traditional methods to agile approaches emphasising increased automation. In many software development projects, requirements are expressed in natural language and embedded within large volumes of text documents. At the same time, RE activities aim to define softwa...
Preprint
Full-text available
The report summarises the use of CSTL/CGTL for code generation and program abstraction and explains how these can be used for software language processing.
Chapter
Full-text available
This chapter covers the key concepts of the clean architecture approach to architectural design, and defines some quality measures and quality aspects of architectures with respect to this approach.
Chapter
Full-text available
Architectural styles express recurring patterns of architectural design. They are the analogue at the architecture level of design patterns at the code design level, and help to guide the construction of architectures for new systems based on what architectures have been effective for similar types of system. An architectural style consists of: (i)...
Chapter
In this chapter we consider the role of software architecture in the context of the re-engineering of legacy software systems, and in particular we examine how quality flaws in the legacy systems can be corrected and the system architectures improved.
Chapter
This chapter covers: The definition of software architecture and its key concepts. Description of the UML component notation for architectures. Definition of key properties of components and architectures, such as reusability, sustainability, substitutability and maintainability. Quality of service properties and their influence on architectural ch...
Chapter
This chapter describes the use of architectural design within model-driven engineering (MDE) and agile development processes. As an example of MDE, we give an MDE-based approach for the architectural design of simple business systems. We also discuss the issues involved in using architectural design in an agile development approach.
Chapter
This chapter will look at architectural design in the context of cloud-based services, web services and microservices, which can all be considered to be forms of service-oriented architecture (SOA). We will describe the purpose and functionalities of cloud services, web services, microservices and SOA, and use UML component diagrams to specify SOA.
Chapter
Full-text available
In this chapter we look at the specific architectural issues involved in safety-critical systems (SCS), and design approaches for SCS. Because SCS are often embedded systems, operating upon special-purpose hardware/devices, we also examine architectural approaches for embedded systems in this context.
Chapter
This chapter considers the architectural design of machine learning (ML) applications, and identifies factors which can help to ensure the maintainability and quality of these systems.
Chapter
This chapter will explain some fundamental enterprise architecture styles and patterns, and show how these can be applied to organise web application and EIS architectures. We will also explain the key concepts of Java EE/Jakarta, the main alternative EIS platform to .NET.
Chapter
This chapter covers architectural styles and patterns for enterprise information systems (EIS) and the concepts of application servers, and the motivations for using them. We look specifically at the .NET EIS platform and .NET enterprise services.
Chapter
This chapter extends the idea of a software component by defining subsystems as compound components with an internal architectural structure. Such constructions need new kinds of connectors: delegation connectors, which link external provided/required interfaces of a subsystem to corresponding interfaces within the subsystem. We also consider diffe...
Chapter
This chapter describes the concepts of mobile application architectures, including the specific features of mobile platforms which lead to specialised forms of architecture. We consider Android and iOS app architectures in detail, and specific architectural patterns for the mobile domain.
Article
Model‐Driven Development (MDD) is one of the important approaches to develop complex software systems. This approach tries to model a system in high‐abstraction level. Then through applying multiple transformations step by step, the model abstraction level is reduced and finally yields to executable code. As a result, Model transformation (MT) play...
Preprint
Full-text available
Improvement of software development methodologies attracts developers to automatic Requirement Formalisation (RF) in the Requirement Engineering (RE) field. The potential advantages by applying Natural Language Processing (NLP) and Machine Learning (ML) in reducing the ambiguity and incompleteness of requirement written in natural languages is repo...
Article
Full-text available
Code generation is a key technique for model-driven engineering (MDE) approaches of software construction. Code generation enables the synthesis of applications in executable programming languages from high-level specifications in UML or in a domain-specific language. Specialised code generation languages and tools have been defined; however, the t...
Book
Full-text available
This manual gives a guide to versions from 1.5 (2015) to 2.2 (2022) of the UML-RSDS tools for model-driven development. From Version 1.8 onwards the tools have been rebranded as Agile UML" on Eclipse (https://projects.eclipse.org/projects/modeling.agileuml).
Conference Paper
Software complexity has become a significant social problem, which MDE endeavours to alleviate, however MDE approaches and tools often introduce additional complexity which prevents general software practitioners from benefiting from MDE solutions. In this paper we present an alternative approach for MDE in the domain of language processing, using...
Chapter
Artificial intelligence (AI) techniques such as machine learning (ML) have wide application in medical informatics systems. In this chapter, we employ AI techniques to assist in deriving software specifications of e-Health and m-Health systems from informal requirements statements. We use natural language processing (NLP), optical character recogni...
Article
Agile methods have become a widely used software development approach across many industry sectors [14], with established benefits in terms of increased responsiveness to change and decreased time to market. Agile practices emphasise lightweight and iterative development, designed to deliver value to customers quickly. The model-driven approach to...
Article
Full-text available
Background Although the past decade has witnessed the development of many self-management mobile health (mHealth) apps that enable users to monitor their health and activities independently, there is a general lack of empirical evidence on the functional and technical aspects of self-management mHealth apps from a software engineering perspective....
Conference Paper
The porting or translation of software applications from one programming language to another is a common requirement of organisations that utilise software, and the increasing number and diversity of programming languages makes this capability as relevant today as in previous decades. Several approaches have been used to address this challenge, in...
Article
In this article, we address how the production of model transformations (MT) can be accelerated by automation of transformation synthesis from requirements, examples, and metamodels. We introduce a synthesis process based on metamodel matching, correspondence patterns between metamodels, and completeness and consistency analysis of matches. We desc...
Article
Model transformation has become an established field, and it is important to improve the quality of specifications written in transformation languages. Different transformation patterns have been introduced in the model-driven engineering (MDE) community to improve the quality of transformation specifications. However, due to the different definiti...
Article
Full-text available
Mobile applications and game development are attractive fields in software engineering. Despite the advancement of programming languages and integrated development environments, there have always been many challenges for software and mobile game developers. Model-Driven Engineering (MDE) is a software engineering methodology that applies software m...
Chapter
Map and function types are of high utility in software specification and design, for example, maps can be used to represent configurations or caches, whilst function values can be used to enable genericity and reuse in a specification, and to support mechanisms such as callbacks or closures in an implementation. Map and function types have been inc...
Conference Paper
Full-text available
Model-driven engineering (MDE) of software systems from precise specifications has become established as an important approach for rigorous software development. However, the use of MDE requires specialised skills and tools, which has limited its adoption.In this paper we describe techniques for automating the derivation of software specifications...
Article
Full-text available
The QVT-Relations (QVT-R) model transformation language is an OMG standard notation for model transformation specification. It is highly declarative and supports (in principle) bidirectional (bx) transformation specification. However, there are many unclear or unsatisfactory aspects to its semantics, which is not precisely defined in the standard....
Article
In this paper we present an approach for the model-based testing (MBT) and runtime monitoring of applications using the UML-RSDS language and AgileUML toolset. This approach uses class invariants and operation pre/post specifications to guide the choice of test cases, and synthesises monitoring code from temporal logic specifications of application...
Preprint
BACKGROUND Although the past decade has witnessed the development of many self-management mobile health (mHealth) apps that enable users to monitor their health and activities independently, there is a general lack of empirical evidence on the functional and technical aspects of self-management mHealth apps from a software engineering perspective....
Conference Paper
Full-text available
Mobile applications are one of the main features of mobile devices that have increased the prevalence of mobile use. In turn, such prevalence has increased the demand for high quality, interactive, and intelligent mobile applications. Achieving these requirements on multiple platforms, in critical domains, and with short time-to-market causes high...
Article
Model transformations (MT) are a significant element of model-based and model-driven engineering approaches. Hence their quality is important for their effectiveness for use in such developments. The concept of technical debt (TD) estimates the impact of quality flaws on the maintenance costs of software artefacts. In this paper we define a quality...
Article
Full-text available
Model-Driven Development (MDD) aims at developing software more productively by using models as the main artifacts. Here, the models with high abstraction levels must be transformed into lower levels and finally executable models, i.e., source code. As a result, model transformation languages/tools play a main role on realizing the MDD goal. The Ob...
Article
Full-text available
The quality of model transformations (MT) has high impact on model-driven engineering (MDE) software development approaches, because of the central role played by transformations in MDE for refining, migrating, refactoring and other operations on models. For programming languages, a popular paradigm for code quality is the concept of technical debt...
Article
Full-text available
Model-based development (MBD) is the development of software systems using graphical and textual models such as UML class diagrams. MBD and related approaches such as Model-driven development (MDD) have had some success within specific application domains, such as the automotive industry. Agile software development approaches such as Scrum and eXtr...
Chapter
In this chapter we give an overview of finance concepts such as financial services, markets and the financial regulatory environment, and discuss the current state of software engineering in finance.
Chapter
In this chapter we will explain how UML models can be used to specify financial applications, using examples.
Chapter
In this chapter we give a detailed example of mathematical analysis of a particular financial product—collateralised debt obligations (CDOs)—and show how the theoretical results obtained can be expressed as software specifications.
Chapter
Matlab to C# migration case study
Chapter
Full-text available
Existing agile MBD approaches
Chapter
Full-text available
This chapter introduces the main concepts of the software development lifecycle, and describes software specification techniques and development approaches which can be used for financial applications.
Chapter
In this chapter we describe some of the main financial products in detail (bonds, shares, derivative securities) and explain some of the analyses which can be performed to value the products and to define strategies for trading in them.
Chapter
In this chapter we describe in detail how to use the UML-RSDS tools to specify and implement financial applications on a number of different platforms. We describe how the tools can be combined with the use of Excel, and how the tools can be extended to provide code-generation facilities for new target programming languages.
Chapter
In this chapter we describe technologies to support financial trading and data analysis.
Chapter
This chapter will describe the design of financial software using an agile MBD process. We will consider software design quality, design patterns and software reuse, and describe the QuantLib finance library.
Book
In this textbook the authors introduce the important concepts of the financial software domain, and motivate the use of an agile software engineering approach for the development of financial software. They describe the role of software in defining financial models and in computing results from these models. Practical examples from bond pricing, yi...
Article
Full-text available
Bidirectional transformations (bx) are a specific form of model transformation (MT) used in model-driven engineering (MDE) to maintain consistency between two models which may change independently. Currently bx are defined using a number of specialised transformation languages, which have had limited uptake due to complex semantics and poor efficie...
Article
Full-text available
Model transformation design patterns have been proposed by a number of researchers, but their usage appears to be sporadic and sometimes patterns are applied without recognition of the pattern. In this paper we provide a systematic literature review of transformation design pattern applications. We evaluate how widely patterns have been used, and h...
Chapter
Full-text available
Model transformations (MT), as with any other software artifact, may contain quality flaws. Even if a transformation is functionally correct, such flaws will impair maintenance activities such as enhancement and porting. The concept of technical debt (TD) models the impact of such flaws as a burden carried by the software which must either be settl...
Conference Paper
Full-text available
The aim of this paper is to investigate and gain insights into the state of practice of integrating Agile development and Model-Driven Development (MDD), understanding their impact and various problems of their applicability. To meet this aim, we conducted seven in-depth, one-to-one interviews with Agile and MDD practitioners to provide insights ab...
Conference Paper
Full-text available
In this paper we describe a solution to the TTC 2017 families to persons bx case using the UML-RSDS subset of UML and OCL.
Conference Paper
Full-text available
Model transformation design patterns have been proposed by a number of authors, but their usage appears to be sporadic and sometimes patterns are applied without recognition of the pattern. In this paper we provide a literature review of transformation design pattern applications, with regard to their effectiveness and range of use, and consider ho...
Book
This book describes the concepts and application of model-based development (MBD), model transformations, and Agile MBD to a wide range of software systems. It covers systems requirements engineering, system specification and design, verification, reuse, and system composition in the context of Agile MBD. Examples of applications in finance, system...
Poster
Full-text available
This course will cover UML, MDD and agile development.
Conference Paper
Full-text available
Model Transformations (MT) are central building blocks of Model Driven Engineering (MDE). The size and complexity of model transformations grows as they see more wide-spread use in industry. As a result, systematic approaches to the development of high-quality and highly reliable model transformations become increasingly important. However, because...
Article
Full-text available
The research is aimed at studying the feasibility of defining/ formalising model driven project management with base methodology of PMBOK. Our research focuses on PMBOK since more than 75% of the projects around the world use PMBOK for managing projects. Previous research works had considered one or two areas of Project Management but did not consi...
Article
Full-text available
Bidirectional transformations (bx) are of increasing significance in model-based engineering. Currently bx are defined using a number of specialised transformation languages. In this paper we show how standard UML elements such as use cases and OCL constraints can be used to define bx, thus taking advantage of the wide industrial and educational ad...
Conference Paper
Full-text available
Requirements Engineering (RE) is an essential process in the development of effective software systems, and it is the basis for subsequent development processes. At present, the focus of Model Transformation (MT) is mainly on the specification and implementation stages. Transformations are not using engineering principles, which may not be an issue...
Conference Paper
Agile model-based development has the potential to combine the benefits of both agile and model-based development (MBD) approaches: rapid automated software generation, lightweight development processes and direct customer involvement. In this paper, we analyse three application case studies of agile MBD, and we identify the factors which have cont...
Conference Paper
Full-text available
In this paper, we identify model transformation specification and design patterns, which support the property of transformation bidirectionality: the ability of a single specification to be applied either as a source-to-target transformation or as a target-to-source transformation. In contrast to previous work on bidirectional transformations (bx),...
Conference Paper
Since 2012 we have been teaching agile development and model-based development (MBD) in undergraduate courses at King’s College London. In this paper we analyse the results of practical courseworks in agile MBD, taken from 2013-14 and 2014-15. We identify the factors which have contributed to the success or failure of students to apply theoretical...
Conference Paper
Full-text available
Abstract. In this paper we show how translation from QVT-R to an intermediate semantic representation can be used to support analysis of QVT-R specifications. We use the UML to RDB case study to illustrate the approach.
Conference Paper
Full-text available
Abstract. In this paper we outline an approach for using temporal logic specifications and model-checking tools to express and verify model transformation properties. Linear Temporal Logic (LTL) is used to express transformation semantics, and the SMV formalism is used to encode this semantics and to perform model checking.
Conference Paper
Full-text available
There is increasing interest in the use of design patterns for model transformations, and a number of such patterns have been proposed. In this paper we survey previous work on transformation design patterns, and identify priorities for future research.
Conference Paper
Full-text available
This case study is a transformation from financial transaction data expressed in FIXML XML format, into class definitions in Java, C# and C++. It is based on an industrial application of MDD in finance, and aims to support rapid upgrading of user software when new or extended FIXML definitions become available. The transformation involves text-to-m...