Lect7_GS213 Introduction to Software Engineering PDF
Document Details

Uploaded by GrandMint7948
University of Tripoli
2020
Marwa Solla
Tags
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