Component-Based Development. with. Uniface

Size: px
Start display at page:

Download "Component-Based Development. with. Uniface"

Transcription

1 Component-Based Development with Uniface Unicase The Missing Link Vincent Van Wonterghem

2 Simplicity is the ultimate sophistication Leonardo da Vinci 2

3 Table of Contents What is Unicase? An Overview Multi-tier architecture - Why? What is a business rule? Business rules design and Uniface Unicase and the design phase - Logical concepts Unicase and the life cycle of a project Unicase and the design phase - Business rules Stateless architecture Unicase and the development phase Standard operations of a class Unicase and the deployment phase Unicase and the presentation tier Integration of Unicase within Uniface Packages included in Unicase User Guide The main window The tab The class tab The operation tab The package tab The mapping of s The development of a Class component Bottom-Up Methodology Functional method versus CBD architecture CBD architecture and bottom-up methodology Business tier and class components A Case Study A Library Management System Requirement analysis Design (step 1.1) - Study of the existing application Design (step 1.2) - Interview with the librarian Design (step 2) - Data design => Class Diagrams (first iteration) Design (step 3) - Detailed data analysis Design (step 4) - Generalization (second iteration) Design (step 5) - Splitting of the s (third iteration) Design (step 6) - Consolidation (fourth iteration) Design (step 7) - Design with Unicase Conclusion CBD or CBD? Unicase - The missing link

4 1 What is Unicase? An Overview Unicase is a CASE tool (Computer-aided software engineering) which covers the whole life cycle of an IT project i.e. Design, Development and Deployment. It is based on logical concepts (package, class, ) used throughout the whole project. classes and s are designed classes are developed packages are deployed As a design tool, Unicase offers a user-friendly interface which enables to specify the business rules of the classes and their s. Unicase is integrated within the Uniface Repository. All the specifications are stored automatically in the Repository. During the development phase, Unicase can generate the Uniface code for all standard s. Entry points are foreseen in the framework for the coding of the non-standard s. Unicase is based on a N-tier framework where the presentation is split from the business logic. The main concern of Unicase during the development phase is the management of the Uniface services implementing the business rules of the classes (the so-called Class Components). Nevertheless Unicase provides a set of templates, Include Procs to ease the development of the presentation layer and to manage the transport layer between the presentation tier and the business tier. Unicase enables to deploy a whole package as a unit. It means that all Uniface sources making up the package (service, model, global objects...) are deployed in one atomic action. Multi-tier architecture - Why? Up to now, it has been customary to design and build large, monolithic systems that perform very specific functions. (Top-down approach) 4

5 Component-based development employs a three-phases approach of modeling reusable, interchangeable components, constructing the components and assembling them into a complete application (Bottom-up approach) To achieve the benefits of reuse and architectural flexibility offered by CBD, it is essential to make a distinction between the presentation layer (i.e. the user interface) and the business layer (i.e. the business rules) Disadvantages of a one-tier architecture Poor reusability: each component must enforce the business rules Inconsistencies: several implementations of the same business rule may result in the rule being checked in different ways Difficult maintenance: when a business rule changes, all implementations must be updated Advantages of a multi-tier architecture The changes to business rules are centralized in one component easier maintenance The user-interface can be modified easily and rapidly with no impact on the business component. So no business rules are lost. All accesses to one class are performed by only one component Separation of the presentation logic from the business logic More rapid response to change in the business The same business tier can be called from different presentation tiers (C/S developed in Uniface, Web application developed in Java) What is a business rule? A business rule is a statement that determines the integrity of the business, by constraining the way in which the business operates. A business rule has the following characteristics Declarative: The rule is non-procedural and may be conditional Atomic: The rule applies to one aspect of the business and cannot be broken down without losing its meaning for the business. Explicit: The rule can be expressed in formal natural language Business-oriented: The rule is required for business purpose, not technical reasons Most business rules are stable and do not change. However, to maintain its competitive edge a business must be able to change its business rules easily and quickly. Formulating business rules is an iterative process in which you interview people to get descriptions of business process and company policies. The descriptions are usually general and informal. They usually contain more than one idea. derive business rules from the descriptions to produce specific formal statements. 5

6 Business rules design and Uniface When implementing business rules in Uniface, it is wise to evaluate the benefits and drawbacks of the different implementations. Defined in a Presentation Component (Form) (+) user friendliness = check of the business rule is immediate, providing the user early feedback. (+) self-contained = other components are not needed to have the complete behaviour. (-) poor reusability = each component must enforce the business rule. (-) inconsistencies = several implementations of the same business rule may result in the rule being checked in different ways. (-) difficult maintenance = when a business rule changes, all implementations must be updated. Defined in the Application model (+) inheritance = entities of the application model painted on Uniface components inherit from the application model. (-) change propagation = the inheritance link can be broken (-) compilation required = components need to be recompiled to inherit the changes. Defined in a Business component (+) high level of reusability = Business rules checks are operations that can be activated for both Uniface and non-uniface components. (+) maintainability = changes to business rules are centralized in one component. (+) no compilation required = changes do not affect other components as long as the signature does not change. (-) performance = activating the operations causes additional network trafic. (-) complexity = the assembly of an application may involve many components. The third option has been implemented in the N-tier framework of Unicase. It means that no business rules are defined in the Application model. in Uniface forms in the database (store procedure, database trigger) Let's take the following example in an one-tier architecture. An existing field of an entity has to become mandatory. To apply this new business rule, the following actions have to be taken modification of the application model modification of the SQL table in the database check for any form variation in every Uniface form where the field is painted recompilation of every Uniface component where the entity is painted 6

7 Within our N-tier architecture, only the Class component has to be updated and recompiled. The Business component is 100% responsible of all s related to the class it manages. Its main concern is to protect the integrity of the database against the outside world Remember that the motto of a Business component is "Never trust the outside world". Our N-tier architecture is Business-driven. It means that It only copes with the business tier It is independent from any presentation framework which mainly copes with the user interface. Therefore the of such a framework is outside the scope of this work. It defines precisely the gateways between any presentation tier and the business tier. Unicase and the design phase - Logical concepts The originality of Unicase and thus its added-value is the fact it is based on logical concepts not supported by Uniface. Those concepts and especially their must be clearly understood because the names of the concepts exist in other environments with completely different s and meanings. Package It is a set of classes linked to one specific problem. It is physically implemented in Uniface as a subsystem, with an application model and its own library Class It is a set of s. It is physically implemented in Uniface as an entity of the application model of the package managed by a service. At this stage it is very important to understand that the class is a logical concept and not a physical one. Very often, people think of a class as an entity implemented as a table in a relational database. This is not the only possibility for a class. Besides it is only a partial understanding of this concept. The Uniface entity is used to describe the data of the class whereas the Uniface service manages the behavior of the class. Attribute It represents a data of the class. It is physically implemented by a field of an entity representing the class. Operation It represents a specific action which can be performed on the class. The following standard operations are automatically managed by Unicase : Default, Validate Retrieve Insert, Update, Remove, Import 7

8 The insert operation is used to store a new occurrence. In most of the case the value of the primary key is fed by use of a counter. The import operation is used to create a new occurrence when its primary key is already defined. Visibility This concept is supported by Unicase at the and operation level At the operation level Public (+) = the operation can be activated by any components Protected (#) = the operation can only be activated by a class belonging to the same package Private (-) = the operation can only be activated by the class where it is defined. At the level Public (+) = the can be displayed and modified by any components Protected (#) = the can be displayed by any component but only modified by its class component. Private (-) = the cannot be displayed and can only be updated by its class component. For each a different visibility can be set for a new occurrence and for an existing occurrence. e.g. = if a foreign key may not be modified on an existing occurrence, its visibility will be defined as public (+) for a new occurrence protected (#) for an existing occurrence Physical implementation of a class in a database as a SQL table in memory with another class. In this case the outer class inherits the business rules of its inner class. The whole business rules of the outer class are its own business rules + the business rules of its inner class. 8

9 2 Unicase and the life cycle of a project Unicase and the design phase - Business rules Unicase is a business-oriented tool. Therefore it is mainly focused on the management of the business rules. These business rules can be grouped into the following categories. Validation s Attribute visibility = public, protected, private Attribute s = mandatory value, allowed characters, range of values, list of values Instance s = validation across s of the same occurrence Class s = validation between different occurrences of the same class. Package s = validation across occurrences of different classes. Default values = used to initialize the s when a new occurrence is created. Before retrieve s = validation of mandatory s in a retrieve profile before the retrieve process is launched. Before Insert / Update s = initialization of the private and protected s before the update occurs. Before remove s = implementation of a delete strategy on a many-entity when the one-entity is deleted (restricted, cascading) In Unicase we make a distinction between standard and not-standard s. The standard s are defined under a structured way. Unicase is able to generate automatically the code necessary to implement these s. Not-standard s are specified in free format text and are just passed to the developer as comments. Only business rules which were met several times in different projects have been translated into standard s. Each new project using Unicase brings new standard s with it. Attribute s Visibility = +, #, - 9

10 Datatype + length Mandatory Syntax = uppercase, lowercase, none Default value = constant, Uniface function, another of the class allowed values = list of values, range of values, table of codes Existence = the value of the field must uniquely identifies an occurrence of another class. This class is specified by its name and its package and a mapping of s between the two classes. It is used to check the existence of foreign keys. Insert / update = specifies the way to initialize the before the insert / update occurs. It is used for private and protected s. The different possibilities are a constant value, a Uniface function, a Uniface Global Proc, another of the class, a Unicase counter or the maximum value of an + 1 Group of mandatory s = list of s which are mandatory as soon as one of these s is different from null. Instance = enables to specify conditions which must be true according the following syntax : a) <_1> <operator> <_2> where operator in {=, <, <=, >, >=, <>} b) <condition_1> <operator> <condition_2> where operator in {=>, <=>} => means that condition_2 must be true if condition_1 is true <=> means that the check is made in both directions condition_2 must be true if condition_1 is true AND condition_1 must be true if condition_2 is true Class s Implementation of the class = in the Database, in Memory, inherited from another class. For the last case, a mapping between the s of both classes has to be specified. Unicity = specifies a list of s which must identify the class, other than the primary key. Retrieve = specifies a list of s which must be defined before launching the retrieve process. Remove preconditions = normally the delete of an occurrence may only occur if the primary key of the occurrence has been specified. The remove precondition enables to specify other s which has to be filled before launching the remove process. It is useful for the deletion of a many-entity triggered by the deletion of the one-entity (cascading delete) Remove = it enables to specify which delete strategy has to be applied between two classes (restricted, cascading). For each strategy a mapping between the s of both classes has to be specified. Remember that the main purpose of a class is to protect its s from the outside world and as already stated earlier 'Never trust the outside world'. 10

11 Stateless architecture At this stage it is very important to understand that the multi-tier architecture used by Unicase is stateless. It means that the class component is removed from the memory as soon as the operation is completed. So once occurrences have been retrieved and sent backwards to the presentation tier, there is no link anymore with the database. When the class component has to update an occurrence, this one must at first be retrieved, then the modifications which occurred on the presentation tier have to be applied and finally the occurrence has to be stored in the database. But a very important check is missing in this sequence of actions. What must happen if the occurrence has already been modified by a form F2 between the retrieve of the form F1 and the update by this same form F1. In a normal client / server architecture, Uniface automatically detects a DB mismatch either by use of the reserved field U_VERSION or by comparing the content of each field. This check is now automatically performed by the N-tier framework provided the reserved U_VERSION is defined in the class. This should be added into each class and be defined as a protected. This way the content of the is sent backwards to the presentation tier but may not be modified. After the retrieval of the occurrence by the Update operation and before applying the modification coming from the presentation tier, the current value of the U_VERSION is checked against the value coming from the presentation tier. A discrepancy is trapped as a DB mismatch by the N-tier framework and a rollback of the transaction will occur. If the U_VERSION is not present, no DB mismatch validation will be performed. This will make the whole application very hazardous especially in a multi-user environment. As a consequence of our stateless architecture, Uniface functions like $dbocc can not be used anymore. A new Global Procs is provided to replace this function. Unicase and the development phase The N-tier framework on which is based Unicase has been built with the same business approach whereas most frameworks are based on a technical approach. That's why the name of the available entry points refers always to one group of business s. Code generation One of the most powerful features of Unicase is its ability to generate the Uniface code for all the standard business s of a class. The generated code is automatically inserted in the <LocalProcModule> trigger at the entity level in the class component. 11

12 As the purpose of Unicase has never been to be able to cope with all the possible business s, the different entry points have been duplicated in order to be able to implement any non-standard s. Those entry points are defined in the <LocalProcsModule> trigger of the class component at the component level. This way any further generation of the code will not have any impact on the coding of the nonstandard s. This feature could be compared to the triggers defined at the application level and these defined as a component variation. Entry points used for the standard business s EP_default = default values for s EP_syntax = uppercase, lowercase setting EP chk = mandatory, datatype, length, allowed values EP_instance_chk = group of mandatory s, X-validation EP_class_chk = unicity EP_package_chk = existence EP_before_retr = check of retrieve profile EP_before_insert = initialization of private, protected s EP_before_update = update of private, protected s EP_precond_remove = check the retrieve profile before the remove occurs EP_before_remove = delete strategy (restricted, cascading) These are reserved for Unicase and should never be used by the developer. Entry points used for the non-standard business s LP_default LP_syntax LP chk LP_instance_chk LP_class_chk LP_package_chk LP_before_retr LP_after_retr LP_precond_remove LP_before_remove LP_after_remove LP_before_insert LP_after_insert LP_before_update LP_after_update These are reserved for the developers and are never used by Unicase. Test of a class This tool enables to test any operations of a class by use of a standard user interface. This userinterface displays all s of the class as an Editbox with its value for every fetched occurrence. 12

13 The huge advantage of such an interface is that any value can be keyed for an and this enables to test more deeply the class. Indeed if an is painted on a form as a Dropdown List widget, the choice is already limited by the values of the Dropdown List. This way an invalid value cannot be keyed. If the class is later activated by a service in batch mode, this could contain any value and cause an error never detected before during the tests of the class. Unicase enables to design, develop and fully test a class component without developing any user interface. The whole project is really split into two parts. This allows the business tier to be fully independent of the presentation tier. It has the telling advantage to modify, improve the presentation tier without any impact on the implementation of the business tier and vice-versa. Standard operations of a class For the developer it is very important to understand which entry points are activated during the activation of a standard operation and following which sequence. Class.Default Inner_class.Default, if encapsulation EP_default LP_default EP_syntax LP_syntax Class.Validate Class.Default loop / o EP chk o LP chk 13

14 EP_instance_chk LP_instance_chk EP_class_chk LP_class_chk EP_package_chk LP_package_chk Inner_class.Validate, if encapsulation Class.Retrieve EP_syntax LP_syntax EP_before_retr LP_before_retr Inner_class.Retrieve, if encapsulation LP_after_retr Class.Insert EP_before_insert LP_before_insert Class.Validate Class.Retrieve Inner_class.Insert, if encapsulation LP_after_insert Class.Update EP_before_update LP_before_update Class.Validate Inner_class.Update, if encapsulation LP_after_update Class.Import EP_before_update LP_before_update Class.Validate Class.Retrieve Inner_class.Import, if encapsulation LP_after_update Class.Remove EP_syntax LP_syntax EP_precond_remove LP_precond_remove 14

15 Inner_class.Retrieve, if encapsulation loop / occurrences o EP_before_remove o LP_before_remove Inner_class.Remove, if encapsulation LP_after_remove Unicase and the deployment phase The logical concept "package" is also used during the deployment phase. One of the big issue as far as the deployment of the Uniface applications is concerned with has always been the inventory of all Uniface components belonging to one application because the components are so numerous ( forms, services, reports, server pages, start-up shells, application models, signatures, templates, global objects,...). Therefore the fact to work with a global concept as a package is certainly an added value in the deployment process. The following functions can be performed against a package. Export This function exports the source code of all Uniface components into a package file. By Uniface components we mean the forms, services, reports with their signatures the application model the library and all its global objects Clean-up This function deletes the source code of all Uniface components of the package from the Uniface repository. Import 15

16 This function imports the content of a package file into the Uniface repository. An automatic clean-up of the package is always performed before the start of the import in order to assure a good synchronization of the Uniface Repository. This feature is very important namely when components have been deleted in the new version of the package, for instance a field in an entity, a menu item in a menu-bar. Compile This function compiles all the Uniface components belonging to a package. Unicase and the presentation tier As the main purpose of Unicase is the business tier i.e. the management of classes which are physically represented as services in Uniface, it is obvious that Unicase is not linked to one specific presentation tier but can be integrated in any of them. Therefore a set of utilities is foreseen to manage the link between any presentation tier and the business tier. <AIO> call aio_class => call EP_class(Default) <VLDO> call vldo_class => call EP_class(Validate) <READ> call read_class => call EP_class(Retrieve) <WRITE> call write_class => call EP_class(Insert, Update) <REMOVE> call remocc_class => call EP_class(Remove) <EntityLocProc> The Include Proc EP_class contains the entry EP_class which dispatches the flow according the asked function. Class.Default Class.Validate Class.Retrieve Class.Insert Class.Update Class.Remove The Include Proc EP_presentation contains all entries managing the link between the presentation tier and the business tier. entry aio_class entry vldo_class entry read_class entry write_class entry remocc_class 16

17 Integration of Unicase within Uniface At first it is important to understand that Unicase only updates existing occurrences of the Uniface Repository. No creation, no deletion can occur in Unicase. Therefore it is necessary to create the different occurrences in the data dictionary, i.e. subsystem, application model, library, entities, fields, relationships, class services before the designer can specify the business rules with Unicase. Mapping between Unicase and Uniface concepts A package = a subsystem + an application model + a library with the name of the package A class = an entity of the application model + a service with the name of the class An = a field of an entity mapped to the class All the business rules specified by the designer are stored in the comment fields of the data dictionary as associative list of items. For a package = comment field of the application model For a class = comment field of the entity For an = comment field of the field For a remove = comment field of the relationship For the visibility of operation = comment field of the signature of the service As soon as you delete something in the Uniface repository, all the business rules linked to the deleted occurrence are also lost, what makes sense and assures a perfect synchronization. By working this way the design is always available in the repository and not stored in different text files which are very often not up-to-date. Besides as the specifications are used during the generation of the code there is a tight relationship between the specification and the code what is rarely the case. Within our approach we are working with packages representing only a part of the problem to be solved. It is recommended that the number of classes in a package always stays low otherwise the complexity of the package will be too high. It is also important for the developer to understand the context wherein he works. That's why the Assembly Workbench of the UDE is so important in the development phase and must absolutely be used. 17

18 On one screen, all the available packages (i.e. subsystems) are displayed. For each packages, all components are displayed under the Contents Tab. When we are interested in one specific component the Diagram Tab displays all the links from the calling and to the called components. This way without knowing anything about one component it is already possible to have a rough idea about the context wherein it is used. On the other hand, the Assembly Workbench enables to activate any editors of the UDE. 18

19 The Assembly Workbench is really the main tool supporting our approach. With its use it is possible to have very quickly a good understanding of the different packages and their classes. To show the developers that the approach is different, it is recommended to start the Assembly Workbench as default editor as soon as the UDE is started. This can be easily set-up in the Presentation Preferences of the UDE Packages included in Unicase A set of useful packages is available in Unicase and is automatically used by the N-tier framework. COUNTER This package manages counters used to identify internally any occurrences of a class. It is automatically activated by Unicase for the Insert / Update s of type "counter". CODE 19

20 This package manages tables of codes which can be used for any s whose value must belong to a predefined list. It is automatically activated by Unicase during the validation process for an where its allowed values are defined in a table of codes. 20

21 3 User Guide The main window The whole Unicase tool is developed on one screen so the designer can easily find the business rules he is looking for. The screen contain several areas the selection area the class diagram area the tabs area which includes one tab for o the class 21

22 o the o the operation o the package The main concept is the Class represented in a Class Diagram. The selection area allows to choose one class at first by selecting the needed package with the Packages' Dropdown List then by selecting one of the classes of the selected package. As soon as a class is selected the class diagram is built. This class diagram shows in its header the name of the class, in its middle part the s with their visibility and in the lower part the available operations with their visibility. The navigation on this screen has been optimized in order to display quickly the needed information to the designer. Selection of a package in the Packages Dropdown List It displays all the classes of the selected packages. The Class Diagram of the first class is built. Selection of a class in the list by use of the mouse The Class Diagram of the selected class is built. Set the cursor on the header of the Class Diagram The Class tab is displayed Set the cursor on one in the middle part of the Class Diagram The Attribute tab is displayed for the selected. Set the cursor on an operation in the lower part of the Class Diagram The Operation tab is displayed 22

23 The tab The 'Apply Defaults' button can be used the first time the is described. Most of the fields are self-explanatory and explained in the paragraph 'Unicase and the design phase - Business rules' Allowed values = 'List of values' The list must be defined as a comma separated list Allowed values = 'Range of values' The range must be specified according the following syntax : 23

24 <range_delimiter> <value_1> <value_delimiter> <value_2> <range_delimiter> where <range_delimiter> = [ or ] <value_delimiter> = a comma <value_1>, <value_2> = mandatory e.g. [ 1, 12] = limits are included in the range ] 1, 12[ = limits are excluded from the range Existence It is defined with the following information The name of the class where the value of the must exist The name of the package of this class The mapping between the s of the foreign class and the current class. This mapping defines the retrieve profile which has to be applied in order to check the existence. Instance An becomes mandatory as soon as another is not null _1.class!= "" => _2.class!= "" If an has a specific value, another may not be null and vice-versa _1.class = "value" <=> _2.class!= "" 24

25 The class tab The Apply Defaults button can be used the first time the class is described. When the class is implemented with another class, three information are needed The name of the inner class The name of the package of the inner class The mapping between the s of the inner class and the current class. This mapping defines how the s of the inner class has to be initialized before the processing of the inheritance mechanism. 25

26 The Unicity, Retrieve precondition, and Remove precondition are defined by use of a list of s defined with the form "Select Attributes". 26

27 A Remove is defined with the following information. The name of the class on which the has to be applied The name of the package of this class The type of the remove s (Cascading, Restricted) The mapping between the s of both classes in order to fetch the occurrences of the class on which the has to be applied. 27

28 The operation tab The first time a class is described the lower part of the Class Diagram is empty. The Operation tab shows the default visibility for every standard operation. You just have to save those data. To define a non-standard operation, the New function has to be used when the cursor is set on the list of operation. The name of the operation has to be specified with its visibility. The comment area can be used to store Test scenario, for instance. 28

29 The package tab This screen should be used to explain the general purpose of the package. A drawing of the s between the different classes can also be added. This gives a quick overview of what the package is supposed to manage. 29

30 The mapping of s This form is used whenever a mapping between the s of two classes must be specified. The s of the destination class are displayed on the left side of the screen. Those of the source class are displayed on the right side of the screen in a List Box. The purpose of this screen is to specify how the s of the destination class have to be initialized either by use of an of the source class o Set the cursor on the destination you want to initialize. Select an of the source class in the List Box. The name of the source with its class is automatically added. or by use of a constant value o Set the cursor in the field 'Attribute / Constant' for the selected destination. o Key the constant which must be stored in the destination. There is no need to enclose the constant value between double quotes. 30

31 The development of a Class component Unicase is not only a tool which allows to record business s, but thanks to a set of functions, it supports the whole development phase from the coding step up to the unit testing of a class component. The available functions are The code generation of the class component The compilation of the class component The test of every operation of the class component Generation of the code Select the language or environment to be taken into account for the generation. Here, N- tier architecture. 31

32 Statistics of the class are displayed At this stage two text files have been created o EP_class.txt contains the code related to the standard business rules. o LP_class.txt contains in its header the description of the non-standard business rules and a of all the available entry points. 32

33 The content of the file EP_class.txt is displayed on the screen. It is possible to browse through the generated code or to have a direct access to one specific entry point by use of the tree structure on the left side of the screen. By use of the button 'Update Class Component', the content of the file EP_class.txt is automatically stored in the <LocalProc> trigger of the entity Class in the Class component. It is the responsibility of the developer to include the content of the file LP_class.txt into the <LocalProc> of the class component. Preview of the generated code The content of the existing file EP_class.txt is displayed. Compilation of the class This function launches the compilation of the class in background. At the end of the compilation, the log file is shown by the Notepad application. Test of the class The purpose of this screen is, by use of a standard interface, to test every operation for one specific class. This screen is divided into three parts. 33

34 o The header contains the name of the class and a DropDownList with the available operations and their visibility o The middle part shows the s of the class and their visibility. For a nonstandard operation, this area is automatically cleared and the value of the first parameter can be specified. If more parameters are needed, the NEW function has to be used. o The trailer contains the following buttons Activate: The selected operation is activated. At the end of the activation the event frame is automatically displayed. This frame shows every errors which occurred during the execution of the operation. Clear: Reset the values of the s Retrieve: The retrieve operation of the class is activated. Only the 25 first occurrences matching the specified profile are displayed. Commit: After the activation of an update operation (i.e. : insert, import, update, remove) no commit is performed automatically. Rollback: Every updates since the last commit are undone. This is especially useful when the Remove operation is tested and you want to get back your data for a next test. 34

35 The Test and Event forms stay always at the front of the screen. But it is possible to use the Class and Attribute Tab in order to display the different business s. This way the person performing the tests on a class can easily see all the needed information. 35

36 4 Bottom-Up Methodology Functional method versus CBD architecture Functional method It is a top-down approach It is focused on functions instead of components with their business rules It is focused on interface The data design is very often neglected This method obliges to specify the sequence of operations before knowing precisely what the objectives of these operations are. This method cannot lead to reusability It is well suited for well-defined problems where the task to be performed is an easy function. In the evolution of a system, what is considered as the main function can become a sidefunction in the future. Component-Based Development architecture It is a bottom-up approach Taking into account of the changes is a main goal of the CBD architecture. A good method of design must try to separate the user-interface from the rest of the system. The CBD architecture avoids a too early sequencing process. A list of the necessary operations has to be inventoried and the sequencing s have to be ignored until the last moment. CBD architecture and bottom-up methodology The biggest issue when working with CBD architecture is certainly its bottom-up approach when we are used to a functional method where a top-down decomposition is performed. How is it possible to switch from one methodology to the other one? Or perhaps would it be better to merge both approaches in order to benefit from the advantages of each of them? 36

37 Why? For a simple reason. If you have to follow a bottom-up approach, you have to start from the ground floor and try to build something. But at the beginning of the project the ground floor is completely empty. We do not have any bricks to build a wall. The simple idea to focus at first on the data without taking into account of the primary goal of the system could be a key towards reusability. This will be the guideline in our approach explained step by step hereafter. Step 1 The purpose of this step is the of our building blocks. Therefore let's apply the decomposition process of the functional approach in order to split our problem. This step will lead to an inventory of a set of data with its a set of interactive functions (screens) a set of non-interactive functions (reports, batchs) a set of requirements, statements Step 2 During this step, we will focus on the data design without taking into account of any userinterface or specific functions. A precise will be given for each data => These s will allow to group related data => class The set of data managing the same aspect of the problem will be grouped => package This step will lead to an exhaustive inventory of the business rules of the application. Step 3 During this step a detailed design, at first of the s, then the classes has to be performed in order to locate all the business rules of each class. The tabs Attribute and Class of Unicase can be used as a guideline for this step. Each field of these two forms should be looked on as questions for which the designer has to give an answer. Mandatory: Is the mandatory? Default value: Does the have a default value? Insert : How is the filled before an insert occurred? Any s of an or a class which cannot be specified during this first run of question have to be specified as a non-standard at the, instance, class or package level. Step 4 37

38 The classes built during the previous steps can be characterized as 'specific' to the analyzed problem. It means they reflect a concept inside the reality of the analyzed problem. The objective of this fourth step is to detect concepts which could be used also outside the current problem. The question to ask is : 'What must be added, modified to make a specific class a generic one?. For each potential generic class, we have to find a balance between the overhead needed to build, implement and maintain a generic class and the added value for the future projects, which are of course unknown at this stage. It can be looked on as a bet on the future. This is from my point of view the most important part of the design process in our bottom-up approach, but also the most difficult one. The more generic classes we can achieve, the richer our architecture will become because a generic class is defined in term of s and operations independently of any specific problems and is thus highly reusable. The challenge in each project should be the of a few generic classes for the future or the use of existing generic classes in order to avoid to reinvent the wheel. Step 5 So far we do have class diagrams with s between our classes. Now we have to replace all those s with foreign keys which must be fed by primary keys. For primary keys we decide to use a technical primary key whenever necessary. This process will lead to the addition of new s which must be described. The multiplicity of each must also be converted into business rules for these new s and finally the remove s have to be specified. During the same step, we also take the opportunity to add three standards s last_update => for audit purpose last_user => for audit purpose u_version => for the database mismatch issue Step 6 As soon as the design process is finished, Unicase enables to develop and fully test the whole business tier without developing any specific form (by use of the Test Class feature) Moreover if the class does not contain any non-standard s, the whole process can be performed by a designer without the need of a developer and with very little knowledge of Uniface. The advantage of this way of working is to diminish the gap between design and development, what from my point of view is certainly a telling advantage. Step 7 What is left at the end of the development of the business tier? The presentation tier has to be designed and developed. The amazing thing is that this step can even occur in parallel with the previous step without any problem because the gateways between 38

39 both tiers are clearly defined. This makes even sense as far as the development is concerned with, because among the developers community, people are either more interested in GUI development or in development of background tasks. Business tier and class components One could think that the business tier is only composed of the class components. In fact those class components make up the innermost layer of the business tier. This layer insures the integrity of the database by checking the business s. For not too complex applications this layer will be sufficient and will be directly accessed by the presentation tier. Nevertheless for more complex application, it is customary to design logical classes which are built by use of s from other classes. Example We have an application whose main purpose is to learn vocabulary of foreign languages. English words are translated into French. In order to ease the study, the translations are grouped into lists of 10 occurrences. Our students have to learn lessons of 10 translations. This concept of lesson which represents a reality in the world of our application does not exist on its own. So it would be convenient to define the lesson as a logical concept of 10 translations. Therefore we define this new class the following way. Now the presentation tier does not have to know anymore which classes have to be used to build a lesson. The 'lesson' class is a high level class which encapsulates other basic classes. 39

40 The advantage of this way of working is immediate if we have to modify the implementation of a lesson by using other basic classes. No change must occur in the presentation tier, because it is always dealing with a lesson. 40

41 5 A Case Study A Library Management System The purpose of this case study is to apply on a genuine project the methodology as described in "CBD architecture and bottom-up methodology". Our aim is to illustrate what must be done during each step in order to use as much as possible the functionalities of Unicase. With this exercise we want to demonstrate that the most important and difficult thing is not Unicase as a product but the bottom-up approach on which Unicase is built. We hope that this genuine example will be a good illustration of the benefits everyone can catch from this methodology. The exercise consists of the reverse engineering of an existing library management system which has been built on a monolithic way. The goal of this project is to isolate all the business s in order to use them with two different presentation tiers : a client/server interface and a web interface. Requirement analysis The Library Management System, called BIBLIO, contains three different parts The management of the books, periodicals and other documents which can be borrowed by readers The management of the keywords linked to books and other documents The management of the readers who borrow the books and other documents. Books and other documents Books are certainly the most important documents managed in our library. But nevertheless it must be possible to manage other documents as periodicals, documentation, DVD, CD-ROM, CD, videocassettes... 41

42 Any document can be split into different parts a book can contain several stories an issue of a periodical can include different items many songs are recorded on a CD a video cassette can contain several movies Any document can exist in several copies. Actually a reader borrows a copy of a book and not the book. So there is a distinction between the description of the documents which can be looked on as a catalog and the physical copies of documents which are really available in the library. A book can be written by one or several authors. For a DVD we must be able to specify the different actors of the movie as well as the director. Several singers or bands can be involved on one CD. Keywords This part is certainly the most important one and will give the added value to the system. It must enable to link a document to any set of keywords. Those keywords will be very useful for the search of documents. It must be possible to specify several keywords as selection criteria before launching a search in the database. The quality of the search engine is the key to success for this project. A keyword can be linked to any documents but also to its items. Readers This part does not need to be sophisticated management of persons borrowing of copies of document return of copies maintain historical data for a reader and a copy Design (step 1.1) - Study of the existing application This step is performed by analyzing the user-interface and by interviewing users of the existing system in order to collect the new requirements, the actual problems and any improvements or dreams. Let's apply a functional approach in order to split our problem into a set of data a set of interactive functions a set of non-interactive functions 42

43 Books isbn = this is the international standard book number (optional) id = this number uniquely identifies a book in the library. It is written on a small label stuck on each book. It is mandatory, automatically d by the system and may not be modified title = main title of the book, mandatory, duplicates are allowed but must be automatically shown to the user subtitle = secondary title of the book, optional publisher = company which published the book year = year when the book has been published pages = number of pages in the book range = range of years which indicates the age needed for a reader to understand the book. collection = collection where the book has been published. number = number of the book in the collection author = last name + first name of the author bookcase = identification of the shelf of the bookcase where the book is kept. a book can have several authors a book can exist in several copies in the library a book can contain several stories. Each story is defined with a title and a range of pages in the book where the story starts and ends several keywords can be linked to a book several keywords can be linked to a story of a book possibilities of selection criteria - id = 1..n values, range of values - title = 1 value with wildcards (*,?) - main keyword = 1..n values, lookup / list - secondary keyword = 1..n values, lookup / list - author = 1 value, lookup / list - publisher = 1 value, lookup / list - collection = 1 value with wildcards (*,?) - bookcase = 1 value with wildcards (*,?) - year = 1..n values, range of value 43

44 Periodicals id = this number uniquely identifies an issue of a periodical in the library. It is written on a small label stuck on each issue. It is mandatory, automatically d by the system and may not be modified title = title of the main item of the issue of the periodical, mandatory subtitle = secondary title of the issue, also used as free format text to specify any useful information of the current issue, optional publisher = company which published the periodical year = year when the issue of the periodical has been published pages = number of pages in the issue period = period of the year when the issue has been published range = range of years which indicates the age needed for a reader to understand the issue. periodical = name of the periodical where the issue belongs to. number = number of the issue author = last name + first name of the author bookcase = identification of the shelf of the bookcase where the issue of the periodical is kept. 44

45 an issue can exist in several copies an issue can contain several items several keywords can be linked to an item of the issue. possibilities of selection criteria - same as book - periodical = 1 value with wildcards (*,?) 45

46 Documentations id = this number uniquely identifies a documentation in the library. It is written on a small label stuck on each documentation. It is mandatory, automatically d by the system and may not be modified title = title of the documentation, mandatory subtitle = secondary title of the documentation, also used as free format text to specify any useful information, optional pages = number of pages in the documentation range = range of years which indicates the age needed for a reader to understand the documentation. bookcase = identification of the shelf of the bookcase where the documentation is kept. a documentation can exist in several copies a documentation can contain several items several keywords can be linked to an item of the issue. possibilities of selection criteria - same as periodicals 46

47 DVDs id = this number uniquely identifies a DVD in the library. It is written on a small label stuck on each DVD. It is mandatory, automatically d by the system and may not be modified title = title of the DVD, mandatory, duplicates are allowed but must be automatically shown to the user. subtitle = secondary title of the DVD, also used as free format text to specify any useful information, optional actor/singer/director = last name + first name of the artist time = duration of the DVD expressed in minutes publisher = company which published the DVD year = year when the DVD has been published bookcase = identification of the shelf of the bookcase where the DVD is kept. a DVD can exist in several copies a DVD can contain several items several keywords can be linked to a DVD 47

Asset Track Getting Started Guide. An Introduction to Asset Track

Asset Track Getting Started Guide. An Introduction to Asset Track Asset Track Getting Started Guide An Introduction to Asset Track Contents Introducing Asset Track... 3 Overview... 3 A Quick Start... 6 Quick Start Option 1... 6 Getting to Configuration... 7 Changing

More information

BulkSMS Text Messenger Product Manual

BulkSMS Text Messenger Product Manual BulkSMS Text Messenger Product Manual 1. Installing the software 1.1. Download the BulkSMS Text Messenger Go to www.bulksms.com and choose your country. process. Click on products on the top menu and select

More information

Database Programming with PL/SQL: Learning Objectives

Database Programming with PL/SQL: Learning Objectives Database Programming with PL/SQL: Learning Objectives This course covers PL/SQL, a procedural language extension to SQL. Through an innovative project-based approach, students learn procedural logic constructs

More information

Logi Ad Hoc Reporting System Administration Guide

Logi Ad Hoc Reporting System Administration Guide Logi Ad Hoc Reporting System Administration Guide Version 11.2 Last Updated: March 2014 Page 2 Table of Contents INTRODUCTION... 4 Target Audience... 4 Application Architecture... 5 Document Overview...

More information

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you

More information

Umbraco v4 Editors Manual

Umbraco v4 Editors Manual Umbraco v4 Editors Manual Produced by the Umbraco Community Umbraco // The Friendly CMS Contents 1 Introduction... 3 2 Getting Started with Umbraco... 4 2.1 Logging On... 4 2.2 The Edit Mode Interface...

More information

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION 539752 ch01.qxd 9/9/03 11:38 PM Page 5 SESSION 1 Introduction to Microsoft Access and Programming Session Checklist Understanding what programming is Using the Visual Basic language Programming for the

More information

Data Tool Platform SQL Development Tools

Data Tool Platform SQL Development Tools Data Tool Platform SQL Development Tools ekapner Contents Setting SQL Development Preferences...5 Execution Plan View Options Preferences...5 General Preferences...5 Label Decorations Preferences...6

More information

Working with sections in Word

Working with sections in Word Working with sections in Word Have you have ever wanted to create a Microsoft Word document with some pages numbered in Roman numerals and the rest in Arabic, or include a landscape page to accommodate

More information

Creating tables of contents and figures in Word 2013

Creating tables of contents and figures in Word 2013 Creating tables of contents and figures in Word 2013 Information Services Creating tables of contents and figures in Word 2013 This note shows you how to create a table of contents or a table of figures

More information

Select the Crow s Foot entity relationship diagram (ERD) option. Create the entities and define their components.

Select the Crow s Foot entity relationship diagram (ERD) option. Create the entities and define their components. Α DESIGNING DATABASES WITH VISIO PROFESSIONAL: A TUTORIAL Microsoft Visio Professional is a powerful database design and modeling tool. The Visio software has so many features that we can t possibly demonstrate

More information

UOFL SHAREPOINT ADMINISTRATORS GUIDE

UOFL SHAREPOINT ADMINISTRATORS GUIDE UOFL SHAREPOINT ADMINISTRATORS GUIDE WOW What Power! Learn how to administer a SharePoint site. [Type text] SharePoint Administrator Training Table of Contents Basics... 3 Definitions... 3 The Ribbon...

More information

QaTraq Pro Scripts Manual - Professional Test Scripts Module for QaTraq. QaTraq Pro Scripts. Professional Test Scripts Module for QaTraq

QaTraq Pro Scripts Manual - Professional Test Scripts Module for QaTraq. QaTraq Pro Scripts. Professional Test Scripts Module for QaTraq QaTraq Pro Scripts Professional Test Scripts Module for QaTraq QaTraq Professional Modules QaTraq Professional Modules are a range of plug in modules designed to give you even more visibility and control

More information

DbSchema Tutorial with Introduction in SQL Databases

DbSchema Tutorial with Introduction in SQL Databases DbSchema Tutorial with Introduction in SQL Databases Contents Connect to the Database and Create First Tables... 2 Create Foreign Keys... 7 Create Indexes... 9 Generate Random Data... 11 Relational Data

More information

Bitrix Site Manager 4.0. Quick Start Guide to Newsletters and Subscriptions

Bitrix Site Manager 4.0. Quick Start Guide to Newsletters and Subscriptions Bitrix Site Manager 4.0 Quick Start Guide to Newsletters and Subscriptions Contents PREFACE...3 CONFIGURING THE MODULE...4 SETTING UP FOR MANUAL SENDING E-MAIL MESSAGES...6 Creating a newsletter...6 Providing

More information

Teamstudio USER GUIDE

Teamstudio USER GUIDE Teamstudio Software Engineering Tools for IBM Lotus Notes and Domino USER GUIDE Edition 30 Copyright Notice This User Guide documents the entire Teamstudio product suite, including: Teamstudio Analyzer

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

Bitrix Site Manager 4.1. User Guide

Bitrix Site Manager 4.1. User Guide Bitrix Site Manager 4.1 User Guide 2 Contents REGISTRATION AND AUTHORISATION...3 SITE SECTIONS...5 Creating a section...6 Changing the section properties...8 SITE PAGES...9 Creating a page...10 Editing

More information

COINS User Guide: Human Resources Training Manual

COINS User Guide: Human Resources Training Manual Construction Industry Solutions 6 Airport Park Blvd. Latham, NY 12110 2009 Construction Industry Solutions 2009 Construction Industry Solutions The contents of this documentation and all other documentation

More information

OpenIMS 4.2. Document Management Server. User manual

OpenIMS 4.2. Document Management Server. User manual OpenIMS 4.2 Document Management Server User manual OpenSesame ICT BV Index 1 INTRODUCTION...4 1.1 Client specifications...4 2 INTRODUCTION OPENIMS DMS...5 2.1 Login...5 2.2 Language choice...5 3 OPENIMS

More information

Recording Supervisor Manual Presence Software

Recording Supervisor Manual Presence Software Presence Software Version 9.2 Date: 09/2014 2 Contents... 3 1. Introduction... 4 2. Installation and configuration... 5 3. Presence Recording architectures Operating modes... 5 Integrated... with Presence

More information

Integrated Invoicing and Debt Management System for Mac OS X

Integrated Invoicing and Debt Management System for Mac OS X Integrated Invoicing and Debt Management System for Mac OS X Program version: 6.3 110401 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Standard Invoicing is a powerful invoicing and debt management

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Results CRM 2012 User Manual

Results CRM 2012 User Manual Results CRM 2012 User Manual A Guide to Using Results CRM Standard, Results CRM Plus, & Results CRM Business Suite Table of Contents Installation Instructions... 1 Single User & Evaluation Installation

More information

Content Author's Reference and Cookbook

Content Author's Reference and Cookbook Sitecore CMS 6.5 Content Author's Reference and Cookbook Rev. 110621 Sitecore CMS 6.5 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents

More information

KPN SMS mail. Send SMS as fast as e-mail!

KPN SMS mail. Send SMS as fast as e-mail! KPN SMS mail Send SMS as fast as e-mail! Quick start Start using KPN SMS mail in 5 steps If you want to install and use KPN SMS mail quickly, without reading the user guide, follow the next five steps.

More information

Smart Card Authentication. Administrator's Guide

Smart Card Authentication. Administrator's Guide Smart Card Authentication Administrator's Guide October 2012 www.lexmark.com Contents 2 Contents Overview...4 Configuring the applications...5 Configuring printer settings for use with the applications...5

More information

Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.

Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. 1 2 3 4 Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. It replaces the previous tools Database Manager GUI and SQL Studio from SAP MaxDB version 7.7 onwards

More information

Microsoft Access Basics

Microsoft Access Basics Microsoft Access Basics 2006 ipic Development Group, LLC Authored by James D Ballotti Microsoft, Access, Excel, Word, and Office are registered trademarks of the Microsoft Corporation Version 1 - Revision

More information

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This

More information

3 IDE (Integrated Development Environment)

3 IDE (Integrated Development Environment) Visual C++ 6.0 Guide Part I 1 Introduction Microsoft Visual C++ is a software application used to write other applications in C++/C. It is a member of the Microsoft Visual Studio development tools suite,

More information

What's New In DITA CMS 4.0

What's New In DITA CMS 4.0 What's New In DITA CMS 4.0 WWW.IXIASOFT.COM / DITACMS v. 4.0 / Copyright 2014 IXIASOFT Technologies. All rights reserved. Last revised: December 11, 2014 Table of contents 3 Table of contents Chapter

More information

Single Property Website Quickstart Guide

Single Property Website Quickstart Guide Single Property Website Quickstart Guide Win More Listings. Attract More Buyers. Sell More Homes. TABLE OF CONTENTS Getting Started... 3 First Time Registration...3 Existing Account...6 Administration

More information

Table Of Contents. Welcome to Abebooks HomeBase Inventory Management Software version 2.3... 1. Quick Tour... 2. Toolbar... 2

Table Of Contents. Welcome to Abebooks HomeBase Inventory Management Software version 2.3... 1. Quick Tour... 2. Toolbar... 2 HomeBase 2.3 Table Of Contents Welcome to Abebooks HomeBase Inventory Management Software version 2.3... 1 Quick Tour... 2 Toolbar... 2 Navigating in Abebooks HomeBase... 3 Getting Started... 3 Loading

More information

DataPA OpenAnalytics End User Training

DataPA OpenAnalytics End User Training DataPA OpenAnalytics End User Training DataPA End User Training Lesson 1 Course Overview DataPA Chapter 1 Course Overview Introduction This course covers the skills required to use DataPA OpenAnalytics

More information

Merging Labels, Letters, and Envelopes Word 2013

Merging Labels, Letters, and Envelopes Word 2013 Merging Labels, Letters, and Envelopes Word 2013 Merging... 1 Types of Merges... 1 The Merging Process... 2 Labels - A Page of the Same... 2 Labels - A Blank Page... 3 Creating Custom Labels... 3 Merged

More information

SECTION 5: Finalizing Your Workbook

SECTION 5: Finalizing Your Workbook SECTION 5: Finalizing Your Workbook In this section you will learn how to: Protect a workbook Protect a sheet Protect Excel files Unlock cells Use the document inspector Use the compatibility checker Mark

More information

Windows XP Pro: Basics 1

Windows XP Pro: Basics 1 NORTHWEST MISSOURI STATE UNIVERSITY ONLINE USER S GUIDE 2004 Windows XP Pro: Basics 1 Getting on the Northwest Network Getting on the Northwest network is easy with a university-provided PC, which has

More information

Ross Video Limited. DashBoard Server and User Rights Management User Manual

Ross Video Limited. DashBoard Server and User Rights Management User Manual Ross Video Limited DashBoard Server and User Rights Management User Manual DashBoard Server and User Rights Management User Manual Ross Part Number: 8351DR-004A-01 Release Date: March 22, 2011. Printed

More information

Contents. Launching FrontPage... 3. Working with the FrontPage Interface... 3 View Options... 4 The Folders List... 5 The Page View Frame...

Contents. Launching FrontPage... 3. Working with the FrontPage Interface... 3 View Options... 4 The Folders List... 5 The Page View Frame... Using Microsoft Office 2003 Introduction to FrontPage Handout INFORMATION TECHNOLOGY SERVICES California State University, Los Angeles Version 1.0 Fall 2005 Contents Launching FrontPage... 3 Working with

More information

Oracle Siebel Marketing and Oracle B2B Cross- Channel Marketing Integration Guide ORACLE WHITE PAPER AUGUST 2014

Oracle Siebel Marketing and Oracle B2B Cross- Channel Marketing Integration Guide ORACLE WHITE PAPER AUGUST 2014 Oracle Siebel Marketing and Oracle B2B Cross- Channel Marketing Integration Guide ORACLE WHITE PAPER AUGUST 2014 Disclaimer The following is intended to outline our general product direction. It is intended

More information

Jet Data Manager 2012 User Guide

Jet Data Manager 2012 User Guide Jet Data Manager 2012 User Guide Welcome This documentation provides descriptions of the concepts and features of the Jet Data Manager and how to use with them. With the Jet Data Manager you can transform

More information

1. Nuxeo DAM User Guide... 2 1.1 Nuxeo DAM Concepts... 2 1.2 Working with digital assets... 3 1.2.1 Import assets in Nuxeo DAM... 3 1.2.

1. Nuxeo DAM User Guide... 2 1.1 Nuxeo DAM Concepts... 2 1.2 Working with digital assets... 3 1.2.1 Import assets in Nuxeo DAM... 3 1.2. Nuxeo DAM User Guide...................................................................................... 2 1 Nuxeo DAM Concepts....................................................................................

More information

Getting Started with Access 2007

Getting Started with Access 2007 Getting Started with Access 2007 Table of Contents Getting Started with Access 2007... 1 Plan an Access 2007 Database... 2 Learning Objective... 2 1. Introduction to databases... 2 2. Planning a database...

More information

ODEX Enterprise. Introduction to ODEX Enterprise 3 for users of ODEX Enterprise 2

ODEX Enterprise. Introduction to ODEX Enterprise 3 for users of ODEX Enterprise 2 ODEX Enterprise Introduction to ODEX Enterprise 3 for users of ODEX Enterprise 2 Copyright Data Interchange Plc Peterborough, England, 2013. All rights reserved. No part of this document may be disclosed

More information

Parameter Fields and Prompts. chapter

Parameter Fields and Prompts. chapter Parameter Fields and Prompts chapter 23 Parameter Fields and Prompts Parameter and prompt overview Parameter and prompt overview Parameters are Crystal Reports fields that you can use in a Crystal Reports

More information

Rational DOORS Next Generation. Quick Start Tutorial

Rational DOORS Next Generation. Quick Start Tutorial Rational DOORS Next Generation Quick Start Tutorial 1 Contents 1. Introduction... 2 2. Terminology... 3 3. Project Area Preparation... 3 3.1 Creating the project area... 3 4 Browsing Artifacts and Modules...

More information

How to test and debug an ASP.NET application

How to test and debug an ASP.NET application Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult

More information

Solution Documentation for Custom Development

Solution Documentation for Custom Development Version: 1.0 August 2008 Solution Documentation for Custom Development Active Global Support SAP AG 2008 SAP AGS SAP Standard Solution Documentation for Custom Page 1 of 53 1 MANAGEMENT SUMMARY... 4 2

More information

Stored Documents and the FileCabinet

Stored Documents and the FileCabinet Stored Documents and the FileCabinet Introduction The stored document features have been greatly enhanced to allow easier storage and retrieval of a clinic s electronic documents. Individual or multiple

More information

A Comparison of Programming Languages for Graphical User Interface Programming

A Comparison of Programming Languages for Graphical User Interface Programming University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange University of Tennessee Honors Thesis Projects University of Tennessee Honors Program 4-2002 A Comparison of Programming

More information

Use Find & Replace Commands under Home tab to search and replace data.

Use Find & Replace Commands under Home tab to search and replace data. Microsoft Access 2: Managing Data in Tables and Creating Relationships You have created tables in an Access database. Data in Access tables can be added, deleted, and updated to be current (practiced in

More information

Using an external style sheet with Dreamweaver (CS6)

Using an external style sheet with Dreamweaver (CS6) Using an external style sheet with Dreamweaver (CS6) nigelbuckner.com 2012 This handout explains how to create an external style sheet, the purpose of selector types and how to create styles. It does not

More information

Easy Manage Helpdesk Guide version 5.4

Easy Manage Helpdesk Guide version 5.4 Easy Manage Helpdesk Guide version 5.4 Restricted Rights Legend COPYRIGHT Copyright 2011 by EZManage B.V. All rights reserved. No part of this publication or software may be reproduced, transmitted, stored

More information

Mobility Tool Guide for Beneficiaries of Leonardo da Vinci programme

Mobility Tool Guide for Beneficiaries of Leonardo da Vinci programme EUROPEAN COMMISSION Directorate-General for Education and Culture Lifelong Learning: policies and programme Coordination of the "Lifelong learning" programme Mobility Tool Guide for Beneficiaries of Leonardo

More information

Dell KACE K1000 Management Appliance. Asset Management Guide. Release 5.3. Revision Date: May 13, 2011

Dell KACE K1000 Management Appliance. Asset Management Guide. Release 5.3. Revision Date: May 13, 2011 Dell KACE K1000 Management Appliance Asset Management Guide Release 5.3 Revision Date: May 13, 2011 2004-2011 Dell, Inc. All rights reserved. Information concerning third-party copyrights and agreements,

More information

Creating and Using Databases with Microsoft Access

Creating and Using Databases with Microsoft Access CHAPTER A Creating and Using Databases with Microsoft Access In this chapter, you will Use Access to explore a simple database Design and create a new database Create and use forms Create and use queries

More information

Converting Microsoft Access 2002 to Pipe-Delimited ASCII Text Files

Converting Microsoft Access 2002 to Pipe-Delimited ASCII Text Files Converting Microsoft Access 2002 to Pipe-Delimited ASCII Text Files Using the Windows XP 2002 Professional Operating System with Service Pack 2 (SP2) Note: Participants must return local Address Lists

More information

While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX

While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX Paper 276-27 While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX ABSTRACT If you are tired of running the same jobs over and over again, this

More information

Welcome to the topic on Master Data and Documents.

Welcome to the topic on Master Data and Documents. Welcome to the topic on Master Data and Documents. In this topic, we will look at master data in SAP Business One. After this session you will be able to view a customer record to explain the concept of

More information

Lab Experience 17. Programming Language Translation

Lab Experience 17. Programming Language Translation Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly

More information

2 SQL in iseries Navigator

2 SQL in iseries Navigator 2 SQL in iseries Navigator In V4R4, IBM added an SQL scripting tool to the standard features included within iseries Navigator and has continued enhancing it in subsequent releases. Because standard features

More information

Excel 2003 PivotTables Summarizing, Analyzing, and Presenting Your Data

Excel 2003 PivotTables Summarizing, Analyzing, and Presenting Your Data The Company Rocks Excel 2003 PivotTables Summarizing, Analyzing, and Presenting Step-by-step instructions to accompany video lessons Danny Rocks 5/19/2011 Creating PivotTables in Excel 2003 PivotTables

More information

DIIMS Records Classifier Guide

DIIMS Records Classifier Guide DIIMS Records Classifier Guide Featuring Content Server 10 Second Edition, November 2012 Table of Contents Contents 1. DIIMS Overview... 3 1.1 An Overview of DIIMS within the GNWT... 3 1.1.1 Purpose of

More information

Integrated Accounting System for Mac OS X

Integrated Accounting System for Mac OS X Integrated Accounting System for Mac OS X Program version: 6.3 110401 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Standard Accounts is a powerful accounting system for Mac OS X. Text in square

More information

Kaldeera Workflow Designer 2010 User's Guide

Kaldeera Workflow Designer 2010 User's Guide Kaldeera Workflow Designer 2010 User's Guide Version 1.0 Generated May 18, 2011 Index 1 Chapter 1: Using Kaldeera Workflow Designer 2010... 3 1.1 Getting Started with Kaldeera... 3 1.2 Importing and exporting

More information

Creating Database Tables in Microsoft SQL Server

Creating Database Tables in Microsoft SQL Server Creating Database Tables in Microsoft SQL Server Microsoft SQL Server is a relational database server that stores and retrieves data for multi-user network-based applications. SQL Server databases are

More information

S7 for Windows S7-300/400

S7 for Windows S7-300/400 S7 for Windows S7-300/400 A Programming System for the Siemens S7 300 / 400 PLC s IBHsoftec has an efficient and straight-forward programming system for the Simatic S7-300 and ern controller concept can

More information

CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT. Team Project

CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT. Team Project CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT Team Project Due Dates: See syllabus for due dates for each milestone This project spans much of the semester, to be completed as a series of milestones, each

More information

Manual English KOI Desktop App 2.0.x

Manual English KOI Desktop App 2.0.x Manual English KOI Desktop App 2.0.x KOI Kommunikation, Organisation, Information Comm-Unity EDV GmbH 2010 Contents Introduction... 3 Information on how to use the documentation... 3 System requirements:...

More information

How to make internal links in a Word document

How to make internal links in a Word document White Paper July 2014 How to make internal links in a Word document Making internal links in a Word document Usually a link is designed to go to another web page to your website or to a landing page or

More information

Scheduling Software User s Guide

Scheduling Software User s Guide Scheduling Software User s Guide Revision 1.12 Copyright notice VisualTime is a trademark of Visualtime Corporation. Microsoft Outlook, Active Directory, SQL Server and Exchange are trademarks of Microsoft

More information

Producing Standards Based Content with ToolBook

Producing Standards Based Content with ToolBook Producing Standards Based Content with ToolBook Contents Using ToolBook to Create Standards Based Content... 3 Installing ToolBook... 3 Creating a New ToolBook Book... 3 Modifying an Existing Question...

More information

Preview DESIGNING DATABASES WITH VISIO PROFESSIONAL: A TUTORIAL

Preview DESIGNING DATABASES WITH VISIO PROFESSIONAL: A TUTORIAL DESIGNING DATABASES WITH VISIO PROFESSIONAL: A TUTORIAL A Microsoft Visio Professional is a powerful database design and modeling tool. The Visio software has so many features that it is impossible to

More information

Desktop, Web and Mobile Testing Tutorials

Desktop, Web and Mobile Testing Tutorials Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major

More information

Concepts of Database Management Seventh Edition. Chapter 7 DBMS Functions

Concepts of Database Management Seventh Edition. Chapter 7 DBMS Functions Concepts of Database Management Seventh Edition Chapter 7 DBMS Functions Objectives Introduce the functions, or services, provided by a DBMS Describe how a DBMS handles updating and retrieving data Examine

More information

Fixes for CrossTec ResQDesk

Fixes for CrossTec ResQDesk Fixes for CrossTec ResQDesk Fixes in CrossTec ResQDesk 5.00.0006 December 2, 2014 Resolved issue where the list of Operators on Category was not saving correctly when adding multiple Operators. Fixed issue

More information

Optimization in a Secure Windows Environment

Optimization in a Secure Windows Environment WHITE PAPER Optimization in a Secure Windows Environment A guide to the preparation, configuration and troubleshooting of Riverbed Steelhead appliances for Signed SMB and Encrypted MAPI September 2013

More information

UF Health SharePoint 2010 Introduction to Content Administration

UF Health SharePoint 2010 Introduction to Content Administration UF Health SharePoint 2010 Introduction to Content Administration Email: training@health.ufl.edu Web Page: http://training.health.ufl.edu Last Updated 2/7/2014 Introduction to SharePoint 2010 2.0 Hours

More information

Test Generator. Creating Tests

Test Generator. Creating Tests Test Generator Creating Tests Table of Contents# Cognero Overview... 1 Cognero Basic Terminology... 2 Logging On to Cognero... 3 Test Generator Organization... 4 Question Sets Versus Tests... 4 Editing

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

TestManager Administration Guide

TestManager Administration Guide TestManager Administration Guide RedRat Ltd July 2015 For TestManager Version 4.57-1 - Contents 1. Introduction... 3 2. TestManager Setup Overview... 3 3. TestManager Roles... 4 4. Connection to the TestManager

More information

Appendix K Introduction to Microsoft Visual C++ 6.0

Appendix K Introduction to Microsoft Visual C++ 6.0 Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):

More information

Content Author's Reference and Cookbook

Content Author's Reference and Cookbook Sitecore CMS 6.2 Content Author's Reference and Cookbook Rev. 091019 Sitecore CMS 6.2 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents

More information

Enterprise Application Development in SharePoint 2010

Enterprise Application Development in SharePoint 2010 Artifacts, Components and Resources that Comprise the Employee Absence Tracking Application 11 Enterprise Application Development in SharePoint 2010 Development Note below, a version of this Employee Absence

More information

MODULE 2: SMARTLIST, REPORTS AND INQUIRIES

MODULE 2: SMARTLIST, REPORTS AND INQUIRIES MODULE 2: SMARTLIST, REPORTS AND INQUIRIES Module Overview SmartLists are used to access accounting data. Information, such as customer and vendor records can be accessed from key tables. The SmartList

More information

When a Process Diagram is not Enough

When a Process Diagram is not Enough ActiveModeler Avantage Content Module plugin When a Process Diagram is not Enough The Content Module. An innovative automation assistant to produce standardized project and process documentation. ActiveModeler

More information

Configuration Manager

Configuration Manager After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration

More information

Collaboration Technology Support Center Microsoft Collaboration Brief

Collaboration Technology Support Center Microsoft Collaboration Brief Collaboration Technology Support Center Microsoft Collaboration Brief September 2005 HOW TO INTEGRATE MICROSOFT EXCHANGE SERVER INTO SAP ENTERPRISE PORTAL Authors Robert Draken, Solution Architect, Comma

More information

Welcome to The Grid 2

Welcome to The Grid 2 Welcome to 1 Thanks for choosing! These training cards will help you learn about, providing step-by-step instructions for the key skills you will need and introducing the included resources. What does

More information

Microsoft Access 3: Understanding and Creating Queries

Microsoft Access 3: Understanding and Creating Queries Microsoft Access 3: Understanding and Creating Queries In Access Level 2, we learned how to perform basic data retrievals by using Search & Replace functions and Sort & Filter functions. For more complex

More information

Architecture Design & Sequence Diagram. Week 7

Architecture Design & Sequence Diagram. Week 7 Architecture Design & Sequence Diagram Week 7 Announcement Reminder Midterm I: 1:00 1:50 pm Wednesday 23 rd March Ch. 1, 2, 3 and 26.5 Hour 1, 6, 7 and 19 (pp.331 335) Multiple choice Agenda (Lecture)

More information

UNIFACE Component-based. Development Methodology UNIFACE V7.2. 151157206-00 Revision 0 Dec 2000 UMET

UNIFACE Component-based. Development Methodology UNIFACE V7.2. 151157206-00 Revision 0 Dec 2000 UMET UNIFACE Component-based Development Methodology UNIFACE V7.2 151157206-00 Revision 0 Dec 2000 UMET UNIFACE Component-based Development Methodology Revision 0 Restricted Rights Notice This document and

More information

Website Creator Pro Quick Reference Guide. Version: 0.5

Website Creator Pro Quick Reference Guide. Version: 0.5 Website Creator Pro Quick Reference Guide Version: 0.5 Contents 1. Introduction 3 2. Navigation 4 2.1. Top Bar 4 2.1.1. Tabs 4 2.1.2. Buttons 4 2.2. Website Structure Fly-Out 4 3. Usage 5 3.1. Editor 5

More information

RESEARCH. Figure 14-1 Research Options on Main Menu. All 4 Catalogs will search the Objects, Photos, Archives, and Library catalogs.

RESEARCH. Figure 14-1 Research Options on Main Menu. All 4 Catalogs will search the Objects, Photos, Archives, and Library catalogs. 14 RESEARCH Research is where all the hard work of cataloging pays off. Research allows you to develop insights and draw conclusions about your collections. PastPerfect can sort and organize your data

More information

Using InstallAware 7. To Patch Software Products. August 2007

Using InstallAware 7. To Patch Software Products. August 2007 Using InstallAware 7 To Patch Software Products August 2007 The information contained in this document represents the current view of InstallAware Software Corporation on the issues discussed as of the

More information

Summitsoft Corporation Font Management System Guide

Summitsoft Corporation Font Management System Guide Summitsoft Corporation Font Management System Guide This guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished under

More information

Crystal Reports Payroll Exercise

Crystal Reports Payroll Exercise Crystal Reports Payroll Exercise Objective This document provides step-by-step instructions on how to build a basic report on Crystal Reports XI on the MUNIS System supported by MAISD. The exercise will

More information

The «include» and «extend» Relationships in Use Case Models

The «include» and «extend» Relationships in Use Case Models The «include» and «extend» Relationships in Use Case Models Introduction UML defines three stereotypes of association between Use Cases, «include», «extend» and generalisation. For the most part, the popular

More information

Microsoft Word 2010. Revising Word Documents Using Markup Tools

Microsoft Word 2010. Revising Word Documents Using Markup Tools Microsoft Word 2010 Revising Word Documents Using Markup Tools Preface Word provides several markup tools that make document collaboration easy. Color coding, highlighting, and the ability maintain multiple

More information