مستندسازی نرم افزار یا مستندسازی سورس کد ( انگلیسی: Software Documentation ) متنی مکتوب است که همراه نرم افزارها ارائه می گردد. این گونه متن ها معمولاً عملکرد نرم افزار و چگونگی استفاده از آن را شرح می دهند. این اسناد ممکن است برای افراد مختلف در نقش های گوناگون معانی متفاوتی داشته باشد. در مستندسازی، نقش ها از اهمیت ویژه ای برخوردار هستند.
مستندسازی بخش مهمی از مهندسی نرم افزار است. مقوله های که معمولاً برای مستندسازی مورد توجه قرار گرفته می شوند عبارتند از:
• نیازمندی ها –عباراتی که قابلیت ها، ویژگی ها یا کیفیت های یک سیستم را تعریف می کنند و زیر ساخت و پایه ای برای آنچه که باید اجرا گردد یا اجرا شده است، تلقی می گردند. تعریف دقیق و درست نیازمندی های نرم افزار، افزون برآنکه می تواند تفاهمی میان ذی نفعان و توسعه دهندگان نرم افزار باشد، سندی است مشروح از محصولی که در آینده تولید خواهد شد. مستندسازی نیازمندی ها تضمین می کند که محصول نیازهای ذینفعان را به درستی برآورده خواهد کرد.
• معماری/طرح – معماری نرم افزار و دورنمای آن که نمایش دهندهٔ نحوهٔ تعامل نرم افزار با محیط و ساختار و اجزاء نرم افزار و روابط میان این اجزاء است.
• فنی – مستندسازی کد، الگوریتم ها، رابط های کاربری و رابط برنامه نویسی کاربردی.
• کاربر نهایی – دستور راهنمایی برای کاربران هدف، راهبرهای سیستم و پشتیبان های فنی
• بازاریابی – چگونگی بازاریابی محصول و تحلیل بازار تقاضا
مستندسازی نیازمندی ها به تشریح و توضیح اینکه یک نرم افزار خاص چه می کند یا از چه عملکردهایی برخوردار است می پردازد. این تشریح در طول توسعه نرم افزار مورد استفاده قرار می گیرد تا شاخصی باشد برای آنچه نرم افزار انجام می دهد یا باید انجام بدهد. همچنین این مستندسازی به عنوان یک توافقنامه یا اساسی برای توافقنامه بر آنچه که یک نرم افزار انجام می دهد یا باید انجام دهد مورد استفاده قرار می گیرد. نیازمندی ها توسط تمام کسانی که در تولید نرم افزار دست اندرکار بوده اند تولید و مصرف می گردد، که تعدادی از آن ها عبارتند از: کاربران نهایی، مشتریان، مدیران محصول، مدیران پروژه، فروش، بازاریابی، معماران نرم افزار، مهندسین قابلیت مصرف، طراحان تعامل، توسعه دهندگان و سنجش گران؛ بنابراین، مستندسازی محصول اهداف مختلف و فراوانی را دنبال می کند. نیازمندی ها به روش های گوناگونی ارائه می گردد. ها می توانند به روش: شبه هدف ( مثلا ) ، ( مثلا ، builds می توان با راست کلیک کردن بر روی یک و انتخاب گزینه «build» شروع گردد ) یا هر روش دیگری ارائه شوند. آن ها همچنین می توانند به عنوان یک بیانیه به زبان طبیعی، اَشکال ، فرمول های ریاضی و ترکیبی از همه آن ها مشخص گردد. تنوع و پیچیدگی مستندسازی نیازمندی ها آن را تبدیل به چالشی حتمی نموده است. ممکن است نیازمندی ها تلویحی بوده و به سختی پیدا شود. درک این مسئله که هنگام مستندسازی نیازمندی ها تا چه اندازه باید پیش برویم و چه میزان را برای تیم های مستندسازی دیگر مانند مستندسازان طراحی و مستندسازان معماری واگذار نماییم بسیار دشوار است و دشوار تر از آن، پیاده سازی این مستند است بگونه ای که گسترهٔ مخاطبان آن که از طراحان و معماران سیستم تا ذینفعان را در بر می گیرد را اقناع کند. مستندسازی نیازمندی ها معمولا ناتمام است ( یا حتا وجود ندارد ) . بدون مستندسازی نیازمندی ها، تغییرات نرم افزاری دشوارتر بوده و به تبع خطای بیشتر ( کیفیت نرم افزاری کاهش یافته ) و زمان بیشتری ( پرهزینه تر ) را بر پیاده سازان تحمیل خواهد کرد. اهمیت مستندسازی نیازمندی ها رابطه مستقیم با پیچیدگی محصول، تأثیر محصول، و امید به زندگی نرم افزار است. اگر نرم افزار بسیار پیچیده باشد یا توسط تعداد زیادی از افراد ساخته شده باشد، مستندسازی نیازمندی ها کمک می کند تا با آنچه که قصد داریم به آن برسیم بهتر ارتباط برقرار کنیم. به عبارت دیگر دورنمای بهتری از محصول نهایی خود داشته باشیم. اگر نرم افزار برای امنی تهدید باشد یا تأثیرات منفی برای زندگی بشر داشته باشد ( برای مثال، سیستم های انرژی هسته ای، تجهیزات پزشکی ) ، مستندسازی نیازمندی های رسمی تری مورد نیاز خواهد بود. اگر بنابراین باشد که نرم افزار تنها یک یا دو ماه عمر کند ( برای مثال، اپلیکیشن موبایلی که تنها برای یک کمپین خاص ساخته شده است ) ، به مستندسازی بسیار کمتری نیاز خواهد بود. اگر قرار است یک نرم افزار نسخه اولیه باشد که بعدتر نسخه های دیگری بر اساس آن ساخته شوند، مستندسازی نیازمندی ها در زمان مدیریت تغییر نرم افزار و تأیید اینکه هیچ چیزی در نرم افزار در زمان تعدیل شکسته نشده است، مفید خواهد بود. به طور سنتی، نیازمندی های نرم افزار در اسناد نیازمندی ها مشخص می گردند ( برای مثال، کاربرد اپلیکیشن های پردازش واژه و اپلیکیشن های spreadsheet ) . برای مدیریت پیچیدگی روزافزون و ذات متغیر مستندسازی نیازمندی ها ( و به طور کلی، مستندسازی نرم افزار ) ، سیستم های دیتابیس محور و ابزار مدیریت نیازمندی ها مبتنی بر اهداف خاص به وجود آمده اند که حامیان فراوانی دارند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفمستندسازی بخش مهمی از مهندسی نرم افزار است. مقوله های که معمولاً برای مستندسازی مورد توجه قرار گرفته می شوند عبارتند از:
• نیازمندی ها –عباراتی که قابلیت ها، ویژگی ها یا کیفیت های یک سیستم را تعریف می کنند و زیر ساخت و پایه ای برای آنچه که باید اجرا گردد یا اجرا شده است، تلقی می گردند. تعریف دقیق و درست نیازمندی های نرم افزار، افزون برآنکه می تواند تفاهمی میان ذی نفعان و توسعه دهندگان نرم افزار باشد، سندی است مشروح از محصولی که در آینده تولید خواهد شد. مستندسازی نیازمندی ها تضمین می کند که محصول نیازهای ذینفعان را به درستی برآورده خواهد کرد.
• معماری/طرح – معماری نرم افزار و دورنمای آن که نمایش دهندهٔ نحوهٔ تعامل نرم افزار با محیط و ساختار و اجزاء نرم افزار و روابط میان این اجزاء است.
• فنی – مستندسازی کد، الگوریتم ها، رابط های کاربری و رابط برنامه نویسی کاربردی.
• کاربر نهایی – دستور راهنمایی برای کاربران هدف، راهبرهای سیستم و پشتیبان های فنی
• بازاریابی – چگونگی بازاریابی محصول و تحلیل بازار تقاضا
مستندسازی نیازمندی ها به تشریح و توضیح اینکه یک نرم افزار خاص چه می کند یا از چه عملکردهایی برخوردار است می پردازد. این تشریح در طول توسعه نرم افزار مورد استفاده قرار می گیرد تا شاخصی باشد برای آنچه نرم افزار انجام می دهد یا باید انجام بدهد. همچنین این مستندسازی به عنوان یک توافقنامه یا اساسی برای توافقنامه بر آنچه که یک نرم افزار انجام می دهد یا باید انجام دهد مورد استفاده قرار می گیرد. نیازمندی ها توسط تمام کسانی که در تولید نرم افزار دست اندرکار بوده اند تولید و مصرف می گردد، که تعدادی از آن ها عبارتند از: کاربران نهایی، مشتریان، مدیران محصول، مدیران پروژه، فروش، بازاریابی، معماران نرم افزار، مهندسین قابلیت مصرف، طراحان تعامل، توسعه دهندگان و سنجش گران؛ بنابراین، مستندسازی محصول اهداف مختلف و فراوانی را دنبال می کند. نیازمندی ها به روش های گوناگونی ارائه می گردد. ها می توانند به روش: شبه هدف ( مثلا ) ، ( مثلا ، builds می توان با راست کلیک کردن بر روی یک و انتخاب گزینه «build» شروع گردد ) یا هر روش دیگری ارائه شوند. آن ها همچنین می توانند به عنوان یک بیانیه به زبان طبیعی، اَشکال ، فرمول های ریاضی و ترکیبی از همه آن ها مشخص گردد. تنوع و پیچیدگی مستندسازی نیازمندی ها آن را تبدیل به چالشی حتمی نموده است. ممکن است نیازمندی ها تلویحی بوده و به سختی پیدا شود. درک این مسئله که هنگام مستندسازی نیازمندی ها تا چه اندازه باید پیش برویم و چه میزان را برای تیم های مستندسازی دیگر مانند مستندسازان طراحی و مستندسازان معماری واگذار نماییم بسیار دشوار است و دشوار تر از آن، پیاده سازی این مستند است بگونه ای که گسترهٔ مخاطبان آن که از طراحان و معماران سیستم تا ذینفعان را در بر می گیرد را اقناع کند. مستندسازی نیازمندی ها معمولا ناتمام است ( یا حتا وجود ندارد ) . بدون مستندسازی نیازمندی ها، تغییرات نرم افزاری دشوارتر بوده و به تبع خطای بیشتر ( کیفیت نرم افزاری کاهش یافته ) و زمان بیشتری ( پرهزینه تر ) را بر پیاده سازان تحمیل خواهد کرد. اهمیت مستندسازی نیازمندی ها رابطه مستقیم با پیچیدگی محصول، تأثیر محصول، و امید به زندگی نرم افزار است. اگر نرم افزار بسیار پیچیده باشد یا توسط تعداد زیادی از افراد ساخته شده باشد، مستندسازی نیازمندی ها کمک می کند تا با آنچه که قصد داریم به آن برسیم بهتر ارتباط برقرار کنیم. به عبارت دیگر دورنمای بهتری از محصول نهایی خود داشته باشیم. اگر نرم افزار برای امنی تهدید باشد یا تأثیرات منفی برای زندگی بشر داشته باشد ( برای مثال، سیستم های انرژی هسته ای، تجهیزات پزشکی ) ، مستندسازی نیازمندی های رسمی تری مورد نیاز خواهد بود. اگر بنابراین باشد که نرم افزار تنها یک یا دو ماه عمر کند ( برای مثال، اپلیکیشن موبایلی که تنها برای یک کمپین خاص ساخته شده است ) ، به مستندسازی بسیار کمتری نیاز خواهد بود. اگر قرار است یک نرم افزار نسخه اولیه باشد که بعدتر نسخه های دیگری بر اساس آن ساخته شوند، مستندسازی نیازمندی ها در زمان مدیریت تغییر نرم افزار و تأیید اینکه هیچ چیزی در نرم افزار در زمان تعدیل شکسته نشده است، مفید خواهد بود. به طور سنتی، نیازمندی های نرم افزار در اسناد نیازمندی ها مشخص می گردند ( برای مثال، کاربرد اپلیکیشن های پردازش واژه و اپلیکیشن های spreadsheet ) . برای مدیریت پیچیدگی روزافزون و ذات متغیر مستندسازی نیازمندی ها ( و به طور کلی، مستندسازی نرم افزار ) ، سیستم های دیتابیس محور و ابزار مدیریت نیازمندی ها مبتنی بر اهداف خاص به وجود آمده اند که حامیان فراوانی دارند.
wiki: مستندسازی نرم افزار