JavaRush /Java блог /Архив info.javarush /Использование UML в разработке и сопровождении java-прог...
Javin
7 уровень
Stockholm

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

Статья из группы Архив info.javarush
UML (Unified Modeling Language) — унифицированный язык моделирования. Узнал об UML из замечательного повествования на форуме от alex8894 Обзор CASE-средств для построения диаграмм UML. В книге «UML for Java Programmers» Robert Cecil Martin, насколько понял, используются стандарты UML 1, т. к. ныне действующий UML вступил в действие уже после её опубликования. Однако, полагаю, основные принципы построения подобных блок-схем остались без существенных изменений. Использование UML в  разработке и сопровождении java-программ - 1Учебный пример из лекции:

/*
 * (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): Использование UML в  разработке и сопровождении java-программ - 2Интересно было бы посмотреть и сравнить с тем, какую UML- схему/диагамму этой же программы построит Intellij IDEA .
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Javin Уровень 7
22 февраля 2017
После прочтения de.wikipedia.org/wiki/Klassendiagramm (на других языках по этой теме в Википедии есть существенные дополнения и пояснения) исправил некоторые свои ошибки в диаграмме. Теперь она выглядит так:
Image Hosted by PiXS.ru