1 / 27

Responsibility-based Transformation from Feature Model to Software Architecture

This workshop explores the responsibility-based approach for transforming feature models into software architectures. It discusses the challenges and proposes a systematic method to decouple the relationship between features and components. The goal is to leverage feature models in the design stage to improve software development.

gcurtis
Download Presentation

Responsibility-based Transformation from Feature Model to Software Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Responsibility-based Transformation from Feature Model to Software Architecture Haiyan Zhao (Joint work with Wei Zhang, Hong Mei) 1st workshop on bi-trans on ABC Dec. 7, 2007, PKU, Beijing

  2. Why Transformation? Feature Oriented Requirements Analysis Architecture Based Component Composition Design of Software Architecture Architecture Based Application Deployment • Requirement Analysis model design model • Feature Model  software architecture FMTool (Feature Modeling Tool) FDDItool (Feature driven domain Implementation Tool) 1st Workshop on Bi-Trans in ABC

  3. Relationship Classifier Relationship Classifier Invoke DirectExplicitInteraction +requirer Entity Require 1 * Meta - LevelConfigure DirectExplicitInteraction 1..2 1 * name 0..1 Constraint +requiree requirements * * 2.. 1.. +trigger Exclude specification Constraint Interaction ResourceConfigure 2 1 * * optionality 1..2 1 * Interaction IndirectExplicitInteraction binding - time +triggee ComplexConstraint binding - state Influence * IndirectExplicitInteraction * 2.. ComplexConstraint Decomposition Decomposition Feature ResourceContainer Notify DirectImplicitInteraction Detailization ResourceContainer DirectImplicitInteraction Detailization Flow +parent Specialization Refinement 1 * IndirectImplicitInteraction 1 0..1 Specialization Refinement +child Mutex IndirectImplicitInteraction 0..1 Source :Feature Model 1st Workshop on Bi-Trans in ABC

  4. Target : component model 1st Workshop on Bi-Trans in ABC

  5. How transformation? • Depends heavily on designers’ personal creativity and experience • Two fundamental problems to address: • How to address the m-n relationship between features and components; • How to construct the software architecture based on the feature model • Responsibility-based approach • Just a disciplined way • Not fully automated 1st Workshop on Bi-Trans in ABC

  6. A cluster of specifications Responsibility Operationalized into Assigned to Features Interactions between Features Components Interactions between Components GAP (THE PROBLEM SPACE) (THE SOLUTION SPACE) Responsibility-based Transformation • Take advantage of the information in feature models in the design stage 1st Workshop on Bi-Trans in ABC

  7. N-to-N 1-to-N N-to-1 What is Responsibility? • In intension, a responsibility is a cohesive set of program specifications. • In extension, a responsibility is a basic unit for work assignment to software developers. 7/45 1st Workshop on Bi-Trans in ABC

  8. <<Feature>> A <<Feature>> B <<Feature>> C Decouple the relationship between Features and Components • A feature is decomposed into a set of responsibilities R1 decomposed R2 R3 R6 R4 R7 R5 1st Workshop on Bi-Trans in ABC

  9. R1 R3 R2 R6 R4 R7 R5 Decouple the relationship between Features and Components A component can implemented a set of responsibilities <<Comp>> D R1 R3 Clustered <<Comp>> E R2 R4 R6 <<Comp>> F R7 R5 1st Workshop on Bi-Trans in ABC

  10. Relations between components • Identified from • Interaction between responsibilities • Responsibilities from same feature assigned to different component • Constraints on features <<Comp>> D R1 <<Comp>> E R1 1st Workshop on Bi-Trans in ABC R2 R2

  11. Special responsibility • Resource container is • to structure resources related to features • to be assigned responsibilities of passively accepting requests from environment for resource storing, querying and retrieving • To be identified by • analyzing the description of features • analyzing constraints on features 1st Workshop on Bi-Trans in ABC

  12. From Feature Model to Software Architecture: responsibility centric 1st Workshop on Bi-Trans in ABC

  13. <<Feature>> Edit <<Feature>> <<Feature>> <<Feature>> Copy Cut Paste <<Feature>> <<Feature>> Save Un/re - do <<Feature>> <<Feature>> Undo Redo Example: document editor • Feature1: Save • Save a document into a disk. • Feature2: Copy • Copy the selected text to the clipboard. • Feature3: Cut • Cut the selected text to the clipboard. • Feature4: Paste • Paste text from the clipboard to the current position in the document. • Feature5: Un/Re-do • Redo or undo unsaved edit operations (i.e. copy, cut, paste) according to users’ requests. 1st Workshop on Bi-Trans in ABC

  14. Example: document editor <<Feature Component>> Save <<Feature Component>> Copy 1 2 <<Feature Component>> Cut <<Feature Component>> Un/Re-do 3 <<Feature Component>> Paste 5 4 1st Workshop on Bi-Trans in ABC

  15. Example: document editor <<Resource Container>> Clipboard <<Feature Component>> Save 6 <<Feature Component>> Copy Save 1 Copy 2 <<Feature Component>> Cut <<Feature Component>> Un/Re-do Cut 3 <<Feature Component>> Paste 5 Paste 4 : Core Responsibility : Added Responsibility 1st Workshop on Bi-Trans in ABC

  16. Example: document editor <<Resource Container>> Clipboard <<Feature Component>> Save 6 <<Feature Component>> Copy Save 1 write Copy 2 <<Feature Component>> Un/Re-do <<Feature Component>> Cut write Cut 3 <<Feature Component>> Paste 5 read Paste : Core Responsibility : Added Responsibility 4 1st Workshop on Bi-Trans in ABC

  17. Example: document editor <<Resource Container>> Clipboard <<Feature Component>> Save 6 <<Feature Component>> Copy Inform Saved Save 1 write Record URI Copy 2 <<Feature Component>> Un/Re-do <<Feature Component>> Cut <<Resource Container>> Un/Re-do Info (URI) Redo Undo write Record URI Cut 7 3 Clear URI <<Feature Component>> Paste 5 Record URI read Paste : Core Responsibility : Added Responsibility 4 1st Workshop on Bi-Trans in ABC

  18. Example: document editor <<Resource Container>> Clipboard <<Feature Component>> Save 6 <<Feature Component>> Copy Inform Saved Save 1 write Record URI Copy write 2 inform <<Feature Component>> Un/Re-do <<Feature Component>> Cut <<Resource Container>> Un/Re-do Info (URI) consume Redo consume Undo write Record URI Cut write 7 3 Clear URI clear <<Feature Component>> Paste 5 Record URI read Paste : Core Responsibility : Added Responsibility write 4 1st Workshop on Bi-Trans in ABC

  19. Example: document editor <<Feature Component>> Save <<Resource Container>> Clipboard 6 Inform Saved Save 1 <<Feature Component>> Copy write inform Record URI Copy write 2 <<Feature Component>> Un/Re-do <<Feature Component>> Cut consume Redo consume Undo <<Resource Container>> Un/Re-do Info (URI) write Record URI Cut write 3 Clear URI clear 7 <<Feature Component>> Paste 5 Record URI read Paste : Core Responsibility : Added Responsibility write 4 1st Workshop on Bi-Trans in ABC

  20. Example: document editor <<Conceptual Component>> Clipboard <<Conceptual Component>> Save <<Resource Container>> Clipboard << Feature Component>> Save <<Conceptual Component>> URI <<Conceptual Component>> Edit <<Resource Container>> URI <<Feature Component>> Copy <<Conceptual Component>> Un/Re-do <<Feature Component>> Cut <<Feature Component>> Un/Re-do <<Feature Component>> Paste 1st Workshop on Bi-Trans in ABC

  21. Example: document editor <<Resource Container>> Clipboard <<Feature Component>> Save 6 Inform Saved Save <<Feature Component>> Copy 1 write Record URI Copy write 2 inform <<Feature Component>> Cut <<Feature Component>> Un/Re-do <<Resource Container>> Un/Re-do Info (URI) consume write Record URI Cut write Redo consume Undo 3 7 <<Feature Component>> Paste Clear URI clear 5 Record URI read Paste write 1st Workshop on Bi-Trans in ABC 4 : Core Responsibility : Added Responsibility

  22. Example: document editor <<Conceptual Component>> Clipboard <<Conceptual Component>> Save <<Resource Container>> Clipboard << Feature Component>> Save <<Conceptual Component>> Edit <<Conceptual Component>> Un/Re-do <<Feature Component>> Clipboard <<Feature Component>> Clipboard <<Feature Component>> Un/Re-do <<Resource Container>> URI <<Feature Component>> Clipboard 1st Workshop on Bi-Trans in ABC

  23. <<Conceptual Component>> Save <<Conceptual Component>> Clipboard << Feature Component>> Save <<Conceptual Component>> URI <<Resource Container>> Clipboard <<Resource Container>> URI Example: document editor Depend-on <<Infrastructure Component>> Stack Component (Provided by API) Depend-on Depend-on <<Infrastructure Component>> Clipboard Component (Provided by OS) <<Infrastructure Component>> I/O Component (Provided by OS) 1st Workshop on Bi-Trans in ABC

  24. Supporting tool • Provide • Import the feature model • Operationalize feature into responsibilities • Construct the component model • Cluster responsibilities into component • Identify the interaction between components 1st Workshop on Bi-Trans in ABC

  25. 1st Workshop on Bi-Trans in ABC

  26. Traceability between FM and SA • Responsibility centric • Xml files to trace relation • between feature and responsibilities • between responsibilities and components 1st Workshop on Bi-Trans in ABC

  27. To investigate • How to take advantage of the bi-Trans results • Rule to decompose feature into responsibilities is case by case • Rule to cluster responsibilities into component is case by case • Bi-Trans for documents ? 1st Workshop on Bi-Trans in ABC

More Related