Abstract:
A method and system defines a mechanism to architect and define extensible methods and processes to build hybrid solutions. Solution templates provide a mechanism to architect and define the software development method in an extensible way and it enables the method architecture to be flexible to assemble method content and process elements only for those solution types that are necessary for a given solution. Solution templates keep the common base method lightweight and reusable and control the proliferation of software development processes necessary to build hybrid solutions by defining the solution templates for each of the solution types as pluggable extensions or add-ons to the base method that can be assembled on demand based on project needs.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to a method or system to architect and define extensible methods and processes to build hybrid solutions. 
       BACKGROUND OF THE INVENTION 
       [0002]    Today&#39;s projects tend to gravitate around solutions that are hybrid in nature: composed of multiple solution types viz. custom development, legacy integration and transformation, package application integration, e.g., SAP Netweaver, Oracle Fusion or composite business services. SAP Netweaver is SAP&#39;s integrated technology platform and is the technical foundation for all SAP applications since the SAP Business Suite. SAP® and SAP Netweaver® are trademarks of SAP AG. Oracle Fusion Middleware (OFM, also known as Fusion Middleware) consists of a portfolio of software products from Oracle Corporation. Oracle is a trademark of Oracle Corporation. Oracle® and Oracle Fusion® are registered trademarks of Oracle Corporation. The actual combination of solution types composing the overall solution varies from project to project, organization to organization, and yet the incorporation of various types of solution development styles must be handled and integrated within a single project or enterprise context, e.g., for client engagements. 
         [0003]    Today&#39;s client solutions are hybrid in nature, composed of multiple solution types and they increase in complexity with varying scope, such as the difference between enterprise and a single project. 
         [0004]    Today&#39;s solutions may require some or all of the following:
   Custom Development;   Packaged Application Integration (PAI);   Legacy Integration and Transformation (LIT);   
 
         [0008]    Host/Legacy Integration; 
         [0009]    Host/Legacy Transformation—Extract and expose hitherto embedded functionality;
   Composite Business Services (CBS);   
 
         [0011]    Compose an application out of a set of business services through choreography and semantic routing;
   SOA Integration (SOA-I);
       Integrate systems using service interfaces (the next evolution after enterprise application integration or EAI) using service oriented architecture (SOA);   
       Integrate with IT Strategy and Enterprise Architecture;   
 
         [0015]    Since software development project solutions are hybrid and composed of a set of different solution types, therefore the normative and prescriptive guidance on phases, activities, tasks, roles, work products and best-practices required for each of the individual solution types although needed, must be allowed to be selectively added to a base software development method or process as the overall solution is being composed of multiple solution types. To be extensible, base methods and base processes should include only the common set of activities, tasks, roles, work products and guidance applicable across all solution types. Unique solution type tasks, etc., should be selectively added as a project will call for the ability to select and incorporate additional activities, roles, work products needed to support a specific client solution into the base processes during method adoption at the time of project startup. 
         [0016]    Pre-defining/publishing processes for all permutation and combination of solution types composing the client solutions is sub-optimal answer to the problem statement because of proliferation of these published/pre-defined processes. 
         [0017]    Therefore, there is a need to solve the problems associated as described above. 
       SUMMARY OF THE INVENTION 
       [0018]    The present invention of solution templates enables software development methods such as IBM&#39;s service-oriented modeling and architecture™ (SOMA) method to facilitate building and delivering hybrid solutions composed of multiple solution types such as custom development, legacy integration and transformation, package application integration and so on. A set of solution types required for an overall solution varies from project to project, from client to client. Therefore, it does not justify including method content, work breakdown structure, and guidance associated with all the specific solution types in a base method/delivery process. Method content, work breakdown structure and guidance associated with the specific solution types are defined separately in solution templates in SOMA as a pluggable extensions or add-ons to the base method; thus SOMA delivery processes only include common base. The solution templates of the present invention are not designed to be used standalone rather associated with a set of base delivery processes. The solution templates provide a mechanism to integrate and assemble the method content, work breakdown structure and guidance for a set solution types required in a project to design and build the overall solution. The solution templates help in controlling the proliferation of published delivery processes. 
         [0019]    The present invention of solution template enables method architecture to be flexible to facilitate method adoption to build hybrid solutions. The solution template of the present invention externalizes concerns such as tasks, work products, roles, guidance—for a specific solution types from the base method/delivery process. The solution template of the present invention modularizes the method content and externalizes the variations from the commonality in the processes. Solution templates are context-specific pluggable extensions to a base work breakdown structure (or delivery process) that are non-unitary (does not appear in one place in the delivery process in which it is plugged in). 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0020]    These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which: 
           [0021]      FIG. 1  shows a data processing system suitable for implementing an embodiment of the present invention. 
           [0022]      FIG. 2  shows a network for implementing an embodiment of the present invention. 
           [0023]      FIG. 3  illustrates an embodiment of a solution template of the present invention for a solution type, namely, composite business services (CBS) asset construction. 
           [0024]      FIG. 4  illustrates an embodiment of a base software development process, such as SOMA for application development, for building end-to-end solutions leveraging solution templates of the present invention 
           [0025]      FIG. 5  illustrates another embodiment of a solution template of the present invention for a specific solution type, namely, composite business service (CBS) asset reconstruction and constituent solution template elements (STEs) for each phases of the base software development method such as SOMA method. 
           [0026]      FIG. 6  illustrates another embodiment of a base delivery process, such as SOMA for application development, having placeholders for solution templates of the present invention. 
       
    
    
       [0027]    The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0028]    The present invention comprises a method and system for the notion of a solution template that enables method architecture to be flexible to facilitate method adoption to build hybrid solutions composed of multiple solution types such as custom development, legacy integration and transformation, package application integration and so on. The solution template externalizes concerns—tasks, work products, roles, guidance—for a specific solution types from the base method/delivery process. The solution template modularizes the method content and externalizes the variations from the commonality in the processes. The solution template of the present invention enables flexible method architecture to facilitate method adoption to build hybrid solutions. 
         [0029]    Solution templates of the present invention are context-specific pluggable extensions to a base work breakdown structure (or delivery process) that are non-unitary (does not appear in one place in the delivery process in which it is plugged in). 
         [0030]    IBM SOMA method along with the notion of solution templates of the present invention enables the paradigm where a solution can be composed of multiple solution types and built on multiple implementation platforms. The flexible method architecture of SOMA method enabled by solution templates of the present invention allows integration and assembly of activities, tasks, guidance for a set of solution types to the base method on demand based on specific needs of a project. A software engineering method is designed to address the requirements of delivering generic. 
         [0031]      FIG. 1  shows a system  100  that may have a data processing system  102  suitable for implementing an embodiment of the present invention. Data processing system  102  may have a computer system  104  connected to a display  120 , external device(s)  116  or other peripheral devices for providing a user an interface to computer system  104  being connected via I/O interface(s)  114 . Computer system  104  may have an internal bus  112  for providing internal communication between such modules as processing unit  106 , I/O interface(s)  114 , network adapter  138  and memory  110 . Memory  110  may have random access memory (RAM)  130 , cache  132  and storage system  118  or other forms of memory. RAM may take the form of integrated circuits that allow stored data to be accessed in any order, that is, at random. Storage system  118  may take the form of tapes, magnetic discs and optical discs and are generally used for long term storage of data. Cache  132  is a memory for storing a collection of data-duplicating original values stored elsewhere or computed earlier, where the original data is expensive to fetch (owing to longer access time) or to compute, compared to the cost of reading the cache. In other words, a cache is a temporary storage area where frequently accessed data can be stored for rapid access. Once the data is stored in the cache, it can be used in the future by accessing the cached copy rather than re-fetching or re-computing the original data. A cache has proven to be extremely effective in many areas of computing because access patterns in typical computer applications have locality of reference. 
         [0032]      FIG. 2  shows a network system  200  for implementing an embodiment of the present invention. Network system  200  may have a network  210  or group of interconnected computers, such as data processing units  202 ,  204 , via network connections  206 ,  208  and may be of the type, e.g., a local area network (LAN) or internetwork. Printer  212  and storage  214  may be connected to network  210  via network connections  216 ,  218 . Basic network components may include network interface cards, repeaters, hubs, bridges, switches and routers. Data processing units  202 ,  204  may be computers such as web servers or personal computers, or other user agents. A web server generally has hardware and software that are responsible for accepting HTTP requests from clients (user agents such as web browsers), and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects (images, etc.). In this document, the term “web browser” is used but any application for retrieving, presenting, and traversing information resources on the Internet must be considered. 
         [0033]    A solution template enables flexible method architecture to facilitate method adoption to build hybrid solutions. The solution template externalizes concerns—tasks, work products, roles, guidance—for a specific solution types from the base method/delivery process. A base delivery process only contains the most common set of activities, tasks, work product, roles, and guidance. The present invention modularizes the method content and externalizes the variation from the commonality. The solution template has two parts: method content specific to solution type—externalizes from the base delivery process (WBS) and placeholders in the base delivery process for various parts of the solution templates. During method adoption workshop one can assemble the delivery process specific to project such as selecting the base delivery process, selecting a set of solution templates for corresponding to each of solution types involved in the overall client solution, and assembling and tailoring the solution template. 
         [0034]    The present invention of solution template is driven by simplicity in usage over reuse of content during method authoring granularity, specificity, practitioner friendliness, focusing on method usage versus method authoring and ability to build industry templates for solutions harvested from projects. Solution templates are context-specific pluggable extensions to a base work breakdown structure (WBS) or delivery process that are non-unitary (does not appear in one place in the delivery process in which it is plugged in). A work breakdown structure (WBS) in project management and systems engineering, is a tool used to define and group a project&#39;s discrete work elements in a way that helps organize and define the total work scope of the project. 
         [0035]    One embodiment of the method  300  of the present invention is shown in  FIG. 3  shows the work breakdown structure (WBS)  304  of the solution template  302  for a specific solution type, namely, CBS asset construction. This illustrative solution template for CBS asset construction  302  has such set of activities and tasks specific to CBS asset constructions for various phases of the base method for example SOMA method. These phases of SOMA may be a) Solution Startup phase where the project may be planned, defined and initiated, b) Identification phase where fundamental constructs of a solution, namely, services, business process/flow, components, information, and business rules and policies, c) Specification phase where the specification for the solution in terms of the above fundamental constructs may be developed, d) Realization phase where services and the overall solution realization is performed, e) Implementation phase where services and the overall solution are implemented. The work breakdown structure of the solution template prescribes set of specific activities and tasks required for CBS asset construction as part of the overall solution. For example in the Implementation phase, the specific activities and tasks required for CBS asset construction are assembling CBS fabric by extending the fabric ontology (customizing the ontology, importing the ontology and performing fabric setup), creating a CBS resource hierarchy by configuring the CBS resource hierarchy, configuring the service end points and verifying the CBS model integrity, and publishing the CBS including submitting the CBS change list, approving publishing of the CBS, configuring of the subscription manager, and implementing mock services. The solution template for CBS asset construction further includes specific set of tasks for developing support materials, and setting up the production environment in the Implementation phase. Note WBS of the solution template is the first part of solution template construct of the present invention. 
         [0036]    Another embodiment of the present invention of the method  400  of the present invention is shown in  FIG. 4  which shows a solution template  402  for CBS asset construction having placeholders  406  in the work breakdown structure of base delivery process  404 . Placeholders  406  indicate where parts of the solution template  402  work breakdown structure (WBS) will be filled during method adoption workshop (MAW). Note the placeholders for a corresponding solution templates in the base method is the second part of the solution template construct of the present invention. 
         [0037]      FIG. 5  shows a solution template  500  for CBS asset construction where activities and tasks within the solution template are grouped by SOMA phases and these groups are called solution template elements (STEs)  502 . Each solution template elements (STE) in the work breakdown structure (WBS) of solution template  500  corresponds to placeholders in the base delivery process.. 
         [0038]      FIG. 6  illustrates a base delivery process  600  that has placeholders  606  for solution templates  602 . A part of the solution template  604  fills in (contributes to) the placeholders  606 . For example, as shown in  FIG. 6 , from the solution template, e.g., solution template for CBS Asset Construction  604 , certain data may be filled in to the placeholders  606  during MAW, such as “Define Fabric Ontology Model” element  605 . It may include pluggable elements for the rest of the lifecycle for the base delivery process. 
         [0039]    As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computing device having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion --to another language, code or notation; and/or (b) reproduction in a different material form. To this extent, program code can be embodied as one or more of: an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like. 
         [0040]    The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.