
السلام عليكم ورحمة الله وبركاته
اخواني الكرام اقدم اليكم
تفاصيل المرحلة الثالثة وهي تصميم النظام System Design بالتفصيل
فهو مرحلة لاحقة وكنتيجة حتمية للمرحلة الثانية وهي التحليل بعد اعتمادها من الإدارة ، ونجاح أو فشل التصميم يعتمد أساساً على براعة ودقة وصحة التحليل، لأنه الأساس الذي يقوم عليه البناء (التصميم).
ونقوم بمرحلة التصميم باستخدام المتطلبات التي حددناها في مرحلة التحليل , ويقسم إلى المراحل التالية :
- مرحلة تصميم مخططات (نماذج ) النظام ( البرنامج ) باستخدام اللغة الرسومية Flowcharts
وتنقسم إلى مرحلتين :
أولا : مرحلة التصميم العام : 1- إعداد التصميم المناسب للنظام على شكل هيكل تنظيمي.

2- إعداد التصميم لكل خطوة في الهيكل التنظيمي على شكل رسومي (الخوارزميات) (Algorithm) عبارة عن مجموعة من الخطوات الرياضية والمنطقية والمتسلسلة اللازمة لحل مشكلة ما وكتابة الخطوات المنطقية لأجزاء الهيكل التنظيمي في النظام وباستعمال طريقة التشفير المرمزه.
مزايا الخوارزميات :
• وصف خطوات الحل بشكل واضح ومحدد.
• عدم اعتماد الخوارزمية على أسلوب معين في المعالجة
• إمكانية استخدام الخوارزمية نفسها لحل جميع المشاكل المشابهة.
• سهولة فهم خطوات حل المشكلة واستيعابها.
• إمكانية اكتشاف الأخطاء التي قد تحدث بيسر وسهولة.
• تعد الخوارزمية وسيلة من وسائل التوثيق.
<b> تركيبها :</b>
هناك ثلاث تراكيب لبناء البرامج و كتابة الخوارزميات. الفكرة تكمن في أن أي برنامج أو خوارزمية يجب أن تتكون من هذه التراكيب الثلاثة فقط: التسلسل (sequence) ، الاختيار (selection), التكرار (repetition).
1- التسلسل: تكون الخوارزمية عبارة عن مجموعة من التعليمات المتسلسلة,هذه التعليمات قد تكون إما بسيطة أو من النوعين التاليين.
2- الاختيار : بعض المشاكل لا يمكن حلها بتسلسل بسيط للتعليمات ، و قد تحتاج إلى اختبار بعض الشروط و تنظر إلى نتيجة الاختبار, إذا كانت النتيجة صحيحة تتبع مسار يحوي تعليمات متسلسلة,و إذا كانت خاطئة تتبع مسار آخر مختلف من التعليمات.هذه الطريقة هي ما تسمى اتخاذ القرار أو الاختيار .
3- التكرار : عند حل بعض المشاكل لا بد من إعادة نفس تسلسل الخطوات عدد من المرات. و هذا ما يطلق عليه التكرار .
و قد أثُبت أنه لا حاجة إلى تراكيب إضافية.استخدام هذه التراكيب الثلاث يسهل فهم الخوارزمية و اكتشاف الأخطاء الواردة فيها و تغييرها.
تمثيلها :1- المخطط الانسيابي (Flowchart) : هو تمثيل مصور للخوارزمية يوضح خطوات حل المشكلة من البداية إلى النهاية مع إخفاء التفاصيل لإعطاء الصورة العامة للحل. و يمكن تصنيفها إلى أصناف ثلاثة هي:
• مخططات سير العمليات التتابع (Sequential Flowcharts).
• مخططات سير العمليات ذات التفرع (Branched Flowcharts).
• مخططات سير العمليات ذات التكرار والدوران (Loop Flowcharts).
• مخططات سير العمليات ذات الدوران المتداخلة .(Nested)
2- الشفرة المزيفة (pseudo code) : تمثيل الخوارزمية بلغات البشر كالانجليزية أو الفرنسية أو العربية أو بلغات البرمجة. البعض يستخدم الكثير من التفاصيل و البعض الآخر يستخدم القليل . فلا قاعدة معينة لكتابة هذا النوع من الشفرات.
أشكالها : وهو ما يسمى بالمخطط التدفقي Flowchart Diagram ويأخذ أشكالاً هندسية متفق عليها خصص كل منها لنوع من العمليات وهي :
• الدائرة (الشكل البيضاوي) لتحديد بداية الخوارزمية و نهايتها .
• المستطيل العمليات (التنفيذية ، طرق التعبير عن الخوارزمية).
• متوازي الأضلاع عمليات الإدخال و الإخراج .
• المعين العمليات التي ترتبط باختبار تحقق شرط ما و تتطلب قراراً منطقياً .
• السهم يحدد اتجاه التنفيذ .
• سداسي الشكل لتنفيذ عمليات التكرار والدوران.
ثانياً : مرحلة التصميم التفصيلي :1- تصميم الواجهات ونوافذ المستخدم User Interface ، ويجب الأخذ بعين الاعتبار ضرورة العناية بنوافذ المستخدم , لأنها عامل رئيسي في نجاح النظام وفي فشله أيضا فنلاحظ أن بعض نوافذ المستخدم (نوافذ البرامج) تكون مليئة بالإيقونات ومبعثره وغير مرنه وكلما انتقلت إلى مرحله يطلب منك كلمة السر , فهذه تسبب الضجر والملل بالنسبة للمستخدم كما أنها تقلل من إنتاجية الموظف لصعوبة استخدامها وتحتاج إلى فترة تدريب طويلة.
2- تصميم شاشات الإخراج Output Design والإدخال Design Input وتحديد خصائصها ومواصفاتها وأنواعها وعمل الترميز المناسب (للتعاريف الثابتة) ويجب كتابة شروط الإدخال وحسب الرسومات التي تم تصميمها في المرحلة السابقة.
وهنا يجب مراعاة الأمور التالية عند تصميم الشاشات وهي :
• يجب أن يتم الانتباه لكل التفاصيل وحجم النوافذ والأزرار والألوان والصور ونوع وحجم الخط المستخدم في الأدوات والاتفاق على ذلك.
• عند التصميم يجب أن تجعل المستخدم يتفاعل مع الوجهة ويكون هناك نوع من الألفة كما يجب استخدام التلميحات التوضيحية لتوصيل المعلومة للمستخدم.
• يجب منح المستخدم خيارات لانجاز العمل بأفضل وجه مثل إغلاق (النافذة –البرنامج)
• جعل الأدوات ذات مقاس موحد ما أمكن ذلك .
• الابتعاد عن الألوان الكثيرة والزخرفة والخطوط الملونة بل يجب أن يكون العمل قياسي Standard ما أمكن.
• توحيد الألوان وأحجام الأدوات في وحدات البرنامج المختلفة.
3- تصميم شاشات الاستفسار والتقارير التي تطبع على الورق وتحديد البيانات المهمة في كل شاشة أو تقرير أو كشف ويمكن رسم صوره لكيفية طباعة التقارير ويجب تصميم شكل التقارير على الورق بحيث يتضمن نوع الخط والألوان ومقاس الأوراق واسم الشركة وشعار الشركة حتى نصل إلى الشكل النهائي والذي يجب أن توافق عليه الشركة أو تضيف عليه ما تراه يناسب حاجة العمل لديهم ويجب حساب كل الإضافات المتوقعة من النظام الجديد وتفادي مشاكل النظام السابق.
فوائد ومزايا الاستفسارات والتقارير : وهي وسيلة فعالة لا غنى عنها للإدارة إذ أنها :
- تعرف الإدارة بكيفية سير العمل ، وبذلك يجب أن تقدم معلومات فورية عن العمليات الجارية.
- تساعد الإدارة في إمكانية تحسين العمل عما هو جاري حالياً ، وبذلك تكون إدارة هامة للتخطيط.
- تمكن الإدارة من متابعة وتقويم نتائج أعمال الشركة.
- تعتبر أداة هامة لتوجيه ودفع الوحدة أو الشخص بأن يتبع بالضبط الخطة المحددة الموضوعة.
- تساعد في ربط العمليات الجارية داخل الشركة بعضها مع بعض وفي تعاون العاملين على إنجازها ، مما يخلق جواً ملائماً لتحقيق أهداف الشركة.
- توصيل المعلومات التي تساعد الإدارة في تحقيق أهداف الشركة ، فمثلاً تقارير الميزانية تشتمل على التخطيط المبدئي لكل أنشطة الشركة .
ويمكنكم مراجعة مشاركتي التالية للاطلاع على تفاصيل مراحل كتابة التقارير
مراحل كتابة التقارير بالتفصيل4- تصميم المخططات (النماذج):ويمكن هنا استخدام اللغة الموحدة لذلك وهي Unified Modeling Language:
وهي مرحلة البدء بعمل الرسومات الخاصة بالبرنامج المقترح وهي مجموعة من الرسومات المتعارف عليها بمصطلح UML أو “لغة النماذج الموحدة” Unified Modeling Language بحيث يستطيع أي مبرمج فهمها والبدء بالبرمجة بناءً عليها مباشرة. حيث تمنح لغة UML مستخدميها طريقة قياسية لكتابة مخططات النظام التي تُغطِّي الُمكوِّنات التخيلية كإجراءات العمل ووظائف النظام والمكوِّنات المادية أيضاً، ويوفر UML عدة مخططات (نماذج) مختلفة لوصف النظام.
والقائمة التالية تعرضها كلها مع جملة واحدة توجز الغرض من كل مخطط(نموذج):

- مخطط حالة الاستخدام ( The Use Case Diagram )
حالة الاستخدام Use Case هي وصف لسلوك النظام من وجهة نظر المستخدم. فهي ذات فائدة خلال مراحل التحليل و التطوير، و تساعد في فهم المتطلبات.
يكون المخطط سهلا للاستيعاب. مما يمكّن كلا من المطوّرين (محلّلون، مصمّمون، مبرمجون، مختبرون) و المستفيدون (الزبون) من الاشتغال عليه.
لكن هذه السهولة يجب أن لا تجعلنا ننقص من شأن مخططات حالة الاستخدام. فهي بإمكانها أن تحتمل كامل عمليات التطوير ، بدءا من الدراسة التمهيدية وحتى التسليم.

- مخطط ترابط الأصناف أو الأجزاء (Class Diagram)
رسم مخططات الأصناف جانب أساسي لأي منهج للتصميم بالمنحى للكائن، لذلك ليس بالغريب أن تقدّم لنا UML الصيغة المناسبة له. سوف نرى أنه بإمكاننا استخدام مخطط الأصناف في مرحلة التحليل و كذلك في مرحلة التصميم - سوف نقوم باستعمال صيغ مخططات الأصناف لرسم خريطة للمفاهيم العامة التي يمكن للمستفيد = الزبون أن يستوعبها (و سوف نسمّيها النموذج ألمفاهيمي Conceptual Model). وهي بالإضافة إلى مخطط حالة الاستخدام، تجعل من النموذج ألمفاهيمي أداة قوية لتحليل المتطلبات

- مخطط التعاون أو الاشتراك (بين الأصناف) (Collaboration Diagram)
نحن نقوم بتطوير برامج المنحى ألكائني، أي شيء يحتاجه برنامجنا لأن يقوم به فسيكون بواسطة تعاون الكائنات. يمكننا رسم مخططات التعاون لوصف كيف نريد للكائنات التي نبنيها أن تتعاون مع بعض.
هنا مثال جيد عن لماذا UML هي مجرد صيغة أكثر من كونها عملية حقيقية لتطوير البرمجيات. سوف نرى أن ترميز UML للمخطط بسيط جدا، و لكن تصميم تعاون فعّال، (لنقل "تصميم برنامج راسخ و يسهل صيانته") ، يعدّ صعبا بالتأكيد. ربما علينا تخصيص فصلا بكامله يتناول الخطوط العريضة لمبادئ التصميم الجيّد، مع أن الكثير من مهارات التصميم تأتي من الخبرة

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

- مخطط الحالة (State Diagrams)
بعض الكائنات يمكنها في أي وقت محدد أن تكون في حالة ما . مثلا زر التخزين يكون غير مفعل ولتفعيلة يجب أن يكون هناك حالة تعديل أو حالة إدخال فلا يمكن لنا تفعيل التخزين إذا لم يكن هناك تعديل أو إدخال ؟، و كما يمكن لتحوّلات الحالة أن تكون معقّدة، فإن UML تقدّم صيغة تسمح لنا بتصويرها و نمذجتها.

- مخطط التحزيم Package Diagrams
أي نظام= منظومة لا يكون صغيرا يحتاج إلى أن يقسّم إلى أجزاء "chunks" أصغر حجما و أسهل للفهم، و تتيح لنا مخططات التحزيم في UML نمذجة هذه الأجزاء بطريقة بسيطة و فعّالة.

- مخطط المكونات Component Diagrams
يتشابه مخطط المكونات مع مخطط التحزيم - فهو يسمح لنا بترميز كيفية فصل أو تقسيم نظامنا، و كيف يعتمد كل قالب على آخر فيه. عموما، يركّز مخطط المكونات على المكونات الفعلية للبرنامج (الملفات، الترويسات headers ، مكتبات الربط ، الملفات التنفيذية، الحزم packages) و ليس بالفصل المنطقي أو الفكري كما في مخطط التحزيم.

- مخطط التجهيز Deployment Diagrams
تقدم لنا UML نموذجا يمكننا من خلاله التخطيط لكيف سيتم تجهيز برنامجنا. مثلا، المخطط أدناه يعرض توصيفا مبسطا لجهاز حاسوب شخصي
5- تصميم قواعد البيانات وتحديد نوعيتها والعلاقات التي يجب استخدامها. نستطيع أن نعرف قاعدة البيانات بأنها مجموعة من البيانات المنظمة، التي يمكن الوصول إلى محتوياتها، وإدارتها، وتحديثها، بسهولة. وهي مجموعة من التسجيلات أو القيود (Records) يشار إليها باسم الملف (File) وتتكون قاعدة البيانات عادة من ملف واحد أو أكثر. ويسميها البعض قاعدة المعلومات مجازاً. وقاعدة البيانات التي تصمم أو تستأجر أو تشترى أو يستعان بها من جهات تعاونية مختلفة، هي عبارة عن مجموعة منظمة من بيانات ومعلومات مرتبطة مع بعضها بنسق معين، بغرض تأمين حاجات محددة من متطلبات المستفيدين. وتشتل قاعدة البيانات عادة مع وحدات وأجزاء لها تسمياتها وارتباطاتها المختلفة التي تبدأ من مصطلح البت والبايت وتنتهي بالقيود أو التسجيلات والملفات.
ويسمي البعض قاعدة البيانات، مجازاً، قاعدة المعلومات. وقاعدة البيانات التي تصمم أو تستأجر أو تشترى أو يستعان بها من جهات تعاونية مختلفة، هي عبارة عن مجموعة منظمة من بيانات ومعلومات مرتبطة مع بعضها بنسق معين، بغرض تأمين حاجات محددة من متطلبات المستفيدين.
- تصميم قواعد البيانات : بعد أن نحدد أي نوع قاعدة البيانات يجب استخدامها نعمل على تصميم قاعدة البيانات وهو أمر أكثر من مجرد إدراج قائمة من المجالات وتضمين قرارات حكمية حول الجداول وعلاقاتها حتى تتوافق مع توقعاتنا وحاجات النظام ، والجداول التي يتم بناءها بشكل بسيط يمكن أن تستخدم من قبل عدد لا بأس به من المستخدمين الذين لا يعنيهم أن يطلعوا على هيكل البيانات، ونقدم ثمانية وصايا للتصميم والتي نشجعك على إتباعها وهي:
1. يجب أن يتوافق كل جدول مع كيان واحد ويتوافق كل صف مع أحداث الكيان.
2. الحقائق الموجودة في الجدول يجب أن تصف المفتاح الأساسي.
3. يجب عرض كل حقيقة في قاعدة البيانات لمرة واحدة فقط وعدم تكرار استخدام المجالات.
4. لا يتم تحديد قيمة حقيقة أخرى من خلال تجميع حقائق موجودة.
5. المفتاح الأساسي يجب أن يحدد الكيان وبشكل فريد من نوعه.
6. يجب أن تكون جميع الحقائق فاعلة وظيفياً باعتمادها على المفتاح الأساسي.
7. قابليتها للتوسع والإضافة .
8. يتم تصميم هياكل قاعدة البيانات كخطوة أولى وهي عبارة عن تحويل محتويات وعناصر كل كائن من النظام إلى جدول قاعدة بيانات يحتوي على (اسم الحقل – نوعه – نطاقه – ووصف للحقل).
وبعد أن حصلنا على ثماني قواعد بسيطة يمكن العمل من خلالها، وهي تعتبر الوصايا الثماني لتصميم قاعدة بيانات جيدة.
وفيما يلي الخطوات الأساسية لتصميم قاعدة البيانات :
- تحديد مكونات قاعدة البيانات Database: 1- الحقل (Field) : ويعتبرها البعض، بالنسبة إلى قادة البيانات، أصغر وحدة فيها، وهي بيانات تمثل وحدة واحدة من القيد أو السجل، فقد يمثل الحقل الواحد الاسم الكامل للشخص (موظف، مؤلف ... الخ) أو عنوان شخص أو عنوان مقالة أو كتاب، وهكذا.
2- القيد أو السجل (Record) : ويمثل مجموعة مناسبة من الحقول المترابطة، تخص وحدة واحدة من موضوع جدول في قاعدة البيانات، والمعني بمعالجة البيانات المطلوبة.
3- الجدول (Table) : أما الجداول فإنها قد تمثل مجموعة محددة من القيود في قاعدة البيانات، مثال ذلك.
وهكذا قد تتكون قاعدة البيانات الواحدة من جدول واحد أو عدة جداول ترتبط مع بعضها البعض بعلاقة معينة ، وقد نستخدم أكثر من قاعدة بيانات وذلك حسب متطلبات النظام.
- تحديد نوع قاعدة البيانات : وهنا نختار القاعدة المناسبة حسب طبيعة النظام :
1- قواعد بيانات فردية (individual databases) : وهي مجموعة من الملفات الموحدة التي تستخدم بواسطة فرد واحد فقط. فمستخدمو الحواسيب الشخصية يستطيعون أن ينشئ كل واحد منهم قاعدة بيانات خاصة به، باستخدام برامج إدارة قواعد البيانات الشائعة المعروفة .وكذلك فإن هنالك قواعد بيانات فردية أخرى تخصص لمديري المعلومات الشخصية تساعدهم في متابعة وإدارة المعلومات التي يستخدمها بشكل يومي منتظم، مثل عناوين، ,أرقام هواتف، ووظائف، وملاحظات عامة.
2- قواعد بيانات متشاركة (Shared Databases) : وتسمى قاعدة الشركة أيضاً، وهذا النوع من القواعد يكون مشاركة بين العاملين في شركة ما، أو مؤسسة معينة، في موقع واحد. وقد تخزن الشركة، أو المؤسسة، ذات العلاقة بهذه القاعدة، البيانات في حاسوب خادم (Server ) كحاسوب من النوع الكبير (Mainframe) مثلاً. فالعاملون يدخلون إلى قاعدة البيانات عن طريق شبكة معلومات محلية (LAN) من خلال طرفيات أو حواسيب مصغرة . وغالباً ما تدار قاعدة الشركة هذه بواسطة جهة تسمى مدير قاعدة البيانات (Database Administrator/ DBA)، والذي يقوم بتنسيق النشاطات والاحتياجات ذات العلاقة بالقاعدة، وتحديد ميزات وأولويات الوصول إلى القاعدة، ويضع المواصفات والخطوط العامة للاستخدام، ويكون مسئولا عن أمن المعلومات والحفاظ عليها.
3- قواعد بيانات موزعة (Distributed Databases) : ويشتمل هذا النوع من القواعد على مجموعة من الحواسيب، تخزن فيها البيانات، في مواقع مختلفة، وترتبط مع بعضها بواسطة شبكة حواسيب الزبائن (Client/ Server Network). وتكون مواقع الحواسيب متباعدة أحياناً، عبر البحار مثلاً. كذلك فإن مثل هذه القواعد قد ترتبط بواسطة الإنترنت، كأن تكون شركة لها مركز عام، في موقع، وفروع موزعة في مواقع أخرى من العالم.
4- قواعد بيانات عامة (Public Databases) : هي عبارة عن قواعد متاحة إلى المستخدمين والمستفيدين من عامة الناس. فإذا ما كنت تفتش عن معلومة، أو معلومات محددة، مثلاً، فما عليك إلا أن تلجأ إلى متصفح (Browser) الذي ينفذ البحث في الشبكة العنكبوتية / الويب (Web) على الإنترنت، عادة. حيث يتحرى المستخدم في المئات من المواقع ليصل إلى المعلومات المطلوبة. وعلى هذا الأساس فإن العديد من هذه المواقع تمثل قواعد بيانات عامة. وهنالك العديد من قواعد البيانات العامة المجانية، مثل مواقع Yahoo أو AltaVista أو Amazon بينما هنالك قواعد متخصصة وبحثية يدخل إليها عامة المستخدمين باشتراكات خاصة لقاء أجور محددة .
- تحديد وتصميم الجداول :نقوم بعمل وصف للجداول التي يجب استخدامها ونحدد فيها اسم الحقل ونوع البيانات ونطاق البيانات (عدد الخانات) ووصف الحقل والرموز المستخدمة بهذا الحقل ، والتي قمنا بتحديدها في تصميم شاشات الإخراج Output Design والإدخال Design Input وكما في الجدول التالي :

وبعد ذلك نقوم بإنشاء جدول ملخص لتصميم قاعدة البيانات وندرج فيه ما يلي:

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

2- علاقة واحد إلى أكثر (One To Many)
هذا هو النوع الأعم من العلاقات وفيه تكون القيم في حقل المفتاح يناظرها قيمة أو أكثر في الحقل الغريب ((foreign key في الجدول الرئيسي و لكن أي قيمة في الحقل الغرب في الجدول الرئيسي يناظرها قيمة واحدة فقط في حقل المفتاح في الجدول الفرعي ويكون شكل العلاقة :

3- علاقة أكثر الى أكثر (Many To Many)
و فيه تكون القيم في حقل الربط في الجدول الثاني يناظرها قيم عديدة في الجدول الأول والعكس صحيح وهذا النوع من العلاقات لا يمكن حدوثه إلا بتعريف جدول جديد يسمي جدول الوسيط ، و يكون المفتاح في جدول الوسيط هو الحقلين الغريبين ( (foreign keyفي كلا الجدولين المراد ربطهما بهذا النوع من العلاقات وتعتبر العلاقة من نوع متعدد إلي متعدد هي حقيقة علاقتين من نوع واحد إلي متعدد مع جدول ثالث (الوسيط) .
مثال : جدول الطلبات و المنتجات بينهما علاقة من نوع متعدد إلي متعدد يتم عملها عن طريق جدول تفاصيل الطلبات. الطلب الواحد قد يكون فيها أكثر من منتج ، و كل منتج يكون موجود في عدة طلبات و لكن هنا العلاقة بين جدولي الطلبات و المنتجات تكون من خلال جدول الوسيط و الذي هو جدول تفاصيل الطلبات في هذه الحالة.
- تحسين تصميم قاعدة البيانات: بعد تصميم الاحتياجات من الجداول والحقول والعلاقات، يحين الوقت لدراسة تصميم القاعدة واكتشاف أي خلل لا يزال موجوداً، فمن الأسهل تغيير تصميم قاعدة البيانات الآن عنه بعد تعبئة الجداول بالبيانات. اختبر إمكانية استخدام قاعدة البيانات في الحصول على ما تريد من إجابات. أنشئ مسودات تجريبية للنماذج والتقارير واختبر إظهارها للمعلومات كما كنت تتوقع. ابحث عن التكرار غير الضروري للبيانات واستبعده.
مرحلة اختيار لغة أو لغات البرمجة الملائمة ونوع الشبكة والحماية والأجهزة اللازمة لهذا النظام : 1- تحديد نظم البرامج ولغاتها .لغة البرمجة هي لغة يتم كتابة البرامج بها ليقوم جهاز الحاسوب بتنفيذها. تقسم لغات البرمجة للحاسوب لعدة أجيال أو أنواع، وتقسم أحيانا بناء على الأغراض لهذه اللغة و تكون عملية البرمجة متبعة لقواعد محددة باللغة التي اختارها المبرمج.
وكل لغة لها خصائصها التي تميزها عن الأخرى و تجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج. كما أن للغات البرمجة أيضا خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات وجدت للتعامل مع الحاسوب.
وتتمتع كل لغة بتصميم خاص يختلف عن طريقة كل لغة في التعامل مع المعطيات, و عن طبيعة الطرق و التسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.
ويمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic, Fortran) وهي لغات تسلسلية، أساس بناؤها هو الإجراءات المطلوب تطبيقها على الأشياء والمتحولات. ولغات شيئية (C#,VB,C++, Java, Delphi) وهي لا تسلسلية، وتقوم على أساس العناصر والمتحولات المستخدمة ضمن البرنامج المطلوب تحويرها، من خلال تطبيق مجموعة معينة من الإجراءات عليها.
وهناك عدة معايير يجب إتباعها لاختيار لغة البرمجة المناسبة لبرمجة النظام وهي:
1- دعم OOP البرمجة غرضيه التوجه . أو البرمجة الشيئية القياسية .
2- المقروئية Readability وتنظيم اللغة
3- أمن اللغة Language Safe
4- سرعة تطوير التطبيق ((الإنتاجية))
5- سهولة اللغة
6- قابليه إعادة الاستخدام Reusability
7- التوسعية Extendibility
8- التخاطب مع نظم وتقنيات مختلفة ودعم التقنيات المختلفة
9- توفر مكتبه أدوات واسعة Wide Component Library
10- حجم التطبيق Application Size
11- دعم المجاري المتعددة Multi Threading
12- معالجه الاستثناءات exception handling
13- دعم GUI و graphics
14- الانتشار والتسويق والدعم الفني Marketing and Support
15- مكتبات زمن تشغيل (Run Time)
16- التكامل مع نظام التشغيل OS integrity
17- دعم الويب Web Supporting
18- مفتوحة المصدر Open Source
وبعد تحديد متطلبات النظام نقوم باختيار اللغة التي تتوفر فيها هذه المتطلبات المذكورة أعلاه.
2- تحديد الحماية والأمن وصلاحيات العاملين في النظام .الشبكات :• ما هي الشبكة :
يمكن تعريف الشبكة بأنها نظام اتصالات يقوم بربط الحواسيب والتجهيزات الطرفية مع بعضها البعض بهدف تقديم الخدمات الحاسوبية المختلفة . فالشبكة إذاً هي عبارة عن ربط بين الحواسيب المختلفة مع أدواتها وتطبيقاتها باستخدام برامج مخصصة للعمل الشبكي وذلك لإتاحة التشارك فيما بينها , حيث تتدفق المعلومات عبر الشبكة على شكل إشارات كهربائية يتم نقلها كحزم صغيرة من المعلومات بسرعات كبيرة جداً مثل الملفات، و الطابعة، و ماسح الصور, ويجب أن تنقل هذه الحزم بدرجة عالية من الدقة حتى تصل خالية من الأخطاء إلى الهدف المطلوب .
• أنواع الشبكات : يمكننا القول مبدئياً أن هناك نوعان من الشبكات :
- الأول يقوم على مبدأ الند- للند peer-to-peer , والثاني يقوم على مبدأ الزبون/ المزود client/server.
- بالنسبة للشبكات الند- للند فهي عبارة عن شبكات كمبيوتر محلية LAN مكونة من مجموعة من الأجهزة لها حقوق متساوية ولا تحتوي على مزود مخصص بل كل جهاز على الشبكة يستطيع تأدية وظائف الزبون والمزود بنفس الوقت , ويطلق على هذا النوع من الشبكات اسم مجموعة العمل Work group .
- أما في شبكات الزبون/ المزود يجب أن يوجد مخدم يسمى الكمبيوتر المركزي وهو الذي يوفر البرامج والبيانات وسائر موارد الشبكة لغيره من الأجهزة , بينما يسمى كل من الكمبيوترات التي تتصل به بالزبون . وتتطلب شبكات الزبون/المزود نظام تشغيل شبكي ولنقل مثل Windows 2000 Server .
- ولا بد من الإشارة إلى أن مصطلح مزود (مخدم) لا يدل بالضرورة على جهاز كمبيوتر , وإنما هو بالأصل برنامج (Soft Ware) يتولى إنجاز الخدمات الموكلة إليه . وبما أن هذا البرنامج سوف يقوم بتلبية متطلبات عدد كبير من البرامج على أجهزة أخرى , فإن الجهاز الذي يحوي ها البرنامج يجب أن يكون بمواصفات جيدة , بحيث تكون كافية لتلبية كافة الأجهزة الأخرى , ومن هنا تم إطلاق كلمة " مخدم" على الجهاز الذي يحوي برنامج المخدم .
- والشبكات لها أربع أنواع مشهورة , وكل نوع من هذه الأنواع له ميزة خاصة ولا يصلح أن يحل نوع مكان آخر , وهذه الأنواع هي :
1- الشبكات المحلية LANs :
تتقيد الشبكة المحلية LAN بمكان واحد مثل بناية أو بنايات متجاورة وتتميز برخص وتوفر المعدات اللازمة لها .
2- الشبكات الإقليمية MAN :
صممت لنقل البيانات عبر مناطق جغرافية شاسعة ولكنها ما تزال تقع تحت مسمى المحلية , وهي تصلح لربط مدينة أو مدينتين متجاورتين , ويستخدم في ربط هذا النوع من الشبكات الألياف البصرية أو الوسائل الرقمية فهذه التقنية تقدم سرعات فائقة . وشبكة MAN يمكن أن تحتوي على عدد من شبكات LANs , وتتميز بالسرعة والفاعلية ولكن عيوبها مكلفة وصيانتها صعبة .
3- شبكات المناطق الواسعة WANs :
وهي تغطي مساحات كبيرة جداً مثل ربط الدول مع بعضها البعض , ومن ميزات هذه الشبكة أنها تربط آلاف الأجهزة وتنقل كمية ضخمة من البيانات , ومن عيوبها أنها تحتاج إلى برامج وأجهزة مكلفة جداً بالإضافة إلى صعوبة تشغيلها وصيانتها .
4- الإنترنت :
الإنترنت بالمفهوم العام هي شبكة عالمية تقوم بربط آلاف الشبكات الأخرى , أي ملايين من أجهزة الكمبيوتر المختلفة في الأنواع والأحجام حول العالم . وهي تعتبر أهم وسيلة يستخدمها الأفراد والمؤسسات للتواصل وتبادل المعلومات فيما بينهم .
ويتكون العمود الفقري للإنترنت (The backbone of the Internet) من خطوط اتصالات تنقل البيانات بسرعة عالية , وتربط العقد وأجهزة الكمبيوتر المضيفة (host computers) الرئيسية مع بعضها , وعبر هذه الخطوط تتم حركة البيانات بكميات كبيرة وجدير بالذكر أن موفري خدمة الإنترنت الرئيسيين هم الذين يمتلكون أكثر الشبكات التي تشكل عند اتصالها معاص خطوطاً سريعة لنقل البيانات حول العالم , وهذه الخطوط السريعة هي التي تشكل العمود الفقري للإنترنت .
ولا يمكن لأي جهة أن تعطل الإنترنت على مستوى العالم بأكمله , إذ ليس هنالك عقدة واحدة أو كمبيوتر واحد يتحكم بالإنترنت , فقد تتعطل عقدة واحدة أو أكثر دون تعريض الإنترنت بمجملها للخطر ودون أن تتوقف الاتصالات عبرها . وبالمقابل تتفاوت مناطق العالم في احتمال تعرض خدمة الإنترنت فيها للأعطال إذ يضم العمود الفقري للإنترنت أعداداً متفاوتة من النقاط الفائضة في المناطق المختلفة , فإذا تعطل جزء من الإنترنت فإنه يمكن إعادة توجيه المعلومات بسرعة عبر مسار آخر , وتدعى هذه الميزة الفائضية (Redundancy) وكلما زادت درجة الفائضية في مكان ما زادت موثوقية خدمة الإنترنت فيه.
ويستخدم لتعريف الجهاز في الشبكة رقم IP , طوله 32 بت , , وهو يشبه كثيراً رقم الهاتف , فكل جهاز يدخل إلى الشبكة يكون له رقم منفرد لا يملكه جهاز آخر , فلا يكون لجهازين في العالم كله الرقم نفسه في وقت واحد , وإلا لما أمكنهما رؤية بعضهما وتبادل الاتصال فيما بينهما . ولا بد من الإشارة إلى أن رقم IP ينقسم إلى قسمين رقم لتحديد الشبكة ورقم لتحديد عنوان الحاسب على هذه الشبكة.
وبروتوكول الإنترنت IP في الجهاز المرسل يأخذ البيانات من طبقة المضيف ومن ثم يحولها إلى مجموعة من الحزم (packets) ثم يرسلها , وبروتوكول الإنترنت IP في الجهاز المستقبل يقوم بإعادة جمع هذه الحزم وتحويلها إلى أجزاء البيانات الأصلية , وكل حزمة من هذه الحزم تحوي عنوان بروتوكول الإنترنت IP للجهاز المرسل وللجهاز المستقبل.
امن والحماية وسرية البيانات :من من منظور نظام التشغيل يعنى: التحقق من المستخدمين قبل السماح بالوصول، تصنيف مستوى السماحية بالوصول الذي يملكه المستخدم، و تحجيم مستوى الوصول تبعا للسياسة التي يحددها مدير النظام.
إن أول خطوة في كتابة أي سياسة أمنية هو تحليل المخاطر و دراستها, إن تحليل المخاطر يعني دراسة ماذا تريد أن تحمي ضمن شبكتك و من ماذا تريد حمايته و كيف ستتم حمايته, وهذا يعني تحديد المخاطر و وضعها ضمن مستويات و درجات و طرق تجنبها و مواجهتها عند حدوثها.
- خطوات كتابة سياسة أمنية :
الهدف :
قبل الشروع بكتابة سياستك الأمنية يجب أن يكون لديك فكرة واضحة عن أهداف هذه السياسة .
المدى :
و هو ما ستقوم بحمايته بواسطة سياستك الأمنية و هذا يشمل ذكر كل المجالات اللازمة للحماية انطلاقا من الحماية الفيزيائية حتى الشخصية ومدى شمولية هذه السياسة من مدراء ومستخدمين وحتى زوار .
المناقشة و دعم الإدارة العليا :
بعد كتابة الهدف وأفق السياسة يجب إطلاع الإدارة العليا عليها وأخذ الموافقة والنقاش معهم حول طرق تحقيق هذه السياسة .
الإطلاع على سياسات أخرى :
ينصح قبل الشروع بكتابة السياسة الأمنية الخاصة بك أن تطلع على سياسات عامة لشركات أخرى و تجارب الشركات الأخرى في هذا المجال .
تقدير المخاطر :
أين تتجه المخاطر والاعتداءات في بيئة المعلومات ؟؟
قبل كتابة السياسة يجب عليك تحديد المخاطر المتوقعة و طرق مواجهتها . وتطال المخاطر والاعتداءات في بيئة المعلومات أربعة مواطن أساسية هي مكونات تقنية المعلومات في احدث تجلياتها :-
الأجهــزة :-
وهي كافة المعدات والأدوات المادية التي تتكون منها النظم ، كالشاشات والطابعات ومكوناتها الداخلية ووسائط التخزين المادية وغيرها .
البرامــج :-
وهي الأوامر المرتبة في نسق معين لانجاز الإعمال ، وهي إما مستقلة عن النظام أو مخزنة فيه .
المعطيـات :-
إنها الدم الحي للأنظمة ، وتشمل كافة البيانات المدخلة والمعلومات المستخرجة عقب معالجتها ، وتمتد بمعناها الواسع للبرمجيات المخزنة داخل النظم . والمعطيات قد تكون في طور الإدخال أو الإخراج أو التخزين أو التبادل بين النظم عبر الشبكات ، وقد تخزن داخل النظم أو على وسائط التخزين خارجه .
الاتصـالات :-
وتشمل شبكات الاتصال التي تربط أجهزة التقنية بعضها بعض محليا ونطاقيا ودوليا ، وتتيح فرصة اختراق النظم عبرها كما أنها بذاتها محل للاعتداء وموطن من مواطن الخطر الحقيقي.
ومحور الخطر ، الإنسان ، سواء المستخدم أو الشخص المناط به مهام تقنية معينة تتصل بالنظام ، فإدراك هذا الشخص حدود صلاحياته ، وإدراكه آليات التعامل مع الخطر ، وسلامة الرقابة على أنشطته في حدود احترام حقوقه القانونية ، مسائل رئيسة يعنى بها نظام الأمن الشامل ، تحديدا في بيئة العمل المرتكزة على نظم الكمبيوتر وقواعد البيانات.
تحديد مكونات السياسة و كتابتها : يعتمد ذلك على دراسة المخاطرة و ليس من الضروري وضع كل المكونات السابقة عند كتابة سياسة أمنية .
التقييم :
بعد أن تكتب السياسة عليك القيام بتقييمها , و تساعدك الأسئلة التالية في تقييم سياستك:
• هل تتوافق سياستك مع القانون .
• هل تقيد نفوذ موظفيك .
• هل هي قابلة للتطبيق العملي .
• هل تعرف كل الأشكال المختلفة للاتصالات
- أسس أي سياسة أمنية :
كلنا يعلم أن كتابة سياسة أمن للشبكات لها خصوصيتها و لكن لا يخلو الأمر من بعض الأساسيات التي لا بد أن تشترك بها كل سياسة أمنية بغض النظر كانت السياسة تهدف لحماية المعلومات أو حماية الشبكات.
الحماية الفيزيائية :
هناك تداخل كبير بين حماية الشبكة و الحماية الفيزيائية لان هيكلية شبكة مؤسسة ما قد تمتد لتشمل بناء كامل, مدينة , دولة و حتى العالم كله و عليه فإننا نحتاج لحماية فيزيائية لمحتويات الشبكة الفيزيائية من كابلات و موجهات …الخ و بدون الحماية الفيزيائية لن يكون هناك أي معنى للكلام عن مبادئ سرية الشبكات مثل التكاملية و الموثوقية .عندما نتحدث عن الحماية الفيزيائية هذا يعني أن نكتب و نوجد طرق حماية الموارد الفيزيائية من قطع هاردوير و تحديد الأشخاص المسؤولين عن الحماية و الأشخاص المسؤولين عن منح السماحيات للأشخاص الذين يدخلون غرف السيرفر و غرف تمديد الأسلاك .
حماية الشبكة :
تعنى حماية الشبكة بحماية تمديدات الشبكة و أسلاكها و يشمل هذا القسم وجود أدوات قياس و مراقبة للوصول و مثل على تلك الأدوات وجود جدار ناري, مراقبة الشبكة, تقييد خدمات مثل الوصول عن بعد , خدمات مشاركة الملفات, خدمات الانترنت .
التحكم بالوصول :
يهتم هذا القسم بتحديد هوية من يدخل الشبكة و إلى أين يدخل و ما هو سبب دخوله و يجب أن توجد إجرائية واضحة للتأكد من أن الأشخاص الحقيقيين هم الذين يمتلكون حق الوصول للخدمات و المعلومات الخاصة بهم دون غيرهم و بالتالي يجب أن تكون السياسة قادرة على منح المديرين المرونة الكافية لمنح الصلاحيات للمستخدمين و التحكم بها منعا لحدوث أخطاء .
التأكد من الهوية :
يعنى التأكد من الهوية بكيفية اختبار المستخدمين فيما إذا أنهم فعلا المستخدمين الحقيقيين , إن طرق التحقق من الهوية تتراوح من وجود رقم معرف و كلمة سر خاصة بكل مستخدم إلى طرق التأكد التي تعتمد على معدات هاردويرية مثل التأكد عن طريق بطاقات ممغنطة أو التأكد من البصمة و حدقة العين و طبعا يتراوح استخدام هذه التقنيات حسب الأهمية و الحاجة .
التشفير :
يعتبر التشفير أحد الأمور الهامة لتحقيق تكامل المعطيات و يقصد بتكامل المعطيات حماية المعطيات المرسلة عبر الشبكة و من التعديل و التزوير و غالباً ما يكون التشفير ضروريا عندما يتم نقل المعلومات لمستخدمين بعيدين أو عند دخول أحد المستخدمين عن بعد لجهاز ما و خاصة في ظل وجود شبكة انترانت .
إدارة المفتاح :
إن كل عملية تشفير تتطلب وجود مفتاح و لذلك يجب أن تحدد عدة أمور هامة عند اختيار المفتاح :
• ما هو طول المفتاح .
• كل متى ستغير المفتاح .
• متى و كيف يتم توليد المفتاح .
• من و كيف بتم توزيع المفتاح .
المراقبة و المراجعة :
ما إن تقوم بوضع سياستك الأمنية لشبكتك و تنفذها عليك بعد فترة التأكد من أن المكونات و الموظفون يطبقون و يلتزمون هذه السياسة و يتم ذلك بمراقبة تطبيق هذه السياسة, تفيد السياسة في التعرف على المشاكل و التنبؤ بها قبل حدوثها و يجب مراجعة السياسة باستمرار للتأكد من استمرار فعاليتها .
خطة طوارئ :
يجب أن تحتوي سياستك على قسم يشرح الإجراءات الواجب اتخاذها في حال حدوث كارثة و بالتالي عليك تحديد كيفية و توقيت استرجاع البيانات عند حدوث هجوم يؤدي لضررها و تحديد كيفية صد هجوم و كيفية حفظ النسخ الاحتياطية و مكانها و المسؤولون عليها .
السياسة الشخصية :
يحدد هذا القسم السياسة الشخصية لكل مستخدم لديك على الشبكة و ما هي السماحيات التي يملكها على موارد الشبكة مثل الطابعة و الانترنت و يجب تحديد السماحيات بدقة مثل سماحيات استخدام الألعاب , استخدام البريد الالكتروني, تصفح الانترنت و استخدام ما سبق للفائدة الشخصية .
سرية البرامج :
يجب تحديد نوعية البرامج التي تم تنزيلها على السيرفر وهل هي تجارية أو غير تجارية , موثقة أم غير موثقة بالإضافة لتقييد تحميل البرامج من الانترنت وتنصيبها على السيرفر مباشرة.
-
ختيار وتحديد الأجهزة اللازمة للنظام وتحديد كلفتها :ونحدد هنا متطلبات الأجهزة ومتطلبات الحفظ . والأجهزة الطرفية والطابعات ومتطلبات الاتصال (الشبكة) .
إن الأجهزة التي سيتم توريدها وتركيبها في المشروع يجب أن تلبي متطلبات تشغيل جميع الأنظمة المطلوب تطويرها. وتشمل مواصفات الأجهزة على التفاصيل التالية :
خصائص المعالج المركزي: سرعته وعدد العمليات في الثانية التي يمكن أن يقوم بها.
- الذاكرة الرئيسية.
- سعة قنوات الدخل والخرج.
- سعة وسائط حفظ البيانات (الأقراص المغناطيسية)
- خصائص محركات الأقراص وعددها.
- خصائص شبكة الاتصالات.
- عدد الشاشات والأجهزة وخصائصها.
- وصف الطابعات وخصائصها
- وصف بإمكانيات التوسع المستقبلي
- خصائص أخرى متعلقة بالأجهزة والتجهيزات .
- مواصفات التمديدات وتجهيز المواقع :
ويشمل ذلك مخططات لتوصيلات الشاشات والطابعات ، ومواصفات تمديدات شبكة المعلومات. كذلك يشمل ذلك مواصفات تجهيز المواقع من حيث متطلبات الطاقة الكهربائية أو متطلبات الطاقة الكهربائية أو متطلبات التبريد إذا لزم .
- متطلبات القوى البشرية وبرامج التدريب :
ويعطي هذا الفصل بيانا تفصيليا بأعداد المختصين الذين يتطلبهم مشروع نظم المعلومات مع وصف بمؤهلات وخبرات كل فرد منهم. كذلك ينبغي توفر جدول زمني يبين خطة التوظيف . أما برامج التدريب فيجب أن تشمل تدريب المختصين على تشغيل النظم وصيانتها وتعديلها وتطويرها ، وكذلك تدريب المستخدمين على استخدام النظم التي تخدمهم .
وهنا تكون قد اكتملت مرحلة التصميم ويجب علينا إعداد تقرير نهائي ملخص يتضمن ما يلي:
1- تصاميم الواجهات ونوافذ المستخدم User Interface.
2- تصاميم شاشات الإخراج Output Design والإدخال Design Input.
3- تصاميم شاشات الاستفسار والتقارير.
4- تحديد نوع قاعدة البيانات وتحديد كلفتها.
5- اختيار لغة البرمجة المناسبة.
6- تحديد نوع الشبكة وتكلفتها.
7- تحديد نوع الأمن والحمية وتكلفته.
8- تحديد الأجهزة اللازمة للنظام وتحديد كلفتها.
وبعد موافقة الإدارة على التقرير النهائي لمرحلة التصميم ننتقل إلى مرحلة الترميز.
والى اللقاء في المرحلة القادمة وهي مرحلة الترميز .
حررت من قبل:
jbsa في
الأحد,15/ذو الحجة/1431 هـ,05:31 صباحاً