Title: Slajd 1
1Comprehensive System for Systematic
Case-Driven Software Reuse
M. Smialek, A. Kalnins, E. Kalnina, A.
Ambroziewicz, T. Straszak, K. Wolter
Warsaw University of Technology, Poland IMCS
University of Latvia, Latvia University of
Hamburg, Germany
SOFSEM 2010 25.01.2010
2Outline reuse schema
Requirements driven
Transformation driven
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
Software case repositories
dR2
Retrieval technologies
Software Case 12
Requirements 2
Design 2
Code 2
3ReDSeeDS Engine
3
4Reuse schema step 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
Software Case 12
Requirements 2
Design 2
Code 2
5RSL scenarios vocabulary
6RSL Editor
7Evolution schema step 2
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
Software Case 12
Requirements 2
Design 2
Code 2
8R to D transformation rules
Requirements
Domain Notion
Use Case
Domain Statement
Scenario step
Scenario step
Scenario step
DS Logic
Design
AL_Interface al_operation
DL_Interface dl_operation
Application Behavior
Domain Behavior
9D t(R) - structure
10D t(R) - dynamics
11Evolution schema step 3
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
Software Case 12
Requirements 2
Design 2
Code 2
12Application logic code
IShowExtendedCourseList
class CShowExtendedCourseList implements
IShowExtendedUserList // (...)
wantsToSeeCourseList() // //
class CShowExtendedCourseList implements
IShowExtendedUserList // (...)
wantsToSeeCourseList() ICourseList.builds(cl
) UI.showsCourseList(cl)
CourseManagement
13Domain logic code
CoursesServices
ICourseList
class CCourseList implements ICourseList //
(...) void builds(CourseListDTO cld) //
// // // //
class CCourseList implements ICourseList //
(...) void builds(CourseListDTO cld)
UserListDTO resList for (i1
iuser_list_length i)
resList.add(userListi) cldresList
R1
14R to D to C and reuse
Requirements
Technological Framework
Non-functional Requirements
Functional Requirements
Domain Definition
R to D Transformation
Design
System Structure
Application Behaviour
Domain Behaviour
D to C Transformation
Code
15Reuse schema step 4
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
Software Case 12
Requirements 2
Design 2
Code 2
16Extending requirements
17Reuse schema step 5
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
Software Case 12
Requirements 2
Design 2
Code 2
18R to D to C again
19New application logic code
IShowExtendedCourseList
class CShowExtendedCourseList implements
IShowExtendedUserList // (...)
wantsToSeeCourseList() UI.showsCourseFilterF
orm(f)
CourseManagement
20New domain logic code
CoursesServices
C1
ICourseFilter
class CCourseList implements ICourseList //
(...) void builds(CourseFilterDTO fil,
CourseListDTO cld) UserListDTO
resList for (i1 iuser_list_length i)
if compare(udto,userListi)
resList.add(userListi) cldresList
R2
21Determine elements for reuse
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
Software Case 12
Requirements 2
Design 2
Code 2
22Similarity measures
- Similarity measures based on
- common terminology
- description logic
- structural approach
(defResource c1Client--NounPhrase (rdftype
owlClass) (owlintersectionOf
TRRSLNounPhrase (owlRestriction
(owlonProperty TRRSLnounLink) (owlallValuesFr
om TYorder2)) (owlRestriction
(owlonProperty TRRSLisPartOfDomainStatement_d1
e3741) (owlallValuesFrom c2order--DomainStateme
nt))))
23Showing similarity
24Showing elements for reuse
25Summary evolution or revolution?
support for reuse
Software Case 15
Requirements 4
Design 4
Code 4
QR4
dR4
instant refactor
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Software Case 1
Requirements 1
Design 1
Code 1
dR2
instant diff
Software Case 12
Requirements 2
Design 2
Code 2
26Thank you for your attention.
www.redseeds.eu
27Consortium members, duration and budget
Infovide S.A. Warsaw University of Technology
HITeC e.V. University of Koblenz-Landau PRO DV
Software AG Fraunhofer - Gesellschaft (Institute
for Experimental Software Engineering)
Latvia Institute of Mathematics and Computer
Science - University of Latvia
Algoritmu sistemos, UAB
Vienna University of Technology
C/S IT Ltd. - Cybersoft
Heriot-Watt University
Budget 3.804.000,- Community Contribution
2.990.710,- Duration September 2006 October
2009
27