Technical Overview IN-Lab report 93/2 Trygve Reenskaug, Taskon Raymond Nilsen, NTR

advertisement
Technical Overview
IN-Lab report 93/2
Trygve Reenskaug, Taskon
Raymond Nilsen, NTR
27 July
1993 Taskon
Carl Petter
Swensson,
Per Wold, Taskon
Abstract.
IN-Lab2 is a software laboratory set up for small-scale experiments with the design and
construction of Intelligent Networks. This report gives a technical overview of the support
value chain for a highly simplified version of a point-to-point telephone commnuication
example. The report acts as an introduction to the detailed reports of each level in the
support value chain.
Client: TF
Client reference: IN-Lab Report 93/2
Taskon reference: Draft
File: D:\work.t12\ooram.t12\oo-pres.t12\1993\931206-in-lab2.t12\in2-document.rm4
Last update: 25 August 1993 at: 18:27
Print generated: 1 Juni 1998 at: 17:18
Taskon, Gaustadalléen 21, N-0371 Oslo 3 Norway.
TASKON
Work Environments
Tel. + (47) 22 95 86 31 Telefax: + (47) 22 60 44 27
25 August 1993 at: 18:27
Report overview
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 1
25 August 1993 at: 18:27
Introduction
Chapter 1
Introduction
Norwegian Telecom Research and Taskon are currently carrying out a joint project on the
industrial creation of Intelligent Network Services (IN). The project builds on the IN technology
proposed by the EURESCOM project EUP103 which is reported to this conference in a paper by
Raymond Nilsen et al, and on the Taskon OOram object oriented methodology which is
described in this paper and in [Ree92], [EAnd92], [JAnd91].
The construction and deployment of IN services is going to be a very large operation. There will
be a large and expanding number of available services, the total system complexity will be
staggering, and many organizations employing people in different capacities will be involved in
its creation and operation.
A laboratory for the small scale experiments with the creation and invocation of Intelligent
Network Services has been created and tested on a concrete example. The purpose of the
laboratory, called InLab2, is to explore and demonstrate the applicability of the OOram
methodology to the IN industry.
The scope of InLab2 is the complete IN creation life cycle. It is supported by a comprehensive
set of tools for system specification on different abstraction levels, including the specification for
monitored execution. The purpose of a design environment such as InLab2 are as follows:
1. Thinking aid. A good environment helps the designer consider the whole without getting lost
in details, and to isolate specific parts for detailed consideration.
2. Internal consistency. A good environment provides a seamless model of the design, ensuring
that all aspects of the specification can be made consistent. This does not mean that the
environment enforces consistency at all times. The designer must be allowed to explore new
ideas, polishing them and making them consistent with the rest of the specification at his
leisure.
3. External consistency. The designer's ultimate goal is to satisfy some perceived need. A
correct answer to the wrong question is as useless as an incorrect answer to the right
question. Prototyping based on executable specifications is an invaluable aid for checking
that the design satisfies the external goals.
4. Documentation. The designer needs to communicate the basic ideas, the details, and the
rationale for his solution to other people. We have found that automatically generated reports
are invaluable for providing the exact details of the solution. But such reports cannot
completely replace the personal, well written exposition which highlights important aspects
of the solution and discusses the reasons for the particular choices that have been made.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 2
25 August 1993 at: 18:27
Introduction
The present set of reports provides the complete documentation of an example system,
challenging the reader to consider item 4?? above. InLab2 itself is created to help designers
explore their ideas for IN services, and incidentally also to test items 1?? through 3?? above.
A first separation of IN into two distinct domains has been suggested in [Bugge91], this is
illustrated in figure 1
Service Domain
Switching Domain
Figure 1. The intelligent network
In an intelligent network, functions in the service domain use functions offered from the switching domain. The idea
of separation is built upon the client-server principle, that is, the service domain is a client of the switching domain,
which is a server of the connectivity in the telecommunications network.
The Switching Domain encapsulates all the problems associated with the rapid switching and
transmission of large masses of user data and hides the differences between different switch
implementations, providing a universal interface to the Service Domain.
The Service Domain encapsulates all the problems associated with the great variety of services to
be provided. It can be thought of as a distributed system being supported by its own
communication facility for signalling. Some of the services provided will be completely
implemented in the Service Domain, while others will be used to control the Switching Domain
in a more or less sophisticated manner.
The communication examples given in this document are based on designs created by the
Norwegian Telecom Research, but they have been modified and simplified so they do not reflect
the current NTR solutions to the same problems. The software description and production
facilities described are based on the facilities developed and used by Taskon, but a number of
detailed issues have been omitted in the interest of clarity.
Chapter 2 gives an overview of our support value chain for the creation and invocation of
Intelligent Network Services in general and our example telephone service in particular. Chapter
3 digresses into a description of some parts of the Ooram methodology which have not been
described elsewhere. The remaining chapters give an overview of the individual layers of our
support value chain. In Appendix 2, we give the detailed reports from two monitored test
executions of our system: The first is for the installation of a User's services, and the second is
the establishment of a telephone connection.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 3
25 August 1993 at: 18:27
A reference model for the creation and invocation of services
Chapter 2
A reference model for the creation and invocation of services
In this chapter we will endeavor to define a reference model for the creation and invocation of
Intelligent Network Services in a number of abstract layers, and we will identify the
responsibility of the personnel managing each layer. The guiding principle will be that while the
qualifications of the personnel on the different layers will be different, the individual
qualification requirements shall be realistic in terms of a large and distributed organization.
Before going into any detail on each of the abstraction layers, we will discuss some general
principles:
1. Development process
-
Our development process is iterative, evolutionary and object-oriented. It is aimed at supporting
continuous development of software systems on a large scale. The methodology is divided into
distinct methods which are used to support work on the different abstraction layers.
2. Product
-
The product delivered by one abstraction layer constitutes the libraries and production facilities
employed on the layer above it. The goal is to help each abstraction layer achieve maximum
effectiveness through suitable production tools and through maximizing reuse of specifications,
designs and code.
-
Each abstraction layer has its own kind of product, and therefore its own life cycle model.
-
The life cycles of a product and the modules that constitute this product are interdependent.
3. Organization
-
The principle guiding the definition of each abstraction layer is that the competence required of
the people performing the operation on a particular layer shall be defined and realistic.
-
The total IN operation may in the future be performed by many different organizations. The
abstraction layers are defined in such a way that they support a possible division of authority and
responsibility between different organizations.
An important principle in our architecture is that we assume the operators to be hostile, be it by
intent or by ignorance. The production facilities for any layer must therefore be secure: It must
be physically impossible for the operator on any given layer to threaten the integrity of the layer
below it. A corollary to this is that the production facilities for a certain layer must be complete:
The facilities must permit the personnel to perform all permissible changes to the total Service
Domain system and no more. Since procedures and methods are used at the discretion of the
personnel, security and completeness must be implemented in the tool portion of the production
facilities.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 4
25 August 1993 at: 18:27
2.1
A reference model for the creation and invocation of services
The generic support layer
We will separate the Service Domain into a number of support layers. Each layer will be
characterized by the operations belonging to that layer: The responsibility of its personnel to
produce certain deliverables to its client, and the authority to make certain changes to the Service
Domain system. The actors will utilize certain production facilities; these facilities will include
procedure guidelines breaking down the total work into manageable tasks, methods to be
employed in the performance of these tasks, and computer based tools that facilitate the effective
performance of the tasks.
Deliverables from
LayerN
Operations on
ayer
LN
Production facilities
Layer
for N
Figure 2. A support layer is completely isolated from the layer below it.
We will now give a generic specification of the competence required of a person who is to
operate on a given layer. (This specification must of course be augmented by the special
requirements associated with any given concrete layer).
1. The deliverables from a given abstraction layer are the production facilities for the layer
above it. The personnel must therefore understand the qualifications and requirements of
their client, who is the personnel on the layer above. The personnel should also be motivated
to satisfy all aspects of these requirements, the success criterion is customer satisfaction.
2. The personnel must understand and be well trained in the use of the available production
facilities: The operations, the methods and the use of the tools.
2.2
A possible Support Value Chain
Our first choice of abstract layers is derived from the actors in the IN service life cycle given in
[Vestli, Nilsen 92]. They are illustrated in the figure below:
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 5
25 August 1993 at: 18:27
A reference model for the creation and invocation of services
User Layer
Subscriber Layer
Service
Domain
Service Provider Layer
Service Creator Layer
Service Constituent Creator L
Switching
Domain
Network Provider Layer
Figure 3. Basic abstraction layers
The layers are illustrated in figure 3??, and are described from top to bottom in the following:
1. User layer. The user is the party who wants to use available services, and who is responsible
for the selection and invocation of a service. The production facilities will consist of various
user manuals together with suitable tools (user interfaces). The nature of the tools will
depend on the kind of terminal equipment used. If the equipment is a touch-tone telephone,
the user interface to the tools will consist of various combination of key presses. If the
equipment is a personal computer, the user interface is likely to be a direct manipulation
Graphical User Interface (GUI).
2. Subscriber layer. The Subscriber is the party who purchases a set of services on behalf of
one or more users, who pays for them, and who is responsible for making services available
for his or her users. The Subscriber is responsible for the activation and deactivation of
services. Different sets of services may be made available to different (groups of) users, and
the services may be customized according to individual user needs. The production facilities
will consist of various instruction manuals together with suitable tools, which are likely to be
direct manipulation Graphical User Interfaces (GUI).
In some cases, the User and the Subscriber will be played by one and the same person. This
does not change the abstract architecture, but merely means that the same person plays two
roles and therefore utilizes the production facilities of two layers.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 6
25 August 1993 at: 18:27
A reference model for the creation and invocation of services
3. Service Provider layer. The Service Provider is a party who has a license for installing
telecommunications service software in the telecommunications network, and who is
responsible for installation and deinstallation of services. The Service Provider receives
requests for creating a service from a subscriber or can initiate the creation of services
himself, in which case the service Provider also acts as a Subscriber. The Service Provider
can be a network operator, a network equipment vendor or in general an independent
software vendor. The Service Provider personnel must be fully conversant with the services
they offer, and must know why and how to tailor them to satisfy special needs. It is important
to note that a Service Provider will in general not know all possible services, a given
Subscriber may acquire services from many different Service Providers.
4. Service Creator layer. The Service Creator is a party who has a license for producing
telecommunications service software to be made available to the Service Provider for
installation in the telecommunications network. In general, services can be intended for
being subscribed to by many Subscribers, or services can be tailored to one particular
Subscriber. The Service Creator can be a network operator, a network equipment vendor or
in general an independent software vendor. The Service Creator must understand the general
needs of the market within the domain of his services, but the immediate client is the Service
Provider. The Service Creator must understand the nature and functionality of the available
Service Constituents and how to combine them into complete Services.
5. Service Constituent Creator layer. The Service Constituent Creator is a party that has a
license for producing building blocks which are configured into complete services. The
Service Constituent layer has been split into several sub-layers, the functionality of Service
Constituents on one layer utilizing the functionality of Service Constituents on the sub-layers
below it. The Service Constituent layer is the highest layer where we expect to find
programming in the traditional sense of the word. The challenge is to create a programming
environment which guarantees the integrity of the system on the layers below it, and general
frameworks for the facilities to be provided on all levels above it. This can for example be
achieved by making lower-layer functionality available through carefully guarded interfaces,
in addition to requiring all modules to pass extensive validation test suites.
6. Network Provider layer. The Service Domain builds on the functionality of the Switching
Domain as shown in figure 1. The deliverables of the Network Provider are encapsulated in
the production facilities of the bottom layer of the Service Constituent Creator.
Note that there will be more Users than Subscribers, many more Subscribers than Service
Providers, many more Service Providers than Service Creators, more Service Creators than
Service Constituent Creators, and many more Service Constituent Creators than Network
Providers. Knowledge about end users should be pushed as far to the top of the hierarchy as
possible, since there are many different categories of Users. Knowledge about systems
programming and switching should be pushed as far down as possible, since skilled systems
programmers and communication experts is a scarce resource.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 7
25 August 1993 at: 18:27
2.3
A reference model for the creation and invocation of services
Organizational issues
Organizational ownership adds another dimension to the layers of figure 3??. The Network
Provider Layer and the lower sub-layers of the Service Constituent Layer will presumably be
owned and controlled by a communication provider such as a PTT; other sub-layers of the
Service Constituent Layer and the Service Creator layer may be owned by various software
houses or different departments of a PTT; the Service Provider layer may be supplied by various
retailers of IN services; users on the User layer will usually belong to the same organization as
the Subscriber. In all cases, the production facilities available to a particular actor will be the
subset of all facilities available to that layer subject to some kind of licensing agreement created
by administrative action.
Similar administrative action may be employed within an organization to limit the facilities
available to a particular group or individual.
2.4
Example Support Value Chain
Seen from a User, a Service appears as something concrete which may be bought and used. Seen
from the IN system, a service is rather intangible, it is realized as a number of interacting objects.
Some of these objects are specific to the Service, while others are shared with other Services. It
is the purpose of the different abstraction layers to manage the specification, design,
implementation, instantiation and invocation of these objects in a safe and controlled manner.
The general Support Value Chain of figure 3?? has been filled in with details from our concrete
example as shown in figure4??. We will describe each layer and the example information entities
on each layer before we go into details about the nature and contents of the entities.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 8
25 August 1993 at: 18:27
A reference model for the creation and invocation of services
IN Service
Layers
Service
Information Entities
User and Subscriber
Layers
Actors
Subscriber
and End User
Service Objects
Service Provider
Layer
Service Specification
Contract
Dealer
Service Creator
Layer
Conceptual Schema
Service vendo
User SM
Calling SM
Service Constituent
Creation Layers
Called SM
Service
Programmer
AbstrConn SM
Invocation SM
Network Provider
Layer
Network SM
Administration
programmer
Switch controll
programmer
Figure 4. IN-Lab2 support value chain.
The arrows denote the using relationships between the modules. Notice that the User SM does not export to the
Conceptual Schema, this means that the User objects are here a fixed part of the programs and not subject to
configuration.
The User and Subscriber Layers have been merged, because we do not provide any special
Subscriber functionality in our example. The Service Constituent Creator Layer has been subdivided to demonstrate that some Service Constituents will be built from more basic Service
Constituents. The information entities shown in figure 4?? are as follows:
1. User and Subscriber Layers. The Subscriber is the party who purchases a set of services on
behalf of one or more users, and is responsible for making the services available to his or her
users. The work of the Subscriber involves selecting a desired service and making a copy of
the relevant objects available to the User. Some of the service parameters may be bound as
part of this process. The User is the party who wants to use available services, and who is
responsible for the selection and invocation of a service. The invocation leads to creating a
copy of the relevant master objects, installing them in the Invocation environment, and
executing the service. All remaining parameters must be bound by the User as part of the
service invocation process.
-
Service Objects are a set of master objects unique to a particular User and stored in a data base
for that user. Service invocation consists of installing and invoking a copy of a service master.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 9
25 August 1993 at: 18:27
A reference model for the creation and invocation of services
2. Service Provider Layer. The Service Provider is a party who has a license for installing
telecommunications service software in the telecommunications network. The work of the
Service Provider involves creating concrete object structures which implement certain
desirable services, and making these object structures available to the Subscriber. Some of
the service parameters may be bound as part of this process. The deliverable from the Service
provider is contractual document defining a set of services, together with a master instance of
interconnected objects which define the particular set of services available to a given User.
Some of the free parameters are bound as part of the instantiation process.
-
Service Specification Contract. This is a structured document which may be traversed to
instantiate and install User objects together with their master service objects, and which may be
printed to provide a record of the installation on paper.
3. Service Creator Layer. The Service Creator is a party who has a license for producing
telecommunications service software to be made available for installation in the
telecommunications network. Service Constituents are generally made reusable, so that their
objects may be configured in many different ways to create different services. The Service
Creator defines a grammar, called an OOram Conceptual Model, which specifies which
objects may be involved in a certain (family of) services, how they are to be structured, and
possibly specializes their names to suit the mental model of the Service Provider. Some of
the service parameters may be bound as part of this process.
-
Conceptual Schema. This is a grammar which controls the creation of the Service Specification
Contract. It specifies all permissible object structures which may be instantiated in the Contract.
(The general principles are described in [Nordh89]).
4. Service Constituent Creation Layer. The Service Constituent Creator is a party who has a
license for producing building blocks which may be configured into complete services, and
who specifies new units of functionality in the form of role models. Access to the Switching
Domain is done through synthesis by importing the relevant Network Provider exported
models. A SC role model is then implemented, and the result may be made available to other
SCs by exporting a suitably constrained role model. The result may also be made available to
the Service Creator layer in the form of configurable object specifications, which define the
Service Constituent building blocks. They are exported to the Service Creator layer in the
form of an OOram Abstract Type Model, which define all possible ways that the Service
Constituents may be configured into complete services.
-
Service Programmer sub-layer
-
User SM. Module defining the interaction between the a general User object and the different
Service objects. (Details in report 93/8).
-
Called SM. Module defining the a Service Constituent for the Called end of a telephone
service. (Details in report 93/7).
-
Calling SM. Module defining the a Service Constituent for the Calling end of a telephone
service. (Details in report 93/6).
-
AbstrConn SM. Module defining the interaction between the Calling and the Called ends of a
telephone service. (Details in report 93/5).
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 10
25 August 1993 at: 18:27
-
A reference model for the creation and invocation of services
Administration programmer sub-layer
-
Invocation SM. Module defining the invocation environment for all services. (Details in
report 93/4).
5. Network Provider Layer. The Network Provider layer represents the actual switches in a
unified, implementation-independent manner. It makes its functionality available to the SC
Creator as OOram Client-Server models in the form of a number of exported role models
together with the corresponding implementation (classes).
-
Network SM. Module defining the functionality of the Switching Domain as it is seen from the
Service Domain. (Details in report 93/3).
The nature of the deliverables are summarized in the figure below.
User layer
Subscriber layer
Service Provider layer
Service Creator layer
Master structures of objects
Master structures of objects
Generic model
Abstract Data Type meta model
Service Constituent sub-layer
Frameworks with implemented superc
Service Constituent sub-layer
Client-Server models with implemente
Network Provider layer
Figure 5. The names of the deliverables used on each layer are shown in figure 5?? below.
2.5
Actors, Equipment and Name Spaces
A telecommunications network consists of interconnected equipment of different types which is
used by a variety of different actors. In this report, we will simplify matters and only look at a a
few essential entities.
In the following, we will be using the following name spaces:
1. subscriberID (subscrID). A Subscriber is an actor who enters into a contract with the service
provider to provide a specified set of services. The Subscriber is also the unit appropriate for
charging and billing. The Subscriber will be a real or legal person.
2. userID (usrID). A user is an actor which is using the network services without being part of
the network. A User object is an object in the user's terminal which represents the user in the
context of service invocation.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 11
25 August 1993 at: 18:27
A reference model for the creation and invocation of services
3. accessPointID (apID). An Access Point is a point in the switching network where a Terminal
may be connected. An accessPointID corresponds to the identity of a wire end point in the
permanent telephone system or a communication channel in the mobile telephone service.
Note that a common telephone terminal will usually be associated with three identifiers: A
userID which identifies it in the Service Domain, an accessPointID which identifies its
connection point in the Switching Domain, and a subscriberID which identifies the contracting
party.
A terminal which is used to manage network services, but which does not itself use such
services, will not need a accessPointID.
A terminal which is only used for communication, but which is not used for accessing the
Service Domain, will only need an accessPointID.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 12
25 August 1993 at: 18:27
Some extensions to the basic OOram product
Chapter 3
Some extensions to the basic OOram product
We assume that the notions of plain role models and their synthesis is known to the reader. We
refer to [Ree92] for further details about these notions.
NOTE: The definitions given in this section are tentative and need to be honed in the light of
future experience.
The following concepts not mentioned in [Ree92] are used in IN-Lab2:
1. OOram Type Specifications are role models with associated executable specifications. Their
roles are called Object types. An Object Type is the specification for a class (implemented in
Smalltalk-80).
2. Immutable roles are roles which may not be modified in any way in an importing model.
3. Environment roles are roles which send one or more stimulus messages.
4. An OOram Module is an encapsulation of one or more role models.
5. An OOram Export Model is a role model which is visible outside an OOram module. Export
Models are the only models visible outside the OOram Modules so that they may be
imported into other OOram Modules.
3.1
Notation and other conventions used in IN-Lab2
In IN-Lab2, symbol names of roles and role models follow the following conventions. The
corresponding notation is shown in figure 6??.
1. Plain role models are given the suffix RM, e.g. SW2ConnRM.
2. Type Specification models are given the suffix SPC, e.g. SW2ConnSPC.
3. Export models intended for synthesis into other models are given the suffix EXP, e.g.
TelA2UserEXP.
4. Export models specifying grammar types for the Conceptual Schema are given the suffix
CSC, e.g. TelA2SrvCSC.
5. Role symbol names are prefixed with the role model symbol name without suffix.
Executeable classes are named according to the following conventions:
1. An abstract class is generated for each object type, its name is the symbol name of the type
followed by a zero, e.g. TelA2Srvc0.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 13
25 August 1993 at: 18:27
Some extensions to the basic OOram product
2. A concrete class is generated for each object type as a subclass of the abstract, its name is the
symbol name of the type followed by a one, e.g. TelA2Srvc1.
Plain
Plain role
Immut
Immutable role
(Cannot be modified in import model)
Envir
Environment role
(Has stimuli)
Type
Object Type
(Has or will have class)
Immut
Envir
Immutable environment role
Immut
Type
Immutable object type
Envir
Type
Object type in environment
Immut
Env
Type
Immutable object type in environment.
(Meaningless, environment roles M
be extended by importer to explain
Figure 6. Notation for the different kinds of roles.
The correspondence between roles of different kinds and classes are as follows:
1. An Object Type is implemented as an abstract class with a concrete subclass. The abstract
class is generated automatically, all messages to be understood by the class are implemented
as self subclassResponsibility methods. The concrete class is implemented by a programmer.
2. An Object Type can at most import one other Object Type, the class will be subclass of the
imported type's class. (This restriction is caused by the single inheritance property of
Smalltalk, Eiffel, C++, etc)
3. Environment types may be implemented for testing purposes, but their class is not subclassed
in importing models. (Environment meaning that the role specifies additional behavior of an
object which is described elsewhere). Immutable environment types are therefore
meaningless.
4. The automatically generated implementations of Immutable Object Types ensure that they
cannot be subclassed.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 14
25 August 1993 at: 18:27
3.2
Some extensions to the basic OOram product
The OOram Module
The OOram Module is an encapsulation of role models and object specifications. The OOram
Module supports programming-in-the-large: The Module exports one or more carefully designed
models and hides all design and implementation details.
The OOram Module may import models from other modules and synthesize them into the
module's own role models. Object Specifications specify classes which may be implemented.
Simplified views of a selected set of these role models and specifications are exported to be used
in other models as illustrated in the figure below.
Import Models
Role Models
Object SpecificationsExport Models
Figure 7. The OOram Module.
An Export Model is a role model which is designed to be reused through synthesis into another
role model, and it may implemented as a set of classes designed to be subclassed in a controlled
manner.
An Export Model may consist of the following parts:
1. An OOram Role Model describing its functionality.
2. A coordinated set of classes which implement the model for executable specifications
(optional).
3. Rules for the import of the model, blocking the subclassing of some classes and restricting
the modifications permitted in the subclasses of others. The rules shall be designed to ensure
the static and dynamic integrity of the Constituent. Many different rules can be
contemplated, they should preferably be automatically enforceable or checkable (optional).
The export models are of the following kinds:
1. Mechanisms (suffix EXP). Role models defining archetypical objects and their interaction
without object type specification.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 15
25 August 1993 at: 18:27
Some extensions to the basic OOram product
2. Client-Servers (suffix EXP). Role models defining the interface to pre-programmed server
objects. The model specifies one or more server roles, which are implemented and not
intended for subclassing. It also defines one or more client roles, which are to be synthesized
into the corresponding roles in the importing modules, but which do not provide superclass
specifications.
3. Frameworks (Suffix EXP). Implemented role models defining abstract classes which are
designed to be subclassed. The functionality of the framework is imported into another
module by synthesizing its roles into corresponding roles in the importing role model. These
roles are intended to be modified in the importing models, the corresponding classes will be
subclasses of the framework classes.
4. Configuration Service Constituents (suffix CSC). Views on implemented object
specifications with exactly two roles: a root role and a leaf role. A CSC model specifies a
configuration type: Given an object playing the root role, one or more objects playing the
leaf role may be configured to be a root role collaborator. The configuration types are used to
control the creation of OOram Conceptual Models.
3.3
Work process considerations
Programming a small system like the current example in an incremental programming
environment like Smalltalk-80 would be relatively simple. Using exploratory programming
techniques, a satisfactory set of classes and methods would evolve naturally.
The situation is radically different when we add the rigorous of a systematic design
methodology. We now have a model of the program with a number of different and overlapping
views, all these views must be made consistent in all their details. The roles models prescribe
permissible message sends, these must be consistent with the messages actually sent by the
programs. Role models build on other role models through synthesis. If a role model is changed,
the importing role models must be updated accordingly. Tools can be provided to check and help
the programmer in the updating tasks, but there hard work is still involved and it is easy to get
lost in all the petty details.
Consider the current example. The programs consist of only 38 classes and 300 methods, about
half are created and updated automatically from the object type specifications. The total program
file is 2500 lines and 100 kBytes. This small program is specified in 6 OOram modules, there are
28 role models including 14 export models. The design and documentation is divided into 8 files
totalling 1.300 kBytes, 13 times the bare programs. We seem to remember having seen a report
that it takes three times as long to create a designed and documented program compared to just
writing it. Given the compactness and productivity of Smalltalk programming, this number
seems to be on the low side. (A corresponding program written in C would probably be at least
five times our number of lines).
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 16
25 August 1993 at: 18:27
Some extensions to the basic OOram product
The good news are that the discipline, modularity and precision provided by a good analysis and
design methodology makes it easier for us to scale to real-sized projects. The structure imposed
on the design gives other people a chance to understand what we have done and why we did it.
Quality checks can be applied at different levels of abstraction by independent auditors. The
logical descriptions makes it possible to apply automated tools to check that the programs
actually conform to the designer's intentions.
We offer the following advice for good working habits:
1. The architecture as it is embodied in the choice of modules and their exported functionality is
very important. The hassle involved in system updates is immensely reduced if one can get
the architecture right.
2. Keep it mean and lean. The models exported from the modules should be simple, easy to
understand and easy to apply.
3. Exploratory design and implementation of modules is a powerful method which yields good
results in a short period of time. But keep the architecture stable, exported models should be
changed infrequently and only after careful consideration.
4. Keep modules and role models brief and sketchy until the architecture all naming
conventions are stable.
5. more???
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 17
25 August 1993 at: 18:27
The combined User and Subscriber Layers
Chapter 4
The combined User and Subscriber Layers
The work of the Subscriber involves selecting a desired service and making a copy of the
relevant objects available to the User. Some of the service parameters may be bound as part of
this process. The User is the party who wants to use available services, and who is responsible
for the selection and invocation of a service. The invocation leads to creating a copy of the
relevant master objects, installing them in the Invocation environment, and executing the service.
All remaining parameters must be bound by the User as part of the service invocation process.
The deliverable to the User from the Service Provider is the required set of Services installed in
the User's data base.
<<<??CePe: Do you want to include a description of demo user interface here??>>>
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 18
25 August 1993 at: 18:27
The Service Provider Layer
Chapter 5
The Service Provider Layer
The work of the Service Provider involves creating concrete object structures which implement
certain desirable services, and making these object structures available to the Subscriber. Some
of the service parameters may be bound as part of this process. The deliverable from the Service
provider is contractual document defining a set of services, together with a master instance of
interconnected objects which define the particular set of services available to a given User. Some
of the free parameters are bound as part of the instantiation process. An appropriate medium for
this information is a Service Contract Document, which may be printed (and signed), and which
may be executed to cause the installation of the Subscriber, Users and their services in the
Service Domain.
The tool for creating this document is an intelligent editor which permits the Service Provider to
create any and all permissible Subscriber, User and Service specifications, and which
automatically prevents the creation of illegal combinations. (We strongly believe this is better
than an editor which permits anything and then hits its user with an error message if something is
wrong).
The deliverable from the Service Creator to the Service Provider is a Conceptual Model which
controls the insertions in the Contract Document Editor.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 19
25 August 1993 at: 18:27
The Service Provider Layer
Figure 8. Editor for specifying the Contract Document.
The object oriented tree structure tool shown in figure 8?? is in two parts: The left margin gives
a graphical representation of the structure, where the rectangular symbols represent the kind of
element shown to the right, and the small, black triangles represent insertion points, indicating
where the user may insert additional elements. Each insertion point only permits the insertion of
new elements which are appropriate at that point in the structure. The tool supports multi-media,
in the sense that it presents low-level phenomena such as texts, graphics and tables, as well as
high-level phenomena such as IN Services and Access Point Selectors. The appropriate editor for
the elements is automatically activated when the user points inside one of the information
elements in the right part of the tool. The tool permits selective zooming, the ellipsis after an
element symbol indicates that the element presentation has been collapsed into a one-liner.
In the above example, we show our editor when the Service Provider is defining the Tel-B
service. The specification says that the network Access Points with IDs 222, 333, 444 are to be
selected in a round robin fashion Monday through Friday between 08:00 and 16:00. The hidden
call forward selector specifies that all day Saturday and Sunday, incoming calls are to be
forwarded to the User with userID 5601. In all other cases, the call is to be received in the default
Access Point with accessPointID 222.
A node selection box appears when the Service Provider selects one of the insertion points. An
example is shown in figure 9?? below, it is the box appearing at the insertion point just above
"Call Forward Specification" in the above figure.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 20
25 August 1993 at: 18:27
The Service Provider Layer
Figure 9. Example of contract node insertion box.
The Service Provider may select a text node from the clipboard, or one of an AP-Selector or CF-Selector. The
Service Provider has changed his mind about the insertion, and pressed the Cancel-button.
5.1
Service Specification and Contract Document - Example
The printed result of the above contract example is shown on the following two pages. A real
contract document would contain more legal jumble and possibly a tailored user's manual, but
we have omitted such embellishments in this simple example.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 21
25 August 1993 at: 18:27
The Service Provider Layer
Contract document
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 22
25 August 1993 at: 18:27
The Service Provider Layer
Contract document
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 23
25 August 1993 at: 18:27
The Service Creator Layer
Chapter 6
The Service Creator Layer
The Service Creator is a party who has a license for producing telecommunications service
software to be made available for installation in the telecommunications network. Service
Constituents are generally made reusable, so that their objects may be configured in many
different ways to create different services. The Service Creator defines a kind of grammar, called
an OOram Conceptual Model, which specifies which objects may be involved in a certain
(family of) services, how they are to be structured, and possibly specializes their names to suit
the mental model of the Service Provider. Some of the service parameters may be bound as part
of this process. A simplified form of the model controlling our example application is shown in
figure 10?? below.
Figure 10. OOram Conceptual Model editor showing our example model.
This Conceptual Model says that a document consists of Texts, SubscriberData, and Users. A
User part consists of Texts, User-Data, and one or more services. The services offered here are
Tel-A and Tel-B, each is specified with describing Texts and certain attributes (Tel-A-Data and
Tel-B-Data). Tel-B-Data may optionally be modified with one or more Access Point Selectors
(AP-Selector) and/or Call Forward Selectors (CF-Selector).
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 24
25 August 1993 at: 18:27
The Service Creator Layer
Information about object type (Service Constituent), cardinality and initial values are associated
with each of these schema elements. There must for example be exactly one SubscrData in a
document, and one User-Data for each User. There can be at most one of each service, but any
number of Texts, AP-Selectors and CF-Selectors. The permissible sequence of elements is
specified in an extended form of the diagram (not shown here).
The Service Creator uses a special tool to define the available services. This tool permits the
construction of any schema supported by the available Service Constituents. Figure 10?? above
shows the appearance of the tool on the workstation screen. Implicit insertion points exist above,
below and to the right of all symbols, permitting the Service Creator to insert additional objects
to be made available to the Service Provider.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 25
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Chapter 7
The Service Constituent Creator Layer
This is the layer for actual programming of service functionality. The Service Constituent
Creator is a party who has a license for producing building blocks which may be configured into
complete services, and who specifies new units of functionality in the form of role models.
Access to the Switching Domain is done through synthesis by importing the relevant export
models from the Network Provider Layer. A Service Constituent (SC) role model is then
implemented, and the result made available to other SCs by exporting a suitably constrained role
models.
The deliverables from a Service Constituent Creator to the Service Creator is an OOram Abstract
Type Model, which define all possible ways that the Service Constituents may be configured into
complete services.
The deliverables from a Service Constituent Creator to another Service Constituent Creator are
OOram Export Models which may be imported into the other Service Constituent Creators
modules.
7.1
Abstract Type Model
An OOram Abstract Type specifies an object with the required properties of its collaborators.
There are 7 different Abstract Types in our example Conceptual Schema in figure 10??.
1. TextType is a general type, it specifies an object that can act as a node in a tree structure and
which has a text attribute. document, Text, User, Tel-A and Tel-B are applications of this
object type.
2. SubscrDataType is the special type of the SubscrData insertion.
3. UserDataType is the special type of the UserData insertion.
4. TelAType is the special type of the Tel-A-Data insertion.
5. TelBType is the special type of the Tel-B-Data insertion.
6. APAllocatorType is the special type of the AP-Selector insertion.
7. CFType is the special type of the CF-Selector insertion.
Composition Service Constituents, which are defined as export models with a CSC name suffix
in the Calling SM and Called SM modules, specify the properties of the OOram Abstract Types
as shown in figure 11??
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 26
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Export from Calling Telephone Serv
defining that
TelA2Srvc is a service that
can be connected under an Invocat
Analyzer.
Inv2
Analzr
TelA2
Srvc
TheTel-A-Type must be defined so tha
its instances can play
TelA2Srvc
the
role.
Export from Called Telephone Ser
defining that
TelB2 Srvc is a service tha
can be connected under an Invoca
Analyzer.
Inv2
Analzr
TelB2
Srcv
TheTel-B-Type must be defined so t
its instances can play
TelB2Srvc
the
role.
Export from Called Telephone Se
defining that
Tel2SelSrv is a selector th
can be connected under a B servi
TelB2
Srcv
Tel2
SelSrv
Both the
APAllocatorType and the
CFType
must be defined so that their insta
can play the
TelB2SelSrv role.
Figure 11. Composition Service Constituent types.
We use a simple syntax which we hope is self-explanatory for defining the abstract types. Notice
that there are two types for the TelB2SelSrv role. Their external properties are identical, but their
detailed functionality differ in that one selects an Access Point while the other selects a Call
Forward UserID.
type: TextType
subtypeOf: Object
role ... roleModel ... module ... " Role Model not provided in this example "
downNodes (Object).
type: SubscrDataType
subtypeOf: Object
role: ... roleModel: ... module: ... " Role Model not provided in this example "
downNodes: ().
type: UserDataType
subtypeOf: Object
role: nil roleModel: nil module: nil " Role Model not provided in this example "
downNodes: (Object)
" Not quite right, is it ?? "
type: TelAType
subtypeOf: Object
role: TelA2Srvc roleModel: TelA2SrvCSC module: TeleA2
downNodes: ().
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 27
25 August 1993 at: 18:27
The Service Constituent Creator Layer
type: TelBType
subtypeOf: Object
role: TelB2Srvc roleModel: TelB2SrvCSC module: TeleB2
downNodes: (APAllocatorType CFType)
type: APAllocatorType
role: TelB2SelSrv roleModel: TelB2SrvCSC module: TeleB2
subtypeOf: Object
downNodes: ().
type: CFType
role: TelB2SelSrv roleModel: TelB2SrvCSC module: TeleB2
subtypeOf: Object
downNodes: ().
The particular services assigned to a User are instantiated and installed through the structured
document called the Service Contract described in the previous section.
The 9 classes of these programs have been hand coded in InLab2. Automated aids for the
generation of these programs are for further study.
7.2
Service Constituent Export Models
A summary description of the models exported from the Service Constituent Provider sub-layers
are given in the following sub-sections.
7.2.1
Called Telephone module export models summary
TelB2 User-Service Interaction EXP (TelB2UserEXP) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export
Models; Area of Concern stimuli; Role list diagram; Scenarios explanation
Area of Concern
Defines the interaction between the User object and the CalledTelephone service.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 28
25 August 1993 at: 18:27
The Service Constituent Creator Layer
The Roles
TelB2
Srcv
TelB2
User
Called Telephone Service CSC (TelB2SrvcCSC) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export
Models; Area of Concern stimuli; Role list diagram; Scenarios explanation
Area of Concern
This model is a type specification for the called end of a telephone connection service.
The Roles
Inv2
Analzr
TelB2
Srcv
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 29
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Called Telephone selector CSC (TelB2SelCSC) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export
Models; Area of Concern stimuli; Role list diagram; Scenarios explanation
Area of Concern
This model is a type specification for the called end of a telephone connection service.
The Roles
TelB2
Srcv
Tel2
SelSrv
7.2.2
Calling Telephone module export models summary
Connecting telephone Service Configuration Service Constituent (TelA2SrvCSC) {Export
Model}
Report including the following selections automatically generated 28 July 1993: Export
Models; Area of Concern stimuli; Role list diagram; Scenarios explanation
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 30
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Area of Concern
This model is a type specification for the calling end of a telephone connection service.
The Roles
Inv2
Analzr
TelA2
Srvc
TelA2 User-Service Interaction EXP (TelA2UserEXP) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export
Models; Area of Concern stimuli; Role list diagram; Scenarios explanation
Area of Concern
Defines the interaction between the User object and the Calling Telephone service.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 31
25 August 1993 at: 18:27
The Service Constituent Creator Layer
The Roles
TelA2
User
7.2.3
TelA2
Srvc
Abstract Telephone Service export summary
Abstract Telephone Interaction EXP (Abstr2IntEXP) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export Models
Area of Concern - stimuli Role list - diagram Scenarios - explanation
Area of Concern
This role model covers the interaction between the services of two users (A and B). Both the Aand B-services are capable of handling real time telephony calls. Service A handles telephony
calls in a way that suits A, service B handles calls in a way that suits user B. In this role model
service A is capable of generating new outgoing calls, while service B handles incoming calls.
The stimulus messages of this role model is a request by service B for context information from
service A. This message is typically the first message sent from service B after it has been
created and started. It is assumed that service B initially knows little about the state of service A
and the type of call A wants to make, just that service A is capable of generating calls.
This role model does not cover a complete protocol between service A and service B, just
messages that are relevant for the TINA demo. It is also expected that this role model can be split
into different role models covering different aspects of service interaction, e.g. charging,
connection setup, security, etc. For the sake of simplicity and due to our relatively simple
services we merge this into one role model at this stage.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 32
25 August 1993 at: 18:27
The Service Constituent Creator Layer
The Roles
Abstr2
AServ
Abstr2
BServ
Interaction Scenarios
Tel2
AServ
Tel2
BServ
releaseFromA
releaseFromB
Figure 12. Release connection from A {Scenario}
This MSC shows how a connection is released with the initiative coming from the calling side.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 33
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Tel2
AServ
Tel2
BServ
open
provideContext
call:qoc:
userBWaiting:
createLeg:direction:qoc:toConnPt:
Figure 13. Establish connection {Scenario}
This Message Sequence Chart shows the typical message sequence for the successful establishment of a telephone
connection.
Tel2
AServ
Tel2
BServ
releaseFromB
releaseFromA
Figure 14. Copy of Release connection from A (Release connection from B) {Scenario}
This MSC shows how a connection is released with the initiative coming from the called side.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 34
25 August 1993 at: 18:27
7.2.4
The Service Constituent Creator Layer
Service Installation and Invocation export models summary
Inv2InvocationMCH (Inv2InvMCH) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export Models
Area of Concern - stimuli Role list - diagram Scenarios - explanation
Area of Concern
This mechanism is for service invocation in an intelligent network. It conveys the principles for
how to process a particular client's request for execution of a particular service.
The Roles
Inv
Mngr
Inv2
Analzr
Inv2
Client
Technical Overview IN-Lab report 93/2
Inv2
Serv
©Taskon 1998. Page 35
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Interaction Scenarios
Inv
Client
Inv
Mngr
Inv
Analzr
Inv
Serv
invocReq:
Figure 15. Invocation rejection 1 {Scenario}
This scenario exemplifies the earliest possible rejection of an invocation request. The returned value is false.
Inv
Client
Inv
Mngr
Inv
Analzr
Inv
Serv
invocReq:
servicesFor:
obeysProtocol:
getService:for:
obeysProtocol:
setUp:client:analyzer:invocator:
Figure 16. SelectAndOpenService {Scenario}
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 36
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Inv
Client
Inv
Mngr
Inv
Analzr
Inv
Serv
invocReq:
clientIdRequest
Figure 17. Invocation success 1 {Scenario}
This scenario shows the basic standard expected message flow during perfect execution of the invocation phase.
Inv2InvocationFW (Inv2InvFW) {Export Model}
The role model is identical to Inv2InvocationMCH, but the roles define suitable classes to be
subclassed by the importer.
Inv2InstallationEXP (Inv2InstallEXP) {Export Model}
Report including the following selections automatically generated 28 July 1993: Export Models
Area of Concern - stimuli Role list - diagram Scenarios - explanation
Area of Concern
The Service role represents the target application for the client. This is the software defining
some client's telecommunications service.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 37
25 August 1993 at: 18:27
The Service Constituent Creator Layer
The Roles
Inv
Mngr
Inv
Analzr
Inv
Installer
Inv
User
Inv
Serv
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 38
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Interaction Scenarios
Inv
Installer
Inv
Analzr
installService:
Figure 18. Service installation {Scenario}
Installing a service in an InvocationAnalyzer.
Inv
Client
Inv
Mngr
Inv
Analzr
Inv
Serv
invocReq:
Figure 19. Invocation rejection 1 {Scenario}
This scenario exemplifies the earliest possible rejection of an invocation request. The returned value is false.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 39
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Inv
Client
Inv
Mngr
Inv
Analzr
Inv
Serv
invocReq:
servicesFor:
obeysProtocol:
getService:for:
obeysProtocol:
setUp:client:analyzer:invocator:
Figure 20. SelectAndOpenService {Scenario}
Inv
Installer
Inv
Analzr
removeService:
Figure 21. Service removal {Scenario}
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 40
25 August 1993 at: 18:27
The Service Constituent Creator Layer
Inv
Client
Inv
Mngr
Inv
Analzr
Inv
Serv
invocReq:
clientIdRequest
Figure 22. Invocation success 1 {Scenario}
This scenario shows the basic standard expected message flow during perfect execution of the invocation phase.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 41
25 August 1993 at: 18:27
The Network Layer
Chapter 8
The Network Layer
In our context, the main responsibility of the Network Provider is to provide basic switching and
communication services to the IN services. A first separation of IN into a Switching Domain and
a Service Domain has been suggested in [Bugge91] as shown in figure 1??. A network
implementation which could support this layer is discussed in [Hand93].
The Switching Domain encapsulates all the problems associated with the rapid switching and
transmission of large masses of user data and hides the differences between switch
implementations, providing a universal interface to the Service Domain.
The Service Domain encapsulates all the problems associated with the great variety of services to
be provided. It can be thought of as a distributed system being supported by a communication
facility for signalling. Some of the services provided will be completely implemented in the
Service Domain, while others will be used to control the Switching Domain in a more or less
sophisticated manner.
The Network Layer exports two client-server models as described in the following sub-sections:
8.1
8.1.1
Network export models summary
Network Connection Model (Netw2ConnEXP) {Export Model}
Report automatically generated 24 July 1993
Area of Concern
The ConnectionControl is primarily responsible for the provision of communication paths
between two or more addressable entities in the network (end user, service provider, etc). The
ConnectionControl offers two different types of communication path:
1. Unidirectional communication path
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 42
25 August 1993 at: 18:27
The Network Layer
2. Bidirectional communication path.
These communication paths can be built up by service primitives on the attributes: Legs and
ConnectionPoints, to provide a large variety of connection configurations. But some restrictions
are put on the possible combinations:
1. The parts of a communication path must all be unidirectional or bidirectional.
2. For the unidirectional case, at most one source (addressable entity) can be connected at a time
(no restriction on number of connected sinks), i.e. effectively supporting point-to-multipoint
configuration.
3. For the bidirectional case, at most two addressable entities may be connected at a time, i.e.
effectively supporting point-to-point configurations.
The objects of this role model are abstract, in the sense that they are responsible for the isolation
of the Client from the ATM specific network technology.
The Roles
Netw2
Conn
Client
Netw2
Conn
Leg
Netw2
Conn
Point
1. Net2Connection Client (Netw2ConnClient) {Type}. The service instance,
Netw2ConnClient, views the network as a virtual switch object and represents a user of the
Connection Control.
2. Netw2Connection Leg (Netw2ConnLeg) {Type}. This role represents a communication
path from a connection point towards an addressable entity in the network (e.g. an end user
terminal). A Leg is always associated with a ConnectionPoint. Leg is responsible for storing
the information characterizing the leg.
3. Netw2Connection Point (Netw2ConnPoint) {Type}. This role represents an interconnection
or logical bridge allowing information to flow between legs.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 43
25 August 1993 at: 18:27
The Network Layer
Interaction Scenarios
Netw2
Conn
Client
Netw2
Conn
Point
Netw2
Conn
Leg
openCPFor:type:responseLevel:
createLeg:direction:to:qoc:
modifyQoc:
modifyDirection:
freeLeg
freeCp
Figure 23. Rudimentary create and free sequence. {Scenario}
8.1.2
Network Access Manager EXP (Netw2MngrEXP) {Export Model}
Report automatically generated 24 July 1993
Area of Concern
This role model describes the main access point to the Switching Domain. Its purpose is to
provide the client with the available Switching Domain services. It combines the functionality of
a general switch manager and some socket types.
The ConnectionControl is primarily responsible for the provision of communication paths
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 44
25 August 1993 at: 18:27
The Network Layer
between two or more addressable entities in the network (end user, service provider, etc). The
ConnectionControl offers two different types of communication path:
1. Unidirectional communication path
2. Bidirectional communication path.
These communication paths can be built up by service primitives on the attributes: Legs and
ConnectionPoints, to provide a large variety of connection configurations. But some restrictions
are put on the possible combinations:
1. The parts of a communication path must all be unidirectional or bidirectional.
2. For the unidirectional case, at most one source (addressable entity) can be connected at a time
(no restriction on number of connected sinks), i.e. effectively supporting point-to-multipoint
configuration.
3. For the bidirectional case, at most two addressable entities may be connected at a time, i.e.
effectively supporting point-to-point configurations.
The objects of this role model are abstract, in the sense that they are responsible for the isolation
of the Client from the ATM specific network technology.
The Roles
Netw2
Mngr
Client
Netw2
Mngr
1. Network Manager Client (Netw2MngrClient) {Type}. Any Service Domain object which
has access to the Switching Domain services.
2. Network Access Manager (Netw2Mngr) {Type}. This object is a main access point to the
Switching domain, giving access to the specialized Switching Domain services.
The service client views the network as a virtual switch object and represents a user of the
Connection Control.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 45
25 August 1993 at: 18:27
References
Appendix 1
References
[Bugge91] Bugge B. et al. Methods and tools for service creation in an intelligent network, initial
document. Kjeller, Norwegian Telecom Research, 1991 (Research Doc. No. 34/91)
[Chambers] Chambers's Encyclopædia, Gerorge Newnes Ltd 1955, vol X p. 663a.
[EAndRee92] Egil P. Andersen, Trygve Reenskaug: System Design by Composing Structures of
Interacting Objects. ECOOP '92, Utrecht, Holland.
[Etzioni64] Amitai Etzioni: Modern Organizations. Prentice-Hall 1964. pp 53-54
[GCOlsen92] Grete Christina Olsen: Object oriented data bases and role models. MSc thesis, Dept. of
Informastics, University of Oslo, 1992. (In Norwegian).
[Hand93] Tom Handegård, Bengt G. Jensen, Kirsti A. Løvnes: IN control of broadband Networks. The
Forth Telecommunications Information Networking Architecture Workshop, L'Aquila, Italy. (TINA-93)
[Harel87] David Harel: Statecharts: A Visual Formalism for Complex Systems. Science of Computer
Programming, 8:231-274, Elsevier 1987.
[JAndRee91] Jørn Andersen, Trygve Reenskaug: Operations on sets in an OODB. OOPS Messenger, 2,4
(October 1991)
[Nordh89] Else Nordhagen: Generic Object Oriented Systems. Proceedings of Tools 89, Paris November
1989 (pp. 131,140)
[Ree73] Trygve M. H. Reenskaug: Prokon/Plan - A Modelling Tool for Project Planning and Control.
IFIP Conference, North-Holland 1977.
[Ree92] Trygve Reenskaug, Egil P. Andersen, Arne Jørgen Berre, Anne Hurlen, Anton Landmark, Odd
Arild Lehne, Else Nordhagen, Eirik Næss-Ulseth, Gro Oftedal, Anne Lise Skaar, Pål Stenslet: OORASS:
Seamless Support for the Creation and Maintenance of Object Oriented Systems. Journal of Object
Oriented Programming, October 1992, pp 27-41.
[Vestli, Nilsen 92] Vestli, Nilsen: The Intelligent Network Service Life Cycle. Telektronikk 2.92
(Norwegian Telecom Research, P.b. 83, 2007-Kjeller, Norway)
Anne Lise Skaar: Objektorienterte produktmodeller i DAK-system. Institute of Informatics, University of
Oslo, 1982
Else Nordhagen: Blaise, syntaksorientert programredigering av Pascal tekst i et Smalltalk system. MSc
thesis, Institute of Informatics, University of Oslo, 1982
Jørn Andersen, Trygve Reenskaug: Operations on sets in an OODB. OOPS Messenger, 2, 4 (Oct. 1991)
pp. 26-39.
Pål Stenslet: Spørresystem basert på Smalltalk. MSc thesis, Institute of Informatics, University of Oslo,
1982
Rebecca J. Wirfs-Brock, Ralph E. Johnson: Surveying current research in object-oriented design.
Communications of the ACM, 33, 9 (September 1990) pp 113 ff.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 46
25 August 1993 at: 18:27
References
T. M. H. Reenskaug: "User-Oriented Descriptions of Smalltalk Systems". Byte, 6, 8 (August 1981)
pp148-166 and G. E. Peterson: Tutorial: Object-Oriented Computing, Volume 1: Concepts. The
Computer Society of IEEE 1987, pp75-81.
T. Reenskaug, E. Næss-Ulseth: "Tender/One - An Environment for Tender Preparation". Ninth
International Cost Engineering Congress, Oslo 1986.
Trygve Reenskaug, Anne Lise Skaar: An Environment for Literate Smalltalk Programming. Sigplan
Notices 24 10 (Oct 89) OOPSLA 89 pp 337-345
Trygve Reenskaug: Administrative Control in the Shipyard. ICCAS Conference, Tokyo 1973.
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 47
25 August 1993 at: 18:27
Monitored executions
Appendix 2
Monitored executions
App 2.1
Inv2Install1 fileIn {Role Model}
Report including the following selections automatically generated 21 July 1993: Role Models Area of Concern stimuli Role list - diagram Scenarios Message Sets
App 2.1.1
Area of Concern
App 2.1.2
The Roles
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 48
25 August 1993 at: 18:27
Inv2
Mngr
#101
Monitored executions
Term2
User
#107
17
TelB2
Srcv
#110
5
27
14
28
18
Inv2
Install
#106
2
Term2
User
#102
8
Inv2
Analzr
#103
26
25
22
10
TelA2
Srvc
#109
9
11
Tel2
SelSrv
#105
App 2.1.3
Inv2
Analzr
#108
TelB2
Srcv
#104
12
Tel2
SelSrv
#106
Interaction Scenarios
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 49
App 2.1.4
Inv2
Mngr
#101
Technical Overview IN-Lab report 93/2
userID
initializeFrom:
servicesOfKind:
servicesOfKind:
initializeFrom:
servicesOfKind:
servicesOfKind:
invocReq:
addUser:analyzer:
userID
userID:subscrID:manager:user:
userID:manager:analyzer:
invocReq:
initializeFrom:
servicesOfKind:
servicesOfKind:
invocReq:
addUser:analyzer:
userID:subscrID:manager:user:
userID:manager:analyzer:
invocReq:
Inv2
Install
#106
Term2
User
#102
kind
Inv2
Analzr
#103
initializeFrom:
initializeFrom:
TelB2
Srcv
#104
Tel2
SelSrv
#105
Tel2
SelSrv
#106
Term2
User
#107
kind
kind
kind
kind
Inv2
Analzr
#108
TelA2
Srvc
#109
TelB2
Srcv
#110
25 August 1993 at: 18:27
Monitored executions
Figure 24. Inv2Install1 fileIn {Scenario}
Message Sets
©Taskon 1998. Page 50
25 August 1993 at: 18:27
1.
2.
3.
4.
5.
Monitored executions
Inv2Install#106 {Role}
- 18 {Port}
- executed {Contract}
- invocReq: {Message}
- addUser:analyzer: {Message}
- 2 {Port}
- executed {Contract}
- userID:manager:analyzer: {Message}
- 8 {Port}
- executed {Contract}
- userID:subscrID:manager:user: {Message}
- servicesOfKind: {Message}
- 10 {Port}
- executed {Contract}
- initializeFrom: {Message}
- 14 {Port}
- executed {Contract}
- userID:manager:analyzer: {Message}
- 25 {Port}
- executed {Contract}
- userID:subscrID:manager:user: {Message}
- servicesOfKind: {Message}
22
{Port}
- executed {Contract}
- initializeFrom: {Message}
28
{Port}
- executed {Contract}
- initializeFrom: {Message}
Inv2Mngr#101 {Role}
- 5 {Port}
- executed {Contract}
- userID {Message}
17
{Port}
- executed {Contract}
- userID {Message}
Inv2Analzr#103 {Role}
- 9 {Port}
- executed {Contract}
- kind {Message}
TelB2Srcv#104 {Role}
- 11 {Port}
- executed {Contract}
- initializeFrom: {Message}
- 12 {Port}
- executed {Contract}
- initializeFrom: {Message}
Inv2Analzr#108 {Role}
- 26 {Port}
- executed {Contract}
- kind {Message}
- 27 {Port}
- executed {Contract}
- kind {Message}
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 51
25 August 1993 at: 18:27
App 2.1.5
Monitored executions
Inv2Install1 fileIn trace file
Inv2Install1 fileIn
TASKON/OOram INLab Monitored Execution. on 21 July 1993 at 9:59:28 pm
version e03-t11.im1
Inv2Install#106 -> Inv2Mngr#101 invocReq: ('5602')
>> nil
Inv2Install#106 -> Term2User#102 userID:manager:analyzer: ('5602' Inv2Mngr#101 Inv2Analzr#103)
>> Term2User#102
Inv2Install#106 -> Inv2Analzr#103 userID:subscrID:manager:user: ('5602' '56' Inv2Mngr#101 Term2User#102)
>> Inv2Analzr#103
Inv2Install#106 -> Inv2Mngr#101 addUser:analyzer: (Term2User#102 Inv2Analzr#103)
>> Inv2Mngr#101
)-- Inv2Mngr#101 -> Term2User#102 userID )
>> '5602'
Inv2Install#106 -> Inv2Mngr#101 invocReq: ('5602')
Inv2Install#106 -> Inv2Analzr#103 servicesOfKind: (#TelB)
>> RMSOrderedCollection ()
)-- nil -> Inv2Analzr#103 installService: (TelB2Srcv#104)
>> Inv2Analzr#103
Inv2Install#106 -> Inv2Analzr#103 servicesOfKind: (#TelB)
>> RMSOrderedCollection (TelB2Srcv#104 )
Inv2Analzr#103 -> TelB2Srcv#104 kind )
>> #TelB
)-- Inv2Install#106 -> TelB2Srcv#104 initializeFrom: (RMSDictionary ('apID'->222 'serviceKind'->'TelB' 'title'->'Connection called
party specification' 'selectors'->RMSOrderedCollection (RMSDictionary ('kind'->#APSelector 'weekdays'->RMSOrderedCollection
(#Monday #Tuesday #Wednesday #Thursday #Friday ) 'apCondition'->#roundRobin 'endTime'->'16:00' 'startTime'->'08:00' 'apIDs'>RMSOrderedCollection (222 333 444 ) ) RMSDictionary ('kind'->#CallForward 'weekdays'->RMSOrderedCollection (#Saturday
#Sunday ) 'apCondition'->#roundRobin 'endTime'->'24:00' 'userIDs'->RMSOrderedCollection (5601 ) 'startTime'->'00:00' ) ) ))
>> TelB2Srcv#104
)-- TelB2Srcv#104 -> Tel2SelSrv#105 initializeFrom: (RMSDictionary ('kind'->#APSelector 'weekdays'->RMSOrderedCollection
(#Monday #Tuesday #Wednesday #Thursday #Friday ) 'apCondition'->#roundRobin 'endTime'->'16:00' 'startTime'->'08:00' 'apIDs'>RMSOrderedCollection (222 333 444 ) ))
>> Tel2SelSrv#105
)-- TelB2Srcv#104 -> Tel2SelSrv#106 initializeFrom: (RMSDictionary ('kind'->#CallForward 'weekdays'->RMSOrderedCollection
(#Saturday #Sunday ) 'apCondition'->#roundRobin 'endTime'->'24:00' 'userIDs'->RMSOrderedCollection (5601 ) 'startTime'->'00:00'
))
>> Tel2SelSrv#106
Inv2Install#106 -> Inv2Mngr#101 invocReq: ('5601')
>> nil
Inv2Install#106 -> Term2User#107 userID:manager:analyzer: ('5601' Inv2Mngr#101 Inv2Analzr#108)
>> Term2User#107
Inv2Install#106 -> Inv2Analzr#108 userID:subscrID:manager:user: ('5601' '56' Inv2Mngr#101 Term2User#107)
>> Inv2Analzr#108
Inv2Install#106 -> Inv2Mngr#101 addUser:analyzer: (Term2User#107 Inv2Analzr#108)
>> Inv2Mngr#101
)-- Inv2Mngr#101 -> Term2User#107 userID )
>> '5601'
Inv2Install#106 -> Inv2Mngr#101 invocReq: ('5601')
Inv2Install#106 -> Inv2Analzr#108 servicesOfKind: (#TelA)
>> RMSOrderedCollection ()
)-- nil -> Inv2Analzr#108 installService: (TelA2Srvc#109)
>> Inv2Analzr#108
Inv2Install#106 -> Inv2Analzr#108 servicesOfKind: (#TelA)
>> RMSOrderedCollection (TelA2Srvc#109 )
Inv2Analzr#108 -> TelA2Srvc#109 kind )
>> #TelA
)-- Inv2Install#106 -> TelA2Srvc#109 initializeFrom: (RMSDictionary ('apID'->111 'serviceKind'->'TelA' 'title'->'Plain Old Telephone
calling party specification' ))
>> TelA2Srvc#109
Inv2Install#106 -> Inv2Analzr#108 servicesOfKind: (#TelB)
>> RMSOrderedCollection ()
Inv2Analzr#108 -> TelA2Srvc#109 kind )
>> #TelA
)-- nil -> Inv2Analzr#108 installService: (TelB2Srcv#110)
>> Inv2Analzr#108
Inv2Install#106 -> Inv2Analzr#108 servicesOfKind: (#TelB)
>> RMSOrderedCollection (TelB2Srcv#110 )
Inv2Analzr#108 -> TelA2Srvc#109 kind )
>> #TelA
Inv2Analzr#108 -> TelB2Srcv#110 kind )
>> #TelB
)-- Inv2Install#106 -> TelB2Srcv#110 initializeFrom: (RMSDictionary ('apID'->111 'serviceKind'->'TelB' 'title'->'Plain Old Telephone
called party specification' 'selectors'->RMSOrderedCollection () ))
>> TelB2Srcv#110
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 52
25 August 1993 at: 18:27
App 2.2
Monitored executions
Inv2Install1 example4Connect: '5601' to: 5602 {Role Model}
Report including the following selections automatically generated 22 July 1993: Role Models Area of Concern stimuli Role list - diagram Scenarios Message Sets
App 2.2.1
Area of Concern
App 2.2.2
The Roles
TelB2
Srcv
#110
TelB2
Srcv
#104
Inv2
Mngr
#101
13
TelA2
Srvc
#109
18
5
3
9
Inv2
Analzr
#108
4
Inv2
Analzr
#103
14
6
10
1
Term2
User
#107
17
8
7
11
TelA2
Srvc
#10903
TelB2
Srcv
26 #10403
23
21
19
Netw2
ConnPoint
#118
24
22 27
Tel2
SelSrv
#105
25
Tel2
SelSrv
#106
20
Netw2
MngrServer
#111
Technical Overview IN-Lab report 93/2
Netw2
ConnLeg
#119
Netw2
ConnLeg
#120
©Taskon 1998. Page 53
TelA2
Srvc
#109
Technical Overview IN-Lab report 93/2
userReq:
user
potsConnect:from:to:qoc:
setUp:client:analyzer:invocator:
kind
protocol
kind
Inv2
Analzr
#108
TelB2
Srcv
#110
Inv2
Mngr
#101
userReq:
createLeg:direction:qoc:toConnPt:
createLeg:direction:to:qoc:
createCp:with:for:
call:qoc:
open
getService:for:
invocReq:
TelA2
Srvc
#10903
TelB2
Srcv
#104
user
setUp:client:analyzer:invocator:
protocol
kind
Inv2
Analzr
#103
createLeg:direction:to:qoc:
selectRequest
Netw2
ConnPoint
#118
Netw2
ConnLeg
#119
connPt:client:direction:to:qo
connPt:client:direction:to:qo
openCPFor:type:responseLevel:
Netw2
MngrServer
#111
selectRequest
TelB2
Srcv
#10403
App 2.2.3
obeysProtocol:
getService:for:
Term2
User
#107
25 August 1993 at: 18:27
Monitored executions
Interaction Scenarios
©Taskon 1998. Page 54
Monitored executions
qoc:
qoc:
Tel2
SelSrv
#105
Tel2
SelSrv
#106
Netw2
ConnLeg
#120
25 August 1993 at: 18:27
Figure 25. Inv2Install1 example4Connect: '5601' to: 5602 {Scenario}
App 2.2.4
1.
2.
Message Sets
Term2User#107 {Role}
- 1 {Port}
- executed {Contract}
- getService:for: {Message}
- 7 {Port}
- executed {Contract}
- potsConnect:from:to:qoc: {Message}
Inv2Analzr#108 {Role}
- 4 {Port}
- executed {Contract}
- obeysProtocol: {Message}
- 3 {Port}
- executed {Contract}
- kind {Message}
- protocol {Message}
- 5 {Port}
- executed {Contract}
- kind {Message}
- 6 {Port}
- executed {Contract}
- setUp:client:analyzer:invocator: {Message}
9
{Port}
- executed {Contract}
- userReq: {Message}
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 55
25 August 1993 at: 18:27
3.
4.
5.
6.
Monitored executions
TelA2Srvc#10903 {Role}
- 8 {Port}
- executed {Contract}
- user {Message}
- 10 {Port}
- executed {Contract}
- invocReq: {Message}
- 11 {Port}
- executed {Contract}
- getService:for: {Message}
- 23 {Port}
- executed {Contract}
- open {Message}
- call:qoc: {Message}
- createLeg:direction:qoc:toConnPt: {Message}
- 19 {Port}
- executed {Contract}
- createCp:with:for: {Message}
- 21 {Port}
- executed {Contract}
- createLeg:direction:to:qoc: {Message}
Inv2Analzr#103 {Role}
- 13 {Port}
- executed {Contract}
- kind {Message}
- protocol {Message}
- 14 {Port}
- executed {Contract}
- setUp:client:analyzer:invocator: {Message}
- 18 {Port}
- executed {Contract}
- userReq: {Message}
TelB2Srcv#10403 {Role}
- 17 {Port}
- executed {Contract}
- user {Message}
- 24 {Port}
- executed {Contract}
- selectRequest {Message}
- 25 {Port}
- executed {Contract}
- selectRequest {Message}
- 26 {Port}
- executed {Contract}
- createLeg:direction:to:qoc: {Message}
Netw2MngrServer#111 {Role}
- 20 {Port}
- executed {Contract}
- openCPFor:type:responseLevel: {Message}
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 56
25 August 1993 at: 18:27
7.
Monitored executions
Netw2ConnPoint#118 {Role}
- 22 {Port}
- executed {Contract}
- connPt:client:direction:to:qoc: {Message}
- 27 {Port}
- executed {Contract}
- connPt:client:direction:to:qoc: {Message}
App 2.2.5
Inv2Install1 example4Connect: '5601' to: 5602 trace file
Inv2Install1 example4Connect: '5601' to: 5602
TASKON/OOram INLab Monitored Execution. on 22 July 1993 at 7:54:18 am
version e03-t11.im1
Term2User#107 -> Inv2Analzr#108 getService:for: (#TelA Term2User#107)
Inv2Analzr#108 -> TelA2Srvc#109 kind )
>> #TelA
Inv2Analzr#108 -> TelA2Srvc#109 protocol )
>> #TelA
Inv2Analzr#108 -> Term2User#107 obeysProtocol: (#TelA)
>> true
Inv2Analzr#108 -> TelB2Srcv#110 kind )
>> #TelB
Inv2Analzr#108 -> TelA2Srvc#10903 setUp:client:analyzer:invocator: (#() Term2User#107 Inv2Analzr#108 Inv2Mngr#101)
>> TelA2Srvc#10903
)-- Term2User#107 -> TelA2Srvc#10903 potsConnect:from:to:qoc: (#Duplex Term2User#107 '5602' 2400)
>> TelA2Srvc#10903
TelA2Srvc#10903 -> Inv2Analzr#108 user )
)-- Inv2Analzr#108 -> Inv2Mngr#101 userReq: ('5601')
)-- TelA2Srvc#10903 -> Inv2Mngr#101 invocReq: ('5602')
)-- TelA2Srvc#10903 -> Inv2Analzr#103 getService:for: (#TelB {TelA2Srvc#10903})
Inv2Analzr#103 -> TelB2Srcv#104 kind )
>> #TelB
Inv2Analzr#103 -> TelB2Srcv#104 protocol )
>> #TelB
Inv2Analzr#103 -> TelB2Srcv#10403 setUp:client:analyzer:invocator: (#() {TelA2Srvc#10903} Inv2Analzr#103 Inv2Mngr#101)
>> TelB2Srcv#10403
)-- TelA2Srvc#10903 -> TelB2Srcv#10403 open )
>> TelB2Srcv#10403
)-- TelA2Srvc#10903 -> TelB2Srcv#10403 call:qoc: (#Duplex 2400)
>> TelB2Srcv#10403
TelB2Srcv#10403 -> Inv2Analzr#103 user )
)-- Inv2Analzr#103 -> Inv2Mngr#101 userReq: ('5602')
TelA2Srvc#10903 -> Netw2MngrServer#111 createCp:with:for: (#Duplex #OnlyNack TelA2Srvc#109)
Netw2MngrServer#111 -> Netw2ConnPoint#118 openCPFor:type:responseLevel: (TelA2Srvc#109 #Duplex #OnlyNack)
>> Netw2ConnPoint#118
)-- TelA2Srvc#10903 -> Netw2ConnPoint#118 createLeg:direction:to:qoc: (#Duplex #None 111 2400)
Netw2ConnPoint#118 -> Netw2ConnLeg#119 connPt:client:direction:to:qoc: ({Netw2ConnPoint#118} TelA2Srvc#109 #None 111
2400)
>> Netw2ConnLeg#119
)-- TelA2Srvc#10903 -> TelB2Srcv#10403 createLeg:direction:qoc:toConnPt: (#Duplex #None 2400 Netw2ConnPoint#118)
TelB2Srcv#10403 -> Tel2SelSrv#105 selectRequest )
>> false
TelB2Srcv#10403 -> Tel2SelSrv#106 selectRequest )
>> false
TRACE-Tel2SelSrv#106-selection not implemented
TRACE-TelB2Srcv#10403-#('default' 222 )
)-- TelB2Srcv#10403 -> Netw2ConnPoint#118 createLeg:direction:to:qoc: (#Duplex #None 222 2400)
Netw2ConnPoint#118 -> Netw2ConnLeg#120 connPt:client:direction:to:qoc: ({Netw2ConnPoint#118} TelA2Srvc#109 #None 222
2400)
>> Netw2ConnLeg#120
TRACE-TelA2Srvc#10903-commenceCommunication
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 57
25 August 1993 at: 18:27
Taskon standard QualityCheck of the IN2 implementation
Appendix 3
Taskon standard QualityCheck of the IN2 implementation
App 3.1
Error reports
This section describes errors which should be corrected as soon as possible.
Taskon Smalltalk program Quality report automatically generated 24 July 1993 from image e03t12.im1
None
App 3.2
General information
This section is for the information and enlightentment of the responsible programmer.
Taskon Smalltalk program Quality report automatically generated 24 July 1993 from image e03t12.im1
Check Class Comments
Inv2Analzr1 has no comment
Inv2Client1 has no comment
Inv2Serv1 has no comment
Netw2ConnClient1 has no comment
Netw2ConnLeg1 has no comment
Netw2ConnPoint1 has no comment
Netw2MngrClient1 has no comment
Netw2MngrServer1 has no comment
RMSAllocator1 has no comment
RMSCallForward1 has no comment
RMSSection1 has no comment
RMSServiceContract1 has no comment
RMSSubscrInstall1 has no comment
RMSTeleA1 has no comment
RMSTeleB1 has no comment
RMSText1 has no comment
RMSUserInstall1 has no comment
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 58
25 August 1993 at: 18:27
Taskon standard QualityCheck of the IN2 implementation
TelA2Srvc1 has no comment
TelB2Srcv1 has no comment
Term2User1 has no comment
Check for inst.vars. not referenced
Inv2Install0 does not reference the following instance variables:
analyzer
invocManager
service
user
Netw2ConnClient0 does not reference the following instance variables:
connectionPoint
legs
Netw2MngrClient0 does not reference the following instance variable:
netwManager
Netw2MngrServer0 does not reference the following instance variables:
connectionPoint
legs
TelB2Srcv0 does not reference the following instance variables:
connectionPoint
legs
Check for classes being referenced.
RMSTeleA1 does not seem to be referenced neither by name nor by class
RMSTeleB1 does not seem to be referenced neither by name nor by class
Comment: This is OK, the classes are referenced through the Conceptual Model.
Check for methods implemented but not sent
Inv2Install1 class implements the following unsent messages:
countProgramSizeInLab example2: example4Connect:to: fileOutINLabTo:
Term2User1 implements the following unsent messages:
example4ConnectTo:
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 59
25 August 1993 at: 18:27
Taskon standard QualityCheck of the IN2 implementation
Check Method history
62 Taskon-modified methods
62 dated changes
1 dated changes on most frequently changed method.
1.0 dated changes per method.
Report Program Size
38 classes. 315 methods. 1115 lines.
O.K.
Check that changeParameterAssociations and tmInitialize is implemented
Check tmInitialize and formats
Check for Undeclared references
Check for sent but not implemented
Check for obsolete classes.
Method consistency check
Check for unimplemented subclassResponsibility
Check for references to outdated classes.
Check changed-update conversion.
Check unused class variables.
Check empty methods.
Check that method sources exist
Technical Overview IN-Lab report 93/2
©Taskon 1998. Page 60
TABLE OF CONTENTS
Chapter 1
Introduction
2
Chapter 2
A reference model for the creation and invocation of
services
4
2.1
The generic support layer
5
2.2
A possible Support Value Chain
5
2.3
Organizational issues
8
2.4
Example Support Value Chain
8
2.5
Actors, Equipment and Name Spaces
11
Some extensions to the basic OOram product
13
3.1
Notation and other conventions used in IN-Lab2
13
3.2
The OOram Module
15
3.3
Work process considerations
16
Chapter 4
The combined User and Subscriber Layers
18
Chapter 5
The Service Provider Layer
19
Service Specification and Contract Document - Example
21
Chapter 6
The Service Creator Layer
24
Chapter 7
The Service Constituent Creator Layer
26
7.1
Abstract Type Model
26
7.2
7.2.1
7.2.2
7.2.3
7.2.4
Service Constituent Export Models
Called Telephone module export models summary
Calling Telephone module export models summary
Abstract Telephone Service export summary
Service Installation and Invocation export models summary
28
28
30
32
35
The Network Layer
42
Network export models summary
Network Connection Model (Netw2ConnEXP) {Export Model}
Network Access Manager EXP (Netw2MngrEXP) {Export Model}
42
42
44
Chapter 3
5.1
Chapter 8
8.1
8.1.1
8.1.2
Technical Overview IN-Lab report 93/2
<i>
Appendix 1
References
46
Appendix 2
Monitored executions
48
App 2.1
App 2.1.1
App 2.1.2
App 2.1.3
App 2.1.4
App 2.1.5
Inv2Install1 fileIn {Role Model}
Area of Concern
The Roles
Interaction Scenarios
Message Sets
Inv2Install1 fileIn trace file
48
48
48
49
50
52
App 2.2
App 2.2.1
App 2.2.2
App 2.2.3
App 2.2.4
App 2.2.5
Inv2Install1 example4Connect: '5601' to: 5602 {Role Model}
Area of Concern
The Roles
Interaction Scenarios
Message Sets
Inv2Install1 example4Connect: '5601' to: 5602 trace file
53
53
53
54
55
57
Taskon standard QualityCheck of the IN2
implementation
58
App 3.1
Error reports
58
App 3.2
General information
58
Appendix 3
Technical Overview IN-Lab report 93/2 <ii>
Download