Methods and systems for managing software development
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06Q-030/06
G06F-021/10
G06F-009/44
출원번호
US-0961975
(2007-12-20)
등록번호
US-9489687
(2016-11-08)
발명자
/ 주소
Pedersen, Palle M.
출원인 / 주소
BLACK DUCK SOFTWARE, INC.
대리인 / 주소
Foley & Lardner LLP
인용정보
피인용 횟수 :
2인용 특허 :
60
초록▼
Methods and systems to manage software development. Embodiments of the present invention allow a programmer to specify the software packages, services, and other materials used in a particular software project. As development of the software project proceeds, the materials associated with the projec
Methods and systems to manage software development. Embodiments of the present invention allow a programmer to specify the software packages, services, and other materials used in a particular software project. As development of the software project proceeds, the materials associated with the project are reviewed to identify the materials actually used in the project and to identify any discrepancies between what has been specified and what materials are actually used. Metadata, for example license and contractual terms and other policies relating to the specified materials and the materials actually used in the project may optionally be retrieved and analyzed to identify conflicting metadata.
대표청구항▼
1. A non-transitory computer readable medium storing instructions that, when executed by one or more computing processors, cause the one or more computing processors to: receive a specification of materials to be included in a software product thereby generating an inventory of materials included in
1. A non-transitory computer readable medium storing instructions that, when executed by one or more computing processors, cause the one or more computing processors to: receive a specification of materials to be included in a software product thereby generating an inventory of materials included in the software product, wherein the materials included in the software product include a source code component;receive a specification of metadata for at least one of the materials in the inventory, the metadata comprising licensing terms governing the distribution of the at least one of the materials;store the licensing terms in a profile in a database;verify that the materials included in the software product match the specified materials in the inventory, including comparing a first set of tokens generated for the source code component to a second set of tokens stored in the database for a corresponding component in the specified materials in the inventory, wherein the first set of tokens and the second set of tokens are generated by a same code compiler;verify that each of the licensing terms represented in the profile, for the materials used in the software product, are either compliant with a specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product;intermittently receive additional metadata comprising new or revised licensing terms governing the distribution of at least some of the specified materials in the inventory and update the licensing terms stored in the profile based on the received additional metadata; andverify that each of the licensing terms represented in the updated profile, for the materials used in the software product, are either compliant with the specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product. 2. The non-transitory computer readable medium of claim 1 further storing instructions that, when executed, cause the one or more computing processors to provide a graphical user interface to receive a specification of materials to be included in the software product. 3. The non-transitory computer readable medium of claim 1 further storing instructions to verify compatibility of the distribution terms associated with each of the materials with the distribution terms associated with others of the materials. 4. The non-transitory computer readable medium of claim 1 further storing instructions to receive approval of the materials in the inventory. 5. The non-transitory computer readable medium of claim 4 further storing instructions to store information regarding the approval of the materials in the inventory. 6. The non-transitory computer readable medium of claim 1 further storing instructions to receive a restriction on the use of materials in the inventory. 7. The non-transitory computer readable medium of claim 6 further storing instructions to verify that the restriction has not been violated. 8. The non-transitory computer readable medium of claim 1 further storing instructions to store metadata about at least one of the materials, the metadata comprising at least one of a web site for such materials; a version of such materials, information regarding the use of such materials, security vulnerability information, patch availability, patent information, support information, or coding standards. 9. The non-transitory computer readable medium of claim 1, wherein the instructions to verify the materials used in the product comprise instructions to examine source code of the software product and compare the source code to a library of software components. 10. The non-transitory computer readable medium of claim 9 wherein the instructions to compare the source code to a library comprise instructions to compare data derived from the source code of the software product to a library of data derived from the source code of a plurality of software components. 11. The non-transitory computer readable medium of claim 1 further storing instructions to provide an indication that at least one of the materials specified in the inventory is missing from the software product. 12. The non-transitory computer readable medium of claim 1 further storing instructions to providing provide an indication that at least one of the materials specified in the inventory has been modified. 13. The non-transitory computer readable medium of claim 1 further storing instructions to verify the version of each of the materials in the inventory. 14. The non-transitory computer readable medium of claim 1 further storing instructions to identify materials in the software product that have not been specified in the inventory. 15. The non-transitory computer readable medium of claim 1 further storing instructions to: receive a notification concerning at least one of the materials specified in the inventory; andprovide an indication concerning the received notification. 16. The non-transitory computer readable medium of claim 15 wherein the notification comprises at least one of the availability of a newer version of at least one of the materials specified in the inventory, a security vulnerability in at least one of the materials specified in the inventory, or pending litigation affecting at least one of the materials specified in the inventory. 17. The non-transitory computer readable medium of claim 1, wherein the profile is provided by an author or owner of the materials. 18. The non-transitory computer readable medium of claim 1, wherein the computer-executable instructions, when executed by the computing device, cause the computing device to search one or more of the materials included in the software product for license text or license information. 19. The non-transitory computer readable medium of claim 1, wherein the computer-executable instructions, when executed by the computing device, cause the computing device to verify that each of the licensing terms represented in the profile, for the materials used in the software product, are either compliant with the specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product by evaluating the profile for attributes and attribute values indicating compatibilities or incompatibilities. 20. A system for managing software development, the system comprising: a non-transitory computer-readable memory storing computer-executable instructions; anda computing device operatively coupled to the non-transitory memory, a receiver, and an interface, wherein the computer-executable instructions, when executed by the computing device, provide: a specification module for specifying materials to be included in a software product and generating an inventory of materials included in the software product, wherein the materials included in the software product include a source code component;a licensing module identifying licensing terms governing the distribution of specifying metadata for at least one of the materials in the inventory and storing the licensing terms in a profile; anda verification module for verifying that the materials included in the software product match the specified materials in the inventory,comparing a first set of tokens generated for the source code component to a second set of tokens stored in the database for a corresponding component in the specified materials in the inventory, wherein the first set of tokens and the second set of tokens are generated by a same code compiler, andverifying that each of the licensing terms represented in the profile, for the materials used in the software product, are either compliant with a specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product, andwherein the receiver is configured to: intermittently receive additional metadata comprising new or revised licensing terms governing the distribution of at least some of the specified materials in the inventory, update the stored profile with the received additional metadata, and notify the verification module to verify that each of the licensing terms represented in the updated profile, for the materials used in the software product, are either compliant with the specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product. 21. The system of claim 20 wherein the materials are one or more of software code and services. 22. The system of claim 20 wherein the metadata identified by the licensing module includes one of contractual terms and specified policies. 23. The system of claim 20 wherein the verification module verifies the compatibility of the distribution obligations associated with each of the materials. 24. The system of claim 20 wherein the interface receives approval of the materials in the inventory. 25. The system of claim 24 wherein the memory stores information regarding the approval of the materials in the inventory. 26. The system of claim 20 wherein the interface receives a restriction on the use of materials in the inventory. 27. The system of claim 26 wherein the verification module verifies that the restriction has not been violated. 28. The system of claim 20 wherein the memory stores metadata about at least one of the materials, the metadata comprising at least one of a web site for such materials; a version of such materials, information regarding the use of such materials, security vulnerability information, patch availability, patent information, support information, or coding standards. 29. The system of claim 20, wherein the verification module verifies the materials used in the product by examining source code of the software product and comparing the source code to a library of software components. 30. The system of claim 29 wherein the verification module compares the source code to a library by comparing data derived from the source code of the software product to a library of data derived from the source code of a plurality of software components. 31. The system of claim 20 wherein the interface provides an indication that at least one of the materials specified in the inventory is missing from the software product. 32. The system of claim 20 wherein the interface provides an indication that at least one of the materials specified in the inventory has been modified. 33. The system of claim 20 wherein the verification module verifies the version of each of the materials in the inventory. 34. The system of claim 20 wherein the verification module identifies materials in the software product that have not been specified in the inventory. 35. The system of claim 20 wherein the receiver is configured to receive a notification concerning at least one of the materials specified in the inventory and the interface provides an indication concerning the received notification. 36. The system of claim 35 wherein the notification comprises at least one of the availability of a newer version of at least one of the materials specified in the inventory, a security vulnerability in at least one of the materials specified in the inventory, or pending litigation affecting at least one of the materials specified in the inventory.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (60)
Tardo, Joseph John; Frailong, Jean-Marc; Mendoza, Harold Lee; Haris, Shiv, Apparatus and method for cryptographic-based license management.
Kitazato, Naohisa; Dewa, Yoshiharu; Katayama, Yasushi; Shimoji, Tatsuya; Kagemoto, Hideki; Tokuda, Katsumi; Murakami, Hiroki, Content distribution system and distribution method, and content processing device and processing method.
Downs Edgar ; Gruse George Gregory ; Hurtado Marco M. ; Lehman Christopher T. ; Milsted Kenneth Louis ; Lotspiech Jeffrey B., Electronic content delivery system.
Johnson Donald Byron ; Karger Paul Ashley ; Kaufman ; Jr. Charles William ; Matyas ; Jr. Stephen Michael ; Safford David Robert ; Yung Marcel Mordechay ; Zunic Nevenko, Interoperable cryptographic key recovery system.
Afifi Ashraf ; Chan Dominic ; Comuzzi Joseph J. ; Hart Johnson M. ; Pizzarello Antonio, Method and apparatus for analyzing computer code using weakest precondition.
Lee,Chris Guo; Matada,Anmol Neelammna; Wang,Ningning, Method and apparatus for determining relative relevance between portions of large electronic documents.
Wain,Mark N.; Shukla,Dharma; Mehta,Mayank; Fong,David; Bhandarkar,Aditya, Method and system for designing customizable applications and user-interfaces based on user-defined policies and metadata.
Cline David C. (San Jose CA) Silverman Andrew P. (Los Gatos CA) Wymore Farrell W. (Mountain View CA), Method for analyzing calls of application program by inserting monitoring routines into the executable version and redir.
Califano Andrea (New York NY), Method for finding a reference token sequence in an original token string within a database of token strings using appen.
Ruffin Michael ; Jayaram Kristin R. ; Merenda Ann C. ; Morrison Timothy I. ; Ordonez Carlos A. ; Preston Allen H. ; Temple ; III Joseph L. ; Yan Eva L., Method, system and program product for evaluating the business requirements of an enterprise for generating business solution deliverables.
Davis, Mark C.; Hind, John R.; Peters, Marcia L.; Topol, Brad B., Selective data encryption using style sheet processing for decryption by a group clerk.
Jain Ramesh ; Horowitz Bradley ; Fuller Charles E. ; Gupta Amarnath ; Bach Jeffrey R. ; Shu Chiao-fe, Similarity engine for content-based retrieval of images.
Driskell Dwight D. ; Greenspan Michael ; Henley Vivian C. ; Lane Nancy C. ; MacFarlane Lloyd ; Nielsen Betty J., System and method for associating services information with selected elements of an organization.
Devanbu Premkumar Thomas ; Stubblebine Stuart Gerald, System and method for providing assurance to a host that a piece of software possesses a particular property.
Premkumar Thomas Devanbu ; Stuart Gerald Stubblebine, System and method for providing assurance to a host that a piece of software possesses a particular property.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., System and methods for secure transaction management and electronic rights protection.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Lang, Ulrich; Schreiner, Rudolf, Method and system for rapid accreditation/re-accreditation of agile IT environments, for example service oriented architecture (SOA).
Lang, Ulrich; Schreiner, Rudolf, Method and system for rapid accreditation/re-accreditation of agile IT environments, for example service oriented architecture (SOA).
※ AI-Helper는 부적절한 답변을 할 수 있습니다.