Проектирование - это просто. Основы UML.

Все, кто занимается разработкой ПО достаточно долго, уже много раз слышали про такую стадию разработки программы, как проектирование. Тем не менее, эта стадия практически всегда остается только в умах программистов, причем в довольно абстрактном виде. У каждого свои ассоциации с этим термином, но в основном, под ним кроется что-то скучное, ненужное и трудное для понимания. На самом деле все гораздо проще и в этом цикле статьей я Вам это докажу. Начиная с самых очевидных азов проектирования, очевидных даже для новичков, мы дойдем до современных методов(я надеюсь :) ), которые применяются в больших проектах класса Enterprise.

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

Перед тем, как переходить к деталям, я бы хотел отметить одну очень важную вещь. Для чего же нужны все эти диаграммы? Зачем тратить время на эти картинки, если Вы и так знаете какой кусок кода в программе – что делает? Итак, основная задача проектирования на языке UML – это описание ключевых моментов программы на универсальном языке. Как следствие этого – по этим диаграммам в Вашей программе сможет разобраться любой программист, знающий UML.

Ну, довольно теории – переходим к практике. Начнем с такого направления в UML, как диаграммы классов.

Допустим, у нас есть такой класс.

Class Student {
    Var $name;
    Var $group;
   function Student($name, $group) {
       $this->name = $name;
       $this->group = $group;
   }
   function getName() {
   	return $this->name;
   }
   function getGroup() {
   	return $this->group;
   }
}

Диаграмма этого класса будет такой:

На диаграмме можно выделить три блока (сверху-свниз) - название, поля и методы. Все очень просто.

Для начала хватит. В следующих статьях, начнем рассматривать более реальные примеры :)





Читайте также:



14 Ответов на “Проектирование - это просто. Основы UML.”

  1. Big_Shark

    Интерестно но очень мало!

  2. cryptus

    Не хотел сразу теорией пугать громоздкой :) Скоро будет продолжение. Со временем вся необходимая информация тут будет опубликована.

  3. Big_Shark

    Ну как говоритиься Время деньги
    Чем раньше чтота узнаеш нвоое тем больше ты в плюсе)

  4. Игорь

    Хм… возможно после этих статей начну использовать UMI

  5. А диаграммки в BPWin-е рисуете или что-то более подходящее для этого есть?

  6. Дааа, маловато…
    А очень хочется ощутить, как думают программисты. Приблизиться хотя бы к алгоритмическому мышлению…

  7. Var $name;
    и
    function Student($name, $group)
    - это устаревшие конструкции из php4, если вы хотите писать код совместимый с php5 и php6, то вместо var надо использовать public, private или protected. Я обычно использую protected для наследуемых классов, а public например для хранения коннекта с БД.
    А конструктор надо обьявлять так:
    public __construct($name, $group)

    И еще в догонку, раньше многие програмисты передавали класс по ссылке, в php5 и выше этого уже делать ненадо, движок Zend делает это уже на автомате!

  8. cryptus

    2 Георгий: Диаграммы рисую в MS Visio. :)

    2 Михаил: Пока существуют хостинги с поддержкой php4, эти конструкции нельзя считать устаревшими :)

  9. Как это нельзя, команда php перестала выпускать обновления и заплатки по безопасности для php 4 с августа текущего года, и ООП модель php 4 официально обьявлена устаревшей и не будет работать в php 6. Вы предлагаете написать программу, а потом переписывать ее по новому? У моего клиента например хостинг Caravan сам обновил php 4 на php 5 и пришлось движок немного перерабатывать чтоб под php 5 работало… К тому же если хостинг до сих пор работает на php 4 бежать надо с такого! Все более менее известные и надежные хостеры давно поддерживают php 5: 1gb, Rbk (hc), FirstVDS, Caravan…

  10. H3dg3h0g

    Михаил прав. Сталкивался с тем что вечером у хостера один php,
    а утром другой, при этом заказчику по-барабану. К тому же около
    недели назад вышел еще один стабильный релиз php 5.2.8, который сменил
    “долгожителя” 5.2.7 :)

    Пост полезный, но проектирование, как мне кажется стоит везти так что бы
    не зависеть от релиза. Т.е. прописывать концепции, а реализация, это уже
    2-ая стадия приближения.

  11. cryptus

    Все зависит от типа продукта, который Вы пишете. Если это т.н. коробочные версии, то лучше придерживаться универсальных решений (которые будут работать как на php4, так и на php5), потому что это увеличивает зону покрытия клиентов :) Но это к программированию уже не относится.

    2 H3dg3h0g: Насчет ведения проектирования совершенно согласен. Это особенно касается больших проектов, во время разработки которых технологии могут смениться несколько раз. Поэтому переписывать программу по-новому все таки иногда придется, вопрос лишь в том, чтобы спроектировать ее таким образом, чтобы минимизировать кол-во кода, зависимого от платформы.

  12. alex

    Новое - хорошо забытое старое. В СССР существовал специальный
    стандарт на разработку ПО ЕСПД. И также инструментальные средства
    разработки больших проектов. Ребята не забывайте только, что все
    это необходимо при разработке именно БОЛЬШИХ проектов.

  13. […] самостоятельно. Здесь, главное иметь желание и знать основы UML, а возможностей – […]


© Copyright. . I-Novice. All Rights Reserved. Terms | Site Map