Организация разработки
Когда вы разрабатываете программное обеспечение, работу имеет смысл разделить на две основные задачи — организация и реализация. Организация разработки подразумевает выяснение того, какие возможности и библиотеки вы собираетесь создать, определение количества людей, участвующих в разработке, и т.д. Реализация разработки подразумевает фактическое создание и проверку исходного кода.
Организация разработки — одна из важнейших задач при написании кода, а для начинающих разработчиков, это обычно также самый сложный момент. Профессиональные разработчики организуют свою работу уже инстинктивно, просто они проделывали это так много раз, что процесс уже доведен до автоматизма.
Разработчики приступают к созданию программы, когда их просят написать некое программное обеспечение, реализующее набор указанных возможностей. Это может быть вычисление ежедневных платежей по процентам, автоматически создаваемые письма, система принятия или отказа от ссуд и т.д. Возможности всегда относятся к выполнению некой задачи, которая определена неким процессом. Вы могли бы сказать, что реализация возможности — это и есть реализация задачи.
Когда вы определяете возможности программы, осуществляется два главных шага.
- Получите представление о возможностях. Вы не можете реализовать нечто, чего не понимаете. Чтобы быть способным написать исходный код, необходимо абсолютно точно уяснить, что от него ожидается.
- Опишите возможности, используя структурные методы проектирования. Просто организации ваших замыслов может быть достаточно, если вы единственный человек, работающий над программой; но это редкость, обычно вы работаете в составе группы. Чтобы вы и участники вашей группы могли связанно изложить мысли по разработке программы, необходимо использовать структурный метод проектирования.
Самый известный метод структурирования проекта — это унифицированный язык моделирования (Unified Modeling Language — UML). Язык UML используется для организации возможностей в модули, которые соответствуют конструкциям языка программирования, например классов. Считайте UML специфическим языком разработчиков программного обеспечения, используемым для описания различных аспектов среды программирования на высоком уровне абстракции. Язык UML позволяет вам получать общее понятие об архитектуре программы без чтения исходного кода. Схема UML — это набросок программного обеспечения на салфетке.
Кроме UML существуют и другие способы структурирования процесса разработки. Например, методика гибкой разработки программного обеспечения (agile software development). Идея гибкой разработки программного обеспечения заключается в использовании доски объявлений и разработки собственного структурного коммуникационного механизма.
Выбор UML, гибкой разработки или некого другого структурного метода проектирования — это дело вашей группы. Но вам нужно организовывать свои мысли и иметь некий структурный метод коммуникации. В противном случае ваше программное обеспечение опоздает с выходом, окажется недоработанным, слишком дорогим или вообще не будет завершено. Не будет преуменьшением сказать, что организация — это половина дела.
В этой главе я собираюсь привить вам вкус к упрощенной методике структурной разработки, чтобы вы, по крайней мере, имели представление о том, как работает структурная разработка.