ابزار توسعه نرمافزار
ابزار توسعه نرمافزار یا همان ابزار برنامهنویسی در واقع یک برنامه کامپیوتری است که توسعه دهندگان نرمافزار بمنظور ایجاد، خطایابی، نگهداری یا دیگر پشتیبانیهای لازم برای برنامهها و نرمافزارها ان را بکار میبرند.
معمولاً این لفظ در مورد برنامههای ساده بهم مرتبط بکار میرود که میتوانند باهم ترکیب شوند تا یک وظیفه را انجام دهند. توانایی بکارگیری ابزارهای مولد گوناگون معیاری برای سنجش میزان مهارت یک مهندس نرمافزار است.
غالب ابزارهای اولیه و اساسی که در همه جا و بهطور مداوم استفاده میشوند، ویرایشگر کد (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، هم محیطی برای برنامهنویسی میباشند و هم محیطی برای مستندسازی و هم محیطی برای اجرا و کامپایل برنامهها که مزایای زیادی دارد و فرد را از نصب ابزارهای مختلف با محیط کاربری مختلف و... بینیاز میکند.