- •Технология программирования, основные этапы развития: «стихийное» программирование, структурное программирование, объектно-ориентированное программирование, компонентное программирование.
- •Особенности функционирования сложных программных средств: работа в реальном времени, многообразие функций, надежность функционирования.
- •Проблемы проектирования сложных программных средств: рациональное структурное построение, технология разработки, стандартизация; блочно-иерархический подход.
- •Жизненный цикл программного обеспечения, процессы жизненного цикла, связь между процессами.
- •Основные процессы жизненного цикла: приобретение, поставка, разработка, эксплуатация, сопровождение.
- •Вспомогательные процессы жизненного цикла: документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем.
- •Организационные процессы жизненного цикла: управление, создание инфраструктуры, усовершенствование, обучение.
- •Модели жизненного цикла: поэтапная, каскадная, спиральная, переиспользования и реверсивной инженерии.
- •Способ быстрой разработки приложений (rad): условия применения, стадии жизненного цикла, достоинства и недостатки.
- •Определение метода и технологии
- •Требования к технологии
- •Оценка качества процессов создания программного обеспечения: международные стандарты серии iso 9000, cmm, spice.
- •Понятийный аппарат метрической теории программ – принципы количественного анализа качества объектов с расплывчатыми свойствами.
- •Модель и метрики оценки сложности Боэма.
- •Модель и метрики оценки сложности Холстэда.
- •Модель и метрики оценки сложности Мак-Кейба (основанные на потоковых графах).
- •Модель и метрики, основанные на информационных потоках.
- •Методы оценки качества программного обеспечения: анкетирование, рабочие списки, контрольные задачи, метрики. Государственные стандарты в области оценки качества программного обеспечения.
- •Модули, сцепление и связность - критерии независимости модулей, библиотеки ресурсов.
- •Программирование с защитой от ошибок: проверка выполнения операций, контроль промежуточных результатов, снижение погрешностей результатов, обработка исключений; сквозной структурный контроль.
- •Технологические требования: выбор архитектуры по, выбор типа пользовательского интерфейса, выбор подхода к разработке, выбор языка и среды программирования.
- •Планирование процесса проектирования, виды планов: календарный, индивидуальный, сетевой график разработки и проектирования программного обеспечения.
- •4.2. Функции программного обеспечения для календарного планирования
- •4.3. Виды календарного планирования (календарные графики, диаграммы Гантта)
- •Спецификации по при структурном подходе: формальные модели, зависящие от подхода к разработке и не зависящие от подхода – диаграммы переходов состояний, математические модели предметной области.
- •2.2.5 Границы моделирования
- •2.2.6 Выбор наименования контекстного блока
- •2.2.8 Нумерация блоков и диаграмм
- •1.1.1 I Модели idef3
- •1.1.2 Диаграммы
- •1.1.3 Единица работы. Действие
- •1.1.4 Связи
- •1.1.5 Соединения
- •1.1.6 Указатели
- •1.1.7 Декомпозиция действий
- •Построение моделей idef3: диаграммы, нумерация блоков и диаграмм, сценарий, границы моделирования, определение действий и объектов.
- •1.2.2 Определение действий и объектов
- •1.2.3 Последовательность и параллельность
- •3.2 Синтаксис и семантика диаграмм потоков данных
- •3.2.1 Функциональные блоки
- •3.2.2 Внешние сущности
- •3.2.4 Хранилища данных
- •3.2.5 Ветвление и объединение
- •3.3.2 Нумерация объектов
- •Структуры данных: несвязанные, с неявными связями, с явными связями; иерархические модели Джексона-Орра.
- •Моделирование данных – диаграммы «сущность-связь» (erd): сущность, связь, атрибут.
- •Метод Баркера.
- •Метод idef1.
Жизненный цикл программного обеспечения, процессы жизненного цикла, связь между процессами.
Жизненным циклом программного обеспечения называют период от момента появления идеи
создания некоторого программного обеспечения до момента завершения его поддержки фирмой-
разработчиком или фирмой, выполнявшей сопровождение.
Состав процессов жизненного цикла регламентируется международным стандартом ISO/IEC
12207: 1995 «Information Technologe - Software Life Cycle Processes» («Информационные
технологии - Процессы жизненного цикла программного обеспечения»). ISO - International
Organization for Standardization - Международная организация по стандартизации. IЕС -
International Electrotechnical Commission - Международная комиссия по электротехнике.
Этот стандарт описывает структуру жизненного цикла программного обеспечения и его
процессы. Процесс жизненного цикла определяется как совокупность взаимосвязанных действий,
преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами.
Основные процессы:
приобретение
поставка
разработка
эксплуатация
сопровождение
Организационные процессы:
управление
усовершенствование
создание инфраструктуры
обучение
Вспомогательные процессы
документирование
управление конфигурацией
управление качеством (обеспечение качества, верификация, аттестация, совместная оценка, аудит)
разрешение проблем
Процесс разработки (development process) в соответствии со стандартом предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию программного
обеспечения и его компонентов в соответствии с заданными требованиями, включая оформление
проектной и эксплуатационной документации, а также подготовку материалов, необходимых для
проверки работоспособности и соответствия качества программных продуктов, материалов,
необходимых для обучения персонала, и т. д.
По стандарту процесс разработки включает следующие действия:
• подготовительную работу - выбор модели жизненного цикла, стандартов,
методов и средств разработки, а также составление плана работ;
• анализ требований к системе - определение ее функциональных возможностей,
пользовательских требований, требований к надежности и безопасности, требований к внешним
интерфейсам и т. д.;
• проектирование архитектуры системы - определение состава необходимого оборудования,
программного обеспечения и операций, выполняемых обслуживающим персоналом;
• анализ требований к программному обеспечению - определение функциональных
возможностей, включая характеристики производительности, среды функционирования
компонентов, внешних интерфейсов, спецификаций надежности и безопасности, эргономических
требований, требований к используемым данным, установке, приемке, пользовательской
документации, эксплуатации и сопровождению;
• проектирование архитектуры программного обеспечения - определение структуры
программного обеспечения, документирование интерфейсов его компонентов, разработку
предварительной версии пользовательской документации, а также требований к тестам и планам
интеграции;
• детальное проектирование программного обеспечения – подробное описание компонентов
программного обеспечения и интерфейсов между ними, обновление пользовательской
документации, разработка и документирование требований к тестам и плана тестирования
компонентов программного обеспечения, обновление плана интеграции компонентов;
• кодирование и тестирование программного обеспечения – разработку и документирование
каждого компонента, а также совокупности тестовых процедур и данных для их тестирования,
тестирование компонентов, обновление пользовательской документации, обновление плана
интеграции программного обеспечения;
• интеграцию программного обеспечения - сборку программных компонентов в соответствии с
планом интеграции и тестирование программного обеспечения на соответствие
квалификационным требованиям, представляющих собой набор критериев или условий, которые
необходимо выполнить, чтобы квалифицировать программный продукт, как соответствующий
своим спецификациям и готовый к использованию в заданных условиях эксплуатации;
• квалификационное тестирование программного обеспечения - тестирование программного
обеспечения в присутствии заказчика для демонстрации его соответствия требованиям и
готовности к эксплуатации; при этом проверяется также готовность и полнота технической и
пользовательской документации
• интеграцию системы - сборку всех компонентов системы, включая программное
обеспечение и оборудование;
• квалификационное тестирование системы - тестирование системы на соответствие
требованиям к ней и проверка оформления и полноты документации;
• установку программного обеспечения - установку программного обеспечения на
оборудовании заказчика и проверку его работоспособности;
• приемку программного обеспечения - оценку результатов квалификационного тестирования
программного обеспечения и системы в целом и документирование результатов оценки совместно
с заказчиком, окончательную передачу программного обеспечения заказчику.