24
Towards a UML Profile for Software Product Lines - U3 ההההה הההההה ההההה ההההההה ההההההה הההה הההההההההה ההההDec. 2010 הההההה: ההה הההההההה ההה הההה הה ההההה ההההה: ההההה:Support And Service Systems

Towards a UML Profile for Software Product Lines - U3

  • Upload
    geneva

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

שם המאמר המוצג: . Towards a UML Profile for Software Product Lines - U3. Support And Service Systems. התחום: . סמינר בהנדסת תוכנה הפקולטה למערכות מידע אוניברסיטת חיפה Dec. 2010. מציגים: נסי אוטמזגין ענבל ממן. מה במצגת. מתוך המאמר רקע כללי. - PowerPoint PPT Presentation

Citation preview

Page 1: Towards a UML Profile for Software Product Lines - U3

Towards a UML Profile for Software Product Lines - U3

סמינר בהנדסת תוכנההפקולטה למערכות מידע

אוניברסיטת חיפהDec. 2010 מציגים: נסי אוטמזגין

ענבל ממן

שם המאמר המוצג:

Support And Serviceהתחום: Systems

Page 2: Towards a UML Profile for Software Product Lines - U3

...מה במצגתמתוך המאמר

.רקע כללי מידול התחום באמצעותClass Diagram.MetaModel -ל Sequence Diagram. מידול התחום באמצעותSequence Diagram. .שלבי המעבר ממידול תחום למידול מוצר

support and service systemsמידול התחום מידול התחום באמצעותClass Diagram . מידול התחום באמצעותSequence Diagram .

מסקנות

Page 3: Towards a UML Profile for Software Product Lines - U3

רקע- הגדרת מושגיםUML

הינה שפה כללית לאיפיון, תכן, בניה ותיעוד של מערכות תוכנה הכוללת מספר תרשימים . Use Case Diagram, Class Diagram, Sequence Diagramשונים למידול ביניהם

לתחומים ספציפיים נעשית UML (UML PROFILE)התאמת "אוצר המילים" במאמר של באמצעות:

<<<<Stereotypesסוג חדש של אלמנט מידול בעל מבנה דומה לאלמנט קיים אך עם אילוצים נוספים, סימון

חדש,

פירוש וטיפול שונים בכל אובייקט.

Tagged valuesמחרוזות תגים ומחרוזות הערכים. מחרוזות אלו שומרות מידע על אלמנט המידול

) tag-name=tag-value .(

Constraints}}אילוץ סמנטי המצוי בטקסט. האילוץ יכול להיכתב בצורה מתמטית פורמלית או לא

פורמלית.

.MetaModel של ה- UMLבאמצעות סימונים אלו נוכל להרחיב את מידול ה-

Page 4: Towards a UML Profile for Software Product Lines - U3

רקע- אודות המאמר

והוספת סימונים לשיטה, לצורך UML 2המאמר עוסק בהרחבת שיטת ה- •התאמת המידול לתחומים השונים.

תוך UML 2המאמר מציג את מידול קו המוצרים (תחום) באמצעות הרחבת • ובתוספת של Sequence Diagram ו- Class Diagramשימוש ב-

Stereotypes, tagged values and structural constraint לצורך יצירת ,הפרופיל הרצוי.

Software Product Linesהתחום עליו מודגמת השיטה במאמר הינו •engineering .

Page 5: Towards a UML Profile for Software Product Lines - U3

הצגת הבעיההאתגר במידול

Software Product Linesהאתגר העומד בפנינו בעת מידול התחום (PL) , :הינו הקוטביות במידול

, המידול צריך להיות מספיק רחב, כך שכל מוצר שייגזר ממודל התחום יהיה מחדשייך לתחום.

כזו שתאפשר יצירת מוצרים בעלי שונות שונות, המידול צריך להציג מאידךמהותית (לא כל המוצרים בעלי אותה פונקציונליות) אך עדיין להיכלל תחת תחום

אחד.

נבחין בשונויות: the development time variability - .שונות בתחום

the run time variability - .השונות בשלב של המוצר הספציפי

UML :כולל מספר טכניקות כגון inheritance, cardinality rang and class template המאפשרות לתאר את השונות של מוצר בודד שאותה

פותרים "בזמן ריצה".

Page 6: Towards a UML Profile for Software Product Lines - U3

לצורך המידול, ניעזר בדוגמא הבאה: נתונה מצלמה דיגיטלית הכוללת:

ממשקכרטיס זיכרוןחיישן(תצוגה) מסך.(אופציונאלי) דוחס תמונה

השונות המרכזית בדוגמא:הדוחס והפורמט של התמונה הנתמך על גבי כרטיס הזכרון, הפורמט יכול להיות

,interface1 ממשקים אשר נקראים 3פרמטרי אשר תלוי בממשק מסויים, יש inteface2, and interface3.

Class Diagramהרחבה ל- משמש לתיאור מבני של המערכת באמצעות מחלקות וקשרים ביניהן. classה-

שאנו class השונים, בשונה מה-Stereotypesבמקרה הנדון נוכל להבחין ב- מכירים.

באמצעות התחום ClassמידולDiagrams

Page 7: Towards a UML Profile for Software Product Lines - U3

StereotypesOptionality

.פירושו שחלק מהתכונות או האובייקטים הם אופציונאליים כך שיתכן שיופיעו רק בחלק מהמוצרים<< יוצג באמצעותoptional ויכול להתקיים על >>Classes, Packages, attributes or

operations - מבצע הרחבה לMeta Class Classifier, Package and Feature

Variation -הVariation Point ימודל באמצעות Inheritance -ו Stereotypes כל VP יוגדר כמחלקה

אבסטרקטית עם סט או מספר מחלקות יורשות. המחלקה האבסרקטית תתואר באמצעותStereotypes <<Variation וכל מחלקה יורשת >>

<<variantתתואר כ- >> מוצר ספציפי יכול לבחור (בשלב הגזירה) אחד או יותרvariant יש להוסיף למנוע בחירה מרובה או חוסר בחירהבמקרים בהם רוצים ,Constraint באמצעות

OCL (Object Constraint Language)(יוצג בהמשך)

Constraintניתן להגדיר בנוסף גם אילוצים מבניים, לדוגמא: הגדרה של אילוץ שאחראי על כך שניתן יהיה לבחור

variant-אחד בלבד בתוך ה variationיוצג באופן פורמאלי באמצעות ,Object Constraint Language :

context <<variant>>inv: self.supertype → select(oclIsKindOf(Variation))→size()=1

באמצעות התחום ClassמידולDiagrams

Page 8: Towards a UML Profile for Software Product Lines - U3

Class Diagram עבור מצלמה דיגיטלית

Page 9: Towards a UML Profile for Software Product Lines - U3

MetaModelמידול sequence diagramהרחבה ל-

מאפשר להציג היבטים שונים של המערכת, תהליכים, אינטראקציות, ביצוע מבחנים SDתרשים ה- . tagged value ו- Stereotypesלמוצרים ועוד. נוכל להבחין במידול באמצעות

. sequence diagram עבור UML 2.0 של metamodelהתרשים הבא מתאר את ה-

Page 10: Towards a UML Profile for Software Product Lines - U3

Sequenceמידול התחום באמצעות diagram

Optionality.ניתן לבחור עבור אובייקט או אינטראקציה<< עבור אובייקטoptionalLifeline .פירושו שהאובייקט יופיע רק בחלק מהמוצרים ->> << עבור אינטראקציהoptionalInteraction פירושו שהאינטראקציה יכולה להופיע רק בחלק ->>

מהמוצרים. -מבצע הרחבה לLifeline -ב Metamodel

Variation -הVariation Point -מתייחס לכך שעבור מוצר מסויים ניתן להשתמש רק ב Interaction variant

.Sub interaction כחלק מקו המוצרים ויכול להכיל סט של variation pointאשר הוגדר ב- -אופן ההצגה של הvariation point<< יהיה variation -ושל ה >>variant<< הוא variant.>> יש להוסיף לכלvariant) תיוג tagged value-אשר מציג את ה (VP-שממנו לקוח ה variant ,

{variation = variation(name of the variation point)אופן התיוג: }

Virtuality מייצג איזור בתרשים שבו תיתכן הרחבה לכל מוצר בנפרד, באמצעותsequence.נוסף << הייצוג מתבצע באמצעותvirtual -ומבצע הרחבה ל >>interaction Metaclass

Constraintניתן להגדיר בנוסף גם אילצוים מבניים, לדוגמא: הגדרה של אילוץ שאחראי על כך שניתן יהיה לבחור

variant-אחד בלבד בתוך ה variation-יוצג באופן פורמאלי ב ,OCL:context <<variant>>

inv: self.enclosingInteraction → select(oclIsKindOf(Variation)→ size()=1

 

Page 11: Towards a UML Profile for Software Product Lines - U3

Seq. Diagram עבור מצלמה דיגיטלית

Page 12: Towards a UML Profile for Software Product Lines - U3

stereotypesסיכום הגדרת PL עבור UML ב-tagged valueו-

Page 13: Towards a UML Profile for Software Product Lines - U3

Metamodelהרחבות על ה-

מוצגות כ- Class Diagram - ההרחבות של Metamodelהצגת ההרחבות על ה- Static Aspect וההרחבות של Sequence Diagram-מוצגות ב Dynamic

Aspect

Page 14: Towards a UML Profile for Software Product Lines - U3

התהליך תיאור- ה - UMLפרופיל ל ) בנוסף ) stereotypes, tagged values and constraintמכיל

) להגדרת השימוש בפרופיל ויצירת קוד operation rulesסט של חוקים אופרטיביים ()code generation .(

.באמצעות חוקים אלו "נגזור" את מידול המוצר מתוך מידול התחום

שלבי המעבר ממידול התחום למידול המוצר: - אילוצים אלו יחולו על כל המוצרים בתחום. generic constraintהגדרת 1. - חל רק על מוצרים ספציפיים מתוך התחום, מבוצע רק specific constraintהגדרת 2.

בסיום השלב ראשון.

.3 Product Model Derivation .לכל מוצר בנפרד, נגזור את המודל מתוך התחום -

תחום למודל מוצר מעבר ממודל

Page 15: Towards a UML Profile for Software Product Lines - U3

שלבי המעבר ממידול תחום למידול מוצר

generic constraintשלב ראשון: הגדרת , מאפשר אמנם ליצור מודל גנרי, אך עם זאת, יכול ליצור גם חוסר UML בתרשים ה-optionalityהשימוש ב-

" בעת גזירת optional" התלוי ברכיב "non-optionalעקביות. במקרה בו קיים במידול התחום רכיב המתויג כ"" וכך למעשה נקבל מודל חסר ללא כל non-optionalהרכיבים במודל המוצר לא נוכל להכניס רכיב "

הקשרים context. והתלויות

Dependencyinv: self.supplier exists(S:ModelElement | S.isStereotyped (’optional’)) implies

self.client forAll( C:ModelElement | C.isStereotyped(’optional’) )

specific constraintשלב שני: הגדרת הינו התלות בין הרכיבים כך שבחירה של רכיב אחד גורר לעיתים ביטול (או הפעלה) PLאחד ממאפייני ה-

של context Modelבחירת רכיב אחר.

Inv: self.presenceClass(’C1’) implies not self.presenceClass(’C2’))and (self.presenceClass(’C2’) implies not self.presenceClass(’C1’))

Product Model Derivationשלב שלישי: בשלב זה נגזור את המוצרים השונים מתוך המודל התחום.

DeriveProduct(PLModel : Model):Modelpre: –check generic constrains on PLModelpost: – check specific constraints on the derived product model.

Page 16: Towards a UML Profile for Software Product Lines - U3

Class Diagram– 1דוגמא

מידול מוצר מתוך מידול התחום:

Page 17: Towards a UML Profile for Software Product Lines - U3

Seq. Diagram– 2דוגמא

מידול מוצר מתוך מידול התחום:

Page 18: Towards a UML Profile for Software Product Lines - U3

Support and service systems – class diagram

Page 19: Towards a UML Profile for Software Product Lines - U3

Support and service systems – Sequence diagram 1

מתחיל תהליך בקשת סיוע Client מציג את התהליך מהשלב שה- 1SDתרשים מהמערכת

Page 20: Towards a UML Profile for Software Product Lines - U3

Support and service systems – Sequence diagram 1

מתחיל תהליך בקשת סיוע Client מציג את התהליך מהשלב שה- 1SDתרשים מהמערכת

Page 21: Towards a UML Profile for Software Product Lines - U3

Support and service systems – Sequence diagram 2

מתחיל תהליך HelpDesk Worker מציג את התהליך מהשלב שה- 2SDתרשים למתן סיוע במערכתClientשל טיפול בבקשת ה-

Page 22: Towards a UML Profile for Software Product Lines - U3

Support and service systems – Sequence diagram 2

מתחיל תהליך HelpDesk Worker מציג את התהליך מהשלב שה- 2SDתרשים למתן סיוע במערכתClientשל טיפול בבקשת ה-

Page 23: Towards a UML Profile for Software Product Lines - U3

: Classתרשים מסקנות

שיטתUML . היא העדכנית הגרסה מערכת מפרט למידול , UML 2.Xמיועדת. 13הכוללת תרשימים סוגי

, , , לצורך מתכנתים וניהול תעשייה מהנדסי תוכנה למהנדסי מיועדת השיטה. בארגון ותהליכים המחשוב מערכות אפיון

- ה לפרופיל הרחבות מציג Software Product Linesעבור UMLהמאמרengineering.

) מוצר ) אפליקציה למידול תחום ממידול המעבר שלבי את מציג המאמראופרטיביים ) חוקים בפרופיל( operation rulesבאמצעות השימוש להגדרת

קוד ) (. code generationויצירת- ל מתייחסות - class diagram, sequence diagramsההרחבות ב ומוגדרות

UML 2.0 MetaModel. , על ליישמו כוונה יש אך יושם טרם לקוד תרשים הממיר UMLAUTהפרופיל

תרשימי מתוך קוד ליצירת ייעודי כלי לביצוע. UMLשהוא ניסיון נעשה כיוםעם כזה עדיין, MTL ( meta- transformation language)תהליך התהליך אך

בבנייה.

Page 24: Towards a UML Profile for Software Product Lines - U3

Thank you

Questions???