المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : في دورة هندسة البرمجيات:الدرس الثاني:" في حياة التطوير المشروع"...


المهره الأصيله
05-22-2007, 08:43 PM
بسم الله الرحمن الرحيم


الدرس الثاني:
"دورة حياة تطوير المشروع في دورة هندسة البرمجيات"



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



مقدمة:
عملية بناء أي منتج تمر بعدة مراحل يطلق عليها عادة "دورة الحياة" Life Cycle، ومما تعلمنا في الدرس السابق فإن دروة حياة تطوير أي نظام برمجي Software development life cycle تتضمن المراحل التالية:
1. تحديد وتعريف المتطلبات Requirements analysis and definition
2. تصميم النظام System design
3. تصميم البرنامج Program design
4. كتابة البرنامج (تطويره) Program implementation
5. أختبار وحدات البرنامج Unit testing
6. أختبار النظام system testing
7. تسليم النظام system delivery
8. الصيانة maintenance



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



أنماط دورة الحياة Lifecycle Models:


النموذج الانحداري Waterfall Model
في هذا النموذج تسير دورة الحياة بشكل تدريجي بدأ من الخطوة (1) وحتى الخطوة (8)، وكما يظهر بالشكل (1) فإن كل مرحلة تبدأ بعد الأنتهاء من المرحلة التي تسبقها مباشرة.
http://img524.imageshack.us/img524/5700/img21nd2.gif


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



باختصار،النموذج الانحداري سهل الفهم و بسيط في إدارته. لكن مميزاته تبدأ في التداعي بمجرد أن يزداد تعقيد المشروع.

التطوير على مراحل Phased Development
حسب النموذج الانحداري فإنه يجب على المطورين إنهاء مرحلة تحليل المشروع بشكل تام قبل البدأ في التصميم، وكما وضحنا فإن هذه المرحلة قد تتطلب وقت طويل في بعض المشاريع وقد تمر عدة سنوات قبل أن يرى البرنامج النهائي النور، ولكن هل يمكن لسوق العمل الانتظار كل هذا الوقت؟!



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


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

http://img527.imageshack.us/img527/2757/img22pn5.gif

· النموذج التكراري Iterative model
هذه المرة يتم تسليم برنامج بكامل الوظائف من أول مرة، ولكن يتم تعديل وتغيير بعض تلك الوظائف مع كل إصدار من البرنامج.

http://img174.imageshack.us/img174/1791/img23wx6.gif

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


النموذج اللولبي Spiral Model
وهو شبيه لدرجة كبيرة إلى النموذج التزايدي والتكراري، ولكن فيه يتم دمج فعاليات التطوير مع إدارة المخاطر risk من إجل التحكم بها وتقليلها.
يبدأ النموذج اللولبي بمتطلبات العميل مع خطة العمل المبدئية (الميزانية، قيود النظام، والبدائل المتاحة). ثم يتقدم خطوة إلى الامام بتقدير المخاطر وتمثيل البدائل المتاحة قبل تقديم ما يعرف بـ "وثيقة العمليات" Concept of Operations التي تصف وبشكل عام (بدون الدخول في التفاصيل) كيف يجب على النظام أن يعمل. بعدها يتم تحديد وتدقيق المتطلبات للتأكد من أنها تامة ودقيقة إلى أقصى حد ممكن.
بذلك تكون وثيقة العمليات هي المنتج من الطور الأول، و المتطلبات هي المنتج الاساسي من الطور الثاني. وفي الطور الثالث تتم عملية التصميم، أما الاختبار فيتم خلال الطور الرابع.
في كل طور أو مرحلة يساعد تحليل المخاطر على تقدير البدائل المختلفة في ضوء متطلبات وقيود النظام، وتساعد النمذجة على التحقق من ملائمة أي بديل قبل أعتماده.

http://img524.imageshack.us/img524/3168/img24wy0.gif


•·.·´¯`·.·• (نهاية الدرس الثاني) •·.·´¯`·.·•


وللدرس بقيه بإذن الله



ودمتم بود الرحمان:
أختكم
المهره الأصيه

الاميرة الهادئة
05-23-2007, 12:38 AM
والله يا المهره الاصيله انك فتحتي نفسي على تعلم لغات البرمجه وحركات الحاسب

واشكرك مقدما يا معلمتي الغاليه واوعدك في العطله بجلس في قسم لغات البرمجهواطبق


جزاك الله خيرا ..................


اختك وطالبتك مستقبلا

الاميره الهادئه

المهره الأصيله
05-23-2007, 05:01 PM
والله يا المهره الاصيله انك فتحتي نفسي على تعلم لغات البرمجه وحركات الحاسب

واشكرك مقدما يا معلمتي الغاليه واوعدك في العطله بجلس في قسم لغات البرمجهواطبق


جزاك الله خيرا ..................


اختك وطالبتك مستقبلا

الاميره الهادئه


COLOR="Red"]هلا فيكِ يالأميرة[/COLOR]

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

وعلماً
بأن قسم البرمجة أهم الاقسام في تعلم ودراسة الحاسب الآلي

العفو.. وحلوه منك معلمتي :sm1 (117):
إن شاء الله الله يسمع منك وأصير معلمه بحق وحقيقي

وجُزيت بمثله




دمتِ دوماً ياطالبتي بالتفوق والنجاح:
المهره الأصيله

المستـشار
05-23-2007, 05:16 PM
السلام عليكم


حياك الله مشرفتنا


درس طيب وشرحه مبسط


الله يعطيك العافيه


واحجزي لي كرسي في صف الطلاب الاولاد عندك0 لاني بصراحه لا خلفيه عندي عن هذه الدروس والنظم

المهره الأصيله
05-23-2007, 06:28 PM
السلام عليكم


حياك الله مشرفتنا


درس طيب وشرحه مبسط


الله يعطيك العافيه


واحجزي لي كرسي في صف الطلاب الاولاد عندك0 لاني بصراحه لا خلفيه عندي عن هذه الدروس والنظم


وعليكم السلام ورحمة الله وبركاته

الله يحييك ويبقيك

وهلا فيك
اخوي المستشار


يعافيك ربي ويخليك

ابشر ولا يهمك نحجز لك كرسي
لكن عاد نبيك دافور وشد حييلك
والله الله على المذاكره الزينه


وشكرا جزيلا لك على ردك الطيب



دمت بمحبة الله:
اختك
المهره الأصيله

برق الشمال
05-25-2007, 06:40 AM
بارك الله فيك اختي على الدروس الطيبة والمفيدة

متابع معكم ان شاء الله
ونبي نستفيد اكثر


بارك الله فيك

المهره الأصيله
06-17-2007, 03:30 AM
بارك الله فيك اختي على الدروس الطيبة والمفيدة

متابع معكم ان شاء الله
ونبي نستفيد اكثر


بارك الله فيك


وبُوركت على مرورك الطيب
يالبرق


حياك الله معنا وإن شاء الله
تستفيد ونستفيد

يعطيك العافيه


دمت بعزالله:
اختك

المهره الأصيله

مجنــ قلبي ـون
06-17-2007, 04:58 AM
معلمة قليله عليك

أطلق عليك أستاذة برمجه


وأشكرك على الشروح وانا مع أخوي بحر من المتابعين والمؤيدين والمحيبن لهذه اللغه


وبأنتظار البقيه

مجنــ قلبي ـون
06-17-2007, 05:11 AM
معلمة قليله عليك

أطلق عليك أستاذة برمجه


وأشكرك على الشروح وانا مع أخوي بحر من المتابعين والمؤيدين والمحيبن لهذه اللغه


وبأنتظار البقيه