Top Banner
Comprehensive System 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, Poland IMCS University of Latvia, Latvia University of Hamburg, Germany
27

Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

Dec 31, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

ReDSeeDS Engine

3

Page 4: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

RSL = scenarios + vocabulary

Course manage r

Add new course

Show extended course list

Page 6: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

RSL Editor

Page 7: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

D = t(R) - dynamics

Page 11: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

Extending requirements

Page 17: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

Showing similarity

Page 24: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

Showing elements for reuse

Page 25: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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 SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

Thank you for your attention.

www.redseeds.eu

Page 27: Comprehensive System for Systematic Case-Driven Software Reuse SOFSEM 2010 25.01.2010 M. Śmiałek, A. Kalnins, E. Kalnina, A. Ambroziewicz, T. Straszak,

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