لماذا UML ؟, لما وراء ذلك.......
:: منتديات التصميم و البرمجة :: منتدى برمجة الألعاب والجرافيكس والتصميم :: قسم : برمجة الألعاب والجرافكس العام
صفحة 1 من اصل 1
لماذا UML ؟, لما وراء ذلك.......
ندخل في صلب الموضع...
-------------------------------------------------
لماذا UML ؟ ( لما وراء ذلك.....)
المقدمة:
كثير ما نكون منقادين بالتكنولوجيا لاسباب غريبة حقا . ولا نعرف لماذا نستخدم الشيء او حتى لماذا ليس غيره!!!
لذا
اجد الكثير من المطورين يعمل البرنامج ومن ثم يكتب الملاحظات، او ينتهي من
عمل البرنامج ومن ثم يرسم UML مع الأسف....هذه الظواهر تدل على اننا
نستخدم الشيء ونحن لا نعرف لماذا...!!!
لذلك يجب ان يسأل الشخص دائما في كل شيء يتعلمه ثلاث اسئلة:
- ما هو الشيء الذي سأتعلمه؟
- لماذا هذا بالذات ؟
- كيف أتعلم ؟
ودائما
هذه الاسئلة تسأل في أغلب الحالات في التعليم والحياة العملية. لأن الشخص
الذي يستطيع ان يكتب ولا يعرف لماذا هو يكتب او لماذا تعلم الكتابة؟ فلن
يستطيع الانتاج لانه وبكل بساطة يعرف ولا يعرف لماذا يعرف!!!
البداية:
لكي نجيب عن السؤال لماذا UML ؟ يجب ان نجيب على الاسئلة:
- ماهو UML ؟؟
- لماذا UML ؟؟
- كيف نعمل UML ؟؟
ماهو UML ؟سنبدا
الان بشيء من التاريخ وهو تاريخ النمذجة لماذا ظهرت النمذجة.... في علم
المتطلبات كانت هناك مشاكل قائمة بين المستخدم والمطور على مدى العصور
سواء على مستوى الميكانيكا او الكهرباء ومن ثم الحاسب.
كان دائما
هناك الفراغ بين المستخدم والمطور. فالمطور بسبب علمه يعتقد ان الناس من
حوله قريبين في مستوى المعرفة والذوق وحتى لو لم يعتقد ذلك فهو لا يقدر
حجم المسافة بين الاثنين...
لذا لجأ المهندسون الى وسائل عديدة
للتقليل من هذه الفجوة. وبدأت النمذجة بالظهور. فكان المهندس يجمع
المتطلبات ويأتي بقطعة تشبه المشروع الكامل للمستخدم ليتاكد ان ما يفعله
صحيح قبل الشروع في المشروع الرئيسي.
نعود للحاسب وهندسة
البرمجيات. فنحن نطبق القواعد الهندسية على بناء البرامج. ولكن المسألة
هنا معقدة للغاية فالبرامج تتجه نحو التعقيد والصعوبة يوما بعد يوم.
والحجم يزيد ويتضخم ويمس اعداد اكثر من المستخدمين. لذا نعتقد ان كلما
احسن الفريق العمل في جمع المتطلبات كلما زادت نسبة نجاح البرنامج.
لذا كيف نبين فهمنا للمتطلبات ( متطلبات المستخدم) ؟
وجدت لغات النمذجة لسببين:
- لنبين مدى فهمنا للمشروع او النظام.
- لتمثيل النظام بلغة دقيقة تفسر تفسيرا واحدا.
اذا
فنحن ننمذج النظام لنبين لانفسنا مدى فهمنا للنظام. وبالفعل متى ما عملت
نموذج للنظام تستطيع ان ترى مالذي كنت تعنيه عندما نقلت عن المستخدم
العبارة "اريد برنامجا سريعا" !!!
ترى هل ماهو سريع بالنسبة لك هو كذلك بالنسبة لي؟؟؟
نعود الان بعدما فهمنا سبب وجود النمذجة نفهم ماهو UML ؟
UML ===> Unified Modeling Language
أو لغة النمذجة الوحدة...
ماذا
يعني ذلك؟؟؟ يعني ان هناك لغات توحدت داخل هذه اللغة وانها لغة تختص
بالنمذجة. وهذا صحيح فلقد كان المطورون يفكرون بطريقة تسلسلية دالية
Functional Orientation .
لتوضيح لذلك. يجب ان يعرف القارئ الفرق بين التصميم لكائني المنحى والدالي المنحنى
Object Oriented and Functional Oriented. وليس هذا مكان للتوسع في هذا الموضوع.
ولكن
باختصار عندما كان المهندسون يفكرون بطريقة دالية اي انهم كانوا يقسمون
النظام الى عدة اجرائات او دوال وكان البرنامج يعمل بطريقة تسلسلية. فكل
البرنامج يدور حول المعلومات و العمليت التي تعمل عليها.
لذا ظهر
ما يسمى بالـ DFD (Data Flow Diagram) and ERD (Entity Relationship
Diagram) and وهي بالعربية نموذج سير المعلومات و نموذج الكائنات
والعلاقات.
بعد ذلك عندما ظهرت اساسيات الكائنية المنحى OO اكتشف
المطورين ان الطرق القديمة لا تنفع لنمذجة الانظمة بالطرق التقليدية .
وكانت هناك محاولات عديدة مثل OMG وغيرها حتى ظهرت UML لتجمعهم في لغة
واحدة وكان بوخ وجاسكوبسون ( يعقوب) و رامبو باخراج الابداع الذ نعرف بالـ
UML.
لكن وجود UML لا يعني ابدا باي شكل من الاشكال انها الافضل ولكنها مناسبة!!!
الان نعود للسؤال المهم لماذا UML ؟؟
بكل بساطة UML تقدم ثلاث نظرات على النظام:
1- نظرة على العمليات.
2- نظرة على التركيب.
3- نظرة على التصرف.
نظرة على العمليات:
تقدم UML نموذج يدعى Use Case Diagram. هذا النموذج يقدم طريقة لشرح الخدمات والعمليات التي يقدمها النظام وعلاقتها مع المستخدم.
مثال: في نظام التسجيل الجامعي ( المستخدم "الطالب" يستطيع تسجيل المادة).
نظرة على التركيب:
تقدم
UML نموذج يدعى Class Model. هذا النموذج يقدم طريقة لشرح كيف هي اشكال
المعلومات في النظام . وتقدم على شكل "كلاسات" وكل كلاس يحوي صفات و
تصرفات.
مثال: في نظام بنكي ( كلاس الحساب يحوي الصفات "رقم الحساب و تاريخ فتحه" ويتصرف بعدة طرق مثل "الايداع والسحب" ).
نظرة على التصرف:
تقدم
UML نموذج يدعى State Transition Diagram. وهذا النموذج يشرح النظام على
طريقة الحالات State وكل حالة تقود الى حالة اخرى بسبب تحفيز المستخدم
للنظام.
مثال: في برنامج منبه للصلاة ( يكون البرنامج في حالة خمول
يطلب المستخدم "البداية" وينتقل الى حالة العد التنازلي حتى يصل الى الصفر
وينتقل الى حالة تشغيل الاذان).
هل يكفي هذا ؟
بالطبع
لا!! فلكي تكتمل لغة النمذجة يجب ان نستطيع ان نربط بين النظرات لكي تكتمل
عندنا نظرة كاملة على النظام. لذا تقدم UML اشياء اخرى مثل Flow of events
and sequence Diagram ليس هنا مجال لذكرها الان.
حتى الان كلام جميل ولكن نبقى ونسأل لماذا UML بالذات ؟
اولا ماذا يعني وجود لغات نمذجة اخرى غير UML ؟ معناه انها صالحة وخناك من يستخدمها ويعرف انها صالحة.
ولكن الاختيار للـ UML يقوم على وجوه عديدة:
- انها لغة تنمذج النظام على ثلاث نظرات لكي تعطي تصور كامل.
- لغة مبنية على اساس كائني المنحى.
- نماذجها سهلة القراءة ولا تعي الا شيئا واحدا دائما (فاذا قرات النموذجمرة او اكثر فستصل دائما لنفس المعنى).
- بقينا ان UML تربط النظرات الثلاث بطرق مهمة بغية التأكد من تكامل هذه النظرات.
عملية حسابية بسيطة:
لو
قلنا ان عندنا ثلاث اشخاص كل واحد منهم كلف بنظرة معينة على النظام ومن ثم
اجتمعوا ليكونوا النظام الكامل. ولنفرض ان احتمال ان يفقد احدهم متطلبا من
متطلبات المستخدم او لا يفهمه هي 0.1
وبما ان الثلاث النظرات لا تعتمد
على بعض فيكون عندنا احتمالية ان ننسى او نخطء في فهم متطلب من متطلبات
المستخدم هي 0.1 * 0.1 * 0.1 = 0.001.
فما رأيك الان!!! هل عرفت الان لماذا UML.....!!!
بقينا لشيء واحد الان
كيف نتعلم UML؟
هذا ليس موضوع حديثنا الان وله مكانه ان شاء الله ولكن افضل طريقة لتعلمها الذعاب الى كتب المؤلفين (اعني مولفي UML).
ولكن من هنا الى أين ؟
لا
أدري ولكن قد تخرج لغات غير UML وتسود. اهم شيء يجب ان نبقى متجهين نحو
الافكار والمبادئ وليس التكنولوجيا فالتكنولوجيا تتغير كل دقيقة وتبقى
الافكار دائما. فالنمذجة هي المهمة لا يهم انرسمها ام نتلفظ . تتغير الطرق
والفكرة واحدة.
-------------------------------------------------
لماذا UML ؟ ( لما وراء ذلك.....)
المقدمة:
كثير ما نكون منقادين بالتكنولوجيا لاسباب غريبة حقا . ولا نعرف لماذا نستخدم الشيء او حتى لماذا ليس غيره!!!
لذا
اجد الكثير من المطورين يعمل البرنامج ومن ثم يكتب الملاحظات، او ينتهي من
عمل البرنامج ومن ثم يرسم UML مع الأسف....هذه الظواهر تدل على اننا
نستخدم الشيء ونحن لا نعرف لماذا...!!!
لذلك يجب ان يسأل الشخص دائما في كل شيء يتعلمه ثلاث اسئلة:
- ما هو الشيء الذي سأتعلمه؟
- لماذا هذا بالذات ؟
- كيف أتعلم ؟
ودائما
هذه الاسئلة تسأل في أغلب الحالات في التعليم والحياة العملية. لأن الشخص
الذي يستطيع ان يكتب ولا يعرف لماذا هو يكتب او لماذا تعلم الكتابة؟ فلن
يستطيع الانتاج لانه وبكل بساطة يعرف ولا يعرف لماذا يعرف!!!
البداية:
لكي نجيب عن السؤال لماذا UML ؟ يجب ان نجيب على الاسئلة:
- ماهو UML ؟؟
- لماذا UML ؟؟
- كيف نعمل UML ؟؟
ماهو UML ؟سنبدا
الان بشيء من التاريخ وهو تاريخ النمذجة لماذا ظهرت النمذجة.... في علم
المتطلبات كانت هناك مشاكل قائمة بين المستخدم والمطور على مدى العصور
سواء على مستوى الميكانيكا او الكهرباء ومن ثم الحاسب.
كان دائما
هناك الفراغ بين المستخدم والمطور. فالمطور بسبب علمه يعتقد ان الناس من
حوله قريبين في مستوى المعرفة والذوق وحتى لو لم يعتقد ذلك فهو لا يقدر
حجم المسافة بين الاثنين...
لذا لجأ المهندسون الى وسائل عديدة
للتقليل من هذه الفجوة. وبدأت النمذجة بالظهور. فكان المهندس يجمع
المتطلبات ويأتي بقطعة تشبه المشروع الكامل للمستخدم ليتاكد ان ما يفعله
صحيح قبل الشروع في المشروع الرئيسي.
نعود للحاسب وهندسة
البرمجيات. فنحن نطبق القواعد الهندسية على بناء البرامج. ولكن المسألة
هنا معقدة للغاية فالبرامج تتجه نحو التعقيد والصعوبة يوما بعد يوم.
والحجم يزيد ويتضخم ويمس اعداد اكثر من المستخدمين. لذا نعتقد ان كلما
احسن الفريق العمل في جمع المتطلبات كلما زادت نسبة نجاح البرنامج.
لذا كيف نبين فهمنا للمتطلبات ( متطلبات المستخدم) ؟
وجدت لغات النمذجة لسببين:
- لنبين مدى فهمنا للمشروع او النظام.
- لتمثيل النظام بلغة دقيقة تفسر تفسيرا واحدا.
اذا
فنحن ننمذج النظام لنبين لانفسنا مدى فهمنا للنظام. وبالفعل متى ما عملت
نموذج للنظام تستطيع ان ترى مالذي كنت تعنيه عندما نقلت عن المستخدم
العبارة "اريد برنامجا سريعا" !!!
ترى هل ماهو سريع بالنسبة لك هو كذلك بالنسبة لي؟؟؟
نعود الان بعدما فهمنا سبب وجود النمذجة نفهم ماهو UML ؟
UML ===> Unified Modeling Language
أو لغة النمذجة الوحدة...
ماذا
يعني ذلك؟؟؟ يعني ان هناك لغات توحدت داخل هذه اللغة وانها لغة تختص
بالنمذجة. وهذا صحيح فلقد كان المطورون يفكرون بطريقة تسلسلية دالية
Functional Orientation .
لتوضيح لذلك. يجب ان يعرف القارئ الفرق بين التصميم لكائني المنحى والدالي المنحنى
Object Oriented and Functional Oriented. وليس هذا مكان للتوسع في هذا الموضوع.
ولكن
باختصار عندما كان المهندسون يفكرون بطريقة دالية اي انهم كانوا يقسمون
النظام الى عدة اجرائات او دوال وكان البرنامج يعمل بطريقة تسلسلية. فكل
البرنامج يدور حول المعلومات و العمليت التي تعمل عليها.
لذا ظهر
ما يسمى بالـ DFD (Data Flow Diagram) and ERD (Entity Relationship
Diagram) and وهي بالعربية نموذج سير المعلومات و نموذج الكائنات
والعلاقات.
بعد ذلك عندما ظهرت اساسيات الكائنية المنحى OO اكتشف
المطورين ان الطرق القديمة لا تنفع لنمذجة الانظمة بالطرق التقليدية .
وكانت هناك محاولات عديدة مثل OMG وغيرها حتى ظهرت UML لتجمعهم في لغة
واحدة وكان بوخ وجاسكوبسون ( يعقوب) و رامبو باخراج الابداع الذ نعرف بالـ
UML.
لكن وجود UML لا يعني ابدا باي شكل من الاشكال انها الافضل ولكنها مناسبة!!!
الان نعود للسؤال المهم لماذا UML ؟؟
بكل بساطة UML تقدم ثلاث نظرات على النظام:
1- نظرة على العمليات.
2- نظرة على التركيب.
3- نظرة على التصرف.
نظرة على العمليات:
تقدم UML نموذج يدعى Use Case Diagram. هذا النموذج يقدم طريقة لشرح الخدمات والعمليات التي يقدمها النظام وعلاقتها مع المستخدم.
مثال: في نظام التسجيل الجامعي ( المستخدم "الطالب" يستطيع تسجيل المادة).
نظرة على التركيب:
تقدم
UML نموذج يدعى Class Model. هذا النموذج يقدم طريقة لشرح كيف هي اشكال
المعلومات في النظام . وتقدم على شكل "كلاسات" وكل كلاس يحوي صفات و
تصرفات.
مثال: في نظام بنكي ( كلاس الحساب يحوي الصفات "رقم الحساب و تاريخ فتحه" ويتصرف بعدة طرق مثل "الايداع والسحب" ).
نظرة على التصرف:
تقدم
UML نموذج يدعى State Transition Diagram. وهذا النموذج يشرح النظام على
طريقة الحالات State وكل حالة تقود الى حالة اخرى بسبب تحفيز المستخدم
للنظام.
مثال: في برنامج منبه للصلاة ( يكون البرنامج في حالة خمول
يطلب المستخدم "البداية" وينتقل الى حالة العد التنازلي حتى يصل الى الصفر
وينتقل الى حالة تشغيل الاذان).
هل يكفي هذا ؟
بالطبع
لا!! فلكي تكتمل لغة النمذجة يجب ان نستطيع ان نربط بين النظرات لكي تكتمل
عندنا نظرة كاملة على النظام. لذا تقدم UML اشياء اخرى مثل Flow of events
and sequence Diagram ليس هنا مجال لذكرها الان.
حتى الان كلام جميل ولكن نبقى ونسأل لماذا UML بالذات ؟
اولا ماذا يعني وجود لغات نمذجة اخرى غير UML ؟ معناه انها صالحة وخناك من يستخدمها ويعرف انها صالحة.
ولكن الاختيار للـ UML يقوم على وجوه عديدة:
- انها لغة تنمذج النظام على ثلاث نظرات لكي تعطي تصور كامل.
- لغة مبنية على اساس كائني المنحى.
- نماذجها سهلة القراءة ولا تعي الا شيئا واحدا دائما (فاذا قرات النموذجمرة او اكثر فستصل دائما لنفس المعنى).
- بقينا ان UML تربط النظرات الثلاث بطرق مهمة بغية التأكد من تكامل هذه النظرات.
عملية حسابية بسيطة:
لو
قلنا ان عندنا ثلاث اشخاص كل واحد منهم كلف بنظرة معينة على النظام ومن ثم
اجتمعوا ليكونوا النظام الكامل. ولنفرض ان احتمال ان يفقد احدهم متطلبا من
متطلبات المستخدم او لا يفهمه هي 0.1
وبما ان الثلاث النظرات لا تعتمد
على بعض فيكون عندنا احتمالية ان ننسى او نخطء في فهم متطلب من متطلبات
المستخدم هي 0.1 * 0.1 * 0.1 = 0.001.
فما رأيك الان!!! هل عرفت الان لماذا UML.....!!!
بقينا لشيء واحد الان
كيف نتعلم UML؟
هذا ليس موضوع حديثنا الان وله مكانه ان شاء الله ولكن افضل طريقة لتعلمها الذعاب الى كتب المؤلفين (اعني مولفي UML).
ولكن من هنا الى أين ؟
لا
أدري ولكن قد تخرج لغات غير UML وتسود. اهم شيء يجب ان نبقى متجهين نحو
الافكار والمبادئ وليس التكنولوجيا فالتكنولوجيا تتغير كل دقيقة وتبقى
الافكار دائما. فالنمذجة هي المهمة لا يهم انرسمها ام نتلفظ . تتغير الطرق
والفكرة واحدة.
مواضيع مماثلة
» خمسة أطعمة هي السر وراء ذكاء الأطفال!
» لماذا يخاف الأطفال من الظلام؟؟؟؟؟؟
» لماذا نقول للطفل الرضيع اغه ؟؟؟ ...حذاري منها
» لماذا يخاف الأطفال من الظلام؟؟؟؟؟؟
» لماذا نقول للطفل الرضيع اغه ؟؟؟ ...حذاري منها
:: منتديات التصميم و البرمجة :: منتدى برمجة الألعاب والجرافيكس والتصميم :: قسم : برمجة الألعاب والجرافكس العام
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى