Michał Śmiałek

Professional and personal pages

Publications

Research Publications

An official list of my publications can be found on the "Base of Knowledge" portal of WUT to be found here: Repo PW (Michał Śmiałek).

You can also find my publications, including full texts for many of them, on the ResearchGate portal here: Michał Śmiałek's ResearchGate profile

Other sources of information on my publications are: Scopus, ORCID, Web of Science, Google Scholar

Books

From Requirements to Java in a Snap - Springer 2015

This book provides a coherent methodology for Model-Driven Requirements Engineering which stresses the systematic treatment of requirements within the realm of modelling and model transformations. The underlying basic assumption is that detailed requirements models are used as first-class artefacts playing a direct role in constructing software. To this end, the book presents the Requirements Specification Language (RSL) that allows precision and formality, which eventually permits automation of the process of turning requirements into a working system by applying model transformations and code generation to RSL.

The book is structured in eight chapters. The first two chapters present the main concepts and give an introduction to requirements modelling in RSL. The next two chapters concentrate on presenting RSL in a formal way, suitable for automated processing. Subsequently, chapters 5 and 6 concentrate on model transformations with the emphasis on those involving RSL and UML. Finally, chapters 7 and 8 provide a summary in the form of a systematic methodology with a comprehensive case study.

Presenting technical details of requirements modelling and model transformations for requirements, this book is of interest to researchers, graduate students and advanced practitioners from industry. While researchers will benefit from the latest results and possible research directions in MDRE, students and practitioners can exploit the presented information and practical techniques in several areas, including requirements engineering, architectural design, software language construction and model transformation. Together with a tool suite available online, the book supplies the reader with what it promises: the means to get from requirements to code “in a snap”.

Zrozumieć UML 2.0. (Understanding UML 2.0) - Helion 2005

The book is written in Polish and it teaches software modelling with the UML 2.0 notation. It presents the fundamentals of object-oriented modelling and associated concepts. It presents ways to model the environment of a software system, its functional properties and structure. The book describes also the process of transitioning from the models to source code, and associated methodologies based on UML. It covers topics such as: rules of object-based modelling, formulating requirements using UML, software architectural design, system implementation based on design, software development methodologies.

Software Development with Reusable Requirements-Based Cases - WUT Press, 2007

Full text available: click here.

The book contains a detailed discussion on the issues that lead to constructing a comprehensive requirements-based reuse framework. There are described mechanisms and tools that can support such a framework. A vision of how to organise a reuse process is presented, including details on how a software development organisation should follow this process. This includes using a specific precise language for specifying requirements and designing systems. The process and the language are defined both formally and practically. The book introduces concrete syntax for individual elements of Software Cases: requirements, architecture and detailed design. This syntax is used to formulate them in a systematic way. Techniques for transforming models to form a coherent path from requirements to code are given. Certain mechanisms for comparing and retrieving Software Cases are also specified. This includes a query language suitable for formulating queries that allow for matching requirements models thus allowing for reusing solutions to problems specified through requirements.