reflexivity1The Evil Queen asked: “Magic mirror in my hand, who is the fairest in the land?” And the Magic Mirror answered: “My Queen, you are the fairest here so true. But Snow White beyond the mountains at the seven Dwarfs is a thousand times more beautiful than you.” We know the rest of the story. In this last sentence from Snow White, the Magic Mirror acted as parasitic third party, which, although it always said the truth, amplified the Evil Queen’s self-love, making properties like pride and vanity emerge. Moreover, the Magic Mirror added information that a normal reflection would not have given, saying: “(…) Snow White beyond the mountains at the seven Dwarfs is a thousand times more beautiful than you.” He gave information that should not have been known in a real world (of course, it’s a fairy tale!), getting an out of hand reaction from and by the Evil Queen, driving then, the consequences we know.

What I want to show in this third and last article about complexity of socio-technical systems (see part 1 and part 2) is that when the reflexivity is misunderstood or neglected, the world becomes distorted and dysfunctions. As a corollary, when you can allow some reflexivity in your socio-technical system, you can better control it.

What is said about reflexivity?

In an anthropological or sociological point of view: “reflexivity is considered to occur when the observations or actions of observers in the social system affect the very situations they are observing, or theory being formulated is disseminated to and affects the behavior of the individuals or systems the theory is meant to be objectively modeling.” (Wikipedia). For instance, when an ergonomist works on a human interface, what he or she wants to create reflects the way of how he or she would like to use it inside the ecosystem of use. He or she creates interfaces that reflect their human side. Human beings are reflexive! More globally, the society can be seen as reflexive system, where, for instance, fashion or rumours are visible outward signs.

In computer science, reflexivity means two “dual”[1] things:

– Structural reflexivity: this consists of reifying program code and all abstract types this program deals with. In the first case, reification of a program code allows for handling this program during execution. It is, therefore, possible to maintain a program while it is running. In the second case, reification of abstract types allows the program to inspect and modify the structure of complex types.

– Behavioral reflexivity: this concerns, in particular, the execution of the program and its ecosystem. By this type of reflexivity, a program can modify the way it is executed by modifying the data structures of the interpreter/compilator. Therefore, the program can have information in its implementation, or even self-organizes to better fit an ecosystem.

How it works?

reflexivity2Smith (1982)[2] and Maes (1987)[3] said it is the ability for a system to inspect and modify its internal structure (structural reflexivity) or its own run (behavioral execution) while running. To resume: it can “reason” and act by itself. According to the previous definitions (structural and behavioral), I made the opposite schema to illustrate, how reflexivity works.

In his PhD thesis, J. Labéjof[4] (2012) proposed to take up two challenges: 1st is where to apply reflexivity in a System of Systems (SoS), which supposes to introduce a certain degree of variability, therefore a dynamic dimension, which must not be in contradiction (non intrusive property) with the system requirements; 2nd is how to apply reflexivity? Reflexivity will be applied by means of reflexive models, which will be used as a meta-layer of the system components. In the above figure, variability of the structure is in the wings flaps, the rudder and the elevator. Fortunately, the dynamic of the plane is designed to support this! Still referring to the example in the figure, the reflexive models are in the pilot’s brain, which, most of the time are composed of sub-models, for a human one can say its experience or expertise on a domain. For a non-human system, which is not supposed to benefit from years of learning, Labéjof proposed to model the components of the subsystems (for instance the flaps in our figure) into the reflexive model of the global system (the SoS composed of the plane and its sub-system ((including the pilot), of which the new goal is to climb). Be careful here, this last one is not a metamodel; it’s a model that contains models of the sub-systems. To be non-intrusive, the global model will have a dependence graph where the subsystems embedded to reach the goal will depend on the meta-layer, without knowing necessarily the state of this meta-layer. If it’s necessary, then a technique called dependency injection can be used to dynamically create these dependencies between the sub-systems and the meta-layer. Labéjof called his contribution “R-*”, which gives a theoretical answer to the two challenges above. R-* can also operate on the ecosystem and the specification, as the components of the subsystems and its communication with other subsystems. To implement his proof of concept, Labéjof used a Framework called FraSCAti, which is based on Service Component Architecture (SCA) and Fractal another framework that implement reflexivity. Fractal and FraSCAti started at Inria and France Telecom; with early ideas back in 2000, they both are now supported by the OW2 open source consortium. I invite you to have a look at and

Then, what to do with reflexivity?

I will say only our imagination will be the limit! For instance, in the behavior of a swarm of drones on a battle field or in case of a disasters, or to build more reliable fault tolerant systems. I will give you a very scary one! We live in a socio-technical world, with screens everywhere, with sensors everywhere, and we leave traces everywhere; the Magic Mirror is for tomorrow. The question is who will have it first: Snow White or the Evil Queen?

[1] The more often they are linked together

[2] B. C. Smith, Procedural Reflection in Programming Languages, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, PhD Thesis, 1982.

[3] P. Maes, Computational Reflection, Ph.D. Thesis, V.U.B, Brussels, 1987.

[4] J. Labéjof, R-*, Reflexivity serving the Evolution of System of Systems, PhD Thesis at UST Lille, 2012 (Original title: « R-*, Réflexivité au service de l’Evolution des Systèmes de Systèmes »)

Patrick Marquet AUTHOR:
Patrick Marquet is a practice leader for Sogeti since 2007 and began is career as a developer for the consulting industry in the early 90’s. He is specialized in project management, consulting in enterprise architecture & technology, consulting in organization & process of IT service center, and team management.

Posted in: Enterprise Architecture, Socio-technical systems, SogetiLabs      
Comments: 0
Tags: , , , , , , , , , , , , , ,


Complexity1This series of blog posts is entitled “Managing new complexity, ”but why is it new? With the “Internet of Things,” devices everywhere with “software everywhere”, and people in the middle, means we have had to face new behaviors, including an explosion of interactions and an emergence of properties, without theoretical foundations. Humanity has known this kind of challenge already, for instance from the first steam machine (Heron of Alexandria 1st century A.D.) to Carnot and the first laws/theories on thermodynamic in the 19th century, so many questions!

Socio-technical systems can be, for instance, an enterprise, a department in a public administration, a community in a social network, or also a city which offers more and more interactions with its citizen via mobile applications for instance. With my laptop right now I constitute a socio-technical system. Let us focus on this. On a System of Systems (SoS) point of view I am a biological-ethical-system, my computer an IT system. We both have goals; right now mine is to write this article in interaction with a word processor, a sub system of my computer, and my word processor’s goal is to offer me word processing and sometimes (!) correct my spelling mistakes. The system composed[1] by my computer and me has a main goal; in this context it is a written article with no spelling mistakes. What about other properties of such a SoS? For instance, what is its spatial boundary or its time boundary? When I leave my chair to have a coffee, and I’m still thinking about this article, which preserves the goal of the SoS, how may I characterize this property? When I am writing, and suddenly a thought which has nothing to do with the article crosses my mind (a sub-system of me) interrupting the main goal, while my fingers (with a certain degree of autonomy) are still achieving the main goal, how can I characterize this property? How can I represent it, model it, design it, if I want to simulate it? In fact, there is not a clear and shared answer in the various communities working on SoS. In my reading about SoS and how to characterize and define them (problematic #1), I found a PhD thesis, “Proposal for a Product Centric Multi-Scales Modeling Framework of an Enterprise Information System”[2] written by J.P. Auzelle, where one can find a synthetic summary of what the main characteristics of SoS shared by the different communities who work on the subject are. The figure below is adapted to it.


-Ok, here is the beginning of a shared characterization and definition of SoS. But are there any theoretical foundations of SoS (Problematic #2)? Whilst SoS is a reality, what should one base one’s reflections on to improve SoS design and operation? The best approach, right now, is to ask your neighbor, think by analogy (sometimes it works!), find best practices in your field of operations, try and … pray! The main cause of this lack of a unified theory about SoS is due to the multidisciplinary nature of SoS. For instance, interoperability which is a fundamental concern of SoS must be designed and operated at various levels. The European Interoperability Framework[3] has four levels: legal, organizational, semantic and technical. Then, you need many types of expertise to address these four levels: lawyers, sociologists, psychologists, engineers, (…), plus climatologists, agronomists, physicists, etc. if you are working on a SoS in the fields of agriculture or a supervision system based on satellites. Furthermore, as you can see in the above figure, several authors have identified characterizations of SoS and have tried to define them, but still, there is no set of agreed principles for SoS, and there is not an established conceptualization for SoS. For this last one, many people involved in SoS think we need a new way of thinking. Reductionism, based on a common way to analyzing things or situations, is not enough and not even appropriate. For instance, if you search the optimum of a system, be sure it will not be the sum of the optima of the sub-systems which compose it. A holistic approach tends to be one, as they proceed in the cybernetics communities, for instance.

SoS sometimes has a behavior that seems a bit bizarre, at least unexpected, as it relates to emergence (Problematic #3). This fundamental property of SoS may come from changes in the ecosystem in which the SoS is immersed in, or changes to individual systems and/or changes to their interactions. Emergence can be beneficial or detrimental; in both cases it is mostly unpredictable, meaning you cannot design it. At the very least, it is difficult to operate. As there is no theoretical foundation for SoS, there is no fundamental models for SoS to provide a scientific understanding of how and why emergence occurs. Note that in the case the emergence is beneficial, it could be interesting to exploit this situation; at present you can detect it, but sometimes it’s too late.

What about the “damned human factor” in all that? The human aspects (Problematic #4) are usually taken into account as a high-risk in security policies, although the higher levels of interoperability are concerned with human aspects, either at the individual level or organizational level. The human aspects are not seen as an integral component of the SoS, with, for instance, statistical, fuzzy logic, or stereotyped behaviors or interactions with other sub-systems.

Last summer, an active SoS community, The T-AREA-SOS[4] (Trans-Atlantic Research and Education Agenda in Systems of Systems), had proposed an agenda for 2020 composed of twelve themes to work on to better understand, control and command SoS. I gave you a summary of the first four ones. The others are as follows:

– Multi-level Modeling (Pb #5): need of a meta-modeling approach that joins the need of theoretical foundations.

– Measurements and Metrics (Pb #6): what to measure and when is still not yet complete and consistent enough due to the independence of management and operation of the components.

– Evaluation of SoS (Pb #7): even if there are many things to take from the software engineering discipline, for instance SPEM (Software & Systems Process Engineering Metamodel), for highly reconfigurable SoS and those which involved more physical and social aspects, further works are needed.

– Definition and Evolution of SoS Architecture (Pb #8): architecture frameworks like Zachman, IAF, and more recently Togaf, with their high level and holistic approach of enterprise architecture are good candidates for future research that “should address dynamic architectures, partitioning, and the explicit means through which architecture informs the decision making process”.

– Prototyping SoS (Pb #9): due to the lack of knowledge about emergent behavior which may not be observable until the SoS is complete.

– Trade-off (Pb #10): know all the possible trades between SoS and its ecosystem and inside the SoS is difficult and even impossible due to the lack of characterization and definition of SoS, the dynamic nature of the SoS and its ecosystem.

– Security (Pb #11): Interoperations are needed, but are also breaches for security. This problem area needs research to develop the “means to ensure that the physical, ethical, and cyber aspects of safety and security of the SoS, its people, its end-users, and its social and physical environnement are properly addressed”.

– Energy-efficient SoS (Pb #12): all SoS need energy, “there is a need to operate them in such a way as to minimize the detrimental effects on” their ecosystems.

In Toulouse, Sogeti works on an ambitious innovative program that tries to include new visions, methods and techniques in the field of SoS WE call it “Cockpit for Big Systems (CBS),” a centralized and agile solution to control and command ultra large scale systems (scale of 1 million assets (CPU, GPU, RAM, HD, printer, License, …) in organizations with scale of 100 000 employees. Any inputs are welcome!

Next week I will talk about the potential of Reflexivity in our context of SoS.

[1] Is it a composition or an aggregation? Will see later, the answer to this question is not so easy.

[2] Original title « Proposition d’un cadre de modélisation multi-échelles d’un Système d’Information en entreprise centré sur le produit », Jean-Philippe Auzelle, PhD thesis from H. Poincaré University of Nancy, 2009.

Patrick Marquet AUTHOR:
Patrick Marquet is a practice leader for Sogeti since 2007 and began is career as a developer for the consulting industry in the early 90’s. He is specialized in project management, consulting in enterprise architecture & technology, consulting in organization & process of IT service center, and team management.

Posted in: Internet of Things, mobile applications, Open Innovation, Research, Security, Socio-technical systems, SogetiLabs      
Comments: 0
Tags: , , , , , , , , , , , , ,


Complexity2With this series of three articles, I would like to highlight how much we need a new paradigm, a new way of thinking, to deal with complex systems, i.e. in our context, socio-technical systems or enterprises.

A system is said to be complex if its evolution is unpredictable. This complexity comes from the number of elements (of different nature, including human), the number of interactions (matter, energy, information) between elements inside the system, and between the system and its ecosystem. This complexity comes also from heterogeneity of the elements; in our context of socio-technical systems, they could be made of humans, computers, satellites, trucks, a set of business processes, software, etc. Complexity, for those who are responsible of designing/building/maintaining or “simply” understanding such systems, is also a question of space (how extensive the system is) and time (the system lifecycle), therefore by derivation a question of speed.

In system theory, one notes that all systems have goals of stability, growth and interaction. For example, the primary goal of static, dynamic and cybernetic systems is to seek stability. While the primary goal of open, living systems is growth and stability[1]. Then, systems can be distinguished by their goals. When they are put together in a network of systems, to achieve their own goals and the high level goal of the system they contribute to, more often, they have to interoperate. A new ontology appears: System of Systems (SoS). INCOSE defines SoS as something that “applies to a system‐of‐interest whose system elements are themselves systems; typically these entail large scale inter‐disciplinary problems with multiple, heterogeneous, distributed systems.”[2] ; while Luzeaux and Ruault[3] define a SoS as “a collection of systems that which could be acquired and/or used independently, for which the designer, the buyer, and/or the user looks to maximize the performance of the global value chain, at a given time and for a conceivable set of collections.” So, depending on the scale (zoom effect), or point of view, or point of interest, different classes of problems appear. What is the space of such problems in our context?of problems adapted from T.F. Piepenbrock : Enterprise Design for Dynamic Complexity: Architecting & Engineering Organizations using System & Structural Dynamics, MIT , 2004.

of problems adapted from T.F. Piepenbrock : Enterprise Design for Dynamic Complexity: Architecting & Engineering Organizations using System & Structural Dynamics, MIT , 2004.


Senge[4] defines the space of socio-technical problems by considering another dimension of human complexity. Conventional engineering systems, even those having a high degree of detail complexity like a commercial airplane, fall into the category of “tame” problems. Traditional corporations, however, have much more human and dynamic complexity, making them political or “negotiated” problems or “messy” structural dynamics-type of problem. Enterprises, with their focus on longer time scales and a broader set of stakeholders, by definition has the highest degree of both human and dynamic complexity, making them “wicked”. 

In the coming article next week, I will talk about problems we have to face in our daily work inside socio-technical systems, on a SoS point of view. In the 3rd article, I will talk about reflexivity and how it could help us to better understand these types of systems.

[1]Scott, William G. and Mitchell, Terence R., Organization Theory: A Structural and Behavioral Analysis, Irwin-Dorsey Press, 1972

[2]INCOSE 2006

[3]Luzeaux, D. and Ruault, J.R.. Ingénierie des systèmes de systèmes – concepts et illustrations pratiques. Hermes Science, 2008

[4]P. Senge, Organizations as Enacted Systems, MIT material, 2002.

Patrick Marquet AUTHOR:
Patrick Marquet is a practice leader for Sogeti since 2007 and began is career as a developer for the consulting industry in the early 90’s. He is specialized in project management, consulting in enterprise architecture & technology, consulting in organization & process of IT service center, and team management.

Posted in: Socio-technical systems, SogetiLabs      
Comments: 0
Tags: , , , , , , , , , , ,