Профессиональные и этические требования к специалистам по программному обеспечению
Подобно любым другим профессионалам, специалисты по программному обеспечению должны согласиться, что к ним предъявляется более широкий круг требований, чем простая необходимость иметь тот или иной профессиональный уровень. Они работают в определенном правовом и социальном окружении. Область инженерии программного обеспечения, как и любая другая сфера человеческой деятельности, имеет ограничения в виде местных, национальных и международных законодательств. Поэтому специалисты по программному обеспечению должны принять на себя определенные этические и моральные обязательства, чтобы стать настоящими профессионалами. Не требует лишних пояснений утверждение, что специалисты должны быть честными и порядочными людьми. Они не должны использовать свои профессиональные навыки и возможности для деятельности, дискредитирующей профессию специалиста по программному обеспечению. Вместе с тем требования к специалистам не ограничиваются только моральными или юридическими предписаниями, в их круг также входят значительно более тонкие профессиональные обязательства.
1. Конфиденциальность. Специалист должен соблюдать конфиденциальность, т.е. не разглашать никаких сведений о работодателе и клиентах, независимо от того, подписывал он или нет какое-либо соглашение о соблюдении конфиденциальности. 2. Компетентность. Специалист не должен скрывать (или ложно представлять) свой уровень компетенции и не должен браться за работу, которая этому уровню не соответствует. 3. Защита прав интеллектуальной собственности. Специалист не должен нарушать соответствующее законодательство о защите авторских прав при использовании чужой интеллектуальной собственности (патентов и т.п.). Он также должен защищать интеллектуальную собственность работодателя и клиентов.
4. Злоупотребление компьютером. Специалист не должен, используя свой профессиональный уровень, наносить вред компьютерам других людей. Злоупотребления компьютером могут быть как относительно тривиальными (скажем, игра в компьютерные игры на машине, принадлежащей работодателю), так и очень серьезными (например, распространение компьютерных вирусов).
В разработке подобных этических обязательств большая роль принадлежит профессиональным обществам и институтам. Такие организации, как ACM (Association for Computing Machinery– Ассоциация по вычислительной технике), IEEE (Institute of Electrical and Electronics Engineers – Институт инженеров по электротехнике и электронике) и British Computer Society (Британское компьютерное общество), опубликовали кодекс профессионального поведения, или этический кодекс. Члены этих организаций принимают на себя обязательство следовать данному кодексу. Правила поведения из этого кодекса основаны на общечеловеческих этических нормах. АСМ и IEEE совместно создали кодекс, соединяющий этические нормы и профессиональную практику. Этот кодекс существует в двух версиях: краткой, приведенной во врезке, и полной [134], раскрывающей, расширяющей и дополняющей основные положения краткой версии кодекса. Обоснование необходимости такого кодекса приведено в первых двух абзацах полной версии. Вычислительная техника в настоящее время играет все возрастающую роль в деловой сфере, промышленности, медицине, образовании, сфере развлечений и обществе в целом. Инженерия программного обеспечения непосредственно или с помощью своих технологий вносит вклад в анализ и создание спецификации, проектирование, разработку, сертификацию, поддержку и тестирование программных систем. В соответствии со своей ролью в создании программных систем специалисты по программному обеспечению имеют значительные возможности творить добро или делать зло, позволять другим творить добро или делать зло либо влиять на других так, чтобы они творили добро или делали зло. Чтобы быть по возможности уверенным в том, что их усилия направлены только на добро, специалисты по программному обеспечению должны принять на себя обязательство относиться к инженерии программного обеспечения как к общественно полезной и уважаемой профессии. В связи с этим обязательством специалисты по программному обеспечению должны твердо придерживаться следующего Кодекса этики и профессиональной деятельности.
Кодекс содержит восемь принципов поведения и принятия решений специалистами-профессионалами по программному обеспечению, связанных с практической деятельностью, самообучением, управлением, руководствам, а также обучением студентов данной профессии. Принципы определяют этику отношений между отдельными личностями, а также в группах и организациях, разделяющих и принимающих эти принципы. Статьи каждого принципа описывают конкретные обязательства, определяющие эти отношения. Истоки этих обязательств- человеческие качества специалистов по программному обеспечению, особая моральная щепетильность, присущая людям, занимающимся инженерией ПО, и уникальные составляющие практической деятельности специалистов, реализующих методы и технологии инженерии программного обеспечения. Кодекс предлагает обязательства как предписания, предполагающие непременное выполнение, и как высокие цели, к которым должен стремиться специалист по программному обеспечению. Кодекс этики, разработанный ACM/IEEE (©IEEE/ACM 1999) Кодекс этики и практической деятельности инженерии программного обеспечения
ACM/IEEE-CS объединили свои усилия для создания Кодекса этики и практической деятельности инженерии программного обеспечения. ПРЕАМБУЛА
Краткая версия Кодекса резюмирует наши цели в сжатой форме; статьи, которые содержатся в полной версии, дают расширенное и полное толкование наших целей в качестве пути, которым должны следовать профессионалы в области инженерии программного обеспечения. Без учета целей толкования будут скучными юридическими подробностями, без полного толкования цели становятся высоким, но пустым звуком. Вместе цели и толкования образуют целостный кодекс.
Специалисты по программному обеспечению преобразуют выполняемую ими работу по анализу и созданию спецификаций, проектированию и разработке, тестированию и сопровождению программного обеспечения в общественно полезную и уважаемую профессию. В соответствии с этим, кроме общественных обязательств относительно здоровья, безопасности и благополучия общества, специалисты по программному обеспечению должны взять на себя обязательства следовать восьми перечисленным принципам. 1. Общественные интересы – деятельность специалистов по программному обеспечению должна проистекать в соответствии с общественными интересами и запросами. 2. Клиенты и работодатели – деятельность специалистов по программному обеспечению должна быть направлена на удовлетворение запросов клиентов и работодателей в соответствии с общественными интересами. 3. Производство – специалист по программному обеспечению должен гарантировать, что произведенные или модифицированные им программные продукты соответствуют самым высоким, какие только возможны, профессиональным стандартам. 4. Профессиональные суждения – специалист по программному обеспечению должен поддерживать честность, непредвзятость и независимость своих профессиональных суждений и оценок. 5. Управление – действия руководителей программных проектов должны подчиняться высоким этическим нормам при их руководстве разработкой и сопровождением программного обеспечения. 6. Профессия – специалист по программному обеспечению должен поддерживать на высокомуровне репутацию своей профессии в соответствии с общественными интересами. 7. Коллегиальность – специалист по программному обеспечению должен поддерживать коллег и быть достойным членом своего коллектива. 8. Личность – специалист по программному обеспечению должен постоянно учиться, чтобы соответствовать уровню своей профессии, а также должен руководствоваться высокими этическими нормами в повседневной практической профессиональной деятельности.
Конечно, в одной и той же ситуации разные люди имеют различные взгляды и принципы решения стоящих перед ними этических проблем. Например, как вы поступите, если не согласны с политикой, которую проводит руководство компании? Очевидно, это зависит от конкретного человека и сути разногласий. Что лучше – дистанцироваться от позиции компании или пересмотреть свои принципы? Если вы считаете, что эти разногласия могут породить проблемы в выполнении программного проекта, будете ли вы открыто отстаивать свою позицию перед руководством? Если вы рассчитываете работать в этой компании далее, необходимо рано или поздно решать эту нравственную проблему. Такие этические дилеммы встают перед всеми специалистами в процессе их профессиональной деятельности. К счастью, в большинстве случаев они не имеют существенной принципиальной подоплеки и разрешаются сравнительно просто. Если же не разрешаются, значит, специалист столкнулся, скорее всего, с большой этической проблемой. В принципе ее всегда можно решить, просто уволившись с работы, но в этом случае возможно возникновение других проблем, например с материальным обеспечением семьи. Особо трудная ситуация для специалиста возникает тогда, когда работодатель ведет себя неэтичным образом. Скажем, компания разрабатывает программную систему, критическую в отношении безопасности. Но вследствие дефицита времени были подделаны протоколы проверки системы на защищенность. Должен ли специалист в этой ситуации поддерживать конфиденциальность, т.е. неразглашение информации о работодателе, либо все же следует предупредить заказчика ПО или придать гласности тот факт, что система может быть незащищенной? Сложность этой проблемы состоит в том, что не существует критериев абсолютной защищенности систем. Фактическая защищенность системы может быть проверена только в процессе ее длительной эксплуатации. Даже если система удовлетворяет заранее определенным критериям защищенности, это еще не означает, что она лишена ошибок и не может возникнуть каких-либо сбоев в ее работе. Ранняя постановка рассматриваемой этической проблемы может привести к напряженности между работодателем и служащими, а неблагоприятный исход ее решения может нанести ущерб другим сотрудникам. Вы должны иметь собственную точку зрения на решение возникшей проблемы. Но эта точка зрения обязательно должна учитывать возможные неприятности и ущерб, причиняемый другим людям. Если ситуация очень серьезная, можно, например, обратиться за поддержкой к средствам массовой информации. Но в любом случае нужно пытаться решить проблему без нанесения ущерба правам работодателя.
Другая этическая проблема возникает, если вы участвуете в разработке военных или атомных систем. Многие отказываются участвовать в любых разработках, имеющих хоть какое-нибудь отношение к военной тематике. Некоторые согласны работать над военной тематикой, не связанной с производством вооружения, а кто-то считает, что национальная безопасность – достаточное основание, чтобы не иметь этических проблем при работе над системами вооружений. Здесь соответствующая этическая позиция полностью зависит от взглядов и мировоззрения конкретного человека. В этой ситуации важно, чтобы как работодатель, так и работники заблаговременно узнали взгляды друг друга. Когда организация включается в военные или атомные проекты, руководство должно сообщить коллективу, что они должны быть готовыми принять любую работу соответствующего профиля. С другой стороны, если штатные сотрудники не хотят принимать участие в разработке военных систем, руководство не должно оказывать на них давление, принуждая к выполнению таких работ. К вопросам профессиональных этических норм и отношений интерес возрастает на протяжении ряда последних лет. Их можно рассматривать исходя из философских категорий, описывающих базовые принципы этики, и на основе этики инженерии программного обеспечения, которая также ссылается на эти принципы. Такой подход представлен в работе [210] и в меньшей степени в [164]. Однако я нахожу такой подход слишком абстрактным и трудным для "привязки" к моей повседневной практике. Я отдаю предпочтение более практичному подходу, реализованному в кодексах поведения и профессиональной деятельности. Я думаю, что этические проблемы лучше обсуждать в практическом контексте инженерии программного обеспечения, а не как субъекты абстрактных общих прав человека. Поэтому в данной книге я не касаюсь абстрактных этических дискуссий, но там, где это возможно, привожу примеры из реальной жизни, которые могут служить основой для дальнейшего обсуждения. КЛЮЧЕВЫЕ ПОНЯТИЯ
• Инженерия программного обеспечения – это инженерная дисциплина, которая охватывает все аспекты производства программных продуктов. • Программный продукт состоит из программ и сопутствующей документации. • Технологический процесс создания ПО состоит из отдельных процессов, необходимых для создания программного продукта. Основными процессами являются создание спецификации требований, разработка, аттестация и совершенствование программного продукта. • Методы инженерии ПО – это структурные и организационные решения, предназначенные для создания программных продуктов. Они содержат указания, следуя которым создается ПО, нотации и правила описания программной системы, необходимые для разработки технической документации. • CASE-средства – это программные системы, предназначенные для поддержки процессов создания ПО, таких как редактирование диаграмм моделей, проверка их непротиворечивости и отслеживание процесса тестирования программ. • Специалисты по программному обеспечению имеют обязательства перед своей профессией и обществом, которые не сводятся только к техническим вопросам. • Профессиональные сообщества опубликовали Кодекс этики и профессиональной деятельности, который устанавливает правила поведения для специалистов по программному обеспечению. Упражнения
1.1. На основе схем структуры затрат на создание ПО, представленных в разделе 1.1.7, объясните, почему затраты на первоначальное обдумывание и обсуждение создаваемой программной системы могут превосходить стоимость продаваемых программ. 1.2. Назовите четыре основные характеристики, которыми должен обладать любой программный продукт. Предложите четыре другие характеристики, которые также существенны для программных систем. 1.3. Каково различие между моделью процесса создания ПО и самим процессом? Приведите две ситуации, когда модель процесса создания ПО может быть полезной в определении возможных этапов совершенствования программного продукта. 1.4. Методы инженерии программного обеспечения широко используют CASE-технологии для поддержки процесса создания ПО. Назовите пять этапов процесса разработки ПО, где находят применение CASE-средства. 1.5. Помимо проблем наследования ранее созданного ПО, возрастающей разнородности программных систем и проблемы, порожденной требованием уменьшения времени на создание ПО, назовите другие проблемы, также стоящие перед инженерией ПО. 1.6. Обсудите вопрос о том, должны ли специалисты по программному обеспечению иметь соответствующие сертификаты, как, например, врачи и юристы. 1.7. Для каждой статьи Кодекса этики и профессиональной деятельности приведите соответствующие примеры, иллюстрирующие эти статьи.
Читайте также: I Требования к выполнению и оформлению контрольной работы Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|