:: فرایند و مراحل طراحی سایت و تولید نرم افزار مدیریت محتوا
در ساخت یک سیستم نرم افزاری مانند سیستم مدیریت محتوا در طراحی سایت سه فرآیند مهم تاثیر گذار می باشند:

▪ فرآیند توسعه (Development Process):
سازماندهی فعالیت ها است برای ساخت یک سیستم

▪ فرآیند مدیریت (Management Process):
انتخاب افراد، تجهیزات و فرآیند هاست برای توسعه یک سیستم و کنترل و نظارت بر روند اجرای پروژه (مدیریت پروژه)

▪ فرآیند پشتیبانی (Maintenance Process):
کنترل و پشتیبانی نرم افزار پس از تولید آن

در این بین در فرآیند توسعه هدف آن است که یک سایت با مشخصات خواسته شده طراحی شود و بنابراین برای تولید هر نوع سایت و سیستم مدیریت محتوا متفاوت است.فرآیند توسعه از مرحله طرح یک راه حل مفهومی برای مساله خواسته شده (امکان سنجی) آغاز شده، پس از دریافت خواسته ها و تحلیل سیستم طراحی صورت گرفته و در نهایت این طراحی با کمک ابزارهای پیاده سازی تبدیل به یک سایت و نرم افزار واقعی می شود. هدف این فرآیند آن است که از یک سو برآورده ساختن نیازهای کاربران و از سوی دیگر کیفیت مناسب عملکرد سایت طراحی شده تضمین گردد و بنابراین بایستی حاوی مکانیسم هایی برای اعتبار سنجی: خروجی مطابق با خواسته ها (Validation) و وارسی پذیری: صحت عملکرد خروجی (Verification) باشد. فرآیند توسعه ضمن دادن آزادی به تحلیل گر باید تضمین کند که زمانبندی رعایت شود.

روشهای مختلفی برای فرآیند توسعه وجود دارد که در این میان می توان گفت ۱۲ روش مطرح تر وجود دارد که بدون اشاره به مزایا و معایب آنها عبارتند از:

۱) ساده ترین روش: تبدیل فرآیند توسعه در قالب دنباله ای از وظایف مشخص و ترسیم CPM: Critical Path Model ، یک نمودار از تمام فعالیت ها

۲) فرایند توسعه خطی Liner: به ترتیب مراحل انتخاب پروژه، تعریف مفهومی (تعریف مساله، امکان سنجی) ، تعریف مشخصات (خواسته ها ، تعریف مساله) ، طراحی (طراحی معماری، تفصیلی) ، توسعه (طراحی و تست) ، ارزیابی و درنهایت تعریف پروژه جدید

۳) مدل آبشاری (Water Fall) : تقسیم وظائف توسعه سیستم در قالب یک مدل آبشاری از تعریف مساله، امکان سنجی، تحلیل (سیستم، خواسته ها)، طراحی ، پیاده سازی و تست ، یکپارچه سازی و تست، نصب و تست ، نگهداری و مرور , با امکان برگشت از یک مرحله به مرحله قبل

۴) توسعه مرحله ای، افزایشی و یا نموی Incremental Methods : تقسیم یک مساله به مسائل کوچکتر و انجام هر زیر سیستم (مساله کوچکتر) و انجام هر یک به صورت جداگانه و در صورت امکان اجرا به صورت همزمان

۵) الگو سازی (Prototyping) :ایجاد یک الگو برای کاربران برای اینکه درک بهتری از سیستم داشته باشند و درنهایت پیاده سازی سیستم بر اساس این نمونه

۶) توسعه سریع سیستم RAD: Rapid Application Development : ادغام برخی مراحل با یکدیگر و استفاده از زبانهای نسل چهارم برای توسعه سیستم (مراحل: برنامه ریزی، طراحی و تست)

۷) طراحی تکاملی به صورت حلزونی و یا مارپیچی (Spiral) : توسعه سیستم به صورت افزایشی به صورت بازگشتی Recursive

۸) با اضافه کردن مفاهیم برنامه سازی شی گرایی (OOP) به روش حلزونی و تبدیل به صورت موازی بازگشتی (Parallel Recursive Method )

۹) توسعه سیستم مبتنی بر مولفه ها (CBSD: Component Based Software Development )

۱۰) توسعه همزمان (Concurrent Development) : توسعه به صورت یک فرآیند سیستماتیک و مرحله بندی و لیبل گذاری هر بخش در هر مرحله. تقسیم سیستم به بخش های مختلف و تقسیم نیروها در بین پروژه های مختلف برای اجرای این بخش ها به صورت همزمان

۱۱) روشهای فرمال : بکارگیری مدل ها و مفاهیم ریاضی در توسعه سیستم

۱۲) روشهای نسل چهارم: بگارگیری از ابزارهای گرافیکی و ابزارهای مهندسی نرم افزار (CASE Tools)

با توجه به تعدد روشها و مدل های فرآیند توسعه باید در یک پروژه انتخاب صورت بگیرد. این انتخاب بر اساس موارد زیر می تواند باشد:
– درجه ساختاری سیستم
– آشنایی با فنآوری
– اندازه پروژه

برای مثال چرخه های خطی برای پروژه های آسان و ساختیافته و یا زمانی که با فنآوری کاملا آشنا هستیم مناسب می باشند و برای پروژه های بزرگ و ناشناخته روشهای افزایشی بهتر می باشند.اما نمی توان انتظار داشت یک گروه تولید کننده نرم افزار در هر پروژه یک معیار را انتخاب کند. چون این کار بسیار هزینه بر است و به لحاظ مختلف ناصواب. دلایل انتخاب یک روش استاندارد برای یک تیم و استفاده در همه پروژه ها آنست که:
طراحان برای یادگیری تکنیک های جدید وقت زیاد تلف نمی کنند.
مستند سازی بهتر صورت می گیرد