Пять критериев

Пять критериев

Чтобы обеспечить расширяемость (extendibility) и повторное использование (reusability), двух основных факторов качества, предложенных в лекции 1, необходима система с гибкой архитектурой, состоящая из автономных программных компонент. Именно поэтому в лекции 1 введен термин модульность (modularity), сочетающий оба фактора.

Модульное программирование ранее понималось как сборка программ из небольших частей, обычно подпрограмм. Но такой подход не может обеспечить реальную расширяемость и повторное использование программного продукта, если не гарантировать, что элементы сборки - модули - являются самодостаточными и образуют устойчивые структуры. Любое достаточно полное определение модульности должно обеспечивать реализацию этих свойств.

Таким образом, метод проектирования программного продукта является модульным, если он помогает проектировщикам создать систему, состоящую из автономных элементов с простыми и согласованными структурными связями между ними. Цель этой лекции - детализация этого неформального определения и выяснение того, какими конкретно свойствами должен обладать метод, заслуживающий название "модульного". Наше внимание будет сосредоточено на этапе проектирования, но все идеи применимы и к ранним этапам - анализа и спецификации, также как и к этапам разработки и сопровождения.

Рассмотрим модульность с разных точек зрения. Введем набор дополнительных свойств: пять критериев (criteria), пять правил (rules) и пять принципов (principles) модульности, обеспечивающих при их совместном использовании выполнение наиболее важных требований, предъявляемых к методу модульного проектирования.

Для практикующего разработчика ПО принципы и правила не менее важны, чем критерии. Различие лишь в причинной связи: критерии являются взаимно независимыми (метод может удовлетворять одному из них и в тоже время противоречить оставшимся), в то время как правила следуют из критериев, а принципы следуют из правил.

Можно было бы ожидать, что эта лекция начнется с подробного описания того, как выглядит модуль. Но это не так, и для этого есть серьезные основания. Задача этой и двух следующих лекций - анализ свойств, которыми должна обладать надлежащим образом спроектированная модульная структура. Вопросом о виде модулей мы займемся в конце нашего обсуждения, а не в его начале. И пока мы не дойдем до этой точки, слово "модуль" будет означать компонент разбиения рассматриваемой системы. Если вы знакомы с не ОО-методами, то, вероятно, вспомните о подпрограммах, имеющихся в большинстве языков программирования и проектирования, или, быть может, о пакетах (packages) языка Ada и (правда, под другим названием) языка Modula. Наконец, в последующих лекциях наше обсуждение приведет к ОО-виду модуля - классу. Даже если вы уже знакомы с классами и ОО-методами, все же следует прочитать эту лекцию для понимания требований, предъявляемых к классам, - это поможет правильному их конструированию.

Метод проектирования, который можно называть "модульным", должен удовлетворять пяти основным требованиям:

[x]. Декомпозиции (decomposability).

[x]. Композиции (composability).

[x]. Понятности (understandability).

[x]. Непрерывности (continuity).

[x]. Защищенности (protection).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

ИДЕИ: Пять инвариантов ИТ-образования

Из книги Журнал «Компьютерра» № 20 от 29 мая 2007 года автора Журнал «Компьютерра»

ИДЕИ: Пять инвариантов ИТ-образования Автор: Шутов, ИльяПоводом для написания этой статьи, как ни странно, послужила очередная попытка воспользоваться интерфейсом Office 2007. Видимо, я не попадаю в то счастливое подмножество пользователей, для которых эргономисты компании


ПИСЬМОНОСЕЦ: Маленькие, но по пять, но сегодня

Из книги Журнал "Компьютерра" №771 автора Журнал «Компьютерра»

ПИСЬМОНОСЕЦ: Маленькие, но по пять, но сегодня Автор: Владимир ГуриевПрочитал письма читателей в последнем номере (768) и удивился. По жалобам читателей, журнал подорожал с 35 до 49 рублей! Это из какой коммунистической страны цены? В том году я покупал журнал по 43 рубля, в этом


Сортировка по набору критериев (IComparer)

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Сортировка по набору критериев (IComparer) В этой версии типа Car в качестве критерия упорядочения мы использовали ID автомобиля, В другом случае для сортировки можно использовать, например, petName (чтобы разместить автомобили в алфавитном порядке их названий). Но что делать, если


Голубятня: Ха Пять! Сергей Голубицкий

Из книги Цифровой журнал «Компьютерра» № 75 [27.06.2011 — 03.07.2011] автора Журнал «Компьютерра»

Голубятня: Ха Пять! Сергей Голубицкий Опубликовано 29 июня 2011 года В начале лета ABBYY выпустила новый словарь Lingvo x5. Впрочем, словарь — это по инерции. Lingvo — давно уже не словарь и даже не набор словарей, а совсем совсем нечто большее. Что это за большее,


Пять правил

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Пять правил Из рассмотренных критериев следуют пять правил, которые должны соблюдаться, чтобы обеспечить модульность:[x]. Прямое отображение (Direct Mapping). [x]. Минимум интерфейсов (Few Interfaces). [x]. Слабая связность интерфейсов (Small interfaces - weak coupling). [x]. Явные интерфейсы (Explicit Interfaces). [x].


Пять принципов

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

Пять принципов Из предыдущих правил и, косвенным образом, из критериев следуют пять принципов конструирования ПО:[x]. Принцип Лингвистических Модульных Единиц (Linguistic Modular Units).[x]. Принцип Самодокументирования (Self-Documentation).[x]. Принцип Унифицированного Доступа (Uniform Access).[x].


Пять требований к модульным структурам

Из книги Компьютерра PDA N146 (19.11.2011-25.11.2011) автора Журнал «Компьютерра»

Пять требований к модульным структурам Как же найти такие модульные структуры, которые позволят создать компоненты, непосредственно готовые к повторному использованию, и, в то же время, допускающие возможность их адаптации? Задача табличного поиска и шаблон


Определение критериев выбора поставщика технологии или сервисов PKI

Из книги Компьютерра PDA N147 (26.11.2011-02.12.2011) автора Журнал «Компьютерра»

Определение критериев выбора поставщика технологии или сервисов PKI Эта лекция посвящена тем проблемам, которые необходимо рассмотреть перед развертыванием PKI. Ключ к принятию взвешенных решений - всестороннее изучение фактического состояния дел, а также требований


Пять игровых ноутбуков

Из книги Ноутбук для начинающих. Мобильно, доступно, удобно автора Ковалевский Анатолий Юрьевич

Пять игровых ноутбуков Автор: Олег НечайОпубликовано 28 ноября 2011 годаAlienware M11xНисколько не постаревший представитель редкого типа игровых субноутбуков: эта компактная модель оснащается глянцевым экраном 11,6 дюйма с разрешением 1366х768 пикселей и светодиодной подсветкой.


Пять мультимедийных ноутбуков

Из книги Инфобизнес за один день автора Ушанов Азамат

Пять мультимедийных ноутбуков Автор: Олег НечайОпубликовано 28 ноября 2011 годаAcer Aspire Ethos 8951GНовая серия мультимедийных ноутбуков премиум-класса Aspire Ethos выделяется дизайном: крышка компьютера выполнена из текстурированного матового сплава магния и алюминия, а панель под


Пять современных планшетов

Из книги C++ для начинающих автора Липпман Стенли

Пять современных планшетов Автор: Олег НечайОпубликовано 06 декабря 2011 годаAcer Iconia Tab A Series (A500/501)Дизайнеры Acer наглядно продемонстрировали, что можно создать вполне привлекательный планшет, и не копируя минималистичный образ iPad. Корпус собран из металлического сплава с


Пять классов ноутбуков

Из книги автора

Пять классов ноутбуков К сожалению, классификации в виде промышленного стандарта нет, именно поэтому PR-отделы изголяются как могут и регулярно изобретают собственные варианты. Житейский опыт подсказывает пять основных классов ноутбуков:Класс номер ноль –


13. Пять минут

Из книги автора

13. Пять минут Как научиться влиять на людей за пять минут? Берете свою тему, небольшой вопрос и рассказываете, как добиться результата за пять минут – за время прослушивания аудио, просмотра видео или чтения


12.4.6. Пять категорий итераторов

Из книги автора

12.4.6. Пять категорий итераторов Для поддержки полного набора обобщенных алгоритмов стандартная библиотека определяет пять категорий итераторов, положив в основу классификации множество операций. Это итераторы чтения (InputIterator), записи (OutputIterator), однонаправленные