ابزار توسعه نرم‌افزار

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

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

غالب ابزارهای اولیه و اساسی که در همه جا و به‌طور مداوم استفاده می‌شوند، ویرایشگر کد (source code editor)، کامپایلر (compiler) و مفسر (interpreter) هستند. اما سایر ابزارها بر اساس زبان برنامه‌نویسی، متدولوژی (روش) توسعه و فرد مهندس ممکن است بیشتر یا کمتر بکار برده شوند و غالباً برای یک وظیفه و کار مستقل و جدا مثل خطا یابی یا تحلیل برنامه (profiler) که میزان فضای برنامه را می‌سنجد یا زمانی که برای اجرا لازم دارد و... استفاده می‌شوند.

ابزارها ممکن است برنامه‌ها را به بخش‌هایی تقسیم کنند و جداگانه آن‌ها را اجرا کنند که اغلب از طریق خط فرمان (command line) انجام می‌گیرد یا ممکن است بخشی از یک برنامه بزرگ به نام یک محیط توسعه یکپارچه (IDE) باشند.

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

تمایز میان ابزارها و برنامه‌ها مبهم و تیره است. برای مثال توسعه دهندگان پایگاه داده‌های ساده را یعنی چیزی مثل یک فایل که شامل لیستی از مقادیر مهم هستند را همیشه به عنوان ابزار بکار می‌برند. درحالی که یک پایگاه داده کامل معمولاً یک برنامه مستقل یا نرم‌افزار است.

ابزارهای کامپیوتری کمکی مهندسی نرم‌افزار (case tools) بر روی طراحی و پشتیبانی معماری، تأکید دارند مثل UML. اما معروف‌ترین این ابزارها همان محیط‌های توسعه یکپارچه (IDE) هستند.

لیست ابزارها 
ابزارهای نرم‌افزاری در اشکال و فرم‌های مختلف وجود دارند که در زیر لیستی از آن‌ها آمده است:
 Binary compatibility ابزاری برای تحلیل است.
 Bug databases: Comparison of issue tracking systems - شامل سیستم‌های ردیابی خطا هست
 ابزارهایی برای ساخت برنامه‌ها هستند: Build automation, List of build automation software
 Call graph
 Code coverage: Code coverage#Software code coverage tools.
 سایت‌هایی برای اشتراک کد:Freshmeat, Krugle, Sourceforge, GitHub. See also Code search engines.
 Compilation and linking tools: GNU toolchain, gcc, Microsoft Visual Studio, CodeWarrior, Xcode, ICC
 Debuggers: Debugger#List of debuggers. See also Debugging.
 Disassemblers: Generally reverse-engineering tools.
 Documentation generators: Comparison of documentation generators, help2man, Plain Old Documentation, asciidoc
 Formal methods: Mathematical techniques for specification, development and verification
 GUI interface generators
 Library interface generators: SWIG
 Integration Tools
 Memory debuggers are frequently used in programming languages (such as C and C++) that allow manual memory management and thus the possibility of memory leaks and other problems. They are also useful to optimize efficiency of memory usage. Examples: dmalloc, Electric Fence, Insure++, Valgrind
 Parser generators: Parsing#Parser development software
 Performance analysis or profiling: List of performance analysis tool
 Revision control: List of revision control software, Comparison of revision control software
 Scripting languages: PHP, Awk, Perl, Python, REXX, Ruby, Shell, Tcl
 Search: grep, find
 Source code Clones/Duplications Finding: Duplicate code#Tools
 Source code editor
 Text editors: List of text editors, Comparison of text editors
 Source code formatting: indent
 Source code generation tools: Automatic programming#Implementations
 Static code analysis: lint, List of tools for static code analysis
 Unit testing: List of unit testing frameworks

محیط توسعه یکپارچه (IDE) 
محیط‌های توسعه یکپارچه (IDE) ویژگی‌های ابزارهای مختلف را باهم ترکیب کرده و در یک بسته آورده‌اند. این محیط‌ها انجام وظایف و کارهای خاص را آسان تر کرده‌اند مثلاً امکان جستجو یک محتوا یا متن در فایل‌های یک پروژه خاص. کاربرد دیگر IDEها در توسعه سطح سازمانی برنامه هاست.

همچنین بعضی از IDEها، مثل eclipse، هم محیطی برای برنامه‌نویسی می‌باشند و هم محیطی برای مستندسازی و هم محیطی برای اجرا و کامپایل برنامه‌ها که مزایای زیادی دارد و فرد را از نصب ابزارهای مختلف با محیط کاربری مختلف و... بی‌نیاز می‌کند.

جستارهای وابسته 

 بیزی‌باکس

منابع 
 https://en.wikipedia.org/w/index.php?title=Programming_tool&oldid=715163512

ابزارهای برنامه‌نویسی کامپیوتر