- •Вопросы трпп экз
- •1Основные понятия и определения программных продуктов.
- •2Классификация программных продуктов.
- •3Особенности создания программного продукта.
- •4Понятие и основные модели жизненного цикла программного продукта. Понятие модели жизненного цикла разработки программного продукта.
- •1.3.4. Обзор существующих моделей Модели жизненного цикла разработки программного продукта
- •5Процессы жизненного цикла программного продукта.
- •6Каскадная модель жизненного цикла программного продукта. Ее достоинство и недостатки. Каскадная модель жизненного цикла разработки по
- •7. Модель быстрой разработки приложений (rao-модель), область применения, достоинства и недостатки.
- •8Спиральная модель жизненного цикла программного продукта, ее достоинства и недостатки. Спиральная модель жизненного цикла разработки по
- •9Модель зрелости компании cmm.
- •10. Система стандартов iso 9001.
- •11Роль метрик в процессе разработки программного продукта
- •12Размерно-ориентированные метрики
- •13Функционально-ориентированные метрики
- •14Планирование работ по созданию программного продукта
- •Другие задачи проектирования
- •Составление временного графика выполнения пп
- •15Основные принципы структурного подхода к программированию
- •16Основные принципы объектно-ориентированного проектирования программных продуктов.
- •17Этап разработки программного продукта. Модульное тестирование.
- •1.1. Основные этапы технологического процесса разработки программ.
- •18Модульное программирование. Сущность. Основные характеристики.
- •19 Разработка справочной системы программного продукта.
- •20. Разработка дистрибутивов и управление версиями программного продукта. Разработка дистрибутивов и управление версиями программного продукта
- •Управление созданием версий и поставками пп.
- •Идентификация версий.
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •21Общая характеристика этапа тестирования программного продукта. Цикл тестирования.
- •Модульное тестирование
- •22Программные ошибки. Категории программных ошибок.
- •23Методы борьбы с ошибками по.
- •24Основные принципы разработки тестов для программных продуктов
- •25Сопровождение программных продуктов.
- •26Управление поставками программных продуктов. Общие сведения об управлении поставками
- •Классификация поставляемых программных продуктов
- •Классификация доставляемых программных продуктов
- •Действия, выполняемые при поставке программного продукта
- •27Основные понятия о надежности программного продукта и методах ее обеспечения.
- •28Инструментальные средства разработки программных продуктов.
- •29Защита программных продуктов от несанкционированного использования.
- •30Правовые методы защиты пп.
- •31Криптографические методы защиты информации.
- •32Аппаратная защита программного обеспечения.
- •1. Драйвер ключа.
- •2. Встраиваемый модуль.
- •3. Реализация.
- •34Принципы, виды и методы отладки программных продуктов.
- •Комплексная отладка программного средства.
- •Программные ошибки. Категории программных ошибок
- •Наиболее распространенные категории программных ошибок:
- •35Эффективность и оптимизация программ.
- •Обеспечение качества программного продукта
- •36Коллективная разработка программных средств.
- •Ролевой состав коллектива разработчиков, взаимодействие между ролями в различных технологических процессах
35Эффективность и оптимизация программ.
Эффективными считаются программы, требующие минимального времени выполнения и/или минимального объема оперативной памяти. Особые требования к эффективности программного обеспечения предъявляют при наличии ограничений (на время реакции системы, на объем оперативной памяти и т. п.). В случаях, когда обеспечение эффективности не требует серьезных временных и трудовых затрат, а также не приводит к существенному ухудшению технологических свойств, необходимо это требование иметь в виду.
Эффективность ПП обеспечивается принятием подходящих решений на разных этапах его разработки, начиная с разработки его архитектуры. Особенно сильно на эффективность ПП (особенно по памяти) влияет выбор структуры и представления данных. Но и выбор алгоритмов, используемых в тех или иных программных модулях, а также особенности их реализации (включая выбор языка программирования) может существенно повлиять на эффективность ПС.
При этом постоянно приходится разрешать противоречие между временной эффективностью и эффективностью по памяти (ресурсам). Поэтому весьма важно, чтобы в спецификации качества были явно указаны приоритеты или количественное соотношение между показателями этих примитивов качества. Следует также иметь в виду, что разные программные модули по-разному влияют на эффективность ПП в целом: одни модули могут сильно влиять на временную эффективность и практически не влиять на эффективность по памяти, а другие могут существенно влиять на общий расход памяти, не оказывая заметного влияния на время работы ПП. Более того, это влияние (прежде всего, в отношении временной эффективности) заранее (до окончания реализации ПП) далеко не всегда можно правильно оценить
С учетом сказанного, рекомендуется придерживаться следующих принципов для обеспечения эффективности ПП:
сначала нужно разработать надежное ПП, а потом уж заниматься доведением его эффективности до требуемого уровня в соответствии с его спецификацией качества;
для повышения эффективности ПП, прежде всего, нужно использовать оптимизирующий компилятор - это может обеспечить требуемую эффективность;
если эффективность ПП не удовлетворяет спецификации его качества, то найдите самые критические модули с точки зрения требуемой эффективности ПП; эти модули и попытайтесь оптимизировать в первую очередь путем их ручной переделки;
исключать многократные обращения к элементам массивов по индексам (особенно многомерных, так как при вычислении адреса элемента используются операции умножения на значение индексов), первый раз прочитав из памяти элемент массива, следует запомнить его в скалярной переменной и использовать в нужных местах;
избегать использования различных типов в выражении и т. п.
не следует заниматься оптимизацией модуля, если этого не требуется для достижения требуемой эффективности ПП.
Для отыскания критических модулей с точки зрения временнoй эффективности ПП потребуется получить распределение по модулям времени работы ПП путем соответствующих измерений во время выполнения ПП. Это может быть сделано с помощью динамического анализатора (специального программного инструмента), который может определить частоту обращения к каждому модулю в процессе применения ПП.
