
- •Технология программирования Конспект лекций
- •Краткая характеристика1
- •Алфавит
- •Объявление переменных. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •Константы
- •Операции Присваивание.
- •Арифметические:
- •Логические (результат – логическое значение).
- •Функции
- •Директивы препроцессора
- •Указатели Обзор
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Операции над указателями
- •Массивы
- •Многомерные массивы
- •Указатели в качестве параметров функций
- •Функции работы с указателями и памятью
- •Строки.
- •Время жизни и область видимости переменных
- •Указатель на функции
- •Работа с файлами.
- •Форматированный ввод-вывод
- •Введение в объектно-ориентированное программирование
- •Часть 2. Введение в технологию программирования.
- •Этапы развития программирования.
- •Проблемы разработки сложных программных систем:
- •Жизненный цикл программного продукта.
- •Модели жц.
- •Экстремальное программирование
- •Оценка качества процессов создания программного обеспечения.
- •Процессы проектирования.
- •Требования, цели
- •Внешнее проектирование.
- •Проектирование модульной структуры. Модуль
- •Внешнее проектирование модулей
- •Модульная декомпозиция
- •Почему модуль должен компилироваться с первого раза?
- •Рекомендации по внесению ясности в текст программы:
- •Тестирование.
- •Документирование.
- •Пользовательский интерфейс
- •Организация двусвязанного списка.
- •Организация массива переменного размера:
- •3.2 Алгоритмы Быстрая сортировка
- •Поиск пути
- •Примеры программ
- •Список литературы
Оценка качества процессов создания программного обеспечения.
Стандарты ISO 9000-9004. Необходимые условия для достижения минимального уровня организации процесса ППО.
CMM (Capability Maturity Model) – модель зрелости процессов создания ПО. Включает 5 уровней: начальный, повторяемый, определённый, управляемый, оптимизирующий.
SPICE (Software Process Improvement and Capability dEtermination) (ISO/IES 15504) – определение возможностей и улучшение процесса создания программного обеспечения.
Проектирование надёжного ПС.
Майерс: «В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать». Ошибки в ПО не являются внутренним его свойством. Наличие ошибок зависит как от самого программного обеспечения, так и от ожиданий пользователя.
Надёжность программного обеспечения есть вероятность его работы без отказов в течение определённого периода времени, рассчитанная с учётом стоимости для пользователя каждого отказа.
Почему техника надёжнее программ?
1. Большее разнообразие входных данных.
2. Отношение к возможным применениям.
3. Различная природа компонент.
Макромодель перевода. проектирование программного обеспечения состоит из ряда этапов.
На каждом из этапов возможны ошибки по взаимодействию исполнителей.
Микромодель перевода.
Чтение Запоминание анализ распространение
Причины ошибок:
- чтение между строк всё, что непонятно, надо уточнять у автора документа;
- непонимание;
- нечёткое выражение мыслей.
Четыре подхода к надёжности.
1. Предупреждение ошибок.
2. Обнаружение ошибок.
3. Исправление ошибок.
4. Устойчивость к ошибкам.
- динамическая избыточность (неприменимо);
- отступление (обработка исключений try – throw – catch);
- изоляция ошибок (задача ОС).
Борьба со сложностью.
Сложность – основная причина ошибок перевода, и, следовательно, одна из главных причин ненадёжности.
Концепции:
- независимость – компоненты должны быть максимально независимы;
- иерархическая структура.
Проектирование.
- вовлечение пользователя в процесс принятия решений;
- понимание культуры пользователя;
- умение правильно ставить и решать задачи.
Процессы проектирования.
Проектирование программного обеспечения состоит из ряда этапов. Точное выполнение этих этапов позволяет создавать достаточно надёжные программное продукты.
Требования, цели
Проекты: управляемые пользователем, контролируемые пользователем, независимые от пользователя.
Требования могут быть сформулированы в форме hipo – диаграмм, которые состоят из оглавления функций программного продукта и описания каждой из них.
Оглавление – описание иерархии задач со ссылками на диаграммы. Диаграммы содержат вход (слева), обработку (по центру), выход (справа).
Цели – конкретные ориентиры программного продукта.
Типичные ошибки:
- неявное формулирование целей;
- составление наброска без учёта всех целей;
- есть конфликты при формулировании целей (должны быть компромиссы);
Цели ПО могут быть разбиты на 10 групп:
- общность – число, мощность, область действия пользовательских функций;
- психологические факторы – мера лёгкости понимания, удобства использования, защиты от неверных действий пользователя;
- адаптируемость – мера лёгкости расширения;
- удобство сопровождения – мера затрат времени и средств на исправление ошибок;
- безопасность – мера вероятности обращения одного пользователя к данным другого;
- документация;
- стоимость продукта;
- календарный план;
- эффективность (производительность);
- надёжность (средства повышения надёжности снижают эффективность).