يقوم محلل النظام -خلال مرحلة التحليل، وفي نفس الوقت الذي يحتاج لتحليل لييين كيفية تصرف حالات الاستخدام- ببناء مخطط بنية النظام، حيث يوضح هذا المخطط الأصناف والكينونات التي ستحتوي المعلومات المتداخلة في النظام، والمصنّفة مثل معلومات الطالب أو معلومات المواد المسجّلة.
نماذج بنية النظام هي طريقة رسمية لتمثيل البيانات المتداخلة والمصنّعة في النظام، حيث توضح الأصناف والكينونات التي يحتوي النظام بينها، كما تبين طريقة ترابط هذه المعلومات بعضها ببعض. إن طريقة تكرارية بطبيعتها حيث يتم تعديله خلال بعض تكرار بناء نموذج بنية النظام تتم جاهزاً للاستخدام خلال مرحلة التحليل ليصبح التحليل بشكل كبير حين يكون جاهزاً للاستخدام خلال مرحلة التصميم كنموذج مفاهيمي (Conceptual Model).
أما في مرحلة تصميم النظام، فيقوم المحلل بتطوير المحلل بنموذج بنية النظام المفاهيمي إلى نموذج تصميم يعكس تصميم كيفية تنظيم البيانات في قواعد البيانات، وفي المراحل المتقدمة يقوم المحلل بتطوير النموذج إلى صورته النهائية القابلة للاستخدام الفعلي.
تركز هذه الوحدة -عزيزي الدارس- على بيان طريقة إنشاء نموذج مفاهيمي لبنية النظام حتى يتسنى استخدام بطاقة الصنف-المسؤولية-التعاون (CRC Card) والتي تعتبر وسيلة لتحصيل البيانات من أطراف النظام، بالإضافة إلى مخططات الأصناف حيث إنه باستخدام هذه الأدوات نستطيع أن نتعرف على عناصر البيانات المستخدمة في النظام.
على المحلل -عزيزي الدارس- حين القيام بتحليل نظام ما، أن يكون مطلعاً على مجال النظام المنوي بناؤه، فإذا أراد بناء نظام محاسبة على سبيل المثال، عليه أن يكون عارفاً وممتلكاً لأساسيات الطرق المحاسبية، وذلك حتى يتسنى له بناء نظام صحيح يتلاقح مع طبيعة معرفة كيفية تحويل البيانات المجردة إلى بيانات تختزن في جهاز الحاسوب.
ومن نتائج بناء بنية النظام كذلك إنشاء قاموس للبيانات (Data Dictionary)، بحيث يكون بناء بنية النظام كذلك استخدام مشترك عادة ما بين المحلل والمستخدم ويوفر قناة اتصال فعالة بينهما. ويستخدم عادة بطاقات الصنف -المسؤولية-التعاون ومخططات الأصناف في بناء بنية النظام، ويتكون نموذج بنية النظام من عدة عناصر هي: الأصناف (Classes)، والصفات (Attributes)، والطرق (Methods)، والعلاقات (Relationships).
الأصناف عبارة عن قالب عام تُستنسَخ منه الكينونات (Objects)، وكل الكينونات المنشأة من صنف معينة متشابهة ما في التركيب والتعريف ومختلفة من البيانات المحتواة في هذه الكينونات. هناك ثلاثة أنواع عامة ومختلفة من الأصناف تهم محل النظم:
| النوع | الوصف |
|---|---|
| الأصناف الصلبة (Solid Classes) | عندما تكون الأصناف ذات علاقة مباشرة بالوصف الفني لمجال النظام (Technical Domain)، نقول بأن أصناف صلبة ويمكن اعتبارها أصنافاً ملموسة (Tangible Classes)، كصنف الراتب في نظام الرواتب في مؤسسة أو نظام في المكتبة. |
| الأصناف المفاهيمية (Conceptual Classes) | عندما تشير الأصناف إلى كينونات معنوية أو مفاهيمية غالباً ما تكون غير ملموسة ماديّاً؛ فعلى سبيل المثال، يعتبر صنف الموظف وصنف الرواتب من الأصناف الذين يدركون تحتها صنفاً مفاهيمياً. |
| الأصناف الحقيقية للاستعمال (Real World Classes) | كأصناف تركيب البيانات وأصناف أنواع البيانات والملفات في أي صنف من الأصناف التي يحتاجها النظام في الناحية العملية التقنية أثناء بناء النظام، كصنف أزرار الشاشة (Screen Buttons) أو صنف الطابور (Queue). |
إن صفة الصنف هي عبارة عن قطعة معلومات مفيدة ترتبط بوصف جزء معين من الصنف. والصفات عادة تحتوي على المعلومات التي يعتمد المحلل بأن على النظام الاحتفاظ بها، فعلى سبيل المثال إن صفات الموظف كثيرة مثل الاسم، والطول، ولون الشعر، والعنوان، ولكن ما يوجد حاجة فعلية للمحلّل الاحتفاظ به فقط ضمن هذا النظام هي التي يجب الاحتفاظ بها لذلك، فأما الطول ولون الشعر وغيرها مفيدة في النظام فلذلك لا يقتضي الاحتفاظ بها.
أما الطرق (Methods) فهي ذلك الجزء من الصنف الذي يعرف فيه تصرف الصنف وتكون العمليات التي تنفّذها الكيونات كافة الأفعال المرتبطة بصفات معين من صنف معين. كما أن الطرق يجب أن تكون مرتبطة بالصنف وأن تكون تلك الطريقة ذات أهمية للنظام، كما يجب أن يكون الوصف الكافٍ لكل طريقة واضح ودقيقاً على أن يكون قادراً على تنفيذها أي وقت أن يكون طريقاً مسنداً معين لصنف معين، ليست ذات علاقة بمحتوى الصنف بشكل مباشر.
العلاقات هي عبارة عن روابط بين الأصناف، وهي ثلاثة أنواع من الأصناف: علاقات التعميم، وعلاقات التجميع، وعلاقات التشارك. وتجدر الإشارة هنا -عزيزي الدارس- إلى أنه يجب على المحلل أن يستخدم العلاقات ذات الصلة بالنقاط التالية بيان هذه الأنواع.
علاقة التعميم (Generalization) تمكّن المحلل من إنشاء أصناف تستطيع توارث صفات وعمليات أصناف أخرى، ونُسمي الأصناف التي تحتوي عادة على المعلومات المشتركة بالأصناف الرئيسة (Super Class)، أما الأصناف الأخرى التي ترث بالأصناف الفرعية (Sub Class). ويمكن للأصناف أن يكون رئيساً وفرعياً في نفس الوقت إذا كان يورث ويرث في نفس الوقت.
وتُسمى العلاقة من الصنف الرئيس إلى الصنف الفرعي بالتخصيص (Specialization)، والعلاقة من الصنف الفرعي إلى الصنف الرئيس بالتعميم (Generalization).
مثال: لو فرضنا أن المحلل جمع المعلومات التالية عن عملاء شركة ما:
تلاحَظ أن صفات الصنف الفرعي مكوّنة من صفاته الخاصة بالإضافة إلى صفات الصنف الرئيس بالوراثة، فمثلاً صفات الصنف الفرعي "عملاء داخليون" تكون كالآتي: الرقم، والاسم، والعنوان، ورقم الهاتف (بالوراثة)، والخصم، والمحافظة، وصندوق البريد (الخاصة به).
يُستخدم هذا النوع من العلاقات في نمذجة البيانات لتمثيل واحد يجمع معلومات صفات أصناف عديدة لتكوين صنف واحد. ولعلاقة التجميع عدة أشكال، أهمها:
والجدير بالذكر -عزيزي الدارس- أنه ليس بالضرورة أن تكون الأصناف المرتبطة بعلاقة التجميع متشابهة من حيث التكوين، كأجزاء السيارة مثل الباب والزجاج والدواليب كلها تشكل هيكل السيارة مع بعضها من الناحية التكوينية، وتُسمى علاقة هذه الأجزاء بالسيارة بعلاقة التجميع (Aggregation)، في حين تُسمى علاقة السيارة بأجزائها بعلاقة التفصيل (De-Aggregation).
علاقة التشارك (Association): هناك أنواع أخرى من العلاقات لا تنطوي بشكل مباشر تحت لوائي التجميع والتعميم، وتكون هذه العلاقات عبارة عن شكل معين من ارتباطات التجميع ولكن بطبيعة مختلفة. فعندما يحدد المريض موعداً للطبيب -على سبيل المثال- لا يصح الموعد إلا بوجود هذا الشرط، وهذا غير موجود في علاقة التجميع.
يجب على المحلل القيام بتوثيق كل صنف من الأصناف في النظام، حيث يتم توثيق الصنف باستخدام مربع مقسّم إلى ثلاثة أقسام: يُكتب اسم الصنف في القسم الأول، وتوضع الصفات في القسم الثاني، والعمليات في القسم الثالث.
الشكل (2): توثيق الصنف "Course" في نظام التسجيل، ويوضح اسمه وصفاته وعملياته
ويمكن -عزيزي الدارس- أن يكون أحد المتفاعلين كما هي الحالة في نظام التسجيل الجامعي، فالمتفاعل "الطالب" يتحوّل إلى أحد الأصناف حين تكون له علاقة بإضافة معلومات الصنف بشكله الأصلي كما هو موضح بالشكل التالي:
الشكل (3): توثيق صنف "Student" الذي نشأ عن متفاعل تفاعل مباشرة مع معلومات النظام
تُستعمل بطاقات الصنف-المسؤولية-التعاون لتوثيق مسؤوليات وعلاقات وتعاونيات كل صنف من أصناف النظام، أي أن وصف كل صنف يكون تفصيلاً أوسع من التوثيق المختصر السابق. وتُقسّم مسؤوليات الصنف حسب تعاونياتها إلى نوعين رئيسين: المعرفة (Knowing) وهي مسؤوليات معرفة قدرات وأفعال الكينونات الأخرى، والفعل (Doing) وهي تلك المسؤوليات التي تكون فيها الأصناف قادرة على تنفيذ عملية معينة.
وتوصف الكينونات حسب مسؤولياتها وتعاونياتها إلى ثلاثة أنواع: كينونة العميل (Agent Object)، وكينونة الخادم (Server Object)، وكينونة وسيط العقد (Contract Object). فكينونة العميل هي كينونة مشتقة من صنف تُرسل الطلب لتنفيذ عملية ما وتقوم بترتيب طريقة تنفيذها. أما كينونة الخادم فتقوم بتنفيذ العقد المطلوب من الكينونة الأولى، وتُسمى الكينونة الثالثة بكينونة وسيط العقد فتقوم بتأمين التواصل بين العميل والخادم.
وتحتوي بطاقة الصنف-المسؤولية-التعاون على وجهَين: الوجه الأمامي، ويحتوي على اسم الصنف، والرقم التعريفي، والنوع، ووصف مختصر للصنف، بالإضافة إلى جدول المسؤوليات والتعاونيات. والوجه الخلفي، ويحتوي على الصفات والعلاقات الخاصة بها، ومسؤوليات النوع من العلاقات التي ذُكرت سابقاً: علاقة التعميم، وعلاقة التجميع، وعلاقة التشارك.
| الوجه الأمامي — Class Name: Student | ID: 01 | Type: General | |
|---|---|
| Description: this class represents a general student class | |
| Responsibilities | Collaborations |
| Login to registration system | String |
| Register for Courses | Network and Connection |
| Know the Offered Courses | |
| الوجه الخلفي — Student | |
|---|---|
| Attributes | Number, Name, Year, Tel-No |
| Relationships | Courses, Instructors |
| Other associations | PartTime-Student |
يستطيع المحلل استخدام أفكار مسؤوليات الأصناف وفكرة العميل والخادم لتكوين بنية النظام، ومن إحدى الطرق المقترحة لبناء الأصناف هو استخدام بطاقات الصنف-المسؤولية-التعاون، وذلك بتخيل استئناس النسان يحاوره المحلل بمجموعة من الأسئلة مثل: من أنت؟ ما هو فعلك؟ حيث تُستخدم إجابات هذه الأسئلة كمرشد لتطوير بطاقات الصنف-المسؤولية-التعاون.
إن مخطط الأصناف عبارة عن مخطط ثابت (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" بعلاقة التعميم، بينما ترتبط الأصناف الأخرى بعلاقات تشارك مع تعددية توضح عدد الكينونات المشتركة في كل علاقة:
فمثلاً، يبيّن الشكل أعلاه علاقة تشاركية تعددية بين الصنف Course والصنف Billing System، حيث تعني هذه العلاقة أن الفاتورة الواحدة يمكن أن تحتوي على أكثر من مادة، والعلاقة التشاركية تعني أن كل مادة توجد في فاتورة واحدة، أي أنه لا يمكن أن توجد مادة إلا بوجود فاتورة.
اضغط على كل بطاقة لعرض تعريف المصطلح.
9 مصطلحات أساسية لهذه الوحدة.
يتكوّن الاختبار من 5 أسئلة صح/خطأ، و5 أسئلة اختيار من متعدد، و3 أسئلة إنشائية. تُصحَّح الأسئلة الموضوعية تلقائياً، بينما تعرض الأسئلة الإنشائية إجابة نموذجية لتقييم إجابتك بنفسك.