Скачать презентацию Технологии программирования Программирование Computer science — молодая Скачать презентацию Технологии программирования Программирование Computer science — молодая

лекция1_2011.pptx

  • Количество слайдов: 33

Технологии программирования Технологии программирования

Программирование (Computer science) - молодая, активно развивающаяся область Долгое время человечество волнует вопрос о Программирование (Computer science) - молодая, активно развивающаяся область Долгое время человечество волнует вопрос о том, к какому роду деятельности относится программирование. В 60 -х - 70 -х годах XX века данный вопрос активно обсуждался на научных конференциях. Существовало 2 популярных точки зрения: "программирование это искусство" и "программирование это наука". К единому мнению придти так и не удалось. В настоящий момент мы можем добавить к этим популярным трактовкам еще одну: "программирование это бизнес". Чтобы понять, что программирование это бизнес, достаточно посмотреть, какими числами выражаются доходы современных IT-компаний. Программирование

IT-проекты - это проекты в области информационных технологий, целью которых является разработка программного обеспечения. IT-проекты - это проекты в области информационных технологий, целью которых является разработка программного обеспечения. Что такое программное обеспечение (ПО)? Чем ПО отличается от обычной программы? "Калькулятор» – это определенно программа. Является ли она ПО? IT-проекты

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

Чтобы бизнес был успешным, необходимо (но не достаточно) выполнение многих условий: Продукт должен выходить Чтобы бизнес был успешным, необходимо (но не достаточно) выполнение многих условий: Продукт должен выходить на рынок ◦ надлежащего качества; ◦ вовремя; ◦ интересным потенциальным пользователям. Расходы должны соответствовать изначальному бюджету . Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики

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

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

 2010 год можно смело назвать годом борьбы. Весь мир принял курс на ликвидацию 2010 год можно смело назвать годом борьбы. Весь мир принял курс на ликвидацию последствий мирового финансового кризиса В ИТ- технологиях полностью поменялись приоритеты развития, изменилась структура и общая направленность деятельности спросом стали пользоваться только проверенные и хорошо зарекомендовавшие себя технологии, которые являются ключом к сокращению затрат и выходу из финансового кризиса Множество ИТ-компаний приостановили свою работу: Ударил этот кризис и по такому гиганту, как Microsoft. По истечении первого квартала 2010 -го года, корпорация опубликовала отчет, который впервые за двадцать лет оказался минусовым Еще один мастодонт рынка высоких технологий, компания Intel, вынуждена была закрыть шесть (!) фабрик, производящих микросхемы. Массовые сокращение работников прошли даже в корпорации Apple, которая всегда казалась образцом стабильности Технологичные корпорации пересмотрели предложение товаров, сделав главный акцент на низкие по стоимости продукты, направленные на оптимизацию бизнеса клиентов Мировой рынок ИТтехнологий: итоги 2010 года

 Если сравнивать долю рынка ИТ-технологий в 2009 году и в 2010, то за Если сравнивать долю рынка ИТ-технологий в 2009 году и в 2010, то за прошедший кризисный год эта доля уменьшилась на 200 млрд. $. Примерно на 16% сократилось мировое потребление персональных компьютеров. Небольшое оживление на рынок внесло появление нет-буков, но и это не спасло ситуацию. Более менее удержался на плаву рынок программного обеспечения. Здесь разработчики новых программных решений потеряли всего два процента потребителей В 2010 -м году многие ИТ-компании сумели выжить за счет участия в госпроектах и государственной поддержки в целом. Дело в том, что для тех стран, которые всегда являлись лидерами в области высоких технологий, было крайне важно сохранять статус даже в условиях кризиса. Поэтому на новые разработки было направлено большое количество инвестиций. Лидером по подобным антикризисным мерам стал Китай и Азиатско-Тихоокеанский регион в целом Одной из главных тенденций 2010 -го года на рынке ИТ стали всевозможные мобильные сервисы, ориентированные на корпоративных клиентов. Также произошло широкое внедрение аналитических систем управления. Одним из лидеров является система, позволяющая отслеживать интернет-активность того или иного пользователя, закрывать доступ на разного рода ресурсы, ограничивать количество потребляемого трафика. На 2011 -2012 -ый годы прогнозы достаточно оптимистичны. Сферу ИТ-технологий ожидает сильный рост, обещающий превзойти все, даже самые смелые предсказания экспертов

 Для того чтобы повысить объемы рынка, необходимо повысить показатель успешности проектов, для чего Для того чтобы повысить объемы рынка, необходимо повысить показатель успешности проектов, для чего отрасль нуждается не только в новых технологиях, но и в грамотных специалистах, способных эти технологии применять. Надеемся, что вы пополните эту, без сомнения почетную и востребованную когорту.

 Почему IT-проекты терпят неудачи? Почему, казалось бы, хорошо спланированный проект не укладывается во Почему IT-проекты терпят неудачи? Почему, казалось бы, хорошо спланированный проект не укладывается во временные рамки? Почему по прошествии некоторого времени выясняется, что имеющегося бюджета недостаточно? Почему полученный в итоге продукт не пользуется спросом? Причины неудачи IT-проектов

 Правильно оценить время, необходимое для выполнения проекта, - сложная задача, решение которой часто Правильно оценить время, необходимое для выполнения проекта, - сложная задача, решение которой часто не под силу даже опытным менеджерам. Существуют специальные критерии, которые помогают принимать правильные решения, такие как учет времени в человеко-часах и т. д. Тем не менее, задача остается сложной, колоссальное значение в ней имеет грамотный учет рисков. Причина 1. Нереалистичные временные рамки

 Иногда менеджер решает сэкономить, иногда переоценивает возможности своих сотрудников, иногда в ходе разработки Иногда менеджер решает сэкономить, иногда переоценивает возможности своих сотрудников, иногда в ходе разработки выясняется, что задача сложнее, чем казалось на самом деле, проблема недостатка рабочих рук, так или иначе, возникает достаточно часто. Причина 2. Недостаток количества исполнителей

Одна из наиболее серьезных причин неудачи проекта - нечетко сформулированные цели, неоднократно меняющиеся в Одна из наиболее серьезных причин неудачи проекта - нечетко сформулированные цели, неоднократно меняющиеся в ходе разработки. …многоэтажные дома и дачные домики строятся на основе применения разных технологий и материалов. Если вам доведется управлять проектом сделайте все, чтобы четко сформулировать требования к системе в соответствии с пожеланиями пользователя. Мы поговорим про это подробнее в подразделе "Управление требованиями". Причина 3. Размытые границы проекта

Известны две крайности при планировании бюджета: чрезмерное раздувание (подход пессимиста) и чрезмерное уменьшение (подход Известны две крайности при планировании бюджета: чрезмерное раздувание (подход пессимиста) и чрезмерное уменьшение (подход оптимиста). Использование первого подхода чаще всего (если только ваш заказчик не совсем дилетант) приводит к тому, что ваша команда теряет проект. "Слишком дорого, сэр. Мы идем к Вашим конкурентам". Второй подход часто применяется не только в силу оптимизма менеджмента, но и в рекламных целях, чтобы любой ценой выиграть проект. "Мы сейчас напишем меньше всех, а там видно будет". Увы, в дальнейшем приходится расплачиваться за демпинговые меры. Качественно реализовать проект за выделенные деньги оказывается просто невозможным. Представляется разумным оценивать бюджет реально с некоторой перестраховкой на случай непредвиденных ситуаций (заболел ключевой сотрудник, вышло из строя дорогостоящее оборудование. . . ). Не выиграем этот проект - выиграем другой. Хуже, если выиграем, но провалим. В нашу состоятельность больше могут и не поверить Причина 4. Недостаток средств

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

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

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

Разработка программного модуля: изучение и проверка спецификации модуля, выбор языка программирования; выбор алгоритма и Разработка программного модуля: изучение и проверка спецификации модуля, выбор языка программирования; выбор алгоритма и структуры данных; программирование (кодирование) модуля; шлифовка текста модуля; проверка модуля; компиляция модуля. Технология структурного программирования

Доказано, что программу можно составить только из структур: Следование; Развилка; Повторение. Псевдокод используется для Доказано, что программу можно составить только из структур: Следование; Развилка; Повторение. Псевдокод используется для их записи. Это средство изображения логики программы, которое можно применять вместо блок-схемы. Структурное программирование

Следование Разветвлени е Да S 1 P S 1 S 2 Нет S 2 Следование Разветвлени е Да S 1 P S 1 S 2 Нет S 2 Повторение S Да P Нет Управляющие структуры

 СЛЕДОВАНИЕ: РАЗВИЛКА: ОБОБЩЕННЫЙ_ОПЕРАТОР ЕСЛИ УСЛОВИЕ ТО ОБОБЩЕННЫЙ_ОПЕРАТОР ИНАЧЕ ОБОБЩЕННЫЙ_ОПЕРАТОР ВСЕ_ЕСЛИ ПОВТОРЕНИЕ: ПОКА УСЛОВИЕ СЛЕДОВАНИЕ: РАЗВИЛКА: ОБОБЩЕННЫЙ_ОПЕРАТОР ЕСЛИ УСЛОВИЕ ТО ОБОБЩЕННЫЙ_ОПЕРАТОР ИНАЧЕ ОБОБЩЕННЫЙ_ОПЕРАТОР ВСЕ_ЕСЛИ ПОВТОРЕНИЕ: ПОКА УСЛОВИЕ ДЕЛАТЬ ОБОБЩЕННЫЙ_ОПЕРАТОР ВСЕ_ПОКА Управляющие структуры на ПСЕВДОКОДЕ

Структурная блок-схема нахождения максимального значения в таблице из 100 чисел HIGH=N следование I=2 повторени Структурная блок-схема нахождения максимального значения в таблице из 100 чисел HIGH=N следование I=2 повторени е HIGH=N да I<=100 нет да I=I+1 HIGH

Частные случаи оператора перехода в качестве обобщенного оператора: Выход из повторения: выйти Выход из Частные случаи оператора перехода в качестве обобщенного оператора: Выход из повторения: выйти Выход из процедуры (функции): вернуться Переход на обработку исключительной ситуации: имя_исключения Обработчик исключений: возбудить исключение имя_исключения ОБОБЩЕННЫЙ_ОПЕРАТОР все_исключение

Выше = 0 Ниже = 0 Есть_показания = да ЦИКЛ_ПОКА Есть_показания Читать_температуру КОНЕЦ_ФАЙЛА Есть_показания Выше = 0 Ниже = 0 Есть_показания = да ЦИКЛ_ПОКА Есть_показания Читать_температуру КОНЕЦ_ФАЙЛА Есть_показания = нет ЕСЛИ Есть_показания = да ЕСЛИ температура < 18 Увеличить Ниже ИНАЧЕ ЕСЛИ температура > 26 Увеличить Выше ВСЕ_ЕСЛИ ВСЕ_ЦИКЛ Напечатать результаты ПСЕВДОКОД – программа анализа температуры

в начале 70 -х годов XX века оформилась идея разработки больших программных систем Разработка в начале 70 -х годов XX века оформилась идея разработки больших программных систем Разработка под конкретную задачу или круг задач (предметную область) собственного базиса в виде набора модулей, позволяющего наиболее эффективно по целому ряду критериев построить программный комплекс. Модули, входящие в базис, это целые программы (в отличие от примитивов структурного программирования), решающие некоторые подзадачи основных задач. Модульное программирование

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

 объектно-ориентированная технология работает на стадиях анализа, проектирования и программирования. В основе технологии лежат объектно-ориентированная технология работает на стадиях анализа, проектирования и программирования. В основе технологии лежат объектная модель и объектная декомпозиция Объектно-ориентированное программирование

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

Выделение в предметной области классов и объектов, а также связей между ними, и лишь Выделение в предметной области классов и объектов, а также связей между ними, и лишь потом данных и алгоритмов, которыми характеризуется каждый класс. Классы становятся основными "строительными блоками" в ООП, тогда как ранее таковыми блоками являлись алгоритмы. Суть объектной декомпозиции

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

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

сборка приложения из готовых компонент, в общем случае написанных на разных языках. Компонент изолирован сборка приложения из готовых компонент, в общем случае написанных на разных языках. Компонент изолирован от внешнего мира своим интерфейсом - набором методов (их сигнатурами). Компонентная программа - набор независимых компонент, связанных друг с другом посредством интерфейсов. Основной принцип компонентного программирования