В основе объектного подхода к разработке программного обеспечения лежит объектная декомпозиция, т. е. представление разрабатываемого программного обеспечения в виде совокупности объектов, в процессе взаимодействия которых через передачу сообщений и происходит выполнение требуемых функций.  
Объектная декомпозиция программы построения таблиц и графиков:  
![Объектная декомпозиция программы построения таблиц и графиков](../Pictures/01_01.%20Объектная%20декомпозиция%20программы%20построения%20таблиц%20и%20графиков.png)  
Однако при объектном подходе так же, как при структурном подходе, сразу можно выполнить декомпозицию только очень простого программного обеспечения. Поэтому на заре эпохи объектно-ориентированного программирования были предложены различные методы анализа и проектирования программного обеспечения в рамках объектного подхода, использующие различные модели и нотации. Спорить о достоинствах и недостатках этих методов и моделей можно было бесконечно. Эта ситуация получила название «войны методов».  
Конец «войне методов» положило появление в 1995 г. первой версии языка UML (Unified Modeling Language - унифицированный язык моделирования - см. приложение), который в настоящее время фактически признан стандартным средством описания проектов, создаваемых с использованием объектно-ориентированного подхода. Его создателями являются ведущие специалисты в этой области: Града Буч, Ивар Якобсон и Джеймс Рамбо, которые использовали в своем языке все лучшее, что появилось в подходах этих авторов во время «войны методов».  
Спецификация разрабатываемого программного обеспечения при использовании UML
объединяет несколько моделей: использования, логическую, реализации, процессов,
развертывания.  
Полная спецификация разрабатываемого программного обеспечения при объектном подходе (UML):  
![Полная спецификация разрабатываемого программного обеспечения при объектном подходе (UML)](../Pictures/01_02.%20Полная%20спецификация%20разрабатываемого%20программного%20обеспечения%20при%20объектном%20подходе%20(UML).png)  
- **Модель использования** представляет собой описание функциональности программного обеспечения с точки зрения пользователя
- **Логическая модель** описывает ключевые абстракции программного обеспечения (классы, интерфейсы и т. п.), т. е. средства, обеспечивающие требуемую функциональность
- **Модель реализации** определяет реальную организацию программных модулей в среде разработки 
- **Модель процессов** отображает организацию вычислений и оперирует понятиями «процессы» и «нити». Она позволяет оценить производительность, масштабируемость и надежность программного обеспечения
- **Модель развертывания** показывает особенности размещения программных компонентов на конкретном оборудовании
  
Таким образом, каждая из указанных моделей характеризует определенный аспект проектируемой системы, а все они вместе составляют относительно полную модель разрабатываемого программного обеспечения.  
Всего UML предлагает девять дополняющих друг друга диаграмм, входящих в различные модели:
- диаграммы вариантов использования
- диаграммы классов
- диаграммы пакетов
- диаграммы последовательностей действий
- диаграммы кооперации
- диаграммы деятельностей
- диаграммы состояний объектов
- диаграммы компонентов
- диаграммы размещения
  
Все указанные диаграммы по возможности используют единую графическую нотацию, что облегчает их понимание.  
Помимо указанных диаграмм, как и при структурном подходе, спецификация обязательно включает словарь терминов, а также различного рода описания и текстовые спецификации. Конкретный набор документации определяется разработчиком.  
UML и предлагаемая теми же авторами методика Rational Unified Process поддерживаются пакетом Rational Rose фирмы Rational Software Corporation. Ряд диаграмм UML можно построить также средствами программы Microsoft Visual Modeler и других CASE-средств. По данным «USA Today» в настоящее время 49 из 50-ти ведущих компьютерных компаний используют UML при разработке программного обеспечения с использованием объектного подхода, что и позволяет говорить о том, что сегодня UML фактически стал стандартом описания подобных разработок.