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

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

Именно программное обеспечение заставляет сегодня мир вращаться все быстрее — ПО применяется повсюду, от автомобилей, самолетов и промышленных систем автоматизации до смартфонов и любой другой потребительской техники. Современное общество непосредственно зависит от надежности программных систем, развитие которых, в свою очередь, зависит от компаний-разработчиков. Какие прогнозы сегодня можно сделать по поводу будущего программного обеспечения и какое влияние тенденции в развитии ПО оказывают на компании из различных отраслей? Ответы на эти вопросы были получены в результате исследования, в котором участвовали сотрудники таких компаний, как ABB, Bosch, GE, Google, Lufthansa, Philips и Siemens [1].

Индустрия ПО

У программного бизнеса есть две грани, которые выделяют его на фоне других отраслей экономики [2] : новация и высокий уровень сложности. Данная индустрия привлекает больше инвестиций, поэтому объем ее рынка растет быстрее, непрерывно стимулируя инновации. Для отрасли ПО важен творческий подход, тогда как производство и логистика имеют второстепенное значение и требуют ограниченных затрат, это упрощает выход новых производителей на рынок и организацию глобальных продаж. ПО отличается гибкостью и простотой модификации, этим обусловливается высокая частота выпуска новых продуктов, которые не всегда имеют реальную ценность. Однако в связи со сложностью технологий качество продуктов, полагающихся на ПО, резко падает при недостатке соответствующих компетенций.

Секрет автозаполнения даты в Excel #Shorts

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

В 1970-х телевизор не имел ПО, а сегодня конкурентные преимущества телевизора обусловлены именно его программными особенностями. Если говорить об аэрокосмической отрасли, то в 1960-х только 8% функций истребителей F-4 контролировались программно, а к 2000-му ПО обеспечивало уже 80% возможностей F-22.

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

Рис. 1. Инновации в мире ПО способствуют прогрессу в автомобильной отрасли, обеспечивая развитие различных сегментов, от оптимизации энергозатрат до систем автопилота
Рис. 1. Инновации в мире ПО способствуют прогрессу в автомобильной отрасли, обеспечивая развитие различных сегментов, от оптимизации энергозатрат до систем автопилота

Отличный бесплатный заменитель фотошопа

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

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

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

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

В то же время, осознавая неустойчивость рынка, в компаниях по всему миру урезают команды разработки, переходя на бережливые (lean, экономичные) методы с целью повышения КПД. На рис. 2 отражены актуальные отраслевые тенденции. С учетом высокого уровня сложности, обусловленного непрерывным совершенствованием, необходимы более развитые инструменты, обеспечивающие экономичность процессов и надежность продуктов. Еще совсем недавно программные компании ориентировались на снижение затрат и повышение результативности, а теперь, не испытывая недостатка в заказах и с оптимизмом глядя в будущее, они пытаются бороться со сложностью, порожденной ими самими.

Рис. 2. Отраслевые тенденции. Инновации, управление сложностью и связь — самые важные темы для бизнес-менеджеров и технических руководителей. Суммы превышают 100%, поскольку в анкете можно было давать по три ответа на каждый вопрос
Рис. 2. Отраслевые тенденции. Инновации, управление сложностью и связь — самые важные темы для бизнес-менеджеров и технических руководителей. Суммы превышают 100%, поскольку в анкете можно было давать по три ответа на каждый вопрос

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

Инновации, глобализация и сложность — двигатели программного бизнеса во всем мире, но они же создают и немало рисков. Различным рискам подвержены все процессы, от разработки до выпуска на рынок.

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

Какие методы управления сложностью применяют компании-разработчики? Как они ускоряют вывод новых продуктов на рынок и улучшают функции связи? Какие подходы хорошо зарекомендовали себя на практике?

Сосредоточьтесь на реальных источниках дохода. Работая над повышением КПД и снижением стоимости продуктов, компании иногда доходят до крайностей, однако это не всегда приносит ожидаемый доход. Если заказчики требуют множества изменений, прибыли могут оказаться гораздо ниже планируемых.

Многие руководители стремятся концентрироваться на том, что знают лучше всего, а в программной индустрии это обычно техническая компетенция, а не основы бизнеса. На каждом этапе необходимо устанавливать цели и контролировать продвижение к ним, сверяясь с реальными показателями. За изменениями экономических условий нужно тщательно следить, иначе они станут управлять вами. Для топ-менеджеров можно рекомендовать подход, основанный на сбалансированных показателях (balanced scorecard), тогда как на операционном уровне можно ориентироваться на выгоду — например, придерживаться метода освоенного объема (earned-value management).

Читайте также:
Программа которая раздевает девушек

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

Формально это, может быть, и верно, но приводит к неконтролируемому росту уровня сложности и затрат. Сложность хорошо продается, но создает большой объем дополнительных расходов на обслуживание, развитие, управление изменениями и исправление непредвиденных программных ошибок.

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

Индивидуальные варианты и специальные функции для конкретных заказчиков еще больше увеличивают сложность. Эффективно контролировать сложность можно с помощью метода RACE (Reduce Accidents, Control Essence, «снижение числа инцидентов, контроль над основами»).

Снижение количества инцидентов означает сокращение накладных расходов, например, на «позолоту» и переработку, которые обусловлены запоздалым устранением дефектов или слишком большим количеством изменений в требованиях. Контроль над основами означает фокусировку на том, за что заказчик действительно платит.

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

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

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

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

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

В большинстве компаний такой цикл формализован, но практически не используется как базовый инструмент принятия и реализации решений. Изменения в требованиях нередко согласуются на собраниях по продажам, но никто не проверяет их реализуемость, в результате технические решения принимаются без экономического обоснования и не учитывают влияния на дочерние процессы. Автоматизированное управление жизненным циклом продуктов (PLM) и приложений (ALM) — ключевые механизмы эффективной интеграции инженерных процессов, инструментов и людей. Но «процесс» не должен быть обузой и выражаться только в документировании — его назначение состоит в обеспечении эффективности повторяющихся операций.

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

Бережливая разработка и скорые методы полезны для оптимизации взаимодействия и сокращения объема переработки и накладных расходов. Метод освоенного объема, систематизация потока ценности (value stream mapping) и Scrum — проверенные подходы, которые легко адаптировать для конкретной организации.

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

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

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

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

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

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

Литература

  1. Industry Trends 2015. Vector Consulting Services, 2015. URL: https://www.vector.com/trends (дата обращения: 18.12.2015).
  2. 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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru