GB2338090A - A framework customization tool - Google Patents

A framework customization tool Download PDF

Info

Publication number
GB2338090A
GB2338090A GB9811985A GB9811985A GB2338090A GB 2338090 A GB2338090 A GB 2338090A GB 9811985 A GB9811985 A GB 9811985A GB 9811985 A GB9811985 A GB 9811985A GB 2338090 A GB2338090 A GB 2338090A
Authority
GB
United Kingdom
Prior art keywords
framework
tool
scenario
business
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB9811985A
Other versions
GB9811985D0 (en
Inventor
Louis Paul Fertig
Leslie Paul Fertig
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to GB9811985A priority Critical patent/GB2338090A/en
Publication of GB9811985D0 publication Critical patent/GB9811985D0/en
Publication of GB2338090A publication Critical patent/GB2338090A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A framework customisation tool 10 is adapted to read a representation of the framework 14 comprising a plurality of classes in terms of scenarios 16 supported by the framework. The scenarios comprises one or more participating objects and any customizable operations of the participating objects. The tool is adapted to interact with a user to determine one or more business contexts 12 in which the framework must operate, the business contexts comprising one or more objects and one or more scenarios. The tool is adapted to match scenario participating objects with business context objects and to interact with the user to modify the operation of the scenario for that business context.

Description

1 A FRAMEWORK CUSTOMIZATION TOOL 2338090 The present invention relates to
a framework customization tool.
is An "application framework,' is an object-oriented framework intended as a template solution for an end-user application. Application frameworks must be customized to satisfy particular requirements by subclassing classes of the framework in order to override or augment the default behaviour provided by the framework.
Object-oriented frameworks have great potential, but large application frameworks are difficult to customize in a cost-effective manner. The key problem is that functional requirements which are expressed conveniently for customers are not in an appropriate form to specify the customization of software, and vice versa. The typical solution is to capture the functional requirements in a customer-friendly manner, and then transform them into a specification for the customization of components of the framework. For a large and complex framework, this requirements transformation is extremely costly. Even if the functional requirements are captured directly in a form which is consistent with the framework architecture, the problem exists in reverse: how can these architecturedependent statements of requirements be transformed back into a form which is meaningful to the customer in order to validate the requirements?
Of course, the observation that design takes time is not unique to framework customization projects; it is shared by all application development projects. The difference is that it is assumed and expected that a conventional (non-customization) project will have to devote a large proportion of its total resource to the activity of design. It is likely, however, that the business case of a framework customization project will rest on precisely the opposite assumption: that design time (as opposed to requirements gathering and implementation time) is low due to the prior existence of the framework. It is the high cost of transforming business requirements into designs for framework sub-classes that is the problem which this invention addresses.
It is necessary to define some terms relating to the present invention before proceeding further. A "use caser, is a terse statement of functional requirement conveniently captured in the form of a triple:
2 subject verb object, e.g. user logs on to system; system lists unread mail, together with accompanying documentation of each use case, and definitions of the external actors involved in the use cases. Use cases are used to achieve rapid coverage of functional requirements at a very abstract level.
A nscenario,, is defined as a use case plus a set of assumptions plus a set of outcomes. Scenarios are used to tease the detail out of each use case by considering the behavioral variations on each use case theme. Each variation is documented by a different scenario with a new set of assumptions and outcomes. Scenarios are used during both the analysis and design phases as specifications of object interaction diagrams (OIDs) which show pictorially how objects of an object model may interact in order to perform the scenario. See nDeveloping Objectoriented Software: An Experience -Based Approach" by the IBM Objectoriented Technology Center and published by Prentice Hall for a discussion of the use case, scenario, and OID work products.
A "business context,, is a business environment in which a framework may be used. A single deployment of a framework may have many business contexts. Examples of business contexts within manufacturing include processing equipment and locations. A business context definition consists primarily of the set of business objects which together represent the important aspects of the business context as far is relevant to the framework. Each business object is defined as an instance of a framework class or a sub-class of a framework class introduced for the purpose of customization. An example of a business context is (ReductionFurnace, ReductionFurnaceSchedule, ReductionFurnaceScheduleEntry, PigIronMaterial, and SteelHeat). It is the behaviour of these classes which determines the behaviour of the scenarios which are performed within the business context. Business contexts are used both to help determine customization requirements and to define the initial set of objects in the framework deployment. In addition to the list of objects, a business context definition includes the list of scenarios relevant to that business context.
using this terminology, the problem is that the customer wishes to state, and validate, the functional requirements in the form of a set of scenarios. The customization team, however, needs specifications for the extension of particular framework classes. From a software engineering point of view, the customer provides functional requirements in terms of
3 statements of dynamic behaviour (scenarios) whilst the design must be in terms of static structures (sub-classes of framework classes). An example in the context of a manufacturing framework is that a customer requires that when a particular schedule of work is selected for a reduction furnace, certain integrity checks must be performed on the schedule entries. The customization team must translate this into a design for an appropriate sub-class of the framework schedule class, and ensure that in the reduction furnace business context, it is this sub-class which is instantiated and not the base framework class. In general, the behaviour of any given scenario is influenced by the definition of many customizing sub-classes, as many objects in general collaborate in order to carry out each scenario. For a large framework in which the number of scenarios runs into the thousands, and the number of sub-classes into the hundreds, the mapping from sub-class definitions to scenario behaviour, and vice versa, is highly complex. This is the costly transformation step mentioned above. The result is that both creating a design from customer requirements and validating the design against customer requirements is very time-consuming for large application frameworks.
It is a goal of the present invention to provide a framework customization tool which is sensitive to the relationships which exist for a particular framework between the scenarios supported by the framework, and the operations of the framework classes which contribute to the scenario behaviours.
Accordingly, the present invention provides a framework customisation tool as claimed in claim 1.
The tool of the present invention is driven by data which represent the relationships between scenarios and framework classes. This relationship data can either be provided after the framework has been constructed or gathered incrementally as an integral part of the framework development process.
The invention provides a tool which permits framework customization requirements to be captured directly in a form which is sensitive to the framework architecture, without loss of validity checking and without requiring either the customer or the person operating the tool to be aware of the detailed framework architecture.
4 Preferably, an extension of an object Oriented design tool could be used to maintain the scenario data associated with a particular framework. The invention is cooperable with the OID modelling capabilities of many such tools.
Scenarios are used by the customization tool according to the invention as the key link between framework behaviour and framework architecture. The key parts of a scenario definition which are used by the customization tool are the set of objects which participate in the scenario, and the list of customizable framework operations which are performed on behalf of the scenario. A scenario may be recursive: in addition to operations, a scenario may specify sub-scenarios.
An embodiment of the invention will now be described with reference to the accompanying drawings, in which:
Figure 1 is a schematic diagram of a framework customisation tool according to the invention with its associated inputs and outputs; and Figure 2 is a fragment of an object model for a framework for a manufacturing execution system to be customised according to the invention.
Referring now to Figure 1, the customization tool 10 according to the invention uses relationship data to guide the customization process. it does this by prompting the user to define various business contexts 12 within which a framework 14 will be used, by offering menus of scenarios 16 which may be performed in that context, and by calculating the behaviour of each scenario selected. Scenario behaviour is expressed as the list of behavioral descriptions of the customizable operations of the framework classes (and customization sub-classes if relevant) which the framework invokes on behalf of each scenario. (The tool knows which classes are used to customize the framework within each business context because when a business context is defined, the business objects which constitute that context are listed, along with the identity of their classes.) The behavioral description of each scenario depends on the current specification of all the classes on which the scenario depends; these specifications evolve as the process of customization proceeds. BY prompting the user to validate, modify, or augment these behavioral descriptions, the tool is able to construct and to maintain specifications for the framework sub-classes 20, and optional documentation 22, which must be provided in order to satisfy the requirements for each scenario.
The tool permits users to f lip between two modes of working. In the first, the functionality of scenarios within particular business contexts may be explored and defined. In the second, the functionality of framework classes and customization sub-classes may be explored and defined. The customer is more interested in the former view; the development team is more interested in the latter view. BY providing the means to move easily between the two, the invention mitigates the requirements transformation bottleneck for application frameworks.
Figure 2 illustrates some classes from a sample framework. Among other things, the framework is capable of supporting two scenarios: "select work,' and "start processing".
select work scenario Participating objects: Schedule, ScheduleEntry, material Customizable operations: Schedule::select, ScheduleEntry::select, Material::ready.
Start processing scenario Participating objects: EqUipment, ScheduleEntry, ProcesSExecution, Mater i al Involvement Customizable operations: ScheduleEntry::start, Equipment::start, MaterialInvolvement::create, ProcessExecution::start.
if more than one object of a class participates in a scenario, or one object is an instance of a sub-class of another, role names are required to be specified to avoid ambiguity. The names of the classes are otherwise sufficient to denote the participating objects.
Full documentation 18 of the above scenarios includes textual definitions of the scenarios, statements of the default framework
6 behaviour associated with each of the operations listed, and descriptions of exceptional cases.
Initialization of the framework customization tool involves loading it with the above information: classes, scenarios, participating objects, and customizable operations. If the framework has been developed in a scenario-driven manner, the tool may be used to document the scenarios as they are developed. In this way the tool is able to acquire the above information as a natural part of the framework development process.
The tool then prompts the user to define business contexts 12. Each business context is defined in terms of the scenarios and classes relevant to it. The user might begin by defining the following business context.
Reduction furnace business context Business objects:
ReductionFurnace, sub-class of Equipment ReductionFurnaceSchedule, subclass of Schedule ReductionFurnaceScheduleEntry, sub-class of ScheduleEntry ProcessExecution:
inputmaterial: PigIron, sub-class of material outputMaterial: SteelHeat, sub-class of Material Scenarios to be performed:
(None yet) once this has been done, the tool prompts the user to state which scenarios are to be performed in this business context. Suppose the user states that select work is to be performed at the reduction furnace. The tool then attempts to match the objects which participate in that scenario: Equipment, Schedule, and ScheduleEntry, with the objects defined within the business context. The tool performs this matching using the standard typing rules of object-oriented programming languages. (Rolenames must once again be used, as in the case of inputmaterial and outputMaterial above, to avoid ambiguity.) If the object match is ambiguous, the tool prompts the user to specify rolenames to resolve the ambiguity. For example, the tool would require the user to state whether inputMaterial or outputMaterial is to be used by select work. If no match is found in the business context for an object participating in the scenario, the tool prompts the user to add the appropriate object to the 7 context. In this way, a consistent set of business contexts and customization sub-classes are incrementally defined.
Once matching between objects participating in the scenario and objects in the business context has been performed, the tool prompts the user to confirm or modify the behaviour of the scenario as currently defined for that the business context. The tool does this by listing the behaviour of each customizable operation used by the scenario. This is done by using knowledge of the classes of the objects of the business context. The user is then prompted to confirm or modify the scenario behaviour. An example of an as yet uncustomized scenario might be the following.
Behaviour of the nselect work,' scenario in the reduction furnace business context:
ReductionFurnaceSchedule::select Check that schedule is not held (ScheduleEntry) No customization (ReductionFurnaceScheduleEntry) ReductionFurnaceScheduleEntry::select Check that status of schedule entry is Runnable (ScheduleEntry) No customization (ReductionFurnacescheduleEntry) PigIron::ready Check status of material is Available (Material) No customization (PigIron) The scenario behaviour includes both the default framework behaviour and the, as yet undefined, framework customization. The user may now customize this behaviour, for example as follows.
Behaviour of the nselect work" scenario in the reduction furnace business context:
ReductionFurnaceSchedule::select Check that schedule is not held (ScheduleEntry) Check that reduction furnace has status Running (ReductionFurnaceScheduleEntry) 8 ReductionFurnaceScheduleEntry::select Check that status of schedule entry is Runnable (ScheduleEntry) Check that the order related to this schedule entry is not held. Check also that this is the first non-completed or skipped schedule entry in the schedule (ReductionFurnaceScheduleEntry) PigIron::ready Check status of material is Available (material) Check that material is not scrap and that carbon content is consistent with instructions held in schedule entry (PigIron) whenever an operation is customized, the tool asks the user whether the new behaviour replaces or augments the previous operation behaviour. The other scenarios to be performed in the reduction furnace business context may now be customized, for example as follows.
Behaviour of the,start processing,, scenario in the reduction furnace business context:
ReductionFurnaceScheduleEntry::start Set status of schedule entry to Active (ScheduleEntry) Download instructions to process control (ReductionFurnaceScheduleEntry) MaterialInvolvement::create Set quantity of material involved (Material Involvement) ProcessExecution::start Set status of process execution to Active. Set start time of process execution. Set material involvement kind to Input (ProcessExecution) ReductionFurnace::start Set status of equipment to Running (Material) Send asynchronous start message to external equipment management system (ReductionFurnace) At any time, the user may request to view the current specification of any class. For example, after the above two scenario customizations, the specification of the ReductionFurnaceScheduleEntry class is as follows.
9 ReductionFurnaceScheduleEntry class, sub-class of ScheduleEntry Customized operations: ReductionFurnacescheduleEntry::select Check that the order related to this schedule entry is not held.
Check also that this is the first non-completed or skipped schedule Entry in the schedule ReductionFurnaceScheduleEntry::start Download instructions to process control By customizing the behaviour of scenarios within business contexts in this way, the specifications of the framework customization classes may be slowly built up. The two views of scenario functionality and class functionality are complementary. AS can been seen, changing customized scenario functionality causes changes to the specifications of the customization classes. Class specifications are directly editable too, and changing class specifications causes changes to be reflected in the functionality of the scenario customizations which use these classes. The user is thus able to move at will between viewing the customized framework in terms of scenario functionality and viewing the customized framework in terms of class functionality.
The tool permits impact analysis to be performed. For example, the tool is able to determine which scenarios of which business contexts have been, or would be, impacted by a change to a particular operation.
The user may, if appropriate, change the class of an object in a business context, for example to customize a scenario in a way which was not previously envisaged. As an example of this, the class of the ProcessExecution object in the ReductionFurnace business context may be changed to ReductionFurnaceProcessExecution in order to customize the behaviour of the ProcessExecution::start operation in the start processing scenario when performed in the reduction furnace business context. This change will result in the scenario customizations of that business context to be modified to take the new class into account.
Classes may be marked as either modifiable or not. In this way framework classes may be protected, if wished, from the process of customization. on the other hand, certain privileged users may be able to override these constraints in order to propose a change to the base framework. In such a case the change will of course be reflected in all scenario customizations. The tool maintains a list of all the classes created or modified by the process of customization in order that the specifications of these classes may be reviewed and then used as the basis for coding.
For the customer, the tool provides the means to capture requirements in a non-redundant manner. (The non-redundancy arises from the fact that requirements are, where possible, factored out and associated with customization classes used by many scenario customizations.) AS far as the development team is concerned, the output of the tool is the specification of each customization class and the definition of each business context.
11

Claims (6)

1. A framework customisation tool adapted to read a representation of the framework comprising a plurality of classes in terms of scenarios supported by the framework, said scenarios comprising one or more participating objects and any customizable operations of said participating objects, said tool being adapted to interact with a user to determine one or more business contexts in which the framework must operate, said business contexts comprising one or more objects and one or more scenarios; said tool being adapted to match scenario participating objects with business context objects and to interact with the user to modify the operation of the scenario for that business context.
2. A framework customisation tool as claimed in claim 1 wherein the tool is adapted to perform said object matching using standard typing rules of object-oriented programming languages.
3. A framework customisation tool as claimed in claim 1 where, responsive to an object match being ambiguous, the tool is adapted to prompt the user to specify an object rolenames to resolve said ambiguity.
4. A framework customisation tool as claimed in claim 1 where, responsive to no match being found in a business context for an object participating in a scenario, the tool is adapted to prompt the user to add an object to the business context.
5. A framework customisation tool as claimed in claim 1 adapted to generate documentation for the design of framework sub-classes.
6. A framework customisation tool as claimed in claim 1 adapted to generate scenario-level documentation for the behaviour of the customized framework.
GB9811985A 1998-06-05 1998-06-05 A framework customization tool Withdrawn GB2338090A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9811985A GB2338090A (en) 1998-06-05 1998-06-05 A framework customization tool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9811985A GB2338090A (en) 1998-06-05 1998-06-05 A framework customization tool

Publications (2)

Publication Number Publication Date
GB9811985D0 GB9811985D0 (en) 1998-07-29
GB2338090A true GB2338090A (en) 1999-12-08

Family

ID=10833175

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9811985A Withdrawn GB2338090A (en) 1998-06-05 1998-06-05 A framework customization tool

Country Status (1)

Country Link
GB (1) GB2338090A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0453152A2 (en) * 1990-04-17 1991-10-23 AT&T Corp. Computer program specification system
EP0841612A2 (en) * 1996-11-08 1998-05-13 International Business Machines Corporation Framework for software development

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0453152A2 (en) * 1990-04-17 1991-10-23 AT&T Corp. Computer program specification system
EP0841612A2 (en) * 1996-11-08 1998-05-13 International Business Machines Corporation Framework for software development

Also Published As

Publication number Publication date
GB9811985D0 (en) 1998-07-29

Similar Documents

Publication Publication Date Title
Gray et al. Domain-Specific Modeling.
Bodart et al. Towards a systematic building of software architecture: The TRIDENT methodological guide
US6185728B1 (en) Development system with methods for type-safe delegation of object events to event handlers of other objects
EP2639693A1 (en) Business management system
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
Butting et al. Systematic language extension mechanisms for the MontiArc architecture description language
KR20030036736A (en) Method and apparatus for producing functionality and user interfaces for devices having an embedded operating system
Wu et al. Maintaining Evolving Component-Based Software with UML.
CN107341106A (en) Application compatibility detection method, exploitation terminal and storage medium
Serrano et al. On the impact of agent communication languages on the implementation of agent systems
US20030046660A1 (en) Computer program for generating another computer program based on STM
Praehofer et al. Concepts and architecture of a simulation framework based on the JavaBeans component model
Seffah et al. Comparing and reconciling usability-centered and use case-driven requirements engineering processes
CN113626095A (en) Switching method and switching system of configuration center, electronic equipment and storage medium
Bettini et al. Coordinating mobile object-oriented code
Sangwan et al. Integrating a software architecture-centric method into object-oriented analysis and design
Amor et al. Malaca: A component and aspect-oriented agent architecture
GB2400211A (en) A method of creating software that is portable across different operating systems
Choren et al. Modeling Multi-agent systems with ANote
GB2338090A (en) A framework customization tool
Hou et al. Towards specifying constraints for object-oriented frameworks
Palanque et al. Towards an integrated proposal for Interactive Systems design based on TLIM and ICO
CN107765655B (en) Method, system and readable medium for extending MES function by message routing system
Grundy et al. Low-level and high-level CSCW support in the Serendipity process modelling environment
Schulze et al. Contracting and moving agents in distributed applications based on a service-oriented architecture

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)