WO2000073955A9 - Procedes, concepts et technologie pour systeme d'achat virtuel capable d'evaluer les besoins d'un client et de recommander un produit ou un service sur la base de ces besoins - Google Patents

Procedes, concepts et technologie pour systeme d'achat virtuel capable d'evaluer les besoins d'un client et de recommander un produit ou un service sur la base de ces besoins

Info

Publication number
WO2000073955A9
WO2000073955A9 PCT/US2000/014357 US0014357W WO0073955A9 WO 2000073955 A9 WO2000073955 A9 WO 2000073955A9 US 0014357 W US0014357 W US 0014357W WO 0073955 A9 WO0073955 A9 WO 0073955A9
Authority
WO
WIPO (PCT)
Prior art keywords
management
components
development
tools
repository
Prior art date
Application number
PCT/US2000/014357
Other languages
English (en)
Other versions
WO2000073955A2 (fr
WO2000073955A8 (fr
Inventor
Michael F Guheen
James D Mitchell
James J Barrese
Original Assignee
Accenture Llp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Accenture Llp filed Critical Accenture Llp
Priority to AU50443/00A priority Critical patent/AU5044300A/en
Priority to EP00932768A priority patent/EP1190353A2/fr
Publication of WO2000073955A2 publication Critical patent/WO2000073955A2/fr
Publication of WO2000073955A8 publication Critical patent/WO2000073955A8/fr
Publication of WO2000073955A9 publication Critical patent/WO2000073955A9/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Definitions

  • the present invention relates to electronic commerce transactions and more particularly pertains to providing a virtual shopping system with enhanced purchasing capabilities to afford a more effective virtual shopping experience if desired by the user.
  • the Internet is a worldwide interconnection of computer networks that communicate using a common protocol. Millions of computers, from low end personal computers to high-end super computers are coupled to the Internet.
  • the Web World-Wide- Web
  • CERN the European Particle Physics Laboratory
  • the Web is a wide-area hypermedia information retrieval system aimed to give wide access to a large universe of documents.
  • Mosaic browser allows a user to retrieve documents from the W orld-Wide-Web using simple point-and-click commands. Because the user does not have to be technically trained and the browser is pleasant to use, it has the potential of opening up the Internet to the masses.
  • the architecture of the Web follows a conventional client-server model.
  • client and server are used to refer to a computer's general role as a requester of data (the client) or provider of data (the server).
  • Web browsers reside in clients and Web documents reside in servers.
  • Web clients and Web servers communicate using a protocol called "HyperText Transfer Protocol” (HTTP).
  • HTTP HyperText Transfer Protocol
  • a browser opens a connection to a server and initiates a request for a document.
  • the server delivers the requested document, typically in the form of a text document coded in a standard Hypertext Markup Language (HTML) format, and when the connection is closed in the above interaction, the server serves a passive role, i.e., it accepts commands from the client and cannot request the client to perform any action.
  • HTML Hypertext Markup Language
  • the communication model under the conventional Web environment provides a very limited level of interaction between clients and servers.
  • increasing the level of interaction between components in the systems often makes the systems more robust, but increasing the interaction increases the complexity of the interaction and typically slows the rate of the interaction.
  • the conventional Web environment provides less complex, faster interactions because of the Web's level of interaction between clients and servers.
  • the present invention is provided for facilitating a virtual shopping transaction by ascertaining needs of a user. First, needs of a user are assessed. Next, a solution is generated based on the needs of the user after which the solution is displayed. A payment is then accepted in exchange for the solution. It should be noted that in the present description, the solution includes, but is not limited to either a product or a service.
  • the solution may be stored for allowing the purchase of the solution at a later time. Further, the solution may be grouped with a plurality of items selected for being purchased together.
  • the needs of the user may refer to parameters including either capacity, performance, or cost. It should be noted that the needs of the user are assessed by receiving input from the user.
  • Figure 1A is a flow chart depicting multiple coding methods for conveying various information relating to a system such as web architecture framework;
  • Figure IB is a flowchart illustrating the method for identifying redundancies and omissions among components of a web based architecture in accordance with one embodiment of the present invention
  • Figure 1B-1 is a flowchart providing more detail of the method for identifying redundancies and omissions among components of a web based architecture in accordance with one embodiment of the present invention
  • Figure IC is a flowchart illustrating the method of conveying which components of a system are required for implementation of technology in accordance with one embodiment of the present invention
  • Figure lC-1 is a flowchart providing more detail of the method of conveying which components of a system are required for implementation of technology in accordance with one embodiment of the present invention
  • Figure ID is a flowchart illustrating the method of prioritizing components of a system that are required for implementation of technology in accordance with one embodiment of the present invention
  • Figure 1D-1 is a flowchart providing more detail of the method of prioritizing components of a system that are required for implementation of technology in accordance with one embodiment of the present invention
  • Figure IE is a flowchart illustrating the method of indicia coding system components to be delivered in different phases in accordance with one embodiment of the present invention
  • Figure 1E-1 is a flowchart providing more detail of the method of indicia coding system components to be delivered in different phases in accordance with one embodiment of the present invention
  • Figure IF is a flowchart illustrating the method of comparatively analyzing network entities in accordance with one embodiment of the present invention
  • Figure 1F-1 is a flowchart providing more detail of the method of comparatively analyzing network entities in accordance with one embodiment of the present invention
  • Figure IG is a flowchart illustrating the method for selling products in accordance with one embodiment of the present invention
  • Figure 1G-1 is a flowchart providing more detail of the method for selling products in accordance with one embodiment of the present invention.
  • Figure IH is a flowchart illustrating the method of identifying various components of a system for building, management, and support purposes in accordance with one embodiment of the present invention
  • Figure 1H-1 is a flowchart providing more detail of the method of identifying various components of a system for building, management, and support purposes in accordance with one embodiment of the present invention
  • Figure II is a flowchart illustrating the method for mapping products or services in a network framework in accordance with one embodiment of the present invention
  • Figure II— 1 is a flowchart providing more detail of the method for mapping products or services in a network framework in accordance with one embodiment of the present invention
  • Figure 1J is a flowchart illustrating the method of identifying alliances among a plurality of business entities in accordance with one embodiment of the present invention
  • Figure IK is a flowchart illustrating the method for planning the testing of network components in accordance with one embodiment of the present invention
  • Figure 1K-1 is a flowchart providing more detail of the method for planning the testing of network components in accordance with one embodiment of the present invention
  • Figure IL is an illustration of one implementation of operations 10 and 24 of Figure 1A
  • Figure 1L-1 is an illustration of one implementation of operations 10 and 24 of
  • Figure IM is an illustration of one implementation of operations 12, 20, 22 and 26 of Figure 1A;
  • Figure IN is an illustration of one implementation of operations 14, 16 and 18 of Figure 1A;
  • Figure IP is an illustration of one implementation of operations 14, 16, 18 and 30 of Figure 1A;
  • Figure 1Q is an illustration of one implementation of operation 22 of Figure 1A;
  • Figure IR is an illustration of one implementation of operation 28 of Figure 1A
  • Figure IS is an illustration of one implementation of operation 28 of Figure 1A
  • Figure IT is an illustration of one implementation of operation 28 of Figure 1A;
  • Figure 1U is an illustration of one implementation of operation 28 of Figure 1A;
  • Figure IV is an illustration of one implementation of operation 28 of Figure 1A;
  • Figure 1W is an illustration of one implementation of operation 28 of Figure 1A
  • Figure IX is an illustration of one implementation of operation 28 of Figure 1A
  • Figure 1Y is an illustration of one implementation of operation 28 of Figure 1A;
  • Figure 1Z is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A;
  • Figure 1AA is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A;
  • Figure 1AB is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A;
  • Figure 1AC is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A
  • Figure IAD is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A
  • Figure 1AE is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A
  • Figure 1AF is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A
  • Figure 1AG is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1 A
  • Figure 1AH is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A;
  • Figure 1 Al is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A;
  • Figure 1AJ is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1 A;
  • Figure 1AK is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1 A;
  • Figure 1AL is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A
  • Figure 1AM is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A
  • Figure IAN is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1A;
  • Figure 1 AO is an illustration of an architecture diagram for one implementation of operation 28 of Figure 1 A;
  • Figure 2A is a schematic diagram of a hardware implementation of one embodiment of the present invention.
  • FIG. 2B is an illustration of the Integrated Development Environment Architecture (IDEA).
  • Figure 2C is an illustration showing a Development Organization Framework in accordance with one embodiment of the present invention.
  • IDEA Integrated Development Environment Architecture
  • Figure 3 is an illustration showing a security organization functional according to one embodiment of the present invention.
  • Figure 4 is an illustration showing the responsibilities of an Environmental Management Team
  • Figure 5 is an illustration showing the responsibilities of an Application Team structure
  • Figure 6 is an illustration showing a model migration plan in accordance with one embodiment of the present invention
  • Figure 7 is an illustration showing a single release capability development pipeline in accordance with one embodiment of the present invention
  • Figure 8 is an illustration showing a multiple release capability development pipeline in accordance with one embodiment of the present invention
  • Figure 9 is an illustration showing a multiple release capability development pipeline with code base synchronization among three pipelines
  • Figure 10 is an illustration showing a Development Tools Framework in accordance with one embodiment of the present invention
  • Figure 11 is an illustration showing information captured in the Repository and reused
  • Figure 12 is an illustration showing the Repository's central role in the development environment
  • Figure 13 is an illustration showing an Operational Architecture Framework in accordance with one embodiment of the present invention.
  • Figure 14 is a block diagram of a Web Architecture Framework in accordance with one embodiment of the present invention.
  • Figure 15 is a flowchart illustrating the commerce-related web application services in accordance with one embodiment of the present invention
  • Figure 16 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction
  • Figure 16A is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by comparing different products and services
  • Figure 16B is an illustration of one embodiment of the present invention for creating a hierarchy of the features of the items selected in accordance with the customer's profile
  • Figure 17 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by ascertaining needs of a user
  • Figure 17A is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by generating a solution based on the requirements of the user;
  • Figure 18 is an illustration of one embodiment of the present invention for allowing a user to customize an item for purchase in a virtual shopping environment
  • Figure 19 is an illustration of one embodiment of the present invention for advertising in a virtual shopping environment
  • Figure 19A is an illustration of one embodiment of the present invention for advertising in a virtual shopping environment
  • Figure 20 is an illustration of yet another embodiment of the present invention
  • Figure 21 is an illustration of one embodiment of the present invention for automatically generating a contract between an owner of software and a user of the software
  • Figure 21A is an illustration of one embodiment of the present invention for automatically generating a contract between an owner of software and a user of the software
  • Figure 22 is a flowchart illustrating the content channels-related web application services in accordance with one embodiment of the present invention.
  • Figure 23 is a flowchart illustrating the customer relationship management-related web application services in accordance with one embodiment of the present invention.
  • Figure 23A is a flowchart illustrating a profile management service of the customer relationship management-related web application services in accordance with one embodiment of the present invention
  • Figure 23B is a flowchart illustrating a profile management service of the customer relationship management-related web application services in accordance with one embodiment of the present invention.
  • Figure 24 is a flowchart illustrating the content management and publishing-related web application services in accordance with one embodiment of the present invention.
  • Figure 25 is a flowchart illustrating the education-related web application services in accordance with one embodiment of the present invention.
  • Figure 25A is a flowchart illustrating one manner of generating an educational curriculum in the education-related web application services in accordance with one embodiment of the present invention
  • Figure 25B is a flowchart illustrating one manner of generating an educational curriculum in the education-related web application services in accordance with one embodiment of the present invention
  • Figure 26 is a flowchart illustrating the web customer-related web application services in accordance with one embodiment of the present invention.
  • Figure 26A is a flowchart illustrating one component of the web customer-related web application services in accordance with one embodiment of the present invention
  • Figure 27 is a flowchart illustrating the security services in accordance with one embodiment of the present invention
  • Figure 28 is a flowchart illustrating the network services in accordance with one embodiment of the present invention
  • Figure 29 is a flowchart illustrating the internet services in accordance with one embodiment of the present invention
  • Figure 30 is a flowchart illustrating the client services in accordance with one embodiment of the present invention.
  • Figure 31 is a flowchart illustrating the data services in accordance with one embodiment of the present invention.
  • Figure 32 is a flowchart illustrating the integration capabilities in accordance with one embodiment of the present invention.
  • Figure 33 is a flowchart illustrating the miscellaneous services in accordance with one embodiment of the present invention.
  • Figure 34 is a flowchart illustrating the directory services in accordance with one embodiment of the present invention.
  • FIG. 35 is a flowchart illustrating the management and operations services in accordance with one embodiment of the present invention.
  • Figure 36 is a flowchart illustrating the web developer services in accordance with one embodiment of the present invention.
  • the present invention includes a system, method, and article of manufacture for providing a web architecture framework and further a system, method, and article of manufacture for conveying various aspects of such web architecture framework. This may be done for presentation purposes or with any other objective in mind. For example, the present invention may be employed in optimally conveying to a client or customer information relating to a specific web architecture framework in order to make a point or for sales purposes.
  • the details of the presentation aspects will first be set forth after which details relating to a specific web architecture framework of the present invention will be described.
  • the presentation method of the present invention first includes displaying a pictorial representation of a system, i.e. web architecture framework, including a plurality of components.
  • a pictorial representation of a system i.e. web architecture framework, including a plurality of components.
  • the pictorial representation is indicia coded in order to demonstrate any one or more of various aspects of the system.
  • Such indicia coding may take the form of color coding, texture coding, shading coding, or any other coding which is capable of conveying the desired information.
  • the pictorial representation and indicia coding may be displayed in any manner that conveys the desired information.
  • the pictorial representation may take the form of a transparency with an outline of the various components of the system.
  • the indicia coding may take the form of an overlay removably situated on the transparency such that, together, the transparency and the overlay depict the indicia coding and the pictorial representation in combination.
  • the transparency and overlay may comprise a single unitary display device. Further, such device may take the form of a slide, full size transparency, or any other device that conveys the desired information.
  • the pictorial representation and indicia coding may be displayed via a computer with any desired presentation software. An example of such pictorial representation will be set forth hereinafter in greater detail.
  • Figure IL shows an example of the aforementioned pictorial representation, or "base chart".
  • the system is a web architecture framework
  • such pictorial representation depicts all of the application capabilities and associated infrastructure services required to establish a comprehensive web presence.
  • a plurality of components are shown which are necessary to afford various activities over the Internet.
  • Such components may include: an electronic commerce component, a content channels component, an administrative component, a customer relationship management component, a content management and publishing services component, an education related services component, and a web customer service component. More detail about these and other components is provided below and with reference to Figure 14.
  • the pictorial representation may be used alone in order to convey various services which would be provided in a business offering.
  • each of the primary components of the system are arranged for display in operation 62.
  • Examples of primary components shown in Figure IL include “Security Services", “Commerce", and “Data Services”.
  • the primary components are grouped under descriptive headings, as in operation 63. Examples of such headings shown in Figure IL are "Web Application Services” and Common Web Services”.
  • Each of the primary components is formed of a group of secondary components.
  • each set of secondary components is positioned towards or over each of the primary components in such a manner that a viewer would visually associate a group of secondary components with the proper primary component.
  • a legend may be provided in operation 65 to provide reference as to what the indicia coding represents.
  • the components and legend are displayed.
  • operation 12 includes indicia coding in order to provide a diagnostic presentation of a past, current, and/or desired web presence.
  • indicia coding in order to provide a diagnostic presentation of a past, current, and/or desired web presence.
  • FIG IM An example of indicia coding in accordance with the present description is shown in Figure IM.
  • components of the web architecture framework without shading indicate that such components are omitted in the framework (i.e., not provided by services of any vendor).
  • components of the web architecture framework with multiple types of shading indicate redundancy in such components (i.e., provided by services of more than one vendor).
  • operation 31 determines at least one area of an existing network framework in which redundancies and omissions of business efforts exist.
  • Operation 32 presents a pictorial representation of the existing network framework including a plurality of components, such as the pictorial representation shown in Figure IL. Then, in operation 33, the redundancies and omissions are highlighted by indicia coding the components of the existing network that reside in the area.
  • a database may be created which includes a listing of all of the components of the area. See operation 31a of Figure 1B-1. Also, listings of all services provided by vendors that correspond to the components of that area of the framework are created in the same or a second database in operation 31b. Then, the listing of the components is compared with the listing of the vendor services corresponding to those components in operation 31c to determine whether and how many vendors supply services to each particular component. A third listing is created in operation 31d. The third listing lists components not being provided by a vendor service. These components have been omitted by business efforts of the vendors. A fourth listing is created in operation 31e.
  • the fourth listing includes all of the components that are provided by services of more than one vendor. These components are being served by redundant business efforts. Alternatively, the fourth listing could include components that are provided by more than one service of the same vendor.
  • a pictorial representation, such as is shown in Figure IL, is prepared, as described above in operation 32. Then, referring to Figure IM, each vendor is assigned a unique indicia coding.
  • Each of the components provided by a vendor service is indicia coded to indicate which vendor or vendors provide the services, as performed in operation 33. Any component omitted in the framework has no indicia coding, while any components having redundant business efforts have multiple types of indicia coding.
  • Operation 14 of Figure 1A includes indicia coding for effectively conveying which components of a system are required for implementation of technology using the web architecture framework, thereby affording a project definition and an implementation plan.
  • Operation 34 of Figure IC displays a pictorial representation of a system including a plurality of components, again, such as the pictorial representation shown in Figure IL. Then the components of the system are indicia coded in order to indicate required components for the implementation of the system. See operation 35.
  • An example of such indicia coding is shown in Figure IN. As shown, components of the web architecture framework without indicia coding indicate that such components are not required for implementation of technology using the web architecture framework. In contrast, components of the web architecture framework with indicia coding represent components which are required for implementation of the technology. In the present description, such technology may relate to any sort of use of the web architecture, i.e. specific commerce implementations, etc.
  • a database may be created which includes a listing of all of the components of the system. See operation 35a of Figure 1B-2. Also, listings of all components of the framework necessary to the implementation of the system are created in the same or a second database in operation 35b. Then, the listing of the entire set of components is compared with the listing of the required components in operation 35c. In operation 35d, any components that match are indicia coded on the pictorial representation created in operation 34.
  • the indicia coding may be further employed to indicate priority of implementation for components of the system.
  • a priority is identified among the plurality of components required for implementation of a predetermined technology. See operation 36 of Figure ID.
  • a listing of all of the components required for implementation of the technology using an existing network framework is compiled in operation 36a.
  • Priority may be determined based on a requirement that certain components be in place before other components will perform properly. In such case, primary components, which should or must be installed before other secondary components will function properly, are positioned forward of, or in an otherwise prioritized relation to, the secondary components in the listing in operation 36b.
  • any tertiary components that should or must be installed after a particular secondary component should be positioned below the corresponding secondary component on the listing, as in operation 36c.
  • the listing provides a particular order in which the components of the network framework should or must be installed. It should be noted that this procedure can be followed for any particular area of the network framework or the entire network as a whole.
  • Operation 38 indicia codes a first component or components of the existing network framework in order to indicate that the first component is a primary component, as selected in operation 36b, which must be implemented first.
  • Operation 39 indicia codes a second component and any remaining components of the existing network framework in order to indicate that the second component and remaining components are secondary components, as determined in operation 36c, and must be implemented after the first component.
  • second components which should be provided only after other necessary first components are in place may be distinguished from the primary components by having indicia coding unique with respect to the indicia coding of the first components, and likewise for tertiary components, etc.
  • indicia coding may indicate particular phases in which components of the system are delivered, and more particularly the order of delivery of various components of the web architecture framework.
  • operation 40 displays a pictorial representation of an existing system including a plurality of components.
  • operation 41 a first set of components that are to be delivered in a first phase are selected and presented by indicia coding the same.
  • components of the system that are required to create the base framework of the system are selected to be delivered in the first phase in operation 41a.
  • the remaining components are separated into primary and secondary components, in which the primary components must be installed before the secondary components in order for the secondary components to function properly.
  • the primary components may also be selected to be delivered in the first phase in operation 41c.
  • a second set of components that are to be delivered in a second phase are selected and presented by indicia coding the same in a manner unique with respect to the indicia coding of the first set of components.
  • Such second set of components may include some or all of the secondary components found in operation 41b.
  • an exemplary first set of components is identified in the legend under "First Delivery”.
  • second and third sets of components are identified in the legend under "Second Delivery” and "Third Delivery”.
  • Operation 20 of Figure 1A includes indicia coding for effectively comparing a plurality of entities which, in the present description, may refer to any organization including, but not limited to vendors, companies, and/or any other community or the like.
  • the present method may allow architecture definition and/or software/vendor assessment.
  • the components of the system are indicia coded in order to compare the services or products such as software of prospective third- party vendors who may stand alone, be part of a partnership, etc.
  • operation 43 of Figure IF determines the structure and/or organization of a current network framework.
  • Operation 44 displays a graphical depiction of the current network framework and a plurality of components thereof, such as the graphical depiction shown in Figure IL.
  • a comparative analysis of the vendors is presented with indicia coding that highlights aspects of (i.e., services provided by) the vendors. See operation 45.
  • the presentation of the comparative analysis is accomplished in operation 45a of Figure 1F-1 by assigning each vendor a unique indicia coding.
  • a database is created that includes all of the products and services of at least two vendors of web-based products or services. The products and services in the database are compared to the components of the network framework in operation 45c.
  • each component that matches a service or product offered by a vendor is indicia coded on the graphical representation created in operation 44, with the indicia coding corresponding to the vendor of the service. Then a visual comparison of the services offered by each vendor in relation to the entire network framework may be made.
  • Figure IM shows one way the present method may be implemented.
  • various vendors may be represented by a unique corresponding indicia coding, i.e. color, for differentiation purposes. As such, one may assess vendors and third parties as a comprehensive, integrated solution. Further, investment opportunities may be assessed by coding their coverage, strengths, and weaknesses in terms of web architecture framework. For example, the instant method may be used to provide a valuable perspective where new start-up companies are positioned in the overall web architecture solution.
  • Operation 22 of Figure 1A is provided for effectively conveying which of the components and capabilities of a system have products and services available for sale, thereby serving as a selling tool. This is accomplished by indicia coding the components of the system in order to show which of the components has services and products that can be provided.
  • operation 46 determines the organization and components of an existing network framework.
  • a database is also created which includes a compilation of all of the products and/or services offered by the various components.
  • Operation 47 defines a plan which includes improvements to the existing network framework. For example, in operation 47a of Figure IG— 1, a target market is selected based on buying habits, age, gender or some other criteria.
  • a sales program is tailored to appeal to the target market by selecting only specific components having products or services likely to be purchased by the target market. Then, in operation 47c, the products or services related to the chosen components are chosen to be offered for sale.
  • a pictorial representation of the existing network framework and a plurality of components of the existing network framework are displayed in operation 48.
  • the components of the existing network framework which were chosen according to the plan in operation 47c are indicia coded in order to sell at least one of products and services relating to the chosen components of the system in accordance with the improvements.
  • the pictorial representation of the system displays the components which were not selected under the plan without indicia coding, such as if the products and services of the other components are available for sale though not featured, or such components may not be displayed at all.
  • Figure IM shows an example of operation 22 of Figure 1A.
  • various available components are indicia coded.
  • the available components, or capabilities may be broken down in a bulleted format.
  • Note Figure 1Q which is exemplary of a bulleted list of components. It should be noted that such a list may be provided for any combination of components, including all of the components.
  • the present invention may specifically indicate which specific capabilities are available to potential clients or customers. As such, the present method of indicia coding is effective in showing such prospective clients or customers a comprehensive view of what it takes to implement solutions. Further, new opportunities may be identified through assessment of the displayed information.
  • the present invention may be used to clearly articulate all the services that would be provided in any type of new business offering.
  • the components of the system are indicia coded in order to convey information regarding building, managing, and/or supporting the various components of the system.
  • various capabilities may be conveyed in any type of business offering.
  • a pictorial representation of an existing system including a plurality of components is displayed in operation 50 of Figure IH.
  • Figure IL shows an example of such a pictorial representation.
  • information relating to building the components of the existing system is presented by indicia coding the components on the pictorial representation. For example, all of the components required to build the other components of the system are differentiated from the other components by the indicia. Thus, the skeleton of the system is presented.
  • Information relating to managing the components of the existing system is conveyed by indicia coding the components on the pictorial representation in operation 52.
  • Operation 53 presents information relating to supporting the components of the existing system by indicia coding the components on the pictorial representation.
  • a database is created having three areas each adapted to contain a group of components of the system.
  • components of the existing system that are used for building the components of the system are selected and placed in a first group of components in the first area of the database. These components are indicia coded on the pictorial representation in operation 51 of Figure IH.
  • components of the existing system that are used for managing the system and its components are selected and placed in a second group of components in the second area of the database.
  • These components are also indicia coded on the pictorial representation, in operation 52 of Figure IH, but with a unique indicia coding.
  • components of the existing system that are used for supporting other components of the system are selected and placed in a third group of components in the third area of the database.
  • These components are indicia coded on the pictorial representation, also with a unique indicia coding, in operation 53 of Figure IH.
  • the present invention may be employed in product development planning to communicate where new products fit into an overall architecture picture. As shown in operation 26 of Figure 1A, this is accomplished by indicia coding the components of the system in order to convey information pertaining to which components of a system products or services relate. As such, the present embodiment identifies where various products or services are focused in a system.
  • Note Figure IM which is representative of an example, where "Vendor 1", “Vendor 2", etc. each represent a service or product.
  • Operation 26 is performed by determining a plurality of network products or services relating to components of a current network framework and presenting the components of the current network framework in a pictorial representation. See operations 54 and 55 of Figure II.
  • Operation 56 identifies the components of the current network framework to which each of the network products or services relate by indicia coding the components.
  • a first database is created in which selected services are compiled. See operation 56a of Figure II— 1.
  • a second database is created in operation 56b.
  • the second database has each of the services offered by the current system grouped by system component.
  • the two databases are compared in operation 56c, and the components which have services matching the services of the first database are listed in operation 56d.
  • the listed components are indicia coded on the pictorial representation in operation 56e.
  • one embodiment of the present invention identifies alliances among various business entities in certain components of a system.
  • the components of the system are indicia coded to indicate in which components of the system alliances exist between various business entities, i.e. companies, etc. This enables one to effectively discern how to use products in the components of the system where such alliances exist.
  • the procedure for performing operation 28 begins by identifying at least one alliance among a plurality of business entities in terms of components of a current network framework.
  • a pictorial representation of the current network framework and the components is displayed in operation 58.
  • Operation 59 conveys the alliance or alliances by indicia coding the components of the current network framework in which the alliance or alliances exist.
  • FIG. 30 of Figure 1A it is shown that one embodiment of the present invention may be used in test planning or the like. This is accomplished by indicia coding the components of the system in order to convey the manner in which the components of the system are to be tested.
  • An example of such technique is shown in Figure IN.
  • the present invention has a broad applicability across all industry groups through customization of the pictorial representation and indicia coding.
  • operation 60 of Figure IK a pictorial representation of an existing network framework including a plurality of components is displayed.
  • the components of the existing network framework are indicia coded in order to convey a plan by which the components of the system are to be tested.
  • one method of performing operation 61 includes devising a plan for testing the system. See operation 61a.
  • the plan may be based on administrator or programmer testing specifications.
  • operation 61b a plurality of components are selected for testing based on the plan.
  • the selected components are then indicia coded on the pictorial representation in operation 61c.
  • the indicia coding may be used to differentiate between base capabilities and technologies, indicate support for Internet Protocol, and/or convey any other aspect of implementation of technology. The present invention thus ensures a comprehensive implementation solution.
  • Figure IR provides an exemplary pictorial representation of various components of a web architecture framework, each component being represented by a box.
  • Three business entities are represented in this example as Business 1, Business2, and Business3.
  • Each business entity has a unique indicia coding, as shown in the legend.
  • Indicia coding is provided in each component box that has related products or services offered by a business entity.
  • the Browser Based Authentication component has all three types of indicia coding.
  • the Virtual Private Networks component has only two types of indicia coding.
  • Figures IS, 1U, and 1W are provided to illustrate the products or services offered by each individual entity.
  • Figures IT, IV, and IX illustrate the particular services provided by Businessl, Business2, and Business3, respectively.
  • Each service has a unique indicia coding, as shown in the legend.
  • Indicia coding is provided in each component box that has a component provided by that service.
  • Business 1 offers 13 types of services.
  • the Secure Browser Communication component of the Web Services component of the Web Architecture Framework is provided by eight of the services offered by Businessl : Netra ISP Server Bundles, System Management Tools, Business/Java Web Servers, News Server/Forum, Directory Services, Business.net, the Browsers, and the Wallet/Card/eCheck Service.
  • Figure 1Y is an exemplary data page which provides even more detail for selected components of the Web Architecture Framework. It should be noted that such data pages may be provided to include each of the various components and subcomponents. Each component box has indicia coding again representative of the services which provide that particular component. Alongside each component are various operations associated with that component. Smaller boxes are provided adjacent each operation, one box for each service providing the main component. If a service performs the particular operation, indicia coding representing that service is provided in one of the boxes adjacent that operation. If the service does not perform the particular operation, its representative indicia coding will not appear in a box adjacent that operation.
  • Figures 1Z through 1AO illustrate exemplary architectures of various components of the systems of Businessl and Business2. These Figures also correlate with the appropriate portions of the following chart.
  • 1.1 Businessl www.businessl .com
  • Businessl offers a variety of products in the hardware, networking, architecture, infrastructure, security and development tool areas. These products are used as the foundation to build applications and systems. Businessl offers limited products with out- of-the-box functionality or application capabilities.
  • Productl Server uses an open and secure architecture to develop business applications.
  • the Productl product family consists of the following components: Productl Studio - a visual integrated development environment tool for developing Java-based applications in Productl and Java. It incorporates wizards and editors for creating web-based applications, including construction of user interface, data access and PACs. It also integrates with source code control, testing and deployment tools.
  • Productl Application Server - a Java- and CORBA-based server that provides state and session management, built-in load balancing, processing of application logic and integration with external databases and enterprise systems.
  • Productl Java Object Framework a framework of reusable Java and JavaBeans objects.
  • a host of Productl Java classes and methods are available out-of-the- box for custom development.
  • Productl Command Center a Java-based application that provides local and remote management and monitoring of the platform in real-time.
  • This management console provides control of the application server, with the ability to configure a range of properties for each server component and the processes within them. It can also distribute components across multiple systems and manage multiple configurations.
  • the Productl product family may be extended through these components:
  • PAC SDK Productl platform that allows developers to build customized Platform Adapter Components (PACs) for external enterprise systems.
  • PACs Businessl provides a PAC for SAP and PeopleSoft. Businessl partners deliver other 3rd party PACs that can be purchased from partners directly. Product Product Details Name/ Category
  • SIMS Internet Mail mail messages in a variety of formats.
  • SIMS also provides a secure Server (SIMS) Java Administration Console for centralized and remote administration, backup and restore features.
  • SIMS is a replacement for the UNIX sendmail program which has been the target of frequent system break-ins.
  • 1.2 Server is a full-featured news server which offers user-focused Server interfaces, streamed feeder/reader design, web-based installation and administration and remote access.
  • the Internet News Server is a component of the Product2 ISP Server suite.
  • Forum Workgroup collaboration tools that allow users to communicate in a heterogeneous environment of Businessl workstations, PCs and Macintosh computers. Forum allows users to share a whiteboard and applications with others and seamlessly transfer files and "chat" with co-workers.
  • Personal Personal WebAccess a customizable, compact web
  • the Browser with an easy way to access the Web and retrieve information from a variety of consumer devices, including screen phones, set-top boxes, and wireless hand-held devices.
  • the browser supports common internet services such as authentication, FTP, applets, audio and media files.
  • HotJava HotJava Browser - a lightweight, customizable browser
  • Product3 A secure, standards-based web server for accessing,
  • Product3 simplifies management of website environments through delegation of administrative privileges such as access rights to administer meta-data components or load-balancing.
  • Java Web Server The first commercially available Java service based on the JavaServer API framework for Java servlets. It uses servlet technology to enable server- side Java applications and provides access control and security features.
  • Java Web Server provides session tracking that provides a mechanism to track how people use and navigate websites. It also provides remote administration and logging features.
  • Directory Services A multi-protocol, scalable global directory for storing information such as user definitions, user profiles, network resource definitions, and configuration parameters. It employs naming, directory, and authentication protocols on top of a shared, distributed, object repository. Users and applications can use the directory to locate and access information from anywhere in the network.
  • JavaWallet Java Electronic Commerce Framework (JECF) is Businessl 's new initiative to create a standard, secure framework within which to conduct business transactions using any combination of currencies 3955
  • Product Product Details Name/ Category and payment instruments such as credit and debit cards, electronic cash and checks, and smart cards.
  • the initial component of the JECF is the Java Wallet, a client- side application that will be distributed as a core component of the Java environment.
  • JavaWallet will allow users of any Java-enabled web browser or operating system to purchase goods and services from JECF-compliant merchant websites.
  • JavaWallet provides a single user interface for electronic transactions, secure from tampering.
  • a consumer uses a Java- enabled browser to navigate an online mall, selects goods and services for purchase, he can access the JavaWallet for home banking and portfolio management.
  • the consumer owns the JavaWallet that will be used to complete purchases and banking transactions.
  • the user may set spending limits and can monitor spending through an auditable transaction log. Privacy of all data is protected through the use of encryption and digital signatures.
  • applets which adhere to the JavaWallet architecture. These applets may include interfaces to payment processing, security services, customer profile services and database services.
  • Java Commerce Business a client side solution for eCommerce transactions.
  • JCC Java Commerce Business
  • JCC provides users with a wallet-like user interface, a database, and a platform that enables a variety of payment instruments and protocols.
  • Commerce JavaBeans - enables developers to write components to extend JCC functionality such as interfacing with payment servers and other transaction protocols.
  • Gateway Security Model allows a secure shield around protected APIs and components.
  • Java Card TT A card that is embedded with either a microprocessor and a
  • echeck Server A server that allows the use of electronic checks for 1.8 transactions.
  • Businessl echeck server verifies digital signatures, processes checks according to the business rules of the bank (e.g. a check over $25,000 requires two signatures), returns invalid checks, and settles all valid checks.
  • Product4 A range of security-based hardware and software that offers
  • the Product4 Product Suite includes the following components:
  • Product4 Secure Net a complete set of products designed to establish perimeter defense, secure intranets, secure remote access, and secure extranets including the following:
  • Product4 EFS - firewall and security server software that screens network traffic as defined by the organization's security policy. It also acts as a high- speed encryption server to protect information going over Product Product Details te or
  • 1.1 1 ISP Server provides users with a bundle of platform extensions Bundle including the following:
  • Internet Administrator provides secure, remote management of distributed ISP services
  • Internet Services Monitor monitors Internet services, identifies and manages network problems
  • Directory Services provides a multi ⁇ protocol, global directory for storing information
  • Host Configuration provides ISP host configuration features including quick, repeatable installation, Product2 security configuration, intrusion detection, server process monitoring, and log file management.
  • Product4 SKIP provides encryption and key management capabilities which enables PCs, workstations, and servers to achieve secure/authenticated communication
  • Product ⁇ Enterprise Manager - Business 1 's distributed network management foundation that manages large heterogeneous networks.
  • Product ⁇ Ente ⁇ rise Manager supports and manages Java applications built for various network types.
  • Product ⁇ Site Manager & Product ⁇ Domain Manager - offer centralized management for networks of up to 100 nodes.
  • Product features include the following:
  • JDMK Java Dynamic Management Kit
  • JMAPI Java Management API
  • Business2 Communications offer a variety of server products that support the development and deployment of Internet applications.
  • Business2 also provides applications with out-of-the-box functionality such as electronic commerce.
  • Productl eCommerce applications with legacy systems It provides for the sending, receiving, and encrypted transmission of documents among heterogeneous systems of trading partners over the Internet.
  • SellerProductl An application designed to support advanced business-to-business selling over the Internet.
  • SellerProductl allows for the enforcement of trading partner agreements and business rules.
  • SellerProductl provides the capability to create company-specific catalogs which can be set up to present different products to different users based upon purchase eligibility.
  • SellerProductl includes search features, management tools, and order management (including tax, shipping, and payment services.)
  • PublishingProductl An application that utilizes both passive and active customer profiling capabilities to create targeted advertising, and to deliver personalized information for superior customer service.
  • Content management tools are combined with application development tools to allow to host and deploy multiple sites.
  • a single shopping cart for each customer forms filled with predefined account information, tax calculation and discounts, product availability, and up- to-date order status information.
  • Payment systems catalog creation and administration tools, an order management system, and rapid customization of a site's business processes through modifiable business rules and presentation templates.
  • Search capabilities including hierarchical menus, parametric searches by attribute, and simple keyword searches.
  • IBPP Internet bill presentment and payment
  • TradingProductl - A commerce exchange application that enables trading partners of varying size and technical sophistication to transact business over the Internet through in-context document turnaround capabilities, and customizable prepackaged forms.
  • Bussiness2 Process Manager Enables ente ⁇ rises to automate and modify business processes such as contract negotiation, Products bidding and contractor management.
  • Business2 Process Manager supports the development and deployment of processes across extranets and intranets, and manages them for overall efficiency and precision.
  • Process Manager has four components:
  • Business2 Process Manager Builder a visual design environment for designing business processes using intuitive features such as drag-and-drop functionality and pick lists. Processes may be stored in Business2's Directory Server.
  • Business2 Process Manager Engine the server-based engine that hosts processes designed with PM Builder.
  • Compass Server A profiling server that offers search, browse and profiling capabilities to help administrators gather and organize ente ⁇ rise resources scattered across intranets so that users can find and retrieve information more efficiently.
  • Media Server An audio publishing, broadcasting, and receiving system that enables the creation and delivery of media-rich information, both inside and outside the ente ⁇ rise.
  • Media server includes four components:
  • Media Server - play real-time audio feeds, provide on-demand access to pre-recorded audio clips, and synchronize audio with HTML documents, Java applets, and JavaScript applications.
  • Media Proxy Server - a transparent intermediary between Media Player and Media Servers which provides safe passage through the firewall for audio connections and operates as a reverse-proxy outside a firewall.
  • Business3 primarily provides Internet services for web users. It offers a variety of services including internet access, portal sites, links to online shopping, and chatting. Business3 offers a very limited set of Internet products as it focuses on providing Internet services.
  • a preferred embodiment of a system in accordance with the present invention is preferably practiced in the context of a personal computer such as an IBM compatible personal computer, Apple Macintosh computer or UNIX based workstation.
  • a representative hardware environment is depicted in Figure 2A, which illustrates a typical hardware configuration of a workstation in accordance with a preferred embodiment having a central processing unit 70, such as a microprocessor, and a number of other units interconnected via a system bus 71.
  • the workstation shown in Figure 2A includes a Random Access Memory (RAM) 73, Read Only Memory (ROM) 74, an I/O adapter 75 for connecting peripheral devices such as disk storage units 76 to the bus 71, a user interface adapter 78 for connecting a keyboard 79, a mouse 80, a speaker 81, a microphone 82, and/or other user interface devices such as a touch screen (not shown) to the bus 71, communication adapter 83 for connecting the workstation to a communication network (e.g., a data processing network) and a display adapter 84 for connecting the bus 71 to a display device 85.
  • RAM Random Access Memory
  • ROM Read Only Memory
  • I/O adapter 75 for connecting peripheral devices such as disk storage units 76 to the bus 71
  • a user interface adapter 78 for connecting a keyboard 79, a mouse 80, a speaker 81, a microphone 82, and/or other user interface devices such as a touch screen (not shown) to the bus 71
  • the workstation typically has resident thereon an operating system such as the Microsoft Windows NT or Windows/95 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system.
  • OS Microsoft Windows NT or Windows/95 Operating System
  • IBM OS/2 operating system the IBM OS/2 operating system
  • MAC OS the MAC OS
  • UNIX operating system a preferred embodiment is written using JAVA, C, and the C++ language and utilizes object oriented programming methodology.
  • Object oriented programming (OOP) has become increasingly used to develop complex applications. As OOP moves toward the mainstream of software design and development, various software solutions require adaptation to make use of the benefits of OOP. A need exists for these principles of OOP to be applied to a messaging interface of an electronic messaging system such that a set of OOP classes and objects for the messaging interface can be provided.
  • OOP is a process of developing computer software using objects, including the steps of analyzing the problem, designing the system, and constructing the program.
  • An object is a software package that contains both data and a collection of related structures and procedures. Since it contains both data and a collection of structures and procedures, it can be visualized as a self-sufficient component that does not require other additional structures, procedures or data to perform its specific task.
  • OOP therefore, views a computer program as a collection of largely autonomous components, called objects, each of which is responsible for a specific task. This concept of packaging data, structures, and procedures together in one component or module is called encapsulation.
  • OOP components are reusable software modules which present an interface that conforms to an object model and which are accessed at run-time through a component integration architecture.
  • a component integration architecture is a set of architecture mechanisms which allow software modules in different process spaces to utilize each others capabilities or functions. This is generally done by assuming a common component object model on which to build the architecture. It is worthwhile to differentiate between an object and a class of objects at this point.
  • An object is a single instance of the class of objects, which is often just called a class.
  • a class of objects can be viewed as a blueprint, from which many objects can be formed.
  • OOP allows the programmer to create an object that is a part of another object.
  • the object representing a piston engine is said to have a composition-relationship with the object representing a piston.
  • a piston engine comprises a piston, valves and many other components; the fact that a piston is an element of a piston engine can be logically and semantically represented in OOP by two objects.
  • OOP also allows creation of an object that "depends from” another object. If there are two objects, one representing a piston engine and the other representing a piston engine wherein the piston is made of ceramic, then the relationship between the two objects is not that of composition.
  • a ceramic piston engine does not make up a piston engine. Rather it is merely one kind of piston engine that has one more limitation than the piston engine; its piston is made of ceramic.
  • the object representing the ceramic piston engine is called a derived object, and it inherits all of the aspects of the object representing the piston engine and adds further limitation or detail to it.
  • the object representing the ceramic piston engine "depends from" the object representing the piston engine. The relationship between these objects is called inheritance.
  • the object or class representing the ceramic piston engine inherits all of the aspects of the objects representing the piston engine, it inherits the thermal characteristics of a standard piston defined in the piston engine class.
  • the ceramic piston engine object overrides these ceramic specific thermal characteristics, which are typically different from those associated with a metal piston. It skips over the original and uses new functions related to ceramic pistons.
  • Different kinds of piston engines have different characteristics, but may have the same underlying functions associated with it (e.g., how many pistons in the engine, ignition sequences, lubrication, etc.).
  • a programmer would call the same functions with the same names, but each type of piston engine may have different/overriding implementations of functions behind the same name. This ability to hide different implementations of a function behind the same name is called polymo ⁇ hism and it greatly simplifies communication among objects.
  • composition-relationship With the concepts of composition-relationship, encapsulation, inheritance and polymo ⁇ hism, an object can represent just about anything in the real world. In fact, our logical perception of the reality is the only limit on determining the kinds of things that can become objects in object-oriented software. Some typical categories are as follows: • Objects can represent physical objects, such as automobiles in a traffic-flow simulation, electrical components in a circuit-design program, countries in an economics model, or aircraft in an air-traffic-control system.
  • Objects can represent elements of the computer-user environment such as windows, menus or graphics objects.
  • An object can represent an inventory, such as a personnel file or a table of the latitudes and longitudes of cities.
  • An object can represent user-defined data types such as time, angles, and complex numbers, or points on the plane.
  • OOP allows the software developer to design and implement a computer program that is a model of some aspects of reality, whether that reality is a physical entity, a process, a system, or a composition of matter. Since the object can represent anything, the software developer can create an object which can be used as a component in a larger software project in the future.
  • OOP enables software developers to build objects out of other, previously built objects. This process closely resembles complex machinery being built out of assemblies and sub-assemblies. OOP technology, therefore, makes software engineering more like hardware engineering in that software is built from existing components, which are available to the developer as objects. All this adds up to an improved quality of the software as well as an increased speed of its development.
  • C++ is an OOP language that offers a fast, machine-executable code.
  • C++ is suitable for both commercial-application and systems-programming projects.
  • C++ appears to be the most popular choice among many OOP programmers, but there is a host of other OOP languages, such as Smalltalk, Common Lisp Object System (CLOS), and Eiffel. Additionally, OOP capabilities are being added to more traditional popular computer programming languages such as Pascal.
  • Encapsulation enforces data abstraction through the organization of data into small, independent objects that can communicate with each other. Encapsulation protects the data in an object from accidental damage, but allows other objects to interact with that data by calling the object's member functions and structures.
  • Subclassing and inheritance make it possible to extend and modify objects through deriving new kinds of objects from the standard classes available in the system. Thus, new capabilities are created without having to start from scratch.
  • Polymo ⁇ hism and multiple inheritance make it possible for different programmers to mix and match characteristics of many different classes and create specialized objects that can still work with related objects in predictable ways.
  • Class hierarchies and containment hierarchies provide a flexible mechanism for modeling real-world objects and the relationships among them.
  • class libraries allow programmers to use and reuse many small pieces of code, each programmer puts those pieces together in a different way.
  • Two different programmers can use the same set of class libraries to write two programs that do exactly the same thing but whose internal structure (i.e., design) may be quite different, depending on hundreds of small decisions each programmer makes along the way.
  • similar pieces of code end up doing similar things in slightly different ways and do not work as well together as they should.
  • Class libraries are very flexible. As programs grow more complex, more programmers are forced to adopt basic solutions to basic problems over and over again.
  • a relatively new extension of the class library concept is to have a framework of class libraries. This framework is more complex and consists of significant collections of collaborating classes that capture both the small scale patterns and major mechanisms that implement the common requirements and design in a specific application domain. They were first developed to free application programmers from the chores involved in displaying menus, windows, dialog boxes, and other standard user interface elements for personal computers.
  • Frameworks also represent a change in the way programmers think about the interaction between the code they write and code written by others.
  • the programmer called libraries provided by the operating system to perform certain tasks, but basically the program executed down the page from start to finish, and the programmer was solely responsible for the flow of control. This was appropriate for printing out paychecks, calculating a mathematical table, or solving other problems with a program that executed in just one way.
  • event loop programs require programmers to write a lot of code that should not need to be written separately for every application.
  • the concept of an application framework carries the event loop concept further. Instead of dealing with all the nuts and bolts of constructing basic menus, windows, and dialog boxes and then making these things all work together, programmers using application frameworks start with working application code and basic user interface elements in place. Subsequently, they build from there by replacing some of the generic capabilities of the framework with the specific capabilities of the intended application.
  • Application frameworks reduce the total amount of code that a programmer has to write from scratch.
  • the framework is really a generic application that displays windows, supports copy and paste, and so on, the programmer can also relinquish control to a greater degree than event loop programs permit.
  • the framework code takes care of almost all event handling and flow of control, and the programmer' s code is called only when the framework needs it (e.g., to create or manipulate a proprietary data structure).
  • a programmer writing a framework program not only relinquishes control to the user (as is also true for event loop programs), but also relinquishes the detailed flow of control within the program to the framework. This approach allows the creation of more complex systems that work together in interesting ways, as opposed to isolated programs, having custom code, being created over and over again for similar problems.
  • a framework basically is a collection of cooperating classes that make up a reusable design solution for a given problem domain. It typically includes objects that provide default behavior (e.g., for menus and windows), and programmers use it by inheriting some of that default behavior and overriding other behavior so that the framework calls application code at the appropriate times.
  • default behavior e.g., for menus and windows
  • Behavior versus protocol Class libraries are essentially collections of behaviors that you can call when you want those individual behaviors in your program.
  • a framework provides not only behavior but also the protocol or set of rules that govern the ways in which behaviors can be combined, including rules for what a programmer is supposed to provide versus what the framework provides.
  • a framework embodies the way a family of related programs or pieces of software work. It represents a generic design solution that can be adapted to a variety of specific problems in a given domain. For example, a single framework can embody the way a user interface works, even though two different user interfaces created with the same framework might solve quite different interface problems.
  • a preferred embodiment of the invention utilizes HyperText Markup Language (HTML) to implement documents on the Internet together with a general-pu ⁇ ose secure communication protocol for a transport medium between the client and the Newco.
  • HTTP or other protocols could be readily substituted for HTML without undue experimentation.
  • Information on these products is available in T. Berners-Lee, D. Connoly, "RFC 1866: Hypertext Markup Language - 2.0" (Nov. 1995); and R. Fielding, H, Frystyk, T. Berners-Lee, J. Gettys and J.C.
  • HTML Hypertext Transfer Protocol — HTTP/ 1.1: HTTP Working Group Internet Draft
  • HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of domains. HTML has been in use by the World-Wide Web global information initiative since 1990. HTML is an application of ISO Standard 8879; 1986 Information Processing Text and Office Systems; Standard Generalized Markup Language (SGML). To date, Web development tools have been limited in their ability to create dynamic
  • Custom "widgets” e.g., real-time stock tickers, animated icons, etc.
  • client-side validation e.g., offloading appropriate processing onto the client for improved performance.
  • Dynamic, real-time Web pages can be created. Using the above-mentioned custom Ul components, dynamic Web pages can also be created.
  • Sun's Java language has emerged as an industry-recognized language for "programming the Internet.”
  • Sun defines Java as: "a simple, object-oriented, distributed, inte ⁇ reted, robust, secure, architecture-neutral, portable, high-performance, multithreaded, dynamic, buzzword-compliant, general-pu ⁇ ose programming language.
  • Java supports programming for the Internet in the form of platform-independent Java applets.”
  • Java applets are small, specialized applications that comply with Sun's Java Application Programming Interface (API) allowing developers to add "interactive content” to Web documents (e.g., simple animations, page adornments, basic games, etc.).
  • API Java Application Programming Interface
  • Applets execute within a Java-compatible browser (e.g., Netscape Navigator) by copying code from the server to client. From a language standpoint, Java's core feature set is based on C++. Sun's Java literature states that Java is basically, "C++ with extensions from Objective C for more dynamic method resolution.” Another technology that provides similar function to JAVA is provided by
  • ActiveX includes tools for developing animation, 3-D virtual reality, video and other multimedia content.
  • the tools use Internet standards, work on multiple platforms, and are being supported by over 100 companies.
  • the group's building blocks are called ActiveX Controls, small, fast components that enable developers to embed parts of software in hypertext markup language (HTML) pages.
  • ActiveX Controls work with a variety of programming languages including Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic programming system and, in the future, Microsoft's development tool for Java, code named "Jakarta.”
  • ActiveX Technologies also includes ActiveX Server Framework, allowing developers to create server applications.
  • ActiveX could be substituted for JAVA without undue experimentation to practice the invention.
  • FIG. 2B is an illustration of the Integrated Development Environment Architecture (IDEA).
  • the Integrated Development Environment Architecture provides a development environment framework and associated guidelines that reduce the effort and costs involved with designing, implementing, and maintaining an integrated development environment.
  • IDEA takes a holistic approach to the development environment by addressing all three Business Integration components: organization, processes, and tools.
  • the development environment is a production environment for one or several systems development projects as well as for maintenance efforts. It requires the same attention as a similarly sized end-user execution environment.
  • the pu ⁇ ose of the development environment is to support the tasks involved in the analysis, design, construction, and maintenance of business systems, as well as the associated management processes.
  • the environment should adequately support all the development tasks, not just the code/compile/test/debug cycle. Given this, a comprehensive framework for understanding the requirements of the development environment is be used.
  • the investment required to design, set up, and tune a comprehensive, good development and maintenance environment is typically several hundred development days. Numbers between 400 and 800 days are commonly seen, depending on the platforms, target environment complexity, amount of reuse, and size of the system being developed and maintained.
  • DEVELOPMENT ORGANIZATION FRAMEWORK Figure 2C is an illustration showing a Development Organization Framework in accordance with one embodiment of the present invention.
  • the development organization's size, structure, experience, and maturity should strongly influence the choice of tools and the way the tools are integrated. If this link is not understood, the benefit of tool support will be minimal in many areas, and may significantly reduce productivity.
  • the Business Integration Methodology provides valuable information on organizational issues.
  • RNA profiles deliverable consists of statements about the responsibilities, accountability, and authority of each of the positions in the development organization. These statements define the role of each position in terms of:
  • FIG. 3 is an illustration showing a security organization according to one embodiment of the present invention.
  • a Security Management Team may have a security management 300, under which are an administration team 302, a projects & planning team 304, and a business process security team 306.
  • the size of the Security Management team, and the way in which it is integrated into the development organization depends on the degree to which security is a factor for each specific environment. For example, the security risks associated with an Internet-based online banking system are far greater than those of a fully isolated client/server system, and therefore warrant a larger team with broader responsibilities and greater influence.
  • the Information Management team is responsible for ensuring that the project's knowledge capital and information resources are managed effectively. This includes:
  • Information Management encompasses Repository management, but generally has a broader scope than merely the repository contents, because most repositories are not capable of holding all the information resources of a project. It is, for example, common to have key project information reside in a combination of repositories, teamware databases, flat files, and paper documents. It is the Information Management team's responsibility to ensure consistency across all these formats.
  • the Information Management team In addition to managing the information for the System Building team, the Information Management team must also manage the information resources of the other management processes - quality management, environment management, and project management.
  • the Information Management team is ultimately responsible for the contents of the repository. They need to have an intimate understanding of the repository structure and the rules that govern how different objects should be stored in the repository. Although most of the input to the repository are entered by designers, the Repository Management team must manage this population process. Rather than taking a policing role on the project, they should work as facilitators - helping the designers do things correctly the first time, thereby maintaining the integrity of the repository. Without strong repository management, the benefits of using a repository quickly diminish.
  • Folders can be very useful in gaining control over the overwhelming amount of information produced on a large project. Their utility greatly increases if they are managed appropriately. This management is based on easy-to-follow, easy-to- enforce standards.
  • the Quality team is responsible for defining and implementing the Quality
  • the Quality Management Approach which means defining what Quality means for the Program Leadership, and then implementing the procedures, standards, and tools required to ensure the delivery of a quality program.
  • the Quality Management Approach addresses concepts such as expectation management, quality verification, process management, metrics, and continuous improvement.
  • the Quality team Since quality is the result of the interaction of many teams working on multiple processes, the Quality team is responsible for ensuring effective cooperation between teams and good integration of the development processes. The Quality team must therefore forge strong links with all the other project teams.
  • the Quality team is not only responsible for ensuring the quality of the system building process.
  • the Quality team is also directly involved in ensuring the quality of the other IDEA management processes.
  • Program & Project Management The Program Management team is responsible for delivering business capability.
  • the Project Management team is responsible for producing a deliverable or set of deliverables. As such, it is responsible for: • Planning and control of delivery
  • Configuration Management team is responsible for defining the approach the program takes to deal with scope, change control, version control, and migration control, and for putting in place the policies, processes, and procedures required to implement this approach.
  • Delivering a system on a release-based approach means delivering the system in a series of consecutive releases, increasing or refining functionality progressively.
  • Some of the main drivers to such an approach include: • To release business benefits early
  • the Release Management team is responsible for:
  • FIG. 4 is an illustration showing the Environmental Management Team responsibilities.
  • the Service Group 402 serves as a single point of contact for developers. It interfaces with the Architecture team to provide answers to questions from developers. To avoid adding overhead to the issue resolution process, the support group must be staffed adequately to ensure that all questions are answered. For example, the support group should recruit people from the Technology Infrastructure team at the completion of
  • Problem Management is concerned with the discrepancies that result from the testing process and the management of design problems detected during verification or validation steps throughout the development process.
  • the Problem Management team is responsible for defining the problem tracking and solution process, and for providing tools and procedures to support the solution process.
  • Application Team The Application team 500 consists of three separate subteams: Application Architecture 502, Application Development 504, and System Test 506.
  • Figure 5 is an illustration showing the Application Team structure and responsibilities.
  • the structure of the Application team evolves as the development process continues - as the development of the application architecture components is completed, the Application Architecture team's roles may change. While the team continues maintaining the application architecture components, some team members may be deployed to the Application Development team. Here their roles can include helping application developers to correctly use the architecture components, providing development support, and performing code reviews, and so forth.
  • the technology infrastructure evolves throughout the project and responsibility for managing and evolving the infrastructure must be clearly defined. Therefore, rather than having a single amo ⁇ hous 'technical team' (responsible for operations, support, architecture evolution, and more), it is important to define a dedicated technology infrastructure team. By allowing the technology infrastructure team to focus on the technology infrastructure, rather than the day to day running of the environment, the project increases the chances that the technology infrastructure will provide good support for the business applications.
  • the Technology Infrastructure team is the team that will implement the IDEA framework.
  • the Technology Infrastructure team is responsible for:
  • the Development Process Model is a framework that facilitates the analysis of the many concurrent processes of systems development. This analysis helps understand process interaction, which, in turn, affects organizational interaction and defines a need for tools integration.
  • the Process model is simple - at its core is the system building process, which is surrounded by eight key management processes.
  • the core activity - systems building depends strongly on support from the surrounding management processes, which all affect each other: a) Information Management manages the information that supports the entire project - information that is used both in systems building and in other management processes b) Security Management covers all areas of development security, from coding standards, to security verification. c) Quality Management pertains to all areas of the development environment d) Program and Project Management must manage all the management processes in addition to managing the systems building process e) Environment Management supports the environment where management processes are performed, and where systems are being built f) Release Management manages the simultaneous development of multiple releases g) Configuration Management, often closely linked with release management covers the version control, migration control and change control of system components such as code and its associated documentation h) Problem Management pertains to the problem tracking and solution process
  • Standards specify what the results should look like. They may include industry standards and more formal (de jure) standards, such as POSIX compliance, but most standards are project specific and determine, for example, how to structure and name system components and where to place system components. Standards make it possible for a large team to exchange information effectively and to work productively together.
  • Procedures specify how to perform a task. They are generally guided by the methodology but provide information at a lower level of detail. They are highly environment-specific, and take into account the organization, the standards, and the tools in the environment. Procedures often specify the techniques to be used. They may specify which tools to use and how to use the tools that support these techniques.
  • Samples can sometimes convey a message much faster than pages of explanatory prose.
  • Sample programs are generally very useful.
  • Other samples may include logs, which demonstrate interaction with tools, a sample change request, or a sample request for technical support. Samples can sometimes be created efficiently by taking screen dumps. This can be much faster than specifying what the screen should look like in theory.
  • Security requirements are the outcome of the security Risk Assessment. This is the process of identifying business risks, identifying system vulnerabilities or weaknesses that can impact those risks, and recommending mechanisms to control the vulnerabilities. Specific confidentiality, integrity and availability requirements for the new system and the development environment are defined through this process.
  • Security standards, guidelines and procedures provide security direction to the implementation. They will help define how the security requirements developed through the Risk Assessment must be addressed in all areas of the development environment. They will include security standards for the development environment infrastructure, procedures for the development processes, standards for the design of the security architecture and security guidelines for programming. It is especially important to ensure the security of the development environment because if these systems are broken into and back doors are introduced, it may lead to later compromise of the production system. It will be the responsibility of all developers that these security controls are implemented and adhered to throughout the development process.
  • periodical security audits should be arranged, in order to verify that the processes and architecture and application components that are being developed conform to security proven practices. This may be done by an external body specializing in security (such as Global TIS - Security) in the form of interviews, architecture and code reviews, and automated tool assessment.
  • an external body specializing in security such as Global TIS - Security
  • Information Management generally involves Repository Management, Folder Management and, where applicable, Object Management and Media Content Management.
  • SLA Service Level Agreement
  • Repository Management includes activities such as:
  • repositories do not provide sufficient versioning functionality, it is common to have more than one repository on large projects. Typically, there may be one repository for development, one for system test, and one for production. This allows better control, but also requires significant resources to move repository objects from the development environment to the system test environment.
  • the medium-sized project has a potential for productivity gains. If these gains are to be realized, great care must be taken when making corrections during system test.
  • any error analysis involving repository objects must take into account the possibility that these objects could have changed since the previous migration to system test. This situation can be managed by meticulously maintaining a comprehensive change log.
  • a single development environment may have to deal with multiple repositories:
  • repositories may be distributed over different locations. In order to keep these repositories synchronized, well defined development processes must be implemented.
  • Requests for data element changes can be forwarded using a database or paper- based system. Based on functional and technical knowledge, the repository administrator evaluates the requests and may involve other teams to make appropriate decisions.
  • the database used to request data element changes during design and programming should be separate from the project's change request database. This will simplify and speed up the change process. When data elements have to be changed during system test, however, the impact can be much greater, and the regular change request database should be used. Whenever a data element is changed, impact analysis must be performed to understand the side-effects. Where-used reports are useful to determine these side- effects.
  • the repository manager must be able to obtain the list of direct references and the list of all components affected indirectly (transitive closure). In the latter case, a message based on a record containing a group, which makes reference to a changed data element is considered to be indirectly affected by the change.
  • project-specific standards should exist for defining repository objects. These standards can form the basis for a repository validation program, which can run through the entire repository and report on detected deviations from standards. In some cases, this program can also enforce the standard.
  • Mass changes to the repository can be performed when the validation reports show the occurrence of many standards violations that follow a common pattern. This may occur in cases where:
  • Certain reports should be run daily, such as the list of new data elements or modified data elements. These reports can serve as an audit trail of changes and can be used to communicate changes to the entire team. Procedures should specify which reports are run daily and what their distribution should be. The Repository Management team performs certain analyses repeatedly. Standard analyses such as impact analyses should be specified in detail to facilitate staffing flexibility.
  • Folders can be organized by type of component so that one folder contains all the include files, one folder contains the source modules, one folder contains executables, and so on.
  • Folders can also be organized functionally so that all the common components reside in one folder and each application area stores its components in its own folder.
  • scratch folders may be useful in certain contexts, the proliferation of miscellaneous folders with cryptic names can make it very difficult to navigate the information.
  • Some useful guidelines include:
  • each folder either in a central location, or in the form of a readme type file within the folder itself.
  • the high-level documentation should include the pu ⁇ ose of the folder and the kinds of contents it should hold.
  • media content means that it cannot be treated in the same way as 'standard' formats, such as source code or design documentation.
  • the major differentiating factors are its sheer volume (media files can range from a Kilobyte to multiple Gigabytes), and the complexity of its associated formats (i.e. it is not easy to 'look into' a media file and understand its contents). For this reason, some of the processes that support multimedia content management must be handled differently.
  • Storage management concerns the methods of storing and retrieving media content.
  • the cost of data storage may be decreasing, but it is still the case that for large volumes of media it is often uneconomical to store everything on-line. For this reason, processes must be implemented to manage where data should be stored, and how it may betransitioned from one location to another.
  • Metadata Management Data about the media that is being stored is an important commodity that must be managed. As the volume of media content grows, it is vital to be able to understand characteristics of the media, in order to be able to manage it correctly. Examples of metadata include:
  • Media type for example, MPEG video, JPEG image
  • Media settings for example, sample rate, resolution, compression attributes
  • Media source for example, Source, author, creation date
  • Object Management processes are very similar to those involved with Repository Management. However, they should promote reuse through specific processes:
  • the objective of these tasks is to ensure that, early in the life of a program, program leadership explicitly defines what quality means for the program. This results in the production of the quality plan. Then the infrastructure and processes are put in place to ensure delivery of a quality program.
  • the Quality Management Approach defines the following processes:
  • Processes and deliverables are key candidates.
  • the V-model is the preferred method by which the quality verification process is managed.
  • the V-model ensures that deliverables are verified, validated, and tested. It is based on the concept of stage containment (enforcing for a given deliverable the identification of the problems before it goes to the next stage) and entry and exit criteria (describes conditions in which a deliverable passes from one stage to another).
  • the quality verification process owner may not be responsible for executing the V- model, but is responsible for making sure that the V-model is in place and complied with.
  • Sample metrics include:
  • the first stage of the Continuous Improvement Process is to capture continuous improvement opportunities. These may include:
  • the CIP then plans and manages improvement related activities such as: • Define explicit criteria for assigning priority
  • CMM Capability Maturity Model
  • the CMM provides a software organization with guidance on how to gain control over their processes for developing and maintaining software and how to evolve toward a culture of software engineering and management excellence.
  • the model defines five levels of software process maturity as well as how to move from one level to the level above.
  • the V-model is a framework that promotes stage containment by organizing the verification, validation, and testing in and across all the methodology elements throughout the delivery phase of the Business Integration Methodology.
  • the IMPROVE Job Aid (provided with the BIM Guide) describes the process for solving problems or improving a process. In this Job Aid, you will find an introduction to the five step process your team can use to solve both simple and complex problems.
  • the Quality Action Team (QAT) is responsible for applying IMPROVE to improve a process or solve a problem.
  • Program Management focuses on the continuous oversight needed to support the delivery of business capability through multiple projects and releases. Appropriate disciplines, techniques, and tools are used to plan and organize the work, and to manage the incremental delivery of the new business capability.
  • Program Management consists of three major activities, each split into a number of task packages. a) Plan Program
  • Project Management focuses on providing specific deliverables through balanced management of scope, quality, effort, risk, and schedule. Project Management processes follow a cycle of planning the project's execution, organizing its resources, and controlling its work. The Project Management team oversees all other teams within the development environment.
  • Project Management comprises a single activity containing a number of task packages. a) Plan and Manage Project * 0920 - Plan Project Execution
  • Configuration Management is not only the management of the components in a given environment to ensure that they collectively satisfy given requirements, but it is the management of the environment itself.
  • the environment consists not only of system components, but also of the maintenance of these components and the hardware, software, processes, procedures, standards, and policies that govern the environment.
  • Configuration Management in systems building consists of four major interdependencies:
  • Packaging is the combination of systems software and application component configurations (source code, executable modules, DDL and scripts, HTML) together with their respective documentation. It may also include the test-data, test scripts, and other components that must be aligned with a given version of the configuration.
  • Packaging allows the grouping of components into deliverable packets of application software that can be developed, tested, and eventually delivered to the production environment.
  • Packaging defines the underlying architecture that drives version, change, and migration control. Each of these control processes defines how changes to configuration packages are versioned and migrated to the various development and test phases in the systems development life cycle.
  • a sample packaging strategy would take into consideration some of the following factors in determining a unique method to handle a given configuration packet in terms of version, change, and migration control:
  • Base package type - identifies the various types of application components that are developed during systems building such as executables, JCL,
  • HTML scripts HTML scripts, and Java applets.
  • Package release type identifies the types of commonality that components can have. There are usually four basic types of components that are developed during systems building: • Technology architecture packages - these packages are developed by the
  • Application packages these packages are the most rudimentary of all packages developed. They consist of basic application components developed by application developer
  • Package platform type - identifies the eventual delivery platform of the package. Identifying this early on in development and encapsulating this information within the package definition, allows developers to envisage the production environment at an early stage during the systems development life cycle.
  • a configuration management cube can be defined, which uniquely identifies version, change, and migration control characteristics of a given package.
  • the cube can be used to implement a table-driven configuration management control system for all software developed on the program.
  • the configuration control system consists of version and migration control. Therefore, the cube defines all processes associated with version control and migration of a package.
  • Version control and compatibility are key considerations when managing these packages. Note that version control not only applies to software components, but also to all components of a given package, including test scripts, test data, and design documentation. It is also of great importance to keep track of which version is in which environment. If incompatibilities are discovered, it must always be possible to "roll back" to a previous consistent state, that is, to revert to an earlier version of one or more components. It must be possible to define releases of a configuration - a list of version numbers, one for each component of the package which together form a consistent configuration. The smallest unit that can be version controlled should be the package as defined in the packaging plan. This ensures that the lowest common denominator in all version control activities is managed at the package level. c) Migration Control (116,)
  • a systems building environment can have many development and test stages. On a large project these may include:
  • Migration of packages or consistent configurations from one stage to another is a central part of Configuration Management.
  • the key to successful migration is the knowledge of what constitutes each stage. Examples of migration include:
  • FIG. 6 is an illustration showing a model migration plan in accordance with one embodiment of the present invention.
  • the Figure 6 model allows the development and testing of architecture components independent of application components.
  • the Technology Architecture team can develop 600, assembly test 602, and system test 604 their components before delivering them to the development environment for the application developers. This ensures that the architecture is thoroughly tested before being used by the Application teams.
  • the model also illustrates the progression of architecture and application components through the systems development life cycle.
  • the application developers can then develop 606, assembly test 608, and system test 610 their components before user acceptance tests 612.
  • the model is a temporal one and thus suggests that architecture must be present at a given stage before the introduction of application components.
  • the version control plan must align with the migration control plan.
  • the version control plan defines the points where version control activities will take place.
  • version control will take place at the development stages, architecture development and unit test, and application development and unit test.
  • Migration control defines how these version control configuration packages will be migrated successfully from one stage to the next until the package is eventually released to the production environment.
  • Change control (118,.
  • Release Management involves coordinating activities that contribute to a release (for example, cross-project management) and the coordination of products that contribute to a release (such as architecture, integration, and packaging). It is concerned with managing a single release rather than cross-release management.
  • the Release Management approach documents critical decisions regarding the management, tracking, and integrity of all components and configurations within a given release.
  • the Release Management approach must be closely coordinated with the definition of the Configuration Management approach and the Problem Management approach. Release Management involves two main components: • The coordination of activities that contribute to a release
  • the coordination of products that contribute to a release is the maintenance of a bill of materials for a release. It is an inventory of all software and hardware components that are related to a given release.
  • the development environment is directly affected by the Release Management strategy. The way a program decides to plan releases affects the complexity of the development environment.
  • FIG. 7 is an illustration showing a single release capability development pipeline in accordance with one embodiment of the present invention.
  • the ability to perform all development stages for a given release can be defined as a development pipeline.
  • the pipeline consists of all development and testing stages necessary to release the software to production.
  • a pipeline consists of all the necessary development and testing stages required to deliver a piece of software to production. Therefore, because of simultaneous development and testing of three code bases, there needs to be three development and testing pipelines that deliver software to production.
  • Figure 8 is an illustration showing a multiple release capability development pipeline in accordance with one embodiment of the present invention.
  • the pipeline strategy for a program must inco ⁇ orate code base synchronization.
  • FIG. 9 is an illustration showing a multiple release capability development pipeline with code base synchronization among three pipelines.
  • MODE Management Of Distributed Environments
  • the Environment Management component described here uses MODE as a framework, adopts MODE terminology, and focuses on those management tasks, which are particularly important in the development environment.
  • the development environment is simpler than the production environment. It is, for example, generally smaller in terms of the number of hardware components and the number of locations. In other respects, however, the development environment is more complex. For example, the amount of change in this environment is generally higher than in the production environment. In fact, the environment can be so fluid that extreme care must be taken to maintain control. On a large engagement, one dedicated technical support person per ten designers and programmers is recommended. The greatest need for technical support is generally during detailed design and programming. It is, however, necessary to start building the technical support function before detailed design. All processes that are performed by the Environment management team must be documented in a centralized database that allows quick and easy reference. Service Management (122)
  • Service Management provides the interface between the Environment Management team, the Development teams, and external vendors or service providers. It manages the level of service that is provided to the developers. In order to maintain this service, three areas must be managed:
  • SLAs Service Level Agreements
  • the Environment Management team is responsible for providing the specified level of service, but frequently relies on external vendors and suppliers to perform certain tasks.
  • hardware service is typically provided by the hardware vendor.
  • the Environment Management team must ensure that external vendors provide their services as required. This generally means establishing a contract with the vendor and following up that the contract is respected.
  • the relationship between the Environment Management team and external vendors becomes less formalized (for example, Internet Service Providers, mass market software vendors), it becomes more difficult to provide guarantees on the level of service that will be delivered.
  • Help Desk The Help Desk function is an important part of the interface between the Service Management group and the developers. The Help Desk makes sure that questions are answered and requests serviced in a timely manner by the right people. In a complex, leading-edge environment, the Help Desk is crucial to maintaining productivity.
  • the Help Desk needs particular focus when: • The system software is immature
  • Efficient searches in the Help Desk database can, in some cases, be greatly facilitated by extending the basic functionality of the Help Desk tool. This can be achieved, for example, by adding a smart word search capability on top of the Help Desk history database.
  • Help Desk Comprehensive training must be given to Help Desk personnel in order to ensure the best possible level of service to the developers.
  • the Help Desk must be prepared to coordinate the activities of external suppliers to solve problems. This occurs when several new versions of hardware and system software are introduced, and compatibility issues arise. Part of the coordination is the tracking of request IDs, which refer to the same question but which are assigned differently by each supplier.
  • a contacts database with the following information is useful:
  • Defining the SLA, with its specific, measurable criteria, is the basis for continuous improvement.
  • the continuous improvement effort may focus on providing the same level of service with fewer resources, or on providing better service.
  • An important part of quality management is ensuring that the Environment Management team understands the key performance indicators for service delivery, that these indicators are monitored, and that all personnel are adequately equipped with the tools and training to fill their responsibilities. While the entire team is responsible for delivering quality, the responsibility for Quality management should be assigned to a specific individual on the Environment Management team.
  • Control tasks may include checking and archiving activity logs. Standards and procedures that describe the control function must be established.
  • the Environment Management team must systematically monitor the development environment to ensure that it is stable, provides adequate response times, and satisfies the needs of the developers. This monitoring involves looking at trends and extrapolating them to anticipate problems with disk capacity, system performance, network traffic, and so forth.
  • Security management involves:
  • the LAN supplier may be willing to take responsibility for LAN support, upgrades, and so on.
  • an existing data processing center may be willing to take responsibility for host operations.
  • Such agreements are very beneficial and make it possible to use project team members more effectively.
  • outsourcing the development environment carries a risk, which can be mitigated by defining a Service Level
  • Managing Change 120
  • the development environment is subject to constant change (for example, the addition of new tools, or changes to code libraries), which needs to be managed carefully.
  • the Managing Change component comprises three sub-components: Controlling Change, Testing Change, and Implementing Change. Controlling Change After planning for and scheduling change, it must be controlled. This ties in closely with Configuration Management. Testing Change
  • Problem Management is generally associated with the discrepancies that result from the testing process, though it may also be applied to the management of design problems detected during verification or validation steps. Problem Management is a crucial process in the system development life cycle. It ensures that quality software is designed, developed, and tested so that initial benefits defined in the business case are in fact realized. A development environment must have a formally defined problem management process to ensure that this objective is met.
  • Formal problem tracking helps to control the analysis and design process by maintaining documentation of all problems and their solutions. Problem tracking improves communication between developers and business representatives, which is particularly helpful in minimizing misunderstandings at later stages of the development cycle.
  • Such formal problem tracking also helps to facilitate the solution process by formalizing a procedure for reviewing, acting on, and solving problems in a timely manner.
  • management can minimize the risk of misunderstandings at a later date.
  • the documentation serves as an audit trail to justify design and implementation decisions.
  • the development process is iterative and can be entered at different stages depending on the complexity of the changes. Small corrections may not require explicit design, and small enhancements may not require any high-level design.
  • the shaded, elliptical labels in the above figure indicate how the development process can be entered depending on the magnitude of the change.
  • the iterative nature of the development process is important since it implies that components of the development environment, which are put in place for design (for example), must be maintained, since they will continue to be used until the end of system test and beyond. Multiple releases of the business application may also be under concurrent development at different stages. This may lead to very active use of design, construction, and testing tools at the same time.
  • Tool support may help enforce standards, and such tools are discussed under Tools - System Building - Analysis & Design
  • the design process includes numerous activities, which range from high-level general considerations to low-level detailed issues.
  • the overall objective of design is to transform functional and technical specifications into a blueprint of the system, one that will effectively guide construction and testing. While requirements analysis and specification deals with what the system must do, design addresses how the system will be constructed. Validating that the design actually meets the requirements for functionality, performance, reliability, and usability is essential.
  • the quality of the design process directly affects the magnitude of the efforts required to construct and test the system, as well as the maintenance effort. Investments in defining high-quality design standards and procedures and integrating tools is therefore particularly important. It may, for example, have a direct impact on the degree of reuse achieved. In addition, adequate training must be provided to ensure that the designers make optimal use of the environment provided.
  • Usability is an important (and often overlooked) consideration in system design. Usability is more than a well-designed user interface - the way in which business processes are modeled, how they are implemented within the system, and how they are presented to the user all contribute to the overall usability of the system. Usability is an iterative process of refinement that results in systems that are easy to learn, efficient, and enjoyable. In the very broadest sense, usability is the thoughtful, deliberate design approach that considers users throughout the solutions-building process, from start to finish. For this reason, usability guidelines should be defined and followed at every stage of system design. This, along with regular usability reviews and tests both internally, and by target user groups (by using prototypes), helps to reduce the risk of a poorly received system.
  • the User Interface has become increasingly important as systems become more and more user-facing. As multimedia technologies evolve allowing the development of richer user interfaces, so the design processes must adapt to reflect these new technologies. The processes that surround the design of media content are similar to that of regular system design, and many of the same issues that apply to designing traditional user interfaces also apply to the design of media content. The major change is the involvement of media content designers - a group of people not traditionally associated with system design and development. As their presence is relatively new to the scene of systems development, it is often the case that media content designers are not fully integrated into the development team - a potentially costly mistake. It is important to ensure that media content designers are involved in the design process at a very early stage, and that they are fully integrated into the application design and construction teams.
  • Valuable guidelines may include;
  • Reverse Engineering is a set of techniques used to assist in reusing existing system components. Most of the time, this work is performed manually: one person studies thick listings to understand data layouts and processing rules. The person gradually builds a higher-level understanding of how the components work and interact, effectively reverse engineering the system into a conceptual model. It may be necessary to study certain pieces of code to understand how they work, but reverse engineering is not limited to code. For example, these techniques might help understand the data-model of a legacy application, in order to better design the new applications that will coexist with it.
  • the supporting tools can, however, reduce the amount of manual effort needed and significantly lessen the amount of non value-added activities, such as "find all the places in a program that affect the value of a given variable".
  • the goal of a specific reverse engineering effort generally falls into one of the following categories:
  • round-trip reengineering provides the developer with a way of modifying a component model and generating the code, then at a later date modifying the code at predefined locations in the source code and regenerating, thus enabling the mode) to maintain a 2-way-synchronization.
  • components to be reverse engineered can be both part of a custom-built system, or part of a software package. Projects dealing with the Year 2000 issues have had much experience in reengineering.
  • Packaged Component Integration applies to the use of any third party (or previously developed) technical components that may be integrated into the target system. This can range from simple components offering limited functionality (worksheet or charting GUI components), to components handling a significant portion of the application architecture (data access components and firewalls). The process involves a number of stages:
  • Construction covers both generation of source code and other components as well as programming and unit test. It may also involve help text creation and string test. As construction is a large part of system building, the benefits of streamlining this process are significant. Since several aspects of construction are rather mechanical, it is often fairly easy to simplify this process and to automate parts of it, particularly if the design holds high quality. The arrival of Integrated Development Environments (IDEs), has further simplified the automation of construction processes to the degree that a single tool can manage the majority of the process.
  • IDEs Integrated Development Environments
  • Test documentation standards Important procedures include:
  • system test is changing in nature. Firstly, the testing of interfaces to other systems is becoming an ever larger part of systems test. Secondly, system test increasingly applies to a new release of an existing system. In addition, it is worth noting that as design and construction is increasingly automated, system test is becoming a larger part of the total development effort. Both of these factors increase the value of automated testing tools, given that the work associated with checking that system changes do not have unintended side-effects, is becoming an ever larger part of system test. Another trend affecting system test is the demand for traceability. Increasingly, users and management wish to know the purpose of a given test condition. This is answered by referring back to the design and to user requirements.
  • IMPORTANT When planning system test, it is vital that the testing of all target platforms is included in the test plan. For each platform that is supported by the system, there must be a separate set of tests.
  • Component-based development may have an impact on the way in which testing should be performed.
  • Configuration management provides the basis for promoting a configuration from the construction environment to the system test environment. As test cycles are run and fixes implemented, migration can become complex, requiring flexible mechanisms for locking and unlocking system components and analyzing the impacts of change.
  • Component Test is the testing of an individual piece of the solution. All components, including application programs, conversion programs, and input/output modules, are subject to component test. The objective is to ensure that the component implements the program specifications. At the end of component test, all lines of code should have been exercised, keeping in mind the specified functional and quality requirements. c) Are systems design being tested?
  • Assembly Test The assembly test tests the interaction of related components to ensure that the components, when integrated, function properly. Assembly test ensures that data is passed correctly between screens in a conversation or batch process and that messages are passed correctly between a client and a server.
  • the specification tested is the technical design.
  • the application flow diagram within the technical design depicts the assemblies, either on-line conversations or batch assemblies, that will be assembly tested. Testing is therefore organized by assembly rather than by business function.
  • Benefits Realization Test tests that the business case for the system will be met. The emphasis here is on measuring the benefits of the new system, for example: increased productivity, decreased lead times, or lower error rates. If the business case is not testable, the benefits realization test becomes more of a buyer signoff.
  • benefits realization test occurs prior to complete deployment of the system and utilizes the same environment that was used for the service-level test piece of operational readiness test.
  • Tools are put in place to collect data to prove the business case (e.g., count customer calls).
  • a team of people to momtor the reports from the tools and prove that the business case is achieved is still needed.
  • the size of the team depends upon the number of users and the degree to which tools can collect and report the data.
  • the benefits realization test tests that the business case for the system will be met. The emphasis here is on measuring the benefits of the new system, for example: increased productivity, decreased lead times, or lower error rates. If the business case is not testable, the benefits realization test becomes more of a buyer signoff. g) Are quality requirements being tested? h) Are technical requirements being tested? i) Are functional/user requirements being tested?
  • the Product Test tests the entire application to ensure that all functional and quality requirements have been met. Product testing may occur at multiple levels. The first level tests assemblies within an application. The next level tests applications within a system, and a final level tests systems within a solution.
  • the pu ⁇ ose is the same.
  • the product test tests the actual functionality of the solution as it supports the user requirements: the various cycles of transactions, the resolution of suspense items, the work flow within organizational units and among these units.
  • the specification against which the product test is run includes all functional and quality requirements. The testing is organized by business function.
  • the Operational Readiness Test The objective of the operational readiness test is to ensure that the application can be correctly deployed.
  • the operational readiness test is also commonly known as the readiness test, roll-out test, release test, or the conversion test.
  • the operational readiness test becomes especially key in client/server environments. It has four parts:
  • Roll out test ensures that the roll out procedures and programs can install the application in the production environment.
  • Service level test ensures that once the application is rolled out, it provides the level of service to the users as specified in the Service Level Agreement (SLA).
  • Roll out verification ensures that the application has been correctly rolled out at each site. This test, developed by the work cell or team performing operational readiness test, should be executed during each site installation by the work cell or team in charge of the actual roll out of the application. The operational readiness test assumes a completely stable application and architecture in order for it to be successful, and therefore, is heavily reliant on the previous testing stages.
  • the operational readiness test is the point in the development process where all the application development, architecture development, and preparation tasks come together.
  • the operational readiness test ensures that the application and architecture can be installed and operated in order to meet the SLA.
  • Figure 10 is an illustration showing a Development Tools Framework in accordance with one embodiment of the present invention.
  • the development environment is built upon an integrated set of tools and components, each supporting a specific task or set of tasks in the development process.
  • the central component, System Building is supported by the eight management components: • Information Management tools 202 manage the information that supports the entire project - information that is used both in systems building and in other management processes
  • Security Management tools 216 enable the development of security components • Quality Management tools 204 support all quality management processes
  • Configuration Management tools 210 cover the version control, migration control and change control of system components such as code and its associated documentation • Problem Management tools 212 pertains to the problem tracking and solution process
  • Productivity tools 1002 provide the basic functionality required to create documents, spreadsheets, and simple graphics or diagrams
  • Collaborative tools 1004 enable groups of people to communicate and to share information, helping them work together effectively, regardless of location
  • Process Integration tools 1006 enforce the correct sequencing of tasks and tools in conformance with a pre-defined methodology
  • productivity tools While many tools are developed in order to support a specific task (for example, source code editor), there is a family of tools that are generally required across the board, often known as productivity tools or office automation tools. These tools, typically packaged as integrated suites of software, provide the basic functionality required to create documents, spreadsheets, and simple graphics or diagrams. More recently, the ability to access the Internet and browse electronic documentation has been added to the suite of productivity tools.
  • productivity tools include:
  • E-mail provides the capability of sending and receiving messages electronically. In addition to the ability to send simple ASCII text, e-mail systems usually provide the capability to attach binary files to messages. E-mail is a convenient tool for distributing information to a group of people, as it has the advantage of delivering content directly to the 'mailbox' of each individual, rather than relying on individuals to access a central data repository in order to retrieve the information.
  • Teamware provides the ability to capture and share information across a project through the use of common-access, structured databases.
  • a good example of teamware is the Knowledge Xchange.
  • Teamware may be used to share many different types of information, for example:
  • Group scheduling tools help to centrally manage the personal schedules of a group of people. This offers the advantage of being able to coordinate events that require the participation of a number of people automatically by checking 'group availability' rather than checking with each person individually. These tools may also be used to schedule other resources such as meeting rooms and equipment.
  • Audio and video conferencing tools allow many individuals in different locations to communicate simultaneously. Audio conferencing is not a new concept, but remains a valuable tool for conducting meetings where the issues being discussed do not require the support of visual aids. Video conferencing takes this one step further, allowing people to interact both aurally and visually, making for a much richer method of communication. Implementation Considerations a) Is there enough bandwidth to support a video conferencing system?
  • Video conferencing is an advantage when one person needs to see the other person's face, his or her reactions, read body-language, build relationships, and so on.
  • Shared workspace systems may be categorized as follows: • Electronic whiteboarding
  • An electronic whiteboard provides a large, clear screen that can be viewed close up and at a wide angle, upon which participants may 'write' with an infrared pen or a mouse. Images may also be pasted onto the whiteboard.
  • Regular workstations on a network may also be used for electronic whiteboarding, providing the appropriate software is installed.
  • Electronic whiteboarding often works in conjunction with video conferencing applications.
  • Application sharing allows participants to see and control the same application running on multiple PCs. In this way they can simultaneously create and edit a single, common file.
  • Application sharing may be combined with audio conference. Process Management (1006)
  • Process Management may be categorized into two areas: • Simple process integration 148, which concerns the simple integration of a sequence of tasks, according to a prescribed development methodology.
  • Simple Process Integration concerns the integration of a limited sequence of tasks, for an individual, according to a prescribed development methodology.
  • the construction process can be supported within an integrated development environment tool by a menu with the following choices:
  • the sequencing of the menu items help to remind the programmer of the steps needed to complete the construction of the program.
  • Real-time tools integration is most commonly provided by vendors who deliver integrated environments.
  • Workflow Management tools address this problem by providing the ability to define, manage, and execute automated business processes through an electronic representation of the process, both in terms of what has to be done, and by whom. For any process where multiple groups are involved, well-defined procedures must be in place to ensure that work flows from one task to another. Each participant must have access to the information required to perform the task, including the information from previous steps in the flow. This can be handled manually or supported by tools. If handled manually, it requires dedication, attention to detail, and significant training. Workflow Management can be applied to many processes within the development environment, such as quality assurance, migration, design/construction, system test, and standards development.
  • Security Management tools provide the components that make up the security layer of the final system, and may provide required security controls to the development environment. While some of these tools may be considered as nothing more than security-specific Packaged Components, many are an integral part of the development environment toolset.
  • Security Management tools include: • Intrusion detection - discovers and alerts administrators of intrusion attempts. • Network assessment - performs scheduled and selective probes of the network's communication services, operating systems, and routers in search of those vulnerabilities most often used by unscrupulous individuals to probe, investigate, and attack your network. • Platform security - minimizes the opportunities for intruders to compromise co ⁇ orate systems by providing additional operating system security features.
  • Web-based access control enables organizations to control and manage user access to web based applications with restricted access.
  • Fraud services methods of verifying the identity of credit card users to reduce the amount of fraudulent credit card transactions.
  • Mobile code security protects co ⁇ orate resources, computer files, confidential information, and co ⁇ orate assets from possible mobile code attack.
  • E-mail content filtering allows organizations to define and enforce e- mail policies to ensure the appropriate email content.
  • Application development security toolkits allow programmers to integrate privacy, authentication, and additional security features into applications by using a cryptography engine and toolkit.
  • Encryption - provides confidential communications to prevent the disclosure of sensitive information as it travels over the network. This capability is essential for conducting business over an unsecured channel such as the Internet.
  • Public key infrastructure provides public-key encryption and digital signature services.
  • the pu ⁇ ose of a public-key infrastructure is to manage keys and certificates.
  • a PKI enables the use of encryption, digital signatures, and authentication services across a wide variety of applications.
  • Firewall protects against theft, loss, or misuse of important data on the co ⁇ orate network, as well as protection against attempted denial of service attacks. Firewalls may be used at various points in the network to enforce different security policies.
  • Role-based access control establishes access rights and profiles based on job functions within the environment. If different access rights are required for security administrators vs. code developers vs. code reviewers vs. testers, then the correct access can be established based on these functions. b) Does the tool have flexible auditing capabilities? The security administrator should be able to granularly configure what is being audited by the tool. The audit logs should be able to optionally record User ID, time-of- day, location of access, successful and unsuccessful access or change attempts, etc. c) What are the performance implications of the tool?
  • Information Management of the development architecture is provided through an integrated development repository.
  • tools share a common repository of development objects, design documents, source code, test plans and data.
  • the repository would be a single database with an all-encompassing information model.
  • the repository must be built by integrating the repositories of the different development tools through interfaces. Tool vendors may also build part of the integrated repository by integrating specific products.
  • Implementation Considerations a) Is there a desire to enforce consistency in the development effort? Engagement teams should consider the use of a repository to enforce consistency across development efforts.
  • a repository can store standard data, process, design, and development objects for use during application development activities. Developers then use these standard objects during implementation. As objects are defined once in the repository and reused throughout the implementation process, applications display a consistent look, feel, and flow while enforcing the standards inherent in the repository objects. b) Will analysis and design objects be reused?
  • a repository houses many application development components including data definitions, process models, page designs, window designs, common GUI widgets, message layouts, and copybooks.
  • a repository provides the development teams with the ability to reuse objects defined in the repository in a controlled manner. Most engagements consider using a repository once the number of developers exceeds ten. d) Is the development team geographically dispersed?
  • a repository management tool may be required to provide an integration platform for existing and future tools, providing communication among all tools where appropriate.
  • Product Considerations a) Is support for user defined objects required? he repository may need to be extended by the Engagement team to support custom objects defined by the Application Development team. Some repositories support user- defined objects as part of the base functionality. Others allow customization of the repository by the user while some are not designed for customization at all. If the repository requires extensive customization, a buy versus build decision may be required. b) Is a logical or physical repository more beneficial?
  • a physical repository is implemented as a single product. Many CASE tools employ this type of repository by housing all application development objects in a single source. Application development tools are then tightly integrated with the repository.
  • a logical repository integrates multiple tools to form an application development repository.
  • the various tools employed in the development environment are bridged together by custom architecture components. This approach is commonly used when the Engagement team takes a best of breed approach to tool selection. c) What are the current and proposed future platforms?
  • the Engagement team should determine whether the repository must support multiple platforms.
  • the selected tool should not only support current platforms but also support the future platform direction of the project. d) Does the product support multiple versions of objects?
  • the repository should support multiple versions of objects. By doing this, the repository can support applications in multiple phases of development.
  • the repository tool should control access to the versions of objects by providing check-in and check-out functionality. This allows multiple developers in various phases of development to work from the same repository while allowing only one developer update access to a particular object at a time. e) Are there existing tools that influence the selection of the Information Management tool?
  • Engagement teams often chose a tool that can be used in other areas of the development environment. Many Engagement teams select data modeling tools that can double as Information Management tools. Using one tool for multiple pu ⁇ oses results in fewer integration points in the architecture and less time and cost training personnel on multiple tools. g) Should the Information Management tool support multiple repositories? As many repositories do not provide sufficient versioning functionality, it is common to have more than one repository on large projects. Typically there would be one repository for development, one for system test, and one for production. This improves overall control. Another reason could be that there is concurrent development of different releases, each requiring its own repository. Hence, on a large project, a tool that supports multiple repositories is often a requirement.
  • the repository contents are effectively the building blocks of the system and have broad reuse.
  • a facility for security is required to prevent unauthorized changes to the repository elements and hence to ensure high quality and consistent repository content. For example, restrictions are often placed on making changes to data elements because ad-hoc changes by a single designer could have devastating impacts on other parts of the design.
  • Repository access control is important where developers in the development environment need to be assigned different rights to the repository. Typically, the developers will be placed in groups with diminishing access rights such as repository administrator, technical support, designer, or programmer. These access rights may relate to read/write/modify/delete authority. This method of access control is far more flexible than simple object locking. h) Does the tool provide repository reporting facilities? Repository reports serve as an audit trail for changes to objects within a repository and can be used to communicate these changes to the entire team. The Repository Management tool should provide this utility.
  • Reports for impact analysis are extremely useful in the change control process.
  • the repository maintains relationships between repository objects, 'where-used' and 'contains' report facilities can be very useful when dealing with change requests.
  • Active Information Management tools can be used to generate components, whereas passive tools are used to hold information about the tool but are not used to build the system.
  • the use of an active Information Management tool increases productivity because of the facility to generate components.
  • the repository needs to be customized in order to integrate with all the required tools, then it is important that the Repository tool has a published interface and underlying data model. Using such a repository makes interfacing other tools with the repository considerably easier and less time consuming.
  • Repository Management is the key information management tool.
  • the repository should be:
  • repositories • Open, with a published interface and an underlying data model.
  • multiple repositories may be used.
  • One repository can be integrated to an upper-case design tool, and another one to a lower-case design tool, each of them offering the best capabilities in their respective domain. It is then key that repositories offer import/export capabilities, so proper bridging/synchronizing capabilities can be developed.
  • a development repository results in three important benefits for a development organization and for the business units they support:
  • Design information, created for one step of the development process, can be fed to the next step, reducing effort and knowledge "gaps" or misunderstandings.
  • the repository captures information relevant to each stage in application development: design 1102, construction 1104, testing 1106, migration, execution, and operation 1108.
  • Figure 11 is an illustration showing information captured in the Repository and reused.
  • the challenge is to create such a repository.
  • Most of the available tools on the market do not explicitly support this comprehensive concept of a repository.
  • the alternative is to: • Extend the repository. This is why the extensibility of the repository is so important.
  • When extending the repository consider how well future versions of the base repository will accommodate the extensions. Migrating to a future version may be more difficult after extending the repository. Extending the repository therefore requires a careful trade-off.
  • FIG. 12 is an illustration showing the Repository's central role in the development environment. This can be achieved either by using an integrated CASE tool, or by integrating point tools around a common repository.
  • Security Repository access can sometimes be controlled using an access control function, which comes with the repository.
  • a common technique is to group users and assign different access rights to the different groups. Each of these groups is also assigned specific read/write/delete/modify authority. For example, the following groups may be defined as having increasing rights: • Programmer
  • a less flexible alternative is to lock objects.
  • a locked object cannot be changed until the repository administrator unlocks it. This is a less flexible approach but may be used when flexible access control functionality is not part of the repository.
  • a tricky, and somewhat risky, approach to compensate for lacking access control functionality is to use information about the repository's internal storage mechanism to design an access control scheme. For example, if data elements are stored in a particular directory, tools from the network operating system can be used to limit access to that directory. If data elements are stored in a particular table, tools from the DBMS can be used to limit rights to that table. How well this works depends on how gracefully the repository handles error messages from the network operating system or the DBMS. This approach should be tested before it is implemented.
  • the tools for populating extensions of the repository are not provided, and in other cases, a stand- alone repository is used.
  • the integration between the design tools and the repository must be performed by the Technology Infrastructure team. This was achieved on a number of projects that chose a "best-of-breed point tool" approach where they integrated these point tools around a repository.
  • the integration may require some challenging work writing parsers, which analyze the output from the individual point tool, and use this to populate the repository.
  • Import and export utilities which provide exchanges between the repository and flat files, can be useful in several ways. They make it easy to take a snapshot of the repository for archiving, and they allow for reuse of the contents of other repositories. m) Analysis, Reports, and Queries
  • Reports for impact analysis are extremely useful in the change control process.
  • the repository maintains relationships between repository objects, where-used and contains reports are usually provided with the repository.
  • Storing the names of affected repository objects in an area-affected table can be useful when grouping change requests during assignment, or when defining a release.
  • the area-affected table is also a valuable tool that can be used to facilitate migration from development to system test.
  • a scripting language, a simple report builder, or a query tool provides this capability. Having a query tool with an intuitive user interface and good report formatting features is a necessity on a large project.
  • the query tool can be used to provide standard reports for designers and programmers, printed design information for external reviews, and ad hoc requests for the repository administrator.
  • Folder Management (104) It is not always practical to store all information in the same repository. One reason for this is the repository's physical implementation. For example, if the repository is implemented on top of a relational DBMS, this supporting structure does not provide good support for storing flat files. It may therefore often be most practical to populate the repository with place-holders for entities which reside outside the repository.
  • Folders should provide: • Flexible access rights based on user profiles, which differentiate (at least) between read and write access
  • Nested folders Links to avoid duplication of components while still showing that a component belongs to several folders Media Content Management (106)
  • Methods for storing and managing media content range from simple folder management techniques to multimedia digital asset management systems, capable of indexing and manipulating numerous multimedia data types.
  • a Media Content Management system should have the ability to:
  • Additional functionality provided by advanced Media Content Management tools may include:
  • the cost of data storage is not insignificant, especially when considering the total cost (not just that of the hardware and software, but also the effort required to support it). This means that much thought must be put into a media storage strategy. This includes a strategy for deciding which media should be on-line (instantly accessible), near-line (accessible with short delay, for example, CD juke box), or even possibly off-line (manual intervention required).
  • Object Management tools provide capabilities for viewing objects, their methods and attributes, and the dependencies between these objects.
  • Object Management tools also provide specific analysis tools, in order to understand interdependencies between the core classes and the components.
  • impact analysis tools are required to see where the modified entity is being used, allowing them to understand what is the overall impact of the change. This is more complex than with traditional systems as a veritable spider's web of dependencies between classes, components, and applications may ensue.
  • OO features such as inheritance and polymo ⁇ hism make tracking down dependencies with simple text search tools much more difficult.
  • Quality Management is a management discipline that promotes a customer satisfaction focus and continuous improvement. Quality Management tools support the definition and implementation of quality. A number of integrated Quality Management tools are available that may combine the functionality of all the required quality subcomponents into a single product. Many quality processes however, (such as Expectation Management) do not require specialized tools, and are therefore supported by standard productivity tools. Metrics (110) Metrics are an important part of quality management in that they provide a method of measuring (for example, sampling, testing, and determining) whether a process or product meets a given criterion. With Metrics, different stakeholders can agree that a product objectively meets an expectation, or that a process has been improved by a measurable amount. Without Metrics, stakeholders can only have subjective opinions that may or may not agree.
  • Measurement tools are used to measure process quality and product quality.
  • Process quality may include Metrics such as the time it takes to process a change request.
  • Product quality should be measured for all the product expectations the project has set. This measurement process is the inspection part of quality management.
  • Statistical Process Control (152)
  • Continuous Improvement tools are used to analyze and improve the development processes.
  • Continuous Improvement is a process management technique by which action is taken to modify a process when the measurement or outcomes of that process are unsatisfactory. Process improvement is required whenever the number of defects exceeds the desired level, productivity falls below a desired threshold, or client expectations fail to be met. Once the process has been modified, it is remeasured to see whether the expected gain was actually achieved. Training (154)
  • Training tools provide methods to apply a standardized training approach to a large group of people. Training tools can complement or take the place of traditional instructor- led training depending on the type of information that must be communicated.
  • Computer- Based Training (CBT) tools offer the advantage of being able to train personnel directly on the target environment.
  • training tools can also include online or paper-based training materials - not offering all the advantages of CBTs, but still providing the flexibility and convenience because they can be conducted as and when the trainee requires, and in any location. This removes the need to organize classes.
  • the decision of whether to use CBT, online, paper-based or instructor-led training is affected by the number of people that have to be trained, the complexity of the subject, and the availability and distribution of the people to be trained.
  • Program and Project Management tools assist the management teams in their daily work. These tools, typically packaged as integrated suites of software, provide the basic functionality required for planning, scheduling, tracking, and reporting at both the program and project level.
  • Planning Planning tools are used to assist in program and project planning including the development of the Program Resource Plan, the Work Breakdown Structure (WBS), the Organization Breakdown Structure, Cost Accounting, milestones, and deliverables.
  • Scheduling Scheduling Tools are used to allocate resources against the WBS, to determine the timeline for a specific project, and to schedule the allocation of resources at the program level.
  • Tracking Project tracking tools enable the project manager to track the actual project status against the original plan and schedule. Integration with the time reporting system and techniques such as Estimates to Complete (ETCs) are valuable in tracking project status. Reporting Reporting Tools are used to summarize status and metrics to program and project management. Configuration Management (210)
  • Configuration Management tools ensure that consistency between components and a given environment is maintained over time as components are changed. Implementation Considerations a) Does the testing effort involve numerous applications with common components? Engagement teams frequently require Configuration Management tools to support the testing process. Large development efforts may have multiple releases of an application in the development pipeline (development, unit test, integration test, user acceptance test, and production). Additionally, some environments have multiple applications that share common components. Multiple versions of common components may be required depending upon the application being tested.
  • Configuration Management tools assist in migrating code between these environments. These tools can also be used to manage different versions of test scripts for various releases of an application. b) Where is the development team located? Configuration Management tools are essential when development teams are not centralized at one location. These tools provide services, such as version control, when geographically distributed teams need to access common modules or data, such as code tables. Configuration Management tools may still be necessary even if the development team is centralized, depending upon other criteria such as development team size. c) How large is the application or development team?
  • Configuration Management tools provide a structure for communication between team members regarding version control, change control, and migration control.
  • the Configuration Management tool provides structure for managing the objects, files, and components and reduces the risk of lost information caused by version problems, or by items not being migrated properly. d) Is the development effort to be sustained over a prolonged period? Over time, a large number of configurations will evolve and Configuration Management tools can be used to control the evolution and to document these configurations. e) Is there a large number of components?
  • Configuration Management tools are particularly important when there are multiple vendors and subcontractors involved and there is a need to align what is assembled in preparation for the integration test. g) Does the system exceed 100 modules?
  • Configuration Management tools are needed once the system becomes large and many modules (which may include programs, header files, copybooks, shared components, subroutines, and so on) have to be managed. There is a significant cost involved in formal configuration management. If the system has a little over 100 modules, the Configuration Management component may consist merely of a whiteboard or Excel spreadsheet. As the number of modules grows to about 1000, a dedicated tool is required. h) Do the generations or versions of components change frequently? A Configuration Management tool is important if many generations or versions are to be managed. This will generally be the case if the project involves a large development team. There may be external factors that the project team has no control over such as hardware vendors who change their configurations frequently. The internal components, for example, software modules must be configured to match external components such as operating systems and hardware components.
  • An engagement team must determine whether to purchase a Configuration Management tool or build one.
  • the build decision should consider the cost of designing and developing the functions required by the engagement team. Additionally, the project must consider the resources and development time required to build the tool and when the tool is needed in the application development schedule.
  • the engagement team should select tools that integrate with other tools in the development environment and operate on the same platform. Project teams should select tools where vendors provide support for the integration between the Application Development tool and the Configuration Management tool. Such integration helps to easily and effectively manage the objects or files created by the Application Development tool.
  • source control systems must be enhanced to provide a basic Configuration Management tool.
  • the functional enhancements are typically:

Abstract

La présente invention concerne un système permettant de réaliser des transactions commerciales virtuelles après identification des besoins de l'utilisateur. Tout d'abord, le système évalue les besoins d'un utilisateur. Il génère ensuite, sur la base des besoins de l'utilisateur, une solution, qui est affichée. Un paiement est alors accepté en échange de la solution. Il convient de noter que dans le cadre du présent descriptif de l'invention, ladite solution est, mais pas exclusivement, un produit ou un service.
PCT/US2000/014357 1999-05-27 2000-05-24 Procedes, concepts et technologie pour systeme d'achat virtuel capable d'evaluer les besoins d'un client et de recommander un produit ou un service sur la base de ces besoins WO2000073955A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU50443/00A AU5044300A (en) 1999-05-27 2000-05-24 Methods, concepts and technology for a virtual shopping system capable of assessing needs of a customer and recommending a product or service based on such assessed needs
EP00932768A EP1190353A2 (fr) 1999-05-27 2000-05-24 Procedes, concepts et technologie pour systeme d'achat virtuel capable d'evaluer les besoins d'un client et de recommander un produit ou un service sur la base de ces besoins

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32149599A 1999-05-27 1999-05-27
US09/321,495 1999-05-27

Publications (3)

Publication Number Publication Date
WO2000073955A2 WO2000073955A2 (fr) 2000-12-07
WO2000073955A8 WO2000073955A8 (fr) 2001-08-02
WO2000073955A9 true WO2000073955A9 (fr) 2003-11-27

Family

ID=23250834

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/014357 WO2000073955A2 (fr) 1999-05-27 2000-05-24 Procedes, concepts et technologie pour systeme d'achat virtuel capable d'evaluer les besoins d'un client et de recommander un produit ou un service sur la base de ces besoins

Country Status (3)

Country Link
EP (1) EP1190353A2 (fr)
AU (1) AU5044300A (fr)
WO (1) WO2000073955A2 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171344B2 (en) 2007-10-30 2015-10-27 Onemednet Corporation Methods, systems, and devices for managing medical images and records
US9313553B2 (en) 2007-12-14 2016-04-12 Thomson Licensing Apparatus and method for simulcast over a variable bandwidth channel
US9369771B2 (en) 2007-12-18 2016-06-14 Thomson Licensing Apparatus and method for file size estimation over broadcast networks
US9436967B2 (en) 2012-03-14 2016-09-06 Accenture Global Services Limited System for providing extensible location-based services

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085091A9 (en) 2001-07-13 2006-04-20 Martin Kiesel Electronic fingerprints for machine control and production machines
DE10152765B4 (de) 2001-07-13 2015-11-12 Siemens Aktiengesellschaft Verfahren zur elektronischen Bereitstellung von Diensten für Maschinen über eine Datenkommunikationsverbindung
US7292900B2 (en) 2001-07-13 2007-11-06 Siemens Aktiengesellschaft Power distribution expert system
US7603289B2 (en) * 2001-07-13 2009-10-13 Siemens Aktiengesellschaft System and method for electronic delivery of content for industrial automation systems
US7395122B2 (en) 2001-07-13 2008-07-01 Siemens Aktiengesellschaft Data capture for electronically delivered automation services
US6975913B2 (en) 2001-07-13 2005-12-13 Siemens Aktiengesellschaft Database system and method for industrial automation services
US7945473B2 (en) 2004-02-27 2011-05-17 Accenture Global Services Limited System for individualized customer interaction
US7617162B2 (en) * 2005-03-04 2009-11-10 Atul Saini Real time push notification in an event driven network
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US20080052397A1 (en) 2006-08-24 2008-02-28 Ramanathan Venkataraman Future locking of resources
US9760677B2 (en) 2009-04-29 2017-09-12 Onemednet Corporation Methods, systems, and devices for managing medical images and records
US8165924B2 (en) 2007-11-27 2012-04-24 Sony Corporation Virtual shopping center
EP2088548A1 (fr) 2008-02-11 2009-08-12 Accenture Global Services GmbH Procédé de paiement au point de vente
US20120076283A1 (en) 2010-09-23 2012-03-29 Ajmera Dinesh Predictive Customer Service Environment
US9536269B2 (en) 2011-01-19 2017-01-03 24/7 Customer, Inc. Method and apparatus for analyzing and applying data related to customer interactions with social media
US11080721B2 (en) * 2012-04-20 2021-08-03 7.ai, Inc. Method and apparatus for an intuitive customer experience
US10007947B2 (en) 2015-04-16 2018-06-26 Accenture Global Services Limited Throttle-triggered suggestions
US9239987B1 (en) 2015-06-01 2016-01-19 Accenture Global Services Limited Trigger repeat order notifications
US10650437B2 (en) 2015-06-01 2020-05-12 Accenture Global Services Limited User interface generation for transacting goods
CN108234629B (zh) * 2017-12-29 2021-05-11 深圳正品创想科技有限公司 一种处理用户请求的方法及装置
US11379532B2 (en) 2019-10-17 2022-07-05 The Toronto-Dominion Bank System and method for generating a recommendation
CN111951042A (zh) * 2020-07-21 2020-11-17 北京思特奇信息技术股份有限公司 一种方案管理的方法和系统
CN116501208B (zh) * 2023-04-11 2024-03-08 怀化学院 一种沉浸式景观设计方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171344B2 (en) 2007-10-30 2015-10-27 Onemednet Corporation Methods, systems, and devices for managing medical images and records
US9313553B2 (en) 2007-12-14 2016-04-12 Thomson Licensing Apparatus and method for simulcast over a variable bandwidth channel
US9369771B2 (en) 2007-12-18 2016-06-14 Thomson Licensing Apparatus and method for file size estimation over broadcast networks
US9436967B2 (en) 2012-03-14 2016-09-06 Accenture Global Services Limited System for providing extensible location-based services

Also Published As

Publication number Publication date
EP1190353A2 (fr) 2002-03-27
AU5044300A (en) 2000-12-18
WO2000073955A2 (fr) 2000-12-07
WO2000073955A8 (fr) 2001-08-02

Similar Documents

Publication Publication Date Title
US7315826B1 (en) Comparatively analyzing vendors of components required for a web-based architecture
US6519571B1 (en) Dynamic customer profile management
US8121874B1 (en) Phase delivery of components of a system required for implementation technology
US6536037B1 (en) Identification of redundancies and omissions among components of a web based architecture
US6957186B1 (en) System method and article of manufacture for building, managing, and supporting various components of a system
US7165041B1 (en) Web-based architecture sales tool
US6721713B1 (en) Business alliance identification in a web architecture framework
US6615166B1 (en) Prioritizing components of a network framework required for implementation of technology
US6473794B1 (en) System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US9922345B2 (en) Increased visibility during order management in a network-based supply chain environment
US8032409B1 (en) Enhanced visibility during installation management in a network-based supply chain environment
US7957991B2 (en) Technology sharing during demand and supply planning in a network-based supply chain environment
US7716077B1 (en) Scheduling and planning maintenance and service in a network-based supply chain environment
US6606744B1 (en) Providing collaborative installation management in a network-based supply chain environment
US6671818B1 (en) Problem isolation through translating and filtering events into a standard object format in a network based supply chain
US7124101B1 (en) Asset tracking in a network-based supply chain environment
US7167844B1 (en) Electronic menu document creator in a virtual financial environment
US7069234B1 (en) Initiating an agreement in an e-commerce environment
WO2000073955A9 (fr) Procedes, concepts et technologie pour systeme d'achat virtuel capable d'evaluer les besoins d'un client et de recommander un produit ou un service sur la base de ces besoins
WO2000073958A2 (fr) Procedes, concepts et technique de comparaison dynamique de caracteristiques d'un produit et du profil des consommateurs
WO2000073957A2 (fr) Systeme, procede et article manufacture destines a la fourniture de services d'application dans le web lies au commerce
EP1252594A2 (fr) Programmation et planification anticipee, et gestion proactive au cours de la maintenance et de l'entretien d'un environnement du type chaine d'approvisionnement reseautee
EP1244974A1 (fr) Procede de mise a disposition d'une interface d'espace de marche entre une pluralite de fabricants et des fournisseurs de services et gestion d'une installation via une interface d'espace de marche
WO2000073929A2 (fr) Systeme, procede et article manufacture pour l'acheminement efficace des composants d'un systeme necessaires a la mise en pratique d'une technologie
WO2001039030A2 (fr) Gestion d'actifs durant le cycle de vie et en reseau dans un environnement de commerce electronique et procede associe

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: C1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

D17 Declaration under article 17(2)a
WWE Wipo information: entry into national phase

Ref document number: 2000932768

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2000932768

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

COP Corrected version of pamphlet

Free format text: PAGES 1/97-97/97, DRAWINGS, REPLACED BY NEW PAGES 1/190-190/190; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

NENP Non-entry into the national phase in:

Ref country code: JP

WWW Wipo information: withdrawn in national office

Ref document number: 2000932768

Country of ref document: EP