Industry is increasingly performing its software development in the context of an explicitly defined software architecture. A typical example of this is formed by the recent adoption of product line architectures by s...
详细信息
Industry is increasingly performing its software development in the context of an explicitly defined software architecture. A typical example of this is formed by the recent adoption of product line architectures by several large corporations. The tutorial presents experiences and research results collected in the domain of software architecture within our research group based on our cooperation with a large collection of software development companies. More concretely, the tutorial presents experiences from architectural design, a method for architectural design, architecture evaluation techniques, and results from a case study on the problems and issues of industrial use of product-line architectures.
Use case analysis is a requirements capture technique that is most often used in the early stages of OO and component development projects. A requirements/service/interface (RSI) approach to use case analysis is descr...
详细信息
Use case analysis is a requirements capture technique that is most often used in the early stages of OO and component development projects. A requirements/service/interface (RSI) approach to use case analysis is described. This approach provides a framework for analyzing and understanding potential use case delivering and their interrelationships. The RSI approach also aims to assist in maximizing software re-use, by partitioning functionality into those aspects which are concerned with `managing the interface' to an actor, and those areas which make up the re-usable core of the system.
To date, much of the software written in Computational Physics has been produced with little regard paid to modern software engineering techniques;this paper documents experiences in beginning to address this shortcom...
详细信息
To date, much of the software written in Computational Physics has been produced with little regard paid to modern software engineering techniques;this paper documents experiences in beginning to address this shortcoming for Config, a component of the Graphical R-Matrix Atomic Collision Environment (GRACE). The work is based around a formal specification of the Config component. The principal focus of the paper will be on a non-intrusive mechanism for monitoring constraints such as class invariants, preconditions and postconditions for highly structured data types based on the containers and algorithms of the Standard Template Library (STL), a mechanism which can be extended to handle structured object update and display prototyping.
In this Tutorial I provide a number of Principles for using PBC to rigorously document class interfaces in a way that is accessible to technically oriented software developers. With each Principle I present an example...
详细信息
In this Tutorial I provide a number of Principles for using PBC to rigorously document class interfaces in a way that is accessible to technically oriented software developers. With each Principle I present an example, a justification, and advice about when it might be appropriate to violate the Principle (and how to document such violations). The complexity of the Principles vary. Some are simple enough that we can use them to improve the documentation of almost any class. Others are sufficiently complex and time-consuming to use that they may only be appropriate in designing class libraries. Indeed, I will use examples from ELKS, the Eiffel Library Kernel Standard to illustrate the power of the Principles.
In this talk, we present a series of C++ programming design idioms for writing efficient C++ programs, briefly review the underlying C++ object model, and turn to design alternatives when the idioms themselves become ...
详细信息
In this talk, we present a series of C++ programming design idioms for writing efficient C++ programs, briefly review the underlying C++ object model, and turn to design alternatives when the idioms themselves become overwhelmed with, say, large-scale object creation and copy. We look at object-based and object-oriented design, use of the STL container classes and generic algorithms, and the design alternatives of inheritance versus parameterization through use of the C++ template facility. This is a particularly effective area of program efficiency because (a) the idioms generally make for more readable programs, and (b) once the idioms and implementation (or object) model is internalized, these gains in efficiency come mostly for free - I like to think of them as low-hanging fruit. In the course of the tutorial, I'll point out areas where experienced C programmers tend to write correct but frightfully sluggish C++ code by contrasting C and C++ programming idioms.
The modeling of behavior in object-orientedsystems usually relies on control flow diagrams and (extended) state automatas. These basic techniques do not well support the design in a declarative style. This style is u...
详细信息
The modeling of behavior in object-orientedsystems usually relies on control flow diagrams and (extended) state automatas. These basic techniques do not well support the design in a declarative style. This style is useful for modeling integrity constraints, especially active constraints, on the data model, to perform event handling, to derived new attribute values and associations and to model strategies in business and engineering. In this contribution, rules are added as a declarative modeling technique for behavior. Roughly speaking, a rule consists of a condition and an action. If the condition is true, the action is performed. The concept of rules is integrated into an existing object-oriented modeling technique by formulating rules on object diagrams. A rule application may test and change a certain object structure. The application may be triggered automatically by a relevant change of this object structure, periodically or by an event occurring in some behavior diagram. This rule concept has an underlying formal semantics on the basis of graph transformation which may be exploited for analyzing a designed rule set concerning e.g. conflicts, dependencies, etc. The graphical notation of the rules follows the UML-notations as far as possible.
This paper presents a semi-automatic approach to translating the narrative descriptions of use cases to sequence diagrams. It presents rules for writing and rewriting use case descriptions that can be understood by bo...
详细信息
This paper presents a semi-automatic approach to translating the narrative descriptions of use cases to sequence diagrams. It presents rules for writing and rewriting use case descriptions that can be understood by both developers and domain experts and that can be translated mechanically to message sends, which are used to build sequence diagrams. The translation accommodates developer's instructions on how to translate some parts of a use case description while mechanically producing message records from the description. It deduces classes, objects, associations, attributes, and operations from use cases. A prototype of a use case translator that supports the approach is also reported here.
Component extensions must semantically conform to the components they extend to guarantee consistency of the extended system. Semantic conformance usually means preservation of observable properties while decreasing n...
详细信息
Component extensions must semantically conform to the components they extend to guarantee consistency of the extended system. Semantic conformance usually means preservation of observable properties while decreasing nondeterminism;in the presence of explicit invariants it also involves preservation of invariants by the extended and the extending components. Depending on the reuse technique employed for constructing extensions, the requirements that must be imposed on components to guarantee consistency vary. We concentrate on the issue of ensuring consistency of extensions with forwarding as the reuse technique, formulating requirements that allow consistent extension of components in the presence of explicit invariants. Also, we discuss additional problems arising with the use of inheritance and propose solutions to these problems.
object-oriented application frameworks present one of the most successful approaches to developing reusable assets in industry, but developing frameworks is both difficult and expensive. Frameworks generally evolve th...
详细信息
object-oriented application frameworks present one of the most successful approaches to developing reusable assets in industry, but developing frameworks is both difficult and expensive. Frameworks generally evolve through a number of iterations due to the incorporation of new requirements and better domain understanding. Since changes to frameworks have a large impact on the applications build based on the asset, it is important to assess the stability of a framework. Recently, an approach for assessing framework stability has been proposed. We have extended and applied the assessment approach on one proprietary telecommunication framework and two commercial GUI application frameworks. Based on our findings we formulate a set of hypotheses, which characterize the stability of an object-oriented application framework. We believe these hypotheses to be the most promising ones for further studies of framework stability.
In order to be able to meet an extremely stringent time limit on the development of the Authentication Centre for the TACS mobile users of TIM, it was decided to utilize an object-oriented database viz. objectStore. W...
详细信息
In order to be able to meet an extremely stringent time limit on the development of the Authentication Centre for the TACS mobile users of TIM, it was decided to utilize an object-oriented database viz. objectStore. We learned some positive lessons: it allowed us to cut on design time (database design, transaction handling, fault-tolerance, concurrency handling), gave us extremely high performance which allowed us further time for development and allowed us to serialize a server eliminating the need for deadlock detection. And we learned some negative lessons: unexpected problems (necessity of physical allocation schemes, address space), missing or poor features in the product (extent handling, versioning, scalability, ODMG compatibility, support for C++ STL). Since only a few members on the team had any knowledge of the workings of an OODBMS, the experience also proved the usefulness of OO technology whereby team members managed, nonetheless, to use the OODBMS successfully as it was encapsulated in the domain classes.
暂无评论