Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Лекция 1. Введение.

Презентация:



Advertisements
Похожие презентации
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 1. Повтор принципов объектно- ориентированного.
Advertisements

Учебный курс «Технологии программирования. Курс на базе Microsoft Solutions Framework (MSF)» Нижегородский государственный университет им. Н.И. Лобачевского.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Лекция 2. Элементы программной инженерии.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 2. Знакомство с построением диаграмм вариантов.
ООП Лекция 1. Основные понятия. Литература Шилдт Г. С#: полное руководтво.-М.:ООО Вильямс, с. Культин Н.Б. Microsoft Visual C# в задачах и.
Объектно- ориентированный подход к моделированию систем.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Лекция 5 Способы конструирования программ. Основы доказательства правильности.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 4. Прохождение фазы выработки концепции в.
Жизненный цикл программного обеспечения Лекция 4.
Презентация дисциплины по выбору Для студентов, обучающихся по направлению «Прикладная информатика» (магистерская программа «Прикладная информатика.
Разработка программного обеспечения (Software Engineering) Часть 1. Введение.
БЭСТ Дизайнер проектов Введение Концепции Основные понятия.
МФ НОЦ «ПОЛИТЕХНИК-SAP» МАЦК «Политехник-SAP» Презентация программы ДПО Никита Головин руководитель центра, к.т.н. Антон Амбражей.
Лекция 1 Учебные вопросы : Вопрос 1. История возникновения и понятие CASE- технологии. Вопрос 2. Особенности внедрения CASE- технологии. Вопрос 3. Основные.
Дисциплина «Технология разработки программного обеспечения» Тема 1 « Основы разработки Тема 1 « Основы разработки программного продукта » программного.
Методология объектно- ориентированного программирования.
Алгоритмический подход – главное алгоритм решения задачи ( в основном, используется для вычислительных задач ); Структурное программирование – декомпозиция,
Курсовое проектирование корпоративных информационных систем на платформе 1С:Предприятие 8 Евгений Ковалев 01 февраля 2012 г. 12 международная научно-практическая.
Транксрипт:

Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Лекция 1. Введение

«Избегайте тех, кто старается подорвать вашу веру в себя. Эта черта свойственна мелким людям. Великий человек, наоборот, внушает вам чувство, что и вы сможете стать великим» Марк Твен

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

Содержание Немного терминологии –Программирование –IT-проекты –Программы и программные продукты Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

Программирование... На протяжении всего времени обучения мы изучаем программирование. Что такое программирование? Версии зала...

Программирование Программирование (Computer science) – молодая, активно развивающаяся область. Вопрос о том, что это такое, давно беспокоит программистское сообщество. Классические версии: –искусство; –наука. Современные реалии: программирование это бизнес (IT-проекты).

IT-проекты Будем понимать под IT-проектами проекты в области информационных технологий. Будем далее рассматривать IT- проекты, целью которых является разработка программного обеспечения.

Вопросы 1. Что такое программное обеспечение (ПО)? 2. Чем ПО отличается от обычной программы? 3. Вчера мы с другом написали «Калькулятор». Определенно, это программа. Является ли она ПО? Версии зала...

Программы и Программное обеспечение Программное обеспечение (Software) – набор компьютерных программ, процедур и связанной с ними документации и данных (ISO/IEC 12207). Программное обеспечение Программа

ПО (Software) и программный продукт Итак, ПО = программа + документация + [...]. Вместо ПО часто говорят «программный продукт». Программный продукт: одно из главных свойств – продуваемость. Продаваемость – залог успеха бизнеса по разработке ПО.

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

Бизнес и IT-проекты... Сейчас программирование это не только наука и искусство, но и бизнес. Для того, чтобы этот бизнес был успешным, необходимо выполнение многих условий. Версии зала... Условия?

Бизнес и IT-проекты... Необходимые условия успеха программистской компании: –выпуск продукта на рынок надлежащего качества; вовремя; интересного потенциальным пользователям. –расходы должны соответствовать изначальному бюджету.

Бизнес и IT-проекты Многие проекты: Цель:Результат: Функциональность Время Бюджет

Немного статистики. IT-проекты... Проваленные: закончились неудачей – цель вообще не была достигнута. Испытавшие большие проблемы: закончились созданием продукта, но превысили бюджет или (и) не уложились во время или (и) имеют лишь частичную функциональность. Успешные: закончились созданием продукта, уложились в бюджет и время. Вся планируемая функциональность реализована.

Немного статистики. IT-проекты 0%100% 31%53%16% %33%27%28%46%26%23%49%28% * Источник: The Standish Group International, Extreme Chaos. Данные взяты с Провалены Испытали большие проблемы Успешные 28% % 2003

Еще немного статистики… * 2004 г $ ушло на разработку программных приложений (без учета консалтинга, обновления методологии...) * Источник: The Standish Group International, Extreme Chaos. Данные взяты с

Еще немного статистики * * Источник: The Standish Group International Данные взяты с

Об отрасли разработки ПО в России На конец 90-х годов: Хорошие программисты. Грамотные аналитики. Недостаток хороших управленцев. Проблемы с документированием и локализацией. Проблемы с рекламой и продвижением.

IT-рынок и отрасль разработки ПО в России * Современные реалии ( гг.) Объем экспорта ПО из России в 2005 г. превысил 1 млрд.$ (автомобили 380 млн.$, атомная энергетика – 850 млн.$). * Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006 г. Данные взяты с

IT-рынок и отрасль разработки ПО в России * Современные реалии ( г.г.) IT-рынок в России 2004 – 9,2 млрд.$ 2005 – рост 22,1% (в мире ~6%)! Мировой IT рынок (2005 г.) – 900 млрд.$ * Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006 г. Данные взяты с

IT-рынок и отрасль разработки ПО в России * Современные реалии ( г.г.) Рынок ПО в России 2005 – 1,4 млрд.$ (1/8 от всего IT). Рост – 40-50% в год. * Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006 г. Данные взяты с

Тенденции Быстрый рост объемов IT-рынка, рынка ПО. Укрепление позиций российских компаний. По-прежнему малая доля в мировых объемах. В чем нуждается отрасль? В грамотных специалистах, способных повысить успешность проектов.

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

О предмете Задачи нашего предмета: Изучить причины неудач IT-проектов. Выявить способы устранения этих причин. Научиться применять эти способы на практике.

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

Почему проекты не успешны? Специалисты выделяют следующие причины: 1. Нереалистичные временные рамки. 2. Недостаток количества исполнителей. 3. Размытые границы проекта. 4. Недостаток средств. 5. Нехватка квалифицированных кадров.

Кто виноват? Все 5 пунктов относятся к компетенции управленцев различного уровня. Проектами в области разработки ПО очень сложно эффективно управлять. Почему? Версии зала...

Откуда берется сложность управления? Человеческий фактор. Традиционные трудности управления коллективом. Новая молодая область. Не хватает квалифицированных кадров, методов, технологий, опыта. Сложность задач. Рост возможностей приводит к росту сложности решаемых задач и наоборот. Трудности в работе с заказчиками и будущими пользователями. Заказчики не знают, что они хотят. Пользователи плохо владеют ПК и не понимают, как он работает и что от него ждать. Все говорят на разных языках....

Как бороться со сложностью? Как бороться со сложностью задач? (1) Как бороться со сложностью управления? (2) Ответ: разрабатывать и внедрять специальные технологии. (1) – технологии программирования (изучали в курсах Основы программирования, ООП). (2) – методологии MSF, RUP, XP, … (рассмотрим в этом курсе, но чуть позже).

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО –Структурное программирование –Модульное программирование –Объектно-ориентированное программирование –Компонентное программирование Структура учебного плана Литература

Технологии программирования... Начнем разговор того, что нам должно быть известно, с технологий программирования. Что такое технология? Технология – совокупность производственных процессов в определенной отрасли производства, а также научное описание способов производства *. * Источник: С.И. Ожегов. Словарь русского языка. - М.: Советская энциклопедия, 1975.

Технологии программирования... Создание программных продуктов – технологический процесс. При этом применяются различные технологии. Эти технологии относятся не только к кодированию, но и к анализу, проектированию, управлению проектом, разработке документации...

Технологии программирования... Технология программирования – совокупность методов, приемов и средств для сокращения стоимости и повышения качества разработки программных систем.

Технологии программирования... Над созданием программного продукта работают представители разных специальностей: Аналитики; Управленцы (менеджеры); Тестеры; Кодировщики (программисты); Технические писатели; Системные администраторы; Специалисты по повторному использованию; Дизайнеры; Специалисты по эргономике;...

Технологии программирования В проектировании и программировании активно применяются следующие технологии: Структурное программирование. Модульное программирование. Объектно-ориентированное программирование. Компонентное программирование.

Структурное программирование… Э. Дэйкстра (60-е годы): Для любой простой программы можно построить функционально эквивалентную ей структурную программу, т.е. программу, сформированную на основе фиксированного базисного множества, включающего: структуру последовательного действия, структуру выбора одного из двух действий структуру цикла, то есть многократного повторения некоторого действия с проверкой условия остановки повторения.

Структурное программирование… Простая программа – ровно один вход и один выход. Базисные конструкции:

Структурное программирование Стандартизация и линейность программы – снижение сложности. Некоторые соображения: Алгоритм должен иметь 1 вход и 1 выход. Никаких goto. Нет зависимости от языка программирования. Ясен набор операторов, который необходим в языках программирования.

Модульное программирование... Основная идея: разбиваем сложную задачу на подзадачи, каждую из них при необходимости разбиваем снова и т.д. Получаем простые задачи, их решаем, объединяем.

Модульное программирование Структурное программирование – универсальный базис алгоритмических конструкций. Модульное программирование – специфичный для задачи базис из модулей. –Более высокий уровень абстракции. –Настройка на конкретную задачу. –Возможности повторного использования. –Возможности коллективной разработки – разделение труда.

Объектно-ориентированное программирование... Дальнейшая борьба со сложностью. Технология работает с этапа анализа. Анализ – Проектирование – Программирование. В основе – объектная модель и объектная декомпозиция.

Объектно-ориентированное программирование Основные принципы объектной модели: –абстракция; –инкапсуляция; –иерархия (наследование, агрегация); –полиморфизм; –модульность. Объектная декомпозиция (в отличие от алгоритмической): элементы проекта – классы и объекты (а не алгоритмы). И только потом данные и алгоритмы.

Компонентное программирование... Компонентное программирование – развитие объектно-ориентированной идеологии. Введен следующий уровень абстракции – классы объединяются в компоненты. Основной принцип компонентного программирования: сборка приложения из готовых компонент, в общем случае написанных на разных языках.

Компонентное программирование Компонент: –программный код в виде самостоятельного модуля –м.б. использован в неизменном виде –может допускать настройку –обладает поведением (функциональностью). Компонент изолирован от внешнего мира своим интерфейсом – набором методов (их сигнатурами). Компонентная программа – набор независимых компонент, связанных друг с другом посредством интерфейсов.

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

Некоторые формальности Лекции – 16 часов (1 час в неделю). Практика (ауд.) – 16 часов (1 час в неделю). Терминал-класс – 32 часа (2 часа в неделю).

Структура курса - лекции Вводная лекция (заканчивается ). 1. Введение в программную инженерию. Знакомимся с основными понятиями. Изучаем основные проблемы и подходы к их решению. 2. Визуальное моделирование при анализе и проектировании. Основы Unified Modeling Language (UML). Вспоминаем идеи ООП. Знакомимся с анализом и проектированием. Осваиваем визуальное моделирование. Изучаем UML. 3. Методология создания программных решений Microsoft Solutions Framework (MSF). Знакомимся с тем, как происходит процесс создания и выпуска на рынок программного продукта.

Структура курса - практика Разбиваемся на команды по 4-6 человек. Выбираем себе задачу из списка. Работаем с заказчиком (преподаватель ). Определяемся с ролями разработчиков. Разрабатываем и внедряем программный продукт.

Содержание Немного терминологии Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики О предмете Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО Структура учебного плана Литература

Использованные Интернет-источники =newsletter/ /Standishhttp:// =newsletter/ /Standish ibm.com/developerworks/rational/libr ary/feb06/marasco/ 128.ibm.com/developerworks/rational/libr ary/feb06/marasco/ menttopics/management/project/story/0, 10801,84266,00.htmlhttp:// menttopics/management/project/story/0, 10801,84266,00. html

Литература к лекции 1.И. Соммервиль. Инженерия программного обеспечения, 6 изд. – И.д. "Вильямс", Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. Второе издание. – Бином, N. Wirth. Program Development by Stepwise Refinement // Communications of the ACM vol.26(1).– 1971, O. Dahl, E. Dijkstra, C.A.R. Hoare. Structured Programming.–London, England: Academic Press, Р. Лингер, Х. Миллс, Б. Уитт. Теория и практика структурного программирования. – М.: Мир, Э. Салливан. Время – деньги. – М.:Microsoft Press, Русская редакция, 2002.