التنفيذ: عملية تنفيذ النظام
تغطي هذه الوحدة مرحلة التنفيذ في دورة حياة تطوير النظم، بما في ذلك التكويد، الاختبار، استراتيجيات التثبيت، التوثيق، تدريب المستخدمين، وأسباب فشل النظم.
Implementation: System Implementation Process
This module covers the implementation phase of the SDLC, including coding, testing, installation strategies, documentation, user training, and reasons for system failures.
أهداف التعلم
- فهم عملية تنفيذ النظام ومكوناتها الرئيسية.
- وصف أنواع اختبار تطبيقات البرمجيات المختلفة.
- التعرف على استراتيجيات التثبيت الأربع الرئيسية.
- فهم الفرق بين توثيق النظام وتوثيق المستخدم.
- استيعاب التهديدات التي تواجه أمن النظم وأسباب فشل التنفيذ.
- Understand the system implementation process and its major components.
- Describe software applications testing types.
- Recognize the four main installation strategies.
- Understand System documentation versus User documentation.
- Understand threats and remedies to systems security and reasons for implementation failure.
1 عملية تنفيذ النظام
1 System Implementation Process
هي المرحلة الأكثر تكلفة واستهلاكاً للوقت في دورة حياة تطوير النظم، حيث يتحول التصميم إلى نظام يعمل فعلياً.
The most expensive and time-consuming phase of the SDLC where design is turned into a working system.
يكون مخطط العلاقة R في نموذج بويس-كود العياري (BCNF) إذا كان لكل اعتمادية دالية X -> A متحققة في R، فإن X هو مفتاح مرشح (Superkey) لـ R.
كل علاقة في BCNF هي بالضرورة في 3NF، ولكن العكس غير صحيح.
الهدف هو الوصول إلى BCNF، ولكن قد نضطر أحياناً للتضحية بخاصية حفظ الاعتماديات لتحقيق ذلك.
A relation schema R is in Boyce-Codd Normal Form (BCNF) if whenever an FD X -> A holds in R, then X is a superkey of R.
Every BCNF relation is in 3NF, but there exist relations in 3NF that are not in BCNF.
The goal is to have each relation in BCNF, though sometimes dependency preservation must be sacrificed.
عند تفكيك علاقة للوصول إلى BCNF (باستخدام الخوارزمية 11.3)، نضمن خاصية الربط غير الفاقد (Lossless Join) ولكننا قد نفقد بعض الاعتماديات الدالية.
هذا يمثل مقايضة في تصميم قواعد البيانات: هل نفضل التخلص التام من التكرار (BCNF) أم الحفاظ على سهولة التحقق من القيود (3NF)؟
When decomposing a relation to achieve BCNF (using Algorithm 11.3), we guarantee the lossless (non-additive) join property, but we might lose dependency preservation.
This represents a fundamental trade-off in database design: strict redundancy elimination (BCNF) vs. efficient constraint checking (3NF).
لماذا لا يعتبر تنفيذ النظام مجرد عملية تقنية ميكانيكية؟ Why is implementing a new IS onto an organizational context not just a mechanical process?
لأنه يتضمن تغييرات في عادات العمل، المعتقدات، العلاقات المتبادلة، والأهداف الشخصية لأعضاء المنظمة.
Because it involves human factors such as work habits, beliefs, interrelationships, and personal goals of the organization's members.
2 اختبار تطبيقات البرمجيات
2 Software Application Testing
عملية التحقق من جودة البرمجيات تبدأ مبكراً في دورة حياة التطوير وتشمل خططاً متعددة مثل اختبار الوحدة والتكامل والنظام.
The process of verifying software quality that begins early in the SDLC and includes unit, integration, and system test plans.
عند تفكيك مخطط علاقة شامل (Universal Relation) إلى مجموعة من المخططات، يجب مراعاة ثلاث خصائص:
- حفظ السمات (Attribute Preservation): يجب أن تظهر كل سمة في علاقة واحدة على الأقل.
- حفظ الاعتماديات (Dependency Preservation): يجب أن يكون اتحاد إسقاطات الاعتماديات على الجداول الجديدة مكافئاً للاعتماديات الأصلية.
- الربط غير الفاقد (Lossless Join): وهو شرط إلزامي، يعني أن ربط الجداول المفككة يجب أن يعيد الجدول الأصلي تماماً دون إضافة صفوف وهمية (Spurious Tuples).
When decomposing a Universal Relation Schema into a set of schemas, three properties are evaluated:
- Attribute Preservation: Each attribute must appear in at least one relation.
- Dependency Preservation: The union of the projections of FDs on the decomposed relations must be equivalent to the original FDs.
- Lossless (Non-additive) Join: A MUST-have property ensuring that joining the decomposed tables reconstructs the exact original table without generating spurious tuples.
مصطلح 'Lossless' قد يكون مضللاً؛ فهو لا يعني عدم فقدان البيانات، بل يعني 'عدم إضافة معلومات وهمية' (Non-additive).
لاختبار التفكيك الثنائي (Binary Decomposition)، نستخدم الخاصية LJ1: يكون التفكيك غير فاقد إذا وفقط إذا كان تقاطع الجدولين يحدد وظيفياً (Functional Dependency) الأجزاء المتبقية من أحد الجدولين.
The term 'Lossless' is slightly misleading; it refers to the 'loss of information' via the 'addition of spurious information' (Non-additive).
For binary decompositions, we use Property LJ1: A decomposition {R1, R2} is lossless if and only if the intersection (R1 ∩ R2) functionally determines either (R1 - R2) or (R2 - R1).
| Static Testing | Dynamic Testing | |
|---|---|---|
| تنفيذ الكودCode Execution | لا يتم تنفيذ الكودCode is not executed | يتضمن تنفيذ الكودInvolves execution of code |
| أمثلةExamples | الفحص، فحص البنيةInspections, Syntax checking | اختبار الوحدة، التكامل، النظامUnit, Integration, System testing |
ما الفرق بين اختبار التكامل واختبار النظام؟ What is the difference between integration testing and system testing?
اختبار التكامل يدمج الوحدات (Modules) في برامج لاختبارها، بينما اختبار النظام يدمج البرامج (Programs) في أنظمة كاملة لاختبارها تدريجياً.
Integration testing combines modules into programs for testing, whereas system testing combines programs into complete systems gradually.
3 استراتيجيات التثبيت
3 Installation Strategies
عملية الانتقال من النظام الحالي إلى النظام الجديد باستخدام واحدة من أربع استراتيجيات رئيسية.
The process of moving from the current information system to the new one using one of four main approaches.
الاعتمادية متعددة القيم (MVD): يُرمز لها بـ X ->> Y، وتعني أنه لقيمة معينة من X، توجد مجموعة من القيم لـ Y، وهذه المجموعة مستقلة تماماً عن السمات الأخرى في العلاقة.
النموذج العياري الرابع (4NF): تكون العلاقة في 4NF إذا كان لكل اعتمادية متعددة القيم غير بديهية (Nontrivial MVD) X ->> Y، يكون X مفتاحاً مرشحاً (Superkey).
Multivalued Dependency (MVD): Denoted as X ->> Y, it specifies that for a given value of X, there is a set of values for Y, and this set is completely independent of other attributes in the relation.
Fourth Normal Form (4NF): A relation is in 4NF if for every nontrivial MVD X ->> Y, X is a superkey.
تعتبر MVD بديهية (Trivial) إذا كان Y مجموعة جزئية من X، أو إذا كان اتحاد X و Y يساوي العلاقة بأكملها R.
لحل مشكلة الجداول التي ليست في 4NF، نستخدم خوارزمية التفكيك (Algorithm 11.5) التي تقسم العلاقة إلى علاقتين: (Q - Y) و (X ∪ Y)، مما يضمن خاصية الربط غير الفاقد.
An MVD is considered trivial if Y is a subset of X, or if X ∪ Y = R.
To normalize a relation not in 4NF, we use Algorithm 11.5, which decomposes the relation into two schemas: (Q - Y) and (X ∪ Y), ensuring the non-additive join property.
| Direct Installation | Parallel Installation | Single-location | Phased Installation | |
|---|---|---|---|---|
| المخاطرةRisk Level | عالية جداًVery High | منخفضةLow | متوسطةMedium | متوسطةMedium |
| التكلفةCost | منخفضةLow | عالية جداً (ازدواجية)Very High (Redundancy) | متوسطةMedium | متوسطة إلى عاليةMedium to High |
متى يكون التثبيت المتوازي الخيار أفضل رغم تكلفته العالية؟ When is Parallel Installation the best choice despite its high cost?
عندما يكون النظام حرجاً جداً (مثل الأنظمة المالية أو الطبية) ولا يمكن تحمل مخاطر توقفه أو فشله المفاجئ.
When the system is mission-critical (like financial or healthcare systems) and the organization cannot afford the risk of sudden failure or downtime.
4 توثيق النظام
4 Documenting the System
إنشاء أدلة ومستندات تشرح كيفية عمل النظام داخلياً (للمطورين) وكيفية استخدامه (للمستخدمين).
Creating manuals and documents that explain how the system works internally (for developers) and how to use it (for users).
اعتمادية الربط (JD): يُرمز لها بـ JD(R1, R2, ..., Rn)، وتعني أن العلاقة R يجب أن تمتلك تفكيكاً غير فاقد إلى n من العلاقات.
الاعتمادية متعددة القيم (MVD) هي حالة خاصة من JD حيث n = 2.
النموذج العياري الخامس (5NF): يُعرف أيضاً بـ PJNF، وتكون العلاقة في 5NF إذا كان لكل اعتمادية ربط غير بديهية، كل Ri هو مفتاح مرشح (Superkey) لـ R.
Join Dependency (JD): Denoted by JD(R1, R2, ..., Rn), it specifies that relation R must have a non-additive join decomposition into n relations.
An MVD is a special case of a JD where n = 2.
Fifth Normal Form (5NF): Also known as Project-Join Normal Form (PJNF). A relation is in 5NF if for every nontrivial JD, every Ri is a superkey of R.
تعتبر 5NF معقدة جداً في التطبيق العملي وتستخدم غالباً في الإطار النظري.
تحدث اعتمادية الربط عندما يكون هناك قيد دوري بين ثلاث سمات أو أكثر لا يمكن تمثيله بواسطة MVDs.
التفكيك إلى 5NF يضمن عدم وجود أي شذوذ ناتج عن عمليات الربط المتعددة.
5NF is highly complex in practical application and mostly theoretical.
A JD occurs when there is a cyclic constraint among three or more attributes that cannot be expressed by MVDs.
Decomposing to 5NF ensures no anomalies arise from multi-way joins.
لماذا يتم فصل توثيق النظام عن توثيق المستخدم؟ Why is system documentation separated from user documentation?
لأن الجمهور المستهدف مختلف؛ المطورون يحتاجون لتفاصيل تقنية معقدة للصيانة، بينما المستخدمون يحتاجون لتعليمات واضحة وبسيطة لتشغيل النظام.
Because the target audiences have different needs: developers need complex technical details for maintenance, while end-users need clear, simple instructions to operate the software.
5 تدريب ودعم المستخدمين
5 Training and Supporting Users
توفير المعرفة والمساعدة المستمرة للمستخدمين لضمان استخدامهم الفعال للنظام الجديد.
Providing knowledge and ongoing assistance to users to ensure effective use of the new system.
اعتمادية التضمين: يُرمز لها بـ R.X < S.Y، وهي تحدد قيداً ينص على أن مجموعة القيم في سمات X من العلاقة R يجب أن تكون مجموعة جزئية من القيم في سمات Y من العلاقة S.
تُستخدم هذه الاعتماديات لإضفاء الطابع الرسمي على قيود التكامل المرجعي (Referential Integrity) وعلاقات الفئة/الفئة الفرعية (Class/Subclass).
Inclusion Dependency: Denoted as R.X < S.Y, it specifies a constraint that the set of values in attributes X of relation R must be a subset of the values in attributes Y of relation S.
These are used to formalize referential integrity constraints (Foreign Keys) and class/subclass relationships.
قواعد الاستدلال لاعتماديات التضمين تشمل:
- الانعكاسية (Reflexivity): R.X < R.X.
- تطابق السمات (Attribute Correspondence): إذا كان R.X < S.Y فإن كل سمة تقابل نظيرتها.
- التعدي (Transitivity): إذا كان R.X < S.Y و S.Y < T.Z فإن R.X < T.Z.
Inference rules for inclusion dependencies include:
- Reflexivity: R.X < R.X.
- Attribute Correspondence: If R.X < S.Y, corresponding attributes match.
- Transitivity: If R.X < S.Y and S.Y < T.Z, then R.X < T.Z.
كيف تساعد أتمتة الدعم الشركات؟ How does automating support help organizations?
تساعد في تقليل تكاليف تقديم الدعم وتلبية الطلب المتزايد على خدمات الدعم الإضافية دون الحاجة لزيادة عدد الموظفين.
It attempts to cut the costs of providing support and catch up with the demand for additional support services without proportionally increasing headcount.
6 فشل النظم والقضايا الأمنية
6 System Failures and Security Issues
فهم الأسباب الإدارية والتقنية التي تؤدي إلى فشل تنفيذ النظام، بالإضافة إلى التهديدات الأمنية الشائعة.
Understanding the managerial and technical reasons behind implementation failures, alongside common security threats.
تكون العلاقة في DKNF إذا كانت جميع القيود والاعتماديات التي يجب أن تتحقق يمكن فرضها ببساطة عن طريق فرض قيود المجال (Domain Constraints) وقيود المفاتيح (Key Constraints) على العلاقة.
الفكرة هي تحديد 'النموذج العياري النهائي' الذي يأخذ في الاعتبار جميع أنواع الاعتماديات.
A relation schema is in DKNF if all constraints and dependencies that should hold can be enforced simply by enforcing the domain constraints and key constraints on the relation.
The idea is to specify the 'ultimate normal form' that accounts for all possible types of dependencies.
على الرغم من أن DKNF يمثل الحالة المثالية لتصميم قواعد البيانات (حيث لا توجد شذوذ إدخال أو حذف أو تعديل)، إلا أن فائدته العملية محدودة جداً.
من الصعب، بل من المستحيل أحياناً، تحويل مخطط قاعدة بيانات معقد إلى DKNF في العالم الحقيقي.
Although DKNF represents the theoretical ideal for database design (guaranteeing no insertion, deletion, or modification anomalies), its practical utility is highly limited.
It is often difficult or impossible to convert a complex real-world database schema into DKNF.
كيف يمكن لمشاركة المستخدمين المبكرة أن تمنع فشل النظام؟ How can early user involvement prevent system failure?
تضمن مشاركتهم أن النظام يلبي احتياجاتهم الفعلية، وتقلل من مقاومتهم للتغيير عند التثبيت، وتزيد من التزامهم بنجاح المشروع.
It ensures the system meets their actual needs, reduces resistance to change during installation, and increases their commitment to the project's success.