CS352 · مراجعة شاملة

مراجعة الاختبار النهائي - تحليل الأنظمة

يغطي منهج الاختبار من الوحدة 7 إلى 13

7 التحليل: النمذجة المنطقية للعمليات (الجزء الثاني)

فهم سلوك النظام ومنطقه من خلال حالات الاستخدام، مخططات الأنشطة، ونمذجة إجراءات العمل (BPMN).

7.1 حالات الاستخدام والممثلون

حالة الاستخدام تصف ما يفعله النظام، والممثل هو من يتفاعل معه؛ تماماً كالنص المسرحي والممثلين.

تُظهر حالة الاستخدام (Use Case) سلوك النظام أو وظائفه في ظل ظروف مختلفة استجابةً لطلبات المستخدمين. تُصاغ عادةً كعبارة فعلية في الزمن المضارع (مثل: إدخال بيانات المبيعات).

يتكون نموذج حالة الاستخدام من الممثلين (Actors) وحالات الاستخدام. الممثل هو كيان خارجي يتفاعل مع النظام، ويُمثل دوراً وليس فرداً بعينه (يمكن لفرد واحد أن يلعب أدواراً متعددة).

يتم تمثيل حدود النظام بمربع يضم جميع حالات الاستخدام، بينما يبقى الممثلون خارج هذه الحدود.

7.2 علاقات حالات الاستخدام: الامتداد والتضمين

التضمين (Include) هو خطوة إجبارية متكررة، بينما الامتداد (Extend) هو خطوة اختيارية أو استثنائية.

ترتبط حالات الاستخدام ببعضها البعض باستخدام الأسهم لتمثيل علاقات معينة:

  1. علاقة الامتداد (Extend): ارتباط يضيف سلوكيات أو إجراءات جديدة لحالة استخدام أخرى. يُشار إليها بسهم منقط يتجه نحو حالة الاستخدام التي تم تمديدها (الأصلية)، مع علامة <<extend>>.
  2. علاقة التضمين (Include): ارتباط تستخدم فيه حالة استخدام وظائف موجودة في حالة استخدام أخرى (إعادة استخدام). يُشار إليها بسهم منقط يتجه نحو حالة الاستخدام المُستخدَمة (المُضمَّنة)، مع علامة <<include>>.

7.3 حالات الاستخدام المكتوبة (قالب Cockburn)

المخططات لا تكفي؛ نحتاج إلى نص مكتوب يفصل الشروط المسبقة، الضمانات، والسيناريوهات.

أسماء حالات الاستخدام في المخطط لا توفر معلومات كافية للتحليل والتصميم. لذلك، تُكتب محتويات حالة الاستخدام بنص بسيط. يوصي Cockburn (2001) بقالب محدد يتضمن:

  • المستوى (Level): منظور الوصف (من عالي المستوى إلى مفصل جداً).
  • أصحاب المصلحة (Stakeholder): الأشخاص المهتمون بالنظام.
  • الشروط المسبقة (Preconditions): ما يجب أن يكون صحيحاً قبل البدء.
  • الضمان الأدنى (Minimal guarantee): أقل ما يُوعد به أصحاب المصلحة.
  • ضمان النجاح (Success guarantee): ما يجب أن تفعله الحالة لإرضاء أصحاب المصلحة.
  • المُحفز (Trigger): الحدث الذي يبدأ الحالة.
  • الامتداد (Extension): السلوكيات التي تتبع الاستثناءات لسيناريو النجاح الرئيسي.

7.4 مخططات الأنشطة (Activity Diagrams)

مخطط النشاط يشبه المخطط الانسيابي (Flowchart)؛ يوضح تسلسل الأنشطة والمنطق الشرطي لإنجاز عملية ما.

يُظهر مخطط النشاط المنطق الشرطي لتسلسل أنشطة النظام (يدوية أو آلية) اللازمة لإنجاز إجراء عمل. يُستخدم لتصوير تدفق التحكم، المساعدة في تحليل حالات الاستخدام، ونمذجة سير العمل.

الرموز الأساسية:

  • النشاط (Activity): مستطيل بزوايا دائرية.
  • البداية (Start): دائرة ممتلئة.
  • النهاية (End): دائرة ممتلئة محاطة بدائرة أخرى.
  • التفرع (Branch): معين (سهم وارد وسهمان صادران للقرارات الشرطية).
  • الدمج (Merge): معين (سهمان واردان وسهم صادر لجمع المسارات).
  • التشعب (Fork): خط أفقي (سهم وارد وسهمان صادران للأنشطة المتوازية).
  • الالتقاء (Join): خط أفقي (سهمان واردان وسهم صادر لدمج الأنشطة المتوازية).

تُستخدم مسارات السباحة (Swimlanes) كأعمدة لتمثيل الوحدات التنظيمية المسؤولة عن أنشطة معينة.

7.5 نمذجة إجراءات العمل (BPMN)

BPMN هي لغة قياسية معقدة لتمثيل إجراءات العمل، تستخدم بوابات (Gateways) للتحكم في تدفق العمليات.

إجراء العمل هو طريقة قياسية لإنجاز مهمة ضرورية لعمل المؤسسة. أنشأت مجموعة إدارة الكائنات (OMG) نموذج تدوين إجراءات العمل (BPMN). وهو أكثر تعقيداً من مخططات تدفق البيانات (DFDs).

المفاهيم الأربعة الأساسية هي:

  1. الحدث (Event): محفز يبدأ العملية (دائرة رقيقة للبداية، سميكة للنهاية).
  2. النشاط (Activity): إجراء يجب أن يتم (مستطيل بزوايا دائرية).
  3. التدفق (Flow): سهم يوضح التسلسل.
  4. البوابة (Gateway): نقطة اتخاذ قرار (معين).

أنواع البوابات:

  • XOR (حصري): معين بداخله 'X'. يُتبع مسار واحد فقط.
  • AND (واو العطف): معين بداخله '+'. تُتبع جميع المسارات بالتوازي.
  • OR (أو): معين بداخله 'O'. يُتبع مسار واحد على الأقل، وربما عدة مسارات.

8 التحليل: نمذجة البيانات المفاهيمية

تمثيل هيكل بيانات المؤسسة بشكل مستقل عن التكنولوجيا باستخدام مخططات E-R ومخططات الفئات.

8.1 عملية نمذجة البيانات المفاهيمية

هي تمثيل تفصيلي لبيانات المؤسسة، مستقل عن أي نظام إدارة قواعد بيانات (DBMS)، يهدف إلى التقاط الهيكل العام للبيانات.

يمكن إجراء نمذجة البيانات المفاهيمية بالتوازي مع خطوات تحليل المتطلبات الأخرى.

في المشاريع الكبيرة، يعمل جزء من الفريق على نمذجة البيانات بينما يعمل الجزء الآخر على نمذجة العمليات.

يتم تنسيق العمل من خلال قاموس المشروع أو المستودع.

المخرج الأساسي لهذه العملية في مرحلة التحليل هو مخطط الكيان والعلاقة (E-R Diagram).

8.2 مناهج جمع المعلومات لنمذجة البيانات

يمكن جمع متطلبات البيانات من خلال نهجين: من أعلى إلى أسفل (فهم طبيعة العمل) ومن أسفل إلى أعلى (مراجعة المستندات والنماذج).

يجب أن يجيب نموذج البيانات على: ماذا تفعل المؤسسة؟ وما هي القواعد التي تحكم العمل؟ ولا ينبغي أن يجيب على: كيف أو متى تتم معالجة البيانات؟

النهج من أعلى إلى أسفل (Top-down): يستمد قواعد الأعمال من الفهم العميق لطبيعة العمل (مثل المقابلات وجلسات JAD).

النهج من أسفل إلى أعلى (Bottom-up): يستمد القواعد من مراجعة مستندات عمل محددة مثل شاشات الكمبيوتر، التقارير، والنماذج.

8.3 نمذجة الكيان والعلاقة: الكيانات والسمات

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

الكيان (Entity): له هويته الخاصة. نوع الكيان (Entity Type) هو مجموعة من الكيانات التي تشترك في الخصائص، بينما مثيل الكيان (Entity Instance) هو حدوث واحد. يجب تسمية الكيان باسم مفرد وموجز.

السمات (Attributes): خصائص الكيان.

المفتاح المرشح (Candidate Key): سمة تحدد كل مثيل بشكل فريد.

المعرف (Identifier): هو المفتاح المرشح الذي تم اختياره ليكون المعرف الأساسي.

أنواع السمات الأخرى تشمل: متعددة القيم، مركبة، مشتقة، مطلوبة، واختيارية.

8.4 نمذجة الكيان والعلاقة: العلاقات والعددية (Cardinality)

العلاقة هي ارتباط بين الكيانات، والعددية (Cardinality) تحدد الحد الأدنى والأقصى لعدد المثيلات المرتبطة.

العلاقة (Relationship): ارتباط بين مثيلات نوع كيان واحد أو أكثر. يجب تسميتها بعبارة فعلية (Verb phrase).

درجة العلاقة (Degree): عدد أنواع الكيانات المشاركة (أحادية Unary، ثنائية Binary، ثلاثية Ternary).

العددية (Cardinality): عدد مثيلات الكيان X التي يمكن أن ترتبط بكل مثيل من الكيان Y. تشمل الحد الأدنى (Minimum Cardinality) والحد الأقصى (Maximum Cardinality) مثل: واحد إلزامي (Mandatory One)، متعدد إلزامي (Mandatory Many)، واحد اختياري (Optional One)، متعدد اختياري (Optional Many).

8.5 قواعد الأعمال والنطاقات

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

أنواع قواعد الأعمال تشمل:

  1. 1. سلامة الكيان (Entity integrity): يجب أن يكون المعرف الفريد غير فارغ (Not Null) لكل مثيل.
  2. 2. قيود السلامة المرجعية (Referential integrity): قواعد تتعلق بالعلاقات بين أنواع الكيانات.
  3. 3. النطاقات (Domains): قيود على القيم الصالحة للسمات (مثل: نوع البيانات، التنسيق، النطاق من 0-10000).
  4. 4. العمليات المحفزة (Triggering operations): قواعد تحمي صحة قيم السمات بناءً على أحداث معينة (مثل: رفض عملية سحب إذا كان المبلغ يتجاوز الرصيد).

8.6 مخططات الفئات: الكائنات، الفئات، والعمليات

مخطط الفئة يوضح الهيكل الثابت للنظام الموجه للكائنات، حيث يجمع الكائنات ذات الخصائص والسلوكيات المتشابهة في فئات (Classes).

الكائن (Object): له حالة (بيانات/سمات)، وسلوك (عمليات)، وهوية.

الفئة (Class): تجميع منطقي للكائنات المتشابهة. في UML، تُمثل الفئة بمستطيل مقسم لثلاثة أجزاء: اسم الفئة، السمات، والعمليات.

التغليف (Encapsulation): إخفاء تفاصيل التنفيذ الداخلي للكائن.

أنواع العمليات:

  1. 1. البناء (Constructor): لإنشاء مثيل جديد.
  2. 2. الاستعلام (Query): للوصول للحالة دون تغييرها.
  3. 3. التحديث (Update): لتغيير حالة الكائن.
  4. 4. نطاق الفئة (Class-scope): عملية تُطبق على الفئة ككل وليس على مثيل محدد.

8.7 مخططات الفئات: الارتباطات والفئات الترابطية

الارتباط (Association) هو علاقة مسماة بين الفئات، والتعددية (Multiplicity) تحدد عدد الكائنات المشاركة.

الارتباط (Association): يظهر كخط صلب بين الفئات المشاركة.

دور الارتباط (Association role): نهاية الارتباط حيث يتصل بالفئة.

التعددية (Multiplicity): تعادل العددية (Cardinality) في E-R، وتحدد كم عدد الكائنات التي تشارك (مثل 0..1, 1..*).

الفئة الترابطية (Associative Class): تُستخدم عندما يكون للارتباط نفسه سمات أو عمليات خاصة به، أو عندما يشارك في علاقات مع فئات أخرى (مثل فئة 'التسجيل' بين الطالب والمقرر).

8.8 التعميم وتعدد الأشكال

التعميم (Generalization) هو استخراج الخصائص المشتركة في فئة عليا (Superclass)، وتعدد الأشكال (Polymorphism) يسمح بتنفيذ نفس العملية بطرق مختلفة في الفئات الفرعية.

التعميم: يُمثل بخط صلب ينتهي بسهم يشير للفئة العليا. الفئات الموروثة تسمى فئات فرعية (Subclasses).

الفئات المجردة (Abstract classes): ليس لها مثيلات مباشرة، بينما الفئات الملموسة (Concrete classes): يمكن إنشاء مثيلات منها.

القيود الدلالية: متداخلة (Overlapping) أو منفصلة (Disjoint)، وكاملة (Complete) أو غير كاملة (Incomplete).

تعدد الأشكال (Polymorphism): نفس العملية قد تُطبق على فئات مختلفة بطرق مختلفة.

العملية المجردة (Abstract operation): تحدد شكل العملية دون تنفيذها (التنفيذ يسمى Method).

8.9 مفاهيم التجميع والتكوين

التجميع (Aggregation) هو علاقة 'جزء-من' ضعيفة (معين مفرغ)، بينما التكوين (Composition) هو علاقة قوية حيث تموت الأجزاء بموت الكيان الكلي (معين ممتلئ).

التجميع (Aggregation): علاقة 'جزء-من' (part-of) بين كائن مكون وكائن مجمع. تُمثل بـ معين مفرغ (hollow diamond) عند نهاية الكائن المجمع.

التكوين (Composition): شكل أقوى من التجميع، حيث تنتمي الأجزاء إلى كائن كلي واحد فقط، وتحيا وتموت معه. تُمثل بـ معين ممتلئ (solid diamond).

في التكوين، التعددية عند نهاية الكائن المجمع لا يمكن أن تتجاوز واحداً، وحذف الكائن الكلي يؤدي تلقائياً إلى حذف مكوناته (Cascading deletion).

9 التصميم: عملية تصميم قاعدة البيانات

تحويل النماذج المفاهيمية إلى جداول علائقية مطبّعة وتحديد التخزين المادي.

9.1 عملية تصميم قاعدة البيانات

عملية ذات شقين: منطقي يصف البيانات برمجياً، ومادي يحدد التخزين التقني.

تتكون خطوات تصميم قواعد البيانات والملفات من:

  1. تطوير نموذج قاعدة بيانات منطقي (Logical database model) والذي يهتم بوصف البيانات باستخدام تدوين يتوافق مع تنظيم البيانات المستخدم بواسطة نظام إدارة قواعد البيانات (DBMS) مثل SQL Server.
  2. تطوير تصميم قاعدة بيانات مادي (Physical database design) والذي يهتم بتحديد المواصفات الفنية لقواعد البيانات وملفات الكمبيوتر.

يمكن إجراء كلا التصميمين بالتوازي.

9.2 نموذج قاعدة البيانات العلائقية

جدول ثنائي الأبعاد يتكون من صفوف (سجلات) وأعمدة (سمات).

نموذج قاعدة البيانات العلائقية هو الأكثر استخداماً اليوم لأنظمة المعلومات الجديدة.

العلاقة (Relation) هي جدول بيانات ثنائي الأبعاد. تتكون كل علاقة من مجموعة من الأعمدة وعدد عشوائي من الصفوف.

يتوافق كل عمود في العلاقة مع سمة (Attribute) لتلك العلاقة، ويتوافق كل صف مع سجل (Record) يحتوي على قيم بيانات لكيان معين.

العلاقة جيدة الهيكلة (Well-structured relation) تحتوي على الحد الأدنى من التكرار وتسمح بإدراج وتعديل وحذف الصفوف دون أخطاء أو تناقضات.

9.3 التطبيع والاعتمادية الوظيفية

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

التطبيع (Normalization) يحدد القواعد والعملية لتصميم علاقات جيدة الهيكلة.

يعتمد التطبيع بشكل أساسي على مفهوم الاعتمادية الوظيفية (Functional Dependency)، وهي قيد بين سمتين حيث يتم تحديد قيمة سمة واحدة بواسطة قيمة سمة أخرى.

على سبيل المثال: Emp_ID → Name تعني أنه يمكننا الحصول على اسم الموظف بمعرفة معرفه.

يمكن أن تعتمد السمة وظيفياً على أكثر من سمة واحدة (مفتاح مركب).

السمة A تحدد وظيفياً السمة B. \[A \rightarrow B\]

9.4 الصيغة الطبيعية الثانية (2NF)

كل سمة غير أساسية تعتمد على المفتاح الأساسي بالكامل (لا يوجد اعتماد جزئي).

تكون العلاقة في الصيغة الطبيعية الثانية (2NF) إذا كانت كل سمة غير أساسية تعتمد وظيفياً على المفتاح الأساسي بأكمله (وليس جزءاً منه).

تتحقق 2NF إذا توفر أي من الشروط التالية:

  1. يتكون المفتاح الأساسي من سمة واحدة فقط.
  2. لا توجد سمات غير أساسية في العلاقة.
  3. كل سمة غير أساسية تعتمد وظيفياً على المجموعة الكاملة لسمات المفتاح الأساسي.

9.5 الصيغة الطبيعية الثالثة (3NF)

الجدول في 2NF ولا توجد سمات غير أساسية تعتمد على سمات غير أساسية أخرى (لا يوجد اعتماد متعدي).

تكون العلاقة في الصيغة الطبيعية الثالثة (3NF) إذا تحققت الشروط التالية:

  1. العلاقة موجودة في 2NF.
  2. لا توجد اعتمادات وظيفية بين أكثر من سمة غير أساسية (أي لا يوجد اعتماد متعدي - Transitive Dependency).

لتحويل علاقة إلى 3NF، يتم تفكيكها إلى علاقات جديدة لفصل السمات المعتمدة على بعضها.

9.6 تحويل مخطط E-R إلى علاقات

تحويل الكيانات إلى جداول، والعلاقات إلى مفاتيح أجنبية أو جداول وسيطة، ثم دمجها.

هناك أربع خطوات رئيسية لتحويل مخطط E-R إلى تدوين علائقي:

  1. تمثيل الكيانات (Represent entities): إنشاء علاقة لكل نوع كيان، حيث يصبح المعرف هو المفتاح الأساسي.
  2. تمثيل العلاقات (Represent relationships): يعتمد على درجة العلاقة وعددها (Cardinalities).
  3. تطبيع العلاقات (Normalize): إزالة التكرار الذي قد يظهر.
  4. دمج العلاقات (Merge): دمج العلاقات المطبّعة من مصادر مختلفة (مثل واجهات المستخدم ومخططات E-R) لإزالة التكرار وإعادة التطبيع.

9.7 تصميم قاعدة البيانات المادية

تحديد أنواع البيانات، الحقول، ضوابط السلامة، والجداول المادية لتخزين البيانات بكفاءة.

يتطلب التصميم المادي معلومات مثل العلاقات المطبّعة، تقديرات الحجم، وتوقعات وقت الاستجابة.

يتم تبني نهج من أسفل إلى أعلى (Bottom-up) يشمل: تصميم الحقول (أصغر وحدة بيانات مثل الاسم الأول)، اختيار أنواع البيانات (مثل VARCHAR2, NUMBER, DATE في Oracle 10g)، التحكم في سلامة البيانات (Data Integrity)، وتصميم الجداول المادية لتحقيق الاستخدام الفعال للتخزين وسرعة المعالجة.

9.8 تنظيم الملفات

طرق ترتيب صفوف الجدول في الذاكرة: تسلسلي، مفهرس، أو مجزأ (Hashed).

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

الأنواع الرئيسية لتنظيم الملفات هي:

  1. التسلسلي (Sequential): تخزين السجلات بشكل متتالٍ.
  2. المفهرس (Indexed): استخدام بنية شجرية أو فهرس للوصول السريع.
  3. المجزأ (Hashed): استخدام خوارزمية تجزئة لتحديد الموقع الفعلي للسجل بناءً على المفتاح.

10 التصميم: عملية تصميم النماذج والتقارير

تصميم واجهات المستخدم والمخرجات مع التركيز على قابلية الاستخدام والتنسيق الفعال.

10.1 النماذج مقابل التقارير

النموذج يطلب منك إدخال بيانات، بينما التقرير يعرض لك بيانات للقراءة فقط.

النموذج (Form) هو مستند أعمال يحتوي على بعض البيانات المحددة مسبقاً وغالباً ما يتضمن مساحات لتعبئة بيانات إضافية (مثل: نموذج طلب منتج، طلب توظيف).

التقرير (Report) هو مستند أعمال يحتوي فقط على بيانات محددة مسبقاً؛ وهو مستند سلبي يُستخدم فقط للقراءة أو العرض (مثل: الفاتورة، ملخصات المبيعات).

10.2 أنواع تقارير الأعمال

تتنوع التقارير بين المجدولة الروتينية، والمخصصة للحالات الطارئة، وتقارير الاستثناءات للمشاكل.

هناك خمسة أنواع شائعة:

  1. التقارير المجدولة (Scheduled): تُنتج في فترات محددة (يومياً، أسبوعياً).
  2. تقارير المؤشرات الرئيسية (Key-Indicator): توفر ملخصاً للمعلومات الحرجة بشكل متكرر.
  3. تقارير الاستثناءات (Exception): تبرز البيانات الخارجة عن النطاق التشغيلي الطبيعي.
  4. التقارير التفصيلية (Drill-Down): توفر تفاصيل خلف القيم الملخصة.
  5. التقارير المخصصة (Ad-hoc): طلبات معلومات غير مخططة لدعم قرارات غير روتينية.

10.3 عملية التصميم والمواصفات

التصميم هو عملية تكرارية ترتكز على المستخدم، تبدأ بجمع المتطلبات وتنتهي بنموذج أولي معتمد.

التصميم المرتكز على المستخدم (User-centered design) يتطلب فهم الجمهور المستهدف، مهامهم، احتياجاتهم، ومستويات خبرتهم.

الخطوة 1: جمع المتطلبات الأولية.

الخطوة 2: بناء نموذج أولي (Prototype) ومراجعته مع المستخدمين في دورة (بناء - تقييم - تحسين) حتى يتم قبوله.

مواصفات التصميم (Design specifications) هي المخرجات الرئيسية لمرحلة التنفيذ وتتكون من:

  1. نظرة عامة سردية (Narrative overview).
  2. تصميم العينة (Sample design).
  3. تقييم الاختبار وقابلية الاستخدام (Testing and usability assessment).

10.4 إرشادات التنسيق وإبراز المعلومات

التنسيق الجيد يوازن الشاشة، ويستخدم العناوين الواضحة، ويبرز المعلومات المهمة بحذر.

تشمل الإرشادات العامة: عناوين ذات معنى (واضحة، تاريخ المراجعة)، معلومات ذات معنى (عرض ما يلزم فقط)، توازن التخطيط (هوامش مناسبة، مسافات)، ونظام تنقل سهل.

لإبراز المعلومات، يمكن استخدام: الوميض، الألوان، كثافة الخط، الحجم، الصناديق (Boxing)، التسطير.

استخدام الألوان له فوائد (يريح العين، يبرز التحذيرات) ومشاكل (عمى الألوان، دقة الشاشات، مشاكل الطباعة).

بالنسبة للنصوص: استخدم حالة أحرف مختلطة، مسافات مزدوجة أو أسطر فارغة بين الفقرات، محاذاة لليسار (للغة الإنجليزية)، وتجنب الكلمات المقطوعة (Hyphenation).

10.5 الجداول مقابل الرسوم البيانية

استخدم الجداول للقيم الدقيقة، والرسوم البيانية للاتجاهات والملخصات السريعة.

استخدم الجداول (Tables) لقراءة قيم بيانات فردية دقيقة.

استخدم الرسوم البيانية (Graphs) لتقديم ملخص سريع، اكتشاف الاتجاهات بمرور الوقت، مقارنة الأنماط، التنبؤ، وعرض كميات هائلة من المعلومات.

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

البيانات الرقمية (Numeric) يجب محاذاتها لليمين (Right-justify) ومحاذاتها حسب الفاصلة العشرية.

البيانات النصية (Textual) تحاذى لليسار (Left-justify).

البيانات الأبجدية الرقمية الطويلة يجب تقسيمها لمجموعات صغيرة (3-4 أحرف).

10.6 قابلية الاستخدام (Usability)

قابلية الاستخدام هي تقييم لمدى مساعدة النظام للمستخدم في أداء مهامه بسرعة ودقة ورضا.

قابلية الاستخدام هي الهدف الرئيسي عند تصميم التفاعلات. خصائصها:

  1. السرعة (إنجاز المهام بكفاءة).
  2. الدقة (توفير ما هو متوقع).
  3. الرضا (إعجاب المستخدم بالنظام).

عوامل النجاح: الاتساق (Consistency)، الكفاءة، الفهم، التنسيق، والمرونة.

مقاييس قابلية الاستخدام (بدلاً من مصطلح 'سهل الاستخدام' الغامض): قابلية التعلم (Learnability)، الكفاءة، معدل الخطأ، قابلية التذكر (Memorability)، والرضا والجماليات.

طرق التقييم: الملاحظة، المقابلات، التقاط ضغطات المفاتيح، والاستبيانات.

11 تصميم الأنظمة الموزعة والمستندة إلى الإنترنت

تصميم الأنظمة التي تعمل عبر شبكات متعددة يتطلب موازنة بين الأداء والموثوقية، مع الاستفادة من الحوسبة السحابية وبنية الخادم/العميل.

11.1 تصميم الأنظمة الموزعة

الأنظمة الموزعة هي أنظمة تعمل عبر مواقع متعددة وتتطلب موازنة بين الموثوقية والتوافر؛ تماماً مثل سلسلة مطاعم بدلاً من مطعم واحد مركزي.

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

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

11.2 شبكات LAN وخوادم الملفات

خادم الملفات يرسل الملف بأكمله للعميل لمعالجته مما يسبب اختناقاً؛ تماماً مثل استعارة كتاب كامل من المكتبة لقراءة سطر واحد فقط.

تدعم شبكة المنطقة المحلية (LAN) شبكة من أجهزة الكمبيوتر الشخصية، حيث يمتلك كل جهاز مساحة تخزين خاصة به ويمكنه مشاركة الأجهزة والبرامج.

في بيئة LAN الأساسية، يتم تعيين جهاز كمبيوتر واحد على الأقل كخادم ملفات (File Server) لتخزين قواعد البيانات المشتركة. ومع ذلك، لخوادم الملفات قيود:

  1. حركة بيانات مفرطة (يتم إرسال الملف بأكمله للعميل)،
  2. الحاجة إلى محطة عمل عميل قوية لمعالجة البيانات،
  3. تحكم لامركزي في البيانات يتطلب إدارة الأقفال (Locks) لمنع تعارض التحديثات.

11.3 بنية الخادم/العميل

بنية تقسم المعالجة بين العميل (الواجهة) والخادم (البيانات) لتقليل حركة الشبكة؛ مثل مطعم يأخذ فيه النادل طلبك ويرسل المطبخ الوجبة الجاهزة فقط.

تعتبر بنية الخادم/العميل تحسيناً للأنظمة المستندة إلى LAN. يتم تقسيم معالجة التطبيق: محطة العميل مسؤولة عن إدارة واجهة المستخدم، بينما خادم قاعدة البيانات مسؤول عن تخزين البيانات والوصول إليها.

يتيح ذلك للشركات الاستفادة من تكنولوجيا الحواسيب الدقيقة، وتحسين أوقات الاستجابة، وتقليل حركة مرور الشبكة (حيث يتم إرسال نتيجة الطلب فقط وليس الملف بأكمله)، وتسهيل استخدام واجهات المستخدم الرسومية (GUI).

11.4 الحوسبة السحابية

توفير الموارد عبر الإنترنت بنظام الدفع حسب الاستخدام؛ تماماً مثل استئجار شقة مفروشة بدلاً من بناء منزل من الصفر.

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

خصائصها تشمل: الخدمة الذاتية عند الطلب، المرونة السريعة (Rapid Elasticity)، الوصول الواسع للشبكة، تجميع الموارد، والخدمة المقاسة.

نماذج الخدمة هي: البنية التحتية كخدمة (IaaS)، المنصة كخدمة (PaaS)، والبرمجيات كخدمة (SaaS).

معايير تقييم مزودي السحابة تشمل التوافر، الموثوقية، قابلية التوسع، الأمان، الخصوصية، والتكلفة.

11.5 البنية الموجهة للخدمات (SOA)

بنية تقسم إجراءات العمل إلى خدمات فردية قابلة لإعادة الاستخدام؛ مثل مكعبات الليجو التي يمكن استخدامها لبناء أشكال مختلفة.

البنية الموجهة للخدمات (SOA) هي بنية برمجية يتم فيها تقسيم إجراءات العمل إلى مكونات فردية (خدمات) مصممة لتحقيق النتائج المرجوة لمستهلك الخدمة.

تعتبر خدمات الويب (Web Services) النهج الأكثر شيوعاً لنشر SOA.

لتبادل البيانات، تستخدم خدمات الويب ملفات XML (لغة تتيح إنشاء علامات مخصصة لتعريف ونقل البيانات) أو JSON (نهج خفيف الوزن لتبادل البيانات يسهل على البشر فهمه وعلى أجهزة الكمبيوتر إنشاؤه).

11.6 تصميم أنظمة الإنترنت واتساق الموقع

استخدام CSS و XSL للحفاظ على مظهر وإحساس متسقين للموقع؛ مثل الزي الموحد لفريق رياضي يضمن مظهرهم المتناسق.

يتأثر تصميم أنظمة الإنترنت بالمعايير والتطور المستمر. اتساق الموقع (المظهر والإحساس - Look and Feel) أمر أساسي لنقل صورة احترافية وتسهيل تنقل المستخدمين وتوقع معاني الروابط.

لفرض هذا الاتساق، تُستخدم حلول مثل:

  1. أوراق الأنماط المتتالية (CSS): مجموعة من القواعد تخبر المتصفح بكيفية عرض المستند، وتسهل صيانة الموقع بتحديث ملف واحد.
  2. لغة أوراق الأنماط القابلة للامتداد (XSL): طريقة أكثر تطوراً تفصل النمط عن المحتوى عند إنشاء صفحات XML، مما يسمح بعرض المحتوى بسلاسة على أجهزة مختلفة.

11.7 إدارة الموقع ونظام إدارة المحتوى (CMS)

استخدام CMS لجمع وتنظيم المحتوى مع الحفاظ على الروابط القديمة؛ مثل خزانة ملفات رقمية تنسق مستنداتك تلقائياً.

قضايا التصميم المتعلقة بإدارة الموقع تشمل:

  1. ولاء العملاء والثقة: يُبنى من خلال جودة التصميم، الإفصاح المسبق، والمحتوى المخصص.
  2. الروابط يجب أن تعيش للأبد: بسبب الإشارات المرجعية للعملاء، الروابط من مواقع أخرى، وإحالات محركات البحث.
  3. أمان النظام: النظام الآمن غالباً ما يكون أقل سهولة في الاستخدام، لذا يجب إيجاد توازن.
  4. إدارة محتوى الموقع: تستخدم المنظمات نظام إدارة المحتوى (CMS)، وهو تطبيق برمجي يجمع وينظم وينشر محتوى الويب من مصادر بيانات متعددة في مستودع واحد لتجنب المعلومات القديمة والتخطيطات غير المتسقة.

12 التنفيذ: عملية تنفيذ النظام

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

12.1 عملية تنفيذ النظام

المرحلة الأكثر تكلفة واستهلاكاً للوقت حيث يتحول التصميم إلى نظام يعمل؛ مثل تحويل المخططات الهندسية إلى مبنى حقيقي.

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

12.2 اختبار تطبيقات البرمجيات

عملية التحقق من جودة البرمجيات باستخدام تقنيات ثابتة وديناميكية؛ مثل فحص محرك السيارة وتجربة قيادتها قبل بيعها.

يبدأ التخطيط للاختبار مبكراً خلال مرحلة التحليل بتطوير خطة الاختبار الرئيسية. تُصنف الاختبارات إلى تقنيات ثابتة (Static) حيث لا يتم تنفيذ الكود (مثل الفحص المكتبي)، وتقنيات ديناميكية (Dynamic) تتضمن تنفيذ الكود (مثل اختبار الوحدة والتكامل). اختبار التكامل يدمج الوحدات، بينما اختبار النظام يدمج البرامج الكاملة.

12.3 استراتيجيات التثبيت

طرق الانتقال للنظام الجديد (مباشر، متوازي، موقع واحد، مرحلي)؛ مثل الانتقال لمنزل جديد دفعة واحدة أو غرفة بغرفة.

التثبيت هو الانتقال الفعلي للنظام الجديد. هناك 4 استراتيجيات: 1) التثبيت المباشر (Direct): إيقاف القديم وتشغيل الجديد فوراً (عالي المخاطر). 2) التثبيت المتوازي (Parallel): تشغيل النظامين معاً (آمن ولكن مكلف). 3) التثبيت في موقع واحد (Single-location): تطبيق النظام في موقع كعينة تجريبية. 4) التثبيت المرحلي (Phased): إدخال النظام على شكل مكونات وظيفية تدريجياً.

12.4 توثيق النظام

إنشاء أدلة للمطورين (توثيق النظام) وللمستخدمين (توثيق المستخدم)؛ مثل كتابة دليل للميكانيكي ودليل آخر لسائق السيارة.

ينقسم التوثيق إلى نوعين رئيسيين: 1) توثيق النظام (System Documentation): يحتوي على معلومات تفصيلية حول مواصفات تصميم النظام وعملياته الداخلية (موجّه لموظفي تقنية المعلومات للصيانة). 2) توثيق المستخدم (User Documentation): يحتوي على معلومات حول كيفية عمل التطبيق وكيفية استخدامه (موجّه للمستخدمين النهائيين).

12.5 تدريب ودعم المستخدمين

توفير المعرفة والمساعدة المستمرة للمستخدمين عبر مكتب المساعدة؛ مثل توفير خدمة كونسيرج 24/7 لضيوف الفندق.

يجب ضمان توفر تدريب ودعم عالي الجودة. تشمل طرق التدريب الفصول التقليدية والتعلم الإلكتروني. أما الدعم فيشمل أتمتة الدعم (لتقليل التكاليف) ومكتب المساعدة (Help Desk) الذي يعمل كنقطة اتصال واحدة (Single point of contact) لجميع استفسارات ومشاكل المستخدمين.

12.6 فشل النظم والقضايا الأمنية

فشل النظام غالباً ما يكون لأسباب إدارية كنقص الدعم، وتواجه النظم تهديدات أمنية خارجية؛ مثل غرق سفينة بسبب طاقم غير مدرب وليس بسبب المحرك.

تتعدد أسباب فشل التنفيذ وتشمل: نقص دعم الإدارة، غياب مشاركة المستخدمين، القيود المالية، ونقص الالتزام. بالإضافة إلى ذلك، تواجه النظم تحديات أمنية كبيرة. الإحصائيات تظهر أن الاختراقات غالباً ما تكون من جهات خارجية (Outsiders بنسبة 73%)، وأبرز التكتيكات هي الاختراق (Hacking) والبرمجيات الخبيثة (Malware).

13 الصيانة: صيانة النظام

الصيانة هي المرحلة الأطول والأكثر تكلفة، تتطلب إدارة دقيقة للتكوين وتوثيقاً ممتازاً لتقليل التكاليف الأسية.

13.1 عملية صيانة النظام

المرحلة الأطول والأكثر تكلفة في دورة حياة النظام؛ مثل أخذ سيارتك للصيانة الدورية والترقيات طوال فترة استخدامها.

تعتبر صيانة النظام أكبر نفقات تطوير النظم للعديد من المنظمات. تتضمن العملية أربع خطوات رئيسية:

  1. الحصول على طلبات الصيانة (عبر عملية رسمية ووثائق).
  2. تحويل الطلبات إلى تغييرات (تحليل النطاق والمخاطر).
  3. تصميم التغييرات.
  4. تنفيذ التغييرات.

يجب على الإدارة تقييم المفاضلة بين الاستمرار في صيانة نظام قديم أو بناء/شراء نظام جديد.

13.2 أنواع الصيانة

تصحيحية (إصلاح)، تكيفية (مواكبة)، كمالية (إضافة)، ووقائية (استباق)؛ مثل إصلاح إطار مثقوب، أو تركيب إطارات ثلجية، أو إضافة نظام صوتي جديد.

  1. الصيانة التصحيحية: إصلاح عيوب التصميم أو البرمجة. تمثل 75% من نشاط الصيانة، وهي عاجلة ولكنها لا تضيف قيمة جديدة.
  2. الصيانة التكيفية: تعديل النظام لتلبية احتياجات العمل المتغيرة أو بيئات التشغيل الجديدة.
  3. الصيانة الكمالية: تحسين الأداء أو واجهة المستخدم أو إضافة ميزات جديدة (تعتبر تطويراً جديداً تقريباً).
  4. الصيانة الوقائية: إجراء تغييرات لتقليل احتمالية فشل النظام في المستقبل (أقل أولوية).

13.3 التكلفة وقابلية الصيانة

التوثيق السيء يضاعف تكلفة الصيانة بشكل أسي؛ مثل محاولة إصلاح آلة معقدة بدون دليل المستخدم.

تخصص المنظمات 60% إلى 80% من ميزانية نظم المعلومات للصيانة، ويعمل 52% من المبرمجين في صيانة النظم الداخلية.

قابلية الصيانة تتأثر بعدة عوامل رئيسية:

  1. عدد العيوب الكامنة (الأخطاء غير المكتشفة).
  2. عدد العملاء (زيادة العملاء تزيد التكلفة).
  3. جودة التوثيق (بدون توثيق جيد، تزداد جهود الصيانة بشكل أسي).

عوامل أخرى تشمل الأفراد، الأدوات، وهيكلة البرمجيات.

13.4 إدارة أفراد الصيانة

تنظيم فرق الصيانة (منفصل، مدمج، وظيفي) يؤثر على جودة التوثيق؛ مثل قرار ما إذا كان البناؤون الأصليون سيصونون المبنى أم فريق صيانة متخصص.

بما أن الصيانة تستحوذ على الجزء الأكبر من المبرمجين، فإن إدارتهم حاسمة. هناك 3 هياكل تنظيمية:

  1. منفصل (Separate): فريق صيانة مستقل. يحسن جودة التوثيق (بسبب النقل الرسمي) لكن الفريق قد يفتقر لمعلومات غير موثقة.
  2. مدمج (Combined): نفس من بنى النظام يصونه. يعرفون كل الافتراضات، لكن التوثيق قد يضعف لعدم وجود نقل رسمي.
  3. وظيفي (Functional): موظفو الصيانة يتبعون لوحدات العمل (المستخدمين). فهم ممتاز للمتطلبات، لكن قد يفتقرون للموارد التقنية والتنقل الوظيفي.

13.5 قياس الفعالية والتحكم في الطلبات

استخدام MTBF لقياس صحة النظام؛ مثل تتبع عدد الأيام التي تقضيها دون أن تمرض لتقييم مناعتك.

قياس الفعالية: يعتمد على 3 عوامل: عدد الأعطال، الوقت بين الأعطال، ونوع العطل. المقياس الأهم هو MTBF (متوسط الوقت بين الأعطال)، والذي يجب أن يزداد بمرور الوقت بعد تثبيت النظام.

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

13.6 إدارة التكوين

حارس البوابة للكود الذي يمنع التعديلات العشوائية؛ مثل أمين مكتبة يضمن أن شخصاً واحداً فقط يمكنه تعديل المستند الأصلي في نفس الوقت.

إدارة التكوين هي عملية ضمان إجراء التغييرات المصرح بها فقط على النظام.

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

أمين مكتبة النظام (System librarian): يتحكم في عمليات سحب وإيداع (check-out / check-in) الكود المصدري.

تستخدم أدوات مثل التحكم في المراجعة (تجميد ملفات معينة) والتحكم في الكود المصدري (تتبع التغييرات وإعادة بناء الإصدارات السابقة).

13.7 الأدوات الآلية وصيانة المواقع

استخدام الهندسة العكسية لفهم الكود القديم، وصيانة المواقع دون إيقافها بالكامل؛ مثل تجديد متجر مع إبقائه مفتوحاً للعملاء 24/7.

الأدوات الآلية:

  • أدوات الهندسة العكسية: تقرأ الكود المصدري وتنشئ تمثيلاً تصميمياً له (مفيدة للأنظمة القديمة غير الموثقة).
  • أدوات إعادة الهندسة: تقوم بتعديل النظام الحالي تلقائياً لتحسين جودته أو أدائه.

صيانة المواقع الإلكترونية:

يجب أن تكون المواقع متاحة 24/7/365. يتم إجراء الصيانة دون إيقاف الموقع بالكامل (قفل صفحات معينة بوضع إشعار 'خارج الخدمة مؤقتاً'). تشمل المهام: فحص الروابط المكسورة (باستخدام أدوات مثل LinkAlarm)، التحقق من صحة HTML، وإعادة التسجيل في محركات البحث عند تغيير المحتوى بشكل كبير.

None

المعادلة / المفهوم الوحدة LaTeX / Notation
السمة A تحدد وظيفياً السمة B. M9 \(A \rightarrow B\)

مقارنة المنهجيات والنماذج

مقارنة بين علاقة الامتداد وعلاقة التضمين

المعيار Extend Relationship Include Relationship
الغرض الأساسي إضافة سلوكيات استثنائية أو اختيارية إعادة استخدام وظائف مشتركة
اتجاه السهم يشير نحو حالة الاستخدام الأساسية (المُمدَّدة) يشير نحو حالة الاستخدام الفرعية (المُضمَّنة)
الإلزامية اختياري (يحدث تحت شروط معينة) إلزامي (جزء لا يتجزأ من التدفق)

مقارنة بين بوابات BPMN

المعيار XOR Gateway AND Gateway OR Gateway
الرمز معين بداخله X معين بداخله + معين بداخله O
سلوك المسارات مسار واحد فقط جميع المسارات بالتوازي مسار واحد على الأقل (ربما أكثر)

النهج من أعلى إلى أسفل مقابل النهج من أسفل إلى أعلى

المعيار Top-down Approach Bottom-up Approach
مصدر استنباط القواعد الفهم العميق لطبيعة العمل مراجعة مستندات عمل محددة (تقارير، نماذج)
الارتباط بنماذج أخرى أساس لنماذج البيانات الجاهزة تظهر كمصادر لتدفقات البيانات في DFDs

التجميع مقابل التكوين

المعيار Aggregation Composition
قوة العلاقة علاقة جزء-من أضعف علاقة جزء-من أقوى
الرمز في UML معين مفرغ (Hollow diamond) معين ممتلئ (Solid diamond)
دورة حياة الأجزاء مستقلة عن الكيان الكلي تحيا وتموت مع الكيان الكلي

التصميم المنطقي مقابل التصميم المادي

المعيار Logical Database Model Physical Database Design
التركيز الأساسي وصف البيانات باستخدام تدوين برمجي (مثل الجداول والعلاقات) المواصفات الفنية للتخزين وملفات الكمبيوتر
العمليات الرئيسية التطبيع (Normalization)، دمج العلاقات اختيار أنواع البيانات، تنظيم الملفات، ضوابط السلامة

مقارنة تنظيمات الملفات

المعيار Sequential Indexed Hashed
آلية الوصول مسح من البداية للنهاية بحث عبر شجرة الفهرس حساب الموقع المباشر عبر خوارزمية

النماذج مقابل التقارير

المعيار Forms Reports
الهدف الأساسي إدخال البيانات وعرضها القراءة والعرض فقط (سلبي)
المحتوى بيانات محددة مسبقاً + مساحات فارغة للتعبئة بيانات محددة مسبقاً فقط

الجداول مقابل الرسوم البيانية

المعيار Tables Graphs
أفضل استخدام لـ قراءة قيم بيانات فردية دقيقة اكتشاف الاتجاهات، التنبؤ، الملخصات السريعة

خادم الملفات مقابل بنية الخادم/العميل

المعيار File Server Client/Server
المعالجة العميل فقط العميل والخادم معاً
الوصول المتزامن للبيانات منخفض - يدار بواسطة كل عميل عالي - يدار بواسطة الخادم
استخدام الشبكة نقل ملفات وبيانات كبيرة نقل بيانات فعال
أمان وتكامل قاعدة البيانات منخفض - يدار بواسطة كل عميل عالي - يدار بواسطة الخادم
صيانة البرمجيات منخفض - التغييرات على الخادم فقط مختلط - يجب تسليم أجزاء جديدة لكل عميل
مرونة الأجهزة وبرمجيات النظام العميل والخادم منفصلان ويمكن خلطهما يحتاج لتنسيق أكبر بين العميل والخادم

مقارنة استراتيجيات التثبيت

المعيار Direct Installation Parallel Installation Single-location Phased Installation
المخاطرة عالية جداً منخفضة متوسطة متوسطة
التكلفة منخفضة عالية جداً (ازدواجية) متوسطة متوسطة إلى عالية

مقارنة تقنيات الاختبار

المعيار Static Testing Dynamic Testing
تنفيذ الكود لا يتم تنفيذ الكود يتضمن تنفيذ الكود
أمثلة الفحص، فحص البنية اختبار الوحدة، التكامل، النظام

مقارنة بين أنواع الصيانة

المعيار Corrective Adaptive Perfective Preventive
الهدف الأساسي إصلاح الأخطاء التكيف مع التغييرات إضافة ميزات/تحسين منع الفشل المستقبلي
إضافة قيمة للعمل لا نعم نعم (تطوير جديد) نعم (استقرار)
الأولوية / الاستعجال عاجل جداً أقل استعجالاً مجدول أقل أولوية

هياكل تنظيم أفراد الصيانة

المعيار Separate Combined Functional
جودة التوثيق عالية (بسبب النقل الرسمي) منخفضة متوسطة
معرفة النظام العميقة قد تفتقر للمعلومات غير الموثقة ممتازة (هم من بنوا النظام) فهم ممتاز لمتطلبات العمل

🃏 البطاقات التعليمية

🎯 اختبر نفسك

1 / 30 🎯 نتيجتك: 0

حديث البروفيسور

أهلاً بكم يا أبنائي وبناتي طلاب مقرر CS352 في ليلة الامتحان النهائي. الليلة هي ليلة ربط الخيوط ببعضها البعض، حيث تكتمل الصورة الكبيرة لدورة حياة تطوير النظم. أريدكم أن تقرؤوا هذه السطور بتركيز، فالاختبار لن يسألكم عن كل وحدة بمعزل عن الأخرى، بل سيختبر فهمكم للترابط بينها. نبدأ من مرحلة التحليل، حيث تعلمنا في الوحدة السابعة كيف ننمذج العمليات المنطقية باستخدام حالات الاستخدام (Use Cases) ومخططات الأنشطة وBPMN لفهم سلوك النظام. احذروا من فخ الخلط بين نمذجة العمليات ونمذجة البيانات! فالعمليات تحتاج إلى بيانات لتعمل، وهنا يأتي دور الوحدة الثامنة التي تركز على النمذجة المفاهيمية للبيانات باستخدام مخططات الكيانات والعلاقات (E-R) ومخططات الفئات (Class Diagrams) بشكل مستقل عن التكنولوجيا. بعد التحليل، ننتقل إلى مرحلة التصميم. في الوحدة التاسعة، نقوم بتحويل تلك النماذج المفاهيمية إلى جداول علائقية طبيعية (Normalized) وتحديد التخزين المادي. الفخ هنا هو نسيان قواعد التطبيع (Normalization) وكيفية تطبيقها. وبما أن النظام يحتاج إلى واجهة تفاعلية، تأتي الوحدة العاشرة لتعلمنا تصميم النماذج والتقارير مع التركيز الشديد على سهولة الاستخدام (Usability) وتجربة المستخدم. ولأن أنظمة اليوم تعتمد على الشبكات، توسع الوحدة الحادية عشرة مداركنا لتصميم الأنظمة القائمة على الإنترنت، حيث يجب الموازنة بين الأداء والموثوقية واستخدام الحوسبة السحابية. أخيراً، نصل إلى أرض الواقع. الوحدة الثانية عشرة تتناول مرحلة التنفيذ (Implementation)، وهي المرحلة التي تحول التصميم إلى نظام يعمل فعلياً، وتذكروا جيداً أنها المرحلة الأكثر تكلفة في التطوير وتتطلب تخطيطاً دقيقاً للاختبار والتثبيت. لكن الرحلة لا تنتهي هنا، فالفخ الأكبر في الامتحان هو الاعتقاد بأن التنفيذ هو النهاية. الوحدة الثالثة عشرة تؤكد أن الصيانة (Maintenance) هي المرحلة الأطول والأكثر تكلفة على الإطلاق في دورة حياة النظام بأكملها، وتتطلب إدارة صارمة للتهيئة (Configuration Management) وتوثيقاً ممتازاً. اربطوا هذه المفاهيم ببعضها: التحليل يغذي التصميم، والتصميم يوجه التنفيذ، والتنفيذ الجيد يسهل الصيانة. ركزوا على هذه العلاقات، وتجنبوا حفظ المصطلحات دون فهم سياقها. أتمنى لكم كل التوفيق والنجاح في اختباركم غداً!

خزنة الامتحان | النقاط الحرجة

34 نقطة حرجة
⚠️ فخ M10
الاعتقاد بأن 'النموذج' و'التقرير' هما نفس الشيء. النموذج تفاعلي (يحتوي مساحات للإدخال)، التقرير سلبي (للقراءة فقط).
⚠️ فخ M7
لا تخلط بين الضمان الأدنى وضمان النجاح في حالات الاستخدام المكتوبة. الضمان الأدنى يجب أن يتحقق حتى لو فشلت العملية (مثل عدم تعطل النظام)، بينما ضمان النجاح هو الهدف النهائي.
🔑 مفهوم أساسي M12
استراتيجيات التثبيت الأربع هي جوهر هذه الوحدة: المباشر (سريع وخطر)، المتوازي (آمن ومكلف)، موقع واحد (تجريبي)، والمرحلي (تدريجي).
🔑 مفهوم أساسي M9
تنظيم الملفات يعتمد على الهدف: للتصفح الشامل استخدم التسلسلي (Sequential)، للبحث السريع استخدم المفهرس (Indexed)، وللوصول المباشر الفوري استخدم المجزأ (Hashed).
💡 سر الامتحان M7
في BPMN، بوابة OR (حرف O) هي الأكثر تعقيداً في التنفيذ البرمجي، لأنها تتطلب تقييم جميع الشروط لتحديد ما إذا كان سيتم تفعيل مسار واحد، أو بعضها، أو كلها.
🔑 مفهوم أساسي M8
تعدد الأشكال (Polymorphism) هو ما يجعل الأنظمة الموجهة للكائنات قابلة للتوسع بسهولة. يسمح لك باستدعاء نفس العملية (مثل calc-tuition) على كائنات مختلفة، وسيقوم كل كائن بتنفيذها بطريقته الخاصة.
💡 سر الامتحان M10
مصطلح 'User-friendly' لا يُستخدم في التقييم الأكاديمي والمهني لأنه غامض. بدلاً من ذلك، نستخدم مقاييس دقيقة مثل: قابلية التعلم، الكفاءة، ومعدل الخطأ.
🔑 مفهوم أساسي M13
الصيانة التصحيحية تستهلك 75% من الجهد ولكنها لا تضيف أي قيمة جديدة للمنظمة؛ هي فقط تعيد النظام لما كان يجب أن يكون عليه.
⚠️ فخ M11
الاعتقاد بأن CSS و XSL يقومان بنفس الوظيفة تماماً. CSS ينسق مستندات HTML، بينما XSL مصمم خصيصاً لفصل النمط عن المحتوى في مستندات XML وتحويلها.
⚠️ فخ M11
الخلط بين خادم الملفات (File Server) وبنية الخادم/العميل (Client/Server). تذكر: خادم الملفات يرسل الملف بأكمله للعميل لمعالجته، بينما الخادم/العميل يعالج البيانات في الخادم ويرسل النتيجة فقط.
🔑 مفهوم أساسي M11
نماذج الخدمة السحابية الثلاثة الأساسية هي: IaaS (بنية تحتية)، PaaS (منصة)، و SaaS (برمجيات).
⚠️ فخ M13
الاعتقاد بأن الصيانة 'الكمالية' (Perfective) تعني إصلاح الأخطاء لجعل النظام مثالياً. في الواقع، هي تعني إضافة ميزات جديدة وتحسينات، وتعتبر أقرب لتطوير نظام جديد.
⚠️ فخ M8
الخلط بين التجميع (Aggregation) والتكوين (Composition). تذكر: التكوين (معين ممتلئ) يعني أن الجزء يموت بموت الكل (مثل المبنى والغرفة). التجميع (معين مفرغ) يعني أن الجزء يمكن أن يعيش مستقلاً (مثل الجامعة والكلية).
⚠️ فخ M12
الخلط بين اختبار التكامل واختبار النظام. تذكر: التكامل يدمج 'الوحدات' (Modules) لتكوين برامج، بينما النظام يدمج 'البرامج' (Programs) لتكوين النظام الكامل.
⚠️ فخ M7
احذر من عكس اتجاه الأسهم في علاقات حالات الاستخدام! سهم الامتداد (Extend) يشير إلى الحالة الأساسية، بينما سهم التضمين (Include) يشير إلى الحالة الفرعية المُستخدمة.
⚠️ فخ M7
الخطأ الشائع هو الاعتقاد بأن الممثل (Actor) هو شخص محدد (مثل أحمد أو سارة). الصحيح أن الممثل يمثل 'دوراً' (Role)، ويمكن لشخص واحد أن يلعب عدة أدوار.
⚠️ فخ M9
الاعتقاد بأن الجدول المادي (Physical Table) يجب أن يطابق العلاقة المنطقية (Logical Relation) بنسبة 1:1. في الواقع، قد يختلفان لأسباب تتعلق بكفاءة التخزين وسرعة المعالجة.
🔑 مفهوم أساسي M13
مؤشر MTBF (متوسط الوقت بين الأعطال) يجب أن يرتفع بمرور الوقت. إذا انخفض، فهذا يعني أن تعديلات الصيانة تُدخل أخطاء جديدة للنظام.
💡 سر الامتحان M12
التنفيذ ليس مجرد عملية ميكانيكية لتركيب الأجهزة والبرامج؛ إنه تغيير تنظيمي يمس عادات العمل، المعتقدات، والأهداف الشخصية للموظفين، وهذا هو سبب فشل العديد من الأنظمة.
🔑 مفهوم أساسي M7
مسارات السباحة (Swimlanes) لا تضيف منطقاً جديداً للعملية، بل تضيف بُعداً تنظيمياً يوضح 'من' المسؤول عن كل خطوة.
🔑 مفهوم أساسي M11
البنية الموجهة للخدمات (SOA) تعتمد على تقسيم إجراءات العمل المعقدة إلى خدمات صغيرة ومستقلة يمكن إعادة استخدامها بواسطة تطبيقات متعددة.
💡 سر الامتحان M9
التصميم المنطقي والمادي ليسا مرحلتين منفصلتين تماماً زمنياً؛ يمكن إجراؤهما بالتوازي (in parallel) كما ذكرت الشرائح.
💡 سر الامتحان M11
في إدارة المواقع، هناك مقايضة (Trade-off) دائمة بين الأمان وسهولة الاستخدام. النظام الأكثر أماناً غالباً ما يكون أقل سهولة في الاستخدام.
⚠️ فخ M9
الخلط بين 2NF و 3NF: تذكر أن 2NF تتعلق بالاعتماد على *جزء* من المفتاح الأساسي (تحدث فقط في المفاتيح المركبة)، بينما 3NF تتعلق باعتماد سمة غير أساسية على سمة *غير أساسية* أخرى.
⚠️ فخ M8
الاعتقاد بأنه يمكن إنشاء كائن من فئة مجردة (Abstract Class). الفئات المجردة تُستخدم فقط كقوالب لتوريث الخصائص للفئات الفرعية الملموسة (Concrete Classes).
🔑 مفهوم أساسي M9
الاعتمادية الوظيفية (Functional Dependency) هي حجر الأساس للتطبيع. إذا فهمت أن A -> B تعني (بمعرفة A، يمكنني دائماً معرفة B بشكل قاطع)، ستفهم كل قواعد التطبيع.
⚠️ فخ M13
الخلط بين الهندسة العكسية (Reverse Engineering) وإعادة الهندسة (Re-engineering). الأولى تستخرج التصميم من الكود دون تغييره، والثانية تغير الكود فعلياً لتحسينه.
🔑 مفهوم أساسي M7
الفرق بين Branch و Fork في مخططات الأنشطة: Branch (المعين) يعني مسارات متبادلة حصرياً (إما أ أو ب). Fork (الخط الأفقي) يعني مسارات متوازية تحدث في نفس الوقت (أ و ب معاً).
🔑 مفهوم أساسي M10
التصميم المرتكز على المستخدم (User-Centered Design) هو جوهر هذه الوحدة. كل قرار تصميمي (ألوان، خطوط، جداول) يجب أن يخدم المستخدم ومهمته وبيئته.
💡 سر الامتحان M8
نموذج البيانات المفاهيمي يجب ألا يجيب أبداً على أسئلة 'كيف' أو 'متى' تتم معالجة البيانات. هذه الأسئلة تُعالج في نماذج العمليات (مثل DFDs).
⚠️ فخ M10
الخلط بين محاذاة النصوص والأرقام في الجداول. تذكر: النصوص لليسار (Left-justify)، والأرقام لليمين (Right-justify).
💡 سر الامتحان M13
العلاقة بين جودة التوثيق وتكلفة الصيانة ليست خطية، بل أسية. التوثيق السيء يضاعف التكلفة بشكل هائل لأنه يجبر المبرمجين على 'الهندسة العكسية' العقلية للكود.
🔑 مفهوم أساسي M8
الفئة الترابطية (Associative Class) هي الحل السحري لعلاقات متعدد-إلى-متعدد (Many-to-Many) في مخططات الفئات، حيث تسمح بتخزين بيانات تخص العلاقة نفسها.
⚠️ فخ M12
يعتقد الكثيرون أن التخطيط للاختبار والتثبيت يبدأ فقط في مرحلة التنفيذ. هذا فخ! التخطيط لهما يبدأ مبكراً جداً، تحديداً في مرحلة التحليل.