Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура информационных систем. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
676 Кб
Скачать

3.6.2. Антишаблоны проектирования

При разработке ИС зачастую нет необходимости реализовывать все из вышеперечисленных шаблонов проектирования. Несмотря на то,

что шаблоны проектирования упрощают и унифицируют разработку ИС, некорректная их реализация усложняет чтение и понимание про-

граммного кода другими разработчиками (и даже самим автором про-

граммного кода, если он анализирует свой код после длительного пере-

рыва в работе с ним). Куда более важным при разработке ИС является избегание применения в работе так называемых антишаблонов проек-

тирования – программных практик, усложняющих разработку и сопро-

вождение ИС.

Антишаблоны проектирования условно можно разделить на сле-

дующие группы [2]:

антишаблоны в управлении разработкой ИС;

антишаблоны в разработке ИС;

антишаблоны структурного программирования;

антишаблоны объектно-ориентированного программирования;

методологические антишаблоны;

организационные антишаблоны.

Куправленческим антишаблонам можно отнести:

дым и зеркала (smoke and mirrors) – демонстрация стейкхолде-

ру ещё не реализованных функций ИС;

раздувание программного обеспечения (software bloat) – неоп-

равданное увеличение требований к вычислительным ресурсам с каждым новым выпуском ИС;

функции для галочки (options checkbox) – добавление в ИС сущностей, не соответствующих модели предметной области.

63

Вразработке ИС выделяют следующие антишаблоны:

много шума из ничего (gas factory) – чрезмерное усложнение архитектуры системы для решения простых вычислительных задач;

раздувание интерфейса (interface bloat) – нарушение принципа разделения интерфейсов;

магическая кнопка (magic button) – реализация бизнес-логики ИС внутри метода - обработчика события нажатия на кнопку.

К антишаблонам структурного программирования можно

отнести:

действие на расстоянии (action at a distance) – реализация функ-

ций с побочными эффектами;

лодочный якорь (boat anchor) – сохранение неиспользуемой части ИС;

инерцию кода (code momentum) – избыточное ограничение функционала системы для учёта побочных эффектов ПО;

таинственный код (cryptic code) – использование неизвестных аббревиатур в программном коде;

магические числа (magic numbers) – использование числовых и строковых значений без именования (в виде константы или переменной);

процедурный код (procedural code) – применение структурной парадигмы при написании любого программного кода;

спагетти-код (spaghetti code) – код, порядок выполнения кото-

рого затруднён для восприятия;

мыльный пузырь (soap bubble) – класс, содержащий данные, не используемые ни одним экземпляром этого класса в течение

всего их жизненного цикла.

64

Антишаблонами объектно-ориентированного программирова-

ния можно назвать:

базовый класс-утилиту (base bean) – наследование классов от вспомогательного класса-утилиты;

божественный объект (god object) – одна программная сущ-

ность оперирует неоправданно большим объёмом данных;

синголтонизм (singleton) – чрезмерно частое прибегание к ис-

пользованию шаблона «Одиночка».

Кметодологическим антишаблонам проектирования можно

отнести:

программирование методом копирования (copy/paste programming) – написание ИС путём копирования отдельных методов системы;

дефакторинг (defactoring) – удаление функциональности с со-

ответствующим изменением документации;

золотой молоток (golden hammer) – применение одного «уни-

версального» решения различных задач;

преждевременную оптимизацию (premature optimization) – оп-

тимизацию ИС без явных требований к её проведению;

изобретение колеса (reinventing the wheel) – создание собствен-

ного решения, когда существует хорошее готовое решение.

Организационными шаблонами проектирования называют:

дойную корову (cash cow) – отсутствие доработок в проекте,

приносящем стабильный доход;

продолжительное устаревание (continuous obsolescence) – чрез-

мерно большие усилия, направленные на перенос ИС в другие окружения, не запланированные на начальном этапе её разра-

ботки;

65

ползущее улучшение (creeping featurism) – улучшение отдель-

ных характеристик системы без добавления в неё нового функ-

ционала;

я тебе это говорил (i told you so) – недостаточная формализация задач по разработке, устное описание задач по разработке.

66

Библиографический список

1А. Горкин, Архитектура // Новая иллюстрированная энциклопедия. Т.2. – М.: Большая Российская энциклопедия, 2001. – C.21-22.

2М. Рыбальченко, Архитектура информационных систем. – М.: Юрайт, 2018. – С.91.

3Ю. Лисецкий, Система управления предприятием // Программные продукты и системы. – Тверь: Научно-исследовательский институт «Центрпрограммсистем», 2018. – С.246-252.

4А. Козадаев, Информационные системы в управлении розничными продажами непродовольственных товаров // Сервис в России

иза рубежом. – 2011. – № 4. [Электронный ресурс]: https://cyberleninka.ru/article/n/informatsionnye-sistemy-v-upravlenii- roznichnymi-prodazhami-neprodovolstvennyh-tovarov (дата обращения: 15.05.2022).

5Д. Аникеев, Особенности консолидирующей биллинговой системы расчетно-платежного комплекса «Абонент+» // IV Международный научно-технический форум «Современные технологии в науке

иобразовании»: сборник трудов. Т.9. РГРТУ. – 2021. – С.230-233.

6В. Борисов, К. Большаков, Телекоммуникационные системы и сети. – Российский государственный университет нефти и газа (национальный исследовательский университет) имени И. М. Губкина.

– Оренбург. – 2019. – С.266.

7А. Гусева, Геоинформационные системы // Горный инфор- мационно-аналитический бюллетень (научно-технический журнал). –

2013.

5.

[Электронный

ресурс]:

https://cyberleninka.ru/article/n/geoinforma-tsionnye-sistemy (дата обраще-

ния: 15.05.2022).

67

8Г. Мартинов, Развитие систем управления технологическими объектами и процессами // Вестник МГТУ "Станкин". – 2008. – № 1.

С.74-79.

9В. Маркелов, И. Соловьев, В. Цветков, Интеллектуальные транспортные системы как инструмент управления // Economic Consultant. – 2014. – № 3 (7). [Электронный ресурс]: https://cyberleninka.ru/article/n/intellektualnye-transportnye-sistemy-kak- instrument-upravleniya (дата обращения: 15.05.2022).

10А. Гусев, Медицинские информационные системы: состояние, уровень использования и тенденции // Врач и информационные технологии. – 2011. – № 3. [Электронный ресурс]: https://cyberleninka.ru/article/n/meditsinskie-informatsionnye-sistemy- sostoyanie-uroven-ispolzovaniya-i-tendentsii (дата обращения: 15.05.2022).

11А. Апаева, Информационные технологии в образовании // Традиции и инновации в системе образования: материалы XIV Международной научно-практической конференции. – Карачаевск. – 25–27 июня 2018 года. – 2018. – С.25-30.

12Д. Аникеев, А. Маркин, А. Пудова, Сетевой SQL & NOSQL тренажер // Вестник магистратуры. – Йошкар-Ола. – 2020. – № 12-1. – С. 27-29.

13M. Arora, Evaluating Usability in Learning Management System Using Moodle //Advances in Information Communication Technology and Computing. – Springer, Singapore. – 2022. – С. 517-526.

14Ю. Бердова, Информационные системы в биржевой торговле // Экономика и предпринимательство. – 2015. – № 12-1. – С. 836-840.

68

15А. Екимов, Информационные системы автоматизации биржевых торгов // Современные проблемы и перспективные направления инновационного развития науки. – 2016. – С. 161-163.

16Д.К. Левченко, Современные системы мониторинга и управления ресурсами // Актуальные проблемы технических наук: сборник статей международной научно-практической конференции. – Уфа: АЭТЕРНА, 2015. – С. 91.

17И.Я. Львович, А.П. Преображенский, О.Н. Чопоров, Использование информационных систем в управлении производством // Научный взгляд в будущее. – 2018. – Воронеж: Воронежский государственный технический университет. – Т. 3. – № 9. – С. 94-98.

18В.А. Ворона, В.А. Тихонов, Системы контроля и управления доступом. – М.: Горячая линия – Телеком, 2010.

19T.A. Howes, Understanding and deploying LDAP directory services. – Addison-Wesley Professional. – 2003. – С. 861.

20B. Desmond, Active Directory: Designing, Deploying, and Running Active Directory. – O'Reilly Media, Inc. – 2008. – С. 832.

21T. Valentine, Installing and Using the Apache Web Server //Database-Driven Web Development. – Apress, Berkeley, CA, 2021. – С. 155-170.

22ГОСТ Р 9126-2001. Оценка программной продукции. – Введён 2006-01-27. – М.: Стандартинформ, 2007. – С. 10.

23Э. Эванс, Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем. – СПб.: Диалектика, 2020. – С. 448.

24М. Абазьева // Актуальные вопросы права, экономики и управления: сборник статей XX Международной научно-практической конференции: в 2 ч. Классификация заинтересованных лиц в проекте

69

внедрения информационной системы компании. – Пенза. – 2019. С. 114-116.

25 Р. Мартин, Чистая архитектура. Искусство разработки про-

граммного обеспечения. – СПб.: Питер, 2018. – С. 352.

26 Е.М. Лаврищева, Программная инженерия и технологии программирования сложных систем: учебник. – 2-е изд., испр. и доп. –

М.: Издательство «Юрайт», 2019. – 432 с.

27Л.В. Городняя, Парадигмы программирования: курс лекций.

Новосибирск: РИЦ НГУ, 2015. – 206 с.

28С. Макконнел, Совершенный код. – СПб.: БХВ-Петербург, 2017. – С. 896.

29Р. Мартин, Чистый код. Создание, анализ, рефакторинг. –

СПб.: Питер, 2019. – С. 464.

30P. Hudak, Conception, evolution, and application of functional programming languages // Association for Computing Machinery Computing Surveys : journal. – 1989. – С. 359-411.

31UML Use Case Diagram Tutorial // Lucidchart [Электронный ресурс]: https://www.lucidchart.com/pages/uml-use-case-diagram (дата обращения: 05.05.2022).

32D. Prasanna, Dependency injection: design patterns using spring and guice. – Simon and Schuster. – 2009. – С. 352.

33J. Martin, Managing the Data-base Environment. – New Jersey: Englewood Cliffs, 1983. – С. 381.

34UML Component Diagram Tutorial // Lucidchart [Электрон-

ный ресурс]: https://www.lucidchart.com/pages/uml-component-diagram (дата обращения: 05.05.2022).

35 C. Szyperski, Component Software: Beyond Object-Oriented Programming. – Addison-Wesley Professional; 2nd edition. – 2002. – С. 624.

70

36 UML Class Diagram Tutorial // Lucidchart [Электронный ресурс]: https://www.lucidchart.com/pages/uml-class-diagram (дата обращения: 05.05.2022).

37UML Entity Relationship Diagram Tutorial // Lucidchart [Электронный ресурс]: https://www.lucidchart.com/pages/er-diagrams (дата обращения: 05.05.2022).

38Y.T. Lee, An IDEF1x Information Model for a Supply Chain Simulation. – Tokyo, Japan: Musashi University, 2000. – C.6.

39Data Flow Diagram Tutorial // Lucidchart [Электронный ре-

сурс]:

https://www.lucidchart.com/pages/data-flow-diagram

(дата

обращения: 05.05.2022).

40BPMN 2.0 Symbol Reference // Camunda [Электронный ресурс]: https://camunda.com/bpmn/reference/ (дата обращения: 05.05.2022).

41B. Hommes, The Evaluation of Business Process Modeling Techniques. – Delft University of Technology. – 2004. – С. 137.

42СУБД Oracle Database // Oracle [Электронный ресурс]: https://www.oracle.com/cis/database/ (дата обращения: 19.05.2022).

43Платформа данных Microsoft // Microsoft [Электронный ресурс]: https://www.microsoft.com/ru-ru/sql-server (дата обращения: 19.05.2022).

44П. Грей, Логика, алгебра и базы данных. – М.: Машиностроение, 1989. – С. 368.

45А.М. Бершадский, Л.С. Курилов, А.Г. Финогеев, Исследование стратегий балансировки нагрузки в системах распределенной обработки данных // Известия вузов. Поволжский регион. Технические науки. № 4. – Пенза: Пензенский государственный университет. – 2009.

С. 38-48.

71

46С. Ньюмен, Создание микросервисов. – СПб.: Питер, 2016.

С. 304.

47Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес, Паттерны объектно-ориентированного проектирования. – СПб.: Питер, 2020. –

С. 448.

48 О.П. Кузнецов, Г.М. Адельсон-Вельский, Автоматы // Дис-

кретная математика для инженера. – М.: Энергия, 1980. – С. 344.

49 J.O. Coplien, Pattern Languages of Program Design. – AddisonWesley Professional. – 1995. – С. 576.

72

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]