Javin
7 уровень
Stockholm

Использование UML в разработке и сопровождении java-программ

Пост из группы Архив info.javarush.ru
3786 участников
UML (Unified Modeling Language) — унифицированный язык моделирования. Узнал об UML из замечательного повествования на форуме от alex8894 Обзор CASE-средств для построения диаграмм UML. В книге «UML for Java Programmers» Robert Cecil Martin, насколько понял, используются стандарты UML 1, т. к. ныне действующий UML вступил в действие уже после её опубликования. Однако, полагаю, основные принципы построения подобных блок-схем остались без существенных изменений. Учебный пример из лекции: /* * (c) Volodya Mozhenkov 2015 * GPL version 3.0 * Almost University http://www.almost-university.com/ * VladimirMozhenkov@yahoo.com * */ // файл Main.java public class Main { private static void printRes(MyResult r) { if(r.hasResult()) { System.out.print("Результат исполнения: "); System.out.println(r.getResult()); } else { System.out.println("Результат отсутствует"); } } public static void main(String[] args) { MyCalculator c1 = new MyCalculator('/'); MyResult r = c1.calculate(4, 2); printRes(r); r = c1.calculate(40, 13); printRes(r); r = c1.calculate(1, 0); printRes(r); c1 = new MyCalculator('^'); r = c1.calculate(2, 25); printRes(r); } } // файл MyCalculator.java public class MyCalculator { private class ResultClass implements MyResult { boolean valid; int result = 0; public ResultClass() { valid = false; } public ResultClass(int result) { this.result = result; valid = true; } public int getResult() { return result; } public boolean hasResult() { return valid; } } private char operation; public MyCalculator(char operation) { this.operation = operation; } public MyResult calculate(int a, int b) { MyResult res; switch(operation) { case '*': res = new ResultClass(a*b); break; case '/': if(b!=0) { res = new ResultClass(a/b); } else { res = new ResultClass(); } break; case '+': res = new ResultClass(a+b); break; case '-': res = new ResultClass(a-b); break; default: res = new ResultClass(); break; } return res; } } // файл MyResult.java public interface MyResult { public int getResult(); public boolean hasResult(); } И, используя одну из бесплатных версий программ, довольно быстро нарисовал такую блок-схему этой программы на смартфоне (естественно с шибками, так как только начал интересоваться UML): Image Hosted by PiXS.ru Интересно было бы посмотреть и сравнить с тем, какую UML- схему/диагамму этой же программы построит Intellij IDEA .
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
MaxOn36 уровень, Москва
2 декабря 2017, 10:57
Возможно Вас заинтересует возможность в maven проекте формировать UML-диаграммы и вставлять их в Javadoc.

Посмотрите programador.ru/uml-javadoc-mavenumlgraph/.

Начните с "… Выкладываю для наглядности maven-овский проект umldemo.1.zip и полученную в итоге документацию umldemo-apidoc.zip."

Очень даже ничего получается.
Javin7 уровень, Stockholm
22 февраля 2017, 15:53
После прочтения de.wikipedia.org/wiki/Klassendiagramm (на других языках по этой теме в Википедии есть существенные дополнения и пояснения) исправил некоторые свои ошибки в диаграмме. Теперь она выглядит так:
Image Hosted by PiXS.ru