Средства разработки
Разработка программного обеспечения (англ. software engineering, software development) — это род деятельности (профессия) и процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения, используя технологии, методологию и практики из информатики, управления проектами, математики, инженерии и других областей знания.
Системы управления версиями
Система управления версиями (от англ. Version Control System или Revision Control System) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое.
- RCS — устаревшая. Потомок: CVS
- CVS — устаревшая. Потомок: Subversion
- Subversion
- Darcs
- Mercurial
- Git
Инструменты UML-моделирования (Разработка диаграмм классов и др.)
UML (сокр. от англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но в средствах выполнения UML-моделей как интерпретируемого кода возможна кодогенерация
Бесплатные программы
- NClass для C# и Java (простая и интуитивно понятная программа, есть русифицированная версия)
- Acceleo - основанная на Eclipse и EMF шаблонная система для генерации исходного кода из UML моделей.
- ArgoUML написано на языке Java
- Astade - платформо-независимое UML-средство на основе wxWidgets.
- ATLAS Transformation Language - QVT-инструмент, который способен трансформировать UML модели в другие модели. Доступно из Eclipse GMT project (Generative Modeling Tools).
- BOUML - мультиплатформенное UML 2.0 средство, генерирует код C++/Java/IDL/PHP/Python. Очень высокая производительность (написано на C++, на Qt). Лицензия GNU GPL.
- Dia: GTK+/GNOME средство для построения диаграмм, которое также поддерживает UML (Лицензия GNU GPL)
- Gaphor - GTK+/GNOME среда моделирования UML 2.0, написанная на Python
- Kivio - часть проекта KOffice
- NetBeans - с NetBeans IDE 5.5 Enterprise Pack
- Umbrello UML Modeller: программа для составления диаграмм UML для KDE
- Software Ideas Modeler: средство моделирования UML, написанное на C#
- StarUML: UML/MDA платформа для Microsoft Windows с открытым исходным кодом, выпущенная по модифицированной версии GNU GPL; написана в основном на Delphi
- Rhapsody Modeler: бесплатная версия Rhapsody для создания UML моделей для встраиваемых систем реального времени
- UML Pad - средство моделирования UML, написанное на C++/wxWidgets (лицензия GNU GPL)
Распространенные коммерческие системы
- ARIS
- Borland Together
- Enterprise Architect
- Gentleware Poseidon - удобное средство моделирования, есть русифицированная версия
- IBM Rational Rose
- MagicDraw - есть русифицированная версия
- Microsoft Visio - редактор диаграмм для Windows
- ModelMaker Tools
- ObjectDomain
- Sybase PowerDesigner — полнофункциональный инструментарий для создания бизнес-приложений.
- SmartDraw
- Telelogic Rhapsody - среда разработки на основе визуального моделирования для разработчиков встраиваемых систем реального времени
- UML Studio
- Visual Paradigm for UML
Шаблоны проектирования
Шаблоны проектирования, паттерн (англ. design pattern) — это многократно применяемая архитектурная конструкция, предоставляющая решение общей проблемы проектирования в рамках конкретного контекста и описывающая значимость этого решения. Паттерн не является законченным образцом проекта, который может быть прямо преобразован в код. Это описание или образец для того, как решить задачу таким образом, чтобы это можно было использовать в различных ситуациях. Объектно-ориентированные шаблоны зачастую показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться.
- Ольга Дубина Обзор паттернов проектирования — Обзор нескольких наиболее значительных монографий, посвященных паттернам проектирования информационных систем.
- Каталог шаблонов J2EE
- Один из многих сайтов с шаблонами проектирования на Perl
- Portland Pattern Repository — список шаблонов проектирования на движке вики
- mgrand’s book — сайт с описанием большого количества шаблонов проектирования
- Каталог шаблонов на сайте Hillside.net
- Структурные шаблоны проектирования в XML
- PHP Design Patterns Reference and Examples
- Статья из журнала PC Magazine «Шаблоны проектирования: практические примеры»
- Шаблоны проектирования на design-pattern.ru
Средства модульного тестирования
Модульное тестирование или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже написанных и оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.
Инструментарий:
- C++ (CPPUnit, Boost Test, Google C++ Testing Framework, Symbian, API Sanity Autotest)
- Delphi (DUnit)
- Perl (Test, Test::Simple, Test::Unit, Test::Unit::Lite)
- PHP (SimpleTest, PHPUnit)
- Python (PyUnit, PyTest, Nose)
- Visual Basic (vbUnit)
- JavaScript (JsUnit)
