From: liongster on
Dear All,

I am still new to this component concept.
At this stage, I have a question about the concept and the
implementation of the components when they are combined or integrated
or assemblied with other components.

If we are a developer of a client application and wants to use
component X and Y.
The definition of component allows components be connected to each
other. I could understand how my client application would be connected
to component X and Y. However how could we connect X to Y, if don't
have the source code of X and Y?

Thanks in advance.
Han Liong
From: H. S. Lahman on
Responding to Liongster...

> I am still new to this component concept.
> At this stage, I have a question about the concept and the
> implementation of the components when they are combined or integrated
> or assemblied with other components.

Which component concept is that? B-) Alas, component engineering is
taking on as many different methodological views as OOA/D.

>
> If we are a developer of a client application and wants to use
> component X and Y.
> The definition of component allows components be connected to each
> other. I could understand how my client application would be connected
> to component X and Y. However how could we connect X to Y, if don't
> have the source code of X and Y?

The short answer is that you don't. The component is a module with a
particular semantic responsibility that is abstracted by its interface
for various clients to use. That interface encapsulates its
implementation so that it is none of the clients' business how it
delivers on its advertised semantics. So if X needs to talk to Y, then
that is a problem for the implementer of X, not the user of X.

IOW, it is best to think of components as a bunch of standalone black
boxes that provide logically indivisible services. All the client cares
about is the service that the particular component is responsible for
providing. So if the client needs the services of both X and Y in some
particular sequence, the client should invoke those services directly
from both in the proper sequence.


--
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl(a)pathfindermda.com
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info(a)pathfindermda.com for your copy.
Pathfinder is hiring:
http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH
From: liongster on
On Jan 17, 3:40 am, "H. S. Lahman" <h...(a)pathfindermda.com> wrote:
> > or assemblied with other components.
>
> Which component concept is that? B-) Alas, component engineering is
> taking on as many different methodological views as OOA/D.

I read about this from Syperski's "Component Software - Beyond Object
Oriented Programming" (2003). To be exact on page 174, He mentioned
and draw a connection between two components C1 and C2. I can
understand if they will communicate through a defined interface,
however my question was how this connection is implemented?

Juval Lowy in his book 'Programming dot net Components' also draws
interaction between components, however I could not find the detail
information on how it will be implemented.

> > However how could we connect X to Y, if don't
> > have the source code of X and Y?
>
> The short answer is that you don't. The component is a module with a
> particular semantic responsibility that is abstracted by its interface
> for various clients to use.

Yes I thought the answer had to be not, however I have a confusion
between the concept (as described above) and the practical
implementation of the component integration.

Thanks again for your response.

Han



From: WALLYWORLD on
welcome to Wallyworld. Today I am goint to have teeth cleaned... Sani daai

File Design and File Indexing
It could be useful to go through the rudiments of file indexing to evaluate
the requirements for this project. First the question would be design of
the file structure and some basic system analyst work for the software
design.

Microcomputer Applications by Graurer and Sugrue p. 370, "Implicit in the
process of data management are the creation of the file itself and the
important determination of what data is needed. Thus you must first decide
exactly what information the system is to provide, the determine the data
necessary for the system to accomplish its objectives. You then design a
file structure that establishes the fields in each record, their order,
their length, and the type of data to be stored in each.

These decisions are subjective in nature, and consequently, there can be
multiple solutions for any given system.

Numeric fields store data for calculation variables (no commas, dollar$
etc.)
Character fields text, or any character at all even special characters # ^
etc.
Data fields formatted dates can be entered (not pertinent to a simple file
creation with notepad.exe
Logical fields assigned to fields that can assume only one of two values,
true or false (preferred over one-position character fields for efficiency
p. 371)

After you have defined the file structure, data is entered into the system
on a record-to-record basis. Should you make a mistake during data entry,
you can edit (correct or modify) the data in any record at any time. A data
management system also provides the ability to delete records as well as add
them, but it distinguishes between physical and logical deletion. A
logically deleted record is still in the file, except that it is hidden from
view and it can be recalled at a later time. A physically deleted record
however, has been permanently removed without possibility of recall.


Consider an example record structure with the fields, Soc Sec Num, Name,
Salary, Hire Date, Title, Location

Soc Sec Num Name Salary Hire Date Title Location
100000000 Davis 34000 01/02/86 Account Rep
200000000 Friedel 48000 02/17/84 Manager
300000000 Kendrick 26500 02/16/86 Account Rep
333333333 McGrath 17000 04/25/86 Account Rep
400000000 Cordell 27200 04/02/87 Account Rep
444444444 Facella 24700 01/15/87 Account Rep
500000000 Pattishall 38500 11/11/84 Account Rep
555555555 Ferraro 26400 02/02/85 Account Rep
600000000
700000000
800000000
900000000 Tillberg 35500 10/29/82 Manager
999999999 Grauer 37500 03/16/85 Account Rep


The records shown above are our complete record set from Grauer and Sugrue
p. 367. The indexing of records is discussed p. 373 Grauer and Sugrue, as
well as Stair p. 93 data management. Sugrue p. 373 "The records above are
stored in the physical sequence in which they were entered. The reports,
(those three (3) reports shown p. 369) Grauer and Sugrue and some summary
reports given here:

Below the reports display the records in different logical sequences, for
example, ny name, salary, and date of hire (further below). The ability to
store records in one sequence and list them in another (or several others)
is made possible through indexing. Indexing involves a departure from the
physical order in which the records are stored, instead they will be
retrieved and listed in a different logical sequence (by last name, or
department).


Location: Boston
Number of Employees 4
Total salaries: $123,700
Average Salary $40,400

Location: Chicago
Number of Employees 3
Total salaries: $122,900
Average Salary $40,967

Location: Los Angeles
Number of Employees 3
Total salaries: $101,750
Average Salary $33,917

Location: Miami
Number of Employees 6
Total salaries: $205,400
Average Salary $34,233

Company:
Number of Employees 16
Total salaries: $553,750
Average Salary $34,609

===================================
Salaries by location


Title: Account Rep
Number of Employees: 12
Total Salaries: $369,250
Average Salary: $30,771

Title: Manager
Number of Employees: 4
Total Salaries: $184,500
Average Salary: $46,125

Title: Account Rep
Number of Employees: 16
Total Salaries: $553,750
Average Salary: $34.609

===================================
Salaries by title



The issue of SQL is that SQL allows programmers learn only one query
language and it is useful for systems ranging from PCs to mainframe
computers. Programmers and database users also find SQL to be valuable
because SQL statements can be embedded into many programming languages, such
as widely used COBOL. Because SQL uses standardized and simplified
procedures for retrieving, storing, and manipulating data in a database
system, the popular database query language can be easy to understand and
use. The manuals and books are also widely available Stair p. 106.

The output-control features of a database allow you to select the records
and fields to appear in reports. You can also complete calculations for the
report by manipulating database fields. Formatting controls and
organization options (i.e., headings) help to customize reports and to
create flexible, convenient, and powerful information handling tools.

These database management systems are an important personal productivity
tool along with word processing, spreadsheet, and graphics software.

Some data management systems such as Superbase 95 provide "wizards" that
walk you through how to build customized databases, modify ready-to-run
applications, use existing record templates, and quickly locate the data you
want. Some include Web-publishing capabilities, as well as complete help
and support features. Lotus Approach, Microsoft Access, and Aprise's dBASE
are very popular. In the higher ranges of the database market are Sybase,
Oracle, IBM, and Informix.

General Uses - Reports
A database program can produce a variety of documents, reports, and other
outputs that can help organizations to achieve their goals. The most common
reports select and organize data to present summary information about some
aspect of company operations. For example, accounting reports often
summarize financial data such as current and past-due accounts. Many
companies base their routine operating decisions on regular status reports
that show progress of specific orders towards completion and delivery.
Copmanies consider these improvements to their capability to provide
customer service.

Decision Support - Reports
Exception, scheduled, and demand reports highlight events that require
urgent management attention. Exception reports are produced only upon the
occurrence of some predefined exception condition -i.e., a sales change by
+/- 10%. Scheduled reports are produced according to predetermined time
schedule -e.g., the fourth work night of the month. Demand reports are
produced only upon the explicit request of the user.

Database Programs - Internal Reporting Capabilities
Some of the documents and reports produced with databases:
Form letters with address labels
Payroll checks and reports
Invoices
Orders for materials and supplies
A variety of financial performance reports

Data Dictionary
An important step in creating a database is to establish a data dictionary,
a detailed description of all data used in the database. The data
dictionary contains the name of the data item, aliases or other names that
may be used to describe the item, the range of values that can be used, the
type of data i.e., alphanumeric or numeric, the length of the data item in
bytes, a notation responsible for updating the various users permissions,
and a list of reports that use the data item.

The typical uses of a data dictionary:
Provide a standard definition of terms and data elements
Assist programmers in designing and writing programs
Simplify database modification

A database approach has certain advantages which are aided by implementation
of a data dictionary:
Reduced data redundancy
Increased data reliability
Faster program development
Easier modification of data and information

A Database Application
An application, by statements in the North book discussion P. 11, may
consist of a general-purpose main window and pop-up windows for purposes of
displaying modal, and modeless dialog boxes (or dialogs). Modal dialogs are
a tool for decision points in your application because they call for a
specific user action before the application continues. Modeless dialog
boxes permit you to display information in situations that don't require the
user to enter something before continuing.

Although the Windows screen may consist of a number of windows, only one
window is active for the purpose of receiving input. This is known as
having the focus. Windows is a multitasking environment that is capable of
running several concurrent tasks, or processes so your access to a database
may be in a non-serial fashion (parallel multi-tasking modes). Windows
provides more than one method for sharing information between applications.

The book Visual Objects: A Developer's describes Modal vs Modeless with
mention of ideas on DOS vs Windows. DOS applications are generally Modal
whereas Windows applications are "Modeless". The difference between modal
(non-event driven and procedural) and modeless (event-driven) systems can be
summarized in the question of who is in control of the flow, the user or the
programmer. A modal system is tightly structured and easier to code,
because the developer maintains control at all times. The user begins at
the main menu, and then selects from submenus, but not able to interact with
the system as in the case of an event-driven system such as the Windows
operating system. The typical Windows software applications are designed to
be event-driven , and often involve multiple windows which are to respond to
the browsing whims of the user. A user can move between a database, a
calendar, etc.

Windows Software Development: Concepts and Issues
By 1993 the Windows API programming interface, and the inventory of existing
Windows applications was so great that even companies producing for other
operating systems were making the effort to integrate their software with
the Windows machines. This explains the rising of the multidatabase DBMS.
Macintosh, SUN, and OS/2 computers have features which connect their
applications with Windows compatibility design. The date which Superbase 95
provides on the splash screen at startup is the date December 1994.

Resources are defined as "elements of an application such as string tables,
fonts, dialog boxes, cursors, icons, and keyboard accelerators that are
compiled independently of the source code and bound to the executable image
at link time." In other words he says that he wants to describe resources
as independently linked software components.

A Windows database i.e., Superbase 95 can be used to access and present
information to the user. The information would be of a format such as text,
graphics, sound, and video. Windows has a rich features set and the
capabilities are extended with custom extensions that have been written for
Windows.

North will outline some of the tools and developer products for Windows in a
latter chapter. GUI objects such as push buttons, check boxes, list boxes,
and so on are small child windows called controls. Windows includes a
standard set of controls, but you can extrend an applications capabilities
by creating and installing custom controls.

The form-processing facilities are controls in the API which allow basic
input through the browser.

Multi-document features
Dynamic Data Exchange (DDE) permits two applications to establish a dialog
to exchange data. The Windows Clipboard is an area of shared memory that
supports cut-and-paste operations. Windows ODBC provides a single API for
database access. Object Linking and Embedding (OLE) includes a set of
functions that provide object sharing across applications. The Messaging
API (MAPI) provides functions that permit developers to support messaging
and to produce email-enabled applications. Note that a technology known as
CORBA may be an advanced cross-platform implementation which is
programmable. The books are highly technical.

The use of the Windows extended area memory is suitable for larger objects
and for large buffers that can be set aside for SQL queries. This would
point in the direction of database applications with high end data
extraction performance requirements. Data warehousing deserves a good
introduction later in this paper. QBE data extraction procedures may fit
into this discussion.

You can use QBE's Insert, Update, and Delete commands to insert, update, and
delete groups of records in database files. You enter the Insert, Update,
or Delete command on a row of the table that represents the file where you
want to insert, update, or delete records. When you need to make the same
change to many records in a database file, you can use the file menu
Data/Update command. You write a filter to select the group of records you
want to update. You can link files if you want to update two files at once.

You create an update definition to tell Superbase which fields you want to
update, and how you want to update them. An update definition contains:
A filter which specifies which records you want to update
An update formula to specify which fields you want to update, and the data
you want to update them with.
You can save an update definition and use it again later

Windows Data Objects
QBE Insert command - use Insert to add new records to a database file. (See
QBE Basics of Database Management)

QBE Update command - use Update to update the records in a database file
with new values. You can also update a group of records, rather than all
records, in a file.

Enter the Update command in only one row of the table however. Make sure
the format properties of the new data matches the format of the field you
are updating. Do not enter commands such as Include, Group, or Sort, with
an Update row.

When you need to make the same change to many records in a database file,
you can use the file menu Data/Update command. You write a filter to
select the group of records you want to update. You can link files if you
want to update two files at once.

Database Management
The chapter 11 Microcomputer Applications by Graue and Sugrue presents a
Corporate Profile (a feature of each chapter) on Ashton-Tate Corporation,
the developer of the dBase series, the dominant data management software for
the PC. After reading chapter 11 you will be able to:
Define the terms field, record, and file; describe what is meant by the term
file structure
Distinguish between data and information; describe the techniques used to
convert data to information
Describe what is meant by file maintenance; list its three basic operations
Differentiate between character, numeric, date, and logical fields
Distinguish between an ascending and a descending sequence, and between a
primary and a secondary key
Define GIGO; state its relevance to data management (garbage in - garbage
out)
Describe indexing; explain how the availability of indexes makes it possible
to list a given file in multiple sequences
Describe what is meant by a relational database and the advantages of this
type of file organization

A record is similar to the manual system's uses for manila folders stored in
file cabinets. All of the information about a particular individual would
be held within a single manila folder. The complete set of these manila
folders would be called a file.

The order of the fields within a record of a computerized data management
system is the same for every record in the file, and is caled a file (or
record) structure.
The key is used to keep records of the file in a sequence, by a particular
field.

Rearranging Fields by Using Query-By-Example
Basics of Data Management Using QBE - you can use QBE's Insert, Update, and
Delete commands to insert, update, and delete groups of records in database
files. You enter the Insert, Update, or Delete command on a row of the
table that represents the file where you want to insert, update, or delete
records.

QBE Insert command - use Insert to add new records to a database file. (See
QBE Basics of Database Management)

QBE Update command - use Update to update the records in a database file
with new values. You can also update a group of records, rather than all
records, in a file. Enter the Update command in only one row of the table
however. Make sure the format properties of the new data matches the format
of the field you are updating. Do not enter commands such as Include,
Group, or Sort, with an Update row.

Using a combination of selection, and calculation and then presentation of
the results in a meaningful sequence is fundamental to converting data to
information. For example, in assessing the effects of a contemplated
across-the-board salary increase, management needs to know the total payroll
rather than individual salary amounts. In similar fashion, decisions about
next year's hiring will be influenced, at least in part, by knowing how many
individuals are currently employed in each job category. Information needed
will be rearranged into the form perceived as useful, i.e., a list of
employees earning more than $35,000 or a total of all employee salaries.

Consider an example record structure with the fields, Soc Sec Num, Name,
Salary, Hire Date, Title, Location

Soc Sec Num Name Salary Hire Date Title Location
100000000 Davis 34000 01/02/86 Account Rep
200000000 Friedel 48000 02/17/84 Manager
300000000 Kendrick 26500 02/16/86 Account Rep
333333333 McGrath 17000 04/25/86 Account Rep
400000000 Cordell 27200 04/02/87 Account Rep
444444444 Facella 24700 01/15/87 Account Rep
500000000 Pattishall 38500 11/11/84 Account Rep
555555555 Ferraro 26400 02/02/85 Account Rep
600000000
700000000
800000000
900000000 Tillberg 35500 10/29/82 Manager
999999999 Grauer 37500 03/16/85 Account Rep


Selection
Selection implies that only some of the records in a file, that is, those
records meeting a specified criterion, should be included in the resulting
report. A few examples are provided just below and referred to a few useful
reports. One report lists the employers that are managers. Another report
lists the employees who earn more than $35,000. And the other lists those
who are employed in Miami.

Each of the reports mentioned has a different presentation sequence,
consistent with the overall nature of the report. One report lists the
employees alphabetically. Another displays the employees in decreasing
order of salary . The third displays the employees in a chronological order
in order of the hire date.

Sequencing
A sequence by which the records in a report are displayed is done
independently from selection and further enhances the utility of a
particular report.

Sequencing can also be useful without selection or calculation, to produce
information. For example a grouping of employees , listing employees
alphabetically by last name by their location. The process of sequencing
produces a report that is inherently more useful than the original data of
the original file (natural order of entry).

Your sequence will be based on two keys for the example described above.
The two keys would be employee location and employee name. Location is the
more important, or primary key. Name is less important, secondary key.
Another type of terminology refers to location as the major key, and the
employee name as the minor key.

Calculation
Calculation takes advantage of what the computer does best, number
crunching. Calculation is often used to produce summary reports. Summary
reports omit the detail lines and show summary totals instead. Such summary
reports are used by management to present an aggregate view of an
organization.

Note the sequences in which the results are presented: alphabetically by
location, and alphabetically by title. It would be a good idea to enter the
given employee records into Superbase 95 and practice producing the reports
which are shown see p. 369 Microcomputer Applications Grauer and Sugrue.

Reporting Software Constraints
The utility of reports produced with selection and sequencing, or with
sequencing alone will be only as useful as the data from which they are
produced will allow. And even the most sophisticated data-management system
cannot compensate for inaccurate or incomplete data.

File Design
The process of data management involves the creation of the file itself and
the all-important determination of what data is needed for problem-solving.
You must first decide exactly what information the system needs to provide,
then determine the data necessary for the system to accomplish its
objectives. You then design a file structure that establishes the fields in
each record, their order, their length, and the type of data to be stored
in each field. The decisions about the fields are subjective in nature, and
consequently, there can be multiple solutions for any given system.

Once your conceptual decision about the type of information needing to be
stored is made, the data type choices are not as subjective, because once
you have decided to include a piece of information in a particular field,
its data type follows automatically from the purpose of the field. Four
distinct data types are commonly used, as follows:

Numerica fields
Character fields
Data fields
Logical fields

Once the file definition is decided and the file structure is created using
Superbase 95, the data is entered into the system on a record by record
basis.

Data Management
This information is from Microcomputer Applications by Graue and Sugrue
publ. McGraw Hill 1987. Chapter 11 introduces the subject of data
management, and begins with a comparison of principles under which a manual
record-keeping system is similar to computerized data management. Basic
data management uses terms such as field, record, file, and database and
leads to procedures known as file-maintenance where new records are added,
and existing records are modified or deleted. The objective if any data
management system is the analysis of data. The term data management system
is the very term used in the Superbase manuals Designing Databases, and
Using Superbase. The emphasis of chapter 11 Introduction to Data Management
is the distinction between data and information, and an explanation of how
data is converted to information.

Programmers use file and record managers to provide data management, but
these products generally lack features found in a true DBMS. These are
products which North compares to hierarchical and other "true" DBMS products
P. 3 North.

The test as to whether a DBMS meets the test as a relational database would
be whether that software product is in conformance with the 12 Rules of E.
F. Codd, the author of the relational model.
..
The book by North discusses Visual Basic objects, Access objects, OLE
objects, C++ objects and others.

Additions, Deletions and Modifications
Normal business operations will require updates to the records in the manila
folders in the filing cabinet. The filing cabinet contents should always
reflect the current state of the business. Whenever an employee is hired,
you will have to add another manila folder for his record. In a similar
fashion, when an employee resigns from the company you will delete the
folder. You will need to modify the folder of an employee who receives a
raise, changes location, and so on. Changes of this nature (additions,
deletions, and modifications) are known as file maintenance operations, and
are necessary in both a manual or computerized system.

An organized system of data MIS requires file maintenance operations because
they take place within the overall quality of any information which can be
produced by using the data (to use is to effect change). The data in the
system has to accurately reflect the current state of the business. Putting
data into the computer is relatively easy, but to retrieve it in a
meaningful form is quite another matter.

In computer science as well as in statistics data refers to a fact or facts
about a person, place or thing. John K. Lyon gave an interesting definition
of data in his book. Data refers to something, he said (check that paper)..
Each field in a row of data is a data item. Data is used as the raw
material from which information can be produced.

Converting Data into Information
Data is converted into information through a process of selection and
calculation, and then presentation of the results in a meaningful sequence.

Some useful reports produced from the same data were:

Employees earning more than $35,000

Name Salary Hire Date Title Location
Fitzgerald $53000 04/19/83 Manager Chicago
Friedel $48000 02/17/84 Manager Miami
Martineau $48000 02/28/83 Manager Los Angeles
Pattishall $38500 11/11/84 Account Rep Miami
Grauer $37500 03/16/85 Account Rep Miami
McGrath $37000 04/25/86 Account Rep Chicago
Tillberg $35000 10/29/82 Manager Boston

===============================================

Miami office's employees by seniority

Name Salary Hire Date Title
Friedel $48000 02/17/84 Manager
Hirschberg $28500 06/19/84 Account Rep
Pattishall $38500 11/11/84 Account Rep
Ferraro $26400 02/02/85 Account Rep
Grauer $37500 03/16/85 Account Rep
Kendrick $26500 02/16/86 Account Rep

===============================================

Employees who are managers

Name Salary Hire Date Location
Fitzgerald $53000 04/19/83 Chicago
Friedel $48000 02/17/84 Miami
Martineau $48000 02/28/83 Los Angeles
Tillberg $35000 10/29/82 Boston

===============================================

Information Utilities
Public databases are also known as information utilities, which are
available to users that have the means of accessing them. Generally, public
utilities are private companies that sell universally necessary services and
information. In this age of computers, there are a number of public
information utilities that sell computer services and information. These
more general information utilities are not yet universally necessary
services, but their importance is growing rapidly also.

Many of the public information utility companies are highly specialized.
For example the Dow Jones News/Retrieval Service provides investors and
stockholders with financial news and up-to-the-minute stock prices and bond
prices. LEXIS serves lawyers by offering them a rapid overview of cases
that may serve as precedents in any given area of legal interest.
University-based information utilities supply the latest scientific research
data and run bibliographic searches for scholars.

A public information utility has a large computer and a variety of
constantly updated databases; its product (information) can be accessed by
customers over telephone lines or other networks; and billing is based on
the access time. Some information utilities gather together specialized
databases from many disciplines. Subscribers to Lockheed's DIALOG system,
for example, may choose from the offerings of over 150 database developers
in such fields as business, government, the social sciences, engineering,
and medicine - the computer user will usually begin a session by searching
the utilities reference database for possibly useful references. The user
then accesses the most useful references in the utility's source database
which is made up of books, technical journals, magazines, and newspapers.
The user writes his choice of research to a disk and disconnects from the
DIALOG database. Then he prints his reference material for himself.

Note that it may be argued that personal computer users are voting with
their dollars for public information utilities as necessary to their lives.
General information databases as well as recreational and business
information datebases command prices from their markets, nightly rates are
discounted usually.

Other general-purpose information utilities serve the microcomputer
audience. General-purpose information utilities offer both general-interest
and specialized databases -for example national news, financial data,
recipes, or information about computers -as well as such communication
services such as electronic mail, electronic BB's, and multiplayer
electronic games. The growing system of networks and information utilities,
linking microcomputers to large computers as well as to other
microcomputers, may expand the reach of computer power and the effect that
it has on our lives.

Personal Databases
At the most common end of information utility services would be those which
can be created on our personal computer, for our own personal research or
informational needs. The articles we have written from our own personal
library of books that we use for references can be outlined and linked for
quick reference. The formats of data which we use can be saved within file
templates that can be reproduced when we need to write new programs which
further exploit data of the format from these file types. Technical help
files that describe some of the code in our own programs can similarly, be
saved as links in a local information space. Information sharing between
reference document databases and reference books can offer an effective
information services resource.

Data Processing Applications (Problem-solving Approach)
Application software programs can be considered, or can be taken to be
compositions of a hierarchical (horizontal or vertical) series of task
modules which are performed within a hierarchy from the lower levels of the
designs of the application program system, or from beginning to end; to
serve an organizational purpose or a broad schema.

Logically an applicaton can be divided into measurable tasks with a lower
level task module representing a processing task which can be invoked
(called) to serve upper level task modules. Otherwise, it can be seen as a
task series which is sequentially repetitious also. Yet in the world of
business transactions the connections are not clean and regimental as those
of the most simple designs for applications, such as the Corporation.
Logically a task module is one problem related task that the software
program performs i.e., Add NewRecord, or Create Bill. However, physically a
module is implemented as a sequence of programming instructions bounded by
an entry point and an exit point. Modules are usually also interrelated by
a control structure. Control is defined as program block-to-block action,
and the statements which are used are: IF ( ), WHILE ( ), DO-WHILE ( ), FOR
( ), SWITCH ( ), BREAK, ERROR, FLAG, CONTINUE, and GOTO to affect the
control of logical operatons.

An appreciation of the current state of the environment which we are
interested in influencing is the place we have to begin. An essential
technique used for planning for participating in the changes occurring
within the environment would need to understand and assess the likely
changes to occur even without intervention -indirect participation can be
related to the observation of changes, and can also be related to the
observer's position -oneself in relationship to other systems of the world.
Another indirect participation can amount to understanding the environment
and preparation of a plan for intervention in the environment and this is in
fact a strategy used in game theory. Will the systems influencing the
environment be totally in agreement or partly resistant to another/new
effort to implement changes in the environment? How much of the effort at
intervening within the environment depends upon a clandestine shock attack?
How functional is the network which supports the environment? The
assumptions about the performance of the network would amount to another
assessment of an indirect influence with regard to a plan, and a
consideration of issues needed for a direct involvement in the environment.
Applications (systems) which are built upon their client-server network
architecture foundation apply the instructions of Third Generation
programming languages, and Fourth Generation programming languages which are
meant to perform tasks within an environmment controlled through a useful
distributed client server network architecture and an integrated mix of
functional resources (function applications i.e., accounting, inventory,
etc.). Utility applications are also used for general file management,
system monitoring, etc

Private Data Banks
Private or restricted data banks may contain confidential information about
individuals; others hold highly sensitive information relevant to national
security, which must be maintained with integrity.

OLTP Systems
OLTP systems are used by production workers in corporations. The data that
they work with is current data. Reports using the data cannot be
reconstructed with the expectation of obtaining the same results each time,
due to the nature of this live data. Data access of the production workers
to the data is continuous. The data format of the data is raw data, as
opposed to an compiled information report. The data is at a detailed and
unsummarized transaction data level.

Database performance is fast performance, using highly automated repetitive
tasks. The data formats are defined at the time that the applications for
the OLTP are designed. And access to the database will usually be limited to
a few records at a time. There are no provisions to display timed snapshots
of the data, or multiple versions. The data access pattern is that of a a
multiple user access production database p. 207 Client Server Survivor
Guide.

The description of the OLTP transaction system above tends to be associated
with what private data banks would be expected to utilize with respect to
the lower levels of a working data bank model. OLTP systems collect data
from a single application. The source of the data will always be connected
back to the application. A data warehouse supports an OLTP system by
providing a place for the OLTP database to offload data as it accumulates,
and by providing services that would complicate and degrade OLTP operations
if they were performed in the OLTP database.

Without a data warehouse to hold historical information, data is archived to
static media such as magnetic tape, or allowed to accumulate in the OLTP
database.

If data is simply archived for preservation, it is not available or
organized for use by analysts and decision makers. If data is allowed to
accumulate in the OLTP so it can be used for analysis, the OLTP database
continues to grow in size and requires more indexes to service analytical
and report queries. These queries access and process large portions of the
continually growing historical data and add a substantial load to the
database. The large indexes needed to support these queries also tax the
OLTP transactions with additional index maintenance. These queries can also
be complicated to develop due to the typically complex OLTP database schema.

A data warehouse offloads the historical data from the OLTP, allowing the
OLTP to operate at peak transaction efficiency. High volume analytical and
reporting queries are handled by the data warehouse and do not load the
OLTP, which does not need additional indexes for their support. As data is
moved to the data warehouse, it is also reorganized and consolidated so that
analytical queries are simpler and more efficient.

Online analytical processing (OLAP) is a technology designed to provide
superior performance for ad hoc business intelligence queries. OLAP is
designed to operate efficiently with data organized in accordance with the
common dimensional model used in data warehouses.

A data warehouse provides a multidimensional view of data in an intuitive
model designed to match the types of queries posed by analysts and decision
makers. OLAP organizes data warehouse data into multidimensional cubes based
on this dimensional model, and then preprocesses these cubes to provide
maximum performance for queries that summarize data in various ways. For
example, a query that requests the total sales income and quantity sold for
a range of products in a specific geographical region for a specific time pe
riod can typically be answered in a few seconds or less regardless of how
many hundreds of millions of rows of data are stored in the data warehouse
database.

OLAP is not designed to store large volumes of text or binary data, nor is
it designed to support high volume update transactions. The inherent
stability and consistency of historical data in a data warehouse enables
OLAP to provide its remarkable performance in rapidly summarizing
information for analytical queries.

In SQL Server 2000, Analysis Services provides tools for developing OLAP
applications and a server specifically designed to service OLAP queries.
Data mining is a technology that applies sophisticated and complex
algorithms to analyze data and expose interesting information for analysis
by decision makers. Whereas OLAP organizes data in a model suited for
exploration by analysts, data mining performs analysis on data and provides
the results to decision makers. Thus, OLAP supports model-driven analysis
and data mining supports data-driven analysis.

Data mining has traditionally operated only on raw data in the data
warehouse database or, more commonly, text files of data extracted from the
data warehouse database. In SQL Server 2000, Analysis Services provides data
mining technology that can analyze data in OLAP cubes, as well as data in
the relational data warehouse database. In addition, data mining results
can be incorporated into OLAP cubes to further enhance model-driven analysis
by providing an additional dimensional viewpoint into the OLAP model. For
example, data mining can be used to analyze sales data against customer
attributes and create a new cube dimension to assist the analyst in the
discovery of the information embedded in the cube data.

Data Mining is a Data Warehouse Tool
Before embarking on the design of a data warehouse, it is imperative that
the architectural goals of the data warehouse be clear and well understood.
Because the purpose of a data warehouse is to serve users, it is also
critical to understand the various types of users, their needs, and the
characteristics of their interactions with the data warehouse. A data
warehouse exists to serve its users-analysts and decision makers. A data
warehouse must be designed to satisfy the following requirements:
Deliver a great user experience-user acceptance is the measure of success
Function without interfering with OLTP systems
Provide a central repository of consistent data
Answer complex queries quickly
Provide a variety of powerful analytical tools, such as OLAP and data mining


Most successful data warehouses that meet these requirements (above) have
these common characteristics:
Are based on a dimensional model
Contain historical data
Include both detailed and summarized data
Consolidate disparate data from multiple sources while retaining consistency
Focus on a single subject, such as sales, inventory, or finance
Data warehouses are often quite large. However, size is not an architectural
goal-it is a characteristic driven by the amount of data needed to serve the
users.

Data Warehouses
The data warehouse is based upon the emphasis between decision support
processing systems, and operational informational support processing OLTP
production. By 1994 hundreds of data warehouse products started to
ship -including various decision support tools. Sybase 10's replicated
server, Oracle 7's replication facility, Teradata, Ingres' Replica Manager,
MDI Database Gateway, Red Brick, Prism Solutions' Warehouse Manager,
Evolutionary Technologies Extract Toolsuite, Trinzic Corp's InfoPump, and
Digital's Data Distributor. Data warehouse products will grow into a $8
billion market by 1997, up $2 billion from 1995.

A relational database is designed for a specific purpose. Because the
purpose of a data warehouse differs from that of an OLTP, the design
characteristics of a relational database that supports a data warehouse
differ from the design characteristics of an OLTP database which is used to
collect and to clean up data and provide that fresh data to the data
warehouse.

Data warehouse users can be divided into four categories: Statisticians,
Knowledge Workers, Information Consumers, and Executives. Each type makes up
a portion of the user population as illustrated in this diagram:

-------------
(1) Statisticians: There are typically only a handful of sophisticated
analysts (2% of users)-Statisticians and operations research types-in any
organization. Though few in number, they are some of the best users of the
data warehouse; those whose work can contribute to closed loop systems that
deeply influence the operations and profitability of the company. It is
vital that these users come to love the data warehouse. Usually that is not
difficult; these people are often very self-sufficient and need only to be
pointed to the database and given some simple instructions about how to get
to the data and what times of the day are best for performing large queries
to retrieve data to analyze using their own sophisticated tools. They can
take it from there.

(2) Knowledge Workers: A relatively small number of analysts (15% of users)
perform the bulk of new queries and analyses against the data warehouse.
These are the users who get the "Designer" or "Analyst" versions of user
access tools. They will figure out how to quantify a subject area. After a
few iterations, their queries and reports typically get published for the
benefit of the Information Consumers. Knowledge Workers are often deeply
engaged with the data warehouse design and place the greatest demands on the
ongoing data warehouse operations team for training and support

(3) Information Consumers: Most users (82% of users) of the data warehouse
(includes Corporate Executives) are Information Consumers; they will
probably never compose a true ad hoc query. They use static or simple
interactive reports that others have developed. It is easy to forget about
these users, because they usually interact with the data warehouse only
through the work product of others. Do not neglect these users! This group
includes a large number of people, and published reports are highly visible.
Set up a great communication infrastructure for distributing information
widely, and gather feedback from these users to improve the information
sites over time.

(4) Executives: Executives are a special case of the Information Consumers
group. Few executives actually issue their own queries, but an executive's
slightest musing can generate a flurry of activity among the other types of
users. A wise data warehouse designer/implementer/owner will develop a very
cool digital dashboard for executives, assuming it is easy and economical to
do so. Usually this should follow other data warehouse work, but it never
hurts to impress the bosses.


The Elements of Data Warehousing
Almost all data warehousing systems provide the following four elements
(see. fig 12-1 Client Server Survivor Guide)

The Data Replication Manager
The data replication manager manages the copyiing and distribution of data
across databases as defined by the information user. The information user
defines the data that needs to be copied, the source and destination
platforms, the frequency of updates, and the data transforms. Refresh
involves copying over the entire data source; update only propagates the
changes. Everything can be automated or done manually. Data can be obtained
from relational or non-relational sources.

Note that almost all external data is transformed and cleansed before it's
brought into the warehouse. Will be covering data replication in detail in
the next sections p. 210 Client Server Survivor Guide.

On page 214 Client Server Survivor Guide the chapter is named Replication
vs. Direct Access he explains that it is impractical to create a centralized
repository of data because of performance, security, availability, and local
control etc. Replicated data management will increasingly be used to remove
the capacity, performance, and organizational roadblocks of centralized data
access. In the explanation replication is reference to data files which are
duplicated and updated on schedule to control the availability of updated
data records without using a centralized repository.

The Informational Database
The Informational Database is a relational database that organizes and
stores copies of data from multiple data sources in a format that meets the
needs of the information users. We can think of the informational database
as a decision support server that transforms, aggregates, and adds value to
data from various production sources. It also stored metadata (data about
data) that describes the content of the informational database.

The informational database can be a personal database on a PC, a medium
sized database on a local server, or a massively parallel database on an
enterprise server.

System level metadata describes the tables, indexes, and source extracts to
a database administrator (DBA); semantic level metadata describes the
contents of the data to an information user (what does this describe
exactly..?)

Most of the major SQL database engines can be used as information databases.


We will have more to say on database engines in the next two chapters
Chapter 13-14 Client Server Survivor Guide.

How Users Query the Data Warehouse
Information for users can be extracted from the data warehouse relational
database or from the output of analytical services such as OLAP or data
mining. Direct queries to the data warehouse relational database should be
limited to those that cannot be accomplished through existing tools, which
are often more efficient than direct queries and impose less load on the
relational database.

Reporting tools and custom applications often access the database directly.
Statisticians frequently extract data for use by special analytical tools.
Analysts may write complex queries to extract and compile specific
information not readily accessible through existing tools. Information
consumers do not interact directly with the relational database but may
receive e-mail reports or access web pages that expose data from the
relational database. Executives use standard reports or ask others to create
specialized reports for them.

When using the Analysis Services tools in SQL Server 2000, Statisticians
will often perform data mining, Analysts will write MDX queries against OLAP
cubes and use data mining, and Information Consumers will use interactive
reports designed by others.

Developing a Data Warehouse - Details
The phases of a data warehouse project listed below are similar to those of
most database projects, starting with identifying requirements and ending
with deploying the system:
Identify and gather requirements
Design the dimensional model
Develop the architecture, including the Operational Data Store (ODS)
Design the relational database and OLAP cubes
Develop the data maintenance applications
Develop analysis applications
Test and deploy the system

Identify sponsors. A successful data warehouse project needs a sponsor in
the business organization and usually a second sponsor in the Information
Technology group. Sponsors must understand and support the business value of
the project.
Understand the business before entering into discussions with users. Then
interview and work with the users, not the data-learn the needs of the users
and turn these needs into project requirements. Find out what information
they need to be more successful at their jobs, not what data they think
should be in the data warehouse; it is the data warehouse designer's job to
determine what data is necessary to provide the information. Topics for
discussion are the users' objectives and challenges and how they go about
making business decisions. Business users should be closely tied to the
design team during the logical design process; they are the people who
understand the meaning of existing data. Many successful projects include
several business users on the design team to act as data experts and
"sounding boards" for design concepts. Whatever the structure of the team,
it is important that business users feel ownership for the resulting system.
Interview data experts after interviewing several users. Find out from the
experts what data exists and where it resides, but only after you understand
the basic business needs of the end users. Information about available data
is needed early in the process, before you complete the analysis of the
business needs, but the physical design of existing data should not be
allowed to have much influence on discussions about business needs.
Communicate with users often and thoroughly-continue discussions as
requirements continue to solidify so that everyone participates in the
progress of the requirements definition.
Design the Dimensional Model
User requirements and data realities drive the design of the dimensional
model, which must address business needs, grain of detail, and what
dimensions and facts to include.
The dimensional model must suit the requirements of the users and support
ease of use for direct access. The model must also be designed so that it is
easy to maintain and can adapt to future changes. The model design must
result in a relational database that supports OLAP cubes to provide
"instantaneous" query results for analysts.
An OLTP system requires a normalized structure to minimize redundancy,
provide validation of input data, and support a high volume of fast
transactions. A transaction usually involves a single business event, such
as placing an order or posting an invoice payment. An OLTP model often looks
like a spider web of hundreds or even thousands of related tables.
In contrast, a typical dimensional model uses a star or snowflake design
that is easy to understand and relate to business needs, supports simplified
business queries, and provides superior query performance by minimizing
table joins.
For example, contrast the very simplified OLTP data model in the first
diagram below with the data warehouse dimensional model in the second
diagram. Which one better supports the ease of developing reports and
simple, efficient summarization queries

Dimensional Model Schemes
The principal characteristic of a dimensional model is a set of detailed
business facts surrounded by multiple dimensions that describe those facts.
When realized in a database, the schema for a dimensional model contains a
central fact table and multiple dimension tables. A dimensional model may
produce a star schema or a snowflake schema.
A schema is called a star schema if all dimension tables can be joined
directly to the fact table. The following diagram shows a classic star
schema
see microsoft.com site on data design for SQL Server.

A schema is called a snowflake schema if one or more dimension tables do not
join directly to the fact table but must join through other dimension
tables. For example, a dimension that describes products may be separated
into three tables (snowflaked) as illustrated in the following diagram.

Dimension Tables
Dimension tables encapsulate the attributes associated with facts and
separate these attributes into logically distinct groupings, such as time,
geography, products, customers, and so forth.
A dimension table may be used in multiple places if the data warehouse
contains multiple fact tables or contributes data to data marts. For
example, a product dimension may be used with a sales fact table and an
inventory fact table in the data warehouse, and also in one or more
departmental data marts. A dimension such as customer, time, or product that
is used in multiple schemas is called a conforming dimension if all copies
of the dimension are the same. Summarization data and reports will not
correspond if different schemas use different versions of a dimension table.
Using conforming dimensions is critical to successful data warehouse design.
User input and evaluation of existing business reports help define the
dimensions to include in the data warehouse. A user who wants to see data
"by sales region" and "by product" has just identified two dimensions
(geography and product). Business reports that group sales by salesperson or
sales by customer identify two more dimensions (salesforce and customer).
Almost every data warehouse includes a time dimension.
In contrast to a fact table, dimension tables are usually small and change
relatively slowly. Dimension tables are seldom keyed to date.
The records in a dimension table establish one-to-many relationships with
the fact table. For example, there may be a number of sales to a single
customer, or a number of sales of a single product. The dimension table
contains attributes associated with the dimension entry; these attributes
are rich and user-oriented textual details, such as product name or customer
name and address. Attributes serve as report labels and query constraints.
Attributes that are coded in an OLTP database should be decoded into
descriptions. For example, product category may exist as a simple integer in
the OLTP database, but the dimension table should contain the actual text
for the category. The code may also be carried in the dimension table if
needed for maintenance. This denormalization simplifies and improves the
efficiency of queries and simplifies user query tools. However, if a
dimension attribute changes frequently, maintenance may be easier if the
attribute is assigned to its own table to create a snowflake dimension.
It is often useful to have a pre-established "no such member" or "unknown
member" record in each dimension to which orphan fact records can be tied
during the update process. Business needs and the reliability of consistent
source data will drive the decision as to whether such place holder
dimension records are required.

Hierarchies
The data in a dimension is usually hierarchical in nature. Hierarchies are
determined by the business need to group and summarize data into usable
information. For example, a time dimension often contains the hierarchy
elements: (all time), Year, Quarter, Month, Day, or (all time), Year
Quarter, Week, Day. A dimension may contain multiple hierarchies-a time
dimension often contains both calendar and fiscal year hierarchies.
Geography is seldom a dimension of its own; it is usually a hierarchy that
imposes a structure on sales points, customers, or other geographically
distributed dimensions. An example geography hierarchy for sales points is:
(all), Country or Region, Sales-region, State or Province, City, Store.
Note that each hierarchy example has an "(all)" entry such as (all time),
(all stores), (all customers), and so forth. This top-level entry is an
artificial category used for grouping the first-level categories of a
dimension and permits summarization of fact data to a single number for a
dimension. For example, if the first level of a product hierarchy includes
product line categories for hardware, software, peripherals, and services,
the question "What was the total amount for sales of all products last
year?" is equivalent to "What was the total amount for the combined sales of
hardware, software, peripherals, and services last year?" The concept of an
"(all)" node at the top of each hierarchy helps reflect the way users want
to phrase their questions. OLAP tools depend on hierarchies to categorize
data-Analysis Services will create by default an "(all)" entry for a
hierarchy used in a cube if none is specified.
A hierarchy may be balanced, unbalanced, ragged, or composed of parent-child
relationships such as an organizational structure. For more information
about hierarchies in OLAP cubes, see SQL Server Books Online

Videotex
What is videotex? In 1984, three giant companies CBS, IBM, and
Sears -announced a joint venture in the videotex business. Videotex differs
from other information utilities where the others have transmissions made
solely of text, but videotex also transmits pictures.

The user of a home terminal interacts with the videotex system by - for
example, calling up a page of a an electronic catalog, studying the text and
pictures describing an item, and then transmitting the message "send me
that..". The videotex will transmit an image from the videotex database to
the home computer user's terminal.

AT & T has a true videotex system known as NAPLPS (North Amer. Presentation
Level Protocol Syntax) which was an improvement over some pseudo video
competition i.e.,Canada's Telidon system which achieves enhanced graphics by
means of alphageometric transmission, and uses television lines for
transmission.

At the present time, the videotex technology is maintained by the
general-purpose information utilities. If specialized databases of the
professional users function like libraries, then the general-purpose
information utilities for home-users resemble houseparties with animated
conversations are going on during the day and night. The general-purpose
information utilities are indeed vast, and highly interactive databases to
provide online customers with a range of information, graphics, and the
opportunity to exchange views with other subscribers.

The videotex meduim has a large potential for effect upon our lives i.e.,
at-home shopping, at-home banking, and other two-way consumer services are
convenient and when popularly priced they are likely to be successful.

Videotex is used for educational programming for the young as well as for
adults. Yet television was also considered to have potential as an
educational medium. The television did not reach the educational goals.
Another popular use is for engagement with politics and issues of the day.

Systems Development and Operations Management Strategy
A business education is incomplete without an understanding of modern
approaches to managing operations. Operations management (OM) provides a
systematic way of examining organizational processes. OM presents
interesting career opportunities and the concepts and tools of OM are widely
used in managing other functions of a business. The time frame of
management decisions is discussed along with the different types of
transformation processes. Services are compared to goods production with
emphasis on the primary inputs, resources, the primary transformation
functions, and the typical desired outputs in a variety of service and
operations examples. Value-added services are also discussed along with
their benefit to external customers.

Operations management is identified within the organizational chart and its
role in the organization is defined.

Chapter one presents a concept map and outlines the textbook chapters. The
chapters are grouped by the key themes of strategic planning, project
management, decision analysis, quality, supply chain management, and
e-commerce from Chap. II summary on web page Operations Management for
Competitive Advantage.
Historical Operations Managememnt
The historical roots of the development of OM are traced from scientific
management through the moving assembly line, the Hawthorne studies, and on
to today's current manufacturing topics including supply chain management
and e-commerce. This chapter concludes with current issues facing OM
executives including effectively consolidating the operations resulting from
mergers, developing flexible supply chains to enable mass customization of
products and services, managing global suppliers, production, and
distribution networks, increased commoditization of suppliers, achieving the
service factory, and achieving excellent service from service firms. -
Developing a flexible organizational model which distinguishes between
profitable and unprofitable customers.

Systems Development
Systems development is the activity of creating and modifying existing
business systems. It begins with an initiation of a systems investigation
to gain a clear understanding of the problem to be solved or opportunity to
be addressed. A business education is incomplete without an understanding
of modern approaches to managing operations. Several typical organizational
practices require close monitoring through operations management techniques.
I refer to organizational practices such as a learning curve in production,
delivery of customer services, and others.

Operations management (OM) provides Operations Management for Competitive
Advantage, by Chase, Jacobs, Aquilano et al. from Key Points chap. 1 from
mcgraw-hill.com/sites/ (shortcut on Francisco) a systematic way of
examining organizational processes. OM presents interesting career
opportunities and the concepts and tools of OM are widely used in managing
other functions of a business.

The time frame of management decisions is discussed in chapter 1 along with
the different types of transformation processes. Services are compared to
goods production with emphasis on the primary inputs, resources, the primary
transformation functions, and the typical desired outputs in a variety of
service and operations examples. Value-added services are also discussed
along with their benefit to external customers.

Operations management is identified within the organizational chart and its
role in the organization is defined.
Chapter one presents a concept map and outlines the textbook chapters. The
chapters are grouped by the key themes of strategic planning, project
management, decision analysis, quality, supply chain management, and
e-commerce.

Chapter 1. Key Outline
I. Operations Management - A Critical Responsibility for Every Manager
II. What is Operations Management?
III Transformation Processes
IV OM in the Organizatinal Chart
V Operations as Service
VI Why is Operations Not Perceived as Important?
VII Historical Development of OM
VIII Current Issues in Operations Management

Chapter 2. Key Outline
I Operations Strategy
II Operations Competitive Dimensions
III The Corporate Strategy Design Process
IV Strategic Fit - Fitting Operational Activities to Strategy
V Attacking Through Operations - (Competitive Advantage)
VI Productivity Measurement
VII Conclusion

Chapter 2. Technical Note
Optimizing the Use of Resources with Linear Programming
1. Introduction - Linear Programming - Define
2. The Linear Programming Model
3. Graphical Linear Programming
4. Linear Programming Using Microsoft Excel
5. Genetic Solver Option

Chapter 2 In Brief - Linear programming, or LP, is one of the most powerful
tools of management science. It is a mathematical technique used to allocate
limited resources among competing demands in an optimal way. LP is a
mathematical optimization technique.
Linear programming problems must have limited resources, workers, equipment,
finances or material. They must also have an explicit objective such as to
maximize profit or minimize cost. There must be linearity and homogeneity.
Another constraint is divisibility. Normal linear programming assumes that
products and resources can be subdivided into fractions (parts of a whole).
If this subdivision is not possible, a modification of linear programming
called integer programming is used.
The steps in the graphical linear programming optimizing process are to (1)
formulate the problem in mathematical terms,
From: Matteo Bordin on
On Jan 17, 1:52 pm, liongs...(a)gmail.com wrote:
> On Jan 17, 3:40 am, "H. S. Lahman" <h...(a)pathfindermda.com> wrote:
>
> > > or assemblied with other components.
>
> > Which component concept is that? B-) Alas, component engineering is
> > taking on as many different methodological views as OOA/D.
>
> I read about this from Syperski's "Component Software - Beyond Object
> Oriented Programming" (2003). To be exact on page 174, He mentioned
> and draw a connection between two components C1 and C2. I can
> understand if they will communicate through a defined interface,
> however my question was how this connection is implemented?
>
> Juval Lowy in his book 'Programming dot net Components' also draws
> interaction between components, however I could not find the detail
> information on how it will be implemented.
>
> > > However how could we connect X to Y, if don't
> > > have the source code of X and Y?
>
> > The short answer is that you don't. The component is a module with a
> > particular semantic responsibility that is abstracted by its interface
> > for various clients to use.
>
> Yes I thought the answer had to be not, however I have a confusion
> between the concept (as described above) and the practical
> implementation of the component integration.
>
> Thanks again for your response.
>
> Han

Maybe much of the confusion (at least for me) comes from the fact that
the term "component" sometimes indicate a *type* and sometimes
indicates an *object*, especially in the books you cited. But
practically, the situation may be quite different: for example in UML,
a component is basically a class: if you want to wire components A and
B you have to:
- instantiate an instance of A; instantiate an instance of B; wire
them (maybe invoking a setter on A passing the reference to B?)
- Have another component C which has properties (class members) typed
to A and B and wire those two properties (and of course instantiate C)

Now, how you do the wiring between the required port of a component
*instance* to the provided ports of another component *instance* is
still unclear to me (look at a previous post which was sadly left
unanswered http://groups.google.com/group/comp.object/browse_thread/thread/62ec406d8dced3a4).