- •Министерство образования республики беларусь
- •Белорусский государственный университет
- •Факультет прикладной математики и информатики
- •Кафедра технологий программирования
- •Жизненный цикл проекта
- •Характеристики фаз проекта
- •Описание основных фаз проекта:
- •Инициация проекта
- •Характеристики жизненного цикла проекта
- •Современные процессы разработки программного обеспечения.
- •Выбор методологии
- •Жесткие методологии Модель водопада
- •Итеративная разработка
- •Спиральная модель
- •Гибкие методологии
- •Выбор архитектуры решения
- •Вычислительные системы
- •Операционные системы
- •Классификация операционных систем
- •Особенности областей использования
- •Менеджмент проектов
- •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 вирусов
- •Антивирусные программы
- •Методы обнаружения вирусов
- •Метод соответствия определению вирусов в словаре
- •Метод обнаружения странного поведения программ
- •Метод обнаружения при помощи эмуляции
- •Метод «Белого списка»
- •Эвристический анализ
Безопасность
Опасения, связанные с тем, что при использовании Internet OS существенно возрастает вероятность утечки конфиденциальной информации во многом преувеличены. Напротив, данные хранящиеся в дата-центрах надежно защищены как технологическими (криптографически) так и организационными методами, практически полностью исключающими возможность несанкционированного доступа.
Не вызывает сомнений, что установить троянский модуль непосредственно на компьютере пользователя, получив тем самым, прямой доступ к любой информации, что называется, «из первых рук» несравнимо проще, чем осуществлять криптоанализ передаваемых по сети данных или подкупить сотрудника соответствующего дата-центра.
Кроме того, современные системы хранения данных автоматически создают несколько копий файлов пользователя (обычно три), которые размещаются в географически разнесенных дата-центрах, что исключает возможность потери информации в результате непредвиденных обстоятельств.
Технология
Клиентская часть Internet OS, равно как и приложения, в общем случае, могут быть реализованы с использованием любых доступных в контексте веб-браузера технологий (JavaScript, DHTML, DOM, XML, CSS, XSL, XSLT, Adobe Flash и т. д.). Необходимо отметить, что в настоящее время, существует два принципиально различных подхода к технической реализации интерфейса пользователя. Один из таких подходов (наиболее перспективный), заключается в использовании технологий, предоставляемых непосредственно веб-браузером. Второй предполагает использование внешних компонентов, например, плеера Adobe Flash. В первом случае, Internet OS сможет запускаться в среде любой стандартной конфигурации веб-браузера, вне зависимости от установленных расширений и прав на их использование или обновление. Исключения могут составлять как приложения, в той или иной степени использующие такие расширения при своей работе, так и ядро клиентской части Internet OS, например, в случае отсутствия на компьютере пользователя компоненты парсера файлов в формате XML (например, MSXML).
Серверная часть Internet OS разрабатывается на одном или нескольких языках программирования (часто на языке C++ или каком либо скриптовом языке) и функционирует под управлением традиционной операционной системы на одном или нескольких (от единиц до десятков тысяч) компьютерах, объединенных в отказоустойчивый высокопроизводительный серверный кластер.
Перспективы
В настоящее время одновременно несколько компаний из разных стран мира занимаются разработкой и поддержкой интернет-операционных систем. Выпускаются нетбуки, планшеты и мобильные устройства, использующие такие операционные системы. Самыми популярными являются ОС Android, Jelicloud, Chrome OS. В ближайшем будущем возможен полный переход мобильных устройств на ОС интернет типа.
Технология Rich Internet Application. Платформы для разработки ria.
Rich Internet application
Rich Internet application (RIA, «богатое Интернет-приложение») — это приложение, доступное через Интернет, богатое функциональностью традиционных настольных приложений, не поддерживаемой браузерами непосредственно.
Как правило, приложение RIA:
передаёт веб-клиенту необходимую часть пользовательского интерфейса, оставляя большую часть данных (ресурсы программы, данные и пр.) на сервере;
запускается в браузере и не требует дополнительной установки ПО;
запускается локально в среде безопасности, называемой «песочница» (sandbox).
Т
радиционные
веб-приложения большей частью работают
на сервере. В клиентской программе-браузере
отображается контент, размеченный
языком разметки HTML. В силу такого подхода
традиционные веб-приложения имеют
достаточно ограниченный уровень
интерактивности и постоянно взаимодействуют
с сервером – отправляют на него данные,
получают ответы и загружают новые
страницы. При использовании технологии
запуска приложений на стороне клиента,
RIA могут обойти медленный цикл синхронизации
с сервером за счёт большего взаимодействия
с пользователем. Эта разница примерно
аналогична разнице между архитектурой
с «тонким клиентом» и архитектурой с
«толстым клиентом».
В RIA значительная часть функционала вынесена в клиентскую часть, т.е. исполняется на стороне клиента. Это позволяет получить приложение, которое работает быстрее, за счет меньшего количества обращений к серверу и отсутствия перегрузок страниц, при этом обеспечивает близкий к традиционным настольным приложениям уровень интерактивности и удобства интерфейса (например, такую возможность как drug&drop).
На практике, однако сложно провести четкую границу между тем, какие именно технологии включают в себя приложения RIA, и какие нет. Но все RIA имеют одну схожую особенность: они включают в себя некую промежуточную часть кода приложения, находящуюся между пользователем и сервером, которую обычно называют «движком клиента». Этот движок загружается в самом начале и в дальнейшем может догружаться по ходу работы приложения. Движок клиента выступает в роли надстройки браузера и обычно отвечает за рендеринг пользовательского интерфейса и взаимодействие с сервером.
Термин «RIA» впервые был упомянут компанией Macromedia в официальном сообщении от марта 2002 года. Эта концепция существовала несколькими годами ранее.
Adobe Flash
Adobe Flash (ранее Macromedia Flash) — мультимедийная платформа компании Adobe для создания веб-приложений. Широко используется для создания рекламных баннеров, анимации, игр, а также воспроизведения на веб-страницах видео- и аудиозаписей.
Платформа включает в себя ряд средств разработки, прежде всего Adobe Flash Professional и Adobe Flash Builder. Также программу для воспроизведения flash-контента — Adobe Flash Player, хотя flash-контент умеют воспроизводить и многие плееры сторонних производителей.
Adobe Flash позволяет работать с векторной, растровой и ограниченно с трёхмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для КПК и других мобильных устройств выпущена специальная «облегчённая» версия платформы Flash Lite, чья функциональность ограничена в расчёте на возможности мобильных устройств и их операционных систем.
Стандартным расширением для скомпилированных flash-файлов является .SWF (Shockwave Flash или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV.
Flash Player представляет собой виртуальную машину на которой выполняется загруженный из Интернета код flash-программы.
В основе анимации во Flash лежит векторный морфинг, то есть плавное «перетекание» одного ключевого кадра в другой. Это позволяет делать сложные мультипликационные сцены, задавая лишь несколько ключевых кадров. Производительность Flash Player при воспроизведении анимации в несколько раз превышает производительность виртуальной машины Javascript в браузерах, поддерживающих предварительный стандарт HTML5 , хотя во много раз уступает приложениям, работающим вообще без использования виртуальных машин.
Несмотря на то, что flash является наиболее распространенной RIA технологией, она обладает рядом серьезных недостатков. Главные недостатки flash – устаревшая платформа и потребление большого количества ресурсов. По словам Стива Джобса “технология Adobe Flash устарела, как дисководы гибких дисков, старые порты передачи данных и CD, на смену которым пришли iPod и iTunes”. Технологически flash уступает аналогу Silverlight. Также она уже частично может быть заменена HTML5. Учитывая, что развитие и поддержка HTML5 планируется до 2024 года, технология flash может быть полностью вытеснена, если не принесет новые идеи и их качественную реализацию. И хотя будущее за технологиями, подобными HTML5, в краткосрочной перспективе Flash определенно выигрывает.
Silverlight
Microsoft Silverlight - это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики. Первая бета-версия Silverlight была выпущена в декабре 2006 года.
Silverlight предоставляет графическую систему, объединяющую мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был разработан чтобы работать с XAML и с языками Microsoft .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в приложениях Silverlight, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать виджеты для Windows Sidebar в Windows Vista.
Silverlight может воспроизводить WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования такие как Iron Ruby и Iron Python.
Спустя два года после выхода первой версии технология Microsoft по-прежнему остается аутсайдером, несмотря на многочисленные технические достоинства. Silverlight установлен лишь на одном из трех устройств, подключенных к Интернету, Flash Player встречается на 90% компьютеров. Silverlight первым смог обеспечить воспроизведение онлайнового видео в полноэкранном режиме и с высоким разрешением. Какое-то время ему не было равных в этой области, но даже когда во Flash Player добавили те же функции, у Silverlight сохранялись технические преимущества. Последнее достижение Silverlight - автоматическое изменение качества видеопотока в зависимости от мощности процессора, качества и скорости интернет-соединения. В ближайшем будущем разработка Silverlight будет сфокусирована на плотном использовании технологий HTML5.
Java FX
JavaFX — это платформа для создания RIAs, которые могут запускаться на персональных компьютерах и мобильных устройствах. Технология JavaFX позволяет создавать приложения для работы с мультимедийным контентом, графические интерфейсы пользователя для бизнес-приложений, игры для персональных компьютеров и мобильных устройств, насыщенные графикой, мультимедиа веб-сайты и др.
Технология JavaFX была впервые продемонстрирована корпорацией Sun Microsystems в мае 2007.
Приложения JavaFX создаются с помощью декларативного языка программирования JavaFX Script. Из кода, написанного на языке JavaFX Script, можно обращаться к любым библиотекам Java. Поэтому совместное использование языков Java и JavaFX Script позволяет решать разнообразные задачи, например, логика бизнес-приложения может быть написана на Java, а графический интерфейс пользователя — на JavaFX Script.
Приложения, написанные на языке JavaFX Script могут запускаться на компьютерах с установленной средой исполнения Java 1.5 и выше. В настоящее время поддерживаются следующие операционные системы: Windows, Mac OS X, Linux и Solaris.
Для создания приложений для мобильных устройств разработчикам предлагается мобильный эмулятор, входящий в состав JavaFX 1.* SDK.
На данный момент JavaFX находится на этапе становления. Пока не появилось ни одного " приложения, которые можно было бы ставить в пример удачного применения JavaFX. Разработчики попытавшиеся применять JavaFX дают жёсткую оценку. Они разочарованы и отказываются от использования JavaFX в пользу апплетов.
