عمليات دورة حياة البرمجيات

تصغير|200بك|يسار
**ال[[المنظمة الدولية للمعايير|أيزو]] 12207 ** ISO 12207 هو معيار من المنظمة الدولية للمعايير لتعريف العمليات التي تمر بها البرمجيات في دورة حياتها، ويهدف لأن يكون معيارا يعرف جميع المهام التي يلزم القيام بها لتطوير و صيانة البرمجيات.

يؤسس معيار الأيزو 12207 دورة حياة البرنامج وتشمل العمليات والأنشطة التي يتم تطبيقها أثناء الحصول على خدمات النظام وتنظيمها. ترتبط بكل عملية مجموعة من النتائج. هناك 23 عملية Process و95 نشاط Activity و325 مهمة Task و224 نتيجة Outcome (المعيار الجديد «أيزو\آي إي سي 12207:2008 هندسة الأنظمة والبرمجيات – عمليات دورة حياة البرنامج» يعرف 43 عملية نظام وبرنامج).

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

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

## العمليات الرئيسية في دورة الحياة
تتضمن العمليات الرئيسية في دورة الحياة مجموعة العمليات الأساسية في عمل أي منتج برمجي، وتنقسم لخمسة عمليات أساسية:
* الحيازة
* العرض
* التطوير
* التشغيل
* الصيانة

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

## الأنشطة
يمكن تقسيم كل عملية من عمليات دورة الحياة إلى مجموعة من الأنشطة. يشرح هذا الفصل الأنشطة المختلفة في كل عملية من هؤلاء.

### الحيازة
تشمل مرحلة الحيازة الأنشطة المتعلقة بافتتاح المشروع، ويمكن تقسيمها إلى مجموعة من الأنشطة والمنتجات المستلمة التي يتم الانتهاء منها بترتيب زمني.
* افتتاح المشروع: يشمل هذا النشاط إتمام المهام التالية
** وصف الحاجة التي تدفع إلى تطوير أو تحسين أو الحصول على منتج ما;
** تعريف متطلبات النظام والتصديق عليها إن كان هذا ممكنا;
** تعريف المتطلبات البرمجية العامة;
** تقييم الخيارات الأخرى مثل شراء منتج جاهز أو تحسين منتج موجود بالفعل;
** إذا تم شراء منتج جاهز فلابد من تحليل المتطلبات البرمجية لهذا المنتج.
** وضع خطة حيازة، وهذه الخطة ستستخدم لاحقا خلال عملية الحيازة
** تعريف معايير القبول.
* تحضير طلب عرض: يشمل هذا النشاط إتمام المهام التالية
** تعريف متطلبات الحيازة –مثل متطلبات النظام والقيود التقنية كالبيئة المستهدفة. 
** تعريف العمليات المطلوبة من معيار أيزو\آي إي سي 12207 ويتم تعديلها إذا استدعت الحاجة. 
** تحديد النقاط الفاصلة بالعقد التي تتم عندها المراجعة وتحديد معايير تقييم إنجاز مقدم الخدمة. 
* تجهيز العقد: يشمل هذا النشاط إتمام المهام التالية
** تحديد أسلوب اختيار مقدمي الخدمة;
** اختيار مقدمي الخدمة بناء على الأسلوب الذي تم تحديده;
** وضع معيار أيزو\آي إي سي 12207 المعدل بما يوائم احتياجات المستخدم في العقد;
* التفاوض على التعديلات: يشمل هذا النشاط إتمام المهام التالية
** إجراء مفاوضات مع مقدمي الخدمة الذين وقع الاختيار عليهم;
* تعديل العقد: يشمل هذا النشاط إتمام المهام التالية
** يتم تعديل العقد ليعكس نتائج المفاوضات في النشاط السابق.
* مراقبة مقدم الخدمة: يشمل هذا النشاط إتمام المهام التالية
** مراقبة نشاط مقدمي الخدمة حسب الاتفاقيات التي تم عقدها;
** التعاون مع مقدمي الخدمة لضمان تسليم المنتج في موعده إذا تطلب الأمر. 
* القبول والانتهاء: يشمل هذا النشاط إتمام المهام التالية
** وضع إجراءات واختبارات القبول;
** إخضاع المنتج لاختبارات القبول;
** إخضاع المنتج لإجراءات إدارة الترتيب البرمجي;

### العرض
توضع في هذه المرحلة خطة إدارة المشروع، وتضم هذه الخطة معلومات عن المشروع مثل النقاط الفاصلة التي يجب الوصول إليها. هذه الخطة مطلوبة في المرحلة التالية وهي مرحلة التطوير.

### [[عملية تطوير البرمجيات|التطوير]]
في مرحلة التطوير يتم تصميم وبناء واختبار البرنامج وينتج عنها منتج برمجي جاهز للتسليم للعميل. قام العديد من الأشخاص بوضع أساليب مختلفة لتطوير البرمجيات، واختيار أسلوب منهم يعتمد على الوضع وقتها، ولكن النموذج-في V-model هو الأسلوب المستخدم في الكثير من المشاريع. يمكن استخدام بعض التقنيات أثناء عملية التطوير كاليو إم إل في التصميم وتي ماب للاختبار. يتضمن هذا الفصل أهم خطوات النموذج-في.

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

### التشغيل
تجري مرحلتي التشغيل والصيانة على التوازي، تشمل مرحلة التشغيل أنشطة مثل مساعدة الممستخدمين على استخدام المنتج الجديد.

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

## المنتجات المستلمة
يبين هذا الفصل المنتجات التي يتم تسليمها في كل نشاط.

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

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

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

## انظر أيضا
* لغة النمذجة الموحدة
## المراجع

* Mitchell H. Levine. (2000), Analyzing the Deliverables Produced in the Software Development Life Cycle. Retrieved February 17, 2006, from Audit Serve, Inc. Website: http://www.auditserve.com/Articles/AuditGeneral/AnalyzingthedeliverablesproducedintheSDLC/tabid/250/Default.aspx
* SSC San Diego Process Asset Library. Retrieved February 19, 2006 from SSC San Diego Process Asset Library Website: http://sepo.spawar.navy.mil/12207.doc 

تصنيف:عملية تطوير البرمجيات
تصنيف:معايير الأيزو
تصنيف:معايير معهد مهندسي الكهرباء والإلكترونيات