Naeem-Esfahani.ppt

‫معرفی مجموعهای از الگوهای فرآيند‬
‫مخصوص نرمافزارهای بیدرنگ‬
‫نعيم اصفهانی‬
‫استاد راهنما‪ :‬دکتر ميريان‬
‫استاد مشاور‪ :‬دکتر رامسين‬
‫سمينار کارشناسی ارشد مهندسی نرمافزار‬
‫چشم انداز‬
‫• متا مدلهای فرآيند‬
‫– متا مدلها و الگوها‬
‫– فرآيند ‪OOSP‬‬
‫درنگ جاسازی شده‬
‫• حوزهی بی‬
‫ِ‬
‫– فرآيند‬
‫– زبان مدلسازی‬
‫• الگوهای فرآيند در اين حوزه‬
‫– روش بيان و آزمودن‬
‫– زمانبندی ادامهی کار‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪2‬‬
‫انگيزش‬
‫• گسترش استفاده از نرمافزار‬
‫• فرآيندهای مختلف برای توليد نرمافزار‬
‫– امکان انعطاف فرآيند در قبال تغيير شرايط‬
‫– ثبت تجربيات برای استفادهی مجدد‬
‫• بلوغ سازمان مستقل از فرآيند نيست (‪)CMM‬‬
‫• استفادهی فراوان از سيستمهای جاسازی شدهی بیدرنگ‬
‫– افزايش قابليت سختافزارها‬
‫– محبوبيت اين دستگاهها‬
‫– سيستم با مالحظهی زمانی با امکان قابل حمل بودن‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪3‬‬
‫سطوح مختلف فرآيند‬
‫• سطح نمونه‬
‫– يک پروژهی نمونه راهبری میشود‬
‫– يک مستند پروژه چگونه است‬
‫• سطح مدل‬
‫– يک مدل فرآيند خاص بيان میشود‬
‫– ساختار کلی مستندات‪ ،‬راهنمايیها‬
‫]‪[Gnatz et al, 2001‬‬
‫• سطح متا مدل‬
‫– چارچوبی برای توليد مدل فرآيندها‬
‫– تعريف مفاهيم پايهای (واحد کاری)‬
‫‪ 2‬دی ‪1385‬‬
‫*‬
‫*‬
‫*‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫*‬
‫‪4‬‬
‫ضرورت سطح متا مدل‬
‫• معرفی مفاهيم پايهای فرآيند‬
‫– واحدهاي کاری‪ ،‬محصولهای کاری‪ ،‬نقشها و ‪...‬‬
‫– نماد گذاریهای ممکن‪ ،‬استانداردهای خاص و ‪...‬‬
‫– الگوهای فرآيند‪ ،‬راهنمايیها و ‪...‬‬
‫• زبانی مشترک ميان برنامهنويس و گروه متودولوژی‬
‫• استاندارد بودن زبان بيان تجربيات در سازمان‬
‫• سادهتر شدن نگهداری و نمو فرآيند‬
‫• امکان استفادهی مجدد از مفاهيم سطح فرآيند‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪5‬‬
‫الگوهای فرآيند‬
‫• الگو‬
‫– راهحل تکرار شونده برای مشکل تکرار شونده‬
‫– برای دسترسی به داده از يک اليهی ميانی استفاده شود‬
‫• الگوهای فرآيند‬
‫– در سطح متا مدل قرار میگيرند‬
‫– با استفاده از ترکيب آنها مدل فرآيند میسازيم‬
‫• توضيح دانش موجود در فرآيند به صورت ساختارمند‬
‫– مشکل موجود‪ ،‬حوزهی مساله‪ ،‬راه حل ارائه شده‪ ،‬قدمهای الزم‬
‫برای حل مشکل‪ ،‬الگوهای مشابه و مرتبط‪ ،‬خوبیها و بدیها و‬
‫‪...‬‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪6‬‬
‫الگوهای فرآيند شيئگرا و فرآين ِد‬
‫‪OOSP‬‬
‫• معرفی توسط امبلر در قالب دو کتاب‬
‫– روشها يا فعاليتهايی که کارايی آنها در توليد نرمافزار اثبات‬
‫شده‬
‫• معرفی اين الگوها در سطوح مختلف‬
‫– الگوی فرآيند کار‪ ،‬الگوی فرآيند مرحله‪ ،‬الگوی فرآيند فاز‬
‫– امکان ساختن الگوهای سطوح باال با الگوهای سطح پايينتر‬
‫• معرفی يک فرآيند نمونه که الگوها در دل آن قرار میگيرند‬
‫– متاسفانه اين الگوها به اين فرآيند وابسته شدند‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪7‬‬
‫نمونه الگوی فرآيند کار ‪ -‬مرور‬
‫]‪[Ambler, 1998‬‬
‫• آماده شدن برای مرور‬
‫• سنجيدن آمادگی افراد برای مرور‬
‫• بررسی اوليه‬
‫• سازماندهی مرور‬
‫• برگزاری مرور‬
‫• عملکردن بر اساس نتايج مرور‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪8‬‬
‫درنگ جاسازی شده‬
‫حوزهی بی‬
‫ِ‬
‫• باال رفتن قابليت سختافزارها‬
‫– تنوع برنامههايی که اجرا میشوند‬
‫– گسترش استفادهی روزمره از اين نوع سيستمها‬
‫• ارائهی متودولوژی خاص اين سيستمها‬
‫–‬
‫–‬
‫–‬
‫–‬
‫گسترش متودولوژیهای موجود‪ ،‬افزودن اجزايی برای پشتيبانی‬
‫بررسی قابليت اعمال نوع خاصی از متودولوژیها (چابک)‬
‫بررسی متودولوژیهای موجود و امکان اعمال آنها در اين‬
‫دامنه‬
‫بررسی قسمتی از چرخهی توليد نرمافزار‬
‫• زبان مدلسازی مخصوص اين حوزه‬
‫برای‬
‫هايی‬
‫پروفايل‬
‫و‬
‫ها‬
‫گسترش‬
‫–‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪ 2‬دی ‪1385‬‬
‫‪UML‬‬
‫‪9‬‬
‫الگوهای فرآيند در حوزهی بیدرنگ جاسازی‬
‫شده‬
‫• حرکت تحقيقات به سمت انتزاع بيشتر‬
‫– حضور الگوها در سطوح مختلف‬
‫– امکان بيان برخی تحقيقات با الگوهای فرآيند‬
‫• ارائهی مجموعهای از الگوهای فرآيند‬
‫– زير مجموعهای از الگوهای فرآيند در‬
‫– گسترشهای الزم برای اين حوزه‬
‫‪OOSP‬‬
‫• عدم يافتن تحقيق مشابه‬
‫• غنیتر شدن سطح متا مدل‬
‫• محدود شدن به سيستمهای مخابراتی‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪10‬‬
‫روش بيان و آزمودن الگوها‬
‫• روشهای بيان الگوهای فرآيند‬
‫– تحقيقاتی در کنار ارائهی الگوها‬
‫– تحقيقاتی برای ارائهی قالب الگوها‬
‫• آزمودن الگوهای فرآيند‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫در يک شرکت مخابراتی بدون فرآيند توليد نرمافزار‬
‫اعمال زيرمجموعهی کوچکی از الگوها در يک نمونه پروژه‬
‫افزايش تدريجی الگوها و بهبود الگوهای موجود‬
‫بررسی بهبود کارايی و فرآيند‬
‫روش پيشگرفته شده در تحقيقات ديگر‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪11‬‬
‫زمان بندی ادامهی کار‬
‫• بررسی الگوهای فرآيند ارائه شده توسط امبلر ‪ -‬يک ماه‬
‫• استخراج‪ ،‬آزمون و بيان الگوها ‪ -‬شش ماه‬
‫–‬
‫–‬
‫–‬
‫–‬
‫شناخت دقيق حوزهی اعمال راه حل ‪ -‬يک ماه‬
‫جمع آوری اطالعات و راه حلها در قالب الگوها ‪ -‬دو ماه‬
‫آزمودن راه حل در محيط عملی ‪ -‬دو ماه‬
‫بيان الگوها ‪ -‬يک ماه‬
‫• نگارش مقاله – نيم ماه‬
‫• نگارش پايان نامه ‪ -‬يک و نيم ماه‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪12‬‬
‫نتيجه گيری‬
‫• معرفی سطوح فرآيند و مفهوم انتزاع در آن‬
‫– مفهوم الگوهای فرآيند‬
‫• حوزهی سيستمهای بیدرنگ جاسازی شده‬
‫• ارتباط اين دو زمينه‬
‫– مشخص کردن حوزهی تحقيق‬
‫– معرفی موارد مورد نياز در تحقيق‬
‫• برنامهای که در پيش گرفته میشود‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪13‬‬
‫با تشکر‬
‫‪ 2‬دی ‪1385‬‬
‫دانشکدهی مهندسی کامپيوتر ‪-‬دانشگاه صنعتی شريف‬
‫‪14‬‬
‫منابع‬
•
•
•
•
•
•
15
Masayuki Hirayama, Katsumi Ohno, Nao Kawai, Kichiro Tamaru, Hiroshi
Monden, An Effective Source Code Review Process for Embedded Software. ProductFocused Software Process Improvement, 7th International Conference, PROFES,
Amsterdam, The Netherlands, June 12-14, 2006: 47-60, Springer, Lecture Notes in
Computer Science, ISBN: 3-540-34682-1.
Kettunen, P. Laanti, M., How to steer an embedded software project, tactics for selecting
the software process model, Information and Software Technology, Volume 47, Issue
9, 15 June 2005, Pages 587-608.
Ambler, S. W., Process Patterns: Building Large-Scale Systems Using Object
Technology, Cambridge University Press (October 28, 1998), ISBN: 0521645689.
Ambler, S. W., More Process Patterns: Delivering Large-Scale Systems Using Object
Technology, Cambridge University Press (January 13, 1999), ISBN: 0521652626.
Gnatz, M., Marschall, F., Popp, G., Rausch, A., and Schwerin, W. 2001. Towards a
Living Software Development Process Based on Process Patterns. In Proceedings of the
8th European Workshop on Software Process Technology (June 19 - 21, 2001). V.
Ambriola, Ed. Lecture Notes In Computer Science, vol. 2077. Springer-Verlag,
London, 182-202.
Manhart, P. and Schneider, K. 2004. Breaking the Ice for Agile Development of
Embedded Software: An Industry Experience Report. In Proceedings of the 26th
international Conference on Software Engineering (May 23 - 28, 2004).
International Conference on Software Engineering. IEEE Computer Society,
Washington, DC, 378-386.
‫دانشگاه صنعتی شريف‬- ‫دانشکدهی مهندسی کامپيوتر‬
1385 ‫ دی‬2
‫منابع‬
•
•
•
•
•
•
16
Paige, R. F., Chivers, H., McDermid, J. A., and Stephenson, Z. R., High-integrity
extreme programming. In Proceedings of the 2005 ACM Symposium on Applied
Computing (Santa Fe, New Mexico, March 13 - 17, 2005). L. M. Liebrock, Ed. SAC
'05. ACM Press, New York, NY, 1518-1523.
Peleg, M. and Dori, D., Extending the Object-Process Methodology to Handle Real-Time
Systems. Journal of Object-Oriented Programming 11, 8, (1999) 53-58.
Saiedian, H., Kumarakulasingam, P., and Anan, M. 2005. Scenario-based
requirements analysis techniques for real-time software systems: a comparative evaluation.
Requir. Eng. 10, 1 (Jan. 2005), 22-33. DOI= http://dx.doi.org/10.1007/s00766-0040192-6.
Kurian, S. and Pont, M.J., Maintenance and evolution of resource-constrained embedded
systems created using design patterns, Journal of Systems and Software, Volume 80,
Issue 1, January 2007, Pages 32-41.
Störrle, H. 2001. Describing Process Patterns with UML. In Proceedings of the 8th
European Workshop on Software Process Technology (June 19 - 21, 2001). V.
Ambriola, Ed. Lecture Notes In Computer Science, vol. 2077. Springer-Verlag,
London, 173-181.
Sa, J., Warboys, B., Greenwood, R. M., and Robertson, I. 2001. Modeling a Support
Framework for Dynamic Organizations as a Process Pattern Using UML. In
Proceedings of the 8th European Workshop on Software Process Technology (June
19 - 21, 2001). V. Ambriola, Ed. Lecture Notes In Computer Science, vol. 2077.
Springer-Verlag, London, 203-216.
‫دانشگاه صنعتی شريف‬- ‫دانشکدهی مهندسی کامپيوتر‬
1385 ‫ دی‬2
‫منابع‬
•
•
•
•
•
•
17
Ramsin, R., The Engineering of an Object-Oriented Software Development Methodology.
Ph.D. Thesis, University of York, York, UK, 2006.
Wilhelm Schäfer, A Rigorous Software Process for the Development of Embedded
Systems, Unifying the Software Process Spectrum, International Software Process
Workshop, SPW 2005, Beijing, China, May 25-27, 2005, Revised Selected Papers,
Springer, Lecture Notes in Computer Science, ISBN: 3-540-31112-2.
Zalewski, J., Real-Time Software Design Patterns, 9th Conf. on Real-Time Systems,
Ulstron, Poland, 2002.
Pont, M. J. and Banner, M. P. 2004. Designing embedded systems using patterns: a case
study. J. Syst. Softw. 71, 3 (May. 2004), 201-213. DOI=
http://dx.doi.org/10.1016/S0164-1212(03)00006-2.
Fliege, I., Geraldy, A., Gotzhein, R., Kuhn, T., and Webel, C. 2005. Developing
safety-critical real-time systems with SDL design patterns and components. Comput.
Networks 49, 5 (Dec. 2005), 689-706. DOI=
http://dx.doi.org/10.1016/j.comnet.2005.05.003.
McKegney, R., Application of Patterns to Real-time Object-oriented Software Design,
MSc. Thesis. Department of Computing & Information Sciences, Queen's
University. July 2000.
‫دانشگاه صنعتی شريف‬- ‫دانشکدهی مهندسی کامپيوتر‬
1385 ‫ دی‬2