- •Технология программирования, основные этапы развития: «стихийное» программирование, структурное программирование, объектно-ориентированное программирование, компонентное программирование.
- •Особенности функционирования сложных программных средств: работа в реальном времени, многообразие функций, надежность функционирования.
- •Проблемы проектирования сложных программных средств: рациональное структурное построение, технология разработки, стандартизация; блочно-иерархический подход.
- •Жизненный цикл программного обеспечения, процессы жизненного цикла, связь между процессами.
- •Основные процессы жизненного цикла: приобретение, поставка, разработка, эксплуатация, сопровождение.
- •Вспомогательные процессы жизненного цикла: документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем.
- •Организационные процессы жизненного цикла: управление, создание инфраструктуры, усовершенствование, обучение.
- •Модели жизненного цикла: поэтапная, каскадная, спиральная, переиспользования и реверсивной инженерии.
- •Способ быстрой разработки приложений (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.
Модель и метрики оценки сложности Боэма.
Модель оценки Боэма – оценка сложности, качества модуля. Учитывает объем кода, и сложность модуля определяется числом строк.
Е = 2,4 * K1.05
T = 2.5 * E0,38 - к прикладному ПО
Е = 3,6 * K1.2
T = 2.5 * E0,32 - к системному ПО
К – количество строк программного кода
Е – трудоемкость (чел/мес)
Т – продолжительность разработки (мес)
Модель и метрики оценки сложности Холстэда.
Учитывает объемные показатели программного кода.
n = n1 + n2
N = N1 + N2
n1, n2 – число различных операторов и операндов программы соответственно
N1, N2 – число всех операторов и операндов программы.
n – реляционный контекст.
N – длина исходного кода.
Применять данную модель можно при известном тексте модуля.
Int a,b,c;
a=1;
b=1;
c=a+b;
n1=3 N1=5
n2=3 N2=8
n=6 N=13
V = N* log2 n – объем
E ~ V2 - трудоемкость
T ~ V2 - срок разработки
B ~ E2/3 - наибольшее вероятностное количество ошибок в модуле.
Модель и метрики оценки сложности Мак-Кейба (основанные на потоковых графах).
Основывается на потоковых графах модуля. Программного кода может и не быть, но известен алгоритм или код описанный на псевдоязыке.
Вершины графа – операторы, стрелка – переход от одного оператора к другому.
С помощью данной модели можно определить логическую сложность программы.
V(M) = G(M)+1 = K2-K1+2;
V(M) – логическая сложность модуля;
M– имя модуля;
G(M) – количество базисных путей в графе;
K2 – количество вершин;
K1– количество дуг;
Case считается как один оператор.
Модель и метрики, основанные на информационных потоках.
Модель, основанная на информационных потоках, проходящих через интерфейс модуля. Она позволяет оценить информационную сложность модуля.
J(M) = m(M)(F+(M)*F-(M))2
m – метрика (модель) Мак-Кейба или Холстэда.
F+ - количество потоков управления и глобальных структур данных с помощью которых информация передается в модуля.
F- - количество потоков управления и глобальных структур данных с помощью которых информация возвращается из модуля.
метрика (модель) Холстэда.
Учитывает объемные показатели программного кода.
n = n1 + n2
N = N1 + N2
n1, n2 – число различных операторов и операндов программы соответственно
N1, N2 – число всех операторов и операндов программы.
n – реляционный контекст.
N – длина исходного кода.
Применять данную модель можно при известном тексте модуля.
Int a,b,c;
a=1;
b=1;
c=a+b;
n1=3 N1=5
n2=3 N2=8
n=6 N=13
V = N* log2 n – объем
E ~ V2 - трудоемкость
T ~ V2 - срок разработки
B ~ E2/3 - наибольшее вероятностное количество ошибок в модуле.
метрика (модель) Мак-Кейба
Основывается на потоковых графах модуля. Программного кода может и не быть, но известен алгоритм или код описанный на псевдоязыке.
Вершины графа – операторы, стрелка – переход от одного оператора к другому.
С помощью данной модели можно определить логическую сложность программы.
V(M) = G(M)+1 = K2-K1+2;
V(M) – логическая сложность модуля;
M– имя модуля;
G(M) – количество базисных путей в графе;
K2 – количество вершин;
K1– количество дуг;
Case считается как один оператор.