
- •Понятие информационной системы (ис). Корпоративные ис
- •Понятие жизненного цикла ис (жц ис). Стандарты жц ис.
- •Понятие жизненного цикла ис (жц ис). Каскадная модель жц ис.
- •Понятие жизненного цикла ис (жц ис). Спиральная модель жц ис.
- •Методология разработки ис. Модель зрелости cmm/cmmi.
- •Методология разработки ис. Гибкие методологии. Манифест гибкой разработки.
- •Методология разработки ис. Экстремальное программирование.
- •Методология разработки ис. Методология Scrum.
- •Методология разработки ис. Унифицированный процесс
- •10. Язык uml. Способы использования uml. Model Driven Architecture. Executable
- •12. Требования и прецеденты. Формат описания прецедента. Структура прецедента.
- •13. Модель предметной области. Концептуальные классы. Выделение концептуальных классов. Ассоциации и атрибуты концептуальных классов. Выявление ассоциаций и атрибутов концептуальных классов.
- •14. Архитектура по. Архитектурные факторы. Описание архитектуры.
- •16. Паттерн: понятие, структура, классификация.
- •1) Понятие паттерна
- •2) Структура и Классификация паттернов
- •Диаграмма прецедентов. Диаграмма развертывания.
- •Диаграмма классов. Обозначение классов. Отношение ассоциации.
- •3. Диаграмма классов. Обозначение интерфейсов. Отношение обобщения и
- •Диаграммы: конечных автоматов и деятельности.
- •5. Диаграмма последовательности.
- •Диаграмма коммуникации.
- •Принцип единственности ответственности (srp).
- •Понятие функциональной связности (Cohesion). Принцип High Cohesion.
- •9. Понятие степени связанности (Coupling). Принцип Low Coupling.
- •Принцип открытости/закрытости (ocp).
- •Solid: принцип подстановки Лискоу (lsp)
- •Solid: принцип разделения интерфейса (isp).
- •Solid: принцип инверсии зависимости (dip).
- •Формулировка
- •1. .Net Framework. Общеязыковая среда исполнения (clr). Управляемые модули и
- •Net Framework. Механизм сборки мусора.
- •C#. Объявление класса.
- •C#. Делегаты. События.
- •C#. Наследование: правила, синтаксис. Сокрытие имен.
- •C#. Приведение типов. Операторы as и is.
Solid: принцип разделения интерфейса (isp).
Принцип разделения интерфейса (англ. Interface Segregation Principle, ISP) один из пяти принципов проектирования классов в объектно-ориентированном программировании. Следование этому принципу помогает системе оставаться гибкой при внесении изменений в логику работы и пригодной для рефакторинга.
Роберт С. Мартин определил[1] этот принцип так:
Клиенты не должны зависеть от методов, которые они не используют.
Принцип разделения интерфейсов говорит о том, что слишком «толстые» интерфейсы необходимо разделять на более маленькие и специфические, чтобы клиенты маленьких интерфейсов знали только о методах, которые необходимы им в работе. В итоге, при изменении метода интерфейса не должны меняться клиенты, которые этот метод не используют.
Solid: принцип инверсии зависимости (dip).
Принцип инверсии зависимостей (англ. Dependency Inversion Principle, DIP) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах. Входит в пятёрку принципов SOLID.
Формулировка
Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
1. .Net Framework. Общеязыковая среда исполнения (clr). Управляемые модули и
сборки. Общая система типов (CTS) и Общеязыковая спецификация (CLS).
.NET Framework. состоит из:
- CLR(Common Language Runtime) – общеязыковая исполняющая среда.
- FCL (Framework Class Library) – библиотека классов Framework
Преимущества:
- единая упрощенная программная модель
- нет проблем с версиями (“ад DLL”)
- упрощенное развертывание
- работа на нескольких платформах
- интеграция языков программирования
- повторное использование кода
- автоматическая сборка мусора
- проверка безопасности типов
- взаимодействие с существующим кодом
CLR
- поддерживает приложения, разработанные на различных языках
- вместе с Framework распространяются (ассемблер IL, C#, Visual Basic .NET, J#, Jscript)
- Устанавливается в каталог: %WINDOWS%\Microsoft.NET\Framework\vверсия
Компиляция
Управляемый модуль (managed module) – стандартный исполняемый файл Windows, который требует для своего исполнения CLR
Метаданные (metadata) – «данные о данных» – набор таблиц данных, описывающих:
- какие типы определены в данном модуле
- на какие типы, определенные в других модулях, ссылается данный модуль
Использование метаданных:
- Устраняют необходимость в заголовочных файлах
- IntelliSense
- Верификация
- Сериализация/десериализация
- Сборка мусора
IL (Intermediate Language, промежуточный язык) – не зависящий от процессора псевдо-машинный язык
Особенности:
- создание и инициализация объектов
- вызов виртуальных методов
- манипулирование элементами массивов
- генерация и обработка исключений
- исполняется на любой платформе
Исполнение
JIT-компиляция (Just-in-Time, «точно в срок»): команды IL во время первого обращения к методу преобразуются в команды процессора (“native” код).
При этом осуществляется и верификация – проверка IL-кода на безопасность.
CLR работает не с модулями, а со сборками.
Сборка (assembly):
- логическая группировка одного или нескольких управляемых модулей или файлов ресурсов;
-
единица повторного использования,
безопасности и контроля версий.
Манифест, декларация (manifest) – метаданные, описывающие
- файлы, формирующие сборку
- общедоступные типы, реализованные в файлах сборки
- файлы ресурсов или данных, включенные в сборку
Framework Class Library
- FCL основана на объектно-ориентированной парадигме
- Содержит несколько тысяч типов
- Типы скомпонованы в пространства имен
Общая система типов (Common Type System, CTS) – формальная спецификация, описывающая определение типов и их поведение
- Типы (класс, структура, перечисление, интерфейс, делегат)
- Определяет элементы типов: поле, метод, свойство, событие
- Определяет правила видимости типов и доступа к их элементам public, protected, private, internal
Типы
- Ссылочные (reference types)
- Переменная содержит ссылку на объект
- При присваивании создается еще одна ссылка на тот же объект
-
Объекты размещаются в управляемой куче
- Типы-значения (value-types)
- Переменная содержит сам объект
- При присваивании создается копия объекта
- Объекты размещаются в стеке
- Элементарные (primitive types)
Видимость типа
- public (открытый)
- internal (внутренний) (тип доступен только из сборки, в которой он определен)
Члены типа
Константа – идентификатор, представляющий некую постоянную величину
Поле
Статическое Экземплярное
Конструктор экземпляров
Конструктор типа – метод, инициализирующий статические поля типа
Метод
Перегруженный оператор
Оператор преобразования — метод определяющий порядок приведения объекта из одного типа в другой
Свойство — позволяет применить синтаксис, аналогичный обращению к полю, для получения/изменения состояния объекта
Событие – метод, позволяющий объекту/типу посылать уведомления слушающему типу/объекту
Тип – позволяет определить вложенные типы
Доступ к членам типа
private – тип (и вложенные типы)
protected – тип и производные от него
internal – сборка
protected internal – тип, производные от него и любой код в сборке
public – любой код из любой сборки
Общеязыковая спецификация (Common Language Specification, CLS) – спецификация, описывающая набор правил, позволяющих типам, реализованным на разных языках взаимодействовать друг с другом.
- Учет регистра символов
- Целые числа без знака
- Перегрузка операторов
- Методы с переменным числом параметров
Общеязыковая спецификация
- Учет регистра символов
- Целые числа без знака
- Перегрузка операторов
- Методы с переменным числом параметров