The analysis of image-based biomedical data requires a flexible data model, fast computational techniques and a graphical user interface. Java and C++ are object-oriented programming languages which provide the foundations for data analysis applications. This paper explores the advantages and disadvantages of using these two programming environments for scientific computing.
Can a Software Engineering Environment (SEE) be built from Open Software? We introduce the requirements for a SEE in a large-scale, global, distributed object-oriented software development project and suggest how open software solutions can fulfill these requirements. Our suggestions are being applied in the domain of network development within Nokia.
This is an analysis of the mental life a team of software engineers can have as a cognitive entity in itself, distinguishable from the engineers who participate in the team. Literature in cognitive science, philosophy, and software development is cited to support the analysis and provide examples.
For a system to be truly adaptive, it must also change in support of evolving technologies and ontologies. When engineering to support these requirements, some of goals of reflective technologies can also be met without changes to middleware and languages. The Enterprise Intelligent Distributed Architecture (EIDA) is an attempt to realize these goals by creating a set of development tools that are also deployed with the system as run time servers. By completely automating the development of key components of the runtime system, the goal is to enable the adaptation of these components to changes in the environment, technology and ontology of the system.
The purpose of this methodology is to promote rapid software development, reusability, and support memorable experiences in object oriented thinking. We automatically produce static and dynamic model views from natural language analysis of problems with the use of Role posets technique and a semi-natural language.
An upward shift in abstraction leads to a corresponding increase in productivity. In the past this has occurred when programming languages have evolved towards a higher level of abstraction. This poster describes how domain-specific visual languages provide a viable solution for continuing to raise the level of abstraction beyond coding.
A MOO was modified to permit the writing, compilation and execution of simple Java programs. In addition to serving as an online environment for teaching object-oriented concepts, the MOO can now be used to teach the Java programming language.
Studying the community surrounding object technology and the culture it supports provides insights for current practice, future developments and training. We are using empirical studies to characterise the community and culture of object technology. The poster describes some of our findings and invites you to contribute your own experiences.
A powerful methodology for specifying scenario-based requirements of reactive systems is described, in which the behavior is played in directly from the system's GUI or some abstract version thereof, and can then be played out. The approach is supported and illustrated by a tool, which we call the play-engine.
CLAM (C++ Library for Audio and Music) offers extensible, generic and efficient design and implementation solutions for developing Audio and Music applications. Although similar libraries exist, some particularities make CLAM of high interest for the field. CLAM demonstrates that, in DSP, a structured OO design does not imply inefficient run-time behavior.
This poster presents three primitives for design (coordination laws), implementation (coordination contracts), and system configuration (coordination contexts), that are based on methodological and mathematical principles and facilitate the evolution of software systems by encouraging the separation of computation from coordination aspects. A tool implementing coordination contracts for Java is available.
A distributed pair programming experiment was conducted at North Carolina State University in fall 2001. The results of the experiment indicate that it is feasible to develop software using distributed pair programming, and that the resulting software is comparable to software developed in collocated or virtual teams (without pair programming) in terms of productivity and quality.
We present Zonnon for .NET, an evolution of Oberon for .NET that we have implemented as Academic participants in Project 7. Zonnon is a Pascal language family member featuring a non-standard object model. We emphasize the mapping of Zonnon's constructs to .NET and its integration, using the novel CCI compiler technology.
A Universal DataBase Connectivity (UDBC) component has been developed with component-based approach. This paper presents our design goal, software architecture, and implementation issues for UDBC. Strength, limitations, and possible extension of JavaBean component architecture and its design environment are discussed.
The workshop is about clear, precise and explicit OO specifications of business and system semantics, independently of any (possible) realization. The systems we build or buy are all too often not what they are supposed to be. The specific theme this year is on serving the customer.
As the term convergence is heavily used in current publications, we suggest to define it as multidisciplinary, inhomogeneous integration with the aim to reach an added value. We use the convergence between telecommunication and information technology as an example to show different classes of convergence on different levels of abstraction.
Stottler Henke Associate's Inc.'s Object-Oriented Design Learning Environment (OODLE) is an early prototype intelligent tutoring system aimed at teaching object-oriented design skills by coached practice with realistically complex design problems. OODLE's pedagogical approach is based on the instructional practices of Craig Larman, author of Applying UML and Patterns.
We need various higher level services for using Peer-to-Peer(P2P) network effectively and for building useful applications. We introduce a new distributed name service which enables bottom-up combination of local name spaces by complete decentralized control. Our name service provides much benefit for P2P networking and groupware applications.
A Web-based exercise package for engineering is developed for teaching engineering students. It is based on PHP and can be accessible from the Web by both students and administrator. It is very user-friendly and can be updated easily. Various types of exercises are available and found very useful for teaching.
If software is so easy to create, why is it so difficult to change existing software to keep up to date with changing requirements? Discovery costs -- the costs of learning what one needs to know in order to evolve an existing software system -- has proven to be the dominant (but often unrecognized) cost in many software systems.
Many-to-Many Invocation (M2MI) is a new paradigm for building collaborative systems that run in wireless proximal ad hoc networks M2MI provides an object oriented method call abstraction based on broadcasting.
Polymorphous Computing Architectures (PCA) represent a significant leap in the capabilities of computing systems, but also a dramatic increase in software complexity and fragility. We present our synthesis of technologies generated to date in the DARPA-funded Morphware Forum, to develop a stable and scalable software development platform for PCA devices.
This poster describes the code developed for simulations of disordered electron-phonon systems. This code uses the C++ Standard Template Library (STL) and is designed to be easily changed when the physicists want to change aspects of the simulation.
UniFrame is a framework for seamlessly assembling heterogeneous distributed components. It's based on the Unified Meta-component Model (UMM) for describing components. Two-level grammar (TLG) can be used not only to formally specify UMM component model, but also for translation into other component representations for component service exportation and assembly.
This project proposes a stable model-based bidding/quotation system. The primary goal is to highlight the benefits to systems analysis, design and building, of a stable modeling approach, as opposed to the more commonly used traditional modeling approaches.
We describe the a framework for extracting partial data traces and using these to drive an incremental cache simulator. The application binary is instrumented for memory accesses and a compressed subevent trace is produced. The memory addresses are mapped to variables in source code, enabling reference specific cache statistics generation.
An advanced distance learning method is introduced that is especially programmed for non-native English speakers. Many language features have been implemented to arouse undergraduate students' interests in learning. The package is also programmed to help professors to teach much easier than before.
In order to teach objects and classes effectively with an object-first approach, some basic knowledge of UML is required. In this paper, we describe a beginners UML tool that was created to assist in teaching introductory level, object-oriented programming courses - without overwhelming students with the complete UML syntax.
Our poster will summarize the discussion of the earlier workshop with the same title. In that workshop, we will have explored techniques for making software more easily understood by programmers, testers, and even end users inclined to thinker with it. We're restricting our scope to code and, secondarily, tests.