تصور البرمجيات
تصور البرمجيات[1][2] أو التصور البرمجي يشير إلى تصوُّر المعلومات المتعلقة بالأنظمة البرمجية والمتعلقة بها، إما معمارية البرمجيات للشيفرة المصدرية الخاصة بها أو مقاييس سلوكها في وقت التنفيذ وعملية تطويرها عن طريق ثابت أو تفاعلي أو متحرك 2-D أو 3-D[3] تمثيلات بصرية لبنيتها،[4] التنفيذ،[5] السلوك،[6] والتطور.
معلومات نظام البرمجياتعدل
يستخدم تصور البرمجيات مجموعة متنوعة من المعلومات المتوفرة حول أنظمة البرامج. تشمل فئات المعلومات الرئيسية ما يلي:
- آثار التنفيذ مثل رموز المصدر.
- بيانات القياس البرمجية من القياسات أو من الهندسة العكسية.
- آثار تسجل سلوك التنفيذ.
- بيانات فحص البرمجيات (على سبيل المثال، تغطية الفحص).
- بيانات مستودع البرمجيات التي تتعقب التغييرات.
أهدافعدل
تتمثل أهداف تصور البرمجيات في دعم فهم أنظمة البرمجيات (أي هيكلها) والخوارزميات (على سبيل المثال، من خلال تنشيط سلوك خوارزميات الفرز) بالإضافة إلى تحليل واستكشاف أنظمة البرامج وشذوذاتها (على سبيل المثال، من خلال إظهار الطبقات ذات الاقتران العالي) وتطورها . تتمثل إحدى نقاط القوة في تصور البرامج في دمج وربط معلومات أنظمة البرامج غير المرتبطة بطبيعتها، على سبيل المثال من خلال إسقاط تغييرات التعليمات البرمجية على آثار تنفيذ البرامج.[7]
يمكن استخدام تصور البرمجيات كأداة وتقنية لاستكشاف وتحليل معلومات نظام البرامج، على سبيل المثال، لاكتشاف حالات شاذة تشبه عملية استخراج البيانات المرئية.[8] على سبيل المثال، يُستخدم تصور البرمجيات لمراقبة الأنشطة مثل جودة التعليمات البرمجية أو نشاط الفريق.[9] التصور ليس بطبيعته طريقة لضمان جودة البرمجيات. تشارك تصورات البرمجيات في ذكاء البرمجيات في السماح باكتشاف المكونات الداخلية لأنظمة البرامج والاستفادة منها.
أنواععدل
يمكن استخدام أدوات لتصور البرمجيات لتصور كود المصدر وعيوب الجودة أثناء تطوير البرامج وأنشطة الصيانة. هناك طرق مختلفة لتعيين شيفرة المصدر لتمثيل مرئي مثل خرائط البرامج هدفها يشمل،[10] على سبيل المثال، الاكتشاف والتصور التلقائي لعيوب الجودة في أنظمة وخدمات البرمجيات الموجهة للكائنات. بشكل عام، يتصورون العلاقة المباشرة للفصل وطرقه مع الفصول الأخرى في نظام البرمجيات ويضعون علامة على عيوب الجودة المحتملة. فائدة أخرى هي دعم التنقل البصري من خلال نظام البرمجيات.
يتم استخدام برنامج رسم بياني متخصص أكثر أو أقل لتصور البرمجيات. وجد مسح صغير عام 2003 للباحثين النشطين في مجالات الهندسة العكسية وصيانة البرمجيات أنه تم استخدام مجموعة متنوعة من أدوات التصور، بما في ذلك حزم الرسم البياني للأغراض العامة مثل GraphViz و GraphEd وأدوات لغة النمذجة الموحدة مثل Rational Rose وBorland Together، والمزيد أدوات متخصصة مثل تصور الرسوم البيانية للمترجم (VCG) وريجي.[11] مجموعة أدوات لغة النمذجة الموحدة التي يمكن أن تعمل كمصور بصري من خلال مصدر الهندسة العكسية ليست قصيرة على الإطلاق، أشار كتاب عام 2007 إلى أنه بالإضافة إلى الأداتين السالفتي الذكر، فإن نموذج ESS وBlueJ وFujaba لديهم أيضًا هذه الإمكانية، وأن Fujaba يمكنها أيضًا تحديد أنماط التصميم.[12]
انظر أيضًاعدل
- مفاهيم ذات الصلة
مراجععدل
- ^ Bohnet, Johannes؛ Döllner (2006)، "Analyzing Feature Implementation by Visual Exploration of Architecturally-Embedded Call-Graphs"، 4th International Workshop on Dynamic Analysis، ACM Press، ص. 41–48، doi:10.1145/1138912.1138922، ISBN 1595934006.
- ^ Diehl 2002; Diehl 2007; Knight 2002
- ^ (Marcus, Feng & Maletic 2003; Wettel & Lanza 2007)
- ^ Staples & Bieman 1999
- ^ Trümper, J.؛ Döllner؛ Telea (2013)، "Multiscale Visual Comparison of Execution Traces"، Proceedings of the International Conference on Program Comprehension، IEEE Computer Society، ص. 53–62، doi:10.1109/ICPC.2013.6613833، ISBN 978-1-4673-3092-3.
- ^ (Kuhn & Greevy 2006, Stasko et al. 1998)
- ^ Bohnet, J.؛ Voigt؛ Döllner (2009)، "Projecting code changes onto execution traces to support localization of recently introduced bugs"، Proceedings of the 2009 ACM symposium on Applied Computing، ص. 438–442، doi:10.1145/1529282.1529378، ISBN 9781605581668.
- ^ (Keim 2002; Soukup & Davidson 2002; Burch, Diehl & Weißgerber 2005)
- ^ Bohnet, J.؛ Döllner (2011)، "Monitoring Code Quality and Development Activity by Software Maps"، Proceedings of the IEEE ACM ICSE Workshop on Managing Technical Debt، Association for Computing Machinery، ص. 9–16، doi:10.1145/1985362.1985365، ISBN 9781450305860.
- ^ Limberger, D.؛ Wasty؛ Trümper؛ Döllner (2013)، "Interactive software maps for web-based source code analysis"، Proceedings of the 18th International Conference on 3D Web Technology، ص. 91–98، doi:10.1145/2466533.2466550، ISBN 9781450321334.
- ^ Koschke, Rainer (2003)، "Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey"، Journal of Software Maintenance and Evolution: Research and Practice، 15 (2): 87–109، doi:10.1002/smr.270.
- ^ Diehl 2007، صفحة 63
قراءة متعمقةعدل
- Roels, R.؛ Meştereagă؛ Signer (2016)، "An Interactive Source Code Visualisation Plug-in for the MindXpres Presentation Platform"، Communications in Computer and Information Science (CCIS)، Springer، doi:10.1007/978-3-319-29585-5_10، ISBN 978-3-319-29584-8.
- Burch, M.؛ Diehl؛ Weißgerber (2005)، "Visual data mining in software archives"، Proceedings of the 2005 ACM symposium on Software visualization (SoftVis '05)، ص. 37–46، doi:10.1145/1056018.1056024، ISBN 1595930736.
- Diehl, S. (2002)، Software Visualization. International Seminar Dagstuhl Castle, Germany, May 20–25, 2001 Revised Papers، Lecture Notes in Computer Science، Springer، ج. 2269، doi:10.1007/3-540-45875-1، ISBN 978-3-540-43323-1.
- Diehl, S. (2007)، Software Visualization — Visualizing the Structure, Behaviour, and Evolution of Software، Springer، ISBN 978-3-540-46504-1.
- Eades, P.؛ Zhang (1996)، Software Visualisation، Series on Software Engineering and Knowledge Engineering، World Scientific، ج. 7، ISBN 981-02-2826-0.
- Gîrba, T.؛ Kuhn؛ Seeberger؛ Ducasse (2005)، "How Developers Drive Software Evolution" (PDF)، Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2005)، IEEE Computer Society Press، ص. 113–122، doi:10.1109/IWPSE.2005.21، ISBN 0-7695-2349-8.
- Keim, D.A. (يناير–مارس 2002)، "Information visualization and visual data mining"، IEEE Transactions on Visualization and Computer Graphics، 8 (1): 1–8، doi:10.1109/2945.981847.
- Knight, C. (2002)، "System and Software Visualization"، في Chang Shi-kuo (المحرر)، Emerging Technologies، Handbook Of Software Engineering And Knowledge Engineering، World Scientific، ج. 2، ص. 131–148، ISBN 978-981-4491-78-5.
- Kuhn, A.؛ Greevy (2006)، "Exploiting the Analogy Between Traces and Signal Processing" (PDF)، Proceedings IEEE International Conference on Software Maintenance (ICSM 2006)، IEEE Computer Society Press، ص. 394–5، doi:10.1109/ASE.2004.1342773، ISBN 0-7695-2131-2.
- Lanza, M. (2004)، "CodeCrawler — polymetric views in action"، Proceedings. 19th International Conference on Automated Software Engineering, Linz, Austria, 20 24 Sept. 2004، ص. 394–5، doi:10.1109/ASE.2004.1342773، ISBN 0-7695-2131-2.
- Lopez, F.L.؛ Robles؛ Gonzalez (2004)، "Applying social network analysis to the information in CVS repositories"، International Workshop on Mining Software Repositories (MSR 2004)" W17S Workshop 26th International Conference on Software Engineering, Edinburgh, Scotland, UK, 25 May 2004، IET، ص. 101–5، doi:10.1049/ic:20040485، ISBN 0-86341-432-X.
- Marcus, A.؛ Feng؛ Maletic (2003)، "3D representations for software visualization"، Proceedings of the 2003 ACM symposium on Software visualization، ص. 27–ff، doi:10.1145/774833.774837، ISBN 1581136420.
- Soukup, Tom؛ Davidson (2002)، Visual Data Mining: Techniques and Tools for Data Visualization and Mining، Wiley، ISBN 978-0-471-27138-3، مؤرشف من الأصل في 21 يوليو 2020.
- Staples, M.L.؛ Bieman (1999)، "3-D Visualization of Software Structure"، Advances in Computers، 49: 96–143، doi:10.1016/S0065-2458(08)60284-3، ISBN 9780120121496.
- Stasko, John؛ Brown؛ Domingue؛ Price (1998)، Software Visualization: Programming as a Multimedia Experience، MIT Press، ISBN 978-0-262-19395-5، مؤرشف من الأصل في 21 يوليو 2020.
- Van Rysselberghe, F.؛ Demeyer (2004)، "Studying Software Evolution Information By Visualizing the Change History"، Proceedings. 20th International Conference On Software Maintenance، IEEE Computer Society Press، ص. 328–337، doi:10.1109/ICSM.2004.1357818، ISBN 0-7695-2213-0.
- Wettel, R.؛ Lanza (2007)، "Visualizing Software Systems as Cities"، Proceedings of VISSOFT 2007 (4th IEEE International Workshop on Visualizing Software For Understanding and Analysis)، IEEE Computer Society Press، ص. 92–99، doi:10.1109/VISSOF.2007.4290706، ISBN 978-1-4244-0599-2.
- Zhang, K. (2003)، Software Visualization — From Theory to Practice، Kluwer، ISBN 1-4020-7448-4.