Multi-Paradigm Design with Feature Modeling

Total Page:16

File Type:pdf, Size:1020Kb

Multi-Paradigm Design with Feature Modeling Slovak University of Technology in Bratislava Faculty of Informatics and Information Technologies Valentino Vranić Multi-Paradigm Design with Feature Modeling Školiteľ: doc. Ing. Mária Bieliková, PhD. Dizertačná práca na získanie vedecko-akademickej hodnosti philosophiae doctor v odbore doktorandského štúdia: 25-31-9 Programové a informačné systémy April 2004 To Brana and Sandra Abstract Based on the analysis of multi-paradigm software development and the con- cept of paradigm, a new method of multi-paradigm design with feature mod- eling is proposed in this thesis. The method enables an explicit reasoning about paradigms, viewed as solution domain concepts, and their appropri- ateness for given application domain concepts. Both application and so- lution domain are modeled using a conceptual modeling technique known as feature modeling adapted to the needs of multi-paradigm design. The process of paradigm selection is de¯ned also in terms of feature modeling as a bottom-up paradigm instantiation over application domain concepts. Its output is a set of paradigm instances annotated with the information about corresponding application domain concepts and features. Accord- ing to these paradigm instances, the code skeleton is being designed. The method is demonstrated and evaluated on the solution domain of AspectJ programming language and the application domain of feature modeling. Acknowledgments I would like to thank Pavol N¶avratfor directing me to the exciting ¯elds of multi-paradigm design and aspect-oriented programming. His advices helped me crisp my ideas into the early versions of this thesis. I am deeply thankful to M¶ariaBielikov¶afor her valuable suggestions which helped me putting the thesis into its ¯nal form. I am also very thankful to Peter Dolog for the numerous discussions we had during the early stages of this work. Contents 1 Introduction 1 1.1 Thesis Objectives ......................... 1 1.2 Thesis Structure ......................... 2 2 The Concept of Paradigm in Software Development 5 2.1 The Meaning of Paradigm .................... 5 2.2 Large-Scale Paradigms ...................... 6 2.3 Small-Scale Paradigms ...................... 7 3 Towards Multi-Paradigm Software Development 11 3.1 Beyond Object-Oriented Programming . 11 3.2 Aspect-Oriented Approaches . 12 3.2.1 Aspect-Oriented Programming . 13 3.2.2 Adaptive Programming . 13 3.2.3 Composition Filters ................... 15 3.2.4 Subject-Oriented Programming . 15 3.3 Generative Programming .................... 17 3.4 Multi-Paradigm Programming in Leda . 18 3.4.1 Leda Programming Language . 19 3.4.2 A Multi-Paradigm Design Method for Leda . 19 3.4.3 Leda Approach Evaluation . 20 3.5 Multi-Paradigm Design ..................... 21 3.5.1 Application Domain SCVR Analysis . 21 3.5.2 Solution Domain SCVR Analysis . 22 3.5.3 Transformational Analysis and Code Design . 22 3.5.4 Multi-Paradigm Design Evaluation . 23 3.6 Intentional Programming .................... 24 3.7 Summary ............................. 25 4 Feature Modeling for Multi-Paradigm Design 27 4.1 Basic Notions ........................... 28 4.2 Feature Diagrams ......................... 29 4.3 Concept References ........................ 31 ii Contents 4.4 Information Associated with Concepts and Features . 32 4.4.1 Binding Time/Mode ................... 32 4.4.2 Associated Information Applicability . 33 4.5 Constraints and Default Dependency Rules . 34 4.5.1 Constraints ........................ 35 4.5.2 Default Dependency Rules . 36 4.6 Parameterization in Feature Models . 36 4.6.1 Parameterized Feature and Concept Names . 37 4.6.2 Parameterized Concepts . 37 4.6.3 Representing Cardinality in Feature Models . 38 4.7 Concept Instantiation ...................... 39 4.8 Equivalent and Normalized Feature Diagrams . 40 4.9 Applying Feature Modeling ................... 41 4.10 Feature Modeling Tool Support . 44 4.10.1 ASADAL ......................... 44 4.10.2 AmiEddi ......................... 45 4.10.3 Captain Feature ..................... 45 5 Multi-Paradigm Design with Feature Modeling 47 5.1 The Process of Multi-Paradigm Design with Feature Modeling 47 5.2 Solution Domain Feature Modeling . 49 5.2.1 Identifying Paradigms . 50 5.2.2 Identifying Binding Times . 50 5.2.3 First-Level Paradigm Model . 51 5.2.4 Modeling Individual Paradigms . 52 5.3 Transformational Analysis .................... 56 5.3.1 Paradigm Instantiation . 57 5.3.2 The Process of Transformational Analysis . 58 5.4 Code Skeleton Design ...................... 60 5.5 Method Evaluation ........................ 61 5.5.1 Application Domain Feature Modeling . 62 5.5.2 Solution Domain Feature Modeling . 62 5.5.3 Transformational Analysis and Code Skeleton Design . 63 6 Related Approaches 65 6.1 Feature Modeling Techniques . 65 6.1.1 Concept Instantiation . 66 6.1.2 Concept Instances Represented by Feature Diagrams . 66 6.1.3 Concept References .................... 67 6.1.4 Parameterization in Feature Models . 67 6.1.5 Constraints and Default Dependency Rules as Logical Expressions ........................ 67 6.1.6 Referring to Concepts and Features . 68 6.1.7 Representing Cardinalities . 68 Contents iii 6.1.8 Information Associated with Concepts and Features . 69 6.2 Multi-Paradigm Approaches ................... 70 6.2.1 Multi-Paradigm Design . 70 6.2.2 Multi-Paradigm Programming in Leda . 73 6.2.3 Generative Programming . 73 7 Conclusions 75 7.1 Summary of Contributions .................... 76 7.2 Further Work ........................... 77 Bibliography 79 A Domain of Feature Modeling A-1 A.1 Domain De¯nition and Scope . A-1 A.2 Feature Model . A-2 A.2.1 Feature Model . A-3 A.2.2 Feature Diagram . A-4 A.2.3 Node ............................A-7 A.2.4 Feature . A-8 A.2.5 Partition . A-10 A.2.6 Associated Information . A-11 A.2.7 AI Item . A-12 A.2.8 AI Value . A-13 A.2.9 Constraint . A-14 A.2.10 Default Dependency Rule . A-14 A.2.11 Link . A-15 A.2.12 <Plural Form> . A-16 B MPDFM for AspectJ B-1 B.1 AspectJ Paradigm Identi¯cation . B-1 B.2 AspectJ Binding Times . B-2 B.3 AspectJ Paradigms . B-3 B.3.1 AspectJ Program . B-3 B.3.2 Class ............................B-4 B.3.3 Interface . B-7 B.3.4 Aspect . B-9 B.3.5 Inheritance . B-12 B.3.6 Method . B-13 B.3.7 Overloading . B-16 B.3.8 Pointcut . B-17 B.3.9 Inter-Type Declaration . B-19 B.3.10 Advice . B-21 B.4 Auxiliary Concepts . B-23 B.4.1 Access . B-23 iv Contents B.4.2 Inheritance Line . B-24 B.4.3 Type . B-26 B.4.4 <Plural Form> . B-27 C Applying MPDFM for AspectJ C-1 C.1 Transformational Analysis . C-1 C.1.1 Feature Model . C-1 C.1.2 Feature Diagram . C-2 C.1.3 Node ............................C-3 C.1.4 Feature . C-5 C.1.5 Partition . C-6 C.1.6 Associated Information . C-7 C.1.7 AI Item . C-8 C.1.8 AI Value . C-8 C.1.9 Constraint . C-9 C.1.10 Default Dependency Rule . C-10 C.1.11 Link . C-10 C.1.12 Plural Forms . C-11 C.1.13 Normalization . C-11 C.1.14 Linking . C-12 C.2 Code Skeleton Design . C-12 Chapter 1 Introduction A quarter of a century since the Robert W. Floyd's Turing Award Lecture on paradigms of programming [Flo79], there is no common agreement on the precise meaning of the term paradigm in the ¯eld of software develop- ment. In spite of that, it has been widely used to denote any distinctive enough approach to programming or software development in general. As such, it has spread to the whole software development process. However, as software has ¯nally to be expressed in the form of a program written in one of the programming languages, it is not surprising that the term paradigm is related mostly to programming languages as such. Programming languages are often categorized according to paradigms they support. This is being done especially according to some of the more widely accepted paradigms, namely procedural, functional, logical, and object- oriented programming. Having several paradigms, each of which has some advantages over the other ones, has naturally lead to the idea of integrating or combining several programming languages, each of which supports some paradigm, into one, multi-paradigm programming language. It is important to note that advantages of a paradigm are relative to the problem being solved. A multi-paradigm programming language itself does not help in multi-paradigm design, which involves deciding which paradigm is appropriate for the problem being solved. This issue has not been as popular research subject as creating multi-paradigm languages. The reasons may lay in already mentioned insu±cient understanding of the paradigm in software development, in which, in most cases, the term paradigm is taken for given. 1.1 Thesis Objectives This thesis is devoted to the improvement of multi-paradigm design by em- ploying the technique of conceptual modeling known as feature modeling. 2 Introduction As already stated, to be able to deal with the issue of multi-paradigm de- sign, the concept of paradigm would be analyzed as such, as well as in the context of employing multiple paradigms simultaneously in contemporary approaches to software development. Based on this analysis, the appropriate paradigm representation would be proposed. For this, feature modeling would be adapted to the speci¯c needs of paradigm modeling. Subsequently, the entire method of multi- paradigm design, which consists of modeling both the application domain (which is being solved) and the programming language, and the process of ¯nding the correspondence between the application domain concepts and paradigms, would be de¯ned in terms of feature modeling. The newly established method of feature modeling based multi-paradigm design would be evaluated by applying it to the AspectJ programming lan- guage, resulting in a paradigm model of this language, and a subsequent application of this model in transformational analysis of the domain of fea- ture modeling, which constitutes an application domain of a considerable size.
Recommended publications
  • Design of Instructional Modeling Language for Learning Objects and Learning Objectsâ•Ž Repositories
    University of Northern Colorado Scholarship & Creative Works @ Digital UNC Dissertations Student Research 8-2019 Design of Instructional Modeling Language for Learning Objects and Learning Objects’ Repositories Altaf Siddiqui Follow this and additional works at: https://digscholarship.unco.edu/dissertations Recommended Citation Siddiqui, Altaf, "Design of Instructional Modeling Language for Learning Objects and Learning Objects’ Repositories" (2019). Dissertations. 588. https://digscholarship.unco.edu/dissertations/588 This Text is brought to you for free and open access by the Student Research at Scholarship & Creative Works @ Digital UNC. It has been accepted for inclusion in Dissertations by an authorized administrator of Scholarship & Creative Works @ Digital UNC. For more information, please contact [email protected]. ©2019 ALTAF SIDDIQUI ALL RIGHTS RESERVED UNIVERSITY OF NORTHERN COLORADO Greeley, Colorado The Graduate School DESIGN OF INSTRUCTIONAL MODELING LANGUAGE FOR LEARNING OBJECTS AND LEARNING OBJECTS’ REPOSITORIES A Capstone Submitted in Partial Fulfillment of the Requirements of the Degree of Doctor of Philosophy Altaf Siddiqui College of Education and Behavioral Sciences Department of Educational Technology August 2019 This Capstone by: Altaf Siddiqui Entitled: Design of Instructional Modeling Language for Learning Objects and Learning Objects Repositories has been approved as meeting the requirement for the Degree of Doctor of Audiology in College of Education and Behavioral Sciences in Department of Educational Technology
    [Show full text]
  • Integration Definition for Function Modeling (IDEF0)
    NIST U.S. DEPARTMENT OF COMMERCE PUBLICATIONS £ Technology Administration National Institute of Standards and Technology FIPS PUB 183 FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION INTEGRATION DEFINITION FOR FUNCTION MODELING (IDEFO) » Category: Software Standard SUBCATEGORY: MODELING TECHNIQUES 1993 December 21 183 PUB FIPS JK- 45C .AS A3 //I S3 IS 93 FIPS PUB 183 FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION INTEGRATION DEFINITION FOR FUNCTION MODELING (IDEFO) Category: Software Standard Subcategory: Modeling Techniques Computer Systems Laboratory National Institute of Standards and Technology Gaithersburg, MD 20899 Issued December 21, 1993 U.S. Department of Commerce Ronald H. Brown, Secretary Technology Administration Mary L. Good, Under Secretary for Technology National Institute of Standards and Technology Arati Prabhakar, Director Foreword The Federal Information Processing Standards Publication Series of the National Institute of Standards and Technology (NIST) is the official publication relating to standards and guidelines adopted and promulgated under the provisions of Section 111 (d) of the Federal Property and Administrative Services Act of 1949 as amended by the Computer Security Act of 1987, Public Law 100-235. These mandates have given the Secretary of Commerce and NIST important responsibilities for improving the utilization and management of computer and related telecommunications systems in the Federal Government. The NIST, through its Computer Systems Laboratory, provides leadership, technical guidance,
    [Show full text]
  • Design and Implementation of the L+C Modeling Language
    Design and implementation of the L+C modeling language Radoslaw Karwowski and Przemyslaw Prusinkiewicz Department of Computer Science University of Calgary Abstract L-systems are parallel grammars that provide a theoretical foundation for a class of programs used in procedural image synthesis and simulation of plant development. In particular, the formalism of L-systems guides the construction of declarative languages for specifying input to these programs. We outline key factors that have motivated the development of L-system- based languages in the past, and introduce a new language, L+C, that addresses the shortcom- ings of its predecessors. We also describe the implementation of L+C, in which an existing language, C++, was extended with constructs specific to L-systems. This implementation methodology made it possible to develop a powerful modeling system in a relatively short pe- riod of time. 1. Background L-systems were conceived as a rule-based formalism for reasoning on developing multicellular organisms that form linear or branching filaments [Lindenmayer, 1968]. Soon after their introduction, L-systems also began to be used as a foundation of visual modeling and simulation programs, and computer languages for specifying the models [Baker and Herman, 1972]. Subsequently they also found applications in the generation of fractals [Szilard and Quinton, 1979; Prusinkiewicz, 1986] and geometric modeling [Prusinkiewicz et al., 2003]. A common factor uniting these diverse applications is the treatment of structure and form as a result of development. A historical perspective of the L-system-based software and its practical applications is presented in [Prusinkiewicz, 1997]. According to the L-system approach, a developing structure is represented by a string of symbols over a predefined alphabet V.
    [Show full text]
  • Towards Software Development
    WDS'05 Proceedings of Contributed Papers, Part I, 36–40, 2005. ISBN 80-86732-59-2 © MATFYZPRESS Towards Software Development P. Panuška Charles University, Faculty of Mathematics and Physics, Prague, Czech Republic. Abstract. New approaches to software development have evolved recently. Among these belong not only development tools like IDEs, debuggers and Visual modelling tools but also new, modern1 styles of programming including Language Oriented Programming, Aspect Oriented Programming, Generative Programming, Generic Programming, Intentional Programming and others. This paper brings an overview of several methods that may help in software development. Introduction An amazing progress in software algorithms, hardware, GUI and group of problems we can solve has been made within last 40 years. Unfortunately, the same we cannot say about the way the software is actually made. The source code of programs has not changed and editors we use to edit, create and maintain computer programs still work with the source code mainly as with a piece of text. This is not the only relic remaining in current software development procedures. Software development is one of human tasks where most of the job must be done by people. Human resources belong to the most expensive, most limiting and most unreliable ones. People tend to make more mistakes than any kind of automatic machines. They must be trained, may strike, may get ill, need holidays, lunch breaks, baby breaks, etc. Universities can not produce an unlimited number of software engineers. Even if the number of technical colleges were doubled, it would not lead in double amount of high-quality programmers.
    [Show full text]
  • On the Analysis of Cmmn Expressiveness: Revisiting Workflow Patterns
    ' $ ON THE ANALYSIS OF CMMN EXPRESSIVENESS: REVISITING WORKFLOW PATTERNS Renata Carvalho 1, Anis Boubaker 1, Javier Gonzalez-Huerta 1, Hafedh Mili 1, Simon Ringuette 2, and Yasmine Charif 3 Mars 2016 D´epartement d'informatique Universit´edu Qu´ebec `aMontr´eal Rapport de recherche Latece 2016-1 & % ON THE ANALYSIS OF CMMN EXPRESSIVENESS: REVISITING WORKFLOW PATTERNS Renata Carvalho 1, Anis Boubaker 1, Javier Gonzalez- Huerta 1, Hafedh Mili 1, Simon Ringuette 2, and Yasmine Charif 3 1 D´epartement d'informatique UQAM Montr´eal,Qc, Canada 2 Trisotech Inc. Montr´eal,Qc, Canada 3 Xerox Innovation Group Xerox Research Center Webster Mailstop 128-29E Laboratoire de recherche sur les technologies du commerce ´electronique D´epartement d'informatique Universit´edu Qu´ebec `aMontr´eal C.P. 8888, Succ. Centre-Ville Montr´eal,QC, Canada H3C 3P8 http://www.latece.uqam.ca Mars 2016 Rapport de recherche Latece 2016-1 Summary Traditional business process modeling languages use an imperative style to specify all possible execution flows, leaving little flexibility to process operators. Such lan- guages are appropriate for low-complexity, high-volume, mostly automated processes. However, they are inadequate for case management, which involves low-volume, high- complexity, knowledge-intensive work processes of today's knowledge workers. OMG's Case Management Model and Notation(CMMN), which uses a declarative stytle to specify constraints placed at a process execution, aims at addressing this need. To the extent that typical case management situations do include at least some measure of imperative control, it is legitimate to ask whether an analyst working exclusively in CMMN can comfortably model the range of behaviors s/he is likely to encounter.
    [Show full text]
  • System Model-Based Definition of Modeling Language Semantics In: Proc
    System Model-Based Definition of Modeling Language Semantics Hans Gr¨onniger, Jan Oliver Ringert, and Bernhard Rumpe Lehrstuhl Informatik 3 (Softwaretechnik), RWTH Aachen, Germany Abstract. In this paper, we present an approach to define the seman- tics for object-oriented modeling languages. One important property of this semantics is to support underspecified and incomplete models. To this end, semantics is given as predicates over elements of the seman- tic domain. This domain is called the system model which is a general declarative characterization of object systems. The system model is very detailed since it captures various relevant structural, behavioral, and in- teraction aspects. This allows us to re-use the system model as a domain for various kinds of object-oriented modeling languages. As a major con- sequence, the integration of language semantics is straight-forward. The whole approach is supported by tools that do not constrain the seman- tics definition’s expressiveness and flexibility while making it machine- checkable. 1 Introduction Modeling is an integral part of complex software system development projects. The purpose of models ranges from assisting developers and customers commu- nicate to test case generation or (automatic) derivation of the developed system. A prominent example modeling language is UML [1]. Actually, it is a family of languages used to model various aspects of a software system. While UML is widely used, domain specific modeling languages emerged recently that allow developers and even customers to express solutions to well-defined problems in aconciseway. A complete definition of a modeling language consists of the description of its syntax, including well-formedness rules and its semantics (meaning) [2].
    [Show full text]
  • System Structure Modeling Language (S2ML) Michel Batteux, Tatiana Prosvirnova, Antoine Rauzy
    System Structure Modeling Language (S2ML) Michel Batteux, Tatiana Prosvirnova, Antoine Rauzy To cite this version: Michel Batteux, Tatiana Prosvirnova, Antoine Rauzy. System Structure Modeling Language (S2ML). 2015. hal-01234903 HAL Id: hal-01234903 https://hal.archives-ouvertes.fr/hal-01234903 Preprint submitted on 1 Dec 2015 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. System Structure Modeling Language (S2ML) Language Specification Version 1.0 November 2015 Abstract: This document defines the S2ML language, version 1.0. S2ML is developed in the framework of the OpenAltaRica project, leaded by IRT SystemX, Palaiseau, France. S2ML is a freely available, prototype-oriented language for both representing the structure complex systems and structuring models of these systems. It aims at providing a minimal but sufficient set of constructs for these purposes. S2ML 1.0 Specification 2 Copyright © AltaRica Association, 2015 All rights reserved. Reproduction or use of editorial or pictorial content is permitted, i.e. this document can be freely distributed especially electronically, provided the copyright notice and these conditions are retained. No patent liability is assumed with respect to the use of information contained herein. While every precaution has been taken in the preparation of this document, no responsibility for errors or omissions is assumed.
    [Show full text]
  • Bibliography on Transformation Systems (PDF Format)
    Transformation Technology Bibliography, 1998 Ira Baxter Semantic Designs 12636 Research Blvd, Suite C214 Austin, Texas 78759 [email protected] The fundamental ideas for transformation systems are: domains where/when does one define a notation for a problem area; semantics how the meaning of a notation is defined; implementation what it means for one spec fragment to “implement” another; and control how to choose among possible implementations. The following references describe various ways of implementing one or more of the above ideas. Unfortunately, there aren't any easy, obviously good articles or books on the topic, and there is a lot of exotic technology. I recommend: the Agresti book (a number of short papers) for overview, the Feather survey paper for conciseness and broadness. These are the minimum required reading to get a sense of the field. The Partsch book is excellent for a view of transformational development using wide spectrum languages, but fails to address domains and control. The Turski book is very good for some key theory, but you have to be determined to wade through it. Bibliography [AGRESTI86] What are the New Paradigms?, William W. Agresti, New Paradigms for Software Development, William W. Agresti, IEEE Press, 1986, ISBN 0-8186-0707-6. [ALLEMANG90] Understandings Programs as Devices, Dean T. Allemang, Ph.D. Thesis, Computer Science Department, Ohio State University, Columbus, Ohio, 1990. [ALLEN90] Readings in Planning, James Allen, James Hendler and Austin Tate, Morgan Kaufmann, San Mateo, California,1990, ISBN 1-55860-130-9. [ASTESIANO87] An Introduction to ASL, Egidio Astesiano and Martin Wirsing, pp. 343-365, Program Specification and Transformation, L.
    [Show full text]
  • Components and Generative Programming
    Components and Generative Programming Krzysztof Czarnecki1 and Ulrich W. Eisenecker2 1DaimlerChrysler AG Research and Technology, Ulm, Germany [email protected] 2University of Applied Sciences Heidelberg, Germany [email protected] Abstract. This paper is about a paradigm shift from the current practice of manually searching for and adapting components and their manual assembly to Generative Programming, which is the automatic selection and assembly of components on demand. First, we argue that the current OO technology does not support reuse and configurability in an effective way. Then we show how a system family approach can aid in defining reusable components. Finally, we describe how to automate the assembly of components based on configuration knowledge. We compare this paradigm shift to the introduction of interchangeable parts and automated assembly lines in the automobile industry. We also illustrate the steps necessary to develop a product line using a simple example of a car product line. We present the feature model of the product line, develop a layered architecture for it, and automate the assembly of the components using a generator. We also discuss some design issues, applicability of the approach, and future development. 1 From Handcrafting to an Automated Assembly Line This paper is about a paradigm shift from the current practice of manually searching for and adapting components and their manual assembly to Generative Programming, which is the automatic selection and assembly of components on demand. This paradigm shift takes two steps. First, we need to move our focus from engineering single systems to engineering families of systems—this will allow us to come up with the “right” implementation components.
    [Show full text]
  • A Runtime Assertion Checker for the Java Modeling Language Yoonsik Cheon Iowa State University
    Computer Science Technical Reports Computer Science 4-2003 A Runtime Assertion Checker for the Java Modeling Language Yoonsik Cheon Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/cs_techreports Part of the Software Engineering Commons Recommended Citation Cheon, Yoonsik, "A Runtime Assertion Checker for the Java Modeling Language" (2003). Computer Science Technical Reports. 308. http://lib.dr.iastate.edu/cs_techreports/308 This Article is brought to you for free and open access by the Computer Science at Iowa State University Digital Repository. It has been accepted for inclusion in Computer Science Technical Reports by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. A Runtime Assertion Checker for the Java Modeling Language Abstract JML compiler to translate Java programs annotated with JML specifications into Java bytecode. The ompc iled bytecode transparently checks JML specifications at runtime. The JML ompc iler supports separate and modular compilation. The ppra oach brings programming benefits uchs as debugging and testing to BISLs and also helps programmers to use BISLs in their daily programming. A set of translation rules are defined from JML expressions into assertion checking code. The translation rules handle various kinds of undefinedness, such as runtime exceptions and non-executable constructs, in such a way as to both satisfy the standard rules of logic and detect as many assertion violations as possible. The rules also support various forms of quantifiers. Specification-only declarations such as model fields, ghost fields, and model methods are translated into access methods; e.g., an access method for a model field is an abstraction function that calculates an abstract value from the program state.
    [Show full text]
  • Conceptual Modeling of Time for Computational Ontologies
    IJCSNS International Journal of Computer Science and Network Security, VOL.20 No.6, June 2020 1 Conceptual Modeling of Time for Computational Ontologies Sabah Al-Fedaghi [email protected] Computer Engineering Department, Kuwait University, Kuwait 1.1 Ontologies and Conceptual Modeling Summary To provide a foundation for conceptual modeling, To provide a foundation for conceptual modeling, ontologies have been introduced to specify the entities, the ontologies have been introduced to specify the entities, the existences of which are acknowledged in the model [4]. existences of which are acknowledged in the model. Conceptual modeling involves “representing aspects of the Ontologies are essential components as mechanisms to world for the purpose of understanding and communication model a portion of reality in software engineering. In this context, a model refers to a description of objects and [, and hence] the contribution of a conceptual modeling notation rests in its ability to promote understanding about processes that populate a system. Developing such a description constrains and directs the design, development, the depicted reality among human users” [5]. Conceptualization refers to abstracting a given portion of and use of the corresponding system, thus avoiding such difficulties as conflicts and lack of a common reality that “exists beyond our concepts” [6], i.e., entities and processes that “exist” in the domain of the modeled understanding. In this cross-area research between modeling and ontology, there has been a growing interest system (note that what there may not be what exists – see [7]). It is also stated that ontology is “an explicit in the development and use of domain ontologies (e.g., Resource Description Framework, Ontology Web specification of a conceptualization” [8].
    [Show full text]
  • Towards a Unified View of Modeling and Programming
    Towards a Unified View of Modeling and Programming ∗ Manfred Broy1, Klaus Havelund2 , and Rahul Kumar3 1 Technische Universit¨atM¨unchen, Germany 2 Jet Propulsion Laboratory, California Inst. of Technology, USA 3 Microsoft Research, USA Abstract. In this paper we argue that there is a value in providing a unified view of modeling and programming. Models are meant to de- scribe a system at a high level of abstraction for the purpose of human understanding and analysis. Programs, on the other hand, are meant for execution. However, programming languages are becoming increasingly higher-level, with convenient notation for concepts that in the past would only be reserved formal specification languages. This leads to the obser- vation, that programming languages could be used for modeling, if only appropriate modifications were made to these languages. At the same time, model-based engineering formalisms such as UML and SysML are highly popular in engineering communities due to their graphical nature. However, these communities are, due to the complex nature of these for- malisms, struggling to find grounds in textual formalisms with proper semantics. A unified view of modeling and programming may provide a common ground. The paper illustrates these points with selected exam- ples comparing models and programs. 1 Introduction Over the last several decades we have observed the development of a large collec- tion of specification and modeling languages and associated methodologies, and tools. Their purpose is to support formulation of requirements and high-level designs before programming is initiated. Agile approaches advocate to avoid ex- plicit modeling entirely and suggest to go directly to coding.
    [Show full text]