Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 24 25 26 27 28 29 < 30 > 31 32 33 34 35 36 .. 426 >> Следующая

В требованиях следует определить показатели производи-
тельности. Если они связаны с использованием ресурсов, надо
определить приоритеты для разных ресурсов, в том числе
соотношение быстродействия, использования памяти и затрат.
Архитектура должна включать оценки производительности и
объяснять, почему разработчики архитектуры считают эти
показатели достижимыми. Если они могут быть не достигнуты, это
тоже должно быть отражено в архитектуре. Если для достижения
некоторых показателей требуются специфические алгоритмы или
типы данных, также укажите это в спецификации архитектуры.
Кроме того, в архитектуре можно указать объем пространства и
время, выделяемые каждому классу или объекту.
Масштабируемость
Масштабируемостью называют возможность системы адаптироваться
к росту требований. Архитектура должна описывать, как система
будет реагировать на рост числа пользователей, серверов,
сетевых узлов, записей в БД, транзакций и т. д. Если развитие
системы не предполагается и ее масштабируемость не играет
роли, это должно быть явно указано в архитектуре.
Взаимодействие с другими системами
Если некоторые данные или ресурсы будут общими для
разрабатываемой системы и других программ или устройств, в
архитектуре нужно указать, как это будет реализовано.
Шр://сс2е.сот/0330
Дополнительные сведет Прекрасное обсуждение защиты ПО с", в
книге "Writing Secure Code, 2d Ed" {Howard and USIanc 2003) и
а январском номере журнала "IEEE Software* за 2002 год.
Дополнительные сведения 0 про* актировании высокопроизводи-
тельных систем см. книгу Конни Смит "Performance Engineering
of Software Systems" 1990).
46 ЧАСТЬ I Основы разработки ПО
Интернационализация/локализация
"Интернационализацией" называют реализацию в программе
поддержки региональных стандартов. Вместо слова
"internationalization" часто используется аббревиатура "118п",
составленная из первой и последней букв слова и числа букв
между ними. "Локализацией" (известной как "ЫОп" по той же
причине) называют перевод интерфейса программы и реализацию в
ней поддержки конкретного языка.
Вопросы интернационализации заслуживают особого внимания при
разработке архитектуры интерактивной системы. Большинство
интерактивных систем включает десятки или сотни подсказок,
индикаторов состояния, вспомогательных сообщений, сообщений об
ошибках и т. д., поэтому нужно оценить объем ресурсов,
используемых строками. Если разрабатывается коммерческая
программа, архитектура должна показывать, что при ее создании
были рассмотрены типичные вопросы, связанные со строками и
наборами символов, такие как выбор набора символов (ASCII,
DBCS, EBCDIC, MBCS, Unicode, ISO 8859 и т. д.) и типа строк
(строки С, строки Visual Basic и т. д.), а также способа
изменения строк, который не требовал бы изменения кода, и
метода перевода строк на иностранные языки, оказывающего
минимальное влияние на код и GUI. Строки можно встроить в код,
инкапсулировать в класс и использовать посредством интерфейса
или сохранить в файле ресурсов. Архитектура должна объяснять,
какой вариант выбран и почему.
Ввод-вывод
Ввод-вывод - еще одна область, на которую стоит обратить
внимание при проектировании архитектуры. Архитектура должна
определять схему чтения данных: упреждающее чтение, чтение с
задержкой или по требованию. Кроме того, она должна описывать
уровень, на котором будут определяться ошибки ввода-вывода: на
уровне полей, записей, потоков данных или файлов.
Обработка ошибок
Обработка ошибок - одна из самых сложных проблем современной
информатики, и к ней нельзя относиться с пренебрежением. По
оценкам некоторых ученых код на целых 90% состоит из блоков
обработки исключительных ситуаций, ошибок и т. п., из чего
следует, что только 10% кода отвечают за номинальный режим
работы программы (Shaw in Bentley, 1982). Раз уж на обработку
ошибок приходится такая большая часть кода, стратегия их
согласованной обработки должна быть выражена в архитектуре.
Обработку ошибок часто рассматривают на уровне конвенции
кодирования, если вообще рассматривают. Однако она оказывает
влияние на всю систему, поэтому лучше всего рассматривать ее
на уровне архитектуры. Вот некоторые вопросы, на которые нужно
обратить внимание.
¦ Является ли обработка ошибок корректирующей или
ориентированной на их простое обнаружение? В первом случае
программа может попытаться восстановиться от последствий
ошибки. Во втором - может продолжить работу как ни в чем не
бывало или завершиться. Как бы то ни было, она должна извес-
тить пользователя об ошибке.
ГЛАВА 3 Семь раз отмерь, один раз отрежь: предварительные
условия
47
¦ Является ли обнаружение ошибок активным или пассивным?
Система может активно предвосхищать ошибки (например,
проверяя корректность данных, введенных пользователем) или
пассивно реагировать на них только в том случае, если
избежать их не удалось (например, когда введенные
пользователем данные привели к численному переполнению). В
Предыдущая << 1 .. 24 25 26 27 28 29 < 30 > 31 32 33 34 35 36 .. 426 >> Следующая