في هندسة النظم، وأنظمة المعلومات، وهندسة البرمجيات، دورة حياة تطوير الأنظمة وتسمى أيضًا دورة حياة تطوير التطبيقات، هي عملية تخطيط وإنشاء واختبار وتوظيف نظام معلومات.[1] ينطبق مفهوم تطوير الأنظمة على مجال واسع من التركيبات البرمجية والعتاد الصلب، إذ يمكن أن يتكون النظام من عتاد صلب لوحده، أو برمجيات لوحدها، أو يتكون من الاثنين معًا.[2] هناك عادةً ست مراحل في هذه الدورة: تحليل المتطلبات، التصميم، التطوير والاختبار، التطبيق، التوثيق، التقييم.
تتكون دورة حياة تطوير الأنظمة من عدد من أطوار العمل المحددة بوضوح والمتميزة يستخدمها مهندسى الأنظمة ومطورو الأنظمة للتخطيط لأجل أنظمة المعلومات، وتصميمها وبنائها واختبارها وتسليمها. كما هو حال كل شيء يصنع على خطوط تجميع، فإن دورة حياة تطوير الأنظمة تهدف لإنتاج أنظمة عالية الجودة تلبّي أو تفوق توقعات الزبائن، حسب متطلبات الزبون، عن طريق تسليم أنظمة تنتقل عبر كل طور محدد بدقة ضمن جدول محدد بأطر زمنية وتقديرات الكلفة.[3] الأنظمة الحاسوبية معقدة وتربط عادةً (وخصوصًا مع الصعود الحديث للمعمارية الحاسوبية الموجهة نحو الخدمة) عدة أنظمة تقليدية يحتمل أن يوفرها موردو برمجيات مختلفون. لإدارة هذا المستوى من التعقيد، أنشئت عدة نماذج أو منهجيات متبعة لدورات حياة تطوير الأنظمة، كنموذج الشلال، والنموذج الإعصاري، ونموذج التطوير الرشيق للبرمجيات، والنمذجة السريعة، والنموذج المتزايد، ونموذج المزامنة والاستقرار.[4]
يمكن تصنيف دورات حياة تطوير الأنظمة ضمن طيف يمتد من الطرائق الرشيقة إلى التكرارية مرورًا بالتسلسلية. تركز الطرائق الرشيقة، كطريقة إكس بّي وطريقة سكرم، على العمليات الخفيفة التي تسمح بتغيرات سريعة (دون اتباع طريقة دورة حياة تطوير الأنظمة بالضرورة) على امتداد دورة التطوير. تركز الطرائق التكرارية، كالطريقة النسبية الموحدة وطريقة تطوير الأنظمة الديناميكية، على نطاق مشروع محدود وتوسعة أو تطوير المنتجات عن طريق تكرارات متعددة. تركز النماذج التسلسلية أو نماذج التصميم الكبير مقدمًا (بي دي يو إف)، كنموذج الشلال، على التخطيط الكامل والصحيح لتوجيه المشاريع الكبيرة والمخاطر نحو نتائج ناجحة ويمكن التنبؤ بها. في حين تركز نماذج أخرى كالتطوير التحولي على شكل من التطوير موجه حسب حجم المشروع والتكرارات المتكيفة لتطوير المزايا.
يمكن تعريف المشروع في إدارة المشاريع حسب كل من دورة حياة المشروع (بّي إل سي) ودورة حياة تطوير الأنظمة حيث تحدث نشاطات مختلفة شيئًا ما. حسب تايلور (2004): «تحيط دورة حياة المشروع بكل نشاطات المشروع، بينما تركز دورة حياة تطوير الأنظمة على تحقيق متطلبات المنتج».[5]
تستخدم دورة حياة تطوير الأنظمة (إس إل دي سي) خلال تطوير مشروع تقنية معلومات (مشروع آي تي)، تصف الدورة المراحل المختلفة للمشروع من لوح الرسم وحتى إنهاء المشروع.
ليست دورة حياة تطوير الأنظمة منهجية أو طريقةً بحد ذاتها، بل هي وصغ لأطوار دورة حياة تطبيق برمجي. هذه الأطوار (بشكل عام) هي: التحقيق، التحليل، التصميم، البناء، الاختبار، التطبيق، الصيانة والدعم. تتبع كل طرائق تطوير البرمجيات (كنموذج الشلال وطريقة سكرم الأكثر شهرةً) أطوار دورة حياة تطوير الأنظمة ولكن طريقة حدوث ذلك تختلف بشكل كبير حسب الطريقة. في إطار عمل سكرم[6] -على سبيل المثال- يمكن القول إن قصة المستخدم الواحد تمر عبر كل أطوار دورة حياة تطوير الأنظمة خلال أسبوعين. في المقابل، يترجَم كل من متطلبات العمل (المسجلة في طور التحليل من دورة حياة تطوير الأنظمة في وثيقة تسمى مواصفات متطلبات العمل) في طريقة الشلال إلى أوصاف وظيفية/مزايا (تسجل في طور التصميم في وثيقة تدعى المواصفات الوظيفية) تبنى كلها فيما بعد مرةً واحدةً كمجموعة من مزايا الحل عادةً خلال فترة ثلاثة إلى تسعة أشهر، أو أكثر. تختلف هاتان الطريقتان عن بعضهما وضوحًا بشكل كبير، ولكن كلاهما يحتوي أطوار دورة حياة تطوير الأنظمة التي تولد فيها المتطلبات تباعًا، ثم تنتقل عبر أطوار دورة الحياة وصولًا إلى المرحلة النهائية وهي الصيانة والدعم، والتي تبدأ (عادةً) بعدها دورة حياة جديدة كاملة لنسخة لاحقة من التطبيق.
تصف دورة حياة المنتج عملية بناء أنظمة المعلومات بطريقة مقصودة ومنهجية ومحددة الهيكلية، بإعادة تكرار كل مرحلة من حياة المنتج. بدأت دورة حياة تطوير الأنظمة، وفقًا لإليوت وستراتشان ورادفورد (2004) «في ستينيات القرن العشرين، لتطوير أنظمة أعمال عملية على نطاق كبير في عصر التكتلات الكبيرة للشركات. تمحورت أنشطة أنظمة المعلومات حول إجراءات روتينية ثقيلة لمعالجة البيانات ومعالجة الأعداد».[7]
بنيت عدة أطر عمل تطوير أنظمة جزئيًّا على دورة حياة تطوير الأنظمة، كطريقة تحليل الأنظمة المهيكلة وتصميمها (إس إس إيه دي إم) التي أُنتجت خصيصًا لمكتب التجارة الحكومية التابع لحكومة المملكة المتحدة في ثمانينيات القرن العشرين. منذ ذلك الحين، وفقًا لإليوت (2004): «ازدادت الاستعاضة عن مقاربات دورة الحياة التقليدية لتطوير الأنظمة بمقاربات وأطر عمل بديلة، حاولت التغلب على بعض الصعوبات المتأصلة في دورات الحياة التقليدية لتطوير الأنظمة».[7]
التحليل غرضي التوجه (أو أو إيه) هو عملية تحليل مهمة (تعرف أيضًا باسم مجال مسألة)، لتطوير نموذج مفاهيمي يمكن استخدامه لاحقًا لإتمام المهمة. يصف النموذج المعتاد للتحليل غرضي التوجه برمجيات الحاسوب التي يمكن استخدامها لتحقيق مجموعة من المتطلبات التي يحددها الزبون. خلال طور التحليل من حل المسائل، يمكن للمبرمج التفكير بتصريح مكتوب للمتطلبات، أو وثيقة رؤية رسمية، أو مقابلات مع أصحاب رأس المال المخاطر أو المهتمين الآخرين. قد تنقسم المهمة المعنية إلى عدة مهمات فرعية (أو مجالات)، يمثل كل منها شركة مختلفة، أو تقنية، أو مجال اهتمام آخر. تحلَّل كل مهمة فرعية على حدة. لا تؤخذ قيود التطبيق (كالتزامن، والتوزيع، والثبات، أو كيفية بناء النظام) بعين الاعتبار في طور التحليل؛ بل تُدرس خلال التصميم غرضي التوجه.
يتكون النموذج المجرد الناتج من التحليل غرضي التوجه عادةً من مجموعة من حالات الاستخدام، مخطط فئة للغة النمذجة الموحدة (يو إم إل) أو أكثر من مخطط، وعدد من مخططات التفاعل. قد يشمل أيضًا محاكيًا من نوع ما لواجهة المستخدم.
يوفر دخل التصميم غرضي التوجه عن طريق خرج التحليل غرضي التوجه. يجب إدراك أن الخرج لا يجب بالضرورة أن يكون مطورًا بالكامل ليمثل دخلًا للتصميم غرضي التوجه؛ فقد يحدث كل من التحليل والتصميم على التوازي، وعمليًّا، يمكن أن تغذي نتائج نشاط ما النشاط الآخر في حلقة تغذية راجعة قصيرة عن طريق عملية تكرارية. يمكن إجراء كل من التحليل والتصميم بشكل متزايد، ويمكن تنمية الأدوات بشكل مستمر بدل تطويرها بالكامل مرةً واحدة.
بعض أدوات الدخل التقليدية (ولكن هذا لا يعمم على كل أنواع التحليل التصميمي) للبرمجة غرضية التوجه:
تتضمن مجموعة من الإجراءات والأساليب الخاصة بدورة حياة تطوير البرمجيات SDLC والتي حددها وطبقها برنامج «يسِّر» في كل المشاريع والبرمجيات ذات العلاقة داخل البرنامج. وتهدف دورة حياة تطوير البرمجيات SDLC لتفصيل الإجراءات والأساليب المتبعة لحوكمة وضبط عمل فريق تطوير البرمجيات في برنامج «يسِّر»
ويساعد تنفيذ دورة حياة تطوير البرمجيات SDLC على تحقيق عدد من النتائج الإيجابية كما يلي:
بدون نموذج SDLC لاتباعه، المطورون لديهم الحرية لتطوير البرمجيات، يوجد العديد من البرامج التي تم برمجتها برؤية احتياجية عوضا عن اتباع نموذج معين. كل ما يحتاجوه هو خطة عمل تخدم النموذج الذي سيتم بناء البرنامج من خلاله.
و مع ذلك، تطوير هذه البرمجيات لا يمتلك رؤية واضحة ولا يمكن ان يكون قابل للتطبيق في نموذج العمل.
و في الجهة الأخرى SDLC ستضمن لك ان كل شئ على ما يرام، العمل سيمتلك على فكرة واضحة عن ما الذي سيحدث وما المتوقع من هذا البرنامج. وبما ان نماذج SDLC قد تم ابتكارها لاحتياج أو مشكلة في الحسبان، فهذا يعني انها اداة هدفها عمل منتج.