أخر الاخبار

الغوص في التطوير: دورة حياة تطوير البرمجيات

"دورة حياة تطوير البرمجيات (SDLC) هي إطار يحدد المهام التي يتم تنفيذها في كل خطوة في عملية تطوير البرمجيات. "

من المهم أن نفهم أنه بما أن دورة حياة تطوير البرمجيات لها مراحل أو مراحل ونماذج مختلفة، فقد تغيرت أيضًا وفقًا لفلسفات محددة، والتي سنتحدث عنها لاحقًا.



الفكرة الأساسية هي أن دورة حياة تطوير البرمجيات تحدد كيفية إنشاء البرمجيات وإصدارها في بيئة الإنتاج .

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

ومع ذلك، فإن الفهم الأفضل لـ SDLC يساعدنا في معرفة ما يحدث خلف الكواليس، أو كما يقول البعض، "كيف يتم صنع النقانق".

وراء كل تطبيق أو منتج برمجي يوجد رمز . هذا الرمز يأتي من البشر. إن SDLC هي وسيلة للتأكد من أن البشر المعرضين للخطأ يقومون بإنشاء تكنولوجيا معصومة نسبيًا.


يمكن أيضًا أن تختلف دورة حياة تطوير البرمجيات بشكل كبير.

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


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


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


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


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

في أبسط مستوياتها، تتكون دورة حياة تطوير البرمجيات من عدد من المراحل.

تتضمن المراحل الخمس الأساسية لـ SDLC تحليل المتطلبات والتصميم والتطوير والاختبار والصيانة. يضيف بعض الخبراء مرحلة سادسة تسمى النشر، أو حتى المرحلة السابعة، لكن المراحل الأساسية الخمس تعطي فكرة عامة عما ينطوي عليه الأمر.

كل مرحلة لها متطلباتها وتسليماتها الخاصة التي تحتاج إلى التقدم إلى المرحلة التالية.

المرحلة الأولى هي جمع المتطلبات وتحليلها. هذه هي المرحلة التي يحدث فيها العصف الذهني لتحديد كيفية استخدام المنتج والدور الذي يجب أن يلعبه. هذا هو أيضًا المكان الذي تحصل فيه الفرق على موافقة على المشروع.

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


التنفيذ أو البرمجة هي المرحلة التالية، وهي مرحلة الكتابة العملية، وتميل إلى أن تكون المرحلة الأكثر مشاركة في العملية، على الرغم من أن التصميم والاختبار هما مرشحان آخران.

بعد ذلك تأتي مرحلة الاختبار ، وهي مرحلة أساسية أخرى تقوم بتصحيح الأخطاء وضبط قاعدة التعليمات البرمجية .

تتضمن مرحلة النشر إيصال منتج البرنامج إلى قاعدة المستخدمين المقصودة.

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

إذا تم تنفيذ هذه المراحل بشكل صحيح، فيمكنها تحسين كيفية إنجاز مشروع برمجي.

"دورة حياة تطوير البرمجيات (SDLC) هي التدقيق الإملائي في عالم تطوير البرمجيات"، كما كتب روبرت هاف. "يمكنه الإبلاغ عن الأخطاء في إنشاء البرامج قبل اكتشافها (بتكلفة أعلى بكثير) في مراحل متتالية. ولكن الأمر أكثر من ذلك بكثير، بالطبع: يمكن لـ SDLC أيضًا وضع خطة لإنجاز كل شيء بشكل صحيح من المرة الأولى.


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


نماذج SDLC

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

الطريقة التي غالبًا ما يتم ذكرها أولاً هي طريقة "الشلال" أو طريقة "التتالي". وسمي بهذا الاسم لأن كل خطوة "تقع" في الخطوة التي تليها. غالبًا ما تعرض الصورة المرئية خطًا أو مربعًا مع سهم يتجه للأسفل إلى سطر أو مربع لاحق في المستوى التالي.

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


والوضع الآخر هو النموذج "التكراري" أو النموذج "التزايدي".

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


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


نموذج SDLC شائع آخر، وهو النموذج "على شكل حرف V"، له هيكل مشابه، ولكن جانب سير عمل مختلف إلى حد ما، حيث تنتقل المراحل الأولية إلى مراحل التنفيذ والاختبار، وحيث تتبع مراحل اختبار متعددة.


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

الشلال التقليدي SDLC: مثال

لنفترض أن شركة تدعى Tellystar تقوم بإنشاء منتج برمجي لمساعدة أجهزة المودم وأجهزة التوجيه على التواصل مع بعضها البعض.

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

بعد ذلك، تتقدم مرحلة التصميم. تقوم الفرق بإنشاء المواصفات التي تصف حزمة البرامج النظرية وصولاً إلى آخر التفاصيل. هناك أماكن ملائمة لكل شيء بدءًا من سهولة الاستخدام وحتى توافق الأجهزة وحتى التكلفة.

بعد ذلك تأتي مرحلة البرمجة - يجلس المبرمجون ويكتبون كل التعليمات البرمجية التي ستسمح للبرنامج بالعمل بشكل جيد.

بعد ذلك، هناك اختبار . يأتي موظفو الاختبار وضمان الجودة ويتأكدون من تسوية جميع الأخطاء.

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

يساعد هذا المثال في توضيح كيفية عمل مشروع برمجي واقعي مع نموذج SDLC التقليدي.

اقرأ ايضا:المفاهيم الأساسية لعلم البيانات التي يجب أن يعرفها جميع محترفي تكنولوجيا المعلومات من هنا

المزيد عن Agile SDLC

يعد تطوير البرمجيات الرشيقة عملية مثيرة للاهتمام لوصفها. ويتغير وفقا لأهداف الشركة وتفضيلاتها. هناك مجال كبير للتخصيص.

ومع ذلك، في أبسط مستوياتها، فإن المرونة هي فك ربط تلك العمليات الفردية الخطية تمامًا في نوع واحد من "كرة الغزل الكبيرة".

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

ثم هناك مراحل رئيسية يمكنك استخدامها لوصف المرونة:

مفهوم

بداية

التكرار / البناء

يطلق

إنتاج

التقاعد

سترى أن بعض المراحل تبدو وكأنها مراحل في عملية SDLC التقليدية . ومع ذلك، فهي مختلفة، وفقا لفلسفة التصميم المرن.

على سبيل المثال، فإن تسمية المرحلة الرابعة بـ "الإصدار" بدلاً من "الاختبار" هو دليل على أن العملية تتضمن تحسينًا مستمرًا ومنسقًا. كما ذكرنا من قبل، لا توجد مرحلة تجريبية صارمة - وبدلاً من ذلك، يتم إجراء الاختبار في وقت قريب من الإصدار. يمكنك أيضًا رؤية تغيير كلمة "صيانة" إلى "إنتاج"، مما يدل على أن الفرق تعمل على ميزات جديدة، وتختبر منتجات البرامج، وتفكر في المشكلات الأمنية، كل ذلك في نفس الوقت . سيكون ذلك حتى نهاية مرحلة الحياة، حيث تستعد الفرق لإقامة حفل تقاعد للحصول على إصدار البرنامج.


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


لقد جلب التطوير السريع الابتكار وعزز العديد من المشاريع - ولكن المفتاح هو أنه يتطلب تخطيطًا رئيسيًا متكررًا - في مراحل مختلفة، بدلاً من خطة فردية واحدة يتم تشكيلها بالكامل قبل بدء العمل الفعلي.


رشيقة SDLC: مثال

دعنا نعود إلى مثال شركة Tellystar. وتحاول الشركة إنشاء نفس برنامج الاتصالات للمودم وجهاز التوجيه ، ولكن هذه المرة باستخدام نموذج رشيق .


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


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


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

كل هذا يعد في الواقع تبسيطًا فادحًا، ولكنه مثال على كيفية سير الأمور عند البدء في تنفيذ الطريقة الرشيقة على الشلال التقليدي .

DevOps وSDLC

لقد أعاد كلمة واحدة مؤخرًا تعريف دورة حياة تطوير البرمجيات .

في الواقع، هما كلمتان، مزيج من كلمتي "التنمية" و"العمليات".


الكلمة هي "DevOps"، وكانت مسؤولة عن تغييرات واسعة النطاق في الطرق التي يتعامل بها الأشخاص مع دورة حياة تطوير البرمجيات.


على سبيل المثال، في الأيام الخوالي، كانت الطريقة التقليدية هي بناء جزء من البرنامج بالكامل، وإصداره لعدد محدد من المستخدمين في عملية تعرف باسم "اختبار بيتا".


كانت العملية متوقعة - حدث البناء، وحدث الكود ، وكان هناك افتتاح كبير حيث انتقل المشروع إلى النسخة التجريبية - وبعد النسخة التجريبية، ذهب إلى المستخدمين العامين.


أعطت المرحلة التجريبية للناس فرصة لاختبار المنتجات البرمجية وتصحيح أخطائها - ولكنها الآن أصبحت قديمة تقريبًا مثل نظام أشرطة الفيديو Betamax المسمى بالمثل !


يدور مبدأ DevOps الرئيسي حول مزج ودمج تلك العمليات التقليدية لجعل دورة حياة تطوير البرمجيات أكثر مرونة، ولتعزيز ما يسمى بالتكامل المستمر والتسليم المستمر ولأتمتة وتسريع وتبسيط أجزاء من دورة حياة تطوير البرمجيات لصالح الفرق. والشركات.


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


الذكاء الاصطناعي وSDLC

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


لقد بدأ الذكاء الاصطناعي باعتباره نهجًا أوسع نطاقًا في الانطلاق بالفعل - حيث تعمل الشركات الآن على تشغيل الشبكات العصبية وغيرها من منتجات الذكاء الاصطناعي والتعلم الآلي في SDLC.


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


هذه القطعة في SmallBizDaily تعطينا لمحة عن هذه الفكرة:


"من المهم دائمًا تقليل الوقت اللازم لتسويق تطبيق أعمال العملاء. على سبيل المثال، مع اختيار نموذج Agile SDLC، يمكن لفريق التطوير إعداد MVP في أقرب وقت ممكن، " كتبت كاترين سبيرينا . "إن الدخول الفوري إلى السوق لمنتج قابل للتطبيق يمكن أن يجذب الكثير من انتباه المستخدمين الأوائل للتطبيق. وفي الوقت نفسه، سيتمكن فريق التطوير من المضي قدمًا في تحديث وإضافة الوظائف... تتيح دورة حياة تطوير البرامج أيضًا لمحللي الأعمال توقع اتجاهات السوق وتضمين مجموعة من الوظائف المتطورة في التطبيق المحتمل أثناء عملية التطوير. "


يتحدث مقال نشرته مجلة فوربس في أبريل الماضي أيضًا عن كيف أن التعلم الآلي "يغير بشكل أساسي نموذج تطوير البرمجيات " وكيف ستجعل برامج الذكاء الاصطناعي العديد من أنواع الترميز الصريح عفا عليها الزمن.


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


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


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


تنتهي القطعة أيضًا بالمفهوم المثير للاهتمام "هل يمكن للذكاء الاصطناعي إنشاء الذكاء الاصطناعي؟" الذي يستحضر رؤى كابوسية لروبوتات تبني المزيد من الروبوتات، من أجل بناء المزيد من الروبوتات.


خاتمة

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


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


تعليقات



    حجم الخط
    +
    16
    -
    تباعد السطور
    +
    2
    -