عملية تطوير البرمجيات
هذه المقالة يتيمة حيث أن عددًا قليلاً من المقالات أو لا مقالات إطلاقًا تصل إليها. ساعد من فضلك بإضافة وصلات في المقالات ذات العلاقة. |
عملية تطوير البرمجيات | |
نشاطات وخطوات | |
---|---|
المتطلبات · Specification البنيان · Design التنفيذ · الفحص Deployment · Maintenance | |
منهجيات | |
Agile · Cleanroom · Iterative RAD · RUP · Spiral Waterfall · XP · Lean Scrum · V-Model · TDD | |
اختصاصات داعمة | |
Configuration management Documentation Quality assurance (SQA) Project management User experience design | |
أدوات | |
المصرف · المصحح · Profiler GUI designer · ب ت م | |
عملية تطوير هي هيكلة مفروضة على عملية تطوير البرمجيات. وتدعى أيضاً دورة حياة البرمجيات أو عملية البرمجيات. هناك عدة نماذج لهذه العملية، كل منها يصف طريقة التعامل مع المهام والأنشطة المتعلقة بعملية تطوير البرمجيات.
دورات حياة النظام البرمجي
فيما يلي عرض لإحدى أشهر دورات حياة النظام البرمجي الكلاسيكية وهي دورة الشلال (Waterfall Model):
كتابة وثيقة الشروط الخارجية والداخلية
وثيقة الشروط الخارجية يتم أخذها من الزبون. تحتوي الوثيقة على متطلبات الزبون في ما يخص مواصفات البرنامج الذي يجب إنشاؤه. ثم يتم تحليل المتطلبات بشكل أولي ثم كتابة وثيقة شروط داخلية تحتوي على تفسير المواصفات التي يريدها الزبون بدقة أكبر، وبطريقة تتماشى مع مصطلحات المبرمجين. قد تكون طلبات الزبون متعارضة وفي هذه الحالة يتم الرجوع إليه لتنقيح وثيقة الشروط. ثم يتم تحديد عدد الساعات اللازمة للعمل وحساب التكلفة.
التحليلٍ
في هذه العملية تجمع المعلومات بدقة ثم تحدد المتطلبات والمهام التي سيقوم بها البرنامج، وتوصف هذه المهام بدقة تامة، كما تدرس الجدوى المرجوة من البرنامج، فالمستخدم مثلاً يضع تصوراً للبرنامج ليقوم بعمليات معينة، ومهمة مهندس البرمجيات في هذه المرحلة هي استخلاص هذه الأفكار وتحديدها؛ لذلك فهي تتطلب مهارة عالية في التعامل مع الزبائن، وقدرة على التحليل الصحيح. ينتج في نهاية هذه المرحلة وثيقة تدعى جدول الشروط والمواصفات دينامكاميد
التصميم
في هذه المرحلة، تقسم البرمجية إلى كتل وتعرف العلاقات بين هذه الكتل ثم توضع الخوارزميات الملائمة لكل كتلة. في نهاية هذه العملية تكون البرمجية جاهزة لعملية الترميز، كما يتم اختيار لغة أو لغات البرمجة الملائمة لهذا البرنامج.
الترميز
تحول الخوارزميات السابقة إلى إحدى اللغات البرمجية، والتأكد من صحتها لكل كتلة من الكتل. ثم تحول إلى لغة الآلة التي يتعامل بها جهاز الحاسب فقط.
الاختبار والتكاملية
تجمع الكتل مع بعضها ويختبر النظام للتأكد من موافقته لجدول الشروط والمواصفات، وخاصة إذا كانت الكتل قد كتبت من قبل عدة أعضاء في الفريق.
التوثيق
وهي مرحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج؛ وذلك بغرض الصيانة والتطوير. يفضل عادة أن يترافق التوثيق مع كل مرحلة من المراحل السابقة واللاحقة، وأن يكون هناك فريق خاص يهتم بعملية التوثيق لجميع المشاكل والحلول التي يمكن أن تظهر أثناء بناء البرمجية. وبدون التوثيق قد يصل مصنع البرمجية إلى مرحلة لا يعود بعدها قادراً على متابعة صيانتها وتطويرها؛ مما يزيد الكلفة المادية والزمنية الخاصة بهذه البرمجية إلى حدود غير متوقعة، أو بمعنى آخر الفشل في بناء برمجية ذات جودة عالية ودورة حياة طويلة. وهناك أكثر من طريقة للتوثيق -توثيق المبرمج وهو ممكن أن يكون بأضافة تعليقات داخل الشفرة البرمجية. -توثيق المحلل بكتابة مستندات شرح لدورة البرنامج المستندية وخلافة. -توثيق مختبر النظام وفيها يتم تسجيل نقاط الخلل في البرنامج...
الصيانة والتطوير
إن هذه المرحلة هي المرحلة الأطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات والمعدات الحديثة، جزء من هذه المرحلة يكون في تصحيح الأخطاء، والجزء الآخر يكون في التطوير وإضافة تقنيات جديدة. إن هذه الخطوات كما نلاحظ مشابهة لخطوات الإنتاج في الهندسيات الأخرى.
cs:Proces vývoje softwaru da:Softwareudviklingsproces de:Vorgehensmodell zur Softwareentwicklung Software development process]] es:Proceso para el desarrollo de software fa:فرآیند تولید نرمافزار gl:Ciclo de desenvolvemento he:מתודולוגיית פיתוח תוכנה hi:सॉफ्टवेयर डेवलपमेंट प्रक्रिया डेवेलपमेंट id:Proses pengembangan perangkat lunak it:Ciclo di vita del software ja:ソフトウェア開発工程 jv:Prosès pangembangan piranti alus komputer ko:소프트웨어 개발 프로세스 lt:Programų kūrimo gyvavimo ciklo modelis nl:Softwareontwikkelmethode no:Programvareutviklingsprosess pl:Proces wytwórczy oprogramowania pt:Processo de desenvolvimento de software ru:Цикл разработки программного обеспечения sv:Programutvecklingsmetodik ta:மென்பொருள் பொறியியல் வழிமுறை tr:Yazılım geliştirme yöntembilimi vi:Quy trình phát triển phần mềm zh:软件开发过程