C#

Организация разработки

Когда вы разрабатываете программное обеспечение, работу имеет смысл разделить на две основные задачи — организация и реализация. Организация разработки под­разумевает выяснение того, какие возможности и библиотеки вы собираетесь создать, определение количества людей, участвующих в разработке, и т.д. Реализация разработ­ки подразумевает фактическое создание и проверку исходного кода.

Организация разработки — одна из важнейших задач при написании кода, а для на­чинающих разработчиков, это обычно также самый сложный момент. Профессиональные разработчики организуют свою работу уже инстинктивно, просто они проделывали это так много раз, что процесс уже доведен до автоматизма.

Разработчики приступают к созданию программы, когда их просят написать некое программное обеспечение, реализующее набор указанных возможностей. Это может быть вычисление ежедневных платежей по процентам, автоматически создаваемые письма, система принятия или отказа от ссуд и т.д. Возможности всегда относятся к выполнению некой задачи, которая определена неким процессом. Вы могли бы сказать, что реализация возможности — это и есть реализация задачи.

Когда вы определяете возможности программы, осуществляется два главных шага.

  • Получите представление о возможностях. Вы не можете реализовать нечто, чего не понимаете. Чтобы быть способным написать исходный код, необходимо абсо­лютно точно уяснить, что от него ожидается.
  • Опишите возможности, используя структурные методы проектирования. Просто организации ваших замыслов может быть достаточно, если вы единственный че­ловек, работающий над программой; но это редкость, обычно вы работаете в со­ставе группы. Чтобы вы и участники вашей группы могли связанно изложить мысли по разработке программы, необходимо использовать структурный метод проектирования.

Самый известный метод структурирования проекта — это унифицированный язык моделирования (Unified Modeling Language — UML). Язык UML используется для органи­зации возможностей в модули, которые соответствуют конструкциям языка програм­мирования, например классов. Считайте UML специфическим языком разработчиков программного обеспечения, используемым для описания различных аспектов среды программирования на высоком уровне абстракции. Язык UML позволяет вам получать общее понятие об архитектуре программы без чтения исходного кода. Схема UML — это набросок программного обеспечения на салфетке.

Кроме UML существуют и другие способы структурирования процесса разработ­ки. Например, методика гибкой разработки программного обеспечения (agile software development). Идея гибкой разработки программного обеспечения заключается в ис­пользовании доски объявлений и разработки собственного структурного коммуникаци­онного механизма.

Выбор UML, гибкой разработки или некого другого структурного метода проекти­рования — это дело вашей группы. Но вам нужно организовывать свои мысли и иметь некий структурный метод коммуникации. В противном случае ваше программное обе­спечение опоздает с выходом, окажется недоработанным, слишком дорогим или во­обще не будет завершено. Не будет преуменьшением сказать, что организация — это половина дела.

В этой главе я собираюсь привить вам вкус к упрощенной методике структурной раз­работки, чтобы вы, по крайней мере, имели представление о том, как работает струк­турная разработка.