|
Prev: china wholesale nike jordan sneakers WWW.21cn-shoes.COM discount gucci prada puma
Next: Dynamic foreach algorithm
From: liongster on 15 Jan 2008 18:15 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 16 Jan 2008 11:40 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 17 Jan 2008 07:52 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 17 Jan 2008 15:59 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 18 Jan 2008 03:34 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).
|
Next
|
Last
Pages: 1 2 3 Prev: china wholesale nike jordan sneakers WWW.21cn-shoes.COM discount gucci prada puma Next: Dynamic foreach algorithm |