Object-Oriented Analysis and Design Methodology

Download Report

Transcript Object-Oriented Analysis and Design Methodology

Lecture 4
(System Development Methodologies) ‫منهجيات تطوير نظم المعلومات‬-
‫ األدوات التي تدعم التحليل والتصميم المعتمد على النماذج‬) Tools that support Model-driven analysis &design)
)Requirements( ‫ المتطلبات‬( System
01/11/1437
models) ‫نماذج النظام‬
1
-
‫منهجيات تطوير نظم المعلومات‬
‫‪System Development Methodologies‬‬
‫مجموعة الطرق واألدوات المستخدمة في تطوير النظام ‪.‬‬
‫‪Model-driven analysis and design ‬‬
‫تقنيات معتمدة على رسم نماذج (‪ )Models‬تمثل النظام الحالي أو الرؤية المستقبلية‬
‫للنظام الجديد‪:‬‬
‫ منهجية التحليل والتصميم الهيكلي‬‫)‪(Structured System Analysis and Design Methodology‬‬
‫ِِِ‬
‫ منهجية هندسة المعلومات‬‫)‪(Information Engineering Methodology‬‬
‫ منهجية التحليل والتصميم الموجه نحو الكائنات‬‫)‪(Object-Oriented Analysis and Design Methodology‬‬
‫‪ ‬منهجية الحزم الجاهزة )‪( Commercial off- the-shelf software COTS‬‬
‫‪2‬‬
‫‪01/11/1437‬‬
‫منهجية التحليل والتصميم الهيكلي‬
‫‪Structured System Analysis and Design Methodology‬‬
‫تم تطوير هذه المنهجية وأصبحت منهجية قياسية‪ ,‬تعتمد على‬
‫نماذج العمليات (‪ )Process Models‬أي التوصيف‬
‫الهيكلي للعمليات باستخدام األدوات الهيكلية مثل مخططات‬
‫تدفق البيانات (‪ ,)DFD‬ومن أهم خصائصها‪:‬‬
‫• أصبحت منهجية قياسية‬
‫• تعتمد على الجمع ما بين عملية تحليل البيانات وتحليل‬
‫التدفقات في آن واحد‬
‫• تحدد بدقة وبالتفصيل الكامل جميع المهام المطلوبة والتسلسل‬
‫الالزم‪.‬‬
‫‪3‬‬
‫‪01/11/1437‬‬
‫منهجية هندسة المعلومات‬
‫‪Information Engineering Methodology‬‬
‫تعتبر هذه المنهجية معتمدة على البيانات من التخطيط‬
‫االستراتيجي للمؤسسة ككل‪ ,‬وبناء نموذج البيانات( ‪Data‬‬
‫‪ )Model‬الذي يأخذ بعين االعتبار االحتياجات المستقبلية‪,‬‬
‫ومن أهم خصائصها‪:‬‬
‫• تعتمد على التخطيط االستراتيجي للمؤسسة‬
‫• بناء نموذج البيانات(‪)Data Model‬‬
‫• تتطلب من محللي النظم دراسة مجال العمل الذي تمارسه‬
‫المؤسسة واستكشاف التطورات المحتملة‪.‬‬
‫‪4‬‬
‫‪01/11/1437‬‬
‫التحليل الهيكلي و هندسة المعلومات‬
‫• في التحليل الهيكلي يتم رسم نموذج العمليات أوالا‬
‫(‪ ,)Process Model‬بينما في هندسة المعلومات يتم‬
‫رسم نموذج البيانات (‪ )Data Model‬أوالا‪.‬‬
‫• النموذجين مطلوبين في المنهجيتين‪ ,‬ألن نظام المعلومات‬
‫يتضمن العمليات والبيانات معا ا‪.‬‬
‫‪5‬‬
‫‪01/11/1437‬‬
‫التحليل والتصميم الموجه نحو الكائنات‬
‫‪Object-Oriented Analysis and Design Methodology‬‬
‫• يهتم التحليل الموجه نحو الكائنات بتطوير نموذج كائن‬
‫(‪. )Object model‬‬
‫• الكائن (‪ )Object‬عبارة عن وحدة تحتوي على مجموعة‬
‫من البيانات تسمى خصائص أو صفات وعلى مجموعة من‬
‫العمليات‪.‬‬
‫• اصبحت هذه المنهجية هي األكثر شيوعا ا‪.‬‬
‫‪6‬‬
‫‪01/11/1437‬‬
‫التحليل والتصميم الموجه نحو الكائنات‬
‫‪Object-Oriented Analysis and Design Methodology‬‬
‫تستخدم هذه المنهجية‪ :‬لغة النمذجة الموحدة‬
‫()‪)Unified Modeling Language (UML‬‬
‫ تزود لغة النمذجة الموحدة بمجموعة أدوات مفيدة لتحليل‬‫وتصميم النظم‪.‬‬
‫ تعتمد قيمة نتائج استخدام أدوات ‪ UML‬في مشروع ما‪ ,‬على‬‫خبرة محلل النظم في استعمال هذه األدوات‪.‬‬
‫ يستخدم المحلل هذه األدوات لتحليل متطلبات النظام الى نموذج‬‫حاالت ونموذج كائنات (‪.)Object Model‬‬
‫‪7‬‬
‫‪01/11/1437‬‬
‫األدوات التي تدعم التحليل والتصميم المعتمد على النماذج‬
‫‪Tools that support Model-driven analysis &design‬‬
‫نوعين من األدوات التي تدعم التحليل المعتمد على النماذج‪:‬‬
‫‪ -1‬البرمجيات الرسومية عامة الغرض ‪:‬‬
‫‪Microsoft Visio professional‬‬
‫‪8‬‬
‫‪01/11/1437‬‬
‫تابع‪:‬األدوات التي تدعم التحليل والتصميم المعتمد على النماذج‬
‫‪Tools that support Model-driven analysis‬‬
‫‪ -2‬أدوات هندسة البرمجيات بمساعدة الحاسب (‪)CASE Tools‬‬
‫‪Computer-Aided Software Engineering Tools‬‬
‫هي مجموعة البرامج الحاسوبية المعدة بهدف المساعدة في عملية حوسبة المهام‬
‫واألنشطة للوصول الى نظام معلومات جيد‪.‬‬
‫مثل‪Rational Rose:‬‬
‫أهم وظائفها‪:‬‬
‫رسم المخططات‬
‫•‬
‫تكوين مخازن البيانات‬
‫•‬
‫تصميم الشاشات‪.‬‬
‫•‬
‫تصميم التقارير‪.‬‬
‫•‬
‫توليد البرامح التنفيذية‪.‬‬
‫•‬
‫ادارة عملية التطوير‪.‬‬
‫•‬
‫‪9‬‬
‫‪01/11/1437‬‬
‫منهجية الحزم الجاهزة‬
‫‪Commercial off- the-shelf software COTS‬‬
‫• برامج معدة مسبقا ً من قبل خبراء ليس لنظام معين ولكن بشكل عام‪.‬‬
‫• تطبيق على المؤسسات ذات النظم المتشابهة بعد اجراء التعديل‬
‫المناسب لالحتياجات الخاصة بالمؤسسة‪ ,‬ومن األمثلة على هذه النظم‪:‬‬
‫ نظام مخازن‬‫ نظام بنوك‬‫ نظام مدارس‬‫• المميزات‪:‬‬
‫ التطور السريع‬‫ المرونة التي تتيحها إلجراء التغييرات واالحتياجات‪.‬‬‫• العيوب‪:‬‬
‫ عدم مطابقتها الكاملة لالحتياجات الخاصة للمؤسسة‬‫‪10‬‬
‫‪01/11/1437‬‬
‫المتطلبات (‪)Requirements‬‬
‫تحديد المتطلبات‪ :‬يعني تعريف شكل النظام أو وصف لما يستطيع‬
‫النظام أن يقوم به ألداء وظيفته التي سيصمم من أجلها‪.‬‬
‫• أي االجابة على السؤال‪:‬‬
‫?‪What do the users need and want from a new system‬‬
‫‪11‬‬
‫‪01/11/1437‬‬
‫أنواع المتطلبات (‪)Types of requirements‬‬
‫صنفت من عدة وجهات نظر منها تقسيمها الى متطلبات‬
‫ُ‬
‫وظيفية وغير وظيفية ومنها تقسيمها كالتالي‪:‬‬
‫• متطلبات مستخدم (‪:)User Requirements‬‬
‫جمل بلغة طبيعية مع أشكال توضيحية ‪ Diagrams‬للخدمات التي‬
‫يوفرها النظام وقيود التشغيل مكتوبة للزبون‪.‬‬
‫• متطلبات النظام(‪:)System Requirements‬‬
‫وثيقة هيكلية تبين الوصف التفصيلي لخدمات النظام‪ ,‬مكتوبة كعقد بين‬
‫المقاول والزبون‪.‬‬
‫• مواصفات البرمجيات (‪:)Software Requirements‬‬
‫وصف تفصيلي للبرمجيات يعمل كأساس لتصميم وتنفيذ النظام‪ ,‬مكتوب‬
‫لمطوري النظام‬
‫‪12‬‬
‫‪01/11/1437‬‬
‫المتطلبات الوظيفية وغير الوظيفية‬
‫‪Functional and None-Functional Requirements‬‬
‫‪ -1‬المتطلبات الوظيفية ‪:Functional Requirements‬‬
‫• تصف وظيفة أو الخدمات التي يوفرها النظام‪ ,‬وكيف يجب للنظام أن يتعامل مع المدخالت‬
‫المعينة وكيفية تصرف النظام في مواقف معينه‪.‬‬
‫• تعتمد المتطلبات الوظيفية على‪:‬‬
‫ نوع البرمجيات‪.‬‬‫ نوع النظام الذي تستخدم فيه هذه البرمجيات‬‫ المستخدمين المتوقعين‬‫• مثال‪:‬‬
‫ سوف يكون المستخدم قادرا ً على البحث في كل مجموعة قواعد البيانات أو اختيار مجموعة فرعية منها‪.‬‬‫ سوف يوفر النظام العروض المرغوبة للمستخدم حتى يتمكن من قراءة المستندات في مخزون المستندات‪.‬‬‫• المشاكل‪:‬‬
‫تظهر المشاكل عندما‪:‬‬
‫ ال يتم تحديد المتطلبات بدقة ووضعها في غموض‪.‬‬‫ قد تفسر المتطلبات الملتبسة بطرق مختلفة لدى المطورين والمستخدمين‬‫‪13‬‬
‫‪01/11/1437‬‬
‫المتطلبات الوظيفية وغير الوظيفية‬
‫‪Functional and None-Functional Requirements‬‬
‫‪ -2‬المتطلبات غير الوظيفية ‪:None-Functional Requirements‬‬
‫• تصف خصائص النظام (‪ )Properties‬والقيود (‪ )Constraints‬التي يتم خاللها تطوير‬
‫النظام‪.‬‬
‫• أنواع المتطلبات الغير وظيفية‪:‬‬
‫ متطلبات المنتج‪ :‬مثل متطلبات الكفاءة ‪( Efficiency‬تضم متطلبات األداء‬‫‪:Performance‬كمية المعلومات التي تتم معالجتها ‪ + throughput‬وقت االستجابة‬
‫‪.)response time‬‬
‫ المتطلبات التنظيمية ‪ :Organizational‬تضم متطلبات التسليم ‪ Delivery‬ومتطلبات‬‫التنفيذ ‪ Implementation‬ومتطلبات المعايير ‪.Standards‬‬
‫ متطلبات خارجية ‪ :External‬تضم متطلبات اخالقية ومتطلبات تشريعية (منها متطلبات‬‫الخصوصية ‪ Privacy‬ومتطلبات السالمة ‪.)Safety‬‬
‫• مثال‪:‬‬
‫النظام يدعم سرية عالية‪ ,‬مرن‪ ,‬سهل االستخدام‬
‫‪14‬‬
‫‪01/11/1437‬‬
‫متطلبات المستخدم ‪User Requirements‬‬
‫• يجب أن تصف المتطلبات الوظيفية وغير الوظيفية حتى يمكن أن تكون‬
‫مفهومة بواسطة مستخدمي النظام الذين ال يملكون معرفة تقنية تفصيلية‪.‬‬
‫• تعرف متطلبات المستخدم بلغة طبيعية مع جداول ورسوم تخطيطية‪.‬‬
‫• المشاكل التي تنتج من وصف المتطلبات باللغة الطبيعية‪:‬‬
‫ قصور أو تدني الوضوح‪.‬‬‫ تشويش المتطلبات‪ :‬المتطلبات الوظيفية وغير الوظيفية تميل الى االختالط‬‫‪ -‬دمج المتطلبات‪ :‬العديد من المتطلبات المختلفة قد يعبر عنها معا‬
‫• الخطوط الرئيسية لكتابة المتطلبات‪:‬‬
‫ استخدام اللغة بطريقة محددة تامة الوضوح متماسكة‪.‬‬‫ استخدام النص في توضيح وبيان وتعريف األجزاء الرئيسية من‬‫المتطلبات‪.‬‬
‫‪ -‬تحاشي استخدام تعقيدات الكمبيوتر‬
‫‪15‬‬
‫‪01/11/1437‬‬
‫متطلبات النظام ‪:System Requirements‬‬
‫• مواصفات اكثر تفصيالا من متطلبات المستخدم‪ ,‬تخدم اسس‬
‫تصميم النظام‪.‬‬
‫• متطلبات النظام يجب أن تحدد ما يجب أن يفعله النظام‬
‫‪What the system should do‬‬
‫• يصف التصميم كيفية قيام النظام بذلك ‪. How it does this‬‬
‫• يعبر عن متطلبات النظام باستخدام نماذج النظام ‪.System models‬‬
‫‪16‬‬
‫‪01/11/1437‬‬
‫نماذج النظام‬
‫‪System models‬‬
‫• النموذج ‪ :‬تعريف موجز للنظام ‪ ,‬وتوفر أنواع النماذج معلومات‬
‫مختلفة عن النظام‪.‬‬
‫• أنواع النماذج ‪:Model types‬‬
‫‪-‬‬
‫نماذج العمليات ‪/‬الوظائف ‪Process models:‬تبين العمليات الكلية والمدعومة من النظام‬
‫ نماذج السياق ‪Context models‬‬‫ نماذج السلوك أو التصرف ‪Behavioral models‬‬‫ نماذج البيانات الداللية ‪Semantic data models‬‬‫‪ -‬نماذج الكائنات ‪Object models‬‬
‫‪17‬‬
‫‪01/11/1437‬‬
‫نماذج السياق ‪:Context models‬‬
‫• تستخدم لتوضيح وتمثيل حدود النظام وتبين النظام والعالقة مع النظم األخرى‪.‬‬
‫• مثال‬
‫)‬
‫‪18‬‬
‫(‬
‫‪01/11/1437‬‬
‫نماذج السلوك أو التصرف ‪Behavioral models‬‬
‫• تستخدم لوصف السلوك الكلى للنظام‪ ،‬وهناك نوعان من نماذج السلوك‪:‬‬
‫‪-1‬نماذج معالجة البيانات‪:Data processing models‬‬
‫‪ -‬تبين كيفية معالجة البيانات كلما تحركت فى النظام‪.‬‬
‫‪ -‬تستخدم مخططات بيانية لتدفق البيانات (‪. Data Flow Diagrams )DFD‬‬
‫‪1-1‬‬
‫‪1-3‬‬
‫‪1-2‬‬
‫‪01/11/1437‬‬
‫‪19‬‬
‫)‬
Behavioral models ‫نماذج السلوك أو التصرف‬
:State machine models ‫ نماذج حالة اآللة‬-2
.‫ تبين كيفية استجابة النظم لألحداث‬-
‫ تستخدم فى نمذجة نظم الوقت الحقيقي‬.)UML( ‫ جزء متكامل من لغة النمذجة الموحدة‬‫• مثال عمل فرن الميكروويف‬
Operation
Checking
do: check
status
Turntable
fault
Time
Cook
do: run
generator
OK
Emitter
fault
Timeout
Done
do: buzzer on
for 5 secs.
Alarm
do: display
event
Door
open
01/11/1437
Disabled
Cancel
Waiting
20
‫نماذج البيانات الداللية ‪Semantic data models‬‬
‫• تستخدم لوصف الهيكل المنطقى للبيانات التى يعالجها النظام‪.‬‬
‫• هو نموذج عالقات سمات عناصر(كينونة)‬
‫‪ Entity-relation-attribute model‬يبين العناصر الموجودة فى‬
‫النظام‪ ،‬والعالقات بين هذه العناصر وسمات هذه العناصر ويستخدم على‬
‫نطاق واسع فى تصميم قواعد البيانات‪ ،‬ويمكن تنفيذه بإستخدام قواعد‬
‫البيانات العالئقية (‪)Relational database‬‬
‫‪Design‬‬
‫‪name‬‬
‫‪description‬‬
‫‪C-date‬‬
‫‪M-date‬‬
‫‪1‬‬
‫‪has-links‬‬
‫‪1‬‬
‫‪is-a‬‬
‫‪1‬‬
‫‪has-nodes‬‬
‫‪n‬‬
‫‪n‬‬
‫‪1‬‬
‫‪Link‬‬
‫‪name‬‬
‫‪type‬‬
‫‪has-links‬‬
‫‪n‬‬
‫‪1‬‬
‫‪Node‬‬
‫‪name‬‬
‫‪type‬‬
‫‪1‬‬
‫‪links‬‬
‫‪2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪has-labels‬‬
‫‪has-labels‬‬
‫‪Label‬‬
‫‪21‬‬
‫‪n‬‬
‫‪name‬‬
‫‪text‬‬
‫‪icon‬‬
‫‪01/11/1437‬‬
‫‪n‬‬
‫نماذج الكائنات ‪Object models‬‬
‫• تصف النظام فى مصطلحات من فئات الكائنات ‪.Object classes‬‬
‫• فئة الكائنات موجز مجرد لمجموعة كائنات ذات سمات شائعة وخدمات‬
‫(عمليات ‪ )operations‬يوفرها كل كائن‪.‬‬
‫• يمكن إنتاج العديد من نماذج الكائنات مثل‪:‬‬
‫‪ -1‬نماذج الوراثة ‪Inheritance models‬‬
‫‪ -2‬نماذج التجمع ‪Aggregation models‬‬
‫‪ - 3‬نماذج التفاعل ‪Interaction models‬‬
‫‪22‬‬
‫‪01/11/1437‬‬
Object models ‫نماذج الكائنات‬
Inheritance models ‫ نماذج الوراثة‬-1
،)Hierarchy( ‫• تنظم فئات كائن المجال فى مراتب‬
‫وتعكس الفئات التى فى أعلى مرتبة معمارية المالمح‬
‫ وترث فئات الكائنات سماتها‬،‫العامة الشائعة لكل الفئات‬
‫من واحدة أو أكثر من الفئات األعلى وهى تكون مخصصة‬
.‫كلما أمكن‬
Library item
Catalogue number
Acquisition date
Cost
Type
Status
Number of copies
Acquire ()
Catalogue ()
Dispose ()
Issue ()
Return ()
:‫• مثال معمارية فئة المكتبة‬
Recorded item
Title
Medium
Published item
Title
Publisher
Book
Author
Edition
Publication date
ISBN
01/11/1437
Magazine
Year
Issue
Film
Director
Date of release
Distributor
Computer
program
Version
Platform
23
‫نماذج الكائنات ‪Object models‬‬
‫‪ -2‬نماذج التجمع ‪:Aggregation models‬‬
‫• يبين كيفية تجميع الفئات وتركيبها من فئات أخرى‪ ،‬ويشبه نسبيا‬
‫العالقات فى نماذج داللة البيانات‪.‬‬
‫• مثال تجمع الكائنات‪:‬‬
‫‪24‬‬
‫‪01/11/1437‬‬
‫نماذج الكائنات ‪Object models‬‬
‫‪ - 3‬نماذج التفاعل ‪:Interaction models‬‬
‫• يبين النموذج السلوكى التفاعل بين الكائنات إلنتاج تصرف معين للنظام مخصص‬
‫كحالة استخدام‪.‬‬
‫• تستخدم مخططات التتابع فى لغة النمذجة الموحدة لنمذجة التفاعل بين الكائنات‪.‬‬
‫• مثال‪:‬‬
‫‪Lib1:‬‬
‫‪NetServer‬‬
‫‪Ecat:‬‬
‫‪Catalog‬‬
‫‪:Library Item‬‬
‫‪:Library User‬‬
‫‪Lookup‬‬
‫‪Display‬‬
‫‪Issue‬‬
‫‪Issue licence‬‬
‫‪Accept licence‬‬
‫‪Compress‬‬
‫‪25‬‬
‫‪Deliver‬‬
‫‪01/11/1437‬‬
‫• النموذج األولي ‪Prototyping‬‬
‫تحديد المتطلبات المعروفة‬
‫النمذجة األولية االرتقائية‬
‫النمذجة االولية الشبيهة‪:‬‬
‫تحديد المتطلبات المعروفة‬
‫بناء النموذج األولي‬
‫بناء النموذج األولي‬
‫ن‬
‫ع‬
‫م‬
‫وضع النموذج تحت‬
‫االستخدام‬
‫الوصول الى‬
‫لنموذج النهائي‬
‫‪26‬‬
‫هل توجد‬
‫تعديالت‬
‫اختبار النموذج‬
‫وتقييمه‬
‫ل‬
‫الوصول الى ا‬
‫النموذج النهائي‬
‫هل توجد‬
‫تعديالت‬
‫التخلص من النموذج وبناء‬
‫النموذج األصلي‬
‫وضع النموذج تحت‬
‫االستخدام‬
‫اختبار النموذج‬
‫وتقييمه‬
‫‪01/11/1437‬‬