- •Министерство образования республики беларусь
- •Белорусский государственный университет
- •Факультет прикладной математики и информатики
- •Кафедра технологий программирования
- •Жизненный цикл проекта
- •Характеристики фаз проекта
- •Описание основных фаз проекта:
- •Инициация проекта
- •Характеристики жизненного цикла проекта
- •Современные процессы разработки программного обеспечения.
- •Выбор методологии
- •Жесткие методологии Модель водопада
- •Итеративная разработка
- •Спиральная модель
- •Гибкие методологии
- •Выбор архитектуры решения
- •Вычислительные системы
- •Операционные системы
- •Классификация операционных систем
- •Особенности областей использования
- •Менеджмент проектов
- •2. Команда менеджмента проекта
- •2.1. Команды в проекте
- •2.2. Соотношение между различными командами в проекте
- •2.3. Цели кмп в проекте
- •3. Создание и развитие кмп
- •3.1. Сущность и характеристики кмп
- •С позиции системного подхода:
- •С позиции психологическогой подхода:
- •С позиции проектного подхода:
- •Управление трудовыми ресурсами проекта и менеджмент человеческих ресурсов проекта
- •3.3. Интегрированная культура кмп
- •4. Оценка деятельности кмп
- •4.1. Что такое эффективная кмп?
- •4.2. Команда Менеджмента Проекта – критический фактор успеха проекта
- •Парадигмы программирования
- •Структурное программирование
- •1. Основные предпосылки структурного программирования
- •2. Цели и задачи структурного программирования
- •3. Реализация структурного программирования
- •Событийно-ориентированное программирование
- •Обработка событий
- •Сферы применения
- •Перспективы
- •Недостатки
- •Объектно-ориентированное программирование
- •Особенности реализации
- •Достоинства ооп
- •Функциональное программирование
- •Концепции
- •Рекурсия
- •Функции высших порядков
- •Аспектно-ориентированное программирование
- •Преимущества использования аоп
- •Недостатки аспектного подхода
- •Визуально-ориентированное программирование
- •Другие парадигмы Процедурное (императивное) программирование
- •Автоматное программирование
- •Логическое программирование.
- •Качество кода Рефакторинг
- •Разумные причины выполнения рефакторинга
- •Когда не следует выполнять рефакторинг
- •Безопасный рефакторинг
- •Документирование
- •Внешняя документация
- •Внутренняя документация
- •Комментарии Комментировать или не комментировать?
- •Виды комментариев
- •Обработка исключений
- •Некоторые предложения по реализации исключений:
- •Архитектура программного обеспечения
- •История
- •Отличие архитектуры по от детального проектирования по
- •Примеры архитектурных стилей и моделей
- •Паттерны проектирования
- •Шаблон AbstractFactory
- •Шаблон Builder
- •Шаблон Bridge
- •Паттерны проектирования классов/обьектов
- •Архитектурные системные паттерны
- •Структурные паттерны
- •Паттерны, обеспечивающие взаимодействие с базой данных
- •Структурные паттерны интеграции
- •Паттерны по методу интеграции
- •Тестирование программного обеспечения Классификация видов тестирования
- •Уровни тестирования
- •Модульное тестирование
- •Интеграционное тестирование
- •Системное тестирование программного обеспечения
- •Функциональное тестирование
- •Регрессионное тестирование
- •Верификационные тесты (Verification Test).
- •Нагрузочное тестирование
- •Тестирование «белого ящика» и «чёрного ящика»
- •Поддержка по. Контроль версий Сопровождение программного обеспечения
- •Возраст и структура программы
- •Процесс сопровождения
- •Прогнозирование сопровождения
- •Управление изменениями
- •Процесс управления изменениями
- •Управление версиями и выпусками
- •Идентификация версий
- •Нумерация версий
- •Идентификация, основанная на значениях атрибутов
- •Идентификация на основе изменений
- •Средства поддержки управления изменениями
- •Средства поддержки управления версиями
- •История
- •Немного о продуктах компании
- •О новинках Облачные вычиления
- •Новые операционные системы
- •Другие разработки
- •Интересные факты
- •Как всё начиналось
- •Настоящее время
- •Позиции на мировом рынке
- •Новые продукты Oracle Новые продукты в области субд
- •Новые продукты в области связующего программного обеспечения
- •Инновации в области управления эффективностью предприятия и бизнес-анализа
- •Новые версии бизнес-приложений и отраслевых решений
- •Разработки компании Apple
- •На чем написан mac os?
- •Особенности Mac
- •История создания Google
- •Индустрия игр.
- •Компьютерные игры. История.
- •Компьютерные игры. Тенденции.
- •Компьютерные игры. Компании.
- •Компьютерные игры. Online.
- •Стандартные приложения Android
- •Разработка программного обеспечения
- •Разработки, происходящии на данный момент
- •Уникальность Android
- •Недостатки Android
- •Позиции на мировом рынке
- •Почему мобильный Windows непопулярен?
- •“Нужно перестать делать телефон центром вашей жизни, пускай ваша жизнь станет центром для телефона”
- •Целевая аудитория:
- •Особенности интерфейса
- •Общие положения
- •Неполная многозадачность
- •Разработка игр и приложений
- •Заключение
- •Сетевые операционные системы Структура сетевой операционной системы
- •Одноранговые сетевые ос и ос с выделенными серверами
- •Примеры серверных ос
- •Роли Active Directory
- •Пользовательские unix-системы
- •Основные пользовательские unix и unix-подобные ос
- •Облачные вычисления
- •Примеры
- •Любой ли сервис по запросу есть облако?
- •Нужны ли облака?
- •Внешние и внутренние облака
- •Какие услуги предоставляются в рамках модели облачных вычислений?
- •Сколько стоят вычисления в облаках?
- •Каковы гарантии того, что облако всегда будет на связи?
- •Проблемы облачных технологий
- •Как минимизировать риски при переходе на облачные вычисления?
- •Безопасность
- •Технология
- •Перспективы
- •Технология Rich Internet Application. Платформы для разработки ria.
- •Преимущества
- •Недостатки
- •Введение в аsр.Nет
- •История asp.Net
- •Принципы asp.Net
- •Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки
- •Asp.Net имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах. Возможности asp.Net
- •Оттранслированные программы
- •Элементы управления сервера
- •Независимость кода от браузеров
- •Отделение кода от содержимого
- •Управление состоянием
- •Управление состоянием в аsр.Nет
- •Искусственный интеллект
- •Предпосылки развития науки искусственного интеллекта
- •Подходы и направления
- •Тест Тьюринга
- •Символьный подход
- •Логический подход
- •Накопление и использование знаний
- •Суть процесса искусственного мышления
- •Применение
- •Перспективы
- •Искусственный интеллект в играх
- •Нейронные сети
- •Возможные способы применения и реализации
- •Категории аппаратного обеспечения инс
- •Цифровое исполнение
- •Аналоговое исполнение
- •Гибридное исполнение
- •Области применения нейронных сетей
- •Классификация угроз безопасности Web-приложений
- •Мировой рынок экспортного программирования
- •Прогноз развития мирового и российского рынка
- •Белорусские компании
- •Каким может быть аутсорсинг
- •Авторское право по как объект авторского права
- •Права автора Личные неимущественные права:
- •Личные имущественные права:
- •Способы защиты авторского права
- •Нарушение авторских прав
- •Типы лицензий
- •Пиратское по
- •Взгляд в будущее
- •Защита от несанкционированного копирования Введение
- •Организационные меры защиты
- •Защита при помощи компьютерных компакт-дисков
- •Методы взлома/обхода технических мер защиты
- •Проблема «лучше, чем легальное»
- •Классы атак Аутентификация (Authentication)
- •Авторизация (Authorization)
- •Атаки на клиентов (Client-side Attacks)
- •Выполнение кода (Command Execution)
- •Разглашение информации (Information Disclosure)
- •Логические атаки (Logical Attacks)
- •Компьютерные вирусы
- •Классификация вирусов
- •Топ 10 вирусов
- •Антивирусные программы
- •Методы обнаружения вирусов
- •Метод соответствия определению вирусов в словаре
- •Метод обнаружения странного поведения программ
- •Метод обнаружения при помощи эмуляции
- •Метод «Белого списка»
- •Эвристический анализ
Прогнозирование сопровождения
Менеджеры не любят сюрпризы, особенно если они выливаются в непредсказуемо высокие затраты. Поэтому лучше предусмотреть заранее, какие изменения возможны в системе, с какими компонентами системы будет больше всего проблем при сопровождении, а также рассчитать общие затраты на сопровождение в течение определенного периода времени.
Прогнозирование количества запросов на изменения системы зависит от понимания взаимосвязей между системой и ее окружением. Некоторые системы находятся в достаточно сложной взаимозависимости с внешним окружением и изменение окружения обязательно повлияет на систему, поэтому необходимо оценить следующие показатели:
Количество и сложность системных интерфейсов.
Количество изменяемых системных требований.
Бизнес-процессы, в которых используется данная система.
Измерение уровня сложности систем оказалось весьма полезным для выявления тех компонентов систем, которые сложны будут особенно для сопровождения. Экономически выгодно заменить сложные системные компоненты более простыми их версиями. Перечисленные ниже показатели полезны для оценивания удобства сопровождения.
Количество запросов на корректировку системы.
Среднее время, потраченное па анализ причин системных сбоев и отказов.
Среднее время, необходимое на реализацию изменений.
Количество незавершенных запросов на изменения.
Управление изменениями
Изменения в больших программных системах неизбежны. Как отмечалось в предыдущих главах, в течение жизненного цикла системы изменяются пользовательские и системные требования, а также приоритеты и запросы организаций. Процесс управления изменениями и соответствующие CASE-средства предназначены для того, чтобы зарегистрировать изменения и внести их в систему наиболее эффективным способом.
Процесс управления изменениями начинается после того, как программное обеспечение или соответствующая документация передается команде по управлению конфигурацией. Он может начаться во время тестирования системы или даже после ее поставки заказчику. Процедуры управления изменениями создаются для обеспечения корректного анализа необходимости изменений и их стоимости, а также для контроля за вносимыми изменениями.
Процесс управления изменениями
Первым этапом в процессе управления изменениями является заполнение формы запроса на изменения, в которой указываются те изменения, которые планируется внести в систему. В форме запроса также, приводятся рекомендации относительно изменений, предварительная оценка затрат и даты запроса, его утверждения, внедрения и проверки. Также форма может включать раздел, в котором указывается способ выполнения изменения. Запросы на изменения регистрируются в базе данных конфигураций. Таким образом, команда управления конфигурациями может следить за выполнением изменений, а также контролировать изменения определенных программных компонентов.
Сразу после представления заполненной формы запроса проводится проверка необходимости и допустимости изменения. Это объясняется тем, что некоторые изменения вызваны не ошибками в программе, а неправильным пониманием требований, другие могут дублировать исправление ранее обнаруженных ошибок. Если в процессе проверки выявляется, что изменение недопустимо, повторяется или уже было рассмотрено, то изменение отклоняется. Лицу, представившему запрос на изменение, объясняется причина отказа.
Для принятых изменений начинается вторая стадия — оценка изменений и предварительное определение стоимости. Сначала следует проверить влияние изменения на всю систему. Для этого делается технический анализ способа внесения изменения. Затем определяется стоимость внесения изменения в определенные компоненты, что регистрируется в форме запроса. В процессе оценивания полезна база данных конфигураций с информацией о взаимосвязях между компонентами, благодаря чему есть возможность оценить влияние изменений на другие компоненты системы.
Все изменения, кроме тех, которые относятся к исправлению мелких недоработок, должны быть переданы в группу контроля за изменениями, где принимается решение о принятии изменения либо отказе. Эта группа оценивает воздействие изменения не с технической, а скорее с организационной или стратегической точек зрения. Во внимание принимаются такие соображения, как экономическая выгодность изменения и организационные факторы, которые оправдывают необходимость изменения.
После принятия решения о внесении изменений программная система для внесения изменений передается разработчикам или команде по сопровождению системы. По окончании этой процедуры система обязательно должна пройти проверку на правильность внесения изменений. После этого именно команда по управлению конфигурацией, а не разработчики, займется выпуском новой версии.
Изменение каждого компонента системы должно регистрироваться. Таким образом создается история компонента.
