Architectural hoisting is a design technique where the responsibility for enforcing an intentional design constraint is implemented in the code rather than by relying solely on the diligence of the developers. This ca...
详细信息
Architectural hoisting is a design technique where the responsibility for enforcing an intentional design constraint is implemented in the code rather than by relying solely on the diligence of the developers. This can help teams to achieve a global system property by avoiding inconsistences and lapses in implementing design rules. [ABSTRACT FROM PUBLISHER]
The deterioration of architectural structure and the lack of modularity have resulted in major deficiencies that will require more support from components and their interfaces. programming language concepts also must ...
详细信息
The deterioration of architectural structure and the lack of modularity have resulted in major deficiencies that will require more support from components and their interfaces. programming language concepts also must explicitly reflect this support.
Current languages allow a programmer to describe an interface only by enumerating its parts, possibly including other interfaces wholesale. Such languages cannot express relationships between interfaces, yet when inde...
详细信息
ISBN:
(纸本)9781595930644
Current languages allow a programmer to describe an interface only by enumerating its parts, possibly including other interfaces wholesale. Such languages cannot express relationships between interfaces, yet when independently developed software components are combined into a larger system, significant relationships arise, To address this shortcoming, we define, as a conservative extension of ML, a language for manipulating interfaces. Our language includes operations for adding, renaming, and removing components;for changing the type associated with a value;for making manifest types abstract and vice versa;and for combining interfaces. These operations can express useful relationships among interfaces. We have defined a formal semantics in which an interface denotes a group of four sets;we show how these sets determine a subtyping relation, and we sketch the elaboration of an interface into its denotation.
Current languages allow a programmer to describe an interface only by enumerating its parts, possibly including other interfaces wholesale. Such languages cannot express relationships between interfaces, yet when inde...
详细信息
Current languages allow a programmer to describe an interface only by enumerating its parts, possibly including other interfaces wholesale. Such languages cannot express relationships between interfaces, yet when independently developed software components are combined into a larger system, significant relationships arise, To address this shortcoming, we define, as a conservative extension of ML, a language for manipulating interfaces. Our language includes operations for adding, renaming, and removing components;for changing the type associated with a value;for making manifest types abstract and vice versa;and for combining interfaces. These operations can express useful relationships among interfaces. We have defined a formal semantics in which an interface denotes a group of four sets;we show how these sets determine a subtyping relation, and we sketch the elaboration of an interface into its denotation.
A discussion of the evolution of software system configurations should have some formal basis in order to make the concepts applicable in a broad environment. Formal definitions should be provided for a number of noti...
详细信息
A discussion of the evolution of software system configurations should have some formal basis in order to make the concepts applicable in a broad environment. Formal definitions should be provided for a number of notions associated with this topic including the notions of software system architecture, the restrictions of the software system configurations and the mechanisms used to control the evolution of the structural and functional descriptions. The basis for the logical formalism is a formal description of the transitions that might occur in the software change process, the purpose of the formalism being to allow deductions to be made about the validity of such transitions. Transitions are represented as actions with deontic notions to allow the statement of ''permission'' and ''obligation''. Actions apply to a state model of a change process scenario. This model describes some of the essential features of a configuration management system, that is, versions, and module and subsystem families. Predicates are defined for this model essentially as invariants describing, for example, the relationship between a concrete interface and an abstract interface. We argue the generality of the logical formalism by illustrating its applicability to the expression of change processes in general software descriptions.
Language design is a most difficult task. While the original design of a language has the distinct advantage of filling a blank page, the revision of a language needs to abide by a number of constraints that limit the...
详细信息
Language design is a most difficult task. While the original design of a language has the distinct advantage of filling a blank page, the revision of a language needs to abide by a number of constraints that limit the degree of design freedom. Ada was developed with a number of underlying design principles and concepts. Revisions to the language must be in consonance with this existing overall philosophy of Ada. Extensions need to fit into this philosophy. This not only makes the description of Ada 9X easier, but facilitates the training of personnel in the revised language. Ada engineers should not need to change their style of design and programming in order to use Ada 9X, and must be able to gradually migrate to Ada 9X as they explore and experiment with the newly provided capabilities. A most stringent constraint on the language revision is the desire to keep the revised language upward compatible with the existing standard. One needs to take into account millions of lines of existing Ada code in development, use and maintenance today which eventually will be migrated to Ada 9X environments.
One of the major problems encountered when developing large systems is related to maintaining an operational and responsive software system, once it has been accepted and put into production. This problem is referred ...
详细信息
ISBN:
(纸本)9780897915069
One of the major problems encountered when developing large systems is related to maintaining an operational and responsive software system, once it has been accepted and put into production. This problem is referred to as Software maintenance. Evolution is central to Software Maintenance, responsible for ensuring a longer working life. Many Software Engineering Environments (SEEs) have been constructed in order to support maintenance activities. In this paper, we will first present major development in SEEs to support Maintenance. Afterwards, we will describe the main ideas behind the design and implementation of the ADELE system, a third generation SEE. Following this, we will give an example to illustrate the way a process model can be described on top of ADELE using an example of evolution maintenance. This approach is heavily based on event-condition-action formalism. We will illustrate the way in which communication and coordination of the activities carried out by different users are automated.
Although numerous distributed programming facilities have been developed, the lack of methodologies to support the design of distributed applications makes the task of designers very difficult. The aim of our work is ...
详细信息
A major issue in software engineering is the mastery of sofware design. The increasing distributed programming facilities open lots of new possibilities but make the task of designers more complex. Our work is to cont...
详细信息
ISBN:
(纸本)9783540548348
A major issue in software engineering is the mastery of sofware design. The increasing distributed programming facilities open lots of new possibilities but make the task of designers more complex. Our work is to contribute to a rational design of real-sized distributable applications. We propose an approach based on the VDM formal method as support for the design phase and based on the Conic distributed language and environment as target for the implementation. We apply successive refinements on a VDM model so as to modify its distributability. The refinements are formalized, their validity is proved and they are tactical tools for a support environment of distributable software design. We express the general architecture of the resulting application into Conic.
Despite the importance of describing and analyzing the relationships among a software system's components, most languages and development environments do not provide suitable support for these activities. While Ad...
详细信息
Despite the importance of describing and analyzing the relationships among a software system's components, most languages and development environments do not provide suitable support for these activities. While Ada and the various existing Ada environments offer some assistance, the capabilities they offer are inadequate for use in truly large and complex software development projects. To address these shortcomings, we are developing the AdaPIC tool set, which we envision as an important component of an Ada software development environment. The AdaPIC tool set is one particular instantiation, specifically adapted for use with Ada, of the more general collection of language features and analysis capabilities that constitute the PlC approach to describing and analyzing relationships among software system components. This tool set is being tailored to support an incremental approach to the interface control aspects of the software development process. Following a discussion of the interface control and incremental development concepts, this paper describes the AdaPIC tool set, concentrating on its analysis tools and support for incremental development and demonstrating how it contributes to the technology for developing large Ada software systems. [ABSTRACT FROM AUTHOR]
暂无评论