sam supakkul titat software llc ssupakkul@ieee

15
Representing, Organizing and Reusing Knowledge about Functional and Non-Functional Concerns during Software Development Sam Supakkul Titat Software LLC [email protected] Lawrence Chung The University of Texas at Dallas [email protected]

Upload: edan

Post on 29-Jan-2016

24 views

Category:

Documents


2 download

DESCRIPTION

Representing, Organizing and Reusing Knowledge about Functional and Non-Functional Concerns during Software Development. Sam Supakkul Titat Software LLC [email protected]. Lawrence Chung The University of Texas at Dallas [email protected]. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sam Supakkul Titat Software LLC ssupakkul@ieee

Representing, Organizing and Reusing Knowledge

about

Functional and Non-Functional Concerns

during Software Development

Sam SupakkulTitat Software [email protected]

Lawrence ChungThe University of Texas at

[email protected]

Page 2: Sam Supakkul Titat Software LLC ssupakkul@ieee

Decisions during software development (implementation)

Student Course

class StudentCourse { A a_objs [] ; B b_objs [];}

class Student { Course courses[];}class Course { Student students[];}

class StudentCourse { List a_objs ; List b_objs;}

class Student { Map courses;}

class Course { Map students;}

many more alternatives

associationclass

objects on both sides

linked list hash table

Page 3: Sam Supakkul Titat Software LLC ssupakkul@ieee

Decisions during software development (design)

DeviceInterface AlarmManager

send-alarm

DeviceInterface

sendAlarm

AlarmManager

DeviceInterface PCQ

deposit

AlarmManager

remove

DeviceInterface MOM

send

AlarmManager

push

direct method invocation

PCQ (Producer-Consumer-Queue)intermediate asynchronous buffer

MOM Messaging middle-ware)

Page 4: Sam Supakkul Titat Software LLC ssupakkul@ieee

But, alternatives and the decision rationale not usually captured

So what? What’s the problem?

Evidence/justifications for Why certain solutions were chosen? What else were considered? Why they were chosen over other alternatives?

Page 5: Sam Supakkul Titat Software LLC ssupakkul@ieee

Ok, what do we do then?

represent and capture knowledge→ to record alternatives & justify decisions

Once knowledge can be captured organize knowledge reuse knowledge

Page 6: Sam Supakkul Titat Software LLC ssupakkul@ieee

Representing knowledgeA goal-oriented technique

+

_

X

Goal

Solution 1 Solution 2

Criteria

+

X

Goal

Solution 1 Solution 2

Criteria

++ +

_

X

Goal

Solution 1 Solution 2

Criteria 1

+

X

Solution 3 Solution 4

Criteria 2

++

+_

X

Goal

Solution 1 Solution 2

Criteria

Argument AGAINST

Argument FOR

Counter-argument

+ _ _

Page 7: Sam Supakkul Titat Software LLC ssupakkul@ieee

How do we represent knowledge in this example

Student Course

class StudentCourse { A a_objs [] ; B b_objs [];}

class Student { Course courses[];}class Course { Student students[];}

class StudentCourse { List a_objs ; List b_objs;}

class Student { Map courses;}

class Course { Map students;}

many more alternatives

Page 8: Sam Supakkul Titat Software LLC ssupakkul@ieee

Alternatives and decision rationale

Student Course* *

Implementation[Association]

Association Class [Association]

ObjectOnOneEnd [Association]

ObjectOnBoth Ends [Association]

Time Performance

Linkedlist [Association] HashTable

[Association]

SOME-

++

X X

Array [Association]

X X

++

Claim[“ Not good for update performance”]

Claim[“Not good for access from opposite end objects”]

Claim[“Not good for update as arrays need to be resized”]

Claim[“Not good for access as objects in hash table may not be readily traversable and in a desirable order”]

++ +

SOME- SOME-

CodeRefinement

Page 9: Sam Supakkul Titat Software LLC ssupakkul@ieee

Apply to other phases

EquipmentCost

Password

Biometrics

+_

AvailabilityIntegrity

Confidentiality

SecurityPresentationTier

BusinessLogicTier

DataTier

System

UserInterface

DataAccess

UserRequest

sd ViewSearchProducts

opt

Visitor

PresentationTier

search(criteria)

BusinesLogicTier

DataTier

search(criteria)query(criteria)

resultresult

result

[Visitor selected product]

select getProductDetails getProduct

Details

productDetails

productDetailsdisplayProduct

Visitor

Customer

ViewSearch Books

BuyBooks

OnlineBookstore

«extend»(BuySelected)

GetRecommendations

«include»

Login

«depend»

Performance [LargeActorVolume]

Time [LargeActorVolume]

Space [LargeActorVolume]

ResponseTime [LargeActorVolume]

Throughput [LargeActorVolume]

RespTime [LargeConnVol]

RespTime [LargeRequestVol]

RespTime [LargeDataVol]

+

3-TierImplicit

Invocation(messaging)

_

2-Tier

_

Scalability[LargeActorVolume]

eql

Relevance

Confidentiality[Information]

Confidentiality[Activity]

Authentication

Encryption

PKI

Usability

_

Claim[“Transparent for its integrated with most browsers”]

++ ++

++

++

++

++

SSL

SSL{system,interface}

LoginUsecase {include}

X

X

... ...

...

...

X X

... ...

_

+

Page 10: Sam Supakkul Titat Software LLC ssupakkul@ieee

Organizing knowledgeobject-oriented organization

Method

Simple Method

Pattern

Functional Operationalization

Method

Model Refinement

Method

Model Mapping Method

RefinementMethod

Operationalization Method

Argumentation Method

*

CorrelationRule

Meta Method

Method

Method Instance

Instantiate

Instantiate

generalization/specialization

aggregation/decomposition

classification/instantiation

Page 11: Sam Supakkul Titat Software LLC ssupakkul@ieee

Organization example

Goal

Solution 2

_

Criteria

+

Criteria

+

_

X

Goal

Solution 1 Solution 2

Criteria

Goal

Solution 1

K-graph pattern

Operationalizationmethod

Operationalizationmethod

Correlationrule

Correlationrule

Page 12: Sam Supakkul Titat Software LLC ssupakkul@ieee

Organization example (larger scale)

Visitor GetRecommendations

pat OnlineBookstore

pat e-Commerce

pat OnlineBookstoreFRs

e-CommerceSystem

Visitor

ViewSearchProducts

BuyProducts

Customer

BuyProductsInf

pat e-CommerceFRs

pat e-CommerceNFRs

e-CommerceSystem

Service

User

Scalability!

Security!

ServiceInterface

Relevance

pat OnlineBookstoreNFRs

User Service

pat ConfidentialitySolutions

Password

Biometrics

+_

security.Confidentiality[Information]

security.Confidentiality

[Activity]

Authentication

Encryption

SSL{system,interface}

PKI

Usability

_

Claim[“Transparent for its integrated with most browsers”]

++ ++

++

++

++

++

LoginUsecase {include}

pat SecurityNFR

Availability IntegrityConfidentiality

Security

Confidentiality[Information]

Confidentiality[Activity]

eql

pat Scalability

Time [LargeActorVolume]

Space [LargeActorVolume]

ResponseTime [LargeActorVolume]

Throughput [LargeActorVolume]

RespTime [LargeConnVol]

RespTime [LargeRequestVol]

RespTime [LargeDataVol]

Performance [LargeActorVolume]

Scalability[LargeActorVolume]

pat RespTime-ReqSolutions

+

3-TierImplicit

Invocation(messaging)

_

2-Tier

_

scalability.RespTime[LargetRequestVol}

/BuyProductsInf{redefines ServiceInterface}/Customer{redefines User}

/etRecommendations{redefines Service}/Customer{redefines User}

scalability

security

Composing patterns to form larger grain patterns …. to application level

e-Commerce pattern

OnlineBookstore pattern

Page 13: Sam Supakkul Titat Software LLC ssupakkul@ieee

Reusing knowledge

Student Course* *

TimePerformance!!

methods/patterns catalog

Process

manual or model-driven

Product

class StudentCourse { java.util.List studentByCourse; java.util.List courseByStudent;}

Code

Method Application

Source Model

NFRs

Method Knowledge Base

Page 14: Sam Supakkul Titat Software LLC ssupakkul@ieee

Conclusion A goal-oriented technique to explicitly

record alternatives decision rationale

Object-oriented technique to organize by generalization aggregation classification

For manual or model-driven reuse

Future work formalization and integration with UML tool support case studies

Page 15: Sam Supakkul Titat Software LLC ssupakkul@ieee

Thank you !

Representing, Organizing and Reusing Knowledge

about

Functional and Non-Functional Concerns

during Software Development Sam Supakkul

Titat Software [email protected]

Lawrence ChungThe University of Texas at

[email protected]