- •Фундаментальные основы конструирования программного обеспечения
- •2. Минимизация сложности программного обеспечения
- •3. Ожидание изменений в программном обеспечении как фактор, влияющий на конструирование по
- •4. Конструирование по с возможностью проверки
- •7 Планирование конструирования (Construction Planning)
- •8 Измерения в конструировании (Construction Measurement)
- •9 Проектирование в конструировании (Construction Design)
- •10 Языки конструирования (Construction Languages)
- •13 Повторное использование по (Reuse)
- •18 Определение дисциплины программная инженерия
- •19 Состав коллективов при создании больших программных проектов
- •20. Основы программных требований
- •21 Инженерия требований к по
- •22 Управление требованиями к по
- •23 Выявление требований
- •24. Анализ требований
- •26 Валидация требований к по
- •27 Управление требованиями
- •28 Определение термина Проектирование по (Software design)
- •29 Базовые концепции проектирования по
- •30 Базовые элементы Архитектуры по
- •31 Анализ и оценка качества проектирования по
- •32 Нотации проектирования
- •33. Определение термина «Конструирование по»
- •34 Виды тестирования по
- •35 Техники тестирования по
- •36 Управление тестированием по
- •37 Измерение результатов тестирования.
- •38 Сопровождение по (Software maintenance)
- •39 Основные концепции сопровождения по
- •40 Эволюция по.
- •41 Управление конфигурацией по (Software Configuration Management–
- •42 Управление инженерией по (Software Engineering Management)
- •43 Организационное управление инженерией по
- •44 Процесс управления проектом разработки по
- •45 Управление рисками при разработке программного проекта
- •47 Процесс инженерии по (Software Engineering Process)
- •48 Инфраструктура процесса разработки по
- •49 Определение процесса разработки по
- •50 Оценка процесса разработки по
- •51 Модели жизненного цикла при разработке программных систем
- •52 Каскадная модель жц
- •53 Инкрементная модель жц
- •54 Спиральная модель
- •55 Эволюционная модель жц
- •56 Стандартизованная модель системы
- •57 Основные процесс стандарта iso/iec 12207
- •58 Вспомогательные процессы стандарта iso/iec 12207
- •59 Организационные процессы стандарта iso/iec 12207
- •60 Характеристика модели процессов в ядре swebok
13 Повторное использование по (Reuse)
Во введении в стандарт IEEE Std. 1517-99 “IEEE Standard for Information Technology – Software Lifecycle Process – Reuse Processes” даётся следующее понимание повторному использованию в программном обеспечении: “Реализация повторного использования программного обеспечения подразумевает и влечёт за собой нечто большее, чем просто создание и использование библиотек активов. Оно требует формализации практики повторного использования на основе интеграции процессов и деятельности по повторному использованию в сам жизненный цикл программного обеспечения.” В то же время, повторное использование достаточно важно и непосредственно при конструировании программных систем, что подчеркивается включением этой темы в обсуждаемую область знаний конструирования ПО.
14 Качество конструирования (Construction Quality)
Существует ряд техник, предназначенных для обеспечения качества кода, выполняемых по мере его конструирования. Основные техники обеспечения качества, используемые в процессе конструирования, включают:
модульное (unit) и интеграционное (integration) тестирование
разработка с первичностью тестов (test-first development - тесты пишутся до конструирования кода)
пошаговое кодирование (деятельность по конструированию кода разбивается на мелкие шаги, только после тестирования результатов которых производится переход к следующему шагу кодирования; известен также как итеративное кодирование с тестированием)
использование процедур утверждений (assertion)
отладка (в привычном понимании - debugging)
технические обзоры и оценки (review)
статический анализ
15 Интеграция (Integration) ПО
Одна из ключевых деятельностей, осуществляемых в процессе конструирования, - интеграция отдельно сконструированных операций (процедур), классов, компонентов и подсистем (модулей). В дополнение к этому, некоторые программные системы нуждаются в специальной интеграции с другим программным и аппаратным обеспечением.
Кроме упомянутых аспектов интеграции, к обсуждаемым интеграционным вопросам конструирования относятся:
планирование последовательности, в которой интегрируются компоненты;
обеспечение поддержки создания промежуточных версий программного обеспечения;
задание “глубины” тестирования (в частности, на основе критериев “приемлемого” качества) и других работ по обеспечению качества интегрируемых в дальнейшем компонент;
наконец, определение этапных точек проекта, когда будут тестироваться промежуточные версии конструируемой программной системы.
17 Ядро знаний SWEBOCK
На сегодня ядро стабильных знаний по программной инженерии составляет 75% от тех
знаний, что используются в практической программисткой деятельности.
В связи с этим мировое компьютерное сообщество пришло к необходимости
систематизации накопленных знаний и общие из них зафиксировать в виде ядер
знаний (Body of Knowledge – BOK) для разных областей информатики [19]. Для
создания ядра знаний ПО был создан международный комитет при американском
объединении компьютерных специалистов ACM (Association for Computing
Machinery) и институте инженеров по электронике и электротехнике IEEE Computer
Society. В комитет вошли специалисты мирового уровня в области информатики и
разработки ПО, которые внесли свой опыт и знания, а также систематизировали
накопленные разнородные знания и определили (1999г., 2001г., 2004г.) ядро
профессиональных знаний SWEBOK (Software Engineering Body Knowledge)
программной инженерии [20], как основы проектирования ПО. Ядро включает сумму
знаний, распределенную по 10 специализированным областям, которые отражают
отдельные процессы проектирования ЖЦ ПО и методы их поддержки.