comprehensive system for systematic case-driven software reuse
DESCRIPTION
Comprehensive System for Systematic Case-Driven Software Reuse. M. Śmiałek , 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 .20 10. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/1.jpg)
ComprehensiveSystem for Systematic Case-Driven
Software Reuse
SOFSEM 2010
25.01.2010
M. Śmiałek, A. Kalnins, E. Kalnina,A. Ambroziewicz, T. Straszak, K. Wolter
Warsaw University of Technology, PolandIMCS University of Latvia, LatviaUniversity of Hamburg, Germany
![Page 2: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/2.jpg)
Outline – reuse schema
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
Requirements driven Transformation driven
Retrieval technologies
Software case repositories
![Page 3: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/3.jpg)
ReDSeeDS Engine
3
![Page 4: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/4.jpg)
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
Reuse schema – step 1
![Page 5: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/5.jpg)
RSL = scenarios + vocabulary
Course manage r
Add new course
Show extended course list
![Page 6: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/6.jpg)
RSL Editor
![Page 7: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/7.jpg)
Evolution schema – step 2
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
![Page 8: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/8.jpg)
DesignAL_Interfaceal_operation
DL_Interfacedl_operation
R to D transformation rules
Requirements
Scenario stepScenario step
Application Behavior
Domain Behavior
Domain Notion
DS Logic
Domain StatementUse Case
Scenario step
![Page 9: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/9.jpg)
D = t(R) - structure
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
UserInterface::UIComponent
UI
BusinessLogic::CoursesServ ices
ICourseICourseList
«interface»CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
«interface»CourseManagement::
IShowExtendedCourseList
+ wantsToSeeCourseList()
«interface»CoursesServices::
ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
«interface»CoursesServices::
ICourseList
+ builds(CourseListDTO)
«interface»UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseList()
![Page 10: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/10.jpg)
D = t(R) - dynamics
![Page 11: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/11.jpg)
Evolution schema – step 3
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
![Page 12: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/12.jpg)
class CShowExtendedCourseList implements IShowExtendedUserList {// (...) wantsToSeeCourseList(){ // // }}
Application logic code
class CShowExtendedCourseList implements IShowExtendedUserList {// (...) wantsToSeeCourseList(){ ICourseList.builds(cl); UI.showsCourseList(cl); }}
CourseManagement
IShowExtendedCourseList
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
UserInterface::UIComponent
UI
BusinessLogic::CoursesServ ices
ICourseICourseList
CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
CourseManagement::IShowExtendedCourseList
+ wantsToSeeCourseList()
CoursesServices::ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
CoursesServices::ICourseList
+ builds(CourseListDTO)
UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseList()
![Page 13: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/13.jpg)
class CCourseList implements ICourseList {// (...) void builds(CourseListDTO cld){ // // // // // }}
Domain logic code
class CCourseList implements ICourseList {// (...) void builds(CourseListDTO cld){ UserListDTO resList; for (i=1; i==user_list_length; i++) { resList.add(userList[i]); } cld=resList; }}
CoursesServices
ICourseList
R1
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
UserInterface::UIComponent
UI
BusinessLogic::CoursesServ ices
ICourseICourseList
CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
CourseManagement::IShowExtendedCourseList
+ wantsToSeeCourseList()
CoursesServices::ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
CoursesServices::ICourseList
+ builds(CourseListDTO)
UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseList()
![Page 14: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/14.jpg)
R to D to C and reuse
Design
Requirements
Non-functional Requirements
R to D Transformation
Technological Framework
D to C Transformation
System Structure
Application Behaviour
Domain Behaviour
Functional Requirements
Domain Definition
Code
![Page 15: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/15.jpg)
Reuse schema – step 4
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
![Page 16: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/16.jpg)
Extending requirements
![Page 17: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/17.jpg)
Reuse schema – step 5
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
![Page 18: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/18.jpg)
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
BusinessLogic::CoursesServ ices
ICourseICourseFilter «interface»CoursesServices::
ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
«interface»CoursesServices::ICourseFilter
+ buildsCourseListWith(CourseFilterDTO, CourseListDTO)
UserInterface::UIComponent
UI
«interface»UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseFilterForm()+ showsCourseList()
«interface»CourseManagement::
IShowExtendedCourseList
+ entersCourseFilter()+ wantsToSeeCourseList()
«interface»CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
R to D to C again
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
UserInterface::UIComponent
UI
BusinessLogic::CoursesServ ices
ICourseICourseList
CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
CourseManagement::IShowExtendedCourseList
+ wantsToSeeCourseList()
CoursesServices::ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
«interface»CoursesServices::
ICourseList
+ builds(CourseListDTO)
UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseList()
![Page 19: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/19.jpg)
New application logic code
class CShowExtendedCourseList implements IShowExtendedUserList {// (...) wantsToSeeCourseList(){ UI.showsCourseFilterForm(f); }}
CourseManagement
IShowExtendedCourseList
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
UserInterface::UIComponent
UI
BusinessLogic::CoursesServ ices
ICourseICourseList
CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
CourseManagement::IShowExtendedCourseList
+ wantsToSeeCourseList()
CoursesServices::ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
CoursesServices::ICourseList
+ builds(CourseListDTO)
UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseList()
![Page 20: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/20.jpg)
New domain logic code
class CCourseList implements ICourseList {// (...) void builds(CourseFilterDTO fil, CourseListDTO cld){ UserListDTO resList; for (i=1; i==user_list_length; i++) { if compare(udto,userList[i]) resList.add(userList[i]); } cld=resList; }}
CoursesServices
ICourseFilter
R2
CourseManagement
IShowOwnedCourses
IChangeCourseData
IShowExtendedCourseList IAddNewCourse
UserInterface::UIComponent
UI
BusinessLogic::CoursesServ ices
ICourseICourseList
CourseManagement::IAddNewCourse
+ entersCourse()+ wantsToAddCourse()
CourseManagement::IShowExtendedCourseList
+ wantsToSeeCourseList()
CoursesServices::ICourse
+ registers(CourseDTO)+ verifies(CourseDTO)
CoursesServices::ICourseList
+ builds(CourseListDTO)
UserInterface::UI
+ showsCourseEntryForm()+ showsCourseErrorMessage()+ showsCourseList()
C1
![Page 21: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/21.jpg)
Determine elements for reuse
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Requirements 2 Design 2 Code 2
δR2
![Page 22: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/22.jpg)
Similarity measures
Similarity measures based on:• common terminology• description logic • structural approach
(defResource c1::Client--NounPhrase (rdf:type owl:Class)(owl:intersectionOf TRRSL:NounPhrase
(owl:Restriction (owl:onProperty TRRSL:nounLink)(owl:allValuesFrom TY::order2))(owl:Restriction
(owl:onProperty TRRSL:isPartOfDomainStatement_d1e3741)(owl:allValuesFrom c2::order--DomainStatement))))
![Page 23: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/23.jpg)
Showing similarity
![Page 24: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/24.jpg)
Showing elements for reuse
![Page 25: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/25.jpg)
Summary – evolution or revolution?
Software Case 1Software Case 1Software Case 1Software Case 1Software Case 1
Requirements 1 Design 1 Code 1
Software Case 12
Software Case 15
Requirements 4
δR4
Design 4 Code 4
Requirements 2 Design 2 Code 2
δR2
QR4
“instant diff”
“instant refactor”
support for reuse
![Page 26: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/26.jpg)
Thank you for your attention.
www.redseeds.eu
![Page 27: Comprehensive System for Systematic Case-Driven Software Reuse](https://reader035.vdocuments.mx/reader035/viewer/2022062721/5681389f550346895da05a66/html5/thumbnails/27.jpg)
Consortium members, duration and budget
27
Infovide S.A.Warsaw University of Technology
HITeC e.V.University of Koblenz-LandauPRO DV Software AGFraunhofer - Gesellschaft (Institute for Experimental Software Engineering)
Vienna University of Technology
Algoritmu sistemos, UAB
C/S IT Ltd. - Cybersoft
Heriot-Watt University
Latvia Institute of Mathematics and Computer Science - University of Latvia
Budget: 3.804.000,- € Community Contribution: 2.990.710,- €Duration: September 2006 – October 2009