Lect7_GS213 Introduction to Software Engineering PDF

Document Details

GrandMint7948

Uploaded by GrandMint7948

University of Tripoli

2020

Marwa Solla

Tags

software engineering programming tools programming languages IT

Summary

This document provides an introduction to software engineering, covering various programming tools and languages.

Full Transcript

‫جامعة طرابلس ـ كلٌة تمنٌة المعلومات‬ ‫مقذمت في هنذست البرمجياث‬ ‫‪Introduction to software Engineering‬‬ ‫‪ITGS-213‬‬ ‫المحاضرة السابعة – أدوات البرمجة‬ ‫‪Programming Tools‬‬ ‫خريف‪2020‬‬ ‫مىاضيع المحاضرة‬ Prog...

‫جامعة طرابلس ـ كلٌة تمنٌة المعلومات‬ ‫مقذمت في هنذست البرمجياث‬ ‫‪Introduction to software Engineering‬‬ ‫‪ITGS-213‬‬ ‫المحاضرة السابعة – أدوات البرمجة‬ ‫‪Programming Tools‬‬ ‫خريف‪2020‬‬ ‫مىاضيع المحاضرة‬ Programming Tools  Utility Tools  ‫ إرشادات فً كتابة شفرة الجٌدة‬ Computer Aided Software ‫ هندسة البرمجٌات بمساعدة الحاسوب‬ Engineering (CASE ‫البرمجة‬ ‫البرمجة ‪ : Programming‬هً عبارة عن كتابة مجموعة من األوامر(مجموعة لواعد أو‬ ‫‪‬‬ ‫عرف بالشٌفرة ‪Code‬أو الكود‪ ،‬وهذه األوامر هً التً تُش ِ ّكل ما ٌُ َ‬ ‫عرف‬ ‫إرشادات ) أو ما ٌُ َ‬ ‫بالبرنامج ‪Program‬‬ ‫لغات البرمجة ‪Programming language‬هً مجموعةُ أوامر مكتوبة على شكل رموز‬ ‫‪‬‬ ‫جهاز الحاسوب وٌمو ُم بتنفٌذها‪ ،‬وت َ ُمر لُغاتُ البرمج ِة بمجموعة‬ ‫ُ‬ ‫تستن ُد إلى لواع َد معٌّنة ٌفه ُمها‬ ‫ت والمراح ِل لبل أن ٌتم تنفٌذُها‪.‬‬ ‫من الخطوا ِ‬ ‫أنواع طرق البرمجة‬ ‫البرمجة الهيكلية‪Structured Programming‬‬ ‫‪(1‬‬ ‫تعتمد البرمجة الهٌكلٌة على تجزئة البرنامج إلى عدة برامج جزئٌة أو فرعٌة حٌث ٌتم الربط بٌن هذه‬ ‫‪‬‬ ‫البرامج الفرعٌة لتشكٌل البرنامج العام وتظهر فاعلٌته فً حالة المسائل متوسطة الحجم كما ٌسهل‬ ‫اكتشاف األخطاء بهذا األسلوب‪..‬‬ ‫‪Procedural Programming‬وذلن بتجزئة‬ ‫ٌطلك علٌها اٌضا تسمٌة البرمجة االجرائٌة‬ ‫‪‬‬ ‫البرنامج الى وحدات تسمى اجراءات لتسهٌل المراءة واعادة االستخدام تسمى هذه االجزاء بعدة‬ ‫أسماء‪:Procedures - functions.‬‬ ‫أنواع طرق البرمجة‬ ‫البرمجة بالحدث والمرئية‪Visual Programming & Events‬‬ ‫‪(2‬‬ ‫وٌسمى هذا النوع بالبرمجة بالحدث والمرئٌة النه ٌتم تنفٌذ مجموعة من االفعال التً نموم بتعٌٌنها نتٌجة‬ ‫‪‬‬ ‫لحدث لام المستخدم بإجراءه على احد عناصر واجهة البرنامج مثل ‪ command Button‬و سٌطرة‬ ‫أكثر للمستخدم على تسلسل تنفٌذ العملٌات‪.‬‬ ‫ٌتم تنفٌذ البرنامج بحسب رغبة المستخدم‪(Event-driven languages).‬‬ ‫‪‬‬ ‫ٌتمتع هذا النوع من لغة البرمجة بوجود ‪ Tools Box‬الذي ٌمكن المبرمج من اعداد واجهة رسومٌة‬ ‫‪‬‬ ‫للمستخدم‪.‬‬ ‫أنواع طرق البرمجة‬ ‫البرمجة الشيئية‪Object-Oriented Programming‬‬ ‫‪(3‬‬ ‫وتسمى أٌضا البرمجة الكائنية أو غرضية التوجيه ‪.‬وهً تعتبر أن االجسام من حولنا هً كائنات تتفاعل مع‬ ‫‪‬‬ ‫بعضها بغض النظر أكانت حٌة أو جامدة ‪.‬‬ ‫ٌتم فٌها تمسٌم البرنامج إلى وحدات تسمى الكائنات‪ ، Objects‬كل كائن عبارة عن حزمة من البٌانات‬ ‫‪‬‬ ‫والمتغٌرات والثوابت والدوال ‪.‬وهً كائنات لابلة لالستخدام‪Reuse.‬‬ ‫اسم الكائن‬ ‫وٌتم بناء البرنامج بواسطة استخدام الكائنات وربطها مع بعضها البعض‪.‬‬ ‫‪‬‬ ‫بٌانات (خصائص)‬ ‫أصبحت لغة شائعة فً التسعٌنات والزالت ‪.‬‬ ‫‪‬‬ ‫طرق‬ ‫هذا المفهوم نتاج طبٌعً لما هو موجود فً حٌاتنا الٌومٌة‪.‬‬ ‫‪‬‬ ‫البرمجة الشيئية‪Object-Oriented Programming‬‬ ‫فمثال إذا كان عندنا كائن سٌارة فإن للسٌارة متغٌرات خاصة بها ودوال خاصة بها ‪ ،‬مثال من متغٌرات‬ ‫‪‬‬ ‫السٌارة‪ ،‬كمٌة الولود المتوفرة‪ ،‬وسرعة السٌارة الحالٌة‪ ،‬ودرجة حرارة المحرن‪ ،‬ومن دوال السٌارة دالة‬ ‫لزٌادة السرعة‪ ،‬ودالة المكابح‪ ،‬ودالة تشغٌل أضواء السٌارة‪ ،‬تستطٌع بهذه الطرٌمة أن تفهم أجزاء‬ ‫البرنامج أكثر‪ ،‬وٌصبح المبرمج منظما أكثر‪.‬‬ ‫البرمجة الشٌئٌة‪Object-Oriented Programming‬‬ ‫الكائن ‪ (object):‬رزمة برمجٌة تحتوي على البٌانات والعملٌات المنوطة بها وهً حالة‬ ‫‪‬‬ ‫خاصة للفصٌلة وٌنتمً الكائن الى فصٌلة معٌنة‪Classes.‬‬ ‫الطرق أو الطرٌمة ‪ (Method):‬هً عبارة عن خدمات ٌؤدٌها الكائن لتلبٌة المتطلبات‬ ‫‪‬‬ ‫الوظٌفٌة التً تؤثر على البٌانات داخل الكائن والتً تعد غالبا مخفٌة عن الكائنات األخرى‪.‬‬ ‫الفصٌلة ‪ Class :‬تصف فئة من األشٌاء لها نفس الخصائص ‪ attributes‬والعملٌات‬ ‫‪‬‬ ‫‪operations‬والعاللات ‪ relationships‬هو حالة عامة من الكائن‪.‬‬ ‫فصٌلة فرعٌة ‪ Subclass :‬عبارة عن عائلة متفرعة من الفصٌلة االم وترث عنها البٌانات‬ ‫‪‬‬ ‫والطرق‪.‬‬ ‫البرمجة الشٌئٌة‪Object-Oriented Programming‬‬ ‫الخصائص ‪(Attributes):‬صفات الكائن أو الفصٌلة‪.‬‬ ‫‪‬‬ ‫التصرف ‪ (behaviour) :‬هو عمل او تصرف ٌموم به الكائن عند تمرٌر رسالة‬ ‫‪‬‬ ‫)‪(Message‬او اجابة رسالة)‪(Response‬‬ ‫‪Message:‬هً آلٌة التواصل بٌن الكائنات عبر الرسائل حٌث تحمل بٌانات او تعلٌمات‪.‬‬ ‫‪‬‬ ‫التغلٌف ‪ Encapsulation:‬هو إخفاء المعلومات بٌن الفصائل وٌتم تبادل البٌانات عن طرٌك‬ ‫‪‬‬ ‫الرسائل بٌن الكائنات وإخفاء البٌانات الداخلٌة ‪.‬‬ ‫الوراثة ‪ Inheritance :‬تعنً الفصٌلة الفرعٌة ترث كل الخصائص والطرق للفصٌلة االم‪.‬‬ ‫‪‬‬ ‫مزايا البرمجة الشيئية‬ ‫خصائص البرمجيات مطورة باستخدام البرمجة الشيئية‪OOP :‬‬ ‫‪‬‬ ‫البرمجة بلغة طبٌعٌة‪(Natural language):‬‬ ‫‪.1‬‬ ‫استخدام مصطلحات طبٌعٌة ٌفهمها المستخدم‪.‬‬ ‫موثولٌة البرمجٌات الجاهزة‪(Reliability):‬‬ ‫‪.2‬‬ ‫برمجٌات خالٌة من االخطاء‪.‬‬ ‫اعادة االستخدام‪(Reuse):‬‬ ‫‪.3‬‬ ‫اذا تم اختبار ومصادلة اي جزء برمجً ‪ ،‬من الممكن اعادة استخدامه بكل ثمة‪.‬‬ ‫مزايا البرمجة الشيئية‬ ‫سهولة الصٌانة‪(Maintainability):‬‬ ‫‪.4‬‬ ‫احد اهم اهداف البرمجة الشٌئٌة التملٌل من اعمال الصٌانة الى الحد االدنى‪.‬‬ ‫سهولة التمدد‪(Extendable):‬‬ ‫‪.5‬‬ ‫السهولة فً اضافة وظائف جدٌدة للمنظومة‪.‬‬ ‫التملٌل من مدة اعداد البرمجٌات‪:‬‬ ‫‪.6‬‬ ‫وفرت التمنٌة الشٌئٌة برمجٌات جاهزة مما ادى الى تملٌل زمن تطوٌر اي برمجٌات الى اشهر او‬ ‫حتى اسابٌع‪.‬‬ ‫لغات البرمجة ‪Programming Languages‬‬ ‫تعتبر لغات البرمجة من أهم أدوات البرمجة المستخدمة ومن امثلة لغات البرمجة‪:‬‬ ‫‪‬‬ ‫‪C‬‬ ‫هً لغة برمجة متعدّدة االستخدامات‪ ،‬ظهرت فً أوائل سبعٌنات المرن الماضً‪ ،‬وهً ألدم لغة‬ ‫برمجة واألكثر استخداما‪.‬‬ ‫‪C++‬‬ ‫تُع ّد هذه اللغة تطوٌرا للغة ‪ ،C‬ولد أُضٌفت إلٌها خصائص جعلت منها لغة كائنٌّة التوجه‪ ,‬وتُستخ َدم‬ ‫هذه اللغة فً تطوٌر البرمجٌّات المختلفة واأللعاب‬ ‫‪Java‬‬ ‫هً لغة كائنٌّة التوجه‬ ‫‪Python‬‬ ‫لغة الباٌثون من بٌن لغات البرمجة األساسٌة واالكثراستخدام فً السنوات االخٌرة‬ ‫‪JavaScript & PHP.‬‬ ‫لغات تطبٌمات االنترنت‬ ‫‪Prolog‬‬ ‫احدى لغات الذكاء االصطناعً‬ ‫‪SQL‬‬ ‫صة ببرمجة لواعد البٌانات‬ ‫هً لغة مخت ّ‬ Top 10 In-Demand programming languages to learn in 2020 IEEE Spectrum Trending Jobs Source: IEEE Spectrum Interactive Ranking ‫أدوات مساعدة‪Utility Tools‬‬ ‫هً مجموعة ادوات تساعد فً اعداد وتعدٌل وتصحٌح وادارة البرمجٌات‪.‬‬ ‫‪‬‬ ‫المصححات ‪ Debugger :‬هً اداة تستخدم الكتشاف االخطاء فً البرامج‪.‬‬ ‫ ‬ ‫المحررات والمتصفحات‪Editors/Browsers :‬‬ ‫ ‬ ‫المحررات تساعد على التركٌز على جزء من الشفرة المراد تعدٌلها‪ ،‬وتشمل المحررات التالً‪:‬‬ ‫تلوٌن النص‬ ‫‪.1‬‬ ‫المص واللصك بٌن النوافذ والصفحات‬ ‫‪.2‬‬ ‫إلغاء التعدٌل وإعادته‬ ‫‪.3‬‬ ‫أما المتصفحات فتستخدم فً لعرض الصفحات‪.‬‬ ‫ ‬ ‫أدوات مساعدة‪Utility Tools‬‬ ‫مكونات الشفرة‪Code Generators:‬‬ ‫ ‬ ‫توفر ولت لكتابة شفرة معٌنة بحٌث تكون جاهزة لالستعمال حٌث تمكن المستخدم من تعرٌف الواجهة‪.‬‬ ‫المكتبة‪Libraries:‬‬ ‫ ‬ ‫تحتوي على العدٌد من الدوال واالجراءات او الفصائل التً تساعد على اعداد برمجٌات ذات جودة فً‬ ‫ولت لصٌر‪.‬‬ ‫إرشادات فً كتابة شفرة الجٌدة‬ ‫ٌعد األسلوب الجٌد أمرا مهم فً أسالٌب البرمجة والتً تتضمن الشكل العام للشفرة‬ ‫‪‬‬ ‫المصدرٌة ومن هذه االرشادات‪:‬‬ ‫المسافة البادئة ‪:‬إن المسافات البادئة الصحٌحة والمنطمٌة تجعل الشفرة أكثر لابلٌة للمراءة وال‬ ‫‪(1‬‬ ‫تؤثر فً الوظٌفة‪.‬‬ ‫إرشادات فً كتابة شفرة الجٌدة‬ ‫التعلٌمات ‪:‬التً تشٌر إلى بعض المسائل الخاصة‪.‬‬ ‫‪(2‬‬ ‫استعمال الل ما ٌمكن من تراكٌب التحكم مثل )‪ (If-Then-Else‬حتً ٌصبح البرنامج سهل المراءة والفهم‬ ‫‪(2‬‬ ‫والصٌانة‪.‬‬ ‫التنسٌك‪:‬‬ ‫‪(3‬‬ ‫التملٌل من استعمال الحلمات المتداخلة وٌجب إال ٌزٌد عممها التداخل عن خمس تداخالت‪.‬‬ ‫‪(4‬‬ ‫عدم او للة استخدام جملة‪Go To.‬‬ ‫‪(5‬‬ ‫ٌجب أال ٌزٌد البرنامج الفرعً عن ‪ 50‬جملة برمجٌة‪.‬‬ ‫‪(6‬‬ ‫ادوات كيس‬ ‫‪CASE TOOLS‬‬ ‫‪ ‬تشبه أدوات كٌس البرمجٌة برنامج ‪ AUTO-CAD‬الذي ٌستخدم لمساعدة المهندسٌن فً‬ ‫رسم الخرائط المعمارٌة‪.‬‬ ‫‪ ‬ألداء اي منتوج برمجً نحتاج الً أدوات مساعدة ‪ ,‬تسمى هذه االدوات )‪ (CASE‬بـ هندسة‬ ‫البرمجٌات بمساعدة الحاسوب ‪Computer Aided Software Engineering‬‬ ‫‪(CASE).‬اي اعداد المنظومات بمساعدة الحاسوب‪.‬‬ ‫‪ ‬ومن امثلة أدوات كٌس التً تستخدم لرسم مخطط حالة االستخدام ما ٌسمى برنامج ‪VISIO‬‬ ‫من اعداد شركة مٌكروسوفت‪.‬‬ ‫‪19‬‬ ‫ادوات كيس‬ ‫‪Computer Aided Software Engineering (CASE) TOOLS‬‬ ‫‪ ‬هً برامج جاهزة على الحاسب تساعد محللً النظم ومهندسً البرمجٌات فً دعم وأتمتة‬ ‫األعمال التً تتم خالل دورة حياة تطوير النظام ‪Software Development Life Cycle‬‬ ‫‪SDLC.‬‬ ‫‪ ‬الغرض منها تسهٌل عملٌة توحٌد فلسفة التصمٌم داخل المؤسسة‪.‬‬ ‫‪20‬‬ ‫الهذف من ادواث كيس‬ ‫‪Objectives of CASE TOOLS‬‬ ‫‪.1‬زٌادة سرعة التطوٌر والتصمٌم‪.‬‬ ‫‪.2‬تسهٌل وتحسٌن إجراءات االختبار من خالل التدلٌك اآللى‪.‬‬ ‫‪ٌ.3‬ساعد على توحٌد إجراءات تطوٌر النظم بناءا على منهجٌة‪.‬‬ ‫‪.4‬تحسٌن عملٌة إدارة المشروع‪.‬‬ ‫‪.5‬صٌانة أسهل للبرامج‪.‬‬ ‫‪.6‬تشجع على إعادة االستخدام واالستفادة‪.‬‬ ‫‪.7‬تساعد على زٌادة اإلنتاجٌة‪.‬‬ ‫‪21‬‬ ‫أدوات الكيس‪CASE‬‬ ‫تنقسم ادوات ‪ CASE‬الى قسمين‪:‬‬ ‫األدوات الكبيرة‪Upper-CASE:‬‬ ‫ وهً أدوات لدعم نشاطات العملٌات المبكرة من المتطلبات و التصمٌم‪.‬‬ ‫األدوات الصغيرة‪Lower-CASE:‬‬ ‫ وهً أدوات لدعم النشاطات التالٌة مثل البرمجة و تصحٌح األخطاء و االختبار والتنفٌذ (البرمجة) والصٌانة و‬ ‫دعم أعمال التطوٌر المختلفة عبر المراحل المختلفة مثل التوثٌك‪.‬‬ ‫‪22‬‬ ‫مكونات أدوات كيس‬ ‫‪Components CASE TOOLS‬‬ ‫‪ ‬كانج أدواث الكيس في البذايت في السبعيناث عبارة عن معالج الكلماث يسخعمل لخىثيق‬ ‫البرمجياث ‪.‬ثم طىرث واصبحج حشخمل على االحي‪:‬‬ ‫‪.1‬أدواث رسم المخططاث‪Diagramming tools.‬‬ ‫‪.2‬مكىناث الشاشاث ومىلذاث الخقارير‪Screen/report generators.‬‬ ‫‪.3‬مىلذ البرامج والخطبيقاث ‪Code generators.‬‬ ‫‪.4‬مىلذ الىثائق‪Documentation generators.‬‬ ‫‪.5‬أدواث االخخبار‪Testing tools.‬‬ ‫‪23‬‬ ‫مزايا أدوات كيس‪CASE TOOLS‬‬ ‫‪.1‬تبسٌط عملٌة إعداد وصٌانة البرمجٌات‪.‬‬ ‫‪.2‬تسرع عملٌة إعداد البرمجٌات‪.‬‬ ‫‪.3‬تزٌد من إنتاجٌة المبرمج ومحلل النظم‪.‬‬ ‫‪.4‬توفر تواصل افضل مع المستخدم بسبب استخدام الرسوم الً جانب النص‪.‬‬ ‫‪24‬‬ CASE tools examples‫أمثلت أدواث كيس‬  CASE Tools examples: Accept 360, CaseComplete for requirement analysis. Dashboards, Project Scheduling Microsoft visio Dreamweaver, JMeter AppWatch 25 Microsoft Visio 2019 End

Use Quizgecko on...
Browser
Browser