Glazer, Brendon C. (Brendon Charles), 1975- · DSpace@MIT (Massachusetts Institute of Technology) · 1999
Thesis (S.B. and M.Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1999.
Cited by 0Open access
Perry R. James, et al. · 2010
Extended Static Checking (ESC) is a fully automated formal verification technique. Verification in ESC is achieved by translating programs and their specifications into verification conditions (VCs). Proof of a VC establishes the correctness of the program. The implementations of many seemingly simple algorithms are beyond the ability of traditional Extended Static Checking (ESC) tools to verify. Not being able to verify toy examples is often enough to turn users off of the idea of using formal methods. ESC4, the ESC component of the JML4 project, is able to verify many more kinds of methods in part because of its use of novel techniques which apply multiple theorem provers. In particular, we present Offline User-Assisted ESC (OUA-ESC), a new form of verification that lies between ESC and Full Static Program Verification (FSPV). ESC is generally quite efficient, as far as verification tools go, but it is still orders of magnitude slower than simple compilation. As can be imagined, proving VCs is computationally expensive: While small classes can be verified in seconds, verifying larger programs of 50 KLOC can take hours. To help address the added cost of using multiple provers and this lack of scalability, we present the multi-threaded version of ESC4 and its distributed prover back-end.
Cited by 0
Wolfgang Scholz, Thomas Thüm, Sven Apel et al. · 2011
In the development of complex software systems, interactions between different program features increase the design complexity. Feature-oriented software development focuses on the representation and compositions of features. The implementation of features often cuts across object-oriented module boundaries and hence comprises interactions. The manual detection and treatment of feature interactions requires a deep knowledge of the implementation details of the features involved. Our goal is to detect interactions automatically using specifications by means of design by contract and automated theorem proving. We provide a software tool that operates on programs in Java and the Java Modeling Language (JML). We discuss which kinds of feature interactions can be detected automatically with our tool and how to detect other kinds of interactions. Categories and Subject Descriptors
Cited by 0
Thiago Viana · Journal of Computing Science and Engineering · 2013
Bad smells are usually related to program source code, arising from bad design and programming practices. Refactoring activities are often motivated by the detection of bad smells. With the increasing adoption of Design-by-Contract (DBC) methodologies in formal software development, evidence of bad design practices can similarly be found in programs that combine actual production code with interface contracts. These contracts can be written in languages, such as the Java Modeling Language (JML), an extension to the Java syntax. This paper presents a catalog of bad smells that appear during DBC practice, considering JML as the language for specifying contracts. These smells are described over JML constructs, although several can appear in other DBC languages. The catalog contains 6 DBC smells. We evaluate the recurrence of DBC smells in two ways: first by describing a small study with graduate student projects, and second by counting occurrences of smells in contracts from the JML models application programming interface (API). This API contains classes with more than 1,600 lines in contracts. Along with the documented smells, suggestions are provided for minimizing the impact or even removing a bad smell. It is believed that initiatives towards the cataloging of bad smells are useful for establishing good design practices in DBC.
Cited by 3Open access
Savegren, Joakim, Edling, Joar · KTH Publication Database DiVA (KTH Royal Institute of Technology) · 2022
Modeling is a fundamental property in today’s development of embedded systems. Models of computation enable us to describe the functionality and characteristics of a system on a higher abstraction level which gives the designer great insight in the behavior of the final implemented system at a very early stage in the design process. The ForSyDe modeling framework is based on the Model-of-computation (MoC) theory. Synchronous data-flow (SDF) is one MoC that uses actors and tokens to describe the communication and behavior of a system. Currently, the ForSyDe input modeling language exists only as a Haskell implementation and a System C implementation. The main problem is that the ForSyDe tool ecosystem is implemented across different languages without proper connections between tools. However, a framework to make such connections exists, namely the ForSyDe IO Java supporting library. In addition, any language running on the JVM can already be connected to ForSyDe IO. Hence, the thesis explores how a modeling workbench can be designed as a domain specific language (DSL) in the JVM language Groovy using the Gradle environment. Since there are many modules in the ForSyDe modeling framework, one for each MoC, this thesis targets one module: SDF. This choice is enough to explore whether it is possible to achieve the same modeling that Haskell provides in a JVM language, without sacrificing the user experience while modeling. The resulting Groovy DSL can describe the Synchronous Data-Flow MoC with the purpose of modeling SDF graphs, often used in image processing applications. By using the produced DSL workbench, a designer can model SDF applications in an efficient way. There were some differences when comparing the Groovy DSL to the Haskell implementation, such as the methods for defining actors and connecting them. However, the core modeling concepts are the same. Combining Groovy and Gradle offered an easy way of designing a DSL using the concept of closures. The created Groovy DSL is the first member of a family of textual DSL’s for describing MoC’s and therefore acts as a foundation for future work within the ForSyDe modeling framework. It can be extended to support more modules and functions or to inspire others to develop new DSL’s.
Cited by 0Open access
Lilian Burdy, Yoonsik Cheon, David Cok et al. · Data Archiving and Networked Services (DANS) · 2003
The Java Modeling Language (JML) can be used to specify the detailed design of Java classes and interfaces by adding annotations to Java source files. The aim of JML is to provide a specification language that is easy to use for Java programmers and that is supported by a wide range of tools for specification type-checking, runtime debugging, static analysis, and verification. This paper
Cited by 0Open access
T H Wahyuni, Satrio Wahono, Sri Muryati et al. · 2019
The article investigated the modeling elements within the learning process by utilizing visual aids to help the students in comprehending the Indonesian Phonology. It aimed to: (1) describe the current physical instruments of Indonesian Phonology used by Indonesian Language and Literature Department
Cited by 0Open access
Hongfu Wang · 2006
VRML,a modeling language serving as a milestone of the virtual reality technique,is widely used on the Internet.The introduction of the Java language makes VRML's virtual scene be achieved even better.This thesis discusses the accomplishing method which Java used to control the scene established by VRML through examples,and the realistic significance brought about by the perfect combination of Java and VRML.
Cited by 0
Isidoros Sideris, Dimitris Pilitsos, George Economakos et al. · 2015
Abstract—In this paper we present a methodology for modeling Java microarchitectures and evaluating their performance. The models are written in a modeling framework based on Java language which allows detailed cycle accurate modeling in the area of focus with less detailed and more efficient statistical models for the rest. The modeling is based on a Java extension package that allows hardware modeling by providing classes and primitive calls, in the same way SystemC extends c. By adopting Java in hardware modeling great productivity gains can be brought to the hardware designer or computer architect, since it has simple object model and prevents us from the error prone pointers. The methodology focuses on modeling Java processor techniques in this powerful framework, but it can be generalized to other types of processors or hardware components. As a modeling example, we evaluate the performance of a stack folding optimization technique for Java processors. I.
Cited by 0
Kevin J. Healy, Richard A. Kilgore · 1998 Winter Simulation Conference. Proceedings (Cat. No.98CH36274) · 2002
Silk is a general-purpose simulation language based on the Java programming language. Silk, however, is more than just another simulation language. It is a new standard for creating usable and reusable object-oriented simulation components and models. The Silk modeling language is usable because it represents a unique marriage of familiar process-oriented modeling constructs and the powerful object-oriented features of a general purpose programming language. Silk models are reusable because they are created using professional Java visual development environments that support graphical assembly of self-contained Silk modeling components based on the JavaBeans component architecture. Java's adoption as the standard language for computation on the World Wide Web also means that Silk models can be deployed in ways that exploit this new medium.
Cited by 25
Bob Goldberg · 2005
This report provides an intuitive description of the DASL 1 application modeling language, followed by a formal language specification. DASL was originally developed as part of the Ace research project at Sun Microsystems Laboratories to bridge the gap between high level application modeling languages, such as UML, and the current implementation languages and middleware in which applications are written, such as Java™, J2EE™, and evolving middleware based on web services. The primary goal of the research was to seek a sweet spot between the elegant abstractions possible in UML and the implementations one can express in Java, by creating a complete application modeling language that captures the application’s semantics completely and globally. The resultant modeling language is effectively a domain-specific language for a very large domain of distributed business applications. At its core, it is a textual language that, like Java and most 3GLs, is easily read and understood by people. The textual language is tied to a well-defined metamodel that supports a graphical, UML view. The DASL deployment engine converts an application “model ” directly into executable code, bypassing hand coding of an implementation “model. ” DASL vastly simplifies the process of storyboarding, prototyping, and implementing
Cited by 0
Ramakrishnan Mukundan · 1999
Java provides most of the primitive functions necessary for implementing advanced graphics algorithms. Being a language that is highly portable and concurrent, Java also has all the capabilities of a powerful general purpose programming language suitable for a wide range of graphics applications. This paper addresses the main issues pertaining to teaching theoretical computer graphics courses, using Java as the language for implementation and project development. The paper also gives a framework of Java classes that can cater to the modeling of three-dimensional objects, transformations, and rendering algorithms.
Cited by 6Open access
Ramakrishnan Mukundan · ACM SIGCSE Bulletin · 1999
Java provides most of the primitive functions necessary for implementing advanced graphics algorithms. Being a language that is highly portable and concurrent, Java also has all the capabilities of a powerful general purpose programming language suitable for a wide range of graphics applications. This paper addresses the main issues pertaining to teaching theoretical computer graphics courses, using Java as the language for implementation and project development. The paper also gives a framework of Java classes that can cater to the modeling of three-dimensional objects, transformations, and rendering algorithms.
Cited by 1
Class Time · 2012
The class is offered online. Office Hours: By appointment. Students will communicate with their instructor via email and Blackboard tools, such as Discussion Groups. Course Objectives Help students understand and apply: • the methods of object-oriented design and programming in the context of the software development cycle, • the basics of Unified Modeling Language for analysis and design of object-oriented software, • Java programming, as a tool for software implementation, • patterns for software design, for improving software quality. Course Description Brief introduction to Java; software development process; functional specification and use cases; Unified Modeling Language diagrams; design methodology; OO design principles; implementation in Java; design patterns; Java applet framework; other Java topics (reflection, serialization), multithreading. Blackboard: All course material will be posted on Blackboard
Cited by 0
Thomas Schneider, J. Mades, A. Windisch et al. · 2002
This paper presents a mixed-signal/multi-language simulation environment for the languages VHDL-AMS, Java, and C++. The environment is implemented in Java and based upon a previously developed VHDL-AMS design environment consisting of a compiler, an elaborator and a simulator. The latter was extended by open object-oriented Java and C++ interfaces towards system-level simulation capabilities. Obviously, this approach lends itself to a VHDL-centric modeling style. However it also results in a well-defined overall simulation semantics based on the proven semantic principles of VHDL-AMS. Moreover the object-oriented Java and C++ interfaces enforce a much better language modeling style than traditional callback-based procedural language interfaces. The presented open architecture provides good capabilities for research in the field of system-level simulation.
Cited by 2
Abhay Bhorkar · Iowa State University Digital Repository (Iowa State University) · 2000
The Java Modeling Language (JML) is a behavioral interface specification language tailored for specifying Java modules. This paper describes a source-to-source translation tool that takes a JML specification and Java source code for a module and produces source code that checks assertions at run-time. It describes issues unique to JML, including specification-only variables, refinement, specification inheritance, and privacy. It also describes the design and implementation of the translation tool.
Cited by 24Open access
Behrooz Nobakht · 2016
The core contributions of this thesis target the intersection of object orientation, actor
model, and concurrency. We choose Java as the main target programming language
and as one of the mainstream object-oriented languages. We formalize a subset of
Java and its concurrency API to facilitate formal verification and reasoning
about it. We create an abstract mapping from a concurrent-object modeling language, ABS, to the programming semantics of concurrent Java. We provide the formal semantics of the mapping and runtime properties of the concurrency layer including deadlines and scheduling policies. We provide an implementation of the ABS concurrency layer as a Java API library and framework utilizing the latest language additions in Java 8.
Cited by 0
Ali Abarkan, Abderrahim Saaidi, Majid Ben Yakhlef · 2019
In this article, we are interested in the adaptation of a model for the learning of the Java language. After studying some of the best-known models in the field of Learning Games creation, and the basic sub-models for modeling the java language course, we have adapted the “Case Study” model that respects a choice adequate with our goal. Similarly, in this work we will present some of the objectives and advantages of the chosen model, in order to apply it in a java language learning situation.
Cited by 0
Gary T. Leavens, Yoonsik Cheon · 2003
This document gives a tutorial introduction to the Java Modeling Language (JML), and explains how JML can be used as a powerful design by contract (DBC) tool for Java. JML is a formal behavioral interface specification language for Java that contains the essential notations used in DBC as a subset. The basic concepts of DBC are explained with a particular emphasis on how to use JML notations to specify Java classes and interfaces. JML tools such as JML compiler (jmlc) are also introduced, with examples of their use. 1
Cited by 0
Henrique Reb, Ricardo Lima, M Corn et al. · 2008
The Java Modeling Language (JML) is a behavioral interface specification language (BISL) designed for Java. It was developed with the aim of improving the functional software correctness of Java applications. The JML compiler(jmlc) generates bytecodes that use the Java reflection mechanism and data structures not supported by Java ME applications. In order to overcome this limitation, we proposethe use of AspectJ to implement a new JML compiler, which generates an instrumented byte code compliant with both Java SE and Java ME applications. The paper also includes a comparative study to demonstrate the quality of the final code generated by our compiler. Results indicate that the overhead in code size produced by our compiler is very small, which is essential for Java ME applications.
Cited by 7