مستندسازی (Documentation) نرم افزار

در این قسمت در رابطه با اهمیت ایجاد مستندات نرم افزار صحبت خواهیم کرد. هر متن، تصویر و یا ویدیویی که به منظور توصیف عملکرد یک محصول نرم‌افزاری تولید شود، اصطلاحاً به آن document و یا مستندات نرم افزار می‌گویم. کاربران می‌توانند از این مستندات استفاده کنند تا بتوانند به بهترین شکل از نرم افزار تولید شده بهره مند شوند. علاوه بر این؛ برنامه نویسان، تجزیه و تحلیل گران سیستم و مدیران نیز می‌توانند از این گونه مستندات برای نگهداری و توسعه نرم‌افزار استفاده کنند. در مراحل مختلف روند توسعه نرم‌افزار ممکن است مستندات برای کاربران مختلف تولید شوند. به عبارت دیگر؛ مستندات نرم‌افزار و تولید آن، یک فرآیند بسیار ضروری در روند توسعه نرم افزار می باشد. در این رابطه توصیه می‌کنیم از آموزش متنی فرآیندهای توسعه نرم افزار (SDLC) دیدن کنید.

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

  • مستندات می‌بایست از نقطه نظر خواننده تولید شوند.
  • مستندات می بایست غیر مبهم باشد.
  • نباید اطلاعات مختلف در مستندات تولید شده تکرار شود.
  • از استانداردهای صنعت نرم‌افزار در مستندات استفاده می‌شود.
  • مستندات باید با تغییرات اخیر محصول نرم افزاری به روز بشود.
  • مستنداتِ تاریخ گذشته می بایست از بین برود و یا در جایی ثبت و ضبط بگردد.

مزیت‌های تولید مستندات

تولید مستندات برای یک نرم‌افزار، مزیت‌های بسیار زیادی دارد که در ادامه به برخی از مهمترین آنها اشاره می کنیم:

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

مثال هایی از مستندات تولید شده

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

  • معرفی user manual: این نوع از مستندات، دستورالعمل ها و روند های مختلف کار کردن با قابلیت های نرم افزار تولید شده را برای کاربر نهایی توصیف می‌کند.
  • معرفی operational manual: این نوع از مستندات، تمامی عملیاتی که می‌توانند توسط نرم‌افزار تولید شوند را توصیف می‌کند.
  • مستندات design document: این نوع از مستندات، یک دید کلی از طراحی و عناصر مختلف نرم افزار تولید شده را به طور مفصل در اختیار می گذارد. به عبارت دیگر؛ مباحثی از قبیل data flow diagramها و entity relationship diagramها در این نوع از مستندات قرار می گیرند.
  • مستندات requirement document: این نوع از مستندات، لیستی از تمامی نیازمندی‌های سیستم به همراه تجزیه و تحلیل اعتبارسنجی آن نیازمندی‌ها را در اختیار قرار می دهد. در این مستندات مواردی از قبیل؛ user caseها و همچنین real-life scenarioها را خواهیم داشت.
  • مستندات technical documentation: این نوع از مستندات، مربوط به کامپوننت های واقعی برنامه نویسی از قبیل؛ الگوریتم ها، فلوچارت ها، کدهای برنامه، ماژول های برنامه و دیگر موارد مشابه هستند.
  • مستندات testing document: این نوع از مستندات، برنامه های تست نرم‌افزار و test caseها و validation planها و verification planها و test resultها را در خود جای می‌دهد. روند تست نرم افزار یکی از مهمترین مراحل تست نرم‌افزار است که می بایست در آن مستندات واحد و عمیقی تولید گردد. ضمناً در این رابطه از آموزش ویدئویی توسعه تست محور نرم افزار (Test-Driven Development) در سی شارپ استفاده کنید.
  • مستندات list of known bugs: همانطور که گفتیم، هر سیستم نرم افزاری می تواند دارای خطا ها و bugهای مختلفی باشد که می بایست برای بهبود شرایط یک نرم‌افزار کشف ‌شده و سپس از بین بروند. این موضوع نیاز به برنامه‌ریزی، تلاش و همچنین زمان خواهد داشت. این گونه از خطاها می بایست در مستندات نرم‌افزار تولید شده قرار بگیرند و در زمانی دیگر حذف شوند. این موضوع می تواند به کاربران نهایی، برنامه نویسان و کسانی که قصد نگهداری برنامه را دارند نیز کمک کند.