فهرست و منابع پایان نامه مدل سازی تحمل پذیری خطا با استفاده از برنامه نویسی جنبه گرا
فهرست:
1فصل اول: کلیات تحقیق .....................................................................................................................................
مقدمه.................................................................................................................................................................................................... 2
طرح مسأله .......................................................................................................................................................................................... 3
اهداف تحقیق ...................................................................................................................................................................................... 4
محدوده تحقیق .................................................................................................................................................................................. 4
مراحل انجام تحقیق .......................................................................................................................................................................... 5
ساختار پایان نامه................................................................................................................................................................................. 5
فصل دوم: مفاهیم پایه و پیشینه تحقیق ........................................................................................................... 7
2-1 مقدمه.................................................................................................................................................................................................... 8
2-2 تحمل پذیری خطا .............................................................................................................................................................................. 8
2-2- 1 اتکاپذیری و تحمل پذیری خطا ............................................................................................................................................................ 8
2-2- 1-1 قابلیت اطمینان............................................................................................................................................................................ 9
2-2- 1-2 قابلیت دسترسی .......................................................................................................................................................................... 9
2-2- 1-3 ایمنی .......................................................................................................................................................................................... 10
2-2- 1-4 قابلیت نگهداشت ...................................................................................................................................................................... 11
2-2- 1-5 امنیت .......................................................................................................................................................................................... 11
2-2- 2 نقص، خطا و شکست .......................................................................................................................................................................... 11
2-2- 3 افزونگی .................................................................................................................................................................................................. 12
2-2- 4 گوناگونی طراحی ................................................................................................................................................................................. 13
2-2- 5 سناریوی تحمل پذیری خطا ............................................................................................................................................................... 14
2-2- 5-1 سناریوی عمومی تحمل پذیری خطا ..................................................................................................................................... 15
2-2- 6 تحمل پذیری خطای نرم افزاری .......................................................................................................................................................... 16
2-2- 7 تاکتیک های تحمل پذیری خطای نرم افزاری تک نسخه ای ........................................................................................................... 17
2-2- 7-1 آشکارسازی نقص...................................................................................................................................................................... 18
2-2- 7-2 محدودسازی نقص .................................................................................................................................................................. 19
ز
2-2 7-3 بازیابی نقص .............................................................................................................................................................................20
2-2- 8 تاکتیک های تحمل پذیری خطای نرم افزاری چند نسخه ای ........................................................................................................ 21
2-2- 8-1 بلوک های بازیابی ...................................................................................................................................................................... 21
2-2- 8-2 برنامه نویسی چند نسخه ای ..................................................................................................................................................... 23
2-2- 8-3 برنامه نویسی خود بررسی ........................................................................................................................................................ 25
2-2- 8-4 بلوک های بازیابی توزیع شده ................................................................................................................................................ 27
2-2- 8-5 بلوک های بازیابی اجماعی ..................................................................................................................................................... 29
2-2- 8-6 رأی گیری پذیرش ..................................................................................................................................................................... 30
2-3 برنامه نویسی جنبه گرا ..................................................................................................................................................................... 32
2-3- 1 جداسازی دغدغه ها .............................................................................................................................................................................. 33
2-3- 2 برنامه نویسی جنبه گرا .......................................................................................................................................................................... 35
2-3- 2-1 جنبه ............................................................................................................................................................................................ 36
2-3- 2-2 نقطه اتصال ................................................................................................................................................................................ 37
2-3- 2-3 محل برش .................................................................................................................................................................................. 38
2-3- 2-4 کد توصیه ................................................................................................................................................................................... 38
39 ......................................................................................................................................................................................... AspectC++ 3 -3-2
2-3- 4 تحمل پذیری خطا با استفاده از برنامه نویسی جنبه گرا ................................................................................................................. 41
2-4 بررسی کارهای مرتبط ................................................................................................................................................................... 43
2-4- 1 معرفی کارهای انجام شده.................................................................................................................................................................. 43
2-4- 2 نقاط ضعف و مشکلات کارهای انجام شده ..................................................................................................................................... 47
2-5 جمع بندی مطالب فصل................................................................................................................................................................. 49
فصل سوم: مدل سازی تاکتیک های تحمل پذیری خطای نرم افزاری با استفاده از برنامه نویسی جنبه گرا ..... 51
3-1 مقدمه................................................................................................................................................................................................. 52
3-2 مدل سازی تاکتیک بلوک های بازیابی با استفاده از جنبه گرایی .......................................................................................... 52
3-2- 1 بلوک های بازیابی به عنوان یک جنبه.............................................................................................................................................. 53
3-2- 2 الگوی طراحی بلوک های بازیابی جنبه گرا ..................................................................................................................................... 56
3-2- 2-1 منظور .......................................................................................................................................................................................... 56
3-2- 2-2 انگیزه .......................................................................................................................................................................................... 56
س
3-2 2-3 کاربردپذیری ..............................................................................................................................................................................57
3-2- 2-4 ساختار الگوی پیشنهادی ........................................................................................................................................................ 57
3-2- 2-5 سناریو ......................................................................................................................................................................................... 59
3-2- 2-6 نتایج ............................................................................................................................................................................................ 63
3-2- 2-7 پیاده سازی .................................................................................................................................................................................. 64
3-2- 2-8 نمونه کد ..................................................................................................................................................................................... 64
3-2 مدل سازی تاکتیک برنامه نویسی چند نسخه ای با استفاده از جنبه گرایی .......................................................................... 65
3-2- 1 الگوی تاکتیک برنامه نویسی چند نسخه ای جنبه گرا .................................................................................................................. 67
3-2- 1-1 منظور .......................................................................................................................................................................................... 67
3-2- 1-2 انگیزه .......................................................................................................................................................................................... 67
3-2- 1-3 کاربردپذیری .............................................................................................................................................................................. 68
3-2- 1-4 ساختار ........................................................................................................................................................................................ 68
3-2- 1-5 سناریو ......................................................................................................................................................................................... 69
3-2- 1-6 نتایج ............................................................................................................................................................................................ 70
3-2- 1-7 پیاده سازی .................................................................................................................................................................................. 71
3-2- 1-8 کد نمونه ..................................................................................................................................................................................... 71
3-3 جمع بندی مطالب فصل................................................................................................................................................................. 72
فصل چهارم: مطالعه موردی و ارزیابی ............................................................................................................. 74
4-1 مقدمه................................................................................................................................................................................................. 75
4-1 شاخص ها و معیارهای ارزیابی ...................................................................................................................................................... 75
4-1- 1 معیارهای جداسازی دغدغه ها ........................................................................................................................................................... 75
4-1- 1-1 پخش دغدغه بر روی مولفه ها (CDC)................................................................................................................................. 75
4-1- 1-2 پخش دغدغه بر روی متدها (CDO) ................................................................................................................................... 76
4-1- 2 معیار اتصال ........................................................................................................................................................................................... 76
4-1- 2-1 اتصال بین مولفه ها (CBC) .................................................................................................................................................... 76
4-1- 2-2 عمق درخت وراثت (DIT) ...................................................................................................................................................... 76
4-1- 3 معیار اندازه ............................................................................................................................................................................................ 77
4-1- 3-1 تعداد اجزاء (VS)...................................................................................................................................................................... 77
ش
4-1 3-2 تعداد خصوصیات (NOA) ......................................................................................................................................................77
4-2 مطالعه موردی ................................................................................................................................................................................. 77
4-2- 1 برنامه مرتب سازی با تاکتیک بلوک های بازیابی به روش شیءگرایی ........................................................................................ 78
4-2- 2 برنامه مرتب سازی با تاکتیک بلوک های بازیابی جنبه گرا ............................................................................................................ 79
4-2- 3 برنامه مرتب سازی با تاکتیک برنامه نویسی چند نسخه ای به روش شیءگرایی ...................................................................... 81
4-2- 4 برنامه مرتب سازی با تاکتیک برنامه نویسی چند نسخه ای جنبه گرا........................................................................................... 82
4-2- 3 ارزیابی .................................................................................................................................................................................................... 83
4-3 نتیجه گیری ....................................................................................................................................................................................... 85
4-4 جمع بندی مطالب فصل.................................................................................................................................................................. 86
فصل پنجم: خلاصه و نتیجه گیری .................................................................................................................... 87
5-1 مقدمه................................................................................................................................................................................................. 88
5-2 بازبینی میزان تحقق اهداف پایان نامه ........................................................................................................................................ 88
5-3 ویژگی نوآوری های تحقیق ............................................................................................................................................................ 89
5-4 محدودیت ها...................................................................................................................................................................................... 90
5-5 نتیجه گیری ....................................................................................................................................................................................... 90
5-6 کارهای آینده ................................................................................................................................................................................... 91
مراجع .......................................................................................................................................................................................................... 93
ص
جدول 2-2 تاکتیک های پیاده سازی شده با برنامه نویسی جنبه گرا 63
جدول 4-1 برنامه های پیاده سازی شده در مطالعه موردی... 99
منبع:
AspectC++ project homepage. http://www.aspectc.org
A., Laprie, J.C., Randell, B. and Landwehr Avizienis, "Basic Concepts and Taxonomy of Dependable and Secure Computing," IEEE Transactions on Dependable and Secure Computing, vol. 1, no. 1, pp. 11-33, March 2004.
J.H. and Harper, R.E Lala, "Architectural principles for safety-critical real-time," in Proceedings of the IEEE, 82 (1), 1994, pp. 25-40.
N Storey, Safety Critical Computer Systems.: Addison-Wesley Longman, Inc, 1996.
Paul Clements, Rick Kazman Len Bass, Software Architecture in Practice, Second Edition ed.: Addison Wesley, 2003.
W Torres, "Software Fault Tolerance: A Tutorial," NASA Langley Technical 2000.
D. and Traverse, P Briere, "AIRBUS A320/A330/A340 electrical flight controls - A family of fault-tolerant systems," in Proceedings of the Twenty Third International Symposium on Fault-Tolerant Computing - FTCS-23, Toulouse, France, 1993, pp. 616-623.
D.P Siewiorek, "Architecture of fault-tolerant computers: an historical perspective," in perspective., 1991, pp. 1710-1734.
J.J., Lauer, H.C., Melliar-Smith, P.M. and Randell, B Horning, "A program structure for error detection and recovery," in In Proceedings of an International Symposium Operating Systems, Springer-Verlag, 1974, pp. 171 - 187.
Elena Dubrova, Fault Tolerant Design: An Introduction. Boston/Dordrech, London: Fault Tolerant Design: An Introduction, 2007.
L. and Avizienis, A Chen, "N-Version Programming: A fault-tolerance approach to reliability of sotware operation," in In Proceedings of FTCS-8, Tolouse, France, 1978, pp. 3-9.
A. Avizienis, "The Methodology of N-Version Programming," in In Lyu, M.R. ed. Software fault tolerance, Wiley, 1995, pp. 23-46.
P Traverse, "AIRBUS and ATR System Architecture and Specification," in U. Voges (ed.), Software Diversity in Computerized Control Systems, Springer-Verlag, New York, 1988, pp. 95-104.
K.H Kim, "The distributed recovery block scheme," in In Lyu, M.R. ed. Software Fault Tolerance, Wiley, 1995, pp. 189-209.
K.H. and Welch, H.O Kim, "Distributed execution of recovery blocks: an approach for uniform treatment of hardware and software faults in real-time applications," IEEE Transactions on Computers, pp. 38 (5): 626-636, 1989.
Laura L. Pullum, Software Fault Tolerance Techniques and Implementation. Boston, London: artechhouse, 2001.
H. Ossher, W. H. Harrison, and S. S. Jr. N degrees of separation P. Tarr, "Multidimensional separation of concerns," in In Proceedings of the International Conference on Software Engineering, IEEE Computer Society Press, 1999, pp. 107–119.
E. W. Dijkstra, "On the role of scientific thought," Springer-Verlag New York, Inc, no. 0387-90652-5, pp. 60–66, 1982.
Lionel Seinturier Renaud Pawlak, "Foundations of AOP for J2EE Development," SpringerVerlag New York, no. ISBN: 1-59059-507-6, 2005.
Olaf Spinczyk, Daniel Lohmann, and Matthias Urban, "Advances in AOP with AspectC++," in Software Methodologies Tools and Techniques (SoMeT '05), Tokyo, Japan, 2005, pp. 3353.
J.L., Sanchez, F., Toro, M Herrero, "Fault tolerance as an aspect using JReplica," in Proceedings of the Eighth IEEE Workshop on Future trends of Distributed Computing Systems, Los Alamitos, 2001, pp. 201–207.
O. and Lohmann, D Spinczyk, "The design and implementation of AspectC++," in Knowledge Based Systems, 2007, pp. 636-651.
J Fabry, "A Framework for Replication of Objects using Aspect-Oriented Programming," Phd Thesis, University of Brussel 1998.
D., Nadjm-Tehrani, S Szentivanyi, "Aspects for improvement of performance in faulttolerant software," in Proceedings of the 10th IEEE Pacific Rim International Symposium on Dependable Computing, 2004, pp. 283–291.
Ruben Alexandersson, "Implementing Fault Tolerance Using Aspect Oriented Programming," Springer, pp. LNCS 4746, pp. 57–74, 2007.
Ruben Alexandersson, "Aspect-Oriented Implementation of Fault Tolerance: An Assessment of Overhead," Springer, SAFECOMP, no. LNCS 6351, pp. 466–479, 2010.
Ruben Alexandersson, "On Hardware Resource Consumption for Aspect-Oriented
Implementation of Fault Tolerance," in European Dependable Computing Conference,
.0102
RobWilliams Kashif Hameed, "Software Fault Tolerance: An Aspect Oriented Approach," Springer, Electronic Engineering and Computing Technology, no. DOI 10.1007/978-90-4818776-8 14, 2010.
Fernando Castor filho, "Error Handling as an Aspect," in Workshop BPAOSD '07, Vancouver, BC, Canada, 2007.
Carlos Silva, Nuno Brito, Sergio Montenegro Francisco Afonso, "Aspect-Oriented Fault Tolerance for Real Time Embedded Systems," in In Proceedings of the AOSD workshop on Aspects, components, and patterns for infrastructure software, ACM, Brussels, Belgium, 2008, pp. 1-8.
Vincenzo De Florio, Application-Layer Fault-Tolerance Protocols.: United States of America by Information Science reference, 2009.
B. and Jie, X Randel, "The evolution of the recovery block concept," in Lyu, M.R. ed. Software fault tolerance, Wiley, 1995, pp. 1-21.
K.S., Shokri, E.H., Tai, A.T. and Dziegiel Jr., R.J. Tso, "A reuse framework for software fault tolerance," in In Proceedings of the 10th AIAA Computing in Aerospace Conference, San Antonio, TX, 1995, pp. 490-500.
J., Randell, B., Rubira-Calsavara, C.M.F. and Stroud, R.J.A.S.R.J Xu, "Toward an objectoriented approach to software fault tolerance," in In Proceedings of IEEE Workshop on Fault-Tolerant Parallel and Distributed Systems, 1994, pp. 226-233.
J., Randell, B. and Romanovsky, A Xu, "A generic approach to structuring and implementing complex fault-tolerant software," in In Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing - ISORC, 2002, pp. 207-214.
C. Chavez, "A Model-Driven Approach for Aspect-Oriented Design,"
Pontif´ficiaUniversidade Cat´olica do Rio de Janeiro, Rio de Janeiro, Brazil, PhD thesis April 2004.
Richard Helm, Ralph Johnson, John Vlissides The "Gang of Four": Erich Gamma, Design Patterns: Elements of Reusable Object-Oriented Software. USA: Addison-Wesley, 1994.
C. N. Sant' anna at al, "On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework," in Proc of Brazilian Symp. Software Engineering, Brazil, 2003, pp. 19-34.
J., Randel, B. and Zorzo, A.F Xu, "Implementing Software Fault Tolerance in C++ and OpenC++: an object-oriented and reflective approach," in International Workshop on Computer-Aided Design, Test and Evalution for Dependability, Beijing, China, 1996, pp. pp. 224-229.
Wilfredo Torres-Pomales, "Software Fault Tolerance: A Tutorial," in NASA, Langley .