Overview of my Long Term Research
Software products, systems and services are forming a very wide and complex software-intensive eco-system. It is the pillar of the economy, the digital businesses, digitalization and innovations today. The human life and society rely heavily on our capacity to maintain and ensure its quality including usability, security, as well sustainability. For the last forty years, the software engineering community have largely taken an artifact-driven approach to software development and research. With the emergence of the cyber physical systems, software as Web and mobile services, this artifact-driven approach shows it limits to meet the challenges of building systems and services that are usable, yet secure, resilient and trustable.
With students and partners, my main research goal is to balance the artifact-driven and human-centric approaches, in which the focus is on understanding the human experiences and factors required to build human-centric usable yet secure and sustainable software product, service and systems.
Our research lies in the long tradition and rich history of how humans interact with software systems, products and services. We aim not only in building a tighter feet between human tasks and how software systems actually works, but also building an innovative software engineering toolbox for engineering smart services at the age of cyber physical systems needed for the societal challenges such as homeland security, climate changes and environmental sustainability.
Only a small fraction of the current research in software engineering has considered how humans interact with the entire software eco-system. A similarly small amount of research has considered how humans interact with humans when using and co-creating innovative software products, services and systems. A human-centric software engineering approach involves performing empirical studies to understand how human use, develop, use, manage and maintain the software ecosystems. Questions such as – how software engineers work with software and with each other, how they are developing new methods for both decomposing and composing models of software to facilitate their usage, ease the cognitive load placed on end-users as well as engineers, are the core of our daily investigations.
Grounded in design science research and user/empirical research, my research is human-centric software engineering, a term I coined. My ongoing research and projects niches includes:
- Users experience research. An important part of human-centric software engineering is user/stakeholders research. It focuses on understanding user behaviors, needs, and motivations through observation techniques, task analysis, and other feedback methodologies. Mike Kuniaysky further notes that it is “the process of understanding the impact of design on an audience.”
- Design studies, patterns and theory. Another niche of investigation is the development of a design theory covering the methods, strategies, research and analysis of the term Design theory underpins the concept of, and reflection upon, creative work. Design theory, as well as design, is influenced by the particular context under which it is operating. Unlike other sciences, which may consider their subjects experimentally or empirically, design is about changing its environment and thus is also the subject that is influencing a theory about design. Software design science is the philosophical, theoretical and empirical study of software creation and modification including its phenomenology, methodology and causality. It is distinct from the “design-science research paradigm”, where design is a research method. A key element of design science involves theories of the shape and organization of the design process. Yet, the shape and organization of the design process of software, in particular, is not well understood, as most academic work on software design is prescriptive rather than explanatory or descriptive – hence, my primary research question (as follows). What is the process by which development teams create software in practice?
- Measures and measurement of human factors – also called quality in use or human perspective of software systems quality. Usability, usefulness, human safety, accessibility are the factors that have received a huge amount of research work. Accountability, privacy, trustfulness and even usefulness and sustainability are human factors too that are awaiting for methods and tools for their measurement. A quality in use model which is composed of these factors, their inter-dependencies and possible conflicts (some of which are further subdivided into sub-characteristics) should relate to the outcome of interactions when a product is used in a particular context of use. This quality in use model should be applicable to the complete human-computer system, including both software products, services and systems in use as well as the entire software eco-system.