- •1 Раздел
- •1. Описание цикла жизни по. Проблема типовых элементов в программировании.
- •Этапы программного обеспечения.
- •Подготовка
- •Проектирование
- •Создание
- •Поддержка
- •2. Стадии разработки по.
- •1.Анализ
- •2.Проектирование
- •3.Кодирование
- •4.Тестирование и откладка
- •5.Внедрение
- •6.Заключение
- •3. Модели и методологии разработки по.
- •Основные модели разработки по
- •4. Каскадная модель разработки по. V-образная модель разработки по. Waterfall (каскадная модель, или «водопад»)
- •Incremental Model (инкрементная модель)
- •5. Инкрементная, итеративная, спиральная модель разработки по.
- •Incremental Model (инкрементная модель)
- •Iterative Model (итеративная модель)
- •Что такое Agile?
- •Spiral Model (спиральная модель)
- •6. Тестирование. Назначение, основные понятия.
- •Уровни Тестирования
- •1. Модульное тестирование (Unit Testing)
- •2. Интеграционное тестирование (Integration Testing)
- •3. Системное тестирование (System Testing)
- •4. Операционное тестирование (Release Testing).
- •5. Приемочное тестирование (Acceptance Testing)
- •7. Виды тестирования.
- •Функциональные тестирования
- •Нефункциональные виды
- •Тестирования связанные с изменением вида текста
- •2 Раздел
- •1. Основные принципы ооп.
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •2. Понятие класса. Инкапсуляция.
- •3. Конструкторы и деструкторы. Конструкторы
- •Конструктор по умолчанию
- •Конструкторы экземпляров
- •*Ключевое слово this
- •Инициализаторы
- •Деструкторы
- •4. Шаблоны классов.
- •5. Наследование. Иерархия наследования классов.
- •Доступ к членам базового класса из класса-наследника
- •Ключевое слово base
- •Конструкторы в производных классах
- •6. Виртуальные базовые классы. Состав класса.
- •Общая форма определения класса
- •Данные-члены
- •Функции-члены
- •7. Полиморфизм. Виртуальные методы классов.
- •Интерфейс
- •Сравнение абстр. Класса и интерфейса
- •3 Раздел
- •1. Определения графов. Элементы графов. Направленные орграфы и сети. Представление графов в компьютере: требования к представлению графов, матрица смежности, матрица инциденций.
- •Способы представления графа
- •2. Представление графов в компьютере: списки смежности, массив дуг. Обход графов.
- •4. Кратчайшие пути. Длина дуги. Алгоритм Флойда. Алгоритм Флойда-Уоршелла
- •5. Бинарные деревья, основные понятия: дерево, корень, предок, потомок, лист, высота дерева, упорядоченное дерево.
- •Узлы avl - дерева
- •Вставка ключа
1 Раздел
1. Описание цикла жизни по. Проблема типовых элементов в программировании.
Жизненный цикл ПО – это стадии, которые проходит программный продукт от появления идеи до ее реализации в коде, имплементации в бизнес и последующей поддержки. Модели жизненного цикла во многом предопределяют и методологии разработки ПО.
Этапы программного обеспечения.
Подготовка
Процесс постановки задачи является очень важным этапом в разработке программного обеспечения и обеспечивает качество программного продукта в целом. На этом этапе необходимо четко сформулировать назначение программного продукта и требования к нему.
Для того чтобы иметь возможность определить требования к программному обеспечению, необходимо провести предпроектное обследование, в процессе которого определяется целесообразность данной разработки и определяются наиболее важные свойства, которыми должно обладать, разрабатываемое программное обеспечение.
Проблема: Не соответствующие ожидания и часто изменяющиеся требования: заказчик и команда не понимают, какую реально пользу принесёт продукт.
Решение: Определить скоп работ, согласовать четкий, краткий документ с требованиями, создать прототипы (макеты) для подтверждения и уточнения окончательных требований.
Проектирование
Процесс проектирования сложного программного обеспечения обычно включает:
- разработка общей структуры;
- декомпозицию общей структуры;
- разработка компонентов.
В результате должна быть создана детальная модель со спецификациями. Тип модели зависит от выбранного подхода (структурный, объектный или компонентный) и конкретной технологии проектирования.
При проектировании программного обеспечения различают:
- логическое проектирование, которое включает описание будущего программного продукта;
- физическое проектирование, которое включает описание программного продукта с учетом требований, описанных в спецификациях на языке выбранного программного обеспечения.
Создание
В процессе реализации программного продукта происходит поэтапный процесс создания дизайна продукта, написания кода на выбранном языке программирования (кодирование), его тестирование и отладка, а также последующее документирование.
Проблема: Добавление не оговоренных функций.
В ходе разработки клиент отклоняется от оговоренных условностей и хочет добавить ещё функций в продукт. В результате вместе с ростом количество требуемых функций, увеличиваются сроки и бюджет на разработку, деньги заканчиваются.
Поддержка
Поддержка продукта - процесс, обеспечивающий качественное функционирование программного продукта. Может включать в себя разработку и внедрение новых версий программного продукта.
Основные причины выпуска новых версий:
- исправление ошибок, возникающих во время использования программного продукта;
- совершенствование версий программного продукта, расширение его функциональности;
- адаптация программного продукта под новое программное обеспечение.
В процессе разработки новых версий программного продукта происходит пересмотр проектных решений принятых на предыдущих этапах.
На текущий момент роль этого этапа жизненного цикла программного обеспечения существенно возросла, так как теперь программы создаются итерационно: сначала выпускается относительно простая версия, затем следующая с большими возможностями и т. д.
Проблемы
Могут возникнуть некоторые проблемы:
1) Отсутствие обратной связи, реальных отзывов потенциальных пользователей продукта.
В таком случае не следует ждать конца разработки, а как можно скорее запускать продукт, чтобы получить отзывы от реальных пользователей и на основе их предпочтений приоритезировать дальнейший функционал.
2) Слабая инфраструктура проекта на стороне клиента.Команда не может гарантировать стабильную работу, из-за сбоев, которые происходят на стороне клиента.
Предупредить клиента, о возможных проблемах, предложить решения для их устранения, предложить надежную и проверенную платформу.