Automatic Object-Oriented Visual Programming with OO-METHOD Jose Romero, Pedro J

Automatic Object-Oriented Visual Programming with OO-METHOD Jose Romero, Pedro J

Automatic object-oriented visual programming with OO-METHOD Jose Romero, Pedro J . Molina, Oscar Pastor Department of Computer Systems and Languages Polytechnic of Valencia Camino de Vera s/n Valencia 46071. SPAIN Abstract: - Following the steps of other related works published in our research group, this paper deals with the problems of creating efficient automatic code generators from an object-oriented conceptual model. Our own methodology called "OO-Method" is based not only on the object-oriented paradigm but also on the automatic programming paradigm. This method combines the advantages of formal specification systems with the practice provided by conventional object-oriented methodologies. Firstly, the OASIS formal object- oriented specification language is introduced to the reader through a brief review of its main concepts. Secondly, a description of OO-Method, in its current state, is presented enhancing some new interesting design decisions added on. Finally, a description of the CASE tool, which effectively supports the method, is given. Finally, the results of our latest research and practice are discussed. In that way, we highlight the good properties of our method that make it adaptable and suitable for a world where technology is in a continually state of change. IMACS/IEEE CSCC'99 Proceedings, Pages:6541-6549 Key-Words : - Object-oriented paradigm, Object-oriented software production methodologies, formal specification languages, CASE tools, automatic code generation, visual programming, Windows environments, three-tier architectures. application development environments and new 1. Introduction Internet three-tier architectures. Summing up, the OO-Method/CASE takes profit of After some years of work, our research group the UML standard notation and puts it over a formal created OASIS [5], a formal an object-oriented (OO) and well-defined framework generating complete specification language following a similar approach executable code (not only templates for classes) for to other formal languages like Troll [4]. At that visual programming environments. point we realized the convenience of a method At the end of this paper, we will summarize the having OASIS as its formal high-level data future work related with OO-Method in an academic dictionary and remaining faithful to the automatic context and industrial practice alike. programming paradigm [1]. It was called OO- Method, and later on, adopted the standard notation 2. OASIS from the Unified Modeling Language [12] for its diagrams. Once the method was established, the As OASIS is a formal object-oriented decisions of implementing a CASE tool that support specification language, it will provide the proper it was taken. Nowadays, the OO-Method/CASE way to describe information systems due to its well- Tool [6] is becoming a successful reality putting into founded semantics. An OASIS specification can be practice the methodology through an agreement with considered both as a high-level data dictionary and a a software company. Due to industrial interests, the formal modeling documentation. In fact, it CASE tool was adapted to generate code in constitutes the basis of the repository for our imperative environments, even though it can also methodological proposal OO-Method and its generate logic programs equivalent to an corresponding OO-Method/CASE Tool information system modeled with the tool. Focusing implementation. Therefore, it is of a crucial on imperative environments, the code generated will importance to revise the OASIS concepts because be functionally equivalent to the requirements they determine the elements that can be used for modeled following the execution model [7] steps. modeling a specific problem domain. This code will take profit of the existing rapid In order to clarify the concepts, we will introduce an example of a car rental company. A contract relates commented before. a client with an automobile, which has a specific In our example, the class Client will be rate. The organization needs to store information expressed as follows: about some special clients that are considered Very Important Persons. class Client identification by_identification0 : (client_code) ; Class and object in OASIS constant_attributes client_code : Nat ; The object classification process of a system client_name : String ; is considered under an ontological perspective. client_type : String ; Objects represent entities that compose the Universe variable_attributes of Discourse [11]. phone : String ; A class provides an intensional definition private_events including the common properties of the objects that var nphone: String; end_var constitute the class population (extensional create_client () new; definition). It has static and dynamic properties. destroy_client () destroy; Static properties – constant and variable change_phone (nphone); attributes - represent the object state at any time. Aside from the OID system assignation is the set of Inheritance constant attributes, which compose the class identification function. Inheritance is the OASIS concept to support Dynamic properties – events – will change the “is-a” relationship, also present in traditional the object state only if their associated preconditions semantic data models. We considered it as a and the class restrictions (static and dynamic) take standard way to share code and behavior. place. Inheritance is represented in OASIS by Services are offered by classes to the means of two class operators: system. They could be both event and transactions. Transactions may be local or global. They represent q Specialization: deals with derivation of children event sequences with an “all-or-nothing” policy and classes from parent classes. It can be permanent not intermediate state observability. when a specialization condition specified on the Events must modify attribute values in our constant class attributes is supplied or temporal, model. More precisely, each one modifies a if creation and destruction events, or a predefined attributes set through an evaluation specialization condition specified on the formula. These dynamic formulas for attribute variable class attributes, determines the role evaluation are of the form y[i :e]y’, where y is a creation or destruction. In our example, the Very formula that is true in a given state and every Important Persons are defined as: execution of the event e by an actor i leads to a situation where y’ is true. In addition, three types of complex class VIPS specialization of Client where formulas y’ are distinguished, determining three client_type="VIP" categories of variable attributes. The first category is defined when y’ increases or decreases the value of q Generalization: inverse of the previous one. the attribute in a given amount, this is called a push- Deals with ascendant inheritance or generation pop attribute. In the second case, if y’ assigns a of parent classes collecting common properties value that is independent of the values it had of predefined classes. In a disjoint previously, it is called a state-independent attribute. generalization, an instance of a generalized class Finally, if y’ assigns a value in a discrete domain will be an instance of one and only one of its we will consider it as a discrete-domain valued descendent classes. We assume a no disjoint attribute. option by default. Summarizing, an object in OASIS can be defined as an observable process. The corresponding OASIS also supports multiple inheritance by process specification in a class allows us to specify providing a parent classes list. object dynamics and determines the access relationships between the states of instances. Aggregation Processes are constructed by using those services OASIS aggregation represents the “part-of” synchronous communication mechanism between relationship where a complex object has other different objects. It must be declared in all classes objects as components, structured as an object that shared a specific event. For instance, the rent hierarchy. It categorizes the different existent types and return vehicle events are declared in the Client of aggregations according to the following class as follows (in the Automobile class they are dimensions: defined in a similar way): q Inclusive/referential (also called relational) shared_events q Null/not null var nmiles_arrival,nfuel:Nat; place_return:String; q Univalued/multivalued end_var q Flexible/strict rent_vehicle () with Automobile; q Disjoint/no disjoint return_vehicle (nmiles_arrival, q Static/dynamic nfuel,nplace_return) with Automobile; The inclusive aggregation verifies that Triggers components cannot exist out of the composite object. The referential aggregation differs from the They are services of a given class which the inclusive in the fact that we only denote an existing system activates in an automated way when a relationship among objects of the involved classes, condition is satisfied by an object of the same or without having a complete inclusion of the another class. So, this OASIS concept introduces component objects into the composite one. internal system activity as condition-action rules. Following the Entity-Relationship approach, The system designer may assure the correct trigger each aggregation relationship has maximum and confluence and termination. In our example if a car minimum cardinalities. So, we can know how many has less than one liter of gasoline, it will be components and composite objects are related and automatically disabled for renting. vice versa. As we

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us