Model your reactive systems without heavyweight, expensive CASE tools. The author's Quantum programming is a new paradigm that treats statecharts as a way of design rather than the use of a particular tool. It inc...
详细信息
ISBN:
(纸本)9781578201105
Model your reactive systems without heavyweight, expensive CASE tools. The author's Quantum programming is a new paradigm that treats statecharts as a way of design rather than the use of a particular tool. It includes a complete software infrastructure for executing statecharts tailored for multithreaded embedded applications. Flexible, efficient, portable, scalable, and maintainable, this lightweight Quantum Framework permits you to quickly hand-code working real-time systems in C or C++ directly from UML statecharts. The Quantum Framework is a complete implementation environment - an active-object framework carefully designed to work with nearly any RTOS. It supports rapid prototyping, easy modification of states and transitions at any stage of development, and the choice of implementation language (C or C++) to match the resource constraints of the target system. Best of all, it is compact, with complete QF code typically requiring less than 5KB of code and data. In Part I of this book, you get a clear, articulate description of the relevant concepts including traditional finite state machines, statecharts, and several statechart-based design patterns in the form of executable code examples. Learn how state nesting leads to behavioral inheritance and how it enables reuse through programming-by-difference. Part II fully describes the implementation of the Quantum Framework and explains how you can use it in your applications and port it to an RTOS of your choice. The CD-ROM includes complete source code for the author's Quantum Framework, answers to all exercises scattered throughout the book, and an evaluation version of RTOS-32 - a 32-bit real-time operating system for x86 processors.
The agent paradigm is gaining popularity because it brings intelligence, reasoning and autonomy to software systems. Agents are being used in an increasingly wide variety of applications from simple email filter progr...
详细信息
ISBN:
(纸本)0769515126
The agent paradigm is gaining popularity because it brings intelligence, reasoning and autonomy to software systems. Agents are being used in an increasingly wide variety of applications from simple email filter programs to complex mission control and safety systems. However there appears to be very little work in defining practical software architecture, modeling and analysis tools that can be used by software engineers. This should be contrasted with object-oriented paradigm that is supported by models such as UML and CASE tools that aid during the analysis, design and implementation phases of object-oriented software systems. In our research we are developing a framework and extensions to UML to address this need. Our approach is rooted in the BDI formalism, but stresses the practical software design methods instead of reasoning about agents. In this paper we describe our preliminary ideas.
We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many fals...
详细信息
We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many false positive datarace reports, or maintained precision but incurred significant overheads in the range of 3x to 30x. In contrast, our approach results in very few false positives and runtime overhead in the 13% to 42% range, making it both efficient and precise. This performance improvement is the result of a unique combination of complementary static and dynamic optimization techniques.
This paper presents a refinement calculus for object systems with visibility, dynamic binding and mutual dependency. The intention is to support effective use of a relational model for specifying and reasoning in acti...
详细信息
ISBN:
(纸本)0769517242
This paper presents a refinement calculus for object systems with visibility, dynamic binding and mutual dependency. The intention is to support effective use of a relational model for specifying and reasoning in activities of an object system development process. The semantics framework will define the meaning of the combinators in the exactly same way as their counterparts in the imperative programming languages. This makes the approach more accessible to the users who are already familiar with the algebraic laws and the verification tools developed for these languages. The paper also provides a set of transformation rules in support of object system refinement.
Fault insertion based techniques have been used for measuring test adequacy and testability of programs. Mutation analysis inserts faults into a program with the goal of creating mutation-adequate test sets that disti...
详细信息
ISBN:
(纸本)0769517633
Fault insertion based techniques have been used for measuring test adequacy and testability of programs. Mutation analysis inserts faults into a program with the goal of creating mutation-adequate test sets that distinguish the mutant from the original program. Software testability is measured by calculating the probability that a program will fail on the next test input coming from a predefined input distribution, given that the software includes a fault. Inserted faults must represent plausible errors. It is relatively easy to apply standard transformations to mutate scalar values such as integers, floats, and character data, because their semantics are well understood. Mutating objects that are instances of user defined types is more difficult. There is no obvious way to modify such objects in a manner consistent with realistic faults, without writing custom mutation methods for each object class. We propose a new object mutation approach along with a set of mutation operators and support tools for inserting faults into objects that instantiate items from common Java libraries heavily used in commercial software as well as user defined classes. Preliminary evaluation of our technique shows that it should be effective for evaluating real-world software testing suites.
In this paper we present a concept for automated testing of object-oriented applications and a tool called SeDiTeC that implements these concepts for Java applications. SeDiTeC uses UML sequence diagrams, that are com...
详细信息
ISBN:
(纸本)0769517366
In this paper we present a concept for automated testing of object-oriented applications and a tool called SeDiTeC that implements these concepts for Java applications. SeDiTeC uses UML sequence diagrams, that are complemented by test case data sets consisting of parameters and return values for the method calls, as test specification and therefore can easily be integrated into the development process as soon as the design phase starts. SeDiTeC supports specification of several test case data sets for each sequence diagram as well as to combine several sequence diagrams to so-called combined sequence diagrams thus reducing the number of diagrams needed. For classes and their methods whose behavior is specified in sequence diagrams and the corresponding test case data sets SeDiTeC can automatically generate test stubs thus enabling testing right from the beginning of the implementation phase. Validation is not restricted to comparing the test case data sets with the observed data, but can also include validation of pre- and postconditions.
From the Publisher: Cocoa is an object-oriented development environment available in Apple's Mac OS X environment. Mac OS X, a unified operating system and graphical operating environment, is the fastest growing U...
详细信息
ISBN:
(纸本)0596002351;9780596002350
From the Publisher: Cocoa is an object-oriented development environment available in Apple's Mac OS X environment. Mac OS X, a unified operating system and graphical operating environment, is the fastest growing Unix variant on the market today. Hard-core Unix programmers, developers who cut their teeth on classic Mac operating systems, and developers who cherished NeXTSTEP, the decade-old system on which today's Cocoa is based — all are flocking to Cocoa, and they need a lot more practical information than is currently available from Apple. There is a lot to learn. Building Cocoa Applications is an ideal book for serious developers who want to write programs for the Mac OS X using Cocoa. It's a no-nonsense, hands-on text that's filled with examples — not only simple and self-contained examples of individual Cocoa features, but extended examples of complete applications with enough sophistication and complexity that readers can put them to immediate use in their own environments. Building Cocoa Applications takes a step-by-step approach to teaching developers how to build real graphics applications using Cocoa. By showing the basics of an application in one chapter and then layering additional functionality onto that application in subsequent chapters, the book keeps readers interested and motivated. Readers will see immediate results, and then go on to build onto what they've already achieved. The book is divided into four major parts: Part I introduces the Mac OS X graphical user interface (Aqua) from a developer's point of view, Cocoa developer tools (such as the Interface Builder, Project Builder, and gdb debugger), object-oriented concepts, the objective-C language inwhich Cocoa is written, and the basics of Cocoa programming itself. Part II focuses on building the first complete application, Calculator, a simple four-function calculator. The chapters in this part of the book extend the application, piece by piece, by introducing such features as nibs, icon
From the Publisher: Java Data objects is a standardized Java API for object persistence. It facilitates the storage and retrieval of complex object models with various storage mechanisms, including both object and rel...
详细信息
ISBN:
(纸本)9780321123800
From the Publisher: Java Data objects is a standardized Java API for object persistence. It facilitates the storage and retrieval of complex object models with various storage mechanisms, including both object and relational databases. Analysts agree that JDO's transparent persistence will accelerate software development and yield more flexible applications and object models. According to Infoworld , "The JDO standard promises to be a winner for business leaders and corporate developers alike. Unifying data access—that is, using familiar Java constructs to access information housed in relational databases, object databases, file systems, or even flash RAM—means that corporate applications will experience an increase in usability, portability and integration". This book is for Java developers, designers and architects with a good understanding of the Java language who wish to write applications that use JDO for persistence. Prior knowledge of JDBC and J2EE is not specifically required, but would help to accelerate the reader's understanding of JDO's relationship with these technologies. The companion CD-ROM includes the following JDO implementations:Fastobjects, Kodo JDO, LiDO and OpenFusion JDO.
From the Book: The first edition of this book hit the streets late in 1999. For the most part, it was based on my experiences in developing Active Server Page-based applications for the retail and healthcare industrie...
详细信息
ISBN:
(纸本)9780201730388
From the Book: The first edition of this book hit the streets late in 1999. For the most part, it was based on my experiences in developing Active Server Page-based applications for the retail and healthcare industries. I was an independent consultant then, but shortly before finishing the book I joined Rational Software Corporation. Working for Rational has given me the opportunity to visit and to work with many organizations that are in the process of building Web-centric applications. And I've seen everything, from well-managed teams producing top-quality software to chaotic teams desperately seeking the right guidance, plus a few others that still seem to be in denial. In the two years since the publication of the first edition I've also seen the rise of the J2EE platform, and have to say that since then most of my Web application development experience has been with J2EE architectures. The result of this is that most of the material in this second edition is oriented towards the Java environment. This doesn't mean that .NET developers or even Cold Fusion and PHP developers, can't build applications with the guidance in this book. You can. It's just that the majority of the examples in the design and implementation chapters, and in the reference applications, are written for JavaServer Page-based applications. The ideas in this book and in the previous edition are all a result of a desire to combine my object-oriented skills to the area of Web application development. I had little problem applying use case analysis, and it wasn't until I started creating analysis and design models I realized that things were going to get difficult. Whencreating a Web application, my conceptual focus was always on the Web page; and my idea of a model kept revolving around the concept of a site map. I knew that the navigation paths throughout the system were incredibly important to understanding the application and that any system model would have to include them. My earliest atte
We introduce a direct encoding of the typed A-calculus into Java: for any Java types A, B we introduce the type A --> B together with function application and A-abstraction. The latter makes use of anonymous inner ...
详细信息
ISBN:
(纸本)354014031X
We introduce a direct encoding of the typed A-calculus into Java: for any Java types A, B we introduce the type A --> B together with function application and A-abstraction. The latter makes use of anonymous inner classes. We. show that A-terms are evaluated by call-by-value. We then look at how to model domain equations in Java and as an example consider the untyped lambda calculus. Then we investigate the use of function parameters in order to control overriding and in order to dynamically update methods, which can substitute certain applications of the state pattern. Further we introduce a foreach-loop in collection classes. Finally we introduce algebraic types. Elements of the resulting type are given by their elimination rules. Algebraic types with infinitely many arguments like Kleene's O and simultaneous algebraic types are already contained in that notion. Further we introduce an operation selfupdate, which allows to modify for instance a subtree of a tree, without making a copy of the original tree. All the above constructions are direct and can be done by hand.
暂无评论