- •1. История развития вычислительной техники. Докомпьютерная эпоха.
- •1673Г.-г.В.Лейбниц, арифмометр с 4 действиями
- •1820-1856Гг. – ч.Беббидж работает над проектом аналитической, программируемой машины.
- •2. История развития вычислительной техники. Первое поколение (1945-1954). Компьютеры на электронных лампах
- •3. История развития вычислительной техники. Второе поколение: конец 50-х годов – конец 60-х годов.
- •4. История развития вычислительной техники. Третье поколение 1970-1980.
- •5. История развития вычислительной техники. Четвертое поколение 1980 – по нынешнее время.
- •6. Термины и определения: программные продукты, программная инженерия,
- •7. История технологий разработки программ.
- •8. Затраты на разработку программ.
- •9. Процессы жизненного цикла по.
- •10. Основные проблемы, стоящие перед специалистами по по.
- •11. Профессиональные и этические требования к специалистам по по.
- •12. Модели процесса разработки по. Каскадная модель.
- •13. Модели процесса разработки по. V-модель.
- •14. Модели процесса разработки по. Модель «Code-and-Fix».
- •15. Модели процесса разработки по. Модель «Зубья акулы»/ прототипирование.
- •16. Модели процесса разработки по. Инкрементальная модель.
- •17. Модели процесса разработки по. Модель синхростабилизации.
- •18. Модели процесса разработки по. Спиральная модель.
- •19. Модели процесса разработки по. Модель Agile.
- •20. Case-средства. Примеры.
- •21. Показатели качественного по.
- •22. Фундаментальные требования iso 9000.
- •О природе стандартов iso серии 9000
- •23. Верификация и аттестация по.
23. Верификация и аттестация по.
Верификацией и аттестацией называются процессы проверки и анализа, в ходе которых проверяется соответствие программного обеспечения своей спецификации и требованиям заказчиков. Верификация и аттестация охватывают весь цикл жизни ПО – они начинаются на этапе анализа требований и завершаются проверкой программного кода на этапе тестирования программной системы. Верификация и аттестация не одно и то же, хотя их легко перепутать. Кратко различие между ними можно определить следующим образом [45]:
верификация отвечает на вопрос, правильно ли создана система;
аттестация отвечает на вопрос, правильно ли работает система.
В процессах верификации и аттестации используются две основные методики проверки и анализа систем.
Инспектирование ПО. Анализ и проверка различных представлений системы, например документации спецификации требований, архитектурных схем или исходного кода программ. Инспектирование выполняется на всех этапах процесса разработки программной системы. Параллельно с инспектированием может выполняться автоматический анализ исходного кода программ и соответствующих документов. Инспектирование и автоматический анализ —это статические методы верификации и аттестации, поскольку' им не требуется исполняемая система.
Тестирование ПО. Запуск исполняемого кода с тестовыми данными и исследование выходных данных и рабочих характеристик программного продукта для проверки правильности работы системы. Тестирование — это динамический метод верификации и аттестации, так как применяется к исполняемой системе.
Верификация и аттестация – абсолютно разные понятия, однако часто их путают. Для того, чтобы различать их, выведем главное различие между этими терминами. Верификация отвечает на вопрос, правильно ли создана система, а аттестация отвечает на вопрос, правильно ли работает система. Из этого следует, что верификация проверяет соответствие ПО системной спецификации, в частности функциональным и нефункциональным требованиям. Аттестация – это более общий процесс. Во время аттестации цель инженера – доказать заказчику, что продукт оправдывает ожидания последнего. Аттестация проводится после верификации.
На ранних этапах разработки ПО очень важна аттестация системных требований. В требованиях очень часто встречаются ошибки, недочеты, упущения, что может привести к несоответствию продукта замыслу заказчика. Инженер должен справляться с этой проблемой. Однако, как известно, сложно искоренить все погрешности в требованиях. Отдельные ошибки могут обнаружиться лишь тогда, когда программный продукт реализован.
В процессах верификации и аттестации используются две основные методики проверки и анализа систем: инспектирование ПО и тестирование ПО. Инспектирование ПО подразумевает анализ и проверку различных представлений системы, например, документации. Инспектирование происходит на всех этапах разработки программной системы. Параллельно с инспектированием может проводиться автоматический анализ исходного кода программ и соответствующих документов. Инспектирование и автоматический анализ – это статические методы верификации и аттестации, поскольку им не требуется исполняемая система. Тестирование ПО есть анализ выходных данных и рабочих характеристик программного продукта для проверки правильности работы системы. Тестирование – динамический метод верификации и аттестации, так как применяется к исполняемой системе.
Верификация и аттестация – дорогостоящие процессы. Для сложных систем, например, характерно такое соотношение: половина всего бюджета, выделенного на реализацию системы, тратится на верификацию и аттестацию. Поэтому очевидна необходимость тщательного планирования верификации и аттестации. 24.Вопросы, помогающие выявлять ошибки.
В самом общем случае под ошибкой понимается какой-то сбой в программе на этапе ее выполнения.
Ошибки данных:
Все ли переменные в программе инициализированы до начала использования их значений?
В
Ошибки данных
се ли константы именованы?Равна ли верхняя граница массива его размеру или на единицу меньше этого размера?
Какой разделитель используется для разделения символьных строк?
Возможно ли переполнение буфера?
Ошибки управления:
Выполняются ли условия для каждого условного оператора?
Все ли циклы завершаются?
Правильно ли в составных операторах расставлены скобки?
Все ли выборы выполняются в операторах выбора?
Ошибки ввода-вывода:
Используются ли в программе входные переменные?
Всем ли выходным переменным перед выводом присваиваются значения?
Могут ли какие-нибудь входные данные привести к нарушению системных данных?
Ошибки интерфейса:
Все ли вызовы процедур и функций содержат правильное количество параметров?
Согласованы ли типы формальных и фактических параметров?
В правильном ли порядке расположены параметры?
Если компоненты обращаются к разделяемой памяти, имеют ли они такую же модель структуры разделяемой
Ошибки управления памятью:
Если связанная структура данных изменяется, правильно ли переопределяются все связи?
Если используется динамическая память, правильно ли она распределяется?
Происходит ли перераспределение памяти после того, как она больше не используется?
Ошибки управления исключениями:
Все ли возможные ошибки рассмотрены в условиях, определяющих исключительные ситуации?