Upload
geneva
View
51
Download
0
Tags:
Embed Size (px)
DESCRIPTION
שם המאמר המוצג: . Towards a UML Profile for Software Product Lines - U3. Support And Service Systems. התחום: . סמינר בהנדסת תוכנה הפקולטה למערכות מידע אוניברסיטת חיפה Dec. 2010. מציגים: נסי אוטמזגין ענבל ממן. מה במצגת. מתוך המאמר רקע כללי. - PowerPoint PPT Presentation
Citation preview
Towards a UML Profile for Software Product Lines - U3
סמינר בהנדסת תוכנההפקולטה למערכות מידע
אוניברסיטת חיפהDec. 2010 מציגים: נסי אוטמזגין
ענבל ממן
שם המאמר המוצג:
Support And Serviceהתחום: Systems
...מה במצגתמתוך המאמר
.רקע כללי מידול התחום באמצעותClass Diagram.MetaModel -ל Sequence Diagram. מידול התחום באמצעותSequence Diagram. .שלבי המעבר ממידול תחום למידול מוצר
support and service systemsמידול התחום מידול התחום באמצעותClass Diagram . מידול התחום באמצעותSequence Diagram .
מסקנות
רקע- הגדרת מושגיםUML
הינה שפה כללית לאיפיון, תכן, בניה ותיעוד של מערכות תוכנה הכוללת מספר תרשימים . Use Case Diagram, Class Diagram, Sequence Diagramשונים למידול ביניהם
לתחומים ספציפיים נעשית UML (UML PROFILE)התאמת "אוצר המילים" במאמר של באמצעות:
<<<<Stereotypesסוג חדש של אלמנט מידול בעל מבנה דומה לאלמנט קיים אך עם אילוצים נוספים, סימון
חדש,
פירוש וטיפול שונים בכל אובייקט.
Tagged valuesמחרוזות תגים ומחרוזות הערכים. מחרוזות אלו שומרות מידע על אלמנט המידול
) tag-name=tag-value .(
Constraints}}אילוץ סמנטי המצוי בטקסט. האילוץ יכול להיכתב בצורה מתמטית פורמלית או לא
פורמלית.
.MetaModel של ה- UMLבאמצעות סימונים אלו נוכל להרחיב את מידול ה-
רקע- אודות המאמר
והוספת סימונים לשיטה, לצורך UML 2המאמר עוסק בהרחבת שיטת ה- •התאמת המידול לתחומים השונים.
תוך UML 2המאמר מציג את מידול קו המוצרים (תחום) באמצעות הרחבת • ובתוספת של Sequence Diagram ו- Class Diagramשימוש ב-
Stereotypes, tagged values and structural constraint לצורך יצירת ,הפרופיל הרצוי.
Software Product Linesהתחום עליו מודגמת השיטה במאמר הינו •engineering .
הצגת הבעיההאתגר במידול
Software Product Linesהאתגר העומד בפנינו בעת מידול התחום (PL) , :הינו הקוטביות במידול
, המידול צריך להיות מספיק רחב, כך שכל מוצר שייגזר ממודל התחום יהיה מחדשייך לתחום.
כזו שתאפשר יצירת מוצרים בעלי שונות שונות, המידול צריך להציג מאידךמהותית (לא כל המוצרים בעלי אותה פונקציונליות) אך עדיין להיכלל תחת תחום
אחד.
נבחין בשונויות: the development time variability - .שונות בתחום
the run time variability - .השונות בשלב של המוצר הספציפי
UML :כולל מספר טכניקות כגון inheritance, cardinality rang and class template המאפשרות לתאר את השונות של מוצר בודד שאותה
פותרים "בזמן ריצה".
לצורך המידול, ניעזר בדוגמא הבאה: נתונה מצלמה דיגיטלית הכוללת:
ממשקכרטיס זיכרוןחיישן(תצוגה) מסך.(אופציונאלי) דוחס תמונה
השונות המרכזית בדוגמא:הדוחס והפורמט של התמונה הנתמך על גבי כרטיס הזכרון, הפורמט יכול להיות
,interface1 ממשקים אשר נקראים 3פרמטרי אשר תלוי בממשק מסויים, יש inteface2, and interface3.
Class Diagramהרחבה ל- משמש לתיאור מבני של המערכת באמצעות מחלקות וקשרים ביניהן. classה-
שאנו class השונים, בשונה מה-Stereotypesבמקרה הנדון נוכל להבחין ב- מכירים.
באמצעות התחום ClassמידולDiagrams
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
Class Diagram עבור מצלמה דיגיטלית
MetaModelמידול sequence diagramהרחבה ל-
מאפשר להציג היבטים שונים של המערכת, תהליכים, אינטראקציות, ביצוע מבחנים SDתרשים ה- . tagged value ו- Stereotypesלמוצרים ועוד. נוכל להבחין במידול באמצעות
. sequence diagram עבור UML 2.0 של metamodelהתרשים הבא מתאר את ה-
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
Seq. Diagram עבור מצלמה דיגיטלית
stereotypesסיכום הגדרת PL עבור UML ב-tagged valueו-
Metamodelהרחבות על ה-
מוצגות כ- Class Diagram - ההרחבות של Metamodelהצגת ההרחבות על ה- Static Aspect וההרחבות של Sequence Diagram-מוצגות ב Dynamic
Aspect
התהליך תיאור- ה - UMLפרופיל ל ) בנוסף ) stereotypes, tagged values and constraintמכיל
) להגדרת השימוש בפרופיל ויצירת קוד operation rulesסט של חוקים אופרטיביים ()code generation .(
.באמצעות חוקים אלו "נגזור" את מידול המוצר מתוך מידול התחום
שלבי המעבר ממידול התחום למידול המוצר: - אילוצים אלו יחולו על כל המוצרים בתחום. generic constraintהגדרת 1. - חל רק על מוצרים ספציפיים מתוך התחום, מבוצע רק specific constraintהגדרת 2.
בסיום השלב ראשון.
.3 Product Model Derivation .לכל מוצר בנפרד, נגזור את המודל מתוך התחום -
תחום למודל מוצר מעבר ממודל
שלבי המעבר ממידול תחום למידול מוצר
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.
Class Diagram– 1דוגמא
מידול מוצר מתוך מידול התחום:
Seq. Diagram– 2דוגמא
מידול מוצר מתוך מידול התחום:
Support and service systems – class diagram
Support and service systems – Sequence diagram 1
מתחיל תהליך בקשת סיוע Client מציג את התהליך מהשלב שה- 1SDתרשים מהמערכת
Support and service systems – Sequence diagram 1
מתחיל תהליך בקשת סיוע Client מציג את התהליך מהשלב שה- 1SDתרשים מהמערכת
Support and service systems – Sequence diagram 2
מתחיל תהליך HelpDesk Worker מציג את התהליך מהשלב שה- 2SDתרשים למתן סיוע במערכתClientשל טיפול בבקשת ה-
Support and service systems – Sequence diagram 2
מתחיל תהליך HelpDesk Worker מציג את התהליך מהשלב שה- 2SDתרשים למתן סיוע במערכתClientשל טיפול בבקשת ה-
: 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)תהליך התהליך אך
בבנייה.
Thank you
Questions???