Object-oriented programming (Computer science)

Model
Digital Document
Publisher
Florida Atlantic University
Description
In this thesis, different methods to access relational databases from an object oriented programming language like Java have been investigated. The approaches that are covered are JDBC (Java Database Connectivity), SQLJ (industry standard for embedding SQL in Java) and Java Blend (product from Sun Microsystems, that provides object-oriented way to access data in a relational database). The emphasis is given to Java Blend, as it is a new tool with a very broad scope. And arguments in support of Java Blend as a better approach compared to JDBC and SQLJ are presented.
Model
Digital Document
Publisher
Florida Atlantic University
Description
The goal of this dissertation is to propose an industrial-strength formal model for object-oriented real-time systems that captures real-time constraints using industry standard notations and tools. A light-weight formalization process is proposed that is semi-formal, graphical and easier to read and understand. This process supports formal behavior analysis, verification and validation. It is very effective in early detection of incompleteness and ambiguities in the specifications. The proposed process uses industry standard tools and fits well within stringent industrial schedules. Formal requirements analysis is conducted using High Level Message Sequencing Chart (HMSC) and Message Sequencing Chart (MSC). In the formal analysis phase, the static structures are modeled using Unified Modeling Language (UML) and the constraints are formalized using Object Constraint Language (OCL). System behavior is formally modeled using Specification and Description Language (SDL) during the formal design phase. SDL is used for behavior modeling due to wide commercial availability of SDL-based tools for formal behavior analysis and validation. Transition rules mapping from UML Class Diagrams and Statecharts to SDL models are proposed. SDL models are formally simulated and validated during the formal validation phase. Using the proposed process real-time clock, timer, periodic process, aperiodic process, resource and precedence constraints were formalized. Different types of timers, such as periodic, aperiodic, one-shot, fixed-interval and variable-interval timers are derived using inheritance models. Semaphore wait and signal operations are formalized as part of the resource constraint. Pre-conditions, post-conditions and invariants for the real-time constraints were captured using OCL. Behavior of the proposed models were captured using Statecharts. The proposed mapping rules were used to translate the behavior models to SDL. The SDL models were formally simulated and validated using Telelogic Software Development Tool (SDT). The tools allowed extensive model analysis and helped uncover several design flaws. The real-time constraints were stereotyped and packaged into reusable formal components. These components can be easily imported by applications. Two case studies, Cruise Control System and Bottle Filling System, are included to illustrate the use of the proposed process and the real-time package. The "industrial-strength" of the process was validated by utilizing the proposed process in an industrial project where it was found to accelerate the development process.
Model
Digital Document
Publisher
Florida Atlantic University
Description
Real-time systems are systems where time is considered a system resource that needs to be managed. Time is usually represented in these systems as a deadline to complete a task. Unfortunately, by adding timing to even simple algorithms, it complicates them greatly. Real-time systems are by nature difficult and complex to understand. Object-oriented methodologies have attributes that allow real-time systems to be designed and implemented with less error and some control over the resultant complexity. With object-oriented design, the system is modeled in the environment that it will be used in. Objects themselves, are partitions of the system, into logical, understandable units. In this dissertation, we start by surveying the current real-time object-oriented design methodologies. By comparing these methodologies and developing a set of criteria for evaluating them, we discover that certain aspects of these methodologies still need some work. The most important aspects of the methodologies are understanding the effects of deadlines on statechart behavioral models and understanding the effects of deadlines when object models are inherited or undergo aggregation. The effects of deadlines on statecharts are then explored in detail. There are two basic ways that deadlines are added to statecharts. The first, and most popular, is adding timing as a condition on a state transition. The second is adding a count down timer to a state and forcing a transition if the timer reaches zero. We show that these are equivalent and can be used interchangeably to simplify designs. Next, the effects of deadlines on behavior models when the corresponding object models undergo inheritance or aggregation are studied. We will first analyze the effects on the behavior model when object inheritance is encountered. We found eight ways that the behavior model can be modified and still maintain the properties of inheritance. Finally, deadlines are added and the analysis is repeated.
Model
Digital Document
Publisher
Florida Atlantic University
Description
In this dissertation, an object-based I/O architecture for personal computers (PCs) and workstations is proposed. The proposed architecture allows the flexibility of having I/O processing performed as much as possible by intelligent I/O adapters, or by the host processor, or by any processor in the system, depending on application requirements and underlying hardware capabilities. It keeps many good features of current I/O architectures, while providing more flexibility to take advantage of new hardware technologies, promote architectural openness, provide better performance and higher reliability. The proposed architecture introduces a new definition of I/O subsystems and makes use of concurrent object-oriented technology. It combines the notions of object and thread into something called an active object. All concurrency abstractions required by the proposed architecture are provided through external libraries on top of existing sequential object-oriented languages, without any changes to the syntax and semantics of these languages. We also evaluate the performance of optimal implementations of the proposed I/O architecture against other I/O architectures in three popular, PC-based, distributed environments: network file server, video server, and video conferencing. Using the RESearch Queueing Modeling Environment (RESQME), we have developed detailed simulation models for various implementations of the proposed I/O architecture and two other existing I/O architectures: a conventional, interrupt-based I/O architecture and a peer-to-peer I/O architecture. Our simulation results indicate that, on several different hardware platforms, the proposed I/O architecture outperforms both existing architectures in all three distributed environments considered.
Model
Digital Document
Publisher
Florida Atlantic University
Description
Providing multiprocessor capability to the class of computers commonly referred to as personal workstations is the next evolutionary step in their development. Uniprocessor workstations limit the user in throughput, reliability, functionality, and architecture. Multiprocessor workstations have the potential of increasing system throughput. A multiprocessor system with expanded architecture derived from a set of heterogeneous processors gives the user a diverse application base within a single system. The replication and diversity offered in systems of this design, when coupled with fault-tolerant design techniques, enhances system reliability. A heterogeneous multiprocessor architecture is presented which combines loosely- and tightly-coupled configurations (multicomputer and multiprocessor). This architecture provides for incremental growth of the system, either by static or dynamic reconfiguration. The software view of the system is that of an object-oriented environment. The object-oriented approach is used to unify the heterogeneous nature of the system. The process is the unit of concurrency in the system and cooperating concurrent processes are supported. A set of system primitives are provided to support the requirements of a heterogeneous multiprocessing environment. A virtual machine layer controls the distribution of processes and allocation of resources in the system. A virtual network is used to provide communication paths and resource sharing. The virtual network is designed to be bridged to an external physical network. The system requirements for a secure and reliable operating environment are incorporated into the design. This system utilizes "hardware porting" as a means to overcome the lag of software support for hardware advances. Rather than software port an entire application base to a new system architecture, hardware porting brings the required instruction set architecture to the applications. This heterogeneous multiprocessor architecture builds on a popular system architecture, the scIBM PS/2 with the Micro Channel system bus. Incorporating a second bus, the scSCSI bus, as a system extension is explored.
Model
Digital Document
Publisher
Florida Atlantic University
Description
We survey and compare the different major mechanisms for embedding the relational database language SQL in object-oriented programming languages such as Java and C#, with regard to how much impedance mismatch these embeddings suffer. Here impedance mismatch refers to clarity and performance difficulties that arise because of the nature of the embedding. Because of the central position in the information technology industry of object-oriented programs that access SQL-based relational database systems, reducing impedance mismatch is generally recognized in that industry as an important practical problem. We argue for the suitability of SQL as a database language, and hence for the desirability of keeping SQL as the view provided by a SQL embedding. We make the case that SQLJ, a SQL embedding for Java in which it appears that Java directly supports SQL commands, is the kind of SQL embedding that suffers the least impedance mismatch, when compared with call-level interfaces and object-relational mappings. We propose extensions to SQLJ that would reduce its impedance mismatch even further.
Model
Digital Document
Publisher
Florida Atlantic University
Description
As computing technology continues to advance, it has become increasingly difficult to find businesses that do not rely, at least in part, upon the collection and analysis of data for the purpose of project management and process improvement. The cost of software tends to increase over time due to its complexity and the cost of employing humans to develop, maintain, and evolve it. To help control the costs, organizations often seek to improve the process by which software systems are developed and evolved. Improvements can be realized by discovering previously unknown or hidden relationships between the artifacts generated as a result of developing a software system. The objective of the work described in this thesis is to provide a visualization tool that helps managers and engineers better plan for future projects by discovering new knowledge gained by synthesizing and visualizing data mined from software repository records from previous projects.