طراحی و توسعه نرم افزار

طراحی و توسعه نرم افزار

طراحی و توسعه نرم‌افزار فرآیندی خلاقانه و در عین حال نظام‌مند است که ایده اولیه را به یک محصول کارآمد و قابل اعتماد تبدیل می‌کند در ادامه اقدامات مورد نیاز برای طراحی و توسعه نرم‌افزار مطابق الزامات سیستم مدیریت کیفیت ایزو 9001 تشریح شده است.

طراحی و توسعه نرم افزار

برآورده نمودن انتظارات کاربران و ذی‌نفعان نرم‌افزار، اجرای دقیق و کنترل‌شده هر گام از این فرآیند بر اساس الزامات سیستم مدیریت کیفیت ضروری است.

طرح‌ریزی طراحی و توسعه

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

اقدامات مورد نیاز برای طرح‌ریزی

  • مدل مناسب برای چرخه حیات نرم‌افزار مانند چابک، آبشاری سازگار با پروژه تعیین گردد.
  • مراحل اصلی و نقاط بحرانی پروژه تعریف و مستندسازی گردد.
  • منابع مورد نیاز شامل نیروی انسانی (تحلیلگران، معماران، توسعه‌دهندگان)، سخت‌افزار، نرم‌افزارهای کمکی و محیط‌های تست تعیین گردد.
  • نقش‌ها، مسئولیت‌ها و اختیارات لازم برای تمامی افراد و تیم‌های دخیل مشخص گردد.
  • برنامه‌ریزی زمانی برای زمان‌بندی و روش انجام بازنگری‌ها تصدیق و صحه گذاری در طول چرخه حیات.
  • مدیریت ارتباطات، تعیین نحوه ارتباط و تعامل با مشتری و ذی‌نفعان خارجی در طول فاز طراحی.
  • تدوین فرمت خام مستندات مورد نیاز، مشخص نمودن فرمت، ساختار و کنترل نسخه برای تمامی اطلاعات مستند تولید شده در فرآیند طراحی از جمله مستندات طرح کیفیت نرم‌افزار، فرم‌های تست و ارزیابی.

گردآوری ورودی‌های طراحی و توسعه

ورودی‌های طراحی، مجموعه‌ای از الزامات، نیازها و داده‌های مرجع هستند که مبنای نرم‌افزار نهایی را تشکیل می‌دهند. این ورودی‌ها باید شفاف، کامل و قابل‌سنجش باشند تا از ابهام در مراحل بعدی جلوگیری شود.

اقدامات مورد نیاز برای گردآوری ورودی‌ها

  • الزامات کارکردی، تعریف دقیق و کامل از قابلیت‌ها و وظایفی که نرم‌افزار باید انجام دهد مثلا ثبت اطلاعات کاربر، انجام محاسبات خاص.
  • الزامات غیرکارکردی، تعیین جنبه‌های کیفی مانند کارایی (Performance)، امنیت (Security)، قابلیت استفاده (Usability)، پایداری (Reliability) و قابلیت نگهداری (Maintainability). این موارد در نرم‌افزارها اهمیت ویژه‌ای دارند.
  • کلیه قوانین و مقررات حاکم بر نرم‌افزار (مانند مقررات حفظ حریم خصوصی داده‌ها، استانداردهای مالی) و در نظر گرفتن استانداردهای صنعتی مرتبط شناسایی گردد.
  • استفاده از داده‌ها و اطلاعات محصولات مشابه یا پروژه‌های قبلی که موفقیت یا شکست (درس آموخته‌ها) در آن‌ها به دست آمده است.
  • نحوه تعامل نرم‌افزار با سایر سیستم‌ها، پایگاه‌های داده، سخت‌افزار یا کاربران (User Interface Design). تعیین گردد.
  • ورودی‌های طراحی و توسعه نرم‌افزار باید قبل از آغاز فاز طراحی بازنگری شوند تا تناقضات، ابهامات یا نقص‌های احتمالی مرتفع گردند.

گردآوری خروجی‌های طراحی

  • خروجی‌های طراحی، توصیف مستندشده و جامع از مشخصات نرم‌افزار نهایی هستند که مبنای مراحل تولید (کدنویسی) و آزمون را فراهم می‌آورند.
  • این خروجی‌ها باید به اندازه‌ای دقیق باشند که امکان پیاده‌سازی و تصدیق صحیح را فراهم کنند.

اقدامات مورد نیاز برای گردآوری خروجی‌ها

  • مستند معماری سیستم (شامل دیدگاه‌های ساختاری، رفتاری و استقرار) تهیه گردد
  • مشخصات طراحی جزئی Detail Design برای هر ماژول یا زیر ماژول نرم‌افزار تهیه گردد(مانند نمودارهای توالی، طراحی پایگاه داده).
  • اطلاعات لازم برای تأمین هرگونه سخت‌افزار، نرم‌افزار یا خدمات جانبی مورد نیاز برای عملکرد سیستم تهیه گردد.
  • کد منبع (Source Code) نهایی و کامنت‌گذاری شده
  • معیارهای پذیرش برای آزمون‌های نهایی (مانند حداکثر زمان پاسخ‌گویی، نرخ خطا) که امکان نظارت و اندازه‌گیری را فراهم می‌نماید تهیه گردد.
  • مستندات راهنمای کاربر، مستندات استقرار، نصب و نگهداری نرم‌افزار. برای سطوح محتلف نظیر کاربران نهایی، تسهیلگر نرم‌افزار تهیه گردد.
  • خروجی‌ها باید به‌وضوح الزامات ورودی را برآورده سازند و تأیید شوند. این تأیید، معمولاً از طریق یک بازنگری رسمی قبل از انتشار خروجی‌ها به فاز بعدی صورت می‌گیرد تا از انطباق و کامل بودن آن‌ها اطمینان حاصل شود.
  • کنترل‌های طراحی و توسعه نرم‌افزار
  • این مرحله شامل مجموعه‌ای از اقدامات کنترلی است که در طول فرآیند طراحی اعمال می‌شود تا ریسک‌ها را مدیریت کرده و از رسیدن به نتایج مورد نظر اطمینان حاصل شود بازنگری طراحی یکی از حیاتی‌ترین این کنترل‌ها است.
  • اقدامات مورد نیاز برای کنترل‌های طراحی
  • برنامه‌ریزی و اجرای جلسات رسمی بازنگری در نقاط تعیین شده (مثلاً پس از تکمیل معماری یا طراحی پایگاه داده).
  • مشارکت نمایندگانی برای ارزیابی عملکردهای مختلف (مانند توسعه، تضمین کیفیت و مشتری) .

تصدیق طراحی نرم افزار Verification

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

اقدامات مورد نیاز برای تصدیق طراحی نرم افزار

اجرای آزمون‌های فنی و جزء به جزء 
  • آزمون واحد (Unit Testing): بررسی عملکرد صحیح کوچک‌ترین واحدهای کد.
  • آزمون یکپارچگی (Integration Testing): تضمین تعامل صحیح ماژول‌های مختلف سیستم با یکدیگر.
  • آزمون‌های سیستمی (System Testing): ارزیابی عملکرد کلی سیستم بر اساس مشخصات فنی.
انجام بازرسی‌های تخصصی و تجزیه و تحلیل‌ها
  • بازرسی کد (Code Inspection) و بازنگری‌های همتا (Peer Reviews): بررسی کد منبع توسط توسعه‌دهندگان دیگر برای شناسایی نقایص و اطمینان از رعایت استانداردهای کدنویسی.
  • تجزیه و تحلیل استاتیک (Static Analysis): استفاده از ابزارها برای بررسی خودکار کد از نظر وجود نقص‌های رایج یا مشکلات امنیتی.

تمامی عدم انطباق‌ها، باگ‌ها و خطاهای شناسایی شد ثبت و تعیین تکلیف گردد.

برنامه‌ریزی برای آزمون‌های کاربردی و پذیرش برای اطمینان از مناسب بودن برای استفاده مورد نظر و ثبت و نگهداری سوابق مرتبط با آن‌ها.

صحه‌گذاری طراحی Validation

  • توضیحات در خصوص صحه‌گذاری: صحه‌گذاری، اثبات عینی این واقعیت است که نرم‌افزار، پس از تکمیل، توانایی برآورده ساختن الزامات مربوط به کاربرد مشخص یا هدف مورد نظر را دارد. این مرحله، پلی است میان تیم توسعه و نیاز واقعی کاربر، و موفقیت نهایی پروژه را تأیید می‌کند.
  • صحه گذاری (Validation)، فرآیند آزمون نهایی برای پاسخ به این پرسش است: “آیا محصول مناسب برای کاربرد مورد نظر ساخته‌ایم؟
  • این مرحله بر عملکرد محصول در محیط عملیاتی و برآورده ساختن نیازهای واقعی کسب‌وکار تمرکز دارد.

اقدامات مورد نیاز برای صحه‌گذاری طراحی

  • اجرای آزمون پذیرش کاربر، انجام آزمون‌ها در محیطی شبیه‌سازی‌شده یا واقعی، توسط کاربران نهایی یا مشتری.
  • استفاده از سناریوهای آزمونی که مستقیماً اهداف کسب‌وکار و فرآیندهای روزمره کاربر را بازتاب دهند.
  • آزمون عملکردی (Performance Testing): ارزیابی سیستم در شرایط بار زیاد (Load Testing) یا استرس برای تأیید برآورده شدن الزامات سرعت و پاسخ‌دهی.
  • آزمون امنیتی (Security Testing): اجرای آزمون‌های نفوذ برای تأیید انطباق با الزامات امنیتی و محافظت از داده‌ها.
  • صحه‌گذاری باید بر روی محصول نهایی و تحویل‌شدنی انجام شود و معمولاً قبل از تحویل به مشتری یا استقرار در محیط عملیاتی صورت می‌گیرد.
  • نتایج صحه‌گذاری ثبت شده و تأییدیه کتبی از مشتری یا نماینده کاربر در خصوص پذیرش نهایی اخذ می‌گردد.

تغییرات طراحی

تغییرات در الزامات یا طراحی، به‌ویژه در نرم‌افزار، اجتناب‌ناپذیر است. کنترل تغییرات، فرآیندی است که تضمین می‌کند تمامی تغییرات، حتی کوچک‌ترین آن‌ها، به‌صورت سیستماتیک مدیریت شده و تأثیر آن‌ها بر کیفیت، زمان و هزینه به‌طور کامل ارزیابی شود.

اقدامات مورد نیاز برای کنترل تغییرات طراحی

  • یک رویه رسمی برای ثبت، طبقه‌بندی و اولویت‌بندی تمامی درخواست‌های تغییر از سوی هر ذی‌نفع تدوین گردد.
  • تأثیرات هر تغییر پیشنهادی بر ورودی‌ها، خروجی‌ها، اجزای دیگر نرم‌افزار (یکپارچگی)، زمان‌بندی و ریسک‌های پروژه ارزیابی گردد.
  • نسخه (Version Control) بر تمامی اجزای نرم‌افزار مشخص گردد.
  • نسخه‌های قبلی حفظ شده و توانایی بازگشت‌پذیری در صورت بروز مشکل ایجاد گردد.
  • اطلاعات مستند در مورد نتایج بازنگری، اقدامات اصلاحی انجام شده و مجوزهای رسمی برای اجرای تغییر نگهداری گردد

فرآیند طراحی و توسعه نرم‌افزار بر اساس الزامات استاندارد ISO 9001 چارچوبی قوی و قابل اتکا را برای سازمان‌های نرم‌افزاری فراهم می‌آورد.
با اجرای دقیق مراحل طرح‌ریزی سازمان‌یافته، گردآوری الزامات شفاف (ورودی‌ها)، تولید مستندات جامع (خروجی‌ها) و اعمال سخت‌گیرانه کنترل‌ها (بازنگری، تصدیق و صحه‌گذاری)، می‌توان اطمینان حاصل نمود که محصول نهایی، نه تنها انتظارات عملکردی را برآورده می‌سازد، بلکه از نظر کیفی، امنیتی و پایداری نیز در سطح جهانی قرار دارد. این رویکرد سیستماتیک، ریسک‌های پروژه را به حداقل رسانده و مسیر موفقیت پایدار در صنعت رقابتی نرم‌افزار را هموار می‌کند.

این مطلب توسط مهندس پیام خرازیان گردآوری شده است.

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *