@startuml

skin rose
left to right direction
title текстовый редактор (диаграмма прецедентов) 
actor обычный_пользователь
actor программист

rectangle текстовый_редактор {
обычный_пользователь -- (создать файл)
обычный_пользователь -- (редактировать файл)
обычный_пользователь -- (отправить файл на печать)

программист -- (создать специальный файл)
программист -- (редактировать специальный файл)
программист -- (отправить специальный файл на печать)

(подсветить ключевые слова)
(создать файл) .> (редактировать файл) : extend
(создать файл) .> (отправить файл на печать) : extend
(отправить файл на печать) 

(создать специальный файл) .> (редактировать специальный файл) : extend
(создать специальный файл) .> (отправить специальный файл на печать) : extend
(отправить специальный файл на печать) 
(подсветить ключевые слова) ..> (создать специальный файл):<<include>>
}
@enduml



@startuml
title текстовый редактор (диаграмма классов) 
class Файл{
+Текст
}
class Файл_спец_формата{
+Текст
+Ключевые слова
}
class Пользователь{
+Имя
Предоставлять файл()
}

class Программное_обеспечение{
+исполняемый код
+подаваемые на вход файлы
}

class Область_редактирования{

}

class Нижняя_Панель{
+ количество строк
+ количество слов
}

class Меню{
+ кнопки
сохранить()
сохранить как()
открыть()
создать()
печать()
}

class Панель_инструментов{
+ размер шрифта
+ цвет
найти()
заменить()
}

Файл_спец_формата --> Файл
Пользователь ..> Файл: выбирает
Файл ..> Программное_обеспечение: подаётся на вход
Область_редактирования --> Программное_обеспечение
Меню --> Программное_обеспечение
Панель_инструментов --> Программное_обеспечение
Нижняя_панель --> Программное_обеспечение
@enduml 
