- •КРИТЕРИИ ОБЪЕКТНО- ОРИЕНТИРОВ АННОЙ СИСТЕМЫ
- •Скрытие информации (information hiding)
- •Метод и язык (Method and Language) - охватывают мыслительные процессы и нотацию, использующуюся
- •Критерии категории «Метод и язык»
- •Бесшовность (seamlessness)
- •Классы
- •Утверждения (Assertions)
- •Классы как модули
- •Классы как типы
- •Вычисления, основанные на компонентах
- •Обработка исключений (Exception handling)
- •Статическая типизация (static typing)
- •Универсальность (genericity)
- •Одиночное наследование (single inheritance)
- •Множественное наследование (Multiple inheritance)
- •Дублируемое наследование (Repeated inheritance)
- •Ограниченная универсальность (Constrained genericity)
- •Переопределение (redefinition)
- •Полиморфизм
- •Динамическое связывание
- •Выяснение типа объекта в период выполнения
- •Отложенные (deferred) свойства и классы
- •Управление памятью (memory management) и сборка мусора (garbage collection)
- •Критерии категории «Реализация и среда»
- •Автоматическое обновление (automatic update)
- •Быстрое обновление (fast update)
- •Живучесть (persistence)
- •Документация
- •Быстрый просмотр (browsing)
- •Критерии категории «Библиотеки»
- •Базовые библиотеки
- •Графика и пользовательские интерфейсы
- •Механизмы эволюции библиотек
- •Механизмы индексации в библиотеках
Обработка исключений (Exception handling)
•Язык должен обеспечивать механизм восстановления в неожиданных аварийных ситуациях
Статическая типизация (static typing)
•Хорошо определенная система типов гарантирует безопасность работы с объектами во время выполнения программной системы
Универсальность (genericity)
•Должна существовать возможность создания классов с формальными родовыми параметрами, представляющими произвольные типы
Одиночное наследование (single inheritance)
•Должно быть возможным объявить класс наследником другого класса
Множественное наследование (Multiple inheritance)
•Класс должен иметь возможность быть наследником нескольких классов.
•Конфликты имен при наследовании разрешаются адекватным механизмом.
Дублируемое наследование (Repeated inheritance)
•При дублируемом наследовании судьбой компонентов должны управлять точно определенные правила, позволяющие разработчикам выбирать для каждого такого компонента разделение, либо дублирование
Ограниченная универсальность (Constrained genericity)
•Механизм универсальности должен поддерживать форму ограниченной универсальности
Переопределение (redefinition)
•Должно быть возможным переопределить спецификацию, сигнатуру и реализацию наследованного компонента
Полиморфизм
•Должна иметься возможность в период выполнения присоединять к сущности объекты различных возможных типов под управлением наследования
Динамическое связывание
•Вызов сущностью компонента всегда должен запускать тот компонент, который соответствует типу присоединенного объекта, а не типу сущности
