US20100011337A1 - Open application lifecycle management framework domain model - Google Patents

Open application lifecycle management framework domain model Download PDF

Info

Publication number
US20100011337A1
US20100011337A1 US12/503,064 US50306409A US2010011337A1 US 20100011337 A1 US20100011337 A1 US 20100011337A1 US 50306409 A US50306409 A US 50306409A US 2010011337 A1 US2010011337 A1 US 2010011337A1
Authority
US
United States
Prior art keywords
data
framework
domain model
application
computer
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US12/503,064
Inventor
Charles C. Young
Shashi Kumar Velur
Raymond Chase
Randal Lee Guck
Ernst Ambichl
Ronald D. Sauers
Richard Charles Gronback
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Borland Software Corp
Original Assignee
Borland Software Corp
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 Borland Software Corp filed Critical Borland Software Corp
Priority to US12/503,064 priority Critical patent/US20100011337A1/en
Assigned to BORLAND SOFTWARE CORPORATION reassignment BORLAND SOFTWARE CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SAUERS, RONALD D., YOUNG, CHARLES C., AMBICHL, ERNST, DR., CHASE, RAYMOND, GRONBACK, RICHARD CHARLES, GUCK, RANDAL LEE, VELUR, SHASHI KUMAR
Publication of US20100011337A1 publication Critical patent/US20100011337A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Definitions

  • the present invention relates generally to computer software, computer program architecture, and software development techniques and applications. More specifically, techniques for an open application lifecycle management framework domain model are described.
  • FIG. 1 illustrates an exemplary system for an open application lifecycle management framework
  • FIG. 2A illustrates an exemplary open application lifecycle management framework
  • FIG. 2B illustrates another exemplary open application lifecycle management framework
  • FIG. 3A illustrates an exemplary open application lifecycle management meta model
  • FIG. 3B illustrates exemplary artifacts used in an open application lifecycle management framework
  • FIG. 4 illustrates exemplary domain models used in an open application lifecycle management framework
  • FIG. 5 illustrates exemplary elements used in an open application lifecycle management framework and domain model
  • FIG. 6 illustrates exemplary agents used in an open application lifecycle management framework and domain model
  • FIG. 7 illustrates exemplary work types used in an open application lifecycle management framework and domain model
  • FIG. 8 illustrates exemplary artifacts used in an open application lifecycle management framework and domain model
  • FIG. 9 illustrates exemplary elements used in an open application lifecycle management framework and domain model
  • FIG. 10 illustrates an exemplary process for an open application lifecycle management framework
  • FIG. 11 illustrates an exemplary process for an open application lifecycle management domain model
  • FIG. 12 illustrates an exemplary computer system suitable for requirements definition using interactive prototyping.
  • the described techniques may be implemented as a computer program or application (“application”) or as a plug-in, module, or sub-component of another application.
  • the described techniques may be implemented as software, hardware, firmware, circuitry, or a combination thereof. If implemented as software, the described techniques may be implemented using various types of programming, development, scripting, or formatting languages, frameworks, syntax, applications, protocols, objects, or techniques, including ASP, ASP.net, .Net framework, Ruby, Ruby on Rails, C, Objective C, C++, C#, Adobe® Integrated RuntimeTM (Adobe® AIRTM), ActionScriptTM, FlexTM, LingoTM, JavaTM, JavascriptTM, Ajax, Perl, COBOL, Fortran, ADA, XML, MXML, HTML, DHTML, XHTML, HTTP, XMPP, PHP, and others. Design, publishing, and other types of applications such as Dreamweaver®, Shockwave®, Flash®, Joomla and Fireworks® may also be used to implement the described
  • FIG. 1 illustrates an exemplary system for an open application lifecycle management framework.
  • system 100 includes network 102 , clients 104 - 106 , servers 108 - 112 , repository 114 , and computing cloud 116 .
  • the number, type, configuration, and data communication protocols shown may be varied and are not limited to the examples described.
  • clients 104 - 106 and servers 108 - 112 may be configured to implement, install, or host the described techniques as applications.
  • Database 114 may be implemented as any type of data storage facility such as a database, data warehouse, data mart, storage area network (SAN), redundant array of independent disks (RAID), or other type of hardware, software, firmware, circuitry, or a combination thereof configured to store, retrieve, organize, access, or perform other operations.
  • clients 104 - 106 and servers 108 - 112 may be implemented as any type of computing device, hardware, software, firmware, circuitry, or a combination thereof for purposes of providing computational and processing capabilities for the techniques described herein.
  • server 108 may be used with repository 114 to host an application or set of applications that are configured to perform the described techniques for open application lifecycle management using the framework described below.
  • Data associated with any operation may be stored, retrieved, or accessed from repository 114 .
  • computing cloud 116 may be used to provide processing and/or storage resources beyond those provided by server 108 or a cluster of servers (e.g., servers 110 - 112 ) in order to install, implement, or otherwise run program instructions for the described techniques.
  • the techniques for open application lifecycle management may be implemented as a standalone application on any of clients 104 - 106 or servers 108 - 112 .
  • DBMS database management system
  • the described techniques may also be implemented as an application stored therein.
  • clients 104 - 106 may also be used to implement the described techniques as a distributed application.
  • Different techniques may be used to implemented the described techniques as a distributed application, including deployment as software-as-a-service (i.e., SaaS) or as a distributed application in accordance with specifications such as WSDL (i.e., web services distributed language).
  • SaaS software-as-a-service
  • WSDL i.e., web services distributed language
  • Other specifications, protocols, formats, or architectures may be used to implement the described techniques, without limitation, and are not limited to the examples shown and described.
  • system 100 and the above-described elements may be varied and are not limited to those shown and described.
  • FIG. 2A illustrates an exemplary open application lifecycle management framework.
  • framework 202 includes domain model 204 , service implementation layer 206 , services 208 - 212 , client 214 , providers 216 - 222 , software development kits (hereafter “SDK”) 224 - 228 , applications 230 - 236 , SDK 238 , third party application 240 , framework repository 242 , extract, transform, and load (hereafter “ETL”) engine 244 , staging database 246 , ETL engine 248 , data warehouse 250 , and business intelligence tools 252 .
  • SDK software development kits
  • ETL extract, transform, and load
  • the number, type, configuration, and other aspects of framework 202 and the elements shown are provided for purposes of illustration and may be varied without limitation to the examples shown and described.
  • framework 202 may be used to provide a comprehensive structure for implementing application lifecycle management (hereafter “ALM”) that provides for comprehensive application development tools and programs including requirements and definition management (hereafter “RDM”), software configuration or control management (hereafter “SCM”), lifecycle quality management (e.g., testing; hereafter referred to as “LQM”), overall project and portfolio management (hereafter “PPM”), test management, quality control (hereafter “QC”), and others, without limitation.
  • ALM application lifecycle management
  • RDM requirements and definition management
  • SCM software configuration or control management
  • LQM lifecycle quality management
  • PPM overall project and portfolio management
  • QC quality control
  • framework 202 may be configured for use with one or more applications, some of which may be “written” (i.e., developed) using programming and formatting languages, protocols, and specifications that are native to framework 202 .
  • third party applications that are developed by software developers and development firms that develop software other than framework 202 may be used.
  • applications 236 or 240 may be third party applications that provide test management and quality control features or functionality to framework 202 .
  • Any of applications 230 - 240 , and others not shown, may be provided by third parties or organically developed for native implementation (i.e., developed to work with framework 202 ) with framework 202 .
  • framework 202 provides cross-product reporting and business intelligence features (as provided by BI tools 252 ) across various applications, regardless of the type, syntax, format, class, or other attributes that may be unique or proprietary to a given application.
  • framework 202 enables normalization of data across disparate applications (e.g., applications 230 - 240 ) using a common model (e.g., domain model 204 ) that guides the generation of common data representations for similar data types.
  • data types may be referred to as “elements” or “artifacts,” which are used to describe various types of data that are generated, retrieved, accessed, or otherwise used by framework 202 and applications 230 - 240 .
  • elements may be a base class of data types that are used with framework 202 and the described techniques.
  • an element may include artifacts or items referred to as “work” (see FIG. 3A below). In other examples, elements may include other data items apart from artifacts or work. Likewise, artifacts may be referred to as a genus of data items that may include, for example, change requests, requirements, tests, tasks, projects, or others.
  • Each of artifact may be a data construct or structure that, when used by domain model 204 in framework 202 , is used to generate a common data representation of an item from applications 230 - 240 .
  • domain model 204 maps the data to an artifact type used by framework 202 .
  • data may be retrieved from application 230 - 240 (and others) in various types of formats and types, including XML, VXML, Java, and others, without limitation.
  • Data once reduced to a common data representation by one or more of services 208 - 212 may then be sent to staging database 246 for transformation by extract, transform, and load (hereafter “ETL”) engine 248 for eventual storage in data warehouse 250 .
  • ETL extract, transform, and load
  • Any type of ETL engine may be used to convert data for storage in or retrieval from staging database 246 or data warehouse 250 and are not limited to any specific example described herein.
  • domain model 204 is used to provide a map of common data representations.
  • Data consumed (i.e., used) by applications 230 - 240 may also be used by services 208 - 212 .
  • element service 208 may be an application or program module that provides a mechanism for retrieving key information associated with artifacts (e.g., information about a set of requirements) from data warehouse 250 or framework repository 242 .
  • Links between projects and containers may be configured within framework repository 242 , linking a project to a container for a given application and further establishing links between applications in the same or different repositories. Generated links may be propagated to data warehouse 250 , thus allowing cross-product and cross-platform reporting because common data representations for data types from different applications have been normalized.
  • Element service 208 uses a common property model with user-defined arbitrary requirements in order to identify elements that are associated with other elements provided by applications 230 - 240 .
  • element service 208 is integrated with framework 202 using service implementation layer 206 .
  • project service 210 may be an application or program module that provides a mechanism to associate containers in a project, enabling artifacts or other elements to be stored in given containers, which are data structures that group artifacts according to a given context.
  • location service 212 provides the location of repositories and artifacts stored within them.
  • Application lifecycle management uniform resource indicators hereafter “ALM URIs” are used to identify artifacts and their location within specific repositories.
  • an ALM URI is a unique address that indicates the location or address of an artifact within a repository (e.g., framework repository 242 ).
  • service implementation layer 206 integrates framework 202 with services 208 - 212 to provide services (e.g., element service 208 , project service 210 , location service 212 , and others) that may be used to associate common data representations with corresponding data from one or more of applications 230 - 240 .
  • services e.g., element service 208 , project service 210 , location service 212 , and others
  • common data representations generated by domain model 204 may be used to map each artifact from applications 230 - 240 to an artifact format and syntax used by framework 202 .
  • data may be stored in framework repository 242 and obtained through links that identify the location of each element or artifact.
  • location server 212 may be used by client to specify links to a given project that may be created using project service 210 .
  • element service 208 may be invoked by client 214 to generate common data representations for individual items (e.g., change requests from application 234 are mapped to change requests in framework 202 using domain model 204 , and the like).
  • data may also be extracted from applications 230 - 240 and, when transformed, loaded into data warehouse 250 .
  • the extraction, transformation, and loading of data in proprietary or different formats may be performed using common data representations.
  • historical data may be retrieved from data warehouse 250 to provide a cross-product report for artifacts shared between applications 230 - 240 . Further, historical data can be processed in batch, ad hoc, sequential, automatically, manually, or in other ways.
  • Applications 230 - 240 generate data that ETL engine 244 extracts, transforms, and loads into staging database 246 .
  • a dimensional model (not shown) associated with domain model 204 and data warehouse 250
  • common data representations are used to store data from applications 230 - 240 into data warehouse 250 .
  • data stored in data warehouse 250 may be stored, retrieved, or otherwise accessed using formats (i.e., syntax) associated with ALM URIs.
  • an ALM URI may include a server path, source project path, or other types of paths to objects (i.e., artifacts, elements, items, containers, folders, and the like) within a given repository.
  • an ALM URI may also include a schema, authority (source project), path (source element path), query (version), fragment, or other attribute and is not limited to those set forth above.
  • ALM URIs may be structured based upon specification such as RFC 2396, RFC 3305, or others that are used to define URIs.
  • An exemplary format may follow the general schema:
  • an ALM URI used with framework 202 to access, in data warehouse 250 a given artifact (e.g., a requirement associated with an application configured to provide software configuration and change management (e.g., application 232 )) may be:
  • schemas and ALM URIs may be varied and are not limited to the structure, syntax, format, or other attributes shown and described.
  • providers 216 - 222 may be used to provide application programming interfaces (hereafter “APIs”) with applications 230 - 240 in order to retrieve data into framework 202 .
  • providers may be individual programs or interfaces that are written using SDKs 224 - 228 and 238 that may include tools, utilities, widgets, APIs, or other data, information, or applications that enable integration with, for example, applications 230 - 240 .
  • Proprietary standards, structures, interfaces, protocols, or formats associated with applications 230 - 240 may be adapted to framework 202 using providers 216 - 222 and SDKs 228 - 238 .
  • Providers 216 - 222 may be configured to identify and interpret ALM URIS, which may also be defined by location service 212 . Further, providers 216 - 222 may be used to map SDKs 224 - 228 and 238 to applications 230 - 240 and, subsequently framework 202 .
  • ETL engines 244 and 248 that are configured to extract data from applications 230 - 240 or framework 202 , respectively.
  • each of providers 216 - 222 has an ETL engine to put data into staging database 246 , which organizes data using a dimensional model, which is a model of hierarchical relationship that may be similar to those described using domain model 204 .
  • Domain model 204 and a dimensional model (not shown) used for staging database 246 or data warehouse 250 may be implemented as a meta model for generating data structures that organize stored data among containers, folders, elements (e.g., artifacts such as change requests, requirements, tasks, or others)), or the like.
  • data may be transformed by ETL engines 244 and 248 for loading into staging database 246 or data warehouse 250 .
  • Data may be loaded from framework 202 using domain model 204 .
  • Data is stored in staging database 246 using data schemas and common data representations generated by domain model 204 and a separate ETL engine is not required for data stored, retrieved, or otherwise accessed by framework 202 .
  • data from applications 230 - 240 may be in a proprietary format, standard, protocol, or syntax and ETL engine 244 is used to ensure that data stored, retrieved, or otherwise accessed from staging database 246 is in a common data representation format established by domain model 204 (i.e., framework 202 ).
  • ETL engine 248 processes the data for storage, retrieval, or other operations associated with data warehouse 250 , which may use other types of data schema (e.g., star schema, and others, without limitation).
  • data warehouse 250 Once stored in data warehouse 250 , BI tools module 252 may be used to evaluate and analyze data used by framework 202 or applications 230 - 240 , generating reports using common data representations associated with artifacts, regardless of proprietary data formats or types. For example, an artifact such as a change request may be used as the basis for generating a report using BI tools module 252 for all applications.
  • framework 202 and domain model 204 may generate a report showing all change requests for a given project that are stored in data warehouse 250 .
  • framework 202 and the above-described elements may be varied and are not limited in function, structure, operation, configuration, or other aspects to those descriptions provided.
  • FIG. 2B illustrates another exemplary open application lifecycle management framework.
  • framework 258 includes domain model 260 , applications 262 - 270 , connectors 272 - 280 , framework repository 282 , ETL tool data integrator 284 , data warehouse 286 , generic XML layer 288 , pre-staging process, and XML files 292 - 294 .
  • different types of applications may be provided (e.g., RDM, SCM, LQM, PPM, QC, and others).
  • One or more of applications 262 - 270 may be third-party applications developed by an organization, party, business, or other entity that is different than the one that provided framework 258 .
  • applications 262 - 270 may be considered as sources of data that use different data representations.
  • Domain model 260 may be used to generate common representations for data generated by applications 262 - 270 .
  • data may be retrieved from applications 262 - 270 using connectors 272 - 288 .
  • data may be retrieved from some applications using a generic XML layer that, when data from application 270 is retrieved, is converted into XML files that are loaded into generic XML layer 288 before being loaded into domain model 260 .
  • a pre-staging data model, process, or database (e.g., pre-staging process 290 ) is used to convert data from application 262 into XML files 292 .
  • XML files 292 are loaded into pre-staging database 290 and, subsequently, data is transformed from XML files are loaded into domain model 260 using connectors 272 - 274 into ETL tool data integrator 284 .
  • pre-staging process 290 may be used to detect changes in data generated from application 262 in order to capture incremental updates or changes to provide rapid updates for reporting or other purposes.
  • changes detected may be provided from pre-staging process 290 to domain model 260 , framework repository 282 , ETL tool data integrator 284 , data warehouse 286 , or other applications or processes beyond those shown and described.
  • connectors 272 - 280 may be implemented as a Java program and an ETL engine that is configured to extract data from applications 262 - 270 , transformed into a desirable format, and loaded into domain model 260 , ETL tool data integrator 284 , framework repository 282 , or data warehouse 286 .
  • a connector may be a source (i.e., application)-specific module that is configured to extract data from a given application using user defined attributes (hereafter “UDAs”).
  • UDAs user defined attributes
  • Connectors 272 - 280 may also provide input to a staging database (not shown) that is built around domain model 260 .
  • data from applications 262 - 270 may be processed to identify UDAs based on a common definition or a set of common fields or attributes (e.g., name, type, value).
  • generic XML (i.e., eXtensible Markup Language) layer 288 may be used to integrate a third party application with domain model 260 .
  • third party application 270 may be a quality control (QC) application that is not configured to readily identify data types, elements, or artifacts in data being generated by it.
  • QC quality control
  • generic XML layer 288 may be used to handle and transform the data for use by domain model 260 when determining which repository to use for storing the data.
  • data retrieved by ETL engines integrated with connectors 272 - 280 may also be transformed using domain model 260 and loaded into data warehouse 286 .
  • data may be organized and stored in framework repository 282 or ETL tool data integrator 284 and used for various purposes, including by any of applications 262 - 270 (or others), generating reports by ETL tool data integrator 284 , stored in framework repository 282 for use by domain model 260 or client 214 ( FIG. 2A ), or other uses not described herein.
  • framework 258 and the above-described elements may be varied in function, structure, configuration, implementation, or other aspects and is not intended to be limited to the descriptions provided.
  • FIG. 3A illustrates an exemplary open application lifecycle management meta model.
  • meta model 300 includes element 302 , work 304 , artifacts 306 - 308 , roles 312 , human agents 314 , and automated agents 316 .
  • process 310 Also shown, but not part of meta model 300 is process 310 .
  • meta model 300 describes relationships between process 310 , element 302 (and different types of elements (e.g., artifacts 306 - 308 vs. work 304 ), and roles 312 .
  • process 310 may be used to indicate a project (e.g., work 304 ) that involves various types of artifacts (e.g., artifacts 306 - 308 ).
  • data that is stored and organized as work 304 or artifacts 306 - 308 may be generated from roles in an organization.
  • human agents 314 represents data input by a user, such as a business analyst, system administrator, or the like.
  • Automated agents 316 may be software or program code that are configured to identify data into various types of elements (e.g., work 304 vs. artifacts 306 - 308 ).
  • meta model 300 may be varied and different data types, inputs, and relationships may be shown and are not limited to those provided and described.
  • FIG. 3B illustrates exemplary artifacts used in an open application lifecycle management framework.
  • artifacts 320 may include change requests 322 , requirements 324 , tests 326 , tasks 328 , and projects 330 , all of which may be described generally as “artifacts.” In some examples, more, fewer, or different artifacts may be used and are not limited to those shown and described.
  • framework 202 FIG. 2A
  • framework 202 may be configured to organize data according to domain model 204 ( FIG. 2A ), identifying, classifying, or otherwise sorting data into classes of artifacts.
  • change requests 322 may be caused by changes that occur when an application (e.g., applications 230 - 240 ( FIG.
  • artifacts may also be organized based on a relationship to a given project.
  • Projects 330 may be an artifact that allows data to be organized based on a given information technology (hereafter “IT”) software development project.
  • IT information technology
  • Other artifacts e.g., change requests 322 , requirements 324 , tests 326 , tasks 328 , and others
  • tests 326 may be artifacts that describe tests or testing activities that are performed against a given project.
  • tasks 328 may be open or closed activities to be performed by designated personnel, users, or clients in association with a given project.
  • the above-described artifacts may be varied and are not limited to the artifacts and relationships provided.
  • FIG. 4 illustrates exemplary domain models used in an open application lifecycle management framework.
  • domain model 402 may be used to generate related data models that are used for different purposes.
  • dimensional model 404 may be used to establish projects, links, relationships, or other aspects associated with, for example, staging database 246 ( FIG. 2A ).
  • data warehouse model 406 may be a data model that is used to organize, normalize, or otherwise manipulate data for storage in data warehouse 250 ( FIG. 2A ).
  • different types of data models may be used or created for use with framework 202 ( FIG. 2A ) and are not limited to the examples shown and described.
  • FIG. 5 illustrates exemplary elements used in an open application lifecycle management framework and domain model.
  • element 502 may be described as include two types of elements, including work 504 and artifact 506 .
  • Artifact 506 may be source code or items that are generated as a result of on-going software development processes (e.g., during a build).
  • work 504 may be a type of element that describes projects being worked upon by software developers using, for example, framework 202 ( FIG. 2A ).
  • element 502 may include fewer, more, or different data types apart from those shown and described.
  • FIG. 6 illustrates exemplary agents used in an open application lifecycle management framework and domain model.
  • agents 602 may be classified as two different types of data inputs, users 604 and services 606 .
  • Agents 602 may describe various types of inputs that provide data associated with work projects.
  • users 604 may provide input (e.g., human agents 314 ( FIG. 3A )) as well as services 606 (e.g., automated agents 316 ( FIG. 3A )) that, when executed, generate data that may be classified as being produced by agents 602 .
  • different types of agents may be used as part of domain model 204 ( FIG. 2A ) and are not limited to those shown and described.
  • FIG. 7 illustrates exemplary work types used in an open application lifecycle management framework and domain model.
  • work 702 includes data associated with tasks 704 and projects 706 .
  • projects 706 are a type of work object (i.e., work 702 ) and may be identified as a type of container created within data warehouse 250 or framework repository 242 ( FIG. 2A ).
  • tasks 704 may be types of work data that are associated with projects 706 .
  • work 702 may be classified differently in domain model 204 ( FIG. 2A ) and are not limited to the examples shown and described.
  • FIG. 8 illustrates exemplary artifacts used in an open application lifecycle management framework and domain model.
  • artifacts 802 include requirements 804 , change requests 806 , and tests 808 .
  • artifacts 802 may be generated during a software development project (i.e., project 706 ) and indicate a specific function to be performed in a given project context.
  • a project context may refer to the surrounding conditions, aspects, attributes, or other characteristics that are used to define an individual software project.
  • part of a project context may include the type of software development methodology being used.
  • software development methodologies may include waterfall, agile, iterative, or others, without limitation.
  • requirements 804 indicate a type of artifact that is used to indicate a functional requirement for the project.
  • Change requests 806 may indicate changes in features or functions for the project that are provided and propagated across various products (e.g., applications 262 - 270 ( FIG. 2B )) to ensure cross-product integration and reporting.
  • tests 808 may be tests that are run for purposes of quality control or testing purposes to ensure software development projects are tested to fulfill requirements that have been specified (i.e., requirements 804 ).
  • other types of artifacts may be classified as a species of artifact 802 and are not limited to those shown and described.
  • FIG. 9 illustrates exemplary elements used in an open application lifecycle management framework and domain model.
  • element 902 may include attribute 904 , attribute meta data 906 , and element metadata 908 .
  • element 902 may include work 702 ( FIG. 7 ) and artifacts 802 ( FIG. 8 ).
  • element 902 refers to a base class that is used with domain model 204 ( FIG. 2A ).
  • Attribute 904 may be used to describe data associated with a given element to identify a name, type, path, or other characteristic of a given element. Examples of attributes may include names, ALM URI, description, or others.
  • Metadata that is used to describe the attribute including a value (e.g., numerical, quantitative, qualitative) or indicator (e.g., binary) is attribute metadata 906 .
  • Attribute metadata 906 provide additional descriptive indicators such as a default value, a given length, a type of possible values, whether the attribute is required, and others.
  • element metadata 908 may be used to describe an element, such as source (i.e., application)-specific UDAs.
  • elements 902 , attribute 904 , attribute metadata 906 , and element metadata 908 may be defined or described differently and are not limited to the examples shown and described.
  • FIG. 10 illustrates an exemplary process for an open application lifecycle management framework.
  • framework 202 FIG. 2A
  • framework 202 FIG. 2A
  • One or more repositories associated with an application i.e., an application may be using multiple repositories
  • location service 212 FIG. 2A
  • an input is received that indicates the creation of a project context associated with a given software development project ( 1006 ).
  • one or more links between element i.e., work 702 ( FIG. 7 ), artifacts 802 ( FIG. 8 )
  • containers created within framework repository 242 ( FIG. 2A ), data warehouse 250 ( FIG.
  • Framework 202 is then configured to detect interaction with artifacts that are then propagated to repositories that were previously registered ( 1010 ).
  • the above-described process may be varied in function, order, operation, or other aspects, without limitation to the descriptions provided.
  • FIG. 11 illustrates an exemplary process for an open application lifecycle management domain model.
  • data received from a repository is evaluated to identify elements, agents, attributes, syntax, or other aspects ( 1102 ).
  • elements associated with the evaluated data are identified ( 1104 ) and used to create common data representations to artifacts associated with a given project ( 1106 ).
  • Common data representations are then used to map artifacts associated with a framework to data formats, syntax, element structures, attributes, or other features associated with data from applications integrated with framework 202 ( FIG. 2A ) using, for example, providers 216 - 222 ( FIG. 2A ) and/or connectors 272 - 280 ( 1108 ).
  • the above-described process may be varied in function, order, operation, or other aspects, without limitation to the descriptions provided.
  • FIG. 12 illustrates an exemplary computer system suitable for requirements definition using interactive prototyping.
  • computer system 1200 may be used to implement computer programs, applications, methods, processes, or other software to perform the above-described techniques.
  • Computer system 1200 includes a bus 1202 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 1204 , system memory 1206 (e.g., RAM), storage device 1208 (e.g., ROM), disk drive 1210 (e.g., magnetic or optical), communication interface 1212 (e.g., modem or Ethernet card), display 1214 (e.g., CRT or LCD), input device 1216 (e.g., keyboard), and cursor control 1218 (e.g., mouse or trackball).
  • processor 1204 system memory 1206 (e.g., RAM), storage device 1208 (e.g., ROM), disk drive 1210 (e.g., magnetic or optical), communication interface 1212 (e.g., modem or Ethernet card), display 1214 (e.g
  • computer system 1200 performs specific operations by processor 1204 executing one or more sequences of one or more instructions stored in system memory 1206 . Such instructions may be read into system memory 1206 from another computer readable medium, such as static storage device 1208 or disk drive 1210 . In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation.
  • Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1210 .
  • Volatile media includes dynamic memory, such as system memory 1206 .
  • Computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
  • Transmission medium may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions.
  • Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 1202 for transmitting a computer data signal.
  • execution of the sequences of instructions may be performed by a single computer system 1200 .
  • two or more computer systems 1200 coupled by communication link 1220 may perform the sequence of instructions in coordination with one another.
  • Computer system 1200 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1220 and communication interface 1212 .
  • Received program code may be executed by processor 1204 as it is received, and/or stored in disk drive 1210 , or other non-volatile storage for later execution.

Abstract

Techniques for an open application lifecycle management framework domain model are described, including evaluating data retrieved from an application in data communication with a framework hosted by a computer, identifying an element associated with the data and another element associated with the framework, creating a common data representation associated with the element, wherein the common data representation is generated according to a domain model associated with the framework, and generating a map associating the common data representation to the element and another element associated with the framework.

Description

    CROSS REFERENCE TO RELATED APPLICATION
  • This application is a U.S. non-provisional patent application that claims the benefit of U.S. Provisional Patent Application No. 61/080,462, filed Jul. 14, 2008 (Attorney Docket No. BOR-004P), entitled “METHODS AND SYSTEMS FOR COLLECTING AND NORMALIZING METRICS FROM MULTIPLE PROJECTS OR PROCESSES,” which is herein incorporated by reference for all purposes.
  • FIELD
  • The present invention relates generally to computer software, computer program architecture, and software development techniques and applications. More specifically, techniques for an open application lifecycle management framework domain model are described.
  • BACKGROUND
  • Conventional software development is traditionally performed using solutions that rely upon the development of functional requirements or specifications (hereafter “requirements”) in order to identify features or functions that should be built or developed into a computer program or application. Typically, disparate computer software, programs, or applications (hereafter “applications”) are often used in conventional techniques to provide different types of features or functions, such as requirements definition, change management, quality control, analysis, business intelligence, or reporting. Given the different types of solutions used, which are typically developed by different organizations or companies, the ability to use cross-product data is limited and often restrictive.
  • Companies, business, or organizations, large and small, often must rely upon the use of third party applications and development tools in order to build complex software projects. Often a single vendor or provider does not offer all of the tools that are required for a given project. However, when used together, different vendor applications may require extensive integration, development of custom source code in order to integrate applications together using software development kits, application programming interfaces (hereafter “APIs”), or other techniques. Further, data transferred between these applications often requires frequent development of source code in order for data to be used between different products and platforms. The use of proprietary formats to describe common data elements in different products discourages integration, raises project development times, increases project development costs, and is labor-intensive.
  • Thus, what is needed is a solution for enabling cross-product data sharing, analysis, and reporting for software development applications without the limitations of conventional techniques.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Various embodiments or examples (“examples”) are disclosed in the following detailed description and the accompanying drawings:
  • FIG. 1 illustrates an exemplary system for an open application lifecycle management framework;
  • FIG. 2A illustrates an exemplary open application lifecycle management framework;
  • FIG. 2B illustrates another exemplary open application lifecycle management framework;
  • FIG. 3A illustrates an exemplary open application lifecycle management meta model;
  • FIG. 3B illustrates exemplary artifacts used in an open application lifecycle management framework;
  • FIG. 4 illustrates exemplary domain models used in an open application lifecycle management framework;
  • FIG. 5 illustrates exemplary elements used in an open application lifecycle management framework and domain model;
  • FIG. 6 illustrates exemplary agents used in an open application lifecycle management framework and domain model;
  • FIG. 7 illustrates exemplary work types used in an open application lifecycle management framework and domain model;
  • FIG. 8 illustrates exemplary artifacts used in an open application lifecycle management framework and domain model;
  • FIG. 9 illustrates exemplary elements used in an open application lifecycle management framework and domain model;
  • FIG. 10 illustrates an exemplary process for an open application lifecycle management framework;
  • FIG. 11 illustrates an exemplary process for an open application lifecycle management domain model; and
  • FIG. 12 illustrates an exemplary computer system suitable for requirements definition using interactive prototyping.
  • DETAILED DESCRIPTION
  • Various embodiments or examples may be implemented in numerous ways, including as a system, a process, an apparatus, a user interface, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
  • A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.
  • In some examples, the described techniques may be implemented as a computer program or application (“application”) or as a plug-in, module, or sub-component of another application. The described techniques may be implemented as software, hardware, firmware, circuitry, or a combination thereof. If implemented as software, the described techniques may be implemented using various types of programming, development, scripting, or formatting languages, frameworks, syntax, applications, protocols, objects, or techniques, including ASP, ASP.net, .Net framework, Ruby, Ruby on Rails, C, Objective C, C++, C#, Adobe® Integrated Runtime™ (Adobe® AIR™), ActionScript™, Flex™, Lingo™, Java™, Javascript™, Ajax, Perl, COBOL, Fortran, ADA, XML, MXML, HTML, DHTML, XHTML, HTTP, XMPP, PHP, and others. Design, publishing, and other types of applications such as Dreamweaver®, Shockwave®, Flash®, Drupal and Fireworks® may also be used to implement the described techniques. The described techniques may be varied and are not limited to the examples or descriptions provided.
  • FIG. 1 illustrates an exemplary system for an open application lifecycle management framework. Here, system 100 includes network 102, clients 104-106, servers 108-112, repository 114, and computing cloud 116. In some examples, the number, type, configuration, and data communication protocols shown may be varied and are not limited to the examples described. As shown here, clients 104-106 and servers 108-112 may be configured to implement, install, or host the described techniques as applications. Data may be stored in database 114, which may be implemented as any type of data storage facility such as a database, data warehouse, data mart, storage area network (SAN), redundant array of independent disks (RAID), or other type of hardware, software, firmware, circuitry, or a combination thereof configured to store, retrieve, organize, access, or perform other operations. Likewise, clients 104-106 and servers 108-112 may be implemented as any type of computing device, hardware, software, firmware, circuitry, or a combination thereof for purposes of providing computational and processing capabilities for the techniques described herein. For example, server 108 may be used with repository 114 to host an application or set of applications that are configured to perform the described techniques for open application lifecycle management using the framework described below. Data associated with any operation may be stored, retrieved, or accessed from repository 114. Still further, computing cloud 116 may be used to provide processing and/or storage resources beyond those provided by server 108 or a cluster of servers (e.g., servers 110-112) in order to install, implement, or otherwise run program instructions for the described techniques. As described, the techniques for open application lifecycle management may be implemented as a standalone application on any of clients 104-106 or servers 108-112. In some examples, if a database management system (i.e., DBMS; not shown) is used with repository 114, the described techniques may also be implemented as an application stored therein.
  • As shown, clients 104-106, servers 108-112, computing cloud 116, and/or a combination thereof may also be used to implement the described techniques as a distributed application. Different techniques may be used to implemented the described techniques as a distributed application, including deployment as software-as-a-service (i.e., SaaS) or as a distributed application in accordance with specifications such as WSDL (i.e., web services distributed language). Other specifications, protocols, formats, or architectures may be used to implement the described techniques, without limitation, and are not limited to the examples shown and described. Further, system 100 and the above-described elements may be varied and are not limited to those shown and described.
  • FIG. 2A illustrates an exemplary open application lifecycle management framework. Here, framework 202 includes domain model 204, service implementation layer 206, services 208-212, client 214, providers 216-222, software development kits (hereafter “SDK”) 224-228, applications 230-236, SDK 238, third party application 240, framework repository 242, extract, transform, and load (hereafter “ETL”) engine 244, staging database 246, ETL engine 248, data warehouse 250, and business intelligence tools 252. The number, type, configuration, and other aspects of framework 202 and the elements shown are provided for purposes of illustration and may be varied without limitation to the examples shown and described. In some examples, framework 202 may be used to provide a comprehensive structure for implementing application lifecycle management (hereafter “ALM”) that provides for comprehensive application development tools and programs including requirements and definition management (hereafter “RDM”), software configuration or control management (hereafter “SCM”), lifecycle quality management (e.g., testing; hereafter referred to as “LQM”), overall project and portfolio management (hereafter “PPM”), test management, quality control (hereafter “QC”), and others, without limitation. In some examples, framework 202 may be configured for use with one or more applications, some of which may be “written” (i.e., developed) using programming and formatting languages, protocols, and specifications that are native to framework 202. In other examples, third party applications that are developed by software developers and development firms that develop software other than framework 202 may be used. For example, applications 236 or 240 may be third party applications that provide test management and quality control features or functionality to framework 202. Any of applications 230-240, and others not shown, may be provided by third parties or organically developed for native implementation (i.e., developed to work with framework 202) with framework 202. As described herein, framework 202 provides cross-product reporting and business intelligence features (as provided by BI tools 252) across various applications, regardless of the type, syntax, format, class, or other attributes that may be unique or proprietary to a given application. In other words, framework 202 enables normalization of data across disparate applications (e.g., applications 230-240) using a common model (e.g., domain model 204) that guides the generation of common data representations for similar data types. For example, data types may be referred to as “elements” or “artifacts,” which are used to describe various types of data that are generated, retrieved, accessed, or otherwise used by framework 202 and applications 230-240. In some examples, elements may be a base class of data types that are used with framework 202 and the described techniques.
  • In some examples, an element may include artifacts or items referred to as “work” (see FIG. 3A below). In other examples, elements may include other data items apart from artifacts or work. Likewise, artifacts may be referred to as a genus of data items that may include, for example, change requests, requirements, tests, tasks, projects, or others. Each of artifact may be a data construct or structure that, when used by domain model 204 in framework 202, is used to generate a common data representation of an item from applications 230-240. Thus, if data generated by application 230, for example, is sent to framework 202, domain model 204 maps the data to an artifact type used by framework 202. As shown, data may be retrieved from application 230-240 (and others) in various types of formats and types, including XML, VXML, Java, and others, without limitation.
  • Data, once reduced to a common data representation by one or more of services 208-212 may then be sent to staging database 246 for transformation by extract, transform, and load (hereafter “ETL”) engine 248 for eventual storage in data warehouse 250. Any type of ETL engine may be used to convert data for storage in or retrieval from staging database 246 or data warehouse 250 and are not limited to any specific example described herein. In order to translate data for use by framework 202 and for storage, using a common data schema (e.g., star schema) in data warehouse 250, domain model 204 is used to provide a map of common data representations.
  • Data consumed (i.e., used) by applications 230-240 may also be used by services 208-212. In some examples, element service 208 may be an application or program module that provides a mechanism for retrieving key information associated with artifacts (e.g., information about a set of requirements) from data warehouse 250 or framework repository 242. Links between projects and containers may be configured within framework repository 242, linking a project to a container for a given application and further establishing links between applications in the same or different repositories. Generated links may be propagated to data warehouse 250, thus allowing cross-product and cross-platform reporting because common data representations for data types from different applications have been normalized.
  • Element service 208 uses a common property model with user-defined arbitrary requirements in order to identify elements that are associated with other elements provided by applications 230-240. As an example, element service 208 is integrated with framework 202 using service implementation layer 206. Further, project service 210 may be an application or program module that provides a mechanism to associate containers in a project, enabling artifacts or other elements to be stored in given containers, which are data structures that group artifacts according to a given context. Still further, location service 212 provides the location of repositories and artifacts stored within them. Application lifecycle management uniform resource indicators (hereafter “ALM URIs”) are used to identify artifacts and their location within specific repositories. In some examples, an ALM URI is a unique address that indicates the location or address of an artifact within a repository (e.g., framework repository 242).
  • In some examples, service implementation layer 206 integrates framework 202 with services 208-212 to provide services (e.g., element service 208, project service 210, location service 212, and others) that may be used to associate common data representations with corresponding data from one or more of applications 230-240. For example, if client 214 is used to generate a report to find change requests associated with a given version of a software development project (hereafter “project”), common data representations generated by domain model 204 may be used to map each artifact from applications 230-240 to an artifact format and syntax used by framework 202. Further, once normalized, data (e.g., artifacts, work, elements, and the like) may be stored in framework repository 242 and obtained through links that identify the location of each element or artifact. As an example, location server 212 may be used by client to specify links to a given project that may be created using project service 210. Upon creation of a project using project service 210 and specifying a location of items associated with the project and to be stored in framework repository 242, element service 208 may be invoked by client 214 to generate common data representations for individual items (e.g., change requests from application 234 are mapped to change requests in framework 202 using domain model 204, and the like).
  • In some examples, data may also be extracted from applications 230-240 and, when transformed, loaded into data warehouse 250. The extraction, transformation, and loading of data in proprietary or different formats may be performed using common data representations. As an example, historical data may be retrieved from data warehouse 250 to provide a cross-product report for artifacts shared between applications 230-240. Further, historical data can be processed in batch, ad hoc, sequential, automatically, manually, or in other ways.
  • Applications 230-240 generate data that ETL engine 244 extracts, transforms, and loads into staging database 246. Using a dimensional model (not shown) associated with domain model 204 and data warehouse 250, common data representations are used to store data from applications 230-240 into data warehouse 250. As an example, data stored in data warehouse 250 may be stored, retrieved, or otherwise accessed using formats (i.e., syntax) associated with ALM URIs. In some examples, an ALM URI may include a server path, source project path, or other types of paths to objects (i.e., artifacts, elements, items, containers, folders, and the like) within a given repository. In other examples, an ALM URI may also include a schema, authority (source project), path (source element path), query (version), fragment, or other attribute and is not limited to those set forth above. In still other examples, ALM URIs may be structured based upon specification such as RFC 2396, RFC 3305, or others that are used to define URIs. An exemplary format may follow the general schema:
  • Scheme://<authority>/<path>/?query #fragment
  • or
  • ALM://<source project>/<source element path>/?version
  • As an example, an ALM URI used with framework 202 to access, in data warehouse 250, a given artifact (e.g., a requirement associated with an application configured to provide software configuration and change management (e.g., application 232)) may be:
  • ALM://starteam!78G342G/∥; ns=project; 37; ns=view; 123; ns=requirement
  • In other examples, the above-described schemas and ALM URIs may be varied and are not limited to the structure, syntax, format, or other attributes shown and described.
  • As shown, providers 216-222 may be used to provide application programming interfaces (hereafter “APIs”) with applications 230-240 in order to retrieve data into framework 202. In some examples, providers may be individual programs or interfaces that are written using SDKs 224-228 and 238 that may include tools, utilities, widgets, APIs, or other data, information, or applications that enable integration with, for example, applications 230-240. Proprietary standards, structures, interfaces, protocols, or formats associated with applications 230-240 may be adapted to framework 202 using providers 216-222 and SDKs 228-238. Providers 216-222 may be configured to identify and interpret ALM URIS, which may also be defined by location service 212. Further, providers 216-222 may be used to map SDKs 224-228 and 238 to applications 230-240 and, subsequently framework 202.
  • Also shown are ETL engines 244 and 248 that are configured to extract data from applications 230-240 or framework 202, respectively. In some examples, each of providers 216-222 has an ETL engine to put data into staging database 246, which organizes data using a dimensional model, which is a model of hierarchical relationship that may be similar to those described using domain model 204. Domain model 204 and a dimensional model (not shown) used for staging database 246 or data warehouse 250 may be implemented as a meta model for generating data structures that organize stored data among containers, folders, elements (e.g., artifacts such as change requests, requirements, tasks, or others)), or the like.
  • Once extracted, data may be transformed by ETL engines 244 and 248 for loading into staging database 246 or data warehouse 250. Data may be loaded from framework 202 using domain model 204. Data is stored in staging database 246 using data schemas and common data representations generated by domain model 204 and a separate ETL engine is not required for data stored, retrieved, or otherwise accessed by framework 202. Alternatively, data from applications 230-240 may be in a proprietary format, standard, protocol, or syntax and ETL engine 244 is used to ensure that data stored, retrieved, or otherwise accessed from staging database 246 is in a common data representation format established by domain model 204 (i.e., framework 202). Once data is retrieved from staging database 246, ETL engine 248 processes the data for storage, retrieval, or other operations associated with data warehouse 250, which may use other types of data schema (e.g., star schema, and others, without limitation). Once stored in data warehouse 250, BI tools module 252 may be used to evaluate and analyze data used by framework 202 or applications 230-240, generating reports using common data representations associated with artifacts, regardless of proprietary data formats or types. For example, an artifact such as a change request may be used as the basis for generating a report using BI tools module 252 for all applications. Using framework 202 and domain model 204, BI tools module 252 may generate a report showing all change requests for a given project that are stored in data warehouse 250. In other examples, framework 202 and the above-described elements may be varied and are not limited in function, structure, operation, configuration, or other aspects to those descriptions provided.
  • FIG. 2B illustrates another exemplary open application lifecycle management framework. Here, framework 258 includes domain model 260, applications 262-270, connectors 272-280, framework repository 282, ETL tool data integrator 284, data warehouse 286, generic XML layer 288, pre-staging process, and XML files 292-294. As described above, different types of applications may be provided (e.g., RDM, SCM, LQM, PPM, QC, and others). One or more of applications 262-270 may be third-party applications developed by an organization, party, business, or other entity that is different than the one that provided framework 258. In other words, applications 262-270 may be considered as sources of data that use different data representations. Domain model 260 may be used to generate common representations for data generated by applications 262-270. In some examples, data may be retrieved from applications 262-270 using connectors 272-288. In other examples, data may be retrieved from some applications using a generic XML layer that, when data from application 270 is retrieved, is converted into XML files that are loaded into generic XML layer 288 before being loaded into domain model 260.
  • As an example, when data is retrieved from some applications such as application 262, a pre-staging data model, process, or database (e.g., pre-staging process 290) is used to convert data from application 262 into XML files 292. Once converted, XML files 292 are loaded into pre-staging database 290 and, subsequently, data is transformed from XML files are loaded into domain model 260 using connectors 272-274 into ETL tool data integrator 284. In some examples, pre-staging process 290 may be used to detect changes in data generated from application 262 in order to capture incremental updates or changes to provide rapid updates for reporting or other purposes. In other examples, changes detected may be provided from pre-staging process 290 to domain model 260, framework repository 282, ETL tool data integrator 284, data warehouse 286, or other applications or processes beyond those shown and described. As described herein, connectors 272-280 may be implemented as a Java program and an ETL engine that is configured to extract data from applications 262-270, transformed into a desirable format, and loaded into domain model 260, ETL tool data integrator 284, framework repository 282, or data warehouse 286. In other words, a connector may be a source (i.e., application)-specific module that is configured to extract data from a given application using user defined attributes (hereafter “UDAs”). Connectors 272-280 may also provide input to a staging database (not shown) that is built around domain model 260. As used herein, data from applications 262-270 may be processed to identify UDAs based on a common definition or a set of common fields or attributes (e.g., name, type, value). As some applications may not be configured to readily identify user defined attributes, generic XML (i.e., eXtensible Markup Language) layer 288 may be used to integrate a third party application with domain model 260. For example, third party application 270 may be a quality control (QC) application that is not configured to readily identify data types, elements, or artifacts in data being generated by it. However, by converting data transferred from the third party application into XML files 294, generic XML layer 288 may be used to handle and transform the data for use by domain model 260 when determining which repository to use for storing the data. In other examples, data retrieved by ETL engines integrated with connectors 272-280 may also be transformed using domain model 260 and loaded into data warehouse 286. Still further, data may be organized and stored in framework repository 282 or ETL tool data integrator 284 and used for various purposes, including by any of applications 262-270 (or others), generating reports by ETL tool data integrator 284, stored in framework repository 282 for use by domain model 260 or client 214 (FIG. 2A), or other uses not described herein. In other examples, framework 258 and the above-described elements may be varied in function, structure, configuration, implementation, or other aspects and is not intended to be limited to the descriptions provided.
  • FIG. 3A illustrates an exemplary open application lifecycle management meta model. Here, meta model 300 includes element 302, work 304, artifacts 306-308, roles 312, human agents 314, and automated agents 316. Also shown, but not part of meta model 300 is process 310. As shown, meta model 300 describes relationships between process 310, element 302 (and different types of elements (e.g., artifacts 306-308 vs. work 304), and roles 312. In some examples, process 310 may be used to indicate a project (e.g., work 304) that involves various types of artifacts (e.g., artifacts 306-308). Artifacts are described in greater detail below in connection with FIG. 3B. Referring back to FIG. 4A, data that is stored and organized as work 304 or artifacts 306-308 may be generated from roles in an organization. For example, human agents 314 represents data input by a user, such as a business analyst, system administrator, or the like. Automated agents 316 may be software or program code that are configured to identify data into various types of elements (e.g., work 304 vs. artifacts 306-308). In other examples, meta model 300 may be varied and different data types, inputs, and relationships may be shown and are not limited to those provided and described.
  • FIG. 3B illustrates exemplary artifacts used in an open application lifecycle management framework. Here, artifacts 320 may include change requests 322, requirements 324, tests 326, tasks 328, and projects 330, all of which may be described generally as “artifacts.” In some examples, more, fewer, or different artifacts may be used and are not limited to those shown and described. As an example, framework 202 (FIG. 2A) may be configured to organize data according to domain model 204 (FIG. 2A), identifying, classifying, or otherwise sorting data into classes of artifacts. For example, change requests 322 may be caused by changes that occur when an application (e.g., applications 230-240 (FIG. 2A)) is running. Comparing a previously stored data set to a current data set or, for increasing computational efficiency, monitoring changes in data may be classified as change requests 322. When changes occur, they may be propagated across various repositories and products, despite having different addresses, protocols, formats, syntax, or the like. Likewise requirements 324 may be input that identifies a given feature, function, or operation that an application is to perform. By classifying requirements as an artifact using a domain model (e.g., domain model 204 (FIG. 2A)), reports may be run to determine how many requirements exist, outstanding requirements, requirements sources, or other information using tools such as BI tools 252 (FIG. 2A)).
  • Hierarchically, artifacts may also be organized based on a relationship to a given project. Projects 330 may be an artifact that allows data to be organized based on a given information technology (hereafter “IT”) software development project. Other artifacts (e.g., change requests 322, requirements 324, tests 326, tasks 328, and others) may be associated with projects 330 and used to organize data, for example, in framework repository 242. In some examples, tests 326 may be artifacts that describe tests or testing activities that are performed against a given project. Likewise, tasks 328 may be open or closed activities to be performed by designated personnel, users, or clients in association with a given project. In other examples, the above-described artifacts may be varied and are not limited to the artifacts and relationships provided.
  • FIG. 4 illustrates exemplary domain models used in an open application lifecycle management framework. Here, domain model 402 may be used to generate related data models that are used for different purposes. For example, dimensional model 404 may be used to establish projects, links, relationships, or other aspects associated with, for example, staging database 246 (FIG. 2A). Likewise, data warehouse model 406 may be a data model that is used to organize, normalize, or otherwise manipulate data for storage in data warehouse 250 (FIG. 2A). In other examples, different types of data models may be used or created for use with framework 202 (FIG. 2A) and are not limited to the examples shown and described.
  • FIG. 5 illustrates exemplary elements used in an open application lifecycle management framework and domain model. Here, element 502 may be described as include two types of elements, including work 504 and artifact 506. Artifact 506 may be source code or items that are generated as a result of on-going software development processes (e.g., during a build). Similarly, work 504 may be a type of element that describes projects being worked upon by software developers using, for example, framework 202 (FIG. 2A). In other examples, element 502 may include fewer, more, or different data types apart from those shown and described.
  • FIG. 6 illustrates exemplary agents used in an open application lifecycle management framework and domain model. Here, agents 602 may be classified as two different types of data inputs, users 604 and services 606. Agents 602 may describe various types of inputs that provide data associated with work projects. For example, users 604 may provide input (e.g., human agents 314 (FIG. 3A)) as well as services 606 (e.g., automated agents 316 (FIG. 3A)) that, when executed, generate data that may be classified as being produced by agents 602. In other examples, different types of agents may be used as part of domain model 204 (FIG. 2A) and are not limited to those shown and described.
  • FIG. 7 illustrates exemplary work types used in an open application lifecycle management framework and domain model. Here, work 702 includes data associated with tasks 704 and projects 706. In some examples, projects 706 are a type of work object (i.e., work 702) and may be identified as a type of container created within data warehouse 250 or framework repository 242 (FIG. 2A). Likewise, tasks 704 may be types of work data that are associated with projects 706. In other examples, work 702 may be classified differently in domain model 204 (FIG. 2A) and are not limited to the examples shown and described.
  • FIG. 8 illustrates exemplary artifacts used in an open application lifecycle management framework and domain model. Here, artifacts 802 include requirements 804, change requests 806, and tests 808. In some examples, artifacts 802 may be generated during a software development project (i.e., project 706) and indicate a specific function to be performed in a given project context. In some examples, a project context may refer to the surrounding conditions, aspects, attributes, or other characteristics that are used to define an individual software project. For example, part of a project context may include the type of software development methodology being used. As an example, software development methodologies may include waterfall, agile, iterative, or others, without limitation. Thus, requirements 804 indicate a type of artifact that is used to indicate a functional requirement for the project. Change requests 806 may indicate changes in features or functions for the project that are provided and propagated across various products (e.g., applications 262-270 (FIG. 2B)) to ensure cross-product integration and reporting. Subsequently, tests 808 may be tests that are run for purposes of quality control or testing purposes to ensure software development projects are tested to fulfill requirements that have been specified (i.e., requirements 804). In other examples, other types of artifacts may be classified as a species of artifact 802 and are not limited to those shown and described.
  • FIG. 9 illustrates exemplary elements used in an open application lifecycle management framework and domain model. Here, element 902 may include attribute 904, attribute meta data 906, and element metadata 908. As used herein, element 902 may include work 702 (FIG. 7) and artifacts 802 (FIG. 8). In some examples, element 902 refers to a base class that is used with domain model 204 (FIG. 2A). Attribute 904 may be used to describe data associated with a given element to identify a name, type, path, or other characteristic of a given element. Examples of attributes may include names, ALM URI, description, or others. Metadata that is used to describe the attribute, including a value (e.g., numerical, quantitative, qualitative) or indicator (e.g., binary) is attribute metadata 906. Attribute metadata 906 provide additional descriptive indicators such as a default value, a given length, a type of possible values, whether the attribute is required, and others. Likewise, element metadata 908 may be used to describe an element, such as source (i.e., application)-specific UDAs. In other examples, elements 902, attribute 904, attribute metadata 906, and element metadata 908 may be defined or described differently and are not limited to the examples shown and described.
  • FIG. 10 illustrates an exemplary process for an open application lifecycle management framework. Here, framework 202 (FIG. 2A) is used to integrate a service and an application using a provider (1002). One or more repositories associated with an application (i.e., an application may be using multiple repositories) are registered using location service 212 (FIG. 2A). After registering repositories with framework 202, an input is received that indicates the creation of a project context associated with a given software development project (1006). After creating a project context, one or more links between element (i.e., work 702 (FIG. 7), artifacts 802 (FIG. 8)) containers created within framework repository 242 (FIG. 2A), data warehouse 250 (FIG. 2A), or other repositories are generated (1008). Framework 202 is then configured to detect interaction with artifacts that are then propagated to repositories that were previously registered (1010). In other examples, the above-described process may be varied in function, order, operation, or other aspects, without limitation to the descriptions provided.
  • FIG. 11 illustrates an exemplary process for an open application lifecycle management domain model. Here, data received from a repository is evaluated to identify elements, agents, attributes, syntax, or other aspects (1102). Once evaluated, elements associated with the evaluated data are identified (1104) and used to create common data representations to artifacts associated with a given project (1106). Common data representations are then used to map artifacts associated with a framework to data formats, syntax, element structures, attributes, or other features associated with data from applications integrated with framework 202 (FIG. 2A) using, for example, providers 216-222 (FIG. 2A) and/or connectors 272-280 (1108). In other examples, the above-described process may be varied in function, order, operation, or other aspects, without limitation to the descriptions provided.
  • FIG. 12 illustrates an exemplary computer system suitable for requirements definition using interactive prototyping. In some examples, computer system 1200 may be used to implement computer programs, applications, methods, processes, or other software to perform the above-described techniques. Computer system 1200 includes a bus 1202 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 1204, system memory 1206 (e.g., RAM), storage device 1208 (e.g., ROM), disk drive 1210 (e.g., magnetic or optical), communication interface 1212 (e.g., modem or Ethernet card), display 1214 (e.g., CRT or LCD), input device 1216 (e.g., keyboard), and cursor control 1218 (e.g., mouse or trackball).
  • According to some examples, computer system 1200 performs specific operations by processor 1204 executing one or more sequences of one or more instructions stored in system memory 1206. Such instructions may be read into system memory 1206 from another computer readable medium, such as static storage device 1208 or disk drive 1210. In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation.
  • The term “computer readable medium” refers to any tangible medium that participates in providing instructions to processor 1204 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1210. Volatile media includes dynamic memory, such as system memory 1206.
  • Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
  • Instructions may further be transmitted or received using a transmission medium. The term “transmission medium” may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 1202 for transmitting a computer data signal.
  • In some examples, execution of the sequences of instructions may be performed by a single computer system 1200. According to some examples, two or more computer systems 1200 coupled by communication link 1220 (e.g., LAN, PSTN, or wireless network) may perform the sequence of instructions in coordination with one another. Computer system 1200 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1220 and communication interface 1212. Received program code may be executed by processor 1204 as it is received, and/or stored in disk drive 1210, or other non-volatile storage for later execution.
  • Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the above-described inventive techniques are not limited to the details provided. There are many alternative ways of implementing the above-described invention techniques. The disclosed examples are illustrative and not restrictive.

Claims (20)

1. A method, comprising:
evaluating data retrieved from an application in data communication with a framework hosted by a computer;
identifying an element associated with the data and another element associated with the framework;
creating a common data representation associated with the element, wherein the common data representation is generated according to a domain model associated with the framework; and
generating a map associating the common data representation to the element and another element associated with the framework.
2. The method of claim 1, wherein the domain model is used to generate one or more indicators associated with the another element, the another element being stored in a data warehouse installed on another computer.
3. The method of claim 1, wherein the framework is an application hosted by the computer.
4. The method of claim 1, wherein the another element is mapped to the element based on identifying a name, type, and path.
5. The method of claim 1, wherein the domain model is generated using a meta model.
6. The method of claim 1, wherein the domain model is used to generate the map, the map being configured to identify the location of the another element in a repository.
7. The method of claim 6, wherein the repository is a data warehouse.
8. The method of claim 6, wherein the repository is a framework repository.
9. The method of claim 1, wherein the domain model provides a map that associates generated data provided by one or more applications with other data stored in a data warehouse, the other data being organized in the data warehouse using a container.
10. The method of claim 1, wherein the domain model uses a container and a folder to organize the data based.
11. The method of claim 1, wherein the domain model comprises one or more artifacts.
12. The method of claim 1, wherein domain model comprises one or more elements.
13. The method of claim 1, wherein the domain model is a data structure hosted by a the computer, wherein the domain model integrates with a framework that is used to map data from the application to another application, wherein the data from the application is in a format that is substantially different from the format of the another application.
14. A system, comprising:
a repository configured to store data associated with a framework; and
logic configured to evaluate the data retrieved from an application in data communication with the framework hosted by a computer, to identify an element associated with the data and another element associated with the framework, to create a common data representation associated with the element, wherein the common data representation is generated according to a domain model associated with the framework, and to generate a map associating the common data representation to the element and another element associated with the framework.
15. The system of claim 14, wherein the computer is in data communication with another computer hosting a data warehouse.
16. The system of claim 14, wherein the domain model is used to generate a dimensional model associated with a staging database for the data and other data retrieved from one or more applications in data communication with the framework.
17. The system of claim 14, wherein the data is assigned a location using a location service hosted on another computer.
18. The system of claim 17, wherein the location is identified using an ALM URI.
19. The system of claim 14, wherein the domain model is configured to normalize other data retrieved from the application using the common data representation, the other data being stored in a data warehouse and located using an ALM URI.
20. A computer program product embodied in a computer readable medium and comprising computer instructions for:
evaluating data retrieved from an application in data communication with a framework hosted by a computer;
identifying an element associated with the data and another element associated with the framework;
creating a common data representation associated with the element, wherein the common data representation is generated according to a domain model associated with the framework; and
generating a map associating the common data representation to the element and another element associated with the framework.
US12/503,064 2008-07-14 2009-07-14 Open application lifecycle management framework domain model Abandoned US20100011337A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/503,064 US20100011337A1 (en) 2008-07-14 2009-07-14 Open application lifecycle management framework domain model

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8046208P 2008-07-14 2008-07-14
US12/503,064 US20100011337A1 (en) 2008-07-14 2009-07-14 Open application lifecycle management framework domain model

Publications (1)

Publication Number Publication Date
US20100011337A1 true US20100011337A1 (en) 2010-01-14

Family

ID=41506223

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/503,052 Expired - Fee Related US8584112B2 (en) 2008-07-14 2009-07-14 Open application lifecycle management framework
US12/503,064 Abandoned US20100011337A1 (en) 2008-07-14 2009-07-14 Open application lifecycle management framework domain model
US14/048,871 Active US10282197B2 (en) 2008-07-14 2013-10-08 Open application lifecycle management framework

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/503,052 Expired - Fee Related US8584112B2 (en) 2008-07-14 2009-07-14 Open application lifecycle management framework

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/048,871 Active US10282197B2 (en) 2008-07-14 2013-10-08 Open application lifecycle management framework

Country Status (2)

Country Link
US (3) US8584112B2 (en)
WO (2) WO2010009178A1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083213A1 (en) * 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Application builder for industrial automation
US20120084748A1 (en) * 2010-10-01 2012-04-05 International Business Machines Corporation System and a method for generating a domain-specific software solution
US20120102397A1 (en) * 2010-04-21 2012-04-26 Randall Arms Safety methods for non-programmatic integration systems
US20130318501A1 (en) * 2012-05-25 2013-11-28 International Business Machines Corporation Capturing domain validations and domain element initializations
US20140143756A1 (en) * 2012-11-20 2014-05-22 International Business Machines Corporation Affinity recommendation in software lifecycle management
WO2014120139A1 (en) * 2013-01-30 2014-08-07 Hewlett-Packard Development Company, L.P. Acquiring identification of an application lifecycle management entity associated with similar code
US20140245254A1 (en) * 2013-02-28 2014-08-28 Tata Consultancy Services Limited Identifying quality requirements of a software product
US20150074634A1 (en) * 2013-09-06 2015-03-12 Unisys Corporation Business suite framework for developing software applications
US9081632B2 (en) 2010-04-21 2015-07-14 Lexmark International Technology Sa Collaboration methods for non-programmatic integration systems
US9262125B2 (en) * 2014-05-15 2016-02-16 Microsoft Technology Licensing, Llc Contextual focus-agnostic parsing-validated alternatives information
US20160070541A1 (en) * 2014-09-08 2016-03-10 Unisys Corporation Conversion of business suite solutions
US9336377B2 (en) 2010-04-21 2016-05-10 Lexmark International Technology Sarl Synchronized sign-on methods for non-programmatic integration systems
US9342512B1 (en) 2013-03-15 2016-05-17 Tasktop Technologies, Incorporated System and method for repairing data synchronization links
US9459839B2 (en) 2014-12-15 2016-10-04 Tasktop Technologies, Incorporated Systems and methods to synchronize artifact relationships across a plurality of repositories
US9977820B1 (en) 2013-03-15 2018-05-22 Tasktop Technologies, Incorporated System and method for synchronizing states in associated data records
US10713015B2 (en) * 2016-05-15 2020-07-14 Servicenow, Inc. Visual programming system
US20210029097A1 (en) * 2019-07-23 2021-01-28 Harris Global Communications, Inc. Cross-domain information transfer system and associated methods
US10915508B2 (en) * 2016-06-30 2021-02-09 Global Ids, Inc. Data linking
US10936980B2 (en) * 2018-05-07 2021-03-02 Servicenow, Inc. Graphical user interface for enterprise project portfolio management utilizing normalized project attributes mapped to a common framework

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612931B2 (en) * 2010-07-14 2013-12-17 International Business Machines Corporation Interactive blueprinting for packaged applications
US8869096B2 (en) * 2012-02-14 2014-10-21 Huawei Technologies Co., Ltd. Requirement management method and apparatus
US8843889B2 (en) 2012-04-04 2014-09-23 International Business Machines Corporation Managing application template artifacts in a networked computing environment
US20140317590A1 (en) * 2013-04-17 2014-10-23 International Business Machines Corporation Automating the analysis of application lifecycle management data for software developement
US20150007129A1 (en) * 2013-06-28 2015-01-01 John Alex William Script execution framework
CN106471799B (en) * 2014-07-02 2020-06-05 索尼公司 Image display device
US10108414B2 (en) 2014-10-09 2018-10-23 International Business Machines Corporation Maintaining the integrity of process conventions within an ALM framework
WO2016099346A1 (en) * 2014-12-15 2016-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and deployment module for managing a container to be deployed on a software platform
US9727330B2 (en) 2015-11-25 2017-08-08 Red Hat, Inc. Source to image transformation pipeline for a platform-as-a-service system
US10623276B2 (en) 2015-12-29 2020-04-14 International Business Machines Corporation Monitoring and management of software as a service in micro cloud environments
US10782963B2 (en) * 2017-09-11 2020-09-22 Siemens Industry Software GmbH Introducing artifact information system and method
US10732948B2 (en) * 2017-12-01 2020-08-04 Jpmorgan Chase Bank, N.A. System and method for implementing automated deployment
CN108647042B (en) * 2018-05-11 2021-10-22 成都六零加信息技术有限公司 Module management method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167563A (en) * 1998-09-17 2000-12-26 Unisys Corporation Method and system for building components in a framework useful in developing integrated business-centric applications
US7213227B2 (en) * 2002-08-29 2007-05-01 Sap Aktiengesellschaft Rapid application integration using an integrated development environment

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139999B2 (en) * 1999-08-31 2006-11-21 Accenture Llp Development architecture framework
US20030158810A1 (en) * 1999-10-28 2003-08-21 Naiem Dathi Method, system, and apparatus for open services architecture
WO2002017096A1 (en) * 2000-08-25 2002-02-28 Kinzan.Com Method and apparatus for implementing a web application
WO2003065634A2 (en) * 2002-02-01 2003-08-07 John Fairweather System and method for analyzing data
US20050262189A1 (en) * 2003-08-27 2005-11-24 Ascential Software Corporation Server-side application programming interface for a real time data integration service
US20050235274A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Real time data integration for inventory management
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
US20060015381A1 (en) * 2004-07-14 2006-01-19 Manyworlds, Inc Business lifecycle management system
US20060021018A1 (en) * 2004-07-21 2006-01-26 International Business Machines Corporation Method and system for enabling trust infrastructure support for federated user lifecycle management
US9645712B2 (en) * 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US20060074703A1 (en) * 2004-10-04 2006-04-06 Grand Central Communications, Inc. Providing and managing business processes
EP1672484A1 (en) * 2004-12-17 2006-06-21 Sap Ag System for identification of context related information in knowledge sources
US8024743B2 (en) * 2004-12-30 2011-09-20 Sap Ag Connection of clients for management of systems
US8200537B2 (en) * 2006-03-31 2012-06-12 Digital River, Inc. Integrated retailer process
US20070255843A1 (en) * 2006-04-28 2007-11-01 Zubev Alexander I Configuration of clients for multiple computer services
US7870536B2 (en) * 2006-06-15 2011-01-11 International Business Machines Corporation Computer implemented method and system for sharing resources among hierarchical containers of resources
US8132153B2 (en) * 2007-05-09 2012-03-06 Wipro Limited Quality management framework for a software lifecycle
US20090254422A1 (en) * 2007-10-22 2009-10-08 Paul Thomas Jenkins Method and system for managing enterprise content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167563A (en) * 1998-09-17 2000-12-26 Unisys Corporation Method and system for building components in a framework useful in developing integrated business-centric applications
US7213227B2 (en) * 2002-08-29 2007-05-01 Sap Aktiengesellschaft Rapid application integration using an integrated development environment

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352905B2 (en) * 2008-09-30 2013-01-08 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US20100083213A1 (en) * 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Application builder for industrial automation
US9081632B2 (en) 2010-04-21 2015-07-14 Lexmark International Technology Sa Collaboration methods for non-programmatic integration systems
US20120102397A1 (en) * 2010-04-21 2012-04-26 Randall Arms Safety methods for non-programmatic integration systems
US9336377B2 (en) 2010-04-21 2016-05-10 Lexmark International Technology Sarl Synchronized sign-on methods for non-programmatic integration systems
US9824204B2 (en) 2010-04-21 2017-11-21 Kofax International Switzerland Sarl Systems and methods for synchronized sign-on methods for non-programmatic integration systems
US20120084748A1 (en) * 2010-10-01 2012-04-05 International Business Machines Corporation System and a method for generating a domain-specific software solution
US8752004B2 (en) * 2010-10-01 2014-06-10 International Business Machines Corporation System and a method for generating a domain-specific software solution
US20130318501A1 (en) * 2012-05-25 2013-11-28 International Business Machines Corporation Capturing domain validations and domain element initializations
US9361210B2 (en) * 2012-05-25 2016-06-07 International Business Machines Corporation Capturing domain validations and domain element initializations
US9361209B2 (en) * 2012-05-25 2016-06-07 International Business Machines Corporation Capturing domain validations and domain element initializations
US11327742B2 (en) * 2012-11-20 2022-05-10 International Business Machines Corporation Affinity recommendation in software lifecycle management
US11321081B2 (en) * 2012-11-20 2022-05-03 International Business Machines Corporation Affinity recommendation in software lifecycle management
US20140143749A1 (en) * 2012-11-20 2014-05-22 International Business Machines Corporation Affinity recommendation in software lifecycle management
US20140143756A1 (en) * 2012-11-20 2014-05-22 International Business Machines Corporation Affinity recommendation in software lifecycle management
CN104937540A (en) * 2013-01-30 2015-09-23 惠普发展公司,有限责任合伙企业 Acquiring identification of application lifecycle management entity associated with similar code
US20150355888A1 (en) * 2013-01-30 2015-12-10 Hewlett-Packard Development Company, L.P. Acquiring identification of an application lifecycle management entity associated with similar code
US10175958B2 (en) * 2013-01-30 2019-01-08 Entit Software Llc Acquiring identification of an application lifecycle management entity associated with similar code
WO2014120139A1 (en) * 2013-01-30 2014-08-07 Hewlett-Packard Development Company, L.P. Acquiring identification of an application lifecycle management entity associated with similar code
US9009653B2 (en) * 2013-02-28 2015-04-14 Tata Consultancy Services Limited Identifying quality requirements of a software product
US20140245254A1 (en) * 2013-02-28 2014-08-28 Tata Consultancy Services Limited Identifying quality requirements of a software product
US9977820B1 (en) 2013-03-15 2018-05-22 Tasktop Technologies, Incorporated System and method for synchronizing states in associated data records
US9342512B1 (en) 2013-03-15 2016-05-17 Tasktop Technologies, Incorporated System and method for repairing data synchronization links
US9612804B2 (en) * 2013-09-06 2017-04-04 Unisys Corporation Business suite framework for developing software applications
US20150074634A1 (en) * 2013-09-06 2015-03-12 Unisys Corporation Business suite framework for developing software applications
US9262125B2 (en) * 2014-05-15 2016-02-16 Microsoft Technology Licensing, Llc Contextual focus-agnostic parsing-validated alternatives information
US20160070541A1 (en) * 2014-09-08 2016-03-10 Unisys Corporation Conversion of business suite solutions
US9459839B2 (en) 2014-12-15 2016-10-04 Tasktop Technologies, Incorporated Systems and methods to synchronize artifact relationships across a plurality of repositories
US10713015B2 (en) * 2016-05-15 2020-07-14 Servicenow, Inc. Visual programming system
US10915508B2 (en) * 2016-06-30 2021-02-09 Global Ids, Inc. Data linking
US10936980B2 (en) * 2018-05-07 2021-03-02 Servicenow, Inc. Graphical user interface for enterprise project portfolio management utilizing normalized project attributes mapped to a common framework
US20210029097A1 (en) * 2019-07-23 2021-01-28 Harris Global Communications, Inc. Cross-domain information transfer system and associated methods
US11115395B2 (en) * 2019-07-23 2021-09-07 Harris Global Communications, Inc. Cross-domain information transfer system and associated methods

Also Published As

Publication number Publication date
WO2010009176A1 (en) 2010-01-21
US10282197B2 (en) 2019-05-07
US20100017792A1 (en) 2010-01-21
WO2010009178A1 (en) 2010-01-21
US8584112B2 (en) 2013-11-12
US20140101632A1 (en) 2014-04-10

Similar Documents

Publication Publication Date Title
US10282197B2 (en) Open application lifecycle management framework
Da Costa et al. A framework for evaluating the results of the szz approach for identifying bug-introducing changes
CN108764808B (en) Data analysis processing system and online model deployment method thereof
Khan et al. Sharing interoperable workflow provenance: A review of best practices and their practical application in CWLProv
US8768880B2 (en) Automated data analysis and transformation
US8468391B2 (en) Utilizing log event ontology to deliver user role specific solutions for problem determination
Spinellis et al. Evaluating the quality of open source software
US20130318095A1 (en) Distributed computing environment for data capture, search and analytics
US20110137923A1 (en) Xbrl data mapping builder
US20130166563A1 (en) Integration of Text Analysis and Search Functionality
US20120158416A1 (en) Web-service based generation of business objects
Euzenat et al. Ontology alignments: an ontology management perspective
US20130174048A1 (en) Techniques for guided access to an external distributed file system from a database management system
Gousios et al. A platform for software engineering research
CN114168421A (en) Customized code compatibility analysis system and method based on micro-service call chain
Herbold et al. Combining usage-based and model-based testing for service-oriented architectures in the industrial practice
US20210264312A1 (en) Facilitating machine learning using remote data
US8396847B2 (en) System and method to retrieve and analyze data for decision making
Zloch et al. A software framework and datasets for the analysis of graph measures on RDF graphs
Barmpis et al. Monitoring model analytics over large repositories with Hawk and MEASURE
Schad et al. Arangopipe, a tool for machine learning meta-data management
Buchgeher et al. A platform for the automated provisioning of architecture information for large-scale service-oriented software systems
Futrelle et al. Tracking provenance semantics in heterogeneous execution systems
Butt et al. Towards Ontology Driven Provenance in Scientific Workflow Engine.
Schreiber et al. Analyzing software engineering processes with provenance-based knowledge graphs

Legal Events

Date Code Title Description
AS Assignment

Owner name: BORLAND SOFTWARE CORPORATION, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOUNG, CHARLES C.;VELUR, SHASHI KUMAR;CHASE, RAYMOND;AND OTHERS;REEL/FRAME:023293/0348;SIGNING DATES FROM 20090924 TO 20090925

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION