МГТУ. Системная инженерия. Лекция No.9 [1.0]
.pdfС и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Проблемы изготовления элементов в ПИ (1 / 2)
Соблюдение законов и принципов проектирования и разработки:
«корректность по построению» (англ. correctness by design);
контрактное и (или) защитное программирование (англ. code contracts vs. defensive programming);
«закон Деметра» (англ. Law of Demeter [for Functions / Methods]);
принципы S.O.L.I.D.
Использование промышленных архитектурных шаблонов (англ. architecture pattern, design pattern).
21
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Проблемы изготовления элементов в ПИ (2 / 2)
Соблюдение стандартов и соглашений (англ. style guide)
по разработке кода:
открытые: Google C++ Style Guide, Code Conventions for the Java Programming Language;
частные: корпоративные, командные и т.д.
Автоматическая генерация,
рефакторинг, комментирование
идокументирование кода.
22
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Архитектурные шаблоны в ПИ (1 / 2)
Шаблоны (жарг. паттерны) проектирования:
обобщенные типовые архитектурные решения задач архитектурного проектирования;
описание взаимодействия объектов и классов,
адаптированных для решения общей задачи проектирования в конкретном контексте.
Использование шаблонов проектирования позволяет:
повысить качество кода;
улучшить техническую документацию;
обеспечить качество сопровождения ПО.
23
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Архитектурные шаблоны в ПИ (2 / 2)
Наибольший авторитет в современной ПИ имеют:
шаблоны «банды четырех» (англ. Gang of Four, GoF) —
Эрих Гамма (нем. Erich Gamma) и др.;
шаблоны GRASP — Крейг Ларман (англ. Craig Larman, слева);
шаблоны корпоративных приложений PoEAA — Мартин Фаулер (англ. Martin Fowler, справа).
© wikipedia.org |
© wikipedia.org |
24 |
|
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Рефакторинг исходного кода
Рефакторинг (англ. refactoring) — систематическая (технологичная) деятельность по изменению внутренней структуры ПО с целью:
упростить понимание работы и модификацию исходного кода без изменения наблюдаемого (внешнего) поведения;
улучшить композицию ПО и ускорить написание кода.
+Продолжение проектирования во время разработки Поддержание качества при продолжении разработки
–Необходимость внесения изменений в работающий код; необходимость (в ряде случаев) изменения интерфейсов
25
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
«Технический долг» как метафора
«Технический долг» (англ. technical debt) — метафора, введенная Уордом Каннингемом (англ. W. Cunningham) для обозначения:
временных архитектурных решений;
применения устаревших или устаревающих технологий;
требующих устранения ошибок и «мертвого» кода;
нереализованных тестов;
невыполненных работ по рефакторингу продукта.
26
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
«Технический долг»: накопление и снижение
Накоплению технического долга способствуют:
длительность разработки;
раздробленность коллектива на небольшие команды.
Стратегии снижения технического долга предполагают:
формирование выделенной команды;
введение «технического налога».
© wikipedia.org
27
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Верификация и валидация на V- модели ЖЦ [разработки] систем
|
|
|
Верификация |
Эксплуатация |
Концепция |
и |
валидация |
и поддержка |
|
[Concept] |
|
|
[V & V] |
[Operation] |
|
|
|
|
|
Реализация
[Implementation]
28
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Процессы верификации и валидации системы (1 / 2)
Наим. |
Цель выполнения |
Результаты процесса |
|
процесса |
|||
|
|
||
|
|
|
|
|
Подтверждение полноты |
Стратегия верификации системы в течение ЖЦ |
|
Процесс верификации |
План верификации на базе системных требований |
||
реализации заданных |
|||
Доказательства соответствия системы дизайну и |
|||
|
требований в системе и |
Обнаруженные ограничения на дизайн |
|
|
получение информации |
Сведения и отчеты о результатах верификации, |
|
|
отклонениях и корректирующих действиях |
||
|
для устранения |
||
|
|
||
|
недостатков |
требованиям заинтересованных сторон |
|
|
|
||
|
|
|
Процесс передачи
Достижение системой |
Стратегия передачи |
|
Система, поставленная на площадку и |
||
способности оказывать |
||
установленная на подготовленном для этого месте |
||
услуги в операционной |
||
согласно требованиям на ее установку, связанная с |
||
среде в соответствии с |
||
операционной средой согласно спецификации и |
||
требованиями сторон |
||
способная выполнять требуемые функции |
||
|
29
С и с т е м н а я и н ж е н е р и я , 1 1 с е м е с т р
Процессы верификации и валидации системы (2 / 2)
Наим. |
Цель выполнения |
Результаты процесса |
|
процесса |
|||
|
|
||
|
|
|
|
|
|
Стратегия валидации реализуемых функций в |
|
|
|
операционной среде |
|
Процесс валидации |
Получение доказательств |
План валидации |
|
Сведения и отчеты о результатах валидации в |
|||
сторон |
|||
|
соответствия функций |
соответствии с законодательством, требованиями |
|
|
системы требованиям |
||
|
регулирующих органов и пр., а также о |
||
|
|
||
|
|
корректирующих действиях |
|
|
|
Подтверждение готовности системы к выполнению |
|
|
|
требуемых функций |
|
|
|
|
30