Professional Documents
Culture Documents
US 8,607,190 B2
Dec. 10, 2013
Sundaresan Kirkpatrick et al. Yada Britton et a1. Chang et a1.
(54)
(Continued)
FOREIGN PATENT DOCUMENTS
WO 2007113164 10/2007
(Continued)
Primary Examiner * Henry Tsai
Assistant Examiner * Michael Sun
Filed:
US 2011/0099532 A1
(57)
ABSTRACT
(2006.01) (2006.01)
(52)
(58)
(56)
5,970,490 A *
architecture for the desired software application design. Finally, the architecture for the desired software application
design is outputted for use by a user. The decisions made
B1 B1 B1 B2 B2
during the software application design process are also cap tured for analysis for future improvement of the desired soft ware application design.
402
REcEwE WPUHD CREATE A snFrwARE APPUCAHUN DES1GN REcER/E SELECTWN UF WBUSTRY TYPE EoR soFrwARE APPUDATION DES1GN REcER/E sEEEcnou uE ARnRREmuRAL sn/EE EoR SDFTWARE APPucRRuN DES1GN REIREvE Eumcnomi IREMENTS EnR SDFTWARE LICAUDN DES1GN BASED ON sEEEcrEn WUUSTRY TVPE REWEVE NONVFUNWONAL
404
406
SOFTWARE c
SELECTED A
E BASED ON
1
REcuRn WUUSTRV TVPE
ARDHWECTURALSTY ,
REnmREMENTs AssocwEn
wRR non REWEVED FUNCYIONAL REQIRREMERT
FUN
RnREumREME
REYmEvE SDFYWARE
MODELS ASSOGATED W1TH REIRlEvED FUNWUNAL REDUWEMENYS REWEVE SUFTWARE
20
CREATEUPTW!
E REF R RE
YRANSFORM REWEVED
SDFYWARE MODELS WYD SOFTWARE CUBE PM THE SUFTWARE APPucRRuN DES1GN
422
US 8,607,190 B2
Page 2
(56)
7,526,501 7,546,295 7,630,877 7,890,517 7,979,840 8,346,929
2002/0069102 2002/0073106 2002/0129329 2002/0194053 2003/0009740 2003/0233631 2004/0172612 2004/0193476 2005/0044197 2005/0050311 2005/0050549 2005/0114829 2005/0138113 2005/0154769 2005/0166178 2005/0182744 2005/0278202 2006/0015489 2006/0047810 2006/0070083 2006/0174222 2006/0229896 2006/0236307 2006/0241931 2007/0043632 2007/0073663 2007/0112712 2007/0239768 2007/0261027 2007/0271277 2008/0059630 2008/0114700 2008/0126397 2008/0127047 2008/0133558 2008/0134137 2008/0178147 2008/0215358 2008/0215400 2008/0229195 2008/0270372 2008/0288944 2009/0064087 2009/0077043 2009/0089078 2009/0109225 2009/0112908 2009/0132211 2009/0138293 2009/0150860 2009/0158237 2009/0182610 2009/0182750 2009/0193057 2009/0193432 2009/0201917 2009/0204467 2009/0210390 2010/0082387 2010/0106656 2010/0161629 2011/0035391 2011/0099050 2011/0153292 2011/0153293 2011/0153608
B2 B2 B2 B2 B2 B1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
OTHER PUBLICATIONS
Sharples et al., The Design and Implementation of a Mobile Learn
............ ..
717/104
Curry et al.
Kasravi et al. Aerdts
Lai .............................. .. 709/223
Brendle et al.
Eckart et al. ................ .. 707/201
.............. ..
707/1
McVeigh et al.
Flinn et al.
Quinn-Jacobs
Dhanakshirur et al. Ivan et al. Sattler et al. Moore et al. Alexander et al.
Zhang et al.
Carlson et al. Petersen Meliksetain et al. Goldszmidt et al. Ban et al. Brauel et al. Hsu et al.
BV.aspx?ref:IE8Activity&a:http%3A%2F%2Fwww.ibm. com%2Fdeveloperworks%2Fcn%2Fwebservices%2Fws-soa-re
use1%2, Aug. 28, 2006.
Building SOA applications with reusable assets, Part 2: SOA recipe
reference
example,
http://www.microsofttranslator.com/BV.
aspx?ref:IE8Activity&a:http%3A%2F%2Fwww.ibm. com%2Fdeveloperworks%2Fcn%2Fwebservices%2Fws-soa
reuse2%2F, Aug. 28, 2006.
Building SOA applications with reusable assets, Part 3: WS response
Coqueret et al.
Isom
Chang et al.
Bursey
Srivastava et al. Wintel et al. Lane et al.
Lane et al. ...................... .. 705/7
McKegney et al.
Maes et al. Rubio et al. Lane
Cao et al. ........................ .. 705/7
Aspect Oriented Programming,IBM Technical Disclosure Bulletin, Sep. 15, 2008, pp. 1-3. Baum et al., Mapping Requirements to Reusable Components using Design Spaces, 2000, Proceedings 4th International Conference on Requirements Engineering, pp. 159-167. Hsiung et al., VERTAF: An Application Framework for the Design
and Veri?cation of Embedded Real-Time Software, IEEE Transac tions on Software Engineering, vol. 30, No. 10, Oct. 2004, pp. 656
674.
Sheth et al.
Palanisamy et al.
Werner et al. Coldicott et al. Lane et al. Coldicott et al. Lane et al.
Robinson et al., Finding Reusable UML Sequence Diagrams Auto matically, IEEE Software, 2004, pp. 60-67. Jin et al., Automated Requirements Elicitation: Combining a Model-Driven Approach with Concept Reuse, International Journal of Software Engineering and Knowledge Engineering, vol. 13, No. 1,
2003, pp. 53-82.
* cited by examiner
US. Patent
Sheet 1 013
US 8,607,190 B2
/
104\
102
/11O
@
106\
4-.
/-112
CUENT
SE=RVER
FIG. 1
.r
:
'
204
206
MEMORY
208
STORAGE
T
: PROCESSING
sYsTEM
PRO\CESSOR
UNIT
l . I
COMMUNICATIONS FABRIC
202
\
| <
> I
| |
'
I
i?
COMMUNICATIONS
i?
INPUT/OUTPUT
i?
D'SPLAY
\
| |
'
:
UNIT
UNIT
:-
210
212
COMPUTER READABLE MEDlA
PROGRAM CODE
2T4
Jl
/
216
FIG. 2
US. Patent
Sheet 2 of3
US 8,607,190 B2
SOFTWARE APPLICATION
REQUIREMENT MODULE
INDUSTRY TYPE
DES'Gg'OSgSTEM
,/
/ 312
302\
314 /
AROFIITEOTURE STYLE
FUNCTIONAL REQUIREMENTS
/ 316
318 /
NON-FUNCTIONAL REQUIREMENTS
1
306
\
W
REQUIREMENTS
V
FUNOTIONAL
NON-FUNOTIONAL
REQUIREMENTS
'/
AOvISER TOPIC MAPS
308
PATTERN ASSET
TOPIC MAPS
>
%
M
/
320 SOFTWARE MOOELS
I
\
322 SOFTWARE PATTERNS
TRANSFORMATION,
310/ LEARNING AND
REASONING ENGINE OPTIMIZED ARORITEOTURE FOR SOFTWARE AFRLIOATION DESIGN
324 /
FIG. 3
US. Patent
Sheet 3 0f 3
US 8,607,190 B2
4O2\
I
RECEIvE SELECTION OF
1
APPLY RETRIEvED SOFTWARE
PATTERNS TO ASSOCIATED
CODE SEQUENCES IN THE
SELECTED ARCHITECTURAL STYLE To AUTOMAHCALLY
40R IAEITIIRIIRRIETOI
SOFTWARE APPLICATION DESIGN
OI
/ 418
I
RETRIEvE FUNCTIONAL
CREATE AN OPTIMIzED
ARCH'TECTURE FOR
THE SOFTWARE
APPL'CAT'ON DES'GN
410/
I
MODELS ASSOCIATED WITH
PRIRITIJIIISCIIIIG
SOFTWARE CODE AND
412/
RETRIEvED FUNCTIONAL
REQU'REMENTS
PROCESS OF APPMNG
SOFTWARE PATTERNS TO
\420
I
414/
RETRIEVE SOFTWARE PATTERNS ASSOCIATED WITH RETRIEvED NON-FUNCTIONAL REQUIREMENTS
I
TRANSFORM RETRIEvED
IN REQUIREMENT MODULE
FOR FUTURE REFERENCE
I
OUTPUT ARCHITECTURE FOR THE SOFTWARE APPLICATION DESIGN \ 422 FOR USE BY A USER
END
FIG. 4
US 8,607,l90 B2
1
AUTOMATION OF SOFTWARE APPLICATION ENGINEERING USING MACHINE LEARNING AND REASONING BACKGROUND OF THE INVENTION
2
during the software application design process are also cap tured for analysis for future improvement of the desired soft ware application design.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
1. Field of the Invention The present invention relates generally to an improved data processing system and more speci?cally to a computer imple mented method, system, and computer usable program code
be implemented;
FIG. 2 is a diagram of a data processing system in which
reasoning.
2. Description of the Related Art The use of service-oriented architecture (SOA) environ ments and information services is fast becoming the preferred
design process depends upon a human element, the informa tion services within an enterprise system may lack consis
tency.
In addition, many enterprises are very good at producing,
erally be referred to herein as a circuit, module, or sys tem. Furthermore, the present invention may take the form of a computer program product embodied in any storage device
having computer readable program code embodied in the medium. A storage device for storing computer readable pro
35
reusing these IT assets. Two of the potentially most useful types of IT assets in software development are software mod els and software patterns. A key to successful software engi
gram code does not encompass a signal propagation media such as copper cable, optical ?ber or wireless transmission media.
Any combination of one or more computer-readable stor
age device may be utiliZed. The computer-readable storage device may be, for example but not limited to, an electronic,
memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc
read-only memory (CDROM), an optical storage device, or a magnetic storage device. processed in a suitable manner, if
50
necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, appa ratus, or device. The computer-usable medium may include a
retrieved. Further, software patterns associated with the retrieved non-functional requirements are retrieved. Then,
the retrieved software models are transformed into software
60
transmitted using any appropriate medium, including but not limited to wireless, wireline, optical ?ber cable, RF, etc. Computer program code for carrying out operations of the
present invention may be written in any combination of one or
more programming languages, including an object oriented programming language such as JavaTM, Smalltalk, C++ or the
architecture for the desired software application design. Finally, the architecture for the desired software application
design is outputted for use by a user. The decisions made
US 8,607,190 B2
3
alone software package, partly on the users computer and
partly on a remote computer or entirely on the remote com
4
enterprise that stores and manages reusable software assets and any other data related to these reusable software assets. In addition, storage 108 may be a standards-based business ser
vice repository that captures information regarding business services, business policies, and service subscribers.
Client devices 110, 112, and 114 also connect to network 102. Client devices 110, 112, and 114 may, for example, be
nal computer (for example, through the Internet using an Internet Service Provider).
The present invention is described below with reference to
?owchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products accord
ing to embodiments of the invention. It will be understood that each block of the ?owchart illustrations and/or block diagrams, and combinations of blocks in the ?owchart illus trations and/ or block diagrams, can be implemented by com puter program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose
provide data, such as, for example, boot ?les, operating sys tem images, and applications to client devices 110, 112, and 114. Moreover, network data processing system 100 may
include additional servers, clients, and other devices not shown to implement processes of illustrative embodiments. Of course, network data processing system 100 may be implemented as a number of different types of networks, such
as, for example, an intranet, a local area network (LAN), a wide area network (WAN), or the Internet. Also, is should be
noted that FIG. 1 is only intended as an example and not as an
mable data processing apparatus, create means for imple menting the functions/acts speci?ed in the ?owchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable
medium that can direct a computer or other programmable
25
data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruc tion means which implement the function/act speci?ed in the ?owchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing
apparatus to cause a series of operational steps to be per formed on the computer or other programmable apparatus to
30
architectural limitation for the different illustrative embodi ments. For example, illustrative embodiments may be imple mented within a single data processing system instead of within a network data processing system.
With reference now to FIG. 2, a block diagram of a data
FIG. 1, in which computer-usable program code or instruc tions implementing processes of illustrative embodiments may be located. In this illustrative example, data processing system 200 includes communications fabric 202, which pro vides communications between processor unit 204, memory
206, persistent storage 208, communications unit 210, input/ output (I/O) unit 212, and display unit 214.
Processor unit 204 serves to execute instructions for soft ware that may be loaded into memory 206. Processor unit 204
may be a set of one or more processors or may be a multi
reference to FIGS. 1-2, exemplary diagrams of data process ing environments are provided in which illustrative embodi ments may be implemented. It should be appreciated that
FIGS. 1-2 are only exemplary and are not intended to assert or
45
FIG. 1 depicts a pictorial representation of a network of data processing systems in which illustrative embodiments may be implemented. Network data processing system 100 is a network of data processing systems, such as, for example, computers and other devices, in which the illustrative embodiments may be implemented. Network data processing
system 100 contains network 102. Network 102 is the medium used to provide communication links between the
50
various computers and other devices connected together within network data processing system 100. Network 102
may include connections, such as wire, wireless communica tion links, or ?ber optic cables. In the depicted example, server 104 and server 106 connect
60
to network 102, along with storage unit 108. Storage 108 represents any type of storage device that is capable of storing
data in a structured or unstructured format. Also, storage 108
65
for persistent storage 208. In addition, persistent storage 208 may represent a plurality of persistent storage units. Communications unit 210, in these examples, provides for communications with other data processing systems or
devices, such as, for example, server 104 in FIG. 1. In these examples, communications unit 210 is a network interface
may represent a plurality of storage units coupled to network 102. Storage 108 may, for example, be any database within an
US 8,607,190 B2
5
card. Communications unit 210 may provide communica tions through the use of either, or both, physical and Wireless communications links. Input/output unit 212 alloWs for input and output of data With other devices that may be connected to data processing
6
Illustrative embodiments provide a computer implemented method, system, and computer usable program code for auto matically creating an optimiZed architecture for a softWare
data processing system 200. Instructions for the operating system and applications or
programs are located on persistent storage 208. The instruc
tions for the operating system and applications or programs may be loaded into memory 206 for execution by processor
unit 204. The processes of the different embodiments may be
architectural consistency, traceability, and accountability. In addition, illustrative embodiments provide improved archi tectural quality of the resulting softWare applications. This improved architectural consistency, traceability, accountabil ity, and quality of resulting softWare applications is achieved by mapping functional requirements for softWare application
designs to reusable softWare model assets and mapping non
during the softWare application design process are captured for future improvement analysis of softWare application
designs.
Illustrative embodiments provide the right softWare assets, Which is the content, to help solve the problem at hand, Which is the context. The context is provided by the scope of the softWare project and by the functional and non-functional requirements for that softWare project. The scope of a soft Ware project may be determined by the industry, such as, for
ferred to data processing system 200 for execution by proces sor unit 204. Program code 216 and computer-readable media 218 form computer program product 220 in these examples.
In one example, computer-readable media 218 may be in a
30
is part of persistent storage 208 for transfer onto a storage device, such as a hard drive that is part of persistent storage 208. In a tangible form, computer-readable media 218 also
may take the form of a persistent storage, such as a hard drive or a ?ash memory that is connected to data processing system
tural style, distributed computing architectural style, and so on, selected for the softWare project. Illustrative embodiments automatically select the content,
or softWare assets, Which is relevant to the context or problem
40
communications link and/or the connection may be physical or Wireless in the illustrative examples. The computer-read able media also may take the form of non-tangible media,
such as communication links or Wireless transmissions con
45
model previously designed for a claims system. The softWare model may, for example, be Written in a formal modeling
taining the program code. The different components illustrated for data processing
system 200 are not meant to provide architectural limitations to the manner in Which different illustrative embodiments
50
may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to, or in place of, those illustrated for data processing system 200. Other components shoWn in FIG. 2 may be varied from the illustrative examples shoWn. For example, a bus system may be used to implement
communications fabric 202 and may be comprised of one or more buses, such as a system bus or an input/output bus. Of
course, the bus system may be implemented using any suit able type of architecture that provides for a transfer of data
betWeen different components or devices attached to the bus system. Additionally, a communications unit may include one
or more devices used to transmit and receive data, such as a
60
another type of reusable softWare asset, a softWare pattern, to provide a consistent architecture for the softWare application design. Thus, illustrative embodiments automate a context to-content mapping to provide the best available softWare assets for a softWare application design.
With reference noW to FIG. 3, an exemplary illustration of
modem or a netWork adapter. Further, a memory may be, for example, memory 206 or a cache, such as found in an inter
65
face and memory controller hub, Which may be present in communications fabric 202.
a softWare application design system is depicted in accor dance With an illustrative embodiment. Software application design system 300 may be implemented in a netWork of data processing systems, such as netWork data processing system
US 8,607,190 B2
7
100 in FIG. 1. Alternatively, software application design sys tem 300 may be implemented in a single data processing
system, such as data processing system 200 in FIG. 2. Software application design system 300 is a data process ing system that includes a plurality of softWare components or modules that softWare application design system 300 uses to automatically create an optimiZed architecture for a softWare
8
ments. Source code and binary code are examples of artifacts adapted for use With the softWare assets. Other examples of artifacts include related documentation, such as requirement
process models, structural models, resource models, imple mentation models, and so forth, Which may additionally
application design by using reusable softWare assets. Soft Ware application design system 300 includes requirement module 302, context related content module 304, industry model repository (IMR) 306, pattern asset adviser 308, and transformation, learning, and reasoning engine 310. HoW ever, it should be noted that softWare application design sys
tem 300 is only meant as an example and not intended as a limitation on different illustrative embodiments. In other
Requirement module 302 is a softWare application designed to capture and store design requirements, such as
20
requirements for a plurality of softWare application designs. Non-functional requirements 318 de?ne global constraints that must be satis?ed by the softWare application design. These global constraints, also knoWn as softWare global
ment is a capability that a softWare application design must provide. Conformance to some set of requirements de?nes the success of a softWare application design project.
Requirement module 302 may capture and store published standards-based service components and composite business services, Which customers and business partners may dis
cover and use in their oWn business processes. Businesses
straints. In other Words, non-functional requirements 318 de?ne hoW the softWare application design is built Within a particular context. During a softWare development process, functional requirements 316 are incorporated into softWare artifacts and
are implemented in such a manner that the softWare satis?es
30
coupled, process-centric and industry-centric business ser vice ecosystems. As a result, requirement module 302 may signi?cantly reduce the complexity, cost, and risk associated
the functional requirements for the softWare application design. HoWever, non-functional requirements 318 are not
implemented in the same manner as functional requirements 316. Non-functional requirements 318 are more complex to deal With and are usually very abstract. In addition, non functional requirements 318 may con?ict With each other.
Context related content module 304 is the softWare com
Corporation. Rational RequisitePro is a requirements management tool that organiZes and documents project
requirements so that an enterprise can manage softWare appli
40
ponent that relates the context of a softWare application design to the appropriate content. For example, the context of a softWare application design may be driving a car. As a result, the related content may, for example, be maps, destination,
design project.
Architectural style 314 de?nes the architectural style, such
as, for example, an SOA, client/ server, or distributed comput
reservation service for a car rental company, IMR 306 auto ing architectural style, for the particular softWare application matically selects relevant softWare models 320, such as a use design project. Architectural style 314 may represent one or 55 case model for a reservation, a business process model, a
from after selecting the industry type for the softWare appli
to creating the reservation system. Consequently, IMR 306 must manage and maintain complex associations betWeen functional requirements and the reusable softWare models.
It should be noted that IMR 306 may be implemented as a
relational database. Moreover, IMR 306 includes topic maps 321. IMR 306 may use topic maps 321, for example, to maintain the complex associations betWeen functional requirements and the reusable softWare models needed to satisfy those functional requirements. Topic maps are an ISO standard for the representation and interchange of knoWl edge, With an emphasis on the ?ndability of information. The
US 8,607,l90 B2
9
ISO standard is formally known as ISO/IEC 1325012003.
Topic maps are a way to build standard indexes.
10
Transformation, learning, and reasoning engine 310 may, for
example, be a commercially available product, such as Agent
A topic map represents information using topics that may represent any concept from people, countries, and organiZa
tions to software modules, individual ?les, and events. In this
case, a topic may be a functional requirement, a non-func tional requirement, a software model, or a software pattern. In other words, illustrative embodiments may use a topic map to
Inc. in the United States, other countries, or both. The library includes AbleBeans for reading and writing text and database data, for data transformation and scaling, for rule-based infer
Associations between the topics within the topic map rep resent how topics relate to one another. In addition, the topic map maintains occurrences of the topics that represent where the topics may be found, such as a Webpage, a uniform
resource locator (URL), or a reference within a book. Thus,
encing using Boolean and fuZZy logic, and for machine leam ing techniques, such as neural networks, Bayesian classi?ers,
and decision trees. Rule sets created using the ABLE Rule
Language may be used by any of the provided inferencing engines, which range from simple if-then scripting to light
20
topic maps are similar to semantic networks, concept maps, and mind maps. Pattern asset adviser 308 provides the ability to automati cally select software patterns 322 or combinations of software patterns based on non-functional requirements 316 for the desired software application design. Using the car rental com pany example above, the functional requirement to create a reservation service will have a corresponding non-functional
weight inferencing to heavy-weight arti?cial intelligence (AI) algorithms using pattern matching and uni?cation.
With reference now to FIG. 4, a ?owchart illustrating an
exemplary process for automatically creating a software application design is shown in accordance with an illustrative
25
embodiment. The process shown in FIG. 4 may be imple mented in a software application design system, such as soft ware application design system 300 in FIG. 3.
ule 302 in FIG. 3, to receive an input from a user, such as a 30 solution architect, to create a software application design ware pattern. In general, a software pattern refers to a set of related utiliZing reusable software assets (step 402). After receiving
the input to create a desired optimal software application design in step 402, the requirement module then receives a selection by the user of an industry type, such as industry type 312 in FIG. 3, for the desired software application design
for the desired software application design, determine how the software application design solves the problem within the particular context.
Software pattern assets are often represented by a pattern
speci?cation and/or pattern implementation. Hence, consis tency, traceability, and accountability may be achieved by
mapping non-functional requirements 318 to the software patterns 322. Pattern asset adviser 308 may utiliZe topic maps 323 to maintain the complex associations between non-func tional requirements and the reusable software patterns needed to satisfy those non-functional requirements.
45
Then, the requirement module retrieves any functional requirements, such as functional requirements 316 in FIG. 3, required for the desired software application design based on
Transformation, learning, and reasoning engine 310 receives industry type 312, architectural style 314, software
models 320, and software patterns 322 for the desired soft ware application design from context related content module
software application design system utiliZes a transformation, learning, and reasoning engine, such as transformation, leam ing, and reasoning engine 310 in FIG. 3, to transform the
retrieved software model into software code for the desired
US 8,607,l90 B2
11
ture for the desired software application design, such as opti miZed architecture for the software application design 324 in
12
ordinary skill in the art to understand the invention for various
embodiments with various modi?cations as are suited to the
FIG. 3 (step 418). Afterward, the software application design system records the industry type, the architectural style, the functional requirements, the non-functional requirements, the software
model, the software patterns, the process of transforming the software model into the software code, and the process of applying the software patterns to the associated code sequences used to automatically create the optimiZed archi tecture for the desired software application design in the requirement module for future reference (step 420). Subse
embodiment containing both hardware and software ele ments. In a preferred embodiment, the invention is imple mented in software, which includes but is not limited to
Thus, illustrative embodiments of the present invention provide a computer implemented method, system, and com
apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, elec
20
puter program product for automatically creating an opti miZed architecture for a software application design using
reusable software assets based on machine learning and rea
soning. The ?owchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of pos sible implementations of systems, methods, and computer program products according to various embodiments of the
present invention. In this regard, each block in the ?owchart
or block diagrams may represent a module, segment, or por tion of code, which comprises one or more executable
25
memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of
optical disks include compact disk-read only memory (CD ROM), compact disk-read/write (CD-R/W) and DVD. A data processing system suitable for storing and/or
executing program code will include at least one processor
30
during execution.
Input/output or I/O devices (including but not limited to
of special purpose hardware and computer instructions. The terminology used herein is for the purpose of describ ing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms
a, an and the are intended to include the plural forms as
lers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices
cable modems, and Ethernet cards are just a few of the cur
rently available types of network adapters. The description of the present invention has been presented
for purposes of illustration and description, and is not
intended to be exhaustive or limited to the invention in the
50
form disclosed. Many modi?cations and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the prin
for performing the function in combination with other claimed elements as speci?cally claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaus
tive or limited to the invention in the form disclosed. Many modi?cations and variations will be apparent to those of
ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the inven tion and the practical application, and to enable others of
receiving a speci?cation of an industry classi?cation for the computer program, a speci?cation of Service Ori ented Architecture for the computer program, a plurality of functional requirements for the computer program, a
US 8,607,190 B2
13
gram, a requirement for fault-tolerance of the computer program and a requirement for scalability of the com puter program;
determining, by one or more processors, one or more of the
14
ability of the computer program are satis?ed is determined
from a combination of associated code sequences in softWare code for the computer program based on a speci?ed architec
tural style of the Service Oriented Architecture. 10. The method of claim 1, Wherein a transformation, learning, and reasoning engine uses a series of rules to deter
implement the functional requirements, are intercon nected by Service Oriented Architecture, and satisfy the requirements for (a) performance level of the computer program corresponding to the industry classi ?cation, (b) fault-tolerance of the computer program corresponding to the industry classi?cation, and (c) scal ability of the computer program corresponding to the
industry classi?cation.
2. The method of claim 1, further comprising: receiving a selection of an industry type for the desired
20
13. The method of claim 1, Wherein the functional require ments de?ne What the computer program is expected to accomplish Within a particular context. 14. The method of claim 1, further comprising: de?ning, by one or more processors, global constraints that must be satis?ed by the computer program, and Wherein the determined combinations of program components
puter program, Wherein the determining of the combinations of program components also satisfy the security constraints. 4. The method of claim 1, further comprising;
automatically creating a softWare architecture for the com
30
context, Wherein the softWare pattern is used for determining combinations of the program components that satisfy the
puter program by applying the determined combinations of the program components, Wherein the automatically
created softWare architecture satis?es the received func
interconnect, Wherein different interconnections of the pro gram components result in different characteristics for per formance, fault tolerance, and scalability of a resulting com puter program, Wherein the softWare patterns represent
to;
45
repeatable solutions implemented repeatedly in different development environments, Wherein performance level, fault
tolerance, and scalability values for the softWare patterns utiliZed in the determining step of the method are computed
receive a speci?cation of an industry classi?cation for the computer program, a speci?cation of Service Oriented Architecture for the computer program, a plurality of functional requirements for the computer program, a
puter program;
determine one or more of the program components that
used to satisfy requirements for (a) performance level, (b) fault-tolerance, and (c) scalability of the computer
program, Wherein the topic map complies With an Inter
national Organization for Standardization (ISO) stan dard for topic maps. 7. The method of claim 1, further comprising: outputting the computer program that is automatically cre
ated from the program combinations of the program
60
interconnected by Service Oriented Architecture, and satisfy the requirements for (a) performance level of the computer program corresponding to the industry classi ?cation, (b) fault-tolerance of the computer program corresponding to the industry classi?cation, and (c) scal
ability of the computer program corresponding to the
industry classi?cation.
17. A computer program product stored in a non-transitory
components.
8. The method of claim 1, Wherein the functional require
ments are based on the selected industry type.
65
puter program that reuses previously stored program compo nents and satis?es quality requirements for an industry for
US 8,607,190 B2
15
Which the computer program is targeted, the computer read able program code comprising:
computer readable program code to receive a speci?cation of an industry classi?cation for the computer program, a
16
18. The computer program product of claim 17, further
comprising:
computer readable program code to receive a selection of
speci?cation of Service Oriented Architecture for the computer program, a plurality of functional require
ments for the computer program, a requirement for per formance level of the computer program, a requirement for fault-tolerance of the computer program and a
an industry type for the desired softWare application design, Wherein the industry type is a component of the
mine the combinations of program components also satisfy the security constraints. 20. The computer program product of claim 17, further
comprising;
computer readable program code to automatically create a
computer readable program code to satisfy the require ments for (a) performance level of the computer pro
softWare architecture for the computer program by applying the determined combinations of the program components, Wherein the automatically created soft
Ware architecture satis?es the received functional
requirements and satis?es the requirements for (a) per formance level, (b) fault-tolerance and (c) scalability of
the computer program.
* * * * *