Introduction to Software Engineering ITGS - 213 Lecture 6 PDF
Document Details
Uploaded by JoyfulSphene
University of Tripoli
2022
ITGS
Tags
Related
- Research Methods in Software Engineering PDF
- Software Engineering - Architectural Design (Week 3, Lesson 3) PDF
- CP317B Software Engineering High-Level Design PDF
- Software Engineering Week 3 High Level Design (1) PDF
- Software Engineering Week 4 Low Level Design Part 1 PDF
- Software Engineering Week 4 Low Level Design P2 PDF
Summary
This is a lecture on the design phase of software engineering, providing an introduction to software engineering concepts and includes different design techniques such as flow charts, and other structures. The lecture is part of ITGS - 213 course for the University of Tripoli, delivered in 2022.
Full Transcript
جامعة طرابلس ـ كلية تقنية المعلومات ٍقذٍت فً هنذست اىبزٍجٍبث Introduction to software Engineering ITGS - 213 المحاضرة السادسة – مرحلة التصميم ربٍع 2022 ٍىاضٍع اىَحبضزة ِف َٛٙاٌتصّ ُ١اٌ١ٙىٍ ٚ ٟاٌش١ئٟ ...
جامعة طرابلس ـ كلية تقنية المعلومات ٍقذٍت فً هنذست اىبزٍجٍبث Introduction to software Engineering ITGS - 213 المحاضرة السادسة – مرحلة التصميم ربٍع 2022 ٍىاضٍع اىَحبضزة ِف َٛٙاٌتصّ ُ١اٌ١ٙىٍ ٚ ٟاٌش١ئٟ ِخططبد اٌتصُّ١ تصّٚ ُ١اجٙبد االستخذاَ 2 ٍقذٍت اٌّتطٍجدبد ػٕدذِب تىدٚ ْٛح١مدخ ِتطٍجدبد إٌظدبَ ِتبحدخ ،تجدذ ِشحٍدخ تصدّ ُ١إٌظدبَ ,ثّٕ١دب ٠تٕدبٚي ٔشدب ٚصد إٌظبَ ِغ ِجبي اٌّشىٍخ ،فاْ اٌتصّ ٛ٘ ُ١اٌّشحٍخ األ ِٓ ٌٝٚتح ً٠ٛاٌّشىٍخ ئٌ ٝحً . تٛص١ اٌتصّ٠ ُ١حذد ٘١ىٍ١خ ٚثٕ١خ إٌظبَ ِٓ خالي تجض ٖ إٌظبَ ئٌِ ٝجّٛػخ ِدٓ األٔظّدخ اٌفشػ١دخ ( )ِّSub-Systemsدب ٠سبُ٘ ف ٟاٌس١طشح ػٍ ٝاٌتؼم١ذ ف ٟإٌظبَ )ٚ ،(System Complexityتحذ٠دذ اٌٛاجٙدبد ٛٔٚافدز اٌّسدتخذَ ( User )ٚ،Interfacesاٌّىٔٛدبد ٚ ،Componentsاٌٛحدذاد)ٚ (Modulesاٌج١بٔدبد ٌٍٕظدبَ ود٠ ٟحمدك إٌظدبَ ِتطٍجدبد اٌضث.ْٛ ٔ م َٛثّشحٍخ اٌتصّ ُ١ثبستخذاَ اٌّتطٍجبد اٌت ٟحذدٔب٘ب. ٍزحيت اىتصٌٍَ Design اىتصٌٍَ ٘ ٛػٍّ١خ تشجّخ ٚتحِ ً٠ٛتطٍجبد اٌّستخذَ اٌت ٟتُ االتفبق ػٍٙ١ب ثِ ٓ١حًٍ إٌظُ ٚاٌّستخذَ (ٚح١مخ اٌّتطٍجبد) ئٌ ٝتّخٌٍّٕ ً١ظِٛخ اٌّشاد ئػذاد٘ب. اىهذف األسبسً ٍن اىتصٌٍَ ٘ ٛئػذاد ِٕظِٛخ خبٌ١خ ِٓ األخطبء ٠تُ االػتّبد ػٍٙ١ب ألداء اٌّطٍٛثخ ٚتى ْٛسٍٙخ االستخذاَ ٚاٌص١بٔخ. اٌٛظبئ ػٕذ اٌتصّ٠ ُ١جت اْ ٔأخز اػتجبساد ٌٍؼٕبصش اٌّّٙخ ف ٟإٌّظِٛخ :ٟ٘ٚ اٌج١بٔبد Data اٌّؼبٌجخ Process اٌّستخذَ User 4 ٍزحيت اىتصٌٍَ Design يتمتقسيم مرحلةالتصميمإلى أربعة نشاطات هي: Architectural design oاٌتصّ ُ١اٌّؼّبسٞ User Interface design oتصّٚ ُ١اجٙخ اٌّستخذَ oتصّ ُ١اإلجشاءاد (األجضاء اٌجشِج١خ) ))(Procedural design (Module Data design oتصّ ُ١اٌج١بٔبد 5 اىتصٌٍَ اىَعَبري Architectural Design اىتصٌٍَ اىَعَبري ٘ ٛػٍّ١خ تجضئخ إٌّظِٛخ اٌّشاد ئػذاد٘ب ئٌِ ٝىٔٛبد ) جضاء ثشِج١خ( ف ٟشىً ٘شِٚ ،ٟاٌغشض ٘ ٛتجس١ط إٌّظِٛخ اٌّؼمذح الجً سٌٛٙخ تصّ ُ١خٛاسصِ١بتٙب ٚسٌٛٙخ تٛص٠ؼٙب ػٍٝ اٌّجشِج.ٓ١ وٍن األدواث اىشبئعت اىتً تستخذً فً اىتصٌٍَ اىَعَبري هً: .1اٌّخطط اٌ١ٙىٍStructure Chart ٟ ِ.2خطط ٚاسٔ١ش اٚس Warnier-orr 6 Compare the same module designed using a Warnier-orr Vs. Structure Chart اىتصٌٍَ اإلجزائً Procedural Design ٠تُ تج١ٙض اٌتصّ ُ١اإلجشائ Procedural design ٟثؼذ اٌتصّ ُ١اٌّؼّبسٚ ٞتصّٚ ُ١اجٙخ اٌّستخذَ. وً جضء ثشِج ٟتُ روشٖ آ ٚتؼش٠فٗ ف ٟاٌتصّ ُ١اٌّؼّبس.ٞ ف٘ ٟزا اٌتصّ٠ ُ١تُ تّخٚ ٚ ً١ص ٘زٖ األجضاء اٌجشِج١خ ِخً: ٚتستخذَ داٚد ٔص١خ ِ ٚخططبد ٌتّخٚٚ ً١ص ِ.1خطط االٔس١بة اٌ١ٙىٍStructure Flow Chart ٟ .2شجٗ اٌشفشح Pseudocode .3األداح اٌٙشِ١خ االدخبي ٚاٌؼٍّ١بد ٚاإلخشاد Hierarchal Input Process Output HIPO 8 Pseudocode ٍثبه : وتت شجٗ اٌشفشح )ٌ(Pseudocodeحسبة فبتٛسح اٌىٙشثبء )(chargeثبستخذاَ اٌمشاءح اٌسبثمخ ٌٍؼذاد )(last ٚاٌمشاءح اٌحبٌ١خ )(presحست اٌشش ٚاالت١خ : 50دسُ٘ ٌٍىٚ ٍٛ١اد ئرا وبْ فشق وّ١خ االستٙالن إٌبتجخ ِٓ اٌمشاءح اٌسبثمخ ٚاٌحبٌ١خ وجش ِٓ )1000ن/ط( 20دسُ٘ ٌٍىٚ ٍٛ١اد ئرا وبْ فشق وّ١خ االستٙالن إٌبتجخ ِٓ اٌمشاءح اٌسبثمخ ٚاٌحبٌ١خ لً ِٓ )1000ن/ط( 9 Flow chart Structural English 10 product–service systems (HIPO) تصٌٍَ اىبٍبنبث Data Design ٠جذ تصّ ُ١اٌج١بٔبد ِٓ ِشحٍخ اٌتحٍ( ً١اٌتؼشف ػٍ ٝاٌج١بٔبد) ٌ١تُ تٕظ١٘ٚ ُ١ىٍخ اٌج١بٔبد. تصٌٍَ اىبٍبنبث ٛ٘ :تح ً٠ٛاٌج١بٔبد اٌت ٟتُ ئػذاد٘ب فِ ٟشحٍخ اٌتحٍ ً١ئٌ١٘ ٝبوً ث١بٔبد (تصُّ١ لبػذح اٌج١بٔبد ١ٌ )Database Designتُ استخذاِٙب ف ٟاٌجشِجخ. ػٕذ تصّ ُ١اٌج١بٔبد ٠ Data Designجت تج١ٙض االت:ٟ لبِٛط اٌج١بٔبد. اٌىبئٕبد ٚاٌؼاللبد ثٕٙ١ب. خصبئص وً وبئٓ. ِخطط اٌىبئٕبد اٌؼالئم١خ )(ERD تصّ ُ١لبػذح ث١بٔبد ػالئم١خ ِتحٌٛخ ِٓ ِخطط )(ERD 12 تصٌٍَ واجهت اىَستخذً User Interface Design تصميم الواجهات :هي تصمٌم طرٌقة تفاعل المستخدمٌن مع النظام ،مثل وضع تفاصٌل التصامٌم الخاصة بشاشات اإلدخال ) (Formsوالتقارٌر).(Reports تعتبر هذه الخطوة من أهم الخطوات فً تصمٌم المنظومات. هناك عدة برامج بالحاسب اآللً لتصمٌم واجهات المستخدم وربطها بقواعد البٌانات منها النماذج فً برنامج ) (Access MSولغات ) (Visual Basicو ) ، (Delphiسنستعرض نماذج لبعض شاشات المنظومة. قبل البدء فً تصمٌم الواجهات ٌجب على المحلل أن ٌدرس رغبات وامكانٌات المستخدم عند التعامل مع المنظومة. 13 تصٌٍَ واجهت اىَستخذً User Interface Design وٌجب عنذ تصٌٍَ اىىاجهبث أخذ اَتً فً االعتببر: .1جؼً اٌٛاجٙخ سٍٙخ اٌتؼٍُ ٚاٌف.ُٙ .2جؼً اٌٛاجٙخ تتؼبًِ ِغ األخطبء. .3استخذاَ اٌمٛائُ ٚاٌشسِٛبد لذس اٌّستطبع. .4تٛف١ش اٌّسبػذح Helpف ٟحبٌخ ػذَ اٌمذسح ػٍ ٝاداء ٚ ٞظ١فخ. .5استخذاَ ِصطٍحبد ث١ئخ ػًّ اٌضث.ْٛ .6تّى ٓ١اٌّستخذَ ِٓ اٌتشاجغ ػٓ االِش ٚاػبدتٗ. .7استخذَ اٌصٛد ٚاٌصٛسح ٚاٌف١ذ ٛ٠وٍّب اِىٓ رٌه. .8تمٍ ً١حجُ اٌج١بٔبد اٌّذخٍخ ٌٍّٕظِٛخ ٚرٌه ثبستخذاَ لٛائُ اٌؼشض ٚاخت١بس اٌجٕٛد. 14 تصٌٍَ واجهت اىَستخذً User Interface Design طرق التفاعل بين المستخدم والحاسوب: ٌتم التفاعل بإحدى الطرق التالٌة: .1النص. .2القائمة. .3االٌقونات. 15 تصٌٍَ واجهت اىَستخذً User Interface Design ٌقوم المحلل بإعداد تصمٌم لشاشات الرئٌسٌة لإلدخال فً المنظومة والتً سٌستعملها المستخدم ولهذا من المهم أن ٌكون هذا التصمٌم بالتشاور مع المستخدم حتى ٌسهل علٌه استعمال المنظومة ولتفادي أي أخطاء تنتج بسبب سوء االستعمال للمنظومة. باإلضافة إلى ذلك ٌقوم المصمم بتصمٌم الواجهات أو شاشات اإلخراج والتقارٌر التً تطبع على الورق إدخال بيانات بتحدٌد البٌانات المهمة فً كل شاشة أو تقرٌر أو كشف. طالب رقم اسم القٌد الطالب تارٌخ الجنــــ المٌالد ـس عنوان السكن المدرسة التخصص المتوسط خروج إدخال 16 تصٌٍَ واجهت اىَستخذً User interface design تصميم الواجهات: إدخال بيانات مقرر دراسي إخراج نتيجة طالب في مادة رقم المقرر أدخل رقم الطالب اسم المقرر اسم رقم المادة نوع المقرر الدرجــــــة عدد الوحدات التقديـــــــر خروج إدخال خروج عرض 17 ٍزحيت اىتصٌٍَ Design ػٕذ اٌتصّ٠ ُ١تُ اخت١بس االدٚاد إٌّبسجخ ثٕبء ػٍ ٝإٌّٙج١خ اٌّختبسح ٌؼٍّ١خ: اٌتصّ ُ١اٌ١ٙىٍ ٛ٘ :ٟتح ٚ ً٠ٛتشجّخ اٌّتطٍجبد اٌ ٟتّخٌٍّٕ ً١ظِٛخ اٌجذ٠ذح ،ا ٞاٌٛصٛي اٌحً ثبستخذاَ دٚاد ٚشق ٘١ىٍ١خ (٘شِ١خ). إٌّظِٛخ ٠ٚص اٌّٛٔ ٟرد ٠جٚ ٓ١ظبئ اٌتصّ ُ١اٌش١ئ :ٟش٠مخ تإد ٞاٌ ٟتفى١ه إٌّظِٛخ ثّٕح ٝوبئٕٚ ٟرٌه ثبستخذاَ اٌىبئٕبد ٚاٌفصبئً ٚاٌتفبػالد ثّٕٙ١ب. 18 االدواث و اىَخططبث اىَستخذٍت فً اىتصٌٍَ اىهٍنيً اٌّخطط اٌ١ٙىٍStructure chart ٟ مخطط االنسٌاب الهٌكلً Structure Flow Chart قاموس البٌانات. مخطط الكائنات العالئقٌة ERD 19 اىتصٌٍَ اىنبئنً ( اىشٍئً) اٌّشئ١خ اٌّؼتّذح ٌتحٍ ٚ ً١تصّ ُ١إٌظُ اٌش١ئ١خ. تؼتجش ٌغخ إٌّزجخ اٌّٛحذح ٌ ٟ٘ UMLغخ اٌٛص ٚتّخ ً١إٌظبَ ِٓ ٔٛاحٟ إٌظُ ػجش استخذاَ ِخططبد ػذ٠ذح وً ِٕٙب ٠م َٛثٛص تمٌ َٛغخ ثٛص ِؼٕ١خ. ِٓٚاٌّخططبد اٌّستخذِخ فِ ٟشحٍخ اٌتصّ:ٟ٘ ُ١ ِخطط اٌفصٍ١خ Class Diagram اٌّٙبَ Activity Diagram ِخطط ٚص ِخطط اٌتتبثغ Sequence Diagram 20 اىفصٍيت اىفئت أو ٍخطظ Class Diagram ِخطط اٌفصٍ١خ ٘ ٛاداح تحٍ ٚ ً١تصّ ُ١وبئٕ ٟىىصف اىهٍنيت اىسبمنت ىينظبً .ف٘ ٟزا إٌٛع ِٓ اٌّخططبد ٔشسُ ِجّٛػخ ِٓ اٌفصبئً ٔٚج ٓ١ػاللبتٙب. Class Name رٍىس ٍخطظ اىفصٍيت : Attributes ٠تُ تّخِ ً١خطط اٌفصٍ١خ ػٍ ٟشىً ِستطِ ً١مسُ ئٌ ٟحالث لسبَ: .1اسُ اٌفصٍ١خ Class Name Operations .2اٌخصبئص Attributes .3اٌطشق (اٌؼٍّ١بد) Operations 21 رؤٌت اىفصٍيت Class Visibility تج ٓ١سؤ٠خ اٌفصٍ١خ ِٓ ٌٗ اٌمذسح ػٍ ٝاٌٛصٛي ئٌ ٝاٌج١بٔبد ف ٟداخً اٌفصٍ١خ. هنبك 3طزق ىيىصىه ىيخصبئص واىطزق فً اىفصٍيت : رؤٌت خبصت ٍ:ثو بإشبرة ٛ٠ (-)Private Visibilityجذ ٌذٕ٠ب ٕ٘ب فصٍ١خ ٚاحذح تخفِ ٟؼٍِٛبتٙب )اٌخصبئص ٚاٌؼٍّ١بد (ػٓ اٌفصبئً االخش.ٜ رؤٌت عبٍت ٌ:تٌ تَثٍيهب بإشبرة ٕ٘(+)Public Visibilityب ّ٠ىٓ ْ تش ٜاٌفصبئً االخشِ ٜؼٍِٛبد ٘زٖ اٌفصٍ١خ. رؤٌت ٍحٍَةت ٌ( :ةتٌ تَثٍيهةب بإشةبرة ّ٠ Protected Visibility)#ىدٓ ٕ٘دب ْ تصدً اٌفصدٍ١خ االثدٓ ئٌدِ ٝؼٍِٛدبد اٌفصٍ١خ االَ ثؼٍّ١خ اٌٛساحخ. ٍالحظت :تسَى اىزؤٌت أٌضب سَبحٍت اىىصىه access modifier اىفصٍيت اىفئت أو ٍخطظ Class Diagram Class Relationships ًػاللبد اٌفصبئ :ٓ١ٍت١ٓ اٌفص١اع ِختٍفخ ِٓ اٌؼاللبد ثٛٔجذ اٛت Association ػاللخ اٌشثط.1 Aggregation Relationship غ١ّػاللخ تج.2 Composition Relationship ت١ػاللخ اٌتشو.3 Generalization Relationship ُ١ّػاللخ اٌتؼ.4 23 .1عالقت اىزبظ Associationبٍن اىفصبئو ٠تُ تّخ ً١ػاللخ اٌشثط ثخط ِستم ُ١ث ٓ١اٌفصٍ١خ ٚاألخش.ٜػٍ ٟسج ً١اٌّخبي اْ تى ْٛاٌؼاللخ الشركة تعين الموظف ٚاٌششوخ ػٍ ٝإٌح ٛاٌتبٌ:ٟ ث ٓ١اٌّٛظ hires اىتضبعف Multiplicity of associations 1 1 ٚاحذ اٌٚ ٝاحذ : no more than one * * وخ١ش اٌ ٝوخ١ش: more than one ِٓ ٚاحذ اٌ ٟوخ١ش 1... * : from one to many 24 بٍن اىفصبئوAssociation عالقت اىزبظ.1 Company Employs Employee :امثلة 1 * 25 .2عالقت تجٍَع Aggregation Relationship هً عالقة ربط بٌن فصٌلتٌن أو أكثر بحٌث تمثل فصٌلة واحدة الكل ،بٌنما االخرٌن أجزاء من الكل. مثل الحاسوب هو تجمع من وحدة المعالجة وبطاقة الرسومٌات ،و بطاقة الصوت وهكذا. 26 .3عالقت اىتزمٍب Composition Relationship ٠ ؼتجش ٘زا إٌٛع ل ِٓ ٜٛػاللخ اٌتجّ١غ ح١ج تى ْٛػاللخ ل٠ٛخ ث ٓ١اٌفصٍ١خ اٌشبٍِخ ٚاٌفصٍ١خ اٌّتجضئخ ِٕٙب.ح١ج اْ االجضاء ػبدح ِب تح١ب ٚتّٛد ِغ اٌفصٍ١خ اٌشبٍِخ ٞ.ال ٚجٛد ٌٍىً ثذْٚ االجضاء. أٍثيت عيى عالقت اىتزمٍب : اىعالقت بٍن اىسٍبرة وىىحت اىتسجٍو اىَعذنٍت. ٌٛحخ اٌتسجِ ً١شتجطخ ثبٌس١بسح ٚ ,تّٛد ثّٛتٙب. اىَىاطن ٌَيل جىاس سفز. جٛاص اٌسفش ِشتجط ثبٌّٛا ٓ ٕ٠ٚت ٟٙثبٔتٙبء ٚجٛدٖ. 27 .4عالقت اىتعٌٍَ Generalization Relationship اٌّؼشفخ اٌتؼّ ٛ٘ ُ١اسُ اخش ٌؼاللخ اٌٛساحخ.ف٘ ٟزٖ اٌؼاللخ االثٕبء ٠ Cٚ Bشح ْٛاٌٛظبئ ٌٍفصٍ١خ االَ . A 28 ٍClass Diagramخطظ اىفئت أو اىفصٍيت ٍClass Diagramخطظ اىفئت أو اىفصٍيت مخطط الفئة لنظام مكتبه End