الوحدة الخامسة: نمذجة بنية النظام

مقرر تحليل الأنظمة وتصميمها (1380) — جامعة القدس المفتوحة

مقدمة الوحدة

يقوم محلل النظام -خلال مرحلة التحليل، وفي نفس الوقت الذي يحتاج لتحليل لييين كيفية تصرف حالات الاستخدام- ببناء مخطط بنية النظام، حيث يوضح هذا المخطط الأصناف والكينونات التي ستحتوي المعلومات المتداخلة في النظام، والمصنّفة مثل معلومات الطالب أو معلومات المواد المسجّلة.

نماذج بنية النظام هي طريقة رسمية لتمثيل البيانات المتداخلة والمصنّعة في النظام، حيث توضح الأصناف والكينونات التي يحتوي النظام بينها، كما تبين طريقة ترابط هذه المعلومات بعضها ببعض. إن طريقة تكرارية بطبيعتها حيث يتم تعديله خلال بعض تكرار بناء نموذج بنية النظام تتم جاهزاً للاستخدام خلال مرحلة التحليل ليصبح التحليل بشكل كبير حين يكون جاهزاً للاستخدام خلال مرحلة التصميم كنموذج مفاهيمي (Conceptual Model).

أما في مرحلة تصميم النظام، فيقوم المحلل بتطوير المحلل بنموذج بنية النظام المفاهيمي إلى نموذج تصميم يعكس تصميم كيفية تنظيم البيانات في قواعد البيانات، وفي المراحل المتقدمة يقوم المحلل بتطوير النموذج إلى صورته النهائية القابلة للاستخدام الفعلي.

تركز هذه الوحدة -عزيزي الدارس- على بيان طريقة إنشاء نموذج مفاهيمي لبنية النظام حتى يتسنى استخدام بطاقة الصنف-المسؤولية-التعاون (CRC Card) والتي تعتبر وسيلة لتحصيل البيانات من أطراف النظام، بالإضافة إلى مخططات الأصناف حيث إنه باستخدام هذه الأدوات نستطيع أن نتعرف على عناصر البيانات المستخدمة في النظام.

نماذج بنية النظام: الأصناف (Classes)

على المحلل -عزيزي الدارس- حين القيام بتحليل نظام ما، أن يكون مطلعاً على مجال النظام المنوي بناؤه، فإذا أراد بناء نظام محاسبة على سبيل المثال، عليه أن يكون عارفاً وممتلكاً لأساسيات الطرق المحاسبية، وذلك حتى يتسنى له بناء نظام صحيح يتلاقح مع طبيعة معرفة كيفية تحويل البيانات المجردة إلى بيانات تختزن في جهاز الحاسوب.

ومن نتائج بناء بنية النظام كذلك إنشاء قاموس للبيانات (Data Dictionary)، بحيث يكون بناء بنية النظام كذلك استخدام مشترك عادة ما بين المحلل والمستخدم ويوفر قناة اتصال فعالة بينهما. ويستخدم عادة بطاقات الصنف -المسؤولية-التعاون ومخططات الأصناف في بناء بنية النظام، ويتكون نموذج بنية النظام من عدة عناصر هي: الأصناف (Classes)، والصفات (Attributes)، والطرق (Methods)، والعلاقات (Relationships).

الأصناف عبارة عن قالب عام تُستنسَخ منه الكينونات (Objects)، وكل الكينونات المنشأة من صنف معينة متشابهة ما في التركيب والتعريف ومختلفة من البيانات المحتواة في هذه الكينونات. هناك ثلاثة أنواع عامة ومختلفة من الأصناف تهم محل النظم:

النوعالوصف
الأصناف الصلبة
(Solid Classes)
عندما تكون الأصناف ذات علاقة مباشرة بالوصف الفني لمجال النظام (Technical Domain)، نقول بأن أصناف صلبة ويمكن اعتبارها أصنافاً ملموسة (Tangible Classes)، كصنف الراتب في نظام الرواتب في مؤسسة أو نظام في المكتبة.
الأصناف المفاهيمية
(Conceptual Classes)
عندما تشير الأصناف إلى كينونات معنوية أو مفاهيمية غالباً ما تكون غير ملموسة ماديّاً؛ فعلى سبيل المثال، يعتبر صنف الموظف وصنف الرواتب من الأصناف الذين يدركون تحتها صنفاً مفاهيمياً.
الأصناف الحقيقية للاستعمال
(Real World Classes)
كأصناف تركيب البيانات وأصناف أنواع البيانات والملفات في أي صنف من الأصناف التي يحتاجها النظام في الناحية العملية التقنية أثناء بناء النظام، كصنف أزرار الشاشة (Screen Buttons) أو صنف الطابور (Queue).

الصفات (Attributes) والطرق (Methods)

إن صفة الصنف هي عبارة عن قطعة معلومات مفيدة ترتبط بوصف جزء معين من الصنف. والصفات عادة تحتوي على المعلومات التي يعتمد المحلل بأن على النظام الاحتفاظ بها، فعلى سبيل المثال إن صفات الموظف كثيرة مثل الاسم، والطول، ولون الشعر، والعنوان، ولكن ما يوجد حاجة فعلية للمحلّل الاحتفاظ به فقط ضمن هذا النظام هي التي يجب الاحتفاظ بها لذلك، فأما الطول ولون الشعر وغيرها مفيدة في النظام فلذلك لا يقتضي الاحتفاظ بها.

أما الطرق (Methods) فهي ذلك الجزء من الصنف الذي يعرف فيه تصرف الصنف وتكون العمليات التي تنفّذها الكيونات كافة الأفعال المرتبطة بصفات معين من صنف معين. كما أن الطرق يجب أن تكون مرتبطة بالصنف وأن تكون تلك الطريقة ذات أهمية للنظام، كما يجب أن يكون الوصف الكافٍ لكل طريقة واضح ودقيقاً على أن يكون قادراً على تنفيذها أي وقت أن يكون طريقاً مسنداً معين لصنف معين، ليست ذات علاقة بمحتوى الصنف بشكل مباشر.

العلاقات (Relationships): التعميم (Generalization)

العلاقات هي عبارة عن روابط بين الأصناف، وهي ثلاثة أنواع من الأصناف: علاقات التعميم، وعلاقات التجميع، وعلاقات التشارك. وتجدر الإشارة هنا -عزيزي الدارس- إلى أنه يجب على المحلل أن يستخدم العلاقات ذات الصلة بالنقاط التالية بيان هذه الأنواع.

علاقة التعميم (Generalization) تمكّن المحلل من إنشاء أصناف تستطيع توارث صفات وعمليات أصناف أخرى، ونُسمي الأصناف التي تحتوي عادة على المعلومات المشتركة بالأصناف الرئيسة (Super Class)، أما الأصناف الأخرى التي ترث بالأصناف الفرعية (Sub Class). ويمكن للأصناف أن يكون رئيساً وفرعياً في نفس الوقت إذا كان يورث ويرث في نفس الوقت.

وتُسمى العلاقة من الصنف الرئيس إلى الصنف الفرعي بالتخصيص (Specialization)، والعلاقة من الصنف الفرعي إلى الصنف الرئيس بالتعميم (Generalization).

مثال: لو فرضنا أن المحلل جمع المعلومات التالية عن عملاء شركة ما:

  • عملاء الشركة هم الذين يتعاملون مع الشركة حيث تبيع لهم البضاعة التي تتعامل بها.
  • تصنّف الشركة عملاءها خارجيين أي كل من خارج فلسطين وعملاء داخليين من داخل فلسطين.
  • يقسّم العملاء الداخليين إلى عملاء دائمين وعملاء غير دائمين.
  • الصفات اللازمة عن العملاء هي: الاسم، والعنوان، ورقم الهاتف. أما العملاء الخارجيون فلهم أيضاً نوع العملة وطريقة التصدير والقيد؛ والعملاء الداخليون الدائمون منهم فلهم أيضاً الخصم والمحافظة وصندوق البريد.
مثال على علاقة التعميم بين أصناف العملاء
الشكل (1): مثال على علاقة التعميم؛ صنف "عملاء" رئيس، وتتفرع منه أصناف فرعية على مستويين

تلاحَظ أن صفات الصنف الفرعي مكوّنة من صفاته الخاصة بالإضافة إلى صفات الصنف الرئيس بالوراثة، فمثلاً صفات الصنف الفرعي "عملاء داخليون" تكون كالآتي: الرقم، والاسم، والعنوان، ورقم الهاتف (بالوراثة)، والخصم، والمحافظة، وصندوق البريد (الخاصة به).

علاقتا التجميع (Aggregation) والتشارك (Association)

يُستخدم هذا النوع من العلاقات في نمذجة البيانات لتمثيل واحد يجمع معلومات صفات أصناف عديدة لتكوين صنف واحد. ولعلاقة التجميع عدة أشكال، أهمها:

كعلاقة باب السيارة بالسيارة، إذ نقول: إن باب السيارة جزء من السيارة.
عبارة عن مجموعة جزئية محتواة في مجموعة كلية، كمجموعة طلاب النسبة الأولى محتواة في مجموعة صف الطلاب.
عبارة عن عدة أصناف مختلفة تساهم في تكوين صنف جديد، كل يكوّن بحسب دوره، كأعضاء فريق كرة القدم كافة يكاملون بشكل الفريق الكلي، ولكن لكل منهم دوره المعين.

والجدير بالذكر -عزيزي الدارس- أنه ليس بالضرورة أن تكون الأصناف المرتبطة بعلاقة التجميع متشابهة من حيث التكوين، كأجزاء السيارة مثل الباب والزجاج والدواليب كلها تشكل هيكل السيارة مع بعضها من الناحية التكوينية، وتُسمى علاقة هذه الأجزاء بالسيارة بعلاقة التجميع (Aggregation)، في حين تُسمى علاقة السيارة بأجزائها بعلاقة التفصيل (De-Aggregation).

علاقة التشارك (Association): هناك أنواع أخرى من العلاقات لا تنطوي بشكل مباشر تحت لوائي التجميع والتعميم، وتكون هذه العلاقات عبارة عن شكل معين من ارتباطات التجميع ولكن بطبيعة مختلفة. فعندما يحدد المريض موعداً للطبيب -على سبيل المثال- لا يصح الموعد إلا بوجود هذا الشرط، وهذا غير موجود في علاقة التجميع.

توثيق الأصناف (Classes Documentation)

يجب على المحلل القيام بتوثيق كل صنف من الأصناف في النظام، حيث يتم توثيق الصنف باستخدام مربع مقسّم إلى ثلاثة أقسام: يُكتب اسم الصنف في القسم الأول، وتوضع الصفات في القسم الثاني، والعمليات في القسم الثالث.

Course
Course Name
Course ID
Course Prerequisite
Course Description
Modify Description()
Modify Prerequisite()

الشكل (2): توثيق الصنف "Course" في نظام التسجيل، ويوضح اسمه وصفاته وعملياته

ويمكن -عزيزي الدارس- أن يكون أحد المتفاعلين كما هي الحالة في نظام التسجيل الجامعي، فالمتفاعل "الطالب" يتحوّل إلى أحد الأصناف حين تكون له علاقة بإضافة معلومات الصنف بشكله الأصلي كما هو موضح بالشكل التالي:

Student
name : String
ID
Birthday : Date
Register() / Login()

الشكل (3): توثيق صنف "Student" الذي نشأ عن متفاعل تفاعل مباشرة مع معلومات النظام

بطاقات الصنف-المسؤولية-التعاون (CRC Cards)

تُستعمل بطاقات الصنف-المسؤولية-التعاون لتوثيق مسؤوليات وعلاقات وتعاونيات كل صنف من أصناف النظام، أي أن وصف كل صنف يكون تفصيلاً أوسع من التوثيق المختصر السابق. وتُقسّم مسؤوليات الصنف حسب تعاونياتها إلى نوعين رئيسين: المعرفة (Knowing) وهي مسؤوليات معرفة قدرات وأفعال الكينونات الأخرى، والفعل (Doing) وهي تلك المسؤوليات التي تكون فيها الأصناف قادرة على تنفيذ عملية معينة.

وتوصف الكينونات حسب مسؤولياتها وتعاونياتها إلى ثلاثة أنواع: كينونة العميل (Agent Object)، وكينونة الخادم (Server Object)، وكينونة وسيط العقد (Contract Object). فكينونة العميل هي كينونة مشتقة من صنف تُرسل الطلب لتنفيذ عملية ما وتقوم بترتيب طريقة تنفيذها. أما كينونة الخادم فتقوم بتنفيذ العقد المطلوب من الكينونة الأولى، وتُسمى الكينونة الثالثة بكينونة وسيط العقد فتقوم بتأمين التواصل بين العميل والخادم.

وتحتوي بطاقة الصنف-المسؤولية-التعاون على وجهَين: الوجه الأمامي، ويحتوي على اسم الصنف، والرقم التعريفي، والنوع، ووصف مختصر للصنف، بالإضافة إلى جدول المسؤوليات والتعاونيات. والوجه الخلفي، ويحتوي على الصفات والعلاقات الخاصة بها، ومسؤوليات النوع من العلاقات التي ذُكرت سابقاً: علاقة التعميم، وعلاقة التجميع، وعلاقة التشارك.

الوجه الأمامي — Class Name: Student | ID: 01 | Type: General
Description: this class represents a general student class
ResponsibilitiesCollaborations
Login to registration systemString
Register for CoursesNetwork and Connection
Know the Offered Courses
الوجه الخلفي — Student
AttributesNumber, Name, Year, Tel-No
RelationshipsCourses, Instructors
Other associationsPartTime-Student

يستطيع المحلل استخدام أفكار مسؤوليات الأصناف وفكرة العميل والخادم لتكوين بنية النظام، ومن إحدى الطرق المقترحة لبناء الأصناف هو استخدام بطاقات الصنف-المسؤولية-التعاون، وذلك بتخيل استئناس النسان يحاوره المحلل بمجموعة من الأسئلة مثل: من أنت؟ ما هو فعلك؟ حيث تُستخدم إجابات هذه الأسئلة كمرشد لتطوير بطاقات الصنف-المسؤولية-التعاون.

مخططات الأصناف (Classes Diagrams)

إن مخطط الأصناف عبارة عن مخطط ثابت (Static) ويوضح العلاقات بينها. ويوضح مخطط الأصناف عادة على عدة عناصر أهمها:

  • الأصناف: التي ترسم على شكل مربع مقسّم كما تم بيانه سابقاً.
  • العلاقات التعميمية والتشاركية: حيث إن أحد أهم أهداف مخطط الأصناف هو توضيح المعلومات والعلاقات ما بين الأصناف التي ترسم على شكل خطوط.
  • التعددية: حيث تعني عدد الكينونات من صنف ما مرتبطة بصنف آخر، حيث يوضح خط التشابك عدد كينونات من أكثر أو ممكن عدد ممكن واسع.

يُبيّن الجدول التالي بعض أنواع التعددية المستخدمة بشكل واسع:

الترميز الرقمي (Quantity Notation)المعنى (Meaning)
1واحد بالضبط (Exactly one)
0..*صفر أو أكثر (Zero or more)
1..*واحد أو أكثر (One or more)
0..1صفر أو واحد (Zero or one)
2..4نطاق محدد (Specified range)
1..3,5قيم متعددة منفصلة (Multiple, disjoint)

ويمثل الشكل التالي جزءاً من مخطط أصناف نظام التسجيل الجامعي، ويظهر ست أصناف رئيسة هي: PartTimeStudent، Course، Instructor، Student، Billing System، إذ يلاحَظ أن صنف "PartTimeStudent" هو صنف فرعي من صنف "Student" بعلاقة التعميم، بينما ترتبط الأصناف الأخرى بعلاقات تشارك مع تعددية توضح عدد الكينونات المشتركة في كل علاقة:

مثال على مخطط أصناف نظام التسجيل الجامعي
الشكل (4): جزء من مخطط أصناف نظام التسجيل، يبيّن علاقة التعميم بين Student وPartTimeStudent، وعلاقات التشارك مع Course وInstructor وBilling System

فمثلاً، يبيّن الشكل أعلاه علاقة تشاركية تعددية بين الصنف Course والصنف Billing System، حيث تعني هذه العلاقة أن الفاتورة الواحدة يمكن أن تحتوي على أكثر من مادة، والعلاقة التشاركية تعني أن كل مادة توجد في فاتورة واحدة، أي أنه لا يمكن أن توجد مادة إلا بوجود فاتورة.

مسرد المصطلحات

اضغط على كل بطاقة لعرض تعريف المصطلح.

Classes
الأصناف؛ عبارة عن قالب عام تُستنسخ منه الكينونات (Objects).
Super Class
الأصناف الرئيسة؛ هي الأصناف التي تورث الصفات والعمليات لأصناف أخرى.
Sub Class
الأصناف الفرعية؛ هي الأصناف التي ترث الصفات والعمليات من أصناف أخرى.
Class-Responsibility-Cooperation
بطاقات الصنف-المسؤولية-التعاون؛ عبارة عن وسيلة لتحصيل البيانات من أطراف النظام، وتستعمل كذلك لتوثيق المسؤوليات والتعاونيات المناطة بكل صنف من أصناف النظام.
Specialization
التخصيص؛ هي العلاقة من الصنف الرئيس إلى الصنف الفرعي.
Generalization
التعميم؛ هي العلاقة من الصنف الفرعي إلى الصنف الرئيس.
Attributes
الصفات؛ إن صفة الصنف هي عبارة عن قطعة معلومات مفيدة ترتبط بوصف جزء معين من المعلومات التي يعتمد المحلل بأن على النظام الاحتفاظ بها.
Relationships
العلاقات؛ هي عبارة عن روابط بين الأصناف، وهي ثلاثة أنواع: علاقات التعميم، وعلاقات التجميع، وعلاقات التشارك.
Methods
الطرق؛ الطريقة هي ذلك الجزء من الصنف الذي يعرف فيه تصرف الصنف، ويمكن تعريف الطريقة بأنها الأفعال التي تنفذها كينونات كيونات من صنف معين.

9 مصطلحات أساسية لهذه الوحدة.

اختبار الوحدة

يتكوّن الاختبار من 5 أسئلة صح/خطأ، و5 أسئلة اختيار من متعدد، و3 أسئلة إنشائية. تُصحَّح الأسئلة الموضوعية تلقائياً، بينما تعرض الأسئلة الإنشائية إجابة نموذجية لتقييم إجابتك بنفسك.

أولاً: صح أم خطأ

1. الأصناف عبارة عن قالب عام تُستنسخ منه الكينونات (Objects).

2. تسمى العلاقة من الصنف الفرعي إلى الصنف الرئيس بالتخصيص (Specialization).

3. علاقة «جزء من» (Part-of)، مثل باب السيارة بالسيارة، هي أحد أشكال علاقة التجميع.

4. تحتوي بطاقة الصنف-المسؤولية-التعاون على وجهين: أمامي وخلفي.

5. مخطط الأصناف هو مخطط ديناميكي (Dynamic) يوضح تسلسل تنفيذ العمليات زمنياً.

ثانياً: اختيار من متعدد

6. الأصناف التي تشير إلى كينونات معنوية غير ملموسة مادياً، كصنف "الرواتب"، تسمى:

7. الرمز الذي يدل على "صفر أو أكثر" في جدول التعددية (Multiplicity) هو:

8. المسؤوليات التي تكون فيها الأصناف قادرة على تنفيذ عملية معينة (بدلاً من مجرد معرفة قدرات كينونات أخرى) تسمى:

9. القسم الذي يُكتب فيه اسم الصنف عند توثيقه بالمربع الثلاثي الأقسام هو:

10. كينونة تقوم بتأمين التواصل بين كينونة العميل وكينونة الخادم تسمى:

ثالثاً: أسئلة إنشائية

11. عرّف الأصناف (Classes)، واذكر أنواعها الثلاثة مع مثال على كل نوع.

الصنف قالب عام تُستنسخ منه الكينونات. أنواعه: الأصناف الصلبة (كصنف الراتب)، والأصناف المفاهيمية (كصنف الموظف)، والأصناف الحقيقية للاستعمال (كصنف أزرار الشاشة أو صنف الطابور).

12. وضّح الفرق بين علاقة التعميم وعلاقة التجميع مع إعطاء مثال على كل منهما.

علاقة التعميم تسمح لصنف فرعي بتوارث صفات وعمليات صنف رئيس، مثل توارث "عملاء داخليين" لصفات صنف "عملاء". أما علاقة التجميع فتمثل تجميع عدة أصناف لتكوين صنف واحد أو جزء من كل، مثل باب السيارة كجزء من السيارة (علاقة Part-of).

13. ما محتوى الوجه الأمامي والوجه الخلفي لبطاقة الصنف-المسؤولية-التعاون (CRC)؟

يحتوي الوجه الأمامي على اسم الصنف، والرقم التعريفي، والنوع، ووصف مختصر، وجدول المسؤوليات والتعاونيات. أما الوجه الخلفي فيحتوي على الصفات (Attributes)، والعلاقات (Relationships)، وأي تعاونيات أخرى (Other associations).