И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина





НазваниеИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина
страница9/32
Дата публикации01.09.2013
Размер1.4 Mb.
ТипЛекция
100-bal.ru > Информатика > Лекция
1   ...   5   6   7   8   9   10   11   12   ...   32

6. Некоторые характеристики компонент программ

6.1 Поведение и состояние


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

Например, в протоколе компоненты Deal значится, что она осуществляет редактирование параметров назначенных дел, отображает их на экране, печатает на принтере. Состояние компоненты Deal включает в себя значение времени, на которое назначена встреча, примерная длительность встречи, ее краткое содержание. Состояние не является статическим и может изменяться с течением времени. Например, пользователь может перенести встречу или изменить ее содержание.

Не все компоненты обязаны иметь состояние. Например, у компоненты MainWin скорее всего не будет никаких внутренних данных. Но большинство компонент характеризуется и поведением, и состоянием.

6.2 Экземпляры и классы


Выше были разделены понятия поведения и состояния. В электронном ежедневнике будет храниться много встреч и людей. Все компоненты Deal будут вести себя одинаково. Отличается только их состояние: время встречи, фамилия человека, с кем назначена встреча, ее содержание. На ранних стадиях разработки нас интересует поведение, общее для всех компонент Deal. Детали, специфические для отдельной встречи, не важны.

Термин "класс" используется для описания множества сущностей с похожим поведением. Конкретные представители класса называются объектами. Очень важно заметить, что поведение ассоциировано с классом, а не с индивидуальными объектами. Т.е. все объекты данного класса воспринимают одни и те же сообщения и выполняют их обработку одинаково. С другой стороны, состояние является уникальной характеристикой объекта. Это видно на примере различных объектов Deal. Все они могут выполнять одинаковые действия (редактирование, вывод на экран, печать), но используют различные данные.

6.3 Скрытие информации


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

Допустим, семь компонент ежедневника разрабатываются разными программистами. Разработчик компоненты Date должен обеспечить просмотр дел, назначенных на заданную дату и выбор отдельного дела. Для этого компонента Date просто вызывает функцию browse(), привязанную к компоненте Deal Database. Эта функция возвращает из базы данных набор дел на заданную дату. Это справедливо независимо от того, как внутри Deal Database реализована работа с базой данных.

Разделение интерфейса и реализации является, возможно, наиболее важной идеей в программировании. Ее непросто понять, т.к. скрытие информации имеет значение в основном только при разработке больших проектов, над которыми работают много программистов.

Напомним принципы, сформулированные Дэвидом Парнасом:

  • разработчик компоненты должен предоставить пользователю компоненты минимум информации, позволяющий ее использовать.

  • разработчик компоненты должен знать только требуемое поведение компоненты и ничего кроме этого.

Принцип отделения интерфейса от реализации облегчает программисту экспериментирование с различными алгоритмами, не затрагивая при этом остальных компонент программы.

6.4 Типы компонент


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

Каждой обязанности, записанной на CRC-карточке компоненты, присваивается имя. Эти имена станут затем названиями функций или методов. Вместе с именами определяются типы параметров, передаваемых функциям. Затем описывается вся информация, содержащаяся внутри компоненты. Если компоненте требуются некие данные для выполнения конкретного задания, их источник (параметр функции, глобальная или внутренняя переменная) должен быть явно описан.

6.5 Имена компонент


Имена, связанные с различными действиями, должны тщательно выбираться. Они должны быть внутренне совместимы, значимы, коротки и содержательны.

Можно привести несколько положений общего характера, регулирующих выбор имен:

  • Используйте имена, которые легко произнести вслух;

  • Чтобы отметить начало слова в составном имени, надо применять заглавные буквы или символы подчеркивания (напр., CardReader или Card_Reader вместо cardreader).

  • Тщательно проверяйте сокращения (напр., непонятно, что значит TermProcess – процесс, связанный с терминалом компьютера (terminal process) или нечто, что прекращает выполнение процесса (terminate process)).

  • Избегайте многозначности имен (напр., функция empty() – выполняет проверку того, что некоторый объект пуст, или же удаляет все содержимое объекта и делает его пустым?).

  • Не используйте цифры в именах (легко перепутать 0 и O, 1 и l, 2 и Z, 5 и S).

  • Логическим функциям присваивайте такие имена, чтобы было ясно, как интерпретировать true и false (напр., PrinterIsReady ясно показывает, что значение true соответствует принтеру в рабочем состоянии, а PrinterStatus является гораздо менее точным).

После того, как для всех действий выбраны имена, CRC-карточка каждой компоненты переписывается заново с указанием имен функций и списка параметров (рис. 2.5). Но пока остается не установленным, как именно каждая компонента будет выполнять указанные действия.

После переписывания CRC-карточек необходимо еще раз детально проанализировать сценарий работы программы, чтобы гарантировать, что все действия учтены и вся необходимая информация имеется и доступна для соответствующих компонент.


Компонента Date (один день ежедневника)

Сотрудничающие
компоненты


Содержит информацию о делах, запланированных на конкретный день

Date( year, month, day )

Создает новый экземпляр
типа Date

Display()

Выводит информацию обо всех встречах на данный день

Edit()

Редактирует информацию общего характера о заданном дне

ViewPersons()

Показывает более подробную ин формацию о людях, с которыми назначены встречи на этот день

Менеджер планирования

База данных дел


Рис. 2.5. CRC-карточка для компоненты Date

1   ...   5   6   7   8   9   10   11   12   ...   32

Похожие:

И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПротокол №5 От 12 января 2012 г Заседания кафедры электроники и вычислительной...
Зав кафедрой Хакимова Г. Г. сообщила, что кафедра проводит 2-й Чемпионат по цифровой схемотехнике
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМетодические рекомендации по подготовке, оформлению, предзащите и...
В. А. Усков, заместитель декана естественно-географического факультета по развитию, доцент кафедры физической географии и методики...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПроблемы коммуникации
М. Е. Евсевьева (зав кафедрой, доцент А. А. Ветошкин); С. А. Борисова, директор Института международных отношений Ульяновского государственного...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма по формированию навыков безопасного поведения на дорогах...
Елена Святославовна Симакова, кандидат педагогических наук, доцент кафедры гуманитарных и естественнонаучных дисциплин Рязанского...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма курса по выбору «Орнитология» предназначена для студентов...
Автор программы: к б н., доцент, зав кафедрой биологии и химии Марина Николаевна Харламова
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРоссийской Федерации Федеральное государственное образовательное...
Петренко И. М., зав кафедрой экономической теории, д-р экон наук профессор Дулин М. П., зав кафедрой педагогики и психологии, д-р...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРахманкулова Людмила Кузьминична, кандидат филологических наук, доцент...
Автор программы: С. А. Виноградова, кандидат филологических наук, доцент, зав кафедрой английского языка и английской филологии
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма по формированию навыков безопасного поведения на дорогах...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconЛингвистические проблемы
Московского государственного педагогического института иностранных языков им. М. Тореза (зав кафедрой доцент Ю. А. Денисенко); д-р...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМгпу учебно-методический комплекс дисциплины
А. В. Прялухина, кандидат психологических наук, доцент, зав кафедрой психологии Российского государственного социального университета...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРабочая программа по дисциплине «теория экономического анализа»
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРабочая программа по дисциплине «международный менеджмент»
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМетодические рекомендации по написанию курсовых работ дисциплине
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconУчебное пособие Краснодар 2008
В. А. Оробец); кафедра паразитологии и ветсанэкспертизы Донского государственного аграрного университета (зав кафедрой, проф., к...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск