SEMar 25, 2021
Quantum Software Models: The Density Matrix for Classical and Quantum Software Systems DesignIaakov Exman, Alon Tsalik Shmilovich
Linear Software Models enable rigorous linear algebraic procedures for modular design of classical software systems. These procedures apply a spectral approach to matrix representations - e.g. the Laplacian - of the software system. Recent intensive research efforts towards quantum computers have increased expectations that quantum computing could in due time materialize as a practical alternative to classical computing. It is reasonable to inquire about quantum software desirable features and prepare in advance modular design procedures for quantum software systems. However, it does not make sense to have two totally separate procedures for modular design, one for classical software systems and another for quantum software systems. This paper claims that there should be just a single unified and rigorous design procedure for both classical and quantum software systems. Our common design procedure starting point for both classical and quantum software systems is Von Neumann quantum notion of Density Operator and its Density Matrix representation. This paper formulates and demonstrates modular design in terms of projection operators obtained from a design Density Matrix and shows their equivalence to the Linear Software Models results of the Laplacian matrix spectrum for the classical case. The application in practice of the design procedure for both classical and quantum software is illustrated by case studies.
SENov 10, 2018
Software Conceptual Integrity: Deconstruction, Then ReconstructionIaakov Exman
Conceptual Integrity is the most important consideration for software system design, as stated by Frederick Brooks. Brooks also suggested that Conceptual Integrity can be attained by means of design principles, such as Propriety, and Orthogonality. However, Brooks' principles have not been formalized, posing obstacles to their application in practice, and to a deeper comprehension of Conceptual Integrity. This paper has three goals: first, to achieve deeper comprehension of Conceptual Integrity by deconstructing it into two phases, viz. Conceptualization and Modularization, iteratively applied during software system design; second, to show that the algebraic Linear Software Models already provide the hitherto lacking formalization of Brooks' design principles, which surprisingly belong mainly to the Modularization phase; third, to reconstruct Conceptualization and Modularization, preserving the desirable tension between: a- phases separation, each with its own specific formal manipulation techniques; b- precise transition between these phases, consisting of explicit mutual relationships. The tension stems from the Modularity Matrix linking two very different kinds of entities - system concepts and abstract mathematical constructs - as seldom linked before. The paper motivates the two software design phases, illustrating Conceptualization with examples, and characterizing Modularization by its more mature mathematical theory.
SEFeb 18, 2018
Consensus in Software Engineering: A Cognitive Mapping StudyPontus Johnson, Paul Ralph, Mathias Ekstedt et al.
Background: Philosophers of science including Collins, Feyerabend, Kuhn and Latour have all emphasized the importance of consensus within scientific communities of practice. Consensus is important for maintaining legitimacy with outsiders, orchestrating future research, developing educational curricula and agreeing industry standards. Low consensus contrastingly undermines a field's reputation and hinders peer review. Aim: This paper aims to investigate the degree of consensus within the software engineering academic community concerning members' implicit theories of software engineering. Method: A convenience sample of 60 software engineering researchers produced diagrams describing their personal understanding of causal relationships between core software engineering constructs. The diagrams were then analyzed for patterns and clusters. Results: At least three schools of thought may be forming; however, their interpretation is unclear since they do not correspond to known divisions within the community (e.g. Agile vs. Plan-Driven methods). Furthermore, over one third of participants do not belong to any cluster. Conclusion: Although low consensus is common in social sciences, the rapid pace of innovation observed in software engineering suggests that high consensus is achievable given renewed commitment to empiricism and evidence-based practice.
SEJan 3, 2016
Non-Concept Software Subsystems: Tangible and IntangibleIaakov Exman
Concepts modified by a Non- prefix apparently denote a negation, an opposite of the concept without this prefix. But, generally the situation is rather subtle: non- implies only partial negation and the concept suggests preserved identity with some reduced quality or absent attribute. In this work tangible and intangible software subsystems based upon Non- concepts are defined and pluggable ontologies are proposed for their representation. Pluggable ontologies are a kind of nano-ontologies, which by their minimal size facilitate fast composition of new software subsystems. These ontologies are made pluggable by Design Sockets, a novel kind of class. These are abstract connectors for removed/added parts, functionalities or identities, and for subdued qualities. Design Sockets are the basis of a Design Pattern for dynamically modifiable software systems. Pragmatic implications of Non- concepts include manageable design of product lines with multiple models. Non- concepts are also relevant to the controversy whether composition is or is not identity. The resolution is not sharp. Identity is entangled with composition, and is preserved to a certain extent, until further removal causes identity breakdown.
SEOct 15, 2015
Linear Software Models: Key IdeasIaakov Exman
Linear Software Models is a systematic effort to formulate a theory of software systems neatly based upon standard mathematics, viz. linear algebra. It has appeared in a series of papers dealing with various aspects of the theory. But one was lacking a single source for its key ideas. This paper concisely distills foundational ideas and results obtained within Linear Software Models. First and foremost we claim that one must have a deep comprehension of the theory of software - the aim of this effort - before embarking into theory and practice of software engineering. The Modularity Matrix is the central algebraic structure of the software theory: it is the source of quantitative modularity criteria; it displays high cohesion, i.e. high sparsity; a Standard Modularity Matrix is defined - square and block-diagonal - enabling designs comparison for any software systems in a Software Design Laboratory. It triggers formulation of novel open questions waiting for resolution.
IRJun 15, 2014
An Anti_Turing Test: Reduced Variables for Social Network Friends' RecommendationsIaakov Exman, Alex Krepch
A routine activity of social networks servers is to recommend candidate friends that one may know and stimulate addition of these people to one's contacts. An intriguing issue is how these recommendation lists are composed. This work investigates the main variables involved in the recommendation activity, in order to reproduce these lists including its time dependent characteristics. We propose relevant algorithms. Besides conventional approaches, such as friend_of_a_friend, two techniques of importance have not been emphasized in previous works: randomization and direct use of interestingness criteria. An automatic software tool to implement these techniques is proposed. Its architecture and implementation are discussed. After a preliminary analysis of actual data collected from social networks, the tool is used to simulate social network friends' recommendations.
IRMay 14, 2014
The Interestingness Tool for Search in the WebIaakov Exman, Gilad Amar, Ran Shaltiel
Interestingness,as the composition of Relevance and Unexpectedness, has been tested by means of Web search cases studies and led to promising results. But for thorough investigation and routine practical application one needs a flexible and robust tool. This work describes such an Interestingness based search tool, its software architecture and actual implementation. One of its flexibility traits is the choice of Interestingness functions: it may work with Match-Mismatch and Tf-Idf, among other functions. The tool has been experimentally verified by application to various domains of interest. It has been validated by comparison of results with those of commercial search engines and results from differing Interestingness functions.
SEApr 18, 2014
Knowledge-Driven Game Design by Non-ProgrammersIaakov Exman, Avinoam Alfia
Game extension is an entertaining activity that offers an opportunity to test new design approaches by non-programmers. The real challenge is to enable this activity by means of a suitable infrastructure. We propose a knowledge-driven approach with natural game-player concepts. These concepts, found in game ontologies, include game abstractions and rules for game moves. The approach has been implemented and tested for board games. These include tic-tac-toe as a simplest example, enabling extensions of tic-tac- toe, say to a four-by-four board and Sudoku, a single player game of a very different nature.
IRApr 13, 2014
Web Search of New Linearized Medical Drug LeadsIaakov Exman
The Web is a potentially huge source of medical drug leads. But despite the significant amount of multi- dimensional information about drugs, currently commercial search engines accept only linear keyword strings as inputs. This work uses linearized fragments of molecular structures as knowledge representation units to serve as inputs to search engines. It is shown that quite arbitrary fragments are surprisingly free of ambiguity, obtaining relatively small result sets, which are both manageable and rich in novel potential drug leads.
IRApr 1, 2014
Interestingness a Unifying Paradigm Bipolar Function CompositionIaakov Exman
Interestingness is an important criterion by which we judge knowledge discovery. But, interestingness has escaped all attempts to capture its intuitive meaning into a concise and comprehensive form. A unifying paradigm is formulated by function composition. We claim that composition is bipolar, i.e. composition of exactly two functions, whose two semantic poles are relevance and unexpectedness. The paradigm generality is demonstrated by case studies of new interestingness functions, examples of known functions that fit the framework, and counter-examples for which the paradigm points out to the lacking pole.
SEMar 16, 2014
A Bootstrap Theory: the SEMAT Kernel Itself as Runnable SoftwareIaakov Exman
The SEMAT kernel is a thoroughly thought generic framework for Software Engineering system development in practice. But one should be able to test its characteristics by means of a no less generic theory matching the SEMAT kernel. This paper claims that such a matching theory is attainable and describes its main principles. The conceptual starting point is the robustness of the Kernel alphas to variations in the nature of the software system, viz. to software automation, distribution and self-evolution. From these and from observed Kernel properties follows the proposed bootstrap principle: a software system theory should itself be a runnable software. Thus, the kernel alphas can be viewed as a top-level ontology, indeed the Essence of Software Engineering. Among the interesting consequences of this bootstrap theory, the observable system characteristics can now be formally tested. For instance, one can check the system completeness, viz. that software system modules fulfill each one of the system requirements.