Меню

Роль программного обеспечения уменьшается или увеличивается по сравнению с предыдущими поколениями



Урок 29
§35. История и перспективы развития компьютеров

Содержание урока

Вопросы и задания

Вопросы и задания

1. По какому принципу ЭВМ делятся на поколения?
2. Как вы понимаете термин «персональный компьютер»?
3. Что можно сказать по поводу роли программного обеспечения: уменьшается она или увеличивается по сравнению с предыдущими поколениями?
4. Предположим, что появился процессор с каким-то принципиально новым свойством. Как быстро этим свойством смогут воспользоваться потребители? Какова роль программного обеспечения в этом?
5. Быстродействие вычислительной техники постоянно растёт. Как же тогда объяснить, что пользователи жалуются на «медлительные» компьютеры и все время стараются купить новые, ещё более производительные?
6. Как вы думаете, влияет ли развитие программных средств на развитие аппаратной части?
7. Зачем были созданы языки программирования?
8. Когда появились операционные системы и с чем это связано?
9. Насколько сейчас, по-вашему, актуально умение программировать? Попробуйте найти аргументы «за» и «против» (учитывайте разные цели работы людей на компьютере).
10. Выполните по указанию учителя задания в рабочей тетради.

Подготовьте сообщение

а) «Чарльз Бэббидж и Аналитическая машина»
б) «Первая программистка»
в) «Персональные компьютеры»
г) « Суперкомпьютеры »
д) «Мобильные устройства»
е) «Большие данные (Big Data)»

Интересные сайты

computer-museum.ru — виртуальный компьютерный музей

computerhistory.narod.ru — виртуальный музей истории вычислительной техники в картинках

lib.ru/MEMUARY/MALINOWSKIJ/O.txt — Б. Н. Малиновский «История вычислительной техники в лицах»

Следующая страница §35. История и перспективы развития компьютеров

Cкачать материалы урока

Источник

Уроки 37 — 38
История и перспективы развития вычислительной техники
§31. История развития вычислительной техники

Содержание урока

Вопросы и задания

Вопросы и задания

1. Что такое компьютер?
2. Охарактеризуйте программную и аппаратную части компьютера.
3. Почему универсальный компьютер с изменяемой программой удобнее, чем специализированная техника? Ответ обоснуйте.
4. Что такое цифровая и аналоговая техника?
5. Почему цифровая техника вытеснила аналоговую?
6. Перечислите основные вехи в истории развития вычислительной техники.
7. Какова заслуга Чарльза Бэббиджа?
8. В честь кого названы языки программирования Ада и Паскаль? Какое отношение эти люди имеют к вычислительной технике?
9. Что такое транзистор и микросхема? Из чего они изготавливаются?
10. С какой целью разрабатывались первые микропроцессоры?
*11. Почему микропроцессор Intel 4004 был специально спроектирован для работы только с четырёхбитными данными? Указание: вспомните, как можно хранить отдельные десятичные цифры числа.
12. По какому принципу ЭВМ делятся на поколения?
13. Почему время существования того или иного поколения всегда указывается приблизительно?
14. Перечислите все поколения ЭВМ и назовите элементную базу каждого из них.
15. Что даёт уменьшение базовых элементов вычислительной техники?
16. Почему электронные схемы требуют охлаждения? Все ли элементы нуждаются в дополнительном охлаждении?
17. Какие поколения вычислительных машин построены на базе полупроводниковых технологий? Чем отличается друг от друга их элементная база?
18. Объясните, почему большинство ЭВМ третьего поколения имели крупные габариты, несмотря на очередное уменьшение размеров элементной базы.
19. Когда появились первые семейства ЭВМ? Какая фирма предложила идею? В чем преимущества выпуска совместимых моделей?
20. Компьютеры какого поколения сейчас стоят на полках магазинов?
21. Какие разновидности компьютеров входят в четвёртое поколение?
22. Как вы понимаете термин «персональный компьютер»?
23. Какие семейства персональных компьютеров вы знаете? Какое из них появилось раньше?
24. Перечислите бытовые приборы, в которых применяются микропроцессоры.
25. Что такое суперкомпьютеры? Зачем они используются?
26. Найдите в Интернете рейтинг суперкомпьютеров Тор500. Какие страны занимают в нём лидирующее положение? Есть ли там российские компьютеры?
*27. Зачем в суперкомпьютерах так много процессоров? Подумайте, любая ли задача может быть решена быстрее, если её считать параллельно на множестве процессоров? (В качестве помощи можно вое- пользоваться аналогией с распределением частей одного большого задания между учениками класса.)
28. Назовите примеры вычислительных машин каждого из четырёх поколений. Найдите в Интернете дополнительный материал об этих машинах.
29. Что вы можете сказать о судьбе пятого поколения компьютеров? *30. Почему, по-вашему мнению, уже довольно давно не происходило смены поколений?
31. Данные каких типов обрабатывались на ЭВМ каждого из поколений?
32. Как изменялся набор внешних устройств при переходе от одного поколения к другому?
33. Опишите, как происходило развитие программного обеспечения.
34. Что вы можете сказать по поводу роли программного обеспечения: уменьшается она или увеличивается по сравнению с предыдущими поколениями?
35. Предположим, что появился процессор с каким-то принципиально новым свойством. Как быстро этим свойством смогут воспользоваться потребители? Какова роль программного обеспечения в этом?
36. Быстродействие вычислительной техники постоянно растёт. Как же тогда объяснить, что пользователи жалуются на «медлительные» компьютеры и все время стараются купить новые, ещё более производительные?
*37. Влияет ли развитие программных средств на развитие аппаратной части?
38. Что представляли собой программы для первых машин? Почему для их записи было удобно использовать не двоичную систему счисления, а восьмеричную или шестнадцатеричную?
39. Зачем были созданы языки программирования? Когда они появились?
40. Попробуйте назвать положительные и отрицательные последствия огромного разнообразия существующих программ.
41. Почему развитие ПО расширяет количество пользователей компьютера?
42. Когда появились операционные системы и с чем это связано?
*43. Насколько сейчас, по-вашему, актуально умение программировать? Попробуйте найти аргументы «за» и «против» (учитывайте разные цели работы на компьютере у людей).

Подготовьте сообщение

а) «Что такое микропроцессор?»
б) «Физические пределы быстродействия компьютеров»
в) «Много программ — это хорошо или плохо?»
г) «Зачем нужно программировать?»

Подготовьте доклад

а) «Первые ЭВМ»
б) «Поколения ЭВМ»
в) «Программное обеспечение и поколения ЭВМ»
г) «Разработка компьютеров будущего»
д) «Квантовые компьютеры»
е) «Суперкомпьютеры»

Следующая страница §31. История развития вычислительной техники

Cкачать материалы урока

Источник

Программное обеспечение компьютера — Софт: Что это такое

Программное обеспечение является тем, благодаря чему наши компьютеры, ноутбуки, смартфоны и даже телевизоры могут работать и выполнять свои функции. Без ПО это будут просто железки, которые ни на что не способны.

Многие не раз слышали этот термин в простой речи, даже люди далекие от компьютерной тематики. Если вам интересно, что это такое и вы хотите увеличить свои знания в сфере IT — то данный материал для вас.

Вам понравился материал о том, как восстановить удаленный файл, данная статья будет посвящен тому, что такое программное обеспечение, его назначение и виды.

Что такое программное обеспечение — Софт

Программное обеспечение (ПО, software, софт) — это программа/ы, которые выполняют какие-либо функции, заложенные в них разработчиком. Это может быть, как просто единичная программа, например, тот же блокнот, так и целая система — та же ОС Windows. Т.е. по сути — это определенный набор правил, написанный в виде кода хранящемся в файле/ах, который обеспечивает работу, как всего аппаратного средства (операционная система), так и работу конкретных функций на нем (программы, утилиты, драйвера и т.д.).

Важно! Программное обеспечение может быть у любого устройства, не только у компьютера или ноутбука. Например, на телевизорах тоже стоит ПО.

Программное обеспечение включает в себя: программы, утилиты, драйвера, исполняемые и неисполняемые файлы и библиотеки. Т.е. любая программа, установленная на вашем ПК или драйвер, относится к программному обеспечению компьютера, и вы их смело можете так называть и не сомневаться. Т.к. ПО это их общее название и по своей сути это софт, который работает на устройстве и выполняет поставленные задачи.

Читайте также:  Сравнение числа 6 с предыдущими числами задания

Зачем нужно программное обеспечение

Программное обеспечение нужно, чтобы устройство/железо способно было выполнять заложенные в нем функции. Так, к примеру, чтобы текст набираемый на клавиатуре выводился на экране монитора — нужно ПО, которое будет обеспечивать это.

Любые возможные действия и команды программируются, чтобы устройство вообще могло, что-то делать — обязательно нужен определенный программный код. Совокупность такого кода и называется программным обеспечением.

Существует огромное количество различного ПО с самыми разнообразными функциями. Есть и фоторедакторы, и мессенджеры, и музыкальные плееры, и многое другое. И все это для разного аппаратного обеспечения и работает на разных операционных системах.

Виды программного обеспечения

По типам ПО делиться именно по своему предназначению, а уже потом классифицируется по остальным признакам. Т.е. все программное обеспечение выполняет свои конкретные функции, этим и различается. В информатике делят ПО на такие виды:

Прикладное ПО

Это тот софт, которым вы часто пользуетесь, к примеру, тот же браузер с которого вы и читаете данный текст. Антивирусы, видео-редакторы, браузеры и т.д. — все это прикладное ПО. Не относится напрямую к операционной системе и не выполняет системные функции.

Прикладное ПО выполняет определенные задачи: набор текста, рисование, редактирование чего-либо и т.д. Если какой-либо софт выполняет задачи, не связанные напрямую с ОС — это прикладное ПО.

Системное ПО

Обеспечивает взаимодействие между пользователем и аппаратным обеспечением. Благодаря ему система способна управлять аппаратной стороной ПК, следить за ее работой и в принципе взаимодействовать. Это программы, которые контролируют работу процессора, видеокарты, принтера и т.д. И они непосредственно связаны с ОС.

К такому ПО можно отнести:

  1. Драйверы — они как раз и обеспечивают взаимодействие между устройством и операционной системой. Подробнее об этом написано в материале — что такое драйвер.
  2. Операционная система.
  3. Тот же биос, различное встроенное в оборудование ПО.

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

Инструментальное ПО

Данный тип по сути это тоже прикладное ПО, но его решили выделить в определенную группу для лучшего понимания. Основная функция данного типа — создание, отладка, редактирование программного кода.

Это именно тот инструментарий, с помощью которого и создается другое ПО. Это те же отладчики, компиляторы, редакторы, интерпретаторы и т.д. Весь тот софт, который превращает исходный код в программы и приложения, которыми мы привыкли пользоваться.

Классификация программного обеспечения

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

По операционной системе и устройству

Конечно же, каждое ПО создается под определенную систему и для определенного устройства. Так, как архитектура совершенно разная — даже один и тот же софт работающий на разных устройствах — совершенно разные программы на уровне кода. Итак, разделим на:

  • По ОС: Windows, Mac OS, Linux, IOS, Android и т.д.
  • По устройству: Компьютер, смартфон, телевизор, планшет, роутер и т.д.

По режиму использования

Надо понимать, где и кто будет пользоваться софтом. Ведь ПК может использовать, как один человек, так и целая семья.

  • Для индивидуального использования. Один пользователь, одна лицензия.
  • Для группового использования. Когда софтом могут пользоваться несколько человек, к примеру, в какой-нибудь компании.
  • Сетевым. Могут воспользоваться все, кому по сети дали доступ (ключи, пароли).

По функционалу

ПО сильно разнится от набора выполняемых функций, это может быть простая маленькая утилита, которая показывает температуру процессора или целый Microsoft Office для работы с огромным количеством различных документов. Бывает:

  • Малое. Мелкие утилиты, которые узкоспециализированы на выполнение определенных функций, те же проигрыватели видео и музыки.
  • Среднее. Программы, которые уже предлагают определенный функционал в работе с определенными задачами, фоторедакторы, офис и т.д.
  • Большое. Комбайны, которые кроме поставленных задач предлагает множество и других возможностей, например, кроме записи диском включает в себя проигрыватель, конвертер и т.д. Также сюда можно отнести и большой софт типа того же Microsoft Office, который предлагает несколько решений в одном пакете.

По степени готовности и стабильности работы

  • Готовый релиз — стабильное ПО. Готовая программа, которой уже можно пользоваться. Правки вряд ли будут вносится, а если и будут, то без существенных изменений. Обычно только для улучшения.
  • Бета версия — средней стабильности. Практически готовый продукт, но с дальнейшими правками/изменениями, чтобы все стабильно функционировало. Такой софт будет «допиливаться» и улучшаться.
  • Демо/альфа версия — нестабильное ПО. По сути начальная стадия, которая иногда лишь отдаленно показывает, что из себя будет представлять готовый продукт. Обновления будут постоянными, и меняться в таком ПО способно все кардинально.

По модели распространения

Free / Бесплатное — Софт, который распространяется абсолютно бесплатно, не надо платить ни копейки. Можно устанавливать на любые поддерживаемые устройства, делиться им с друзьями и т.д.

Adware / Почти бесплатное — В данном случае с вас также не попросят ни копейки, но в данное ПО может быть встроена реклама или за определенный дополнительный функционал могут попросить внести деньги, хотя и без них софт будет рабочим.

Shareware / Условно бесплатное — Такое ПО можно использовать только в не коммерческих целях. Обычно ограничен по функционалу, и чтобы отрыть новые возможности необходимо приобрести лицензию.

Trial / Триальное — Такой софт обычно функционирует определенный промежуток времени, например, пятнадцать дней, после чего без покупки просто не запустится.

Demo / Демо — Такой софт обычно раздают на время и часто в урезанном виде, чтобы можно было ознакомится с его возможностями. По окончанию времени необходимо будет приобрести.

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

Интересно! ПО можно разделить и на другие классы, например, по требованию защиты и надежности, по классификации пользователей и т.д. Но это скорее уже подклассы.

В заключение

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

Источник

Методологические подходы и средства поддержки процессов разработки программного обеспечения организационно-экономических систем. Коротко о главном
Евгений Леонидович Шуремов

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

Оглавление

  • Введение
  • Роль программного обеспечения в развитии организационно-экономических систем

Приведённый ознакомительный фрагмент книги Методологические подходы и средства поддержки процессов разработки программного обеспечения организационно-экономических систем. Коротко о главном предоставлен нашим книжным партнёром — компанией ЛитРес.

Читайте также:  Менее емкий степень сравнения

Роль программного обеспечения в развитии организационно-экономических систем

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

Развитие любой организации так или иначе требует развития ее управленческой инфраструктуры. Отсюда следует, что ИС постоянно нуждаются в развитии. В условиях информационной экономики это направление развития считается приоритетным по отношению к другим направлениям.

Далее (если отдельно не оговорено противное) рассматриваются ИС организационно-экономического управления.

Бурное развитие информационных технологий постоянно расширяет вариативность выбора стратегий развития ИС.

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

70—80 гг. ИС на базе мини-ЭВМ. Создавались на средних и даже относительно небольших предприятиях для решения широкого круга задач. Выбор шире: можно создать ИС на основе мэйнфреймов или на базе мини-ЭВМ. При этом выбор технической платформы предопределяет возможность использования программного обеспечения (либо для одной, либо для другой аппаратной платформы).

80 гг. ИС с распределенной обработкой данных на персональных компьютерах. Массовое распространение офисных программ. Начало формирования электронного документооборота. Выбор еще шире: можно по-старинке создать ИС на базе мэнфреймов или мини-ЭВМ; полностью распределенную систему обработки данных на ПК; часть задач решать на мини-ЭВМ, а часть на ПК; для ПК можно выбрать программы разных поставщиков и т. д.

80—90 гг. Создание и массовое распространение ERP-систем. Массовый переход к клиент-серверным технологиям. Выбор еще шире: наряду с возможностями предыдущих этапов, можно выбрать разные варианты организации локальной сети, включая разделение доступа к периферийным устройствам; разные технологии функционирования прикладных программ в сети; разное обеспечивающее и прикладное ПО и т. д.

Середина 90 — конец нулевых гг. Широкое распространение электронного документооборота. Развитие электронной коммерции и коммуникаций с сетями внешних партнёров и клиентов через Интернет (B2B, B2C, SCM, CSRP и др.). Дополнительно к предыдущему: разные способы взаимодействия локальных сетей разных организаций через Интернет; выбор стандартов и форматов обмена данными; дальнейшее расширение возможностей прикладных программ; выбор способов взаимодействия сотрудников через глобальные сети и т. д.

Настоящее время. Широкое распространение мобильных устройств. Рост популярности «облачных» вычислений. Дополнительно к предыдущему: выбор вариантов взаимодействия с мобильными пользователями (сотрудниками, партнерами, клиентами); иметь собственные вычислительные мощности или арендовать на стороне; использовать «монолитную» систему обработки данных или набор web-сервисов и т. д.

Различные стратегии развития ИС могут требовать разных затрат, иметь следствием разную совокупную стоимость владения системой, обеспечивать разный уровень отдачи на инвестиции. Однако какой бы вариант развития ИС ни был выбран, ключевым элементом развития является увеличение функциональности ИС, возможность автоматизации решения более широкого круга задач, чем раньше. А поскольку функциональность ИС обеспечивается, прежде всего, ее программным обеспечением, то при любых условиях развитие программного обеспечения является важнейшим элементом развития любой ИС.

Программное обеспечение как объект развития

Программное обеспечение (ПО) — все или часть программ, процедур, правил и соответствующей документации системы обработки информации (ISO/IEC 2382—1: 1993. Information technology — Vocabulary — Part 1: Fundamental terms).

Другие определения из международных и отечественных стандартов:

Компьютерные программы, процедуры и, возможно, соответствующая документация и данные, относящиеся к функционированию компьютерной системы (FCD ISO/IEC 24765. Systems and Software Engineering Vocabulary).

Совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ (ГОСТ 19781—90).

Программное обеспечение является объектом изучения информатики, программирования и программной инженерии.

Термин software впервые применил математик из Принстонского университета Джон Тьюки (англ. John W. Tukey) в статье в American Mathematical Monthly в 1958 году.

Первая теория, касающаяся программного обеспечения, была предложена английским математиком Аланом Тьюрингом в 1935 году в эссе «Computable numbers with an application to the Entscheidungsproblem (Decision problem)». Он создал так называемую машину Тьюринга, математическую модель абстрактной машины, способной выполнять последовательности рудиментарных операций, которые переводят машину из одного фиксированного состояния в другое. Главная идея заключалась в математическом доказательстве факта, что любое наперёд заданное состояние системы может быть всегда достигнуто последовательным выполнением конечного набора элементарных команд (программы) из фиксированного набора команд.

Архитектура программного обеспечения — структура программы или вычислительной системы, которая включает программные компоненты, видимые снаружи свойства этих компонентов, а также отношения между ними.

Качество программного обеспечения — весь объем признаков и характеристик программ, который относится к их способности удовлетворять установленным или предполагаемым потребностям.

Тестирование программного обеспечения — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта.

С точки зрения ISO 9126, качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:

Лицензия на программное обеспечение — правовой инструмент, определяющий использование и распространение программного обеспечения, защищённого авторским правом.

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

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

По определению, предложенному Фондом за свободную информационную инфраструктуру, программный патент — это «патент на что-либо, выполняемое компьютером посредством программного обеспечения».

Защитники программных патентов считают, что они позволяют:

— защитить сложное ПО от подражателей, которым не нужно тратить время и деньги на проектные работы;

— защитить изобретателей-одиночек от крупных компаний;

— труднодоступность запатентованных технологий стимулирует создание более совершенных технологий.

Документация — печатные руководства пользователя, диалоговая (оперативная) документация и справочный текст, описывающие как пользоваться программой.

Документация состоит из отдельных документов.

Документ как элемент документации — это целевая информация, предназначенная для конкретной аудитории, размещённая на конкретном носителе в заданном формате.

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

Разработка программного обеспечения (software development) — это процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения.

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

Накопленный к настоящему времени опыт создания программных систем (ПС) показывает, что это сложная и трудоемкая работа, требующая высокой квалификации участвующих в ней специалистов. Однако до настоящего времени создание таких систем нередко выполняется на интуитивном уровне с применением неформализованных методов, основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих экспериментальных проверках качества функционирования ПО. По данным Института программной инженерии (Software Engineering Institute, SEI) в последние годы до 80% всего эксплуатируемого ПО разрабатывалось вообще без использования какой-либо дисциплины проектирования, методом «code and fix» (кодирования и исправления ошибок).

Читайте также:  9т56кг 956кг сравнить величины

Проблемы создания ПО следуют из его свойств. Еще в 1975 г. Фредерик Брукс, проанализировав свой уникальный по тем временам опыт руководства крупнейшим проектом разработки операционной системы OS/360, определил перечень неотъемлемых свойств ПО: сложность, согласованность, изменяемость и незримость.

Современные крупномасштабные проекты создания и развития ПС характеризуются следующими особенностями.

Характеристики объекта внедрения:

— структурная сложность (многоуровневая иерархическая структура организации) и территориальная распределенность;

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

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

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

Технические характеристики проектов создания ПО:

— различная степень унифицированности проектных решений в рамках одного проекта;

— высокая техническая сложность, определяемая наличием совокупности тесно взаимодействующих компонентов (подсистем), имеющих свои локальные задачи и цели функционирования (транзакционных приложений, предъявляющих повышенные требования к надежности, безопасности и производительности, и приложений аналитической обработки (систем поддержки принятия решений), использующих нерегламентированные запросы к данным большого объема);

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

— большое количество и высокая стоимость унаследованных приложений (существующего прикладного ПО), функционирующих в различной среде (персональные компьютеры, миникомпьютеры, мэйнфреймы), необходимость интеграции унаследованных и вновь разрабатываемых приложений;

— большое количество локальных объектов внедрения, территориально распределенная и неоднородная среда функционирования (СУБД, операционные системы, аппаратные платформы);

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

Организационные характеристики проектов создания ПО:

— различные формы организации и управления проектом: централизованно управляемая разработка тиражируемого ПО, экспериментальные пилотные проекты, инициативные разработки, проекты с участием как собственных разработчиков, так и сторонних компаний на контрактной основе;

— большое количество участников проекта как со стороны заказчиков (с разнородными требованиями), так и со стороны разработчиков (более 100 человек), разобщенность и разнородность отдельных групп разработчиков по уровню квалификации, сложившимся традициям и опыту использования тех или иных инструментальных средств;

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

— высокие требования со стороны заказчика к уровню технологической зрелости организаций-разработчиков (наличие сертификации в соответствии с международными и отечественными стандартами).

Уже в конце 60-х годов прошлого века в США было отмечено явление под названием «software crisis» (кризис ПО). Это выражалось в том, что большие проекты стали выполняться с отставанием от графика или с превышением сметы расходов, разработанный продукт не обладал требуемыми функциональными возможностями, производительность его была низка, качество получаемого программного обеспечения не устраивало потребителей.

Аналитические исследования и обзоры, выполняемые в течение ряда последних лет ведущими зарубежными аналитиками, показывали не слишком обнадеживающие результаты. Так, например, результаты исследований, выполненных в 1995 году компанией Standish Group, которая проанализировала работу 364 американских корпораций и итоги выполнения более 23 тысяч проектов, связанных с разработкой ПО, выглядели следующим образом:

— только 16,2% завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности;

— 52,7% проектов завершились с опозданием, расходы превысили запланированный бюджет, требуемые функции не были реализованы в полном объеме;

— 31,1% проектов были аннулированы до завершения;

— для двух последних категорий проектов бюджет среднего проекта оказался превышенным на 89%, а срок выполнения — на 122%.

В соответствии с исследованиями 1998 года процентное соотношение трех перечисленных категорий проектов лишь немного изменилось в лучшую сторону (26%, 46% и 28% соответственно).

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

В числе причин возможных неудач, по мнению разработчиков, фигурируют:

— нечеткая и неполная формулировка требований к ПО;

— недостаточное вовлечение пользователей в работу над проектом;

— отсутствие необходимых ресурсов;

— неудовлетворительное управление проектом;

— частое изменение требований и спецификаций;

— новизна и несовершенство используемой технологии;

— недостаточная поддержка со стороны высшего руководства;

— недостаточно высокая квалификация разработчиков, отсутствие необходимого опыта.

Объективная потребность контролировать процесс разработки сложных систем ПО, прогнозировать и гарантировать стоимость разработки, сроки и качество результатов привела в конце 60-х годов прошлого века к необходимости перехода от кустарных к индустриальным способам создания ПО и появлению совокупности инженерных методов и средств создания ПО, объединенных общим названием «программная инженерия» (software engineering). В основе программной инженерии лежит следующая фундаментальная идея: проектирование ПО является формальным процессом, который можно изучать и совершенствовать. Освоение и правильное применение методов и средств создания ПО позволяет повысить его качество, обеспечить управляемость процесса проектирования ПО и увеличить срок его жизни.

В то же время, попытки чрезмерной формализации процесса, а также прямого заимствования идей и методов из других областей инженерной деятельности (строительства, производства) привели к ряду серьезных проблем. После двух десятилетий напрасных ожиданий повышения продуктивности процессов создания ПО, возлагаемых на новые методы и технологии, специалисты в индустрии ПО пришли к пониманию, что фундаментальная проблема в этой области — неспособность эффективного управления проектами создания ПО.

Выяснилось, что невозможно достичь удовлетворительных результатов от применения даже самых совершенных технологий и инструментальных средств, если они применяются бессистемно. Часто разработчики не обладают необходимой квалификацией для работы с ними, а сам проект выполняется и управляется хаотически, в режиме «тушения пожара». Бессистемное применение технологий создания ПО (ТС ПО), в свою очередь, порождает разочарование в используемых методах и средствах. Анализ мнений разработчиков показывает, что среди факторов, влияющих на эффективность создания ПО, используемым методам и средствам придается гораздо меньшее значение, чем квалификации и опыту разработчиков. Если в таких условиях отдельные проекты завершаются успешно, то этот успех достигается за счет героических усилий фанатично настроенного коллектива разработчиков. Постоянное повышение качества создаваемого ПО и снижение его стоимости может быть обеспечено только при условии достижения организацией необходимой технологической зрелости, создании эффективной инфраструктуры как в сфере разработки ПО, так и в управлении проектами. В соответствии с моделью SEI СММ (Capability Maturity Model), в хорошо подготовленной (зрелой) организации персонал обладает технологией и инструментарием оценки качества процессов создания ПО на протяжении всего жизненного цикла ПО и на уровне всей организации.

Источник