صفحه 1:
تزریق نيازمنديهاي غيروظيفهمندي به
معماری نرمافزار
حميد باقرى
۰ افر
سمینار کارشتاسی ارشد مهندسی نرمافزار
دانشکدهی مهندسی کامپیوتر
دانشگاه صنعتی شریف
صفحه 2:
رئوس مطالب
اهمیت ویژگیهای کیفی
اهمیت معماري نرمافزار و ارزیابی آن
هدف پروژه
تعریف معماري نرمافزار و ویژگیهای کیفی مطرح
مدلسازي ويژگيهاي کكيفي و كارهاي مرتبط
چارچوبي براي مدلسازي ويژگيهاي کيفي در
معماري نرمافزار برمبناي مژلفههاي جنبه گرا
اش
سمینار کارشناسی ارشد 2 ی
صفحه 3:
اهمیت ویژگیهای کیفی
2
زمنديهاي نرمافزار
5
یازمندیهای غیر وظیفهمند > ویژگیهای کیفی
Qa اهميت نیازمندیهای وظیفهمند در میزان دستيابي محصول
نرمافزاري ارائه شده به مشتري
زیر سوال رفتن ماهیت وجودي محصول در صورت عدم برآوردن
نيازمنديهاي وظيفهمندياش
= = زمان و در طي استفاده از محصول نرمافزاري» سنجش
ارزش آن بر اساس میزان دستيابياش به ويژگيهاي كيفي
سمینار کارشناسی ارشد 3 ی
صفحه 4:
اهمیت معماري نرمافزار
۳ _تأکید بررسيهاي جدید بر نقش و اهمیت معماري نرمافزار در تشخیص
نرمافزار
اهمیت تصمیم گيريهاي مختلف در هر یک از مراحل توسعه نرمافزار
اهمیت خاص تصمیمات در سطح معماري
نخستین و پرهزینهترین تصميمهاي اتخاذ شده در طول توسعه یک پروژه ترمافزاري
تاثیر آن بر ويژگيهاي كيفي نرمافزار و در نتیجه بر ارزش نرمافزار
"هنگامیکه یک معماري خوب نتواند دستيابي به اهداف كيفي را تضمین
کند. یک معماري ضعیف قطعاً از دستيابي به آن اهداف جلوگيري
ميکند 50 (C. U.
سمینار کارشناسی ارشد
حمید باقري
صفحه 5:
اهمیت ارزیابی
ل پس از اتمام تولید نرمافزار در صورت عدم دستيايي معماري به
اهداف كيفي > نیاز به هزینه بسیار براي ترمیم و حل مشکل
ایجاد شده
اهمیت امکان ارزيابي SE
معماري بر روي ويژگيهاي كيفي
2 "ین مطلب که آیا یک سیستم ميتواند به ويژگيهاي کيفياش
دست يابد يا خير؟ به صورت عمده به هنگام انتخاب معماري
C. Clements] "cu! axe LG .2]
سمینار کارشناسی ارشد 6 aa
صفحه 6:
هدف
a بلا استفاده بودن ويژگيهاي کیفی پس از مشخص شدن در
طول مهندسی نیازمنديها تا اتمام پيادهسازي نرمافزار
۴ عدم وجود ارتباط مستقیم میان ويژگيهاي AS از مرحله مهندسي
نیازمنديها به طراحي معماري سیستم
۳ خطر: ریسک کشف خطای دیرهنگام
= راه حل: مدل کردن و ارزيابي ويژگيهاي كيفي در سطح معماري
نرمافزار
= 7
حمید ياقري
صفحه 7:
معماري نرمافزار
Qo تعاریف متفاوت از معماري نرمافزار
= ساختار كلي سیستم نرمافزاري
*# مجموعهاي از مولفهها و ارتباطدهندهها و نحوه تراکنش بین آنها
"معماري نرمافزار یک برنامه یا یک سیستم كامپيوتري عبارت
است از ساختار پا ساختارهايي از سیستم که از عناصر سیستم.
خصوصياتي از این عناصر که از خارج آنها قابل مشاهده است و
ارتباطات آنها تشکیل ميشود." [81 [Kazman, et
سمینار کارشناسی ارشد 8 ی
صفحه 8:
ويژگيهاي کيفي در معماری نرمافزار
"توجه به اين امر که نميتوان ويژگيهاي كيفي را بعد از تولید نرمافزار بر
اساس نیازمندیهای وظیفهمندیاش Tiley a اک هت و
ويژگيها در یک سيستم , نرمافزاري است" 21۱ 6۲ رصعصعم1]
1 متال: رهیافتی نادرست در 1C. U. Smith) ilo 5 aug
” اجرايش كن- درست اجرايش كن- سريع اجرایش کن "
1 ويزكيهاى كيفي اساسي سيستمهاي نرمافزاري:
&
سمینار کارشناسی ارشد 9 aa
صفحه 9:
مدلسازی ویژگیهای کیفی
a به منظور ارزیابی معماري نرمافزار بر اساس ويژگيهاي كيفي
۴ لازم است در ابتدا این نيازمنديها در سطح معماري نرمفزار
مدلسازي شوند
از آنجا که این ويژگيها معمولا به صورت رفتارهاي متقاطع در
نظر گرفته ميشوند
۴ قطعهبندي ويژگيهاي کيفي به مولفههاي جنبهگرا
سمینار کارشناسی ارشد 10 ی
صفحه 10:
كارهاي مر تبط
0
توسعه مدلهاي مبتني بر UML
* - مدلسازي ويژگيهاي كيفي بر اساس:
۳ اعمال توسعه بر روي يکي از مدلها همچون مدل موارد کاربرد
روش مبتني بر محصول و ويژگيهاي كيفي خاص
* _ به منظور برآوردن ويژگي كيفي خاصي همچون قابلیت اطمینان
زاري با ويژگيهاي كيفي که
اندازه گيري میزان تطابق سیستم نرم!
برآورده سازد
پروسههايي که به طور صریح با ويژگيهاي كيفي برخورد میکنند
* _ شامل تكنيکهايي براي بررسي تصمیمات طراحي بر روي حضور و یا عدمحضور
نيازمنديها و تأثیرشان بر روي معماري نرمافزار
سمینار کارشناسی ارشد 11 ی
صفحه 11:
چارچوبي براي مدلسازي ويژگيهاي کيفي در
معماري نرمافزار برمبنای مولفههای جنبه گرا
استراتزي: اصل جداسازي مسئولیتها
توسعه این اصل بر روي معماري نرمافزار
نيازمنديهاي وظيفهمندي یک سیستم و ويژگيهاي كيفي آن. دو مفهوم
متنافرند
*_ به اين معنا که ميتوان هر سطحي از هر ويزكي كيفي را براي هر یک از
نيازمنديهاي وظیفهمند سیستم تصور نمود
a
Oo
مشابه ایده به کار رفته در برنامهسازي جنبه گرا
oa جداسازي نيازمنديهاي وظیفهمند و ويژگيهاي کيفي, مدلسازي و تحلیل
معماري نرمافزار به صورتي درهم پیچیده و مبهم خواهد شد
سمینار کارشناسی ارشد 12 ی
صفحه 12:
مدل طراحي مفهومي معماری نرمافزار
مدل معماري نرمافزار متداول: لایه بنيادین و زيربنايي
۴ _ مولفههاي جنبهگرا؛ مسئول مدلسازي عملیات مربوط به برآوردهساختن ويژگيهاي
كيفي
- نگاشتکننده جنبه: نگاشت کننده مولفههاي جنبهگرا بر ملفههاي معماري نرمافزار
سمینار کارشناسی ارشد 13 ی
صفحه 13:
زبانهای توصیف معماری
۳ _زبانهايي نمادین براي بیان و توصیف معماري سيستمهاي
نرمافزاري
۳ عليرغم گسترش زبانهاي توصیف معماري
" عدم اتفاق نظر در مجامع علمي بر روي ويژگيهاي یک زبان توصیف
معماری
۳ حداقل نیاز زبانهاي توصیف معماري:
" توانايي مدل كردن مؤلفه. رابط و ييكربندي سيستم
سميتار كارشناسى ارشد 14 حميد باقري
صفحه 14:
زبان 2.0 ۸1
۳" یک زبان توصیف معماري پيمانهاي قابل گسترش مبتني بر
XML
xArch ۲
۴ هسته اصلي این زبان
" براي نمایش عناصر اصلي مدل معماري نرمافزار. شامل:
13 مؤلفه. رابط و پيكربندي سیستم
سمینار کارشناسی ارشد 15 ی
صفحه 15:
زبان چارچوب ارائه شده
۳ _ در چارچوب ارائه شده. افزودن بخش توصیف نگاشت کننده جنبه و توسعه
زبان 20 اه
۳ _فراهم آوردن امکانات لازم براي
* توصیف معماري نرمافزار
مدلسازي ويژگيهاي كيفي در معماري نرمافزار بر مبناي مولفههاي جنبه گرا
7 توسعه انجام شده با افزودن شماي ۸۵5[0661:.650 به مجموعه شماهاي
KADL 2.0 |b; حاصل شده است =
مزیت:
*_ طراحي معماري اولیه نرمافزار بر مبناي نيازمنديهاي وظيفهمندي
* _ بر آوردن ويژگيهاي كيفي. با افزودن مژلفه جنبهگراي مورد نیاز به معماري
سیستم
* _ افزایش قابلیت نگهداري و استفاده مجدد در معماري نرمافزار
سمینار کارشناسی ارشد 16 ی
صفحه 16:
تعریف شما وولو میهد ور هل رده بقع
ور اوعد ع اطع :۵
9 تعریف مجموعهاي از نگاشتکنندههاي sxsdiattcibuce use
مولفههاي جنبه گرا در این شما حعووک 00
9 هر نگاشتکننده شامل مجموعهاي از 5ك Se
sshounded"> Point cuts * تلاعت تيد © ممنيه 90
csdrelenent cane! "peantout"/> Advice *
Point cut 2 وه شوه
خابط تط و ما c/sd:souplexType>
© شرايط تطبيق در مؤلفدهاي معماري ِ
نرمافزار ۱ =
= > "مرو "حم جمد cxsdiatteibuce
* ويذكي كيفي در نقطه تلاقي به اقمع مه و
معماري نرمآفزار افزوده ميشود 2 > دح
5 مواق sxsd:atteibuce naxe="aethos” byse="MyStsing"/>
0 000
Bigeye
تعریف شده در مولقههاي جنبه گرا بر
روي ملفههاي معماري منطبق
با شرایط
> [5 Lines]
Binder"> [6 Lines]
سمينار كارشناسى ارشد 17
صفحه 17:
GR پیشرو
۳ بررسي دقیق امکانسنجي افزودن ويژگيهاي كيفي مختلف بر اساس
الگوهاي موجود در زمینه معماري نرمافزار به همراه تکمیل و توسعه
مکانیزم وارسي مدل پيشنهاد شده
۳ زمانبندی:
* - مطالعه و بررسي شيوههاي مختلف ارزيابي معماري نرم/فزار (2ماء)
* _ بیان دقیق ويژگيهاي كيفي بر اساس زبان توصیف معماري مذکور (3 ماه)
* تعریف یک مطالعه موردي و بررسي نتایج تلاش صورت گرفته در مراحل قبلي (2
ماه
* نگارش پایاننامه (2 مام)
سمینار کارشناسی ارشد 19
حمید باقري
صفحه 18:
با تشکر
20
سعیتار کارشناسی ارشد
صفحه 19:
مراجع
[1] L. Bass, P. Clements, R. Kazman, Software Architecture in Practi
Addsion-Weisly, 2nd edition, 2003.
[2] L. Chung, B. Nixon, E. Yu, and J. Mylopoulos, Non-Functional
Requiremenis in Software Engineering, Kluwer Academic, 2000.
[3] L. G. Williams, C. U. Smith, “PASASM: A Method for the
Performance Assessment of Software Architectures”, Workshop on
Software and Performance 2002, pp. 179-188.
[41 Y. Yu, J.C. Leite, J. Mylopoulos. “From Goals to Aspects:
Discovering Aspects from Goal Models”, RE'04, 200:
[5] Architectures Group at UC Irvine, xADL 2.0, Highly-extensible
Architecture Description Language for Software and System, January
4, 2005; hutpy/wwwistucledu/proje تمه
[6] E., Dashfy, xArch, hitp://www.isr.uci.edu/architecture/xarch/.
[7] B.C. Clements and L. M. Northrup, a An
Executive Overview’, Technical Report No. CMU/ SEI-96-TR-003,
Carnegie Mellon University, Pittsburgh, PA, February, 1996.
]8[ 6 Kiczales, J, Lamping, A. Mendhekar, C. Maeda, C; Lopes, J-M
and J: Irwin, “Aspect oriented programming”, LNCS,
13d 336 549) oct 1307.
سمینار کارشناسی ارشد 21 Ss
صفحه 20:
مراجع
[9] Lihua Xu, Hadar Ziv, Debra Richardson, Zhixiong Liu. “Towards
Modeling Non-Functional Requirements in Software Architecture”, In
Proceedings of Aspect-Oriented Software Design, Workshop on
Aspect-Oriented Requirements Engineering and Architecture Design,
Chicago, Illinois, March 2005.
[10] L. Cysneiros, J. Leite, "Nonfunctional Requirements: From
elicitation to Conceptual Models", IEEE Transaction on Software
Engineering, vol.30, no.5, May 2004.
{L1LM. Bishop, Computer Security: Art and Science, Addison Wesley,
[12] TG. Kirner and A.M. Davis, “Nonfunctional Requirements of
Real-Time Systems”, Advances in Computers, vol. 42, pp. 1-38, 1996.
[13] IEEE Recommended Practice for Software Requirements
Specification, Standard for Information Technology IEEE, 1998.
[14] B. Boehm and H. Hoh, “Identifying Quality-Requirement
Conflicts”, IEEE Software, pp. 25-36, Mar. 1996.
[15] S. Tonu, Incorporating Non-Functional Requirements with UML
Models, MSc Thesis, Department of Electrical and Computer
Engineering, University of Waterloo, Ontario, Canada, 2006.
سمينار كارشناسى ارشد 22
حميد باقري
صفحه 21:
مراجع
{16] S. Tonu and L. Tahvildari, “Towards a framework to incorporate
NFRs into UML models”, In Proceedings of the 1st International
Workshop on Revers Engineering to Requirements (RETR), pp. 13-18,
Pittsburgh, Pennsylvania, USA, November 2005.
[17] C. Kaewkasi, W. Rivepiboon, “Aspect-Oriented Extension for
Capturing Requirements In Use-Case Model” The 15th Conference on
Advanced Information Systems Engineering, CAiSE' 03, Austria, June
2003.
[18] J. Zhang, J. Gray, Y. Lin, and R. Tairas, “Aspect Mining from a
Modeling Perspective”, Special issue of the International journal of
Computer Applications in Technology, Fall 2006.
[19] G. Sousa, S. Soares, P. Borba, and J. Castro, “Separation of
crosscutting concerns from requirements to design: Adapting the use
gase driven approach”, Early Aspects Workshop at AOSD 2004, March
[20] IEEE Std 1471-2000 IEEE, Recommended Practice for Architectural
Description of Software-Intensive Systems - Description, IEEE, 2003.
[21] N., Medvidovic, N. R., Taylor, “A Classification and Comparison
Framework for Software Architecture Description Languages,” IEEE
Transactions on Software Engineering, vol. 26, 2000, pp. 79-93.
سمينار كارشناسى ارشد 23
حميد باقري
صفحه 22:
مراجع
0
] ن. نوروزی. توصیف و وارسي سيستمهاي نرمافزاري قابل باز پیکربندي: روشي
مبتني بر معمار: ق پذ بر بایان نامه کارشتاسي ارشد. دانشکده مهتدسي کامپیوتن 7
دانشگاه صنعتي شریف. مهر 1385
= 1 س. ش. فخرايی. استخراج جنبه از مدل طراحي نرمافزار. پایاننامه كارشتاسي ارشد.
دانشکده مهندسی کامپیوتر. دانشگاه صنعتی شریف. خرداد 1385
سمینار کارشناسی ارشد 24 ی
