Academic Research

Professor Marovac’s full bibliography can be accessed here. The list of his most significant academic publications can be accessed via ResearchGate, and is listed below.

UML based embedded documentation for semi-automatic software development

September 2007 | Nenad Marovac

A few years ago we introduced a concept of "Embedded Software Documentation". This embedded documentation consists of special documenting structures referred to as Flagged Sentences. The purpose of Flagged Sentences is to assists us in reading and understanding software programs and their individual components during the maintenance of these programs and reuse of the components. This embedded documentation also helps us in functional decomposition of given problems and design of related computer programs and in ensuring the consistency of interfaces within these programs. After the introduction of Object Oriented Modeling and Design, we expanded the concept of Flagged Sentences to incorporate a specification and classification mechanism based on Object Oriented Modeling and Design. This paper presents new extensions to deal with both: UML language for modeling of problems and software components implementing solutions to these problems, and Unified Process for iterative development of software systems. The basic objective in the current expansion of Flagged Sentences is to accommodate Object Oriented Modeling using UML, and to communicate all the necessary information to tasks that are part of modern and efficient development environments for software production. The information is provided in a format that is easy to extract and automatically organize, classify and use. The information includes data about application domains, problems to be solved, the associated software systems being developed and the related documentations.

Infrastructure for Crisis-2000

January 2001 | Nenad Marovac

Either nature-caused and man-made disasters seem to be occurring more frequently and are more severe, or our communication technology has advanced considerably and we are made aware more quickly and completely of disasters happening everywhere in the world. Such disasters can cause a large number of injured, dead and homeless. Some disasters are small and can be handled by the local authorities. On the other hand, some of them may be large in magnitude and spread over large geographical areas and therefore require coordination by authorities in many localities, as well as authorities of county, region, state and country levels - as in the case of very large earthquakes, coordinated worldwide distributed terrorist activities, etc. This paper1 presents the infrastructure for CRISIS-2000 system, a worldwide distributed system for crisis management. The purpose of the system is to enable optimal management of activities and resources in handling disasters in an arbitrary large geographical area, i.e. it allocates the resources in a manner so that effects of the crises, e.g. number of fatalities and human suffering, are minimized. The system applies the most recent advances in methodologies of Operations Research, Artificial Intelligence, Information Management and Web Technology.

CRISIS-2000: A decision support system for major disasters

January 2001 | Nenad Marovac & Paul Stähly

Handling of natural and man made disasters, like train and group accidents on motorways, plain crashes, chemical hazards, earthquakes etc., places great demands on management as well as on the resources, i.e. rescue and care functions. Some of these disasters are small and can be effectively handled by local authorities and resources, while other disasters may be larger or spread over large geographical area and therefore require coordination of authorities and resources in many localities, as well as authorities on a higher level, as in the case of large earthquakes, terrorist activities, etc. The recent developments of distributed information systems like the Internet enable decision support and process management systems for handling major disasters that would not have been possible a few years ago. This paper presents such a system. The system is a distributed information and decision support system that supports the decision-makers in handling major disasters. It combines methodologies of Operations Research methods (mathematical optimization, simulation), artificial intelligence (knowledge-based systems, pattern recognition), and information management (network-based, platform independent). The paper concentrates on the concept of the decision support and especially on the structure of the information management subsystem, which is one of its basic components.

Embedded documentation for semi-automatic program construction and software reuse

May 1998 | Nenad Marovac

The purpose of this paper is to present a mechanism to classify software components for software reuse and semi-automatic program construction. The paper goes on to describe how is the classification information incorporated into software components through Flagged Sentences in Embedded Software Documentation.

Software development environment based on HyperNet

March 1997 | Nenad Marovac

In supporting groups working on development of large software programs we identify three classes of tools:1. CASE tools: tools which are used directly in the program development (specification, design, implementation, and testing).2. environment tools: tools which together are and effect the development environment, i.e. tools used in organizing and maintaining development information (program specifications, designs, code, test cases, etc.) which may be distributed world-wide.3. groupware tools: tools which are used to effect group communication and interaction, i.e. tools used for submission, organization and distribution of ideas and any issues related to the development and management process.In this paper we will address the second class of tools, the environment tools, and present an environment largely based on HyperNet - A tool to choreograph world wide distributed hypermedia documents. The environment incorporates three main functionalities:1. A project knowledge base and associated processor. The knowledge base stores all material relevant to a project, i.e. specification, design, implementation, testing and maintenance related documents and source code for the project including operating system scripts required to compile, link, execute and test the software.2. mechanism supporting libraries of reusable material. The material includes program specifications, design documents, code and test data and procedures.3. documentation processor which produces on-demand documentation for the project on any desirable level of detail.

Interactive Decision Support System for Operational Research

January 1995 | Nenad Marovac & Ulrich Tüshaus

Each day our world becomes more dynamic and competitive. Managers are constantly looking for improved decision making tools that allow them to respond more quickly and precisely to management and operational challenges as they look for that competitive edge. And, as the number of tools increases, so does the need for these tools to be highly interactive and complimentary. This maximizes the capability and flexibility of management decision making. In this paper, we propose an interactive platform that bridges the strengths of the two types of tools, a decision support tool and a semi-automatic construction tool. First, a decision support tool allows for the creation of a model and the automatic selection of a solver from an existing library. The manager is able to respond immediately with confidence by utilizing a proven on-going database. However, where this is not applicable because of a completely new situation, managers are also able to respond quickly with a semi-automatic construction tool. This tool shows how the expanded capability increases versatility, reduces response time, and never leaves managers restricted by existing programs.

Guidelines for embedded software documentation

April 1994 | Nenad Marovac

Embedded program documentation, i.e. documentation included in computer programs within program comments, typically does not follow any formal standards or conventions with regards to its contents and structure.Software development organizations do not enforce any standards covering the information content or format of the embedded documentation. At best they may encourage the use of some proprietary rules. It is very common in such organizations that individual programmers have their own individual documentation styles.This is unfortunate since embedded documentation, containing proper information and being properly structured, can greatly assist us in reading and understanding software programs and their individual components during the maintenance of these programs or reuse of their components. Furthermore, the use of embedded documentation can assist in functional decomposition and design of computer programs and in ensuring the consistency of interfaces within programs.The purpose of this document is to report on the schema we use at San Diego State University in software projects and to propose guidelines regarding documentation embedded in computer programs and related documents. We believe that these guidelines will help us to maintain conformity in software documentation in programs developed at SDSU in Software Engineering and MultiMedia Labs.Furthermore, we have developed tools that are based on the proposed embedded documentation and that are used in four areas:1. interactive functional decomposition and design of programs2. automatic incorporation of submitted software into reuse libraries3. conversion of developed software into hypertext like structures that are used to maintain all material related to a software project in a form suitable for inspection, browsing, and updating4. automatic generation of software documentation on demand.

Link Associated Computation in HyperNet

January 1994 | Nenad Marovac

HyperNet is an authoring and browsing system for the creation and navigation of multimedia documents. It was designed to provide a mechanism for very fast choreographing and configuration of hypermedia documents of arbitrary structure and content. HyperNet features enable a group of users scattered world-wide to compose hypermedia documents from components which exist in a set of world-wide distributed data bases. In this paper we present two new features in HyperNet. The first feature, synchronization clauses in HyperNet links, allows for synchronization of multimedia components in hypermedia documents. The second feature, active links, is not commonly found in hypertext machines. These links associate with them extensive computations. Active links add new functionality to HyperNet which includes interface to and browsing of external distributed data bases and interfaces to and execution on demand of computational modules. This new functionality extends the use of HyperNet to new application domains, e.g. Decision Support Systems, Group Support in Cooperative Work, Interactive Database Browsing, Software Development Environments, and Interactive Linking and On Demand Execution of World-Wide Distributed Reusable Modules.

HyperNet: A tool to choreograph worldwide distributed hypermedia documents

June 1992 | Nenad Marovac & Larry Osburn

HyperNet is an authoring and browsing system facilitating creation and navigation of multimedia documents. It is conceived and designed to provide a mechanism for very fast choreographing and configurating of hypermedia documents. This system provides to the users a hypermedia integration and browsing environment to document component databases distributed across the world, provided they have access to the Internet network and are valid HyperNet sites. The intention was for users to be able to search for and retrieve documents stored locally and/or remotely, while the access mechanism being completely transparent. This system was implemented and tested with a suite of hypermedia document components which were distributed over southern California and Europe.

Handling fonts in electronic publishing systems

December 1987 | Nenad Marovac

An electronic publishing system (EPS) uses a variety of different typefaces. Implementations of typefaces are commonly referred to as fonts. Typically, sets of fonts used in an EPS come from different sources, i.e. vendors, and they use different encoding mappings, e.g. ASCII, XC1, EBCIDIC, etc. Furthermore, a logical font which the user uses or sees may be based on a different number of machine (printer or typesetter) fonts. In an EPS system fonts must be handled in such a way to shield the user from such idiosyncrasies and also to make tasks of document composition and typesetting as efficient as possible. This paper treats such problems and proposes a solution for handling of fonts for the XPS-700 Xerox Publishing System.

Page description languages

January 1987 | Nenad Marovac

A page description language is a programming language used to describe the structure and appearance of a document page, in a device (printer) independent way. A document description language is a language which not only specifies structure and appearance of a page, but also the structure of a document, the global document composing environment, and relationships between pages, combining pages of one document within another document, etc. The printing environment specification subset of a language, is used to specify printing options like one sided, and two sided printing, paper-shift during the printing of a page, tray used to feed in paper to print the entire document or on a page basis, etc. There are two objectives in presenting this paper. First, to present the concepts of page and document description, as well as printing environment specification languages, and second to describe experience gained in two implementations related to Interpress, a XEROX developed document description language incorporating a printing environment specification subset.

Interactive computer aided design using computer graphics

December 1983 | Nenad Marovac & William S. Elliott

The development of a software system for general network design using interactive computer graphics poses many problems, which must be solved in a way consistent with the principles of man-machine communication as applied to network design, so as to obtain a system suited both to networks of any nature and also to any type of network design technique.This paper states the principles influencing the development of such a system and presents the design decisions made and the one implementation.

On interprocess interaction in distributed architectures

September 1983 | Nenad Marovac

Computational concurrency has been with us for some time and is here to stay, particularly in the domain of distributed systems and fault-tolerant computers. Processes executing concurrently in such systems communicate in order to exchange information and to synchronize the activities they perform. Classical interprocess synchronization mechanisms, based on shared variables and semaphores, are neither efficient nor methodically sound; nor do they produce correct solutions when dealing with autonomous processes running on different processors.The purpose of this paper is to define the problem, submit the arguments against using shared variables and semaphores for interprocess synchronization in distributed systems, and to present a mechanism for handling interprocess interaction in such systems.

A systematic approach to the design and implementation of a computer instruction set

March 1983 | Nenad Marovac

When selecting the instruction set for a computer family, the designer must consider several criteria. The design considerations leading to the final instruction set for a new computer are very seldom published. The purpose of this paper is twofold: Discussion of the design and implementation criteria for an instruction set, and proposal of a systematic approach for the design and implementation of an instruction set.

The Rotating Bus as a Basis for Interprocess Communication in Distributed Systems

February 1982 | Nenad Marovac

In the last decade a large number of different interprocess connecting structures and associated protocols were implemented in systems incorporating multiple processors. Efforts in the research of interprocess communication have been intensified in latter years in connection with the research and development of distributed systems. However, most of the developed structures were oriented towards communication between complete computers with full processing power, and involved these computers too much in the communication between processes. What we propose here is more along the lines of the classical bus structure with distributed data propagation and control. Our mechanism is based on the rotating bus concept; it ensures simplicity of interconnecting structures, communication control procedures and very small time overhead in interprocess communication within a computing system using the rotating bus features. It also allows for simple expansion of the system. The mechanism, with completely distributed control, is mainly intended for use in interprocess communication in multi-processor systems, computing systems with distributed architecture and in-house networks linking intelligent terminals.

A network oriented information structure: Networks, semantics and structures

December 1980 | Nenad Marovac

This paper describes a network-type information structure applied to store models, necessary for the analysis and design of networks of a general nature—such as electrical networks, queueing networks, critical path networks, etc.—within a computer memory.The paper presents a view on some general structural quantitative and qualitative properties of networks and illustrates how that view was transported to the organisation of the information structure.

An Approach to the Problem of Detranslation of Computer Programs

August 1980 | R. Nigel Horspool & Nenad Marovac

A crucial problem in the decompilation or disassembly of computer programs is the identification of executable code, i.e. the separation of instructions from data. This problem, for most computer architectures, is equivalent to the Halting Problem and is therefore unsolvable in general. The problem of identifying instructions is examined in this paper and an algorithm that will ‘usually’ perform a correct analysis is described. In addition, other aspects of disassembly are discussed and algorithms outlined.

Interactive computer aided 3D engineering and art design

December 1979 | Nenad Marovac

DESIGNART is an interactive software system applied for computer aided 3D engineering and art design using computer graphics. The purpose of this paper is to present some ideas used in the design and implementation of the system and its data base, as well as to express some views concerning its application.

Sieve Method for Real-Time Computer-Aided Extraction of Multivalued Analog Signals in the Presence of Noise

November 1978 | Nenad Marovac

This paper presents a method used to separate the real values of analog signals encoded together with noise in a number of signal measurements (samples). The method is based on two selection norms: the norm of acceptance of a real signal value, and the separation norm used to iteratively regroup the samples and eliminate the samples containing the noise only.

A network-oriented language—A new approach to network design, using interactive graphics

December 1977 | Nenad Marovac & W. S. Elliot

A language is proposed for the design of any network, using interactive graphics as an aid to the design process. The language, NOL-1, is a higher level problem-oriented programming language. It is based on the network definition language NEDLAN (see [1] and [8]) and associated mechanisms, and it incorporates definition, decision and control, dynamic graphical input and output and analysis statements.Combining all these statement types with due regard to ergonomic factors in the use of interactive graphics for designing networks, a network-oriented higher level language to be used with interactive graphics is obtained.

The structures of the network definition language NEDLAN. Its use in defining networks in CAD using interactive computer graphics

December 1976 | Nenad Marovac

NEDLAN is a problem oriented language used to define structure (syntax) of classes of networks, properties of parts of networks and relationships between these parts within the networks. The obtained definitions are used by a CAD software system in exploration (analysis and design) of networks, belonging to the defined classes, in an interactive graphics environment.This paper presents the structures of the language and illustrates its use in defining classes of networks.

A Method for Defining General Networks for CAD, Using Interactive Computer Graphics

November 1974 | Nenad Marovac

The use of interactive computer graphics in CAD applications requires a great deal of programming effort. To avoid this effort many general display handlers and graphic languages have been written. They enable programming on a higher level as well as calls in a higher level programming language but they suffer from three disadvantages: they are oriented too much towards graphics and geometry, the handlers and languages are procedure oriented as opposed to problem oriented and modification in picture primitives requires re-programming and re-compiling. This paper proposes a method for defining general networks which overcomes these problems.

HyperModel - A Distributed Laboratory for Teaching of Object Oriented Modeling

Nenad Marovac

Understanding and learning principles of Object-Oriented Modeling is a long and tedious process. This makes adopting the OO modeling in software design more difficult. In this paper we present a system used to classify, describe and store OO models and associated artifacts into a world- wide distributed platform. This enables students anywhere in the world to access stored models and associated artifacts that can assist them in building desired software systems.