Сегодня любая отрасль неизбежно связана с индустрией программного обеспечения, поэтому пути ее развития на ближайшее будущее в той или иной степени касаются всех.
Именно программное обеспечение заставляет сегодня мир вращаться все быстрее — ПО применяется повсюду, от автомобилей, самолетов и промышленных систем автоматизации до смартфонов и любой другой потребительской техники. Современное общество непосредственно зависит от надежности программных систем, развитие которых, в свою очередь, зависит от компаний-разработчиков. Какие прогнозы сегодня можно сделать по поводу будущего программного обеспечения и какое влияние тенденции в развитии ПО оказывают на компании из различных отраслей? Ответы на эти вопросы были получены в результате исследования, в котором участвовали сотрудники таких компаний, как ABB, Bosch, GE, Google, Lufthansa, Philips и Siemens [1].
Индустрия ПО
У программного бизнеса есть две грани, которые выделяют его на фоне других отраслей экономики [2] : новация и высокий уровень сложности. Данная индустрия привлекает больше инвестиций, поэтому объем ее рынка растет быстрее, непрерывно стимулируя инновации. Для отрасли ПО важен творческий подход, тогда как производство и логистика имеют второстепенное значение и требуют ограниченных затрат, это упрощает выход новых производителей на рынок и организацию глобальных продаж. ПО отличается гибкостью и простотой модификации, этим обусловливается высокая частота выпуска новых продуктов, которые не всегда имеют реальную ценность. Однако в связи со сложностью технологий качество продуктов, полагающихся на ПО, резко падает при недостатке соответствующих компетенций.
Секрет автозаполнения даты в Excel #Shorts
В наши дни ПО меняет практически все отрасли, становясь для них мощным двигателем развития. Например, если раньше проводилось различие между компонентами, системами и сервисами, то сегодня эти границы размываются и определяются экономической моделью, которая диктует компоновку и распределение элементов, а также выбор между программной и аппаратной реализациями функций.
В 1970-х телевизор не имел ПО, а сегодня конкурентные преимущества телевизора обусловлены именно его программными особенностями. Если говорить об аэрокосмической отрасли, то в 1960-х только 8% функций истребителей F-4 контролировались программно, а к 2000-му ПО обеспечивало уже 80% возможностей F-22.
Все больше военных летательных аппаратов — беспилотные, а значит, ПО играет здесь первостепенную роль. Той же закономерности следует и автомобильная индустрия — современные машины имеют свыше 100 встроенных компьютеров, а программного обеспечения на них больше, чем на самолетах. Новые автомобили продаются в основном благодаря программно реализованным усовершенствованиям, и неудивительно, что Североамериканский международный автосалон недавно проходил под девизом «Автомобиль — это микропроцессор с колесами и двигателем» (рис. 1).
![]() |
Рис. 1. Инновации в мире ПО способствуют прогрессу в автомобильной отрасли, обеспечивая развитие различных сегментов, от оптимизации энергозатрат до систем автопилота |
Отличный бесплатный заменитель фотошопа
Опросы показывают, что ближайшее будущее программного обеспечения определяется развитием по пяти главным направлениям:
- взаимодействие — основа потребительских интернет-сервисов, социальных сетей, конфигураторов продуктов и услуг, цифровых денег, систем автоматизации сотрудничества и краудсорсинга;
- понимание — механизмы понимания важны для семантического поиска, обработки Больших Данных, систем «умных» данных, аналитики и экономики данных, средств оперативной проверки корректности информации и систем контроля качества данных;
- связь — важна для повсеместных мобильных вычислений, мобильных сервисов, киберфизических систем, Индустрии 4.0, межмашинных коммуникаций, сенсорных сетей и высокоинтегрированных сенсорных блоков;
- облака — это основа облачных приложений и сервисов, база для новых моделей лицензирования ПО и т. п.;
- конвергенция — слияние дисциплин, определяющих характеристики мобильных предприятий, биоинформатики, Интернета вещей, повсеместных сенсорных и автономных систем.
Перечисленные направления требуют новых программных решений на основе новых вычислительных парадигм и инфраструктур, позволяющих осуществлять бизнес-процессы в условиях все возрастающей сложности и увеличения масштабов систем. Понадобятся ИТ-архитектуры, обеспечивающие постоянство связи, надежные инфраструктуры для критичных к безопасности киберфизических систем, а также механизмы анализа предпочтений и поведения, позволяющие улучшать обслуживание заказчиков. Подобные основанные на ПО решения могут создавать нетрадиционные точки выхода на рынок и порождать новые механизмы, позволяющие предоставлять заказчикам сервисы, зависящие от времени и местонахождения.
Каковы основные прогнозы для программного бизнеса на ближайшее время? В компаниях продолжат инвестировать в рост за счет создания новых продуктов и решений, так как именно этим определяются рыночные позиции разработчиков.
В то же время, осознавая неустойчивость рынка, в компаниях по всему миру урезают команды разработки, переходя на бережливые (lean, экономичные) методы с целью повышения КПД. На рис. 2 отражены актуальные отраслевые тенденции. С учетом высокого уровня сложности, обусловленного непрерывным совершенствованием, необходимы более развитые инструменты, обеспечивающие экономичность процессов и надежность продуктов. Еще совсем недавно программные компании ориентировались на снижение затрат и повышение результативности, а теперь, не испытывая недостатка в заказах и с оптимизмом глядя в будущее, они пытаются бороться со сложностью, порожденной ими самими.
![]() |
Рис. 2. Отраслевые тенденции. Инновации, управление сложностью и связь — самые важные темы для бизнес-менеджеров и технических руководителей. Суммы превышают 100%, поскольку в анкете можно было давать по три ответа на каждый вопрос |
Успех в программном бизнесе — не данность. Продукты и решения должны отвечать все более высоким требованиям к качеству, оставаясь при этом недорогими и легко адаптируемыми к возможностям современных платформ. На рынки выходят все новые игроки с новыми решениями, не отягощенные наследием устаревших продуктов и традиционных бизнес-моделей. Технологический ландшафт становится все более сложным, и можно назвать четыре основных препятствия, мешающих успеху: разобщенная организация с нечетким разделением ответственности и разрозненностью работы, страдающая от постоянных изменений ориентиров и графика; отсутствие или нечеткость стратегии с неопределенными взаимозависимостями и путаными требованиями; отсутствие стандартных для всей организации бизнес-процессов, медлительные, громоздкие процессы принятия решений, основанные на множестве индивидуальных соглашений; недостаточно проработанные требования, которые могут строиться лишь на услышанном от заказчиков и не иметь четкого финансово-экономического обоснования.
Инновации, глобализация и сложность — двигатели программного бизнеса во всем мире, но они же создают и немало рисков. Различным рискам подвержены все процессы, от разработки до выпуска на рынок.
ПО становится более сложным, все шире полагается на сетевые соединения, что подразумевает организацию взаимодействия многих компонентов от различных поставщиков и оборудования от разных производителей. К тому же команды разработчиков обычно многофункциональны, нередко участники, не прошедшие необходимого обучения, отвечают сразу за многие операции, включая не только разработку, но и стратегическое планирование. В этом отличие от других отраслей, в которых, например, производство и логистика четко отделены от разработки. Даже внутри команд разработки люди, проектирующие продукты или компоненты, нередко занимаются и тестированием, поэтому неудивительно, что качество часто оказывается ниже ожидаемого, а спецификации реализуются с недоработками.
Какие методы управления сложностью применяют компании-разработчики? Как они ускоряют вывод новых продуктов на рынок и улучшают функции связи? Какие подходы хорошо зарекомендовали себя на практике?
Сосредоточьтесь на реальных источниках дохода. Работая над повышением КПД и снижением стоимости продуктов, компании иногда доходят до крайностей, однако это не всегда приносит ожидаемый доход. Если заказчики требуют множества изменений, прибыли могут оказаться гораздо ниже планируемых.
Многие руководители стремятся концентрироваться на том, что знают лучше всего, а в программной индустрии это обычно техническая компетенция, а не основы бизнеса. На каждом этапе необходимо устанавливать цели и контролировать продвижение к ним, сверяясь с реальными показателями. За изменениями экономических условий нужно тщательно следить, иначе они станут управлять вами. Для топ-менеджеров можно рекомендовать подход, основанный на сбалансированных показателях (balanced scorecard), тогда как на операционном уровне можно ориентироваться на выгоду — например, придерживаться метода освоенного объема (earned-value management).
Продавайте ценность, а не функции. Работая с клиентами над продуктовой стратегией и техническими требованиями, консультанты прежде всего задают вопросы о целевом рынке, пользовательской аудитории и сценариях применения. При этом ответы в большинстве случаев сводятся к тому, что указано в спецификациях.
Формально это, может быть, и верно, но приводит к неконтролируемому росту уровня сложности и затрат. Сложность хорошо продается, но создает большой объем дополнительных расходов на обслуживание, развитие, управление изменениями и исправление непредвиденных программных ошибок.
Консультанты нередко сталкиваются с заказчиками, попросту не знающими, как эффективно управлять сложностью — они мирятся с чрезмерными затратами, вместо того чтобы искать рычаги, которыми можно было бы напрямую пользоваться. Примерно половина всех требований не приносит прибыли, а лишь увеличивает затраты [2].
Индивидуальные варианты и специальные функции для конкретных заказчиков еще больше увеличивают сложность. Эффективно контролировать сложность можно с помощью метода RACE (Reduce Accidents, Control Essence, «снижение числа инцидентов, контроль над основами»).
Снижение количества инцидентов означает сокращение накладных расходов, например, на «позолоту» и переработку, которые обусловлены запоздалым устранением дефектов или слишком большим количеством изменений в требованиях. Контроль над основами означает фокусировку на том, за что заказчик действительно платит.
Каждое требование нуждается в финансово-экономическом обосновании с сохранением возможности управления изменениями и приоритетами. Перед выполнением очередного требования попросите тестировщика подготовить тестовое задание, а маркетолога — оценить, сможет ли он продать указанную функцию. Определитесь с «достаточно хорошими» реализациями и позаботьтесь о том, чтобы любые последующие идеи получали достойное рассмотрение. Ориентируясь на ценность, заботьтесь о том, чтобы скорые и экономичные методы не становились самоцелью.
Определите круг ключевых участников. Сформируйте костяк команды из л иц, причастных к проекту ( менеджеров по продукту, его маркетингу, проектированию и эксплуатации), сделав их полностью ответственными за успех проекта. Будучи ключевыми участниками разработки продукта или решения, они также смогут передавать и точки зрения внешних заинтересованных лиц.
Фактор успеха — предоставить этому костяку полный мандат на владение проектом. Применяйте адекватные методы управления рисками, чтобы выполнять обещания и чтобы на ваши наработки можно было положиться. Проекту могут понадобиться дополнительные ресурсы, поставщики могут задерживать поставки, технологии могут не оправдывать ожиданий.
Не принимайте решение о выборе места разработки исходя только из стоимости труда, отдайте предпочтение систематическому совершенствованию бизнес-процессов, распределенных между различными отделениями. Преимущества будут ощутимыми при оптимизации взаимодействия между офисами, беспроблемном управлении вариантами и прозрачности потока операций. Откажитесь от подхода, основанного только на подсчете трудозатрат, в пользу комплексной стратегии, учитывающей время работы сотрудников в офисе, состояние экосистемы заказчика и потери при взаимодействии.
Станьте хозяином жизненного цикла продукта. Для программных продуктов характерен такой же круг обязательств, как и для любых других, но поставщики ПО нередко упускают из виду необходимость поддержки процессов их жизненного цикла. Между тем все проекты и продуктовые релизы должны следовать стандартизованному жизненному циклу.
В большинстве компаний такой цикл формализован, но практически не используется как базовый инструмент принятия и реализации решений. Изменения в требованиях нередко согласуются на собраниях по продажам, но никто не проверяет их реализуемость, в результате технические решения принимаются без экономического обоснования и не учитывают влияния на дочерние процессы. Автоматизированное управление жизненным циклом продуктов (PLM) и приложений (ALM) — ключевые механизмы эффективной интеграции инженерных процессов, инструментов и людей. Но «процесс» не должен быть обузой и выражаться только в документировании — его назначение состоит в обеспечении эффективности повторяющихся операций.
Непрерывное совершенствование. Во многих компаниях стремятся улучшать результативность, но удовлетворены результатами не более трети из них. Распространенная причина неудач состоит в несовершенстве управления изменениями. Затраты и сроки выполнения работ можно уменьшить, если прибегнуть к непрерывной оптимизации процессов разработки.
Бережливая разработка и скорые методы полезны для оптимизации взаимодействия и сокращения объема переработки и накладных расходов. Метод освоенного объема, систематизация потока ценности (value stream mapping) и Scrum — проверенные подходы, которые легко адаптировать для конкретной организации.
Оптимизируйте потоки операций и соответствующие инструменты шаг за шагом в рамках комплексной стратегии, руководствуясь инкрементальными и долгосрочными целями. Постоянно ставьте конкретные новые цели усовершенствований. Обучайте сотрудников бережливой (lean) разработке.
Пусть каждая команда подготовит план действий по избавлению от лишних затрат, переработок и конфликтов взаимодействия — все это с опорой на общекорпоративные ориентиры рентабельности. Приучайте подчиненных расширять технические и, что даже важнее, личностные навыки. Оценивайте производительность, например, по продажам в расчете на разработчика, по срокам поставки, эффективности распознавания дефектов, затратообразующим факторам, компетенциям и новациям. Пользуйтесь профессиональными средствами управления изменениями.
Ситуация в программном бизнесе и впредь будет изменчивой, уровень сложности продолжит расти, а технологии будут стремительно развиваться. Неизбежная нехватка компетенции приведет к дальнейшему усилению борьбы за квалифицированных специалистов.
Компании продолжат инвестировать в рост через инновации и будут переводить команды разработки на экономичные и инновационные методы. В следующие 30 лет развитие виртуальных сред и дополненной реальности приведет к тому, что ПО будет непосредственно формировать окружающую действительность.
Многие люди уже считают игры и социальные сети с множеством так называемых друзей более реальными и привлекательными, чем классическую действительность. Если можно будет без поездок встречаться с людьми, находящимися где угодно, загрязнения и количество ДТП значительно уменьшатся, а если устройства размером с клетки крови, находящиеся в организме, будут бороться с заболеваниями и улучшать интеллектуальные способности, жизнь полностью изменится.
Программное обеспечение расширит возможности мозга так же, как сегодня оно расширяет возможности небиологических систем. Стержнем этих изменений будет программное обеспечение, поэтому уже сегодня стоит расширять компетенцию, которая понадобится, чтобы провести эти изменения верным образом — то есть с опорой на ценности и личностные навыки, а не только на технологии. Фа ктически происходит трансформация человечества, и хочется надеяться, что к лучшему. Но один вопрос остается без ответа: надо ли ПО встраивать в людей или же люди будут внедряться в программную среду?
Литература
- Industry Trends 2015. Vector Consulting Services, 2015. URL: https://www.vector.com/trends (дата обращения: 18.12.2015).
- C. Ebert, S. Brinkkemper. Software Product Management — an Industry Evaluation // J. Systems and Software. — 2014. — Vol. 95. — P. 10–18.
Christof Ebert, Bad Parts: Looking into the Future, IEEE Software, November/December 2015, IEEE Computer Society. All rights reserved. Reprinted with permission.
Источник: www.osp.ru
3.1.1. Понятие и процессы жизненного цикла программного обеспечения
Жизненный цикл программного обеспечения (ПО) определяется как период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации.
Основным нормативным документом, регламентирующим состав процессов ЖЦ ПО, является международный стандарт ISO/IEC 12207: 1995 «Information Technology -Software Life Cycle Processes». Он определяет структуру ЖЦ, содержащую процессы действия и задачи, которые должны быть выполнены во время создания ПО. В этом стандарте ПО (или программный продукт) определяется как набор компьютерных программ, процедур и, возможно, связанной с ними документации и данных. Процесс определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.
Каждый процесс разделен на набор действий, каждое действие – на набор задач. Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения (естественно, при сохранении связей по входным данным)
В соответствии со стандартом ISO/1EC 12207 все процессы ЖЦ ПО разделены на три группы (рис. 3.1):
1) пять основных процессов (приобретение, поставка, разработка, эксплуатация, сопровождение);
2) восемь вспомогательных процессов, обеспечивающих выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем);
3) четыре организационных процесса (управление, создание инфраструктуры, усовершенствование, обучение).
Процесс приобретения (acquisition process) состоит из действий и задач заказчика, приобретающего ПО. Данный процесс охватывает следующие действия:
1) инициирование приобретения;
2) подготовку заявочных предложений;
3) подготовку и корректировку договора;
4) надзор за деятельностью поставщика;
5) приемку и завершение работ.
Инициирование приобретения включает следующие задачи:
ü определение заказчиком своих потребностей в приобретении, разработке или усовершенствовании системы, программных продуктов или услуг;
ü анализ требований к системе;
ü принятие решения относительно приобретения, разработки или усовершенствования существующего ПО;
ü проверку наличия необходимой документации, гарантий, сертификатов, лицензий и поддержки в случае приобретения программного продукта;
ü подготовку и утверждение плана приобретения, включающего требования к системе, тип договора, ответственность сторон и т.д.
Заявочные предложения должны содержать:
· требования к системе;
· перечень программных продуктов;
· условия и соглашения;
· технические ограничения (например, среда функционирования системы).
Заявочные предложения направляются выбранному поставщику (или нескольким поставщикам в случае проведения тендера). Поставщик – это организация, которая заключает договор с заказчиком на поставку системы, ПО или программной услуги на условиях, оговоренных в договоре.
Подготовка и корректировка договора включают следующие задачи:
· определение заказчиком процедуры выбора поставщика, включающей критерии оценки предложений возможных поставщиков;
· выбор конкретного поставщика на основе анализа предложений;
· подготовку и заключение договора с поставщиком;
· внесение изменений (при необходимости) в договор в процессе его выполнения.
Надзор за деятельностью поставщика осуществляется в соответствии с действиями, предусмотренными в процессах совместной оценки и аудита.
В процессе приемки подготавливаются и выполняются необходимые тесты. Завершение работ по договору осуществляется в случае удовлетворения всех условий приемки.
Процесс поставки (supply process) охватывает действия и задачи, выполняемые поставщиком, который снабжает заказчика программным продуктом или услугой. Данный процесс включает следующие действия:
· подготовку ответа на заявочные предложения;
· выполнение и контроль;
· проверку и оценку;
· поставку и завершение работ.
Инициирование поставки заключается в рассмотрении поставщиком заявочных предложений и в принятии решения согласиться с выставленными требованиями и условиями или предложить свои.
Планирование включает следующие задачи:
· принятие решения поставщиком относительно выполнения работ своими силами или с привлечением субподрядчика;
· разработку поставщиком плана управления проектом, содержащего организационную структуру проекта, разграничение ответственности, технические требования к среде разработки и ресурсам, управление субподрядчиками и др.
Процесс разработки (development process) предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию ПО и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, подготовку материалов, необходимых для проверки работоспособности и соответствующего качества программных продуктов, материалов, необходимых для организации обучения персонала, и т.д. Процесс разработки включает следующие действия:
1) подготовительную работу;
2) анализ требований к системе;
3) проектирование архитектуры системы;
4) анализ требований к ПО;
5) проектирование архитектуры ПО;
6) детальное проектирование ПО;
7) кодирование и тестирование ПО;
8) интеграцию ПО;
1) квалификационное тестирование ПО;
2) интеграцию системы;
3) квалификационное тестирование системы;
Подготовительная работа начинается с выбора модели ЖЦ ПО, соответствующей масштабу, значимости и сложности проекта (см. разд. 1.2). Действия и задачи процесса разработки должны соответствовать выбранной модели. Разработчик должен выбрать, адаптировать к условиям проекта и использовать согласованные с заказчиком стандарты, методы и средства разработки, а также составить план выполнения работ.
Анализ требований к системе подразумевает определение ее функциональных возможностей, пользовательских требований, требований к надежности и безопасности, требований к внешним интерфейсам и т.д. Требования к системе оцениваются исходя из критериев реализуемости и возможности проверки при тестировании.
Проектирование архитектуры системы на высоком уровне заключается в определении компонентов ее оборудования, ПО и операций, выполняемых эксплуатирующим систему персоналом. Архитектура системы должна соответствовать требованиям, предъявляемым к системе, а также принятым проектным стандартам и методам.
Анализ требований к ПО предполагает определение следующих характеристик для каждого компонента ПО:
· функциональных возможностей, включая характеристики производительности и среды функционирования компонента;
· спецификаций надежности и безопасности;
· требований к используемым данным;
· требований к установке и приемке;
· требований к пользовательской документации;
· требований к эксплуатации и сопровождению.
Требования к ПО оцениваются исходя из критериев соответствия требованиям к системе, реализуемости и возможности проверки при тестировании.
Проектирование архитектуры ПО включает следующие задачи (для каждого компонента ПО):
· трансформацию требований к ПО в архитектуру, определяющую на высоком уровне структуру ПО и состав его компонентов;
· разработку и документирование программных интерфейсов ПО и баз данных;
· разработку предварительной версии пользовательской документации;
· разработку и документирование предварительных требований к тестам и плана интеграции ПО.
Архитектура компонентов ПО должна соответствовать требованиям, предъявляемым к ним, а также принятым проектным стандартам и методам.
Детальное проектирование ПО включает следующие задачи:
· описание компонентов ПО и интерфейсов между ними на более низком уровне, достаточном для их последующего самостоятельного кодирования и тестирования;
· разработку и документирование детального проекта базы данных;
· обновление (при необходимости) пользовательской документации;
· разработку и документирование требований к тестам и плана тестирования компонентов ПО;
· обновление плана интеграции ПО.
Кодирование и тестирование ПО охватывают следующие задачи:
· разработку (кодирование) и документирование каждого компонента ПО и базы данных, а также совокупности тестовых процедур и данных для их тестирования;
· тестирование каждого компонента ПО и базы данных на соответствие предъявляемым к ним требованиям.
Результаты тестирования компонентов должны быть документированы;
· обновление (при необходимости) пользовательской документации;
· обновление плана интеграции ПО.
Интеграция ПО предусматривает сборку разработанных компонентов ПО в соответствии с планом интеграции и тестирование агрегированных компонентов. Для каждого из агрегированных компонентов разрабатываются наборы тестов и тестовые процедуры, предназначенные для проверки каждого из квалификационных требований при последующем квалификационном тестировании. Квалификационное требование – это набор критериев или условий, которые необходимо выполнить, чтобы квалифицировать программный продукт как соответствующий своим спецификациям и готовый к использованию в условиях эксплуатации.
Квалификационное тестирование ПО проводится разработчиком в присутствии заказчика (по возможности) для демонстрации того, что ПО удовлетворяет своим спецификациям и готово к использованию в условиях эксплуатации. Квалификационное тестирование выполняется для каждого компонента ПО по всем разделам требований при широком варьировании тестов. При этом также проверяются полнота технической и пользовательской документации и ее адекватность самим компонентам ПО.
Интеграция системы заключается в сборке всех ее компонентов, включая ПО и оборудование. После интеграции система, в свою очередь, подвергается квалификационному тестированию на соответствие совокупности требований к ней. При этом также производятся оформление и проверка полного комплекта документации на систему.
Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором. В процессе установки проверяется работоспособность ПО и баз данных. Если устанавливаемое ПО заменяет существующую систему, разработчик должен обеспечить их параллельное функционирование в соответствии с договором.
Приемка ПО предусматривает оценку результатов квалификационного тестирования ПО и системы и документирование результатов оценки, которые проводятся заказчиком с помощью разработчика. Разработчик выполняет окончательную передачу ПО заказчику в соответствии с договором, обеспечивая при этом необходимое обучение и поддержку.
Процесс эксплуатации (operation process) охватывает действия и задачи оператора – организации, эксплуатирующей систему. Данный процесс включает следующие действия:
1) подготовительную работу;
2) эксплуатационное тестирование;
3) эксплуатацию системы;
4) поддержку пользователей.
Подготовительная работа включает проведение оператором следующих задач:
· планирование действий и работ, выполняемых в процессе эксплуатации, и установку эксплуатационных стандартов;
· определение процедур локализации и разрешения проблем, возникающих в процессе эксплуатации.
Эксплуатационное тестирование осуществляется для каждой очередной редакции программного продукта, после чего она передается в эксплуатацию.
Эксплуатация системы выполняется в предназначенной для этого среде в соответствии с пользовательской документацией.
Поддержка пользователей заключается в оказании помощи и консультаций при обнаружении ошибок в процессе эксплуатации ПО.
Процесс сопровождения (maintenance process) предусматривает действия и задачи, выполняемые сопровождающей организацией (службой сопровождения). Данный процесс активизируется при изменениях (модификациях) программного продукта и соответствующей документации, вызванных возникшими проблемами или потребностями в модернизации либо адаптации ПО. В соответствии со стандартом IEEE-90 под сопровождением понимается внесение изменений в ПО в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям.
Изменения, вносимые в существующее ПО, не должны нарушать его целостность. Процесс сопровождения включает перенос ПО в другую среду (миграцию) и заканчивается снятием ПО с эксплуатации.
Процесс сопровождения охватывает следующие действия:
1) подготовительную работу;
2) анализ проблем и запросов на модификацию ПО;
3) модификацию ПО;
4) проверку и приемку;
5) перенос ПО в другую среду;
6) снятие ПО с эксплуатации.
Подготовительная работа службы сопровождения включает следующие задачи:
· планирование действий и работ, выполняемых в процессе сопровождения;
· определение процедур локализации и разрешения проблем, возникающих в процессе сопровождения.
Анализ проблем и запросов на модификацию ПО, выполняемый службой сопровождения, включает следующие задачи:
ü анализ сообщения о возникшей проблеме или запроса на модификацию ПО относительно его влияния на организацию, существующую систему и интерфейсы с другими системами. При этом определяются следующие характеристики возможной модификации: тип (корректирующая, улучшающая, профилактическая или адаптирующая к новой среде); масштаб (размеры модификации, стоимость и время ее реализации); критичность (воздействие на производительность, надежность или безопасность);
ü оценку целесообразности проведения модификации и возможных вариантов ее проведения;
ü утверждение выбранного варианта модификации.
Модификация ПО предусматривает определение компонентов ПО, их версий и документации, подлежащих модификации, и внесение необходимых изменений в соответствии с правилами процесса разработки. Подготовленные изменения тестируются и проверяются по критериям, определенным в документации. При подтверждении корректности изменений в программах производится корректировка документации. Проверка и приемка заключаются в проверке целостности модифицированной системы и утверждении внесенных изменений.
При переносе ПО в другую среду используются имеющиеся или разрабатываются новые средства переноса, затем выполняется конвертирование программ и данных в новую среду. С целью облегчить переход предусматривается параллельная эксплуатация ПО в старой и новой среде в течение некоторого периода, когда проводится необходимое обучение пользователей работе в новой среде.
Снятие ПО с эксплуатации осуществляется по решению заказчика при участии эксплуатирующей организации, службы сопровождения и пользователей. При этом программные продукты и соответствующая документация подлежат архивированию в соответствии с договором. Аналогично переносу ПО в другую среду с целью облегчить переход к новой системе предусматривается параллельная эксплуатация старого и нового ПО в течение некоторого периода, когда выполняется необходимое обучение пользователей работе с новой системой.
Источник: libraryno.ru
Обновление программного обеспечения
После разработки программного обеспечения его создатели начинают искать в нем уязвимости и, обнаружив их, выпускают обновления, закрывающие найденные «дыры». При реализации дополнительных возможностей или изменении графического интерфейса пользователям предлагают усовершенствованные версии программы.
Поиском и анализом уязвимостей в программах занимаются не только разработчики с целью улучшения своих продуктов, но и злоумышленники — они выявляют «дыры», которые затем используются для внедрения вредоносных программ в ОС. К тому же программы, установленные на компьютере, могут содержать ошибки (баги) или быть несовместимы друг с другом. Поэтому разработчики ПО выпускают обновления, которые не меняют полностью функционал приложения, но позволяют выявить возникающие проблемы.
Современное загружение обновления ОС и установленного в ней программного обеспечения — залог безопасности и стабильности работы компьютера.
Установка обновлений на компьютер. Существует три основных способа загрузки обновлений ОС и программ.
Поиск и установка очередных версий программ вручную. Чтобы проверить, не вышла ли новая версия браузера, плеера или другой программы, необходимо зайти на сайт компании — разработчика данной программы или активизировать модуль проверки обновлений, предусмотренный в большинстве программ. Обычно он запускается из подменю Помощь или О программе главного меню приложения. Это самый сложный и неудобный способ, требующий много времени, так как на современном компьютере работают десятки программ.
Автоматическая проверка обновлений средствами самого приложения или ОС эффективнее ручного способа. При каждом запуске программа выходит в Интернет (если соединение активно) и проверяет, не появились ли обновления, и в зависимости от настроек программы обновления либо загружаются автоматически, либо это должен сделать пользователь.
Использование специального программного обеспечения, предназначенного для проверки версий программ и их обновлений. Такие приложения могут просто оповещать пользователя о наличии обновлений или устанавливать их. Некоторые умеют создавать резервные копии данных в случае, если очередная версия программы откажется работать или возникнет конфликт между ней и другим программным обеспечением.
Вопросы для самопроверки
- 1. Какую роль играют программы в работе компьютера?
- 2. Дайте определение понятия «программное обеспечение».
- 3. Каким образом можно узнать назначение, основные возможности и способы управления программами?
- 4. Что понимается под терминами software и hardware?
- 5. Как классифицируется программное обеспечение?
- 6. Для чего нужно системное программное обеспечение? Какие основные программы относятся к системному программному обеспечению?
- 7. Зачем нужны операционные системы?
- 8. Для чего необходимы программы-оболочки?
- 9. Для чего служат утилиты?
- 10. Какую роль играют драйверы?
- 11. С какой целью используется инструментальное программное обеспечение?
- 12. Для чего применяются текстовые и графические редакторы? Приведите примеры редакторов.
- 13. Для чего используются электронные таблицы?
- 14. Что называется базой данных? Приведите примеры баз данных.
- 15. Для чего нужны СУБД?
- 16. В чем основная особенность интегрированных систем?
- 17. Опишите известные вам пакеты прикладных программ.
- 18. Назовите основные способы загрузки обновлений программного обеспечения.
ГЛАВА 2
Источник: bstudy.net