Обзор основных моделей жизненного цикла, страница 5

2.5. Обеспечивается ли совместимость выбранных языков программирования, общесис­темных программных и технических средств?

2.6.  Предполагает ли проект разработку собственных средств межъязыкового интер­фейса для обеспечения совместимости языков программирования?

2.7.  Обеспечивается ли информационная совместимость в проекте? Все ли информационные структуры совместимы?

3.    Производительность (эффективность)

3.1. Регламентируется ли приемлемый уровень эффективности (по скорости обработки, использованию оперативной памяти и др.) имеющимися действующими стандартами или требованиями заказчика?

3.2.  Обоснована ли эффективность предлагаемых проектных решений? Указаны ли ожидаемые технико-экономические показатели?

3.3.  Учитывают ли проектные решения требования стандартов по эффективности и со­ответствующие данные аналогов ПО?

3 4. Учитывают ли методы организации и доступа к данным особенности модели дан­ных, объемы и интенсивность обработки данных?

3.5.  Обеспечивают ли применяемые математические методы и алгоритмы, а также язы­ки программирования требуемую точность вычислений? Учтены ли вычислительные возможности технических средств?

3.6.  Обеспечивают ли алгоритмы требуемую скорость обработки данных?

3.7.  Предполагается ли использование оптимизирующих компиляторов, сопроцессо­ров, расширенной памяти и других специализированных методов и средств? Адек­ватно ли принятое решение возможностям предполагаемой среды функционирования ПО?

4.    Надежность

4.1. Обеспечивают ли принятая организация данных, методы доступа к данным и алго­ритмы защиту данных?

4.2. Обеспечивается ли разграничение доступа к возможностям ПО (при наличии тре­бований в ТЗ)?

4.3.  Предполагается ли разработка специальных средств повышения устойчивости к от­казам программных и технических средств? Как будет их объем и стоимость сказываться на эффективности ПО?

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

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

4.6.  Адекватны ли проектные решения по восстановлению требованиям в ТЗ к среднему времени восстановления (при их наличии)?

4.7.  Разработаны ли планы и процедуры тестирования (испытаний)? Адекватны ли они требованиям к проведению испытаний?

4.8.  Обеспечивают ли методы проектирования минимизацию сложности структуры проекта иерархичность, структурность, понятность)?

5.   Удобство применения

5.1.  Учитывает ли проект в целом эргономические требования (при их наличии) к ПО,
связанные с удобством применения и освоения?

5.2.  Предполагается ли режим подсказки (помощи, контекстные справки) для пользова­теля?

5.3.  Представлена ли входная и выходная информация в терминах профессиональной лексики пользователя?

5.4.  Предусмотрена ли разработка средств, облегчающих освоение ПО, а также примеров, иллюстрирующих возможности ПО, учебных материалов и курсов?

5.5.   Соответствует ли проект интерфейса конечного пользователя эргономическим требованиям (выбор цветовой палитры, удобное размещение информации на экране и т.п.)?

5.6.  Соответствует ли проект синтаксиса входного языка и сообщений профессиональ­ному уровню пользователя?

6.   Сопровождаемость

6.1.  Предусматривается ли возможность выбора (изменения) варианта организации данных?

6.2.  Обеспечивает ли функциональное деление проекта минимизацию связей между ос­новными программными функциями?

6.3.  Достаточно ли прослеживаемы все проектные решения?

6.4.  Учитывает ли проект возможность последующего развития (Открытость архитектуры, возможности технических средств)?

6.5.  Предполагается ли разработка средств администратора в ПО (при наличии в ТЗ требований к специальному сопровождению программного обеспечения, баз данных и т.п.)?

6.6.  Обеспечивает ли выбранный подход к проектированию удобство модификации (структурность, независимость и т.д.)?

6.7.  Предусматривает ли проект разработку сервисных средств сопровождения ПО, средств трассировки, диагностики, сбора статистики, дампирования и анализа?

7.   Мобильность (переносимость)

7.1.  Достаточно ли универсальны представленные алгоритмы с позиций их переноси­мости?

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

7.3.  Отвечают ли выбранные языки программирования, операционная система требова­ниям мобильности?

7.4.  Учитывает ли структура проекта требования переносимости (независимость верх­них уровней иерархии от среды реализации)?

Вопросы для инспекции программного кода

1.    Простота понимания и соответствие стандартам кодирования

1.1.  Понятны ли спецификации элемента?

1.2.  Понятен ли код элемента? Есть ли проблемы в понимании?

1.3.  Откомментирован ли код? Помогают ли комментарии понять процедуры и функции элемента?

1.4.  Могут ли быть трудности при модификации элемента?

1.5.  Установлены ли в проекте стандарты кодирования?

1.6.  Соответствует ли код установленным стандартам кодирования?

1.7.  Разработаны ли тесты для проверки соблюдения стандартов?

2.   Корректность обращения к данным

2.1.  Используются ли переменные с не установленными значениями?

2.2.  Не выходит ли значение каждого из индексов за границы, определенные для соот­ветствующего измерения при всех обращениях к массиву?

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