Книги по процессам разработки программного обеспечения всегда были распространены, а расцвет гибкой разработки привел к появлению множества новых публикаций. Моим любимым изданием по основным аспектам процесса является книга [31]. В ней с практической точки зрения рассмотрены многие моменты процесса разработки программных продуктов и приведен большой перечень полезных приемов.
Хороший обзор дается в книгах представителей сообщества, поддерживающего гибкие процессы, [9] и [22]. Много хороших советов по применению UML в режиме гибкой разработки можно найти в [1].
Одним из наиболее популярных методов гибкой разработки является ХР (Extreme Programming - экстремальное программирование), в изучении которого помогут веб-сайты https://xprogramming.com и https:// www.extremeprogramming.org. По ХР написано множество книг, вот почему теперь я называю его бывшим легковесным методом. Обычно изучение начинают с книги [2].
Хотя книга [3] посвящена ХР, в ней подробно рассказывается о планировании итеративных проектов. Большую часть этой информации можно найти и в других книгах по ХР, но если вас интересует только аспект планирования, то она будет хорошим выбором.
Дополнительную информацию по Rational Unified Process вы найдете в книге [28] - моем любимом введении в данный вопрос.
Диаграммы классов: основы
Если кто-нибудь подойдет к вам в темном переулке и спросит: «Хотите посмотреть на диаграмму UML?», знайте - скорее всего, речь идет о диаграмме класса. Большинство диаграмм UML, которые я встречал, были диаграммами классов. Помимо своего широкого применения диаграммы классов концентрируют в себе большой диапазон понятий моделирования. Хотя их основные элементы используются практически всеми, более сложные элементы применяются не так часто. Именно поэтому я разделил рассмотрение диаграмм классов на две части: основы (данная глава) и дополнительные понятия (глава 5).
Диаграмма классов описывает типы объектов системы и различного рода статические отношения, которые существуют между ними. На диаграммах классов отображаются также свойства классов, операции классов и ограничения, которые накладываются на связи между объектами. В UML термин функциональность (feature) применяется в качестве основного термина, описывающего и свойства, и операции класса.
На рис. 3.1 изображена типичная модель класса, понятная каждому, кто имел дело с обработкой заказов клиентов. Прямоугольники на диаграмме представляют классы и разделены на три части: имя класса (жирный шрифт), его атрибуты и его операции. На рис. 3.1 также показаны два вида связей между классами: ассоциации и обобщения.