ВВПИ. Лекция 1. Программная инженерия. Лекция 1 Программная инженерия назначение, основные принципы и понятия 1 Предпосылки и история
Скачать 0.74 Mb.
|
1.2.15. Основные трудности Трудностей достаточно много. Все они в той или иной степенью связаны с главной проблемой программной инженерии: поиском универсального метода и процесса, пригод- ного для создания программного продукта любого типа в любых условиях. Здесь главная проблема – меняющиеся условия. В этой связи разработчики ПО сталкиваются со следу- ющими трудностями: • Наследование ранее созданного ПО (legacy systems). Существует достаточно много систем, созданных много лет назад, морально устаревших, но продолжающих ра- ботать. Проблема наследования таких систем состоит в их сопровождении – под- держке и развитии. • Разнородность программных систем. ПО должно работать в распределенных сетях, на разнородном оборудовании, в разных средах, под управлением различных опе- рационных систем. • Сокращение времени на разработку. Запросы рынка требования к программным системам меняются очень быстро. Суть проблемы состоит в том, чтобы сократить время разработки ПО без снижения его качества. Эти трудности часто оказываются связанными между собой. Задача разработки се- тевого варианта старой локальной базы данных в ограниченные сроки является достаточ- но типичной. 1.2.16. Профессинальные и этические требования Развитие средств вычислительной техники, коммуникаций и программных систем (Internet, телекоммуникации, распределенные системы, IP телефония, компьютерные игры и обучающие программы) оказывает все большее воздействие на общество. Роль специа- листов по программному обеспечению при этом все время возрастает. Они работают в определенном правовом и социальном окружении, находятся под действием, междуна- родных, национальных и местных законодательств. Ясно, что программисты, как и специалисты других профессий, должны быть чест- ными и порядочными людьми. Но вместе с тем, программисты не могут руководствовать- ся только моральными нормами или юридическими ограничениями, т.к. они обычно бы- вают связаны более тонкими профессиональными обязательствами: • Конфиденциальность – программные специалисты должны уважать конфиденци- альность в отношении своих работодателей или заказчиков независимо от того, подписывалось ли ими соответствующее соглашение. • Компетентность – программный специалист не должен завышать свой истинный уровень компетентности и не должен сознательно браться за работу, которая этому уровню не соответствует. • Защита интеллектуальной собственности – специалист должен соблюдать законо- дательство и принципы защиты интеллектуальной собственности при использова- нии чужой интеллектуальной собственности. Кроме того, он должен защищать ин- теллектуальную собственность работодателя и клиента. Внимание: создаваемая им 13 интеллектуальная собственность является собственностью работодателя или кли- ента. • Злоупотребление компьютером – программный специалист не должны злоупотреб- лять компьютерными ресурсами работодателя или заказчика; под злоупотреблени- ями мы здесь понимаем широкий спектр — от игр в компьютерные игрушки на ра- бочем месте до распространения вирусов и т.п. 1.2.16.1. Кодекс этики IEEE-CS/ACM В разработке таких этических обязательств ведущую роль играют профессиональ- ные сообщества. Такие общества, как • ACM – Association for Computing Machinery - Ассоцтация по вычислительной тех- нике, • IEEE – Institute of Electrical and Electronic Engineers – Институт инженеров по элек- тротехнике и электронике • CS - British Computer Society – Британское компьютерное общество совместно разработали и опубликовали IEEE-CS/ACM Software Engineering Code of Ethics and Professional Practices – Кодекс этики и профессиональной практики программ- ной инженерии.. Члены этих организация принимают обязательство следовать этому кодексу в мо- мент вступления в организацию Кодекс содержит восемь Принципов, связанных с поведением и решениями, при- нимаемыми профессиональными программистами, включая практиков, преподавателей, менеджеров и руководителей высшего звена Кодекс распространяется также на студентов и «подмастерьев», изучающих дан- ную профессию Кодекс имеет краткую и полную версии 1.2.16.2. Кодекс этики - Преамбула Краткая версия кодекса – суммирует стремления кодекса на высоком уровне абстракции. – полная версия показывает как эти стремления отражаются на деятельности профессиональных программистов. – без высших принципов детали кодекса станут казуистическими и нудными; – без деталей стремления останутся возвышенными, но пустыми; – вместе же они образуют целостный кодекс. Программные инженеры должны добиваться, чтобы анализ, спецификация, проек- тирование, разработка, тестирование и сопровождение программного обеспечения стали полезной и уважаемой профессией. В соответствии с их приверженностью к процветанию, безопасности и благополучию общества, программные инженеры будут руководствовать- ся следующими Восемью Принципами 1.2.16.3. Кодекс этики: 8 принципов 1. ОБЩЕСТВО – Программные инженеры будут действовать соответственно общественным интересам. 2. КЛИЕНТ И РАБОТОДАТЕЛЬ – Программные инженеры будут действовать в интересах клиентов и работо- дателя, соответственно общественным интересам. 3. ПРОДУКТ – Программные инженеры будут добиваться, чтобы произведенные ими про- дукты и их модификации соответствовал высочайшим профессиональным стандартам. 14 4. СУЖДЕНИЕ – Программные инженеры будут добиваться честности и независимости в своих профессиональных суждениях 5. МЕНЕДЖМЕНТ – Менеджеры и лидеры программных инженеров будут руководствоваться этическим подходом к руководству разработкой и сопровождением ПО, а также будут продвигать и развивать этот подход 6. ПРОФЕССИЯ – Программные инженеры будут улучшать целостность и репутацию своей профессии соответственно с интересами общества 4. КОЛЛЕГИ – Программные инженеры будут честными по отношению к своим коллегам и будут всячески их поддерживать 8. ЛИЧНОСТЬ – Программные инженеры в течение всей своей жизни будут учиться практи- ке своей профессии и будут продвигать этический подход к практике своей профессии Полная версия кодекса: IEEE-CS/ACM Software Engineering Ethics and Professional Practices. http://www.computer.org/tab/seprof/code.htm#Public 15 1.2.17. Стандартизация и стандарты Как отмечалось, по происхождению программные продукты бывают двух типов: заказные (под заказ конкретного потребителя) и коробочные (для массовой продажи на рынке). Для заключения контракта заказчик должен быть уверен, что разработчик спра- вится и не завалит проект. Вопрос: как его в этом убедить? Варианты ответов: «Мы умные люди с научными степенями» или «У нас есть опыт разработки подобных программ» зву- чат либо наивно, либо не вполне убедительно. В мировой практике промышленного про- изводства ответы на эти вопросы дают стандарты на производство продуктов и услуг и сертификация производителей на соответствие этим стандартам. Вопрос заказчика в этом случае звучит так: Какими стандартами вы владеете и есть ли у вас сертификаты на соот- ветствие этим стандартам? Процесс стандартизации и сертификации давно вошел и в программную инжене- рию, где он составляет основу промышленного производства программных продуктов. При изготовлении коробочных продуктов стандартизация имеет не меньшее значение, т.к. она обеспечивает качество продуктов и продвижение их на рынок. 1.3.1. Стандарты и сертификация Организация производит товары или услуги. При этом она применяет некоторую технологию производства. Эта технология должна соответствовать стандартам на товары или услуги. Применяемая организацией технология проходит сертификацию на соответ- ствие этим стандартам. 1.3.1.1. Что такое технология Происходит от греческого téchne (искусство, мастерство) и логия (знание, умение). Опре- деляется как: • совокупность приёмов и способов получения, обработки или переработки сырья, материа- лов, полуфабрикатов или изделий, осуществляемых в различных отраслях промышленно- сти, в строительстве и т. д.; • научная дисциплина, разрабатывающая и совершенствующая такие приёмы и способы; • сами операции добычи, обработки, переработки, …, которые являются основной составной частью производственного процесса; • описание производственных процессов; • инструкции по их выполнению; • технологические правила, требования, карты, графики и др. Иными словами – это подробное описание того, как надо изготовлять то или иное изделие и наука о составлении таких описаний. 1.3.1.2. Что такое стандарт? Происходит от английского standard - норма, образец, мерило. Это: • утверждаемый компетентным органом нормативно-технический документ, устанавливаю- щий комплекс норм, правил по отношению к предмету стандартизации; • типовой образец, эталон, модель, принимаемые за исходные для сопоставления с ними других предметов. Например: ГОСТ ЕСПД – единая система программной документации – документы, опи- сывающие состав и структуру документации на разработку программ для ЭВМ (общее описание, техническое задание, эскизный проект, технический проект, описание применения). Типовые об- разцы – эталоны мер и весов (эталон метра, хранящийся в Париже в палате мер и весов). Стандарт может быть разработан на: • материально-технические предметы (продукцию, эталоны, образцы веществ); • нормы, правила, требования организационно-методического и общетехнического характе- ра. Пример: Вузы работают в соответствии с государственными образовательными стандар- тами, представленными в виде паспортов специальностей. 16 Стандартизация распространяется на все сферы человеческой деятельности: науку, техни- ку, промышленное и с.-х. производство, строительство, здравоохранение, транспорт и т.д. Шкаф проходит в дверь потому, что есть согласованные стандарты на размеры мебели и дверных прое- мов. Электрическая вилка втыкается в розетку по той же причине. Но можно вспомнить евро вил- ку и евро розетку. Из истории стандартов: длина крепостной стены нижегородского кремля равна длине кре- постной стены московского кремля. Также совпадают размеры Красной площади и площади Ми- нина. 1.3.1.3. Что такое сертификация? Сертификация в переводе с латыни означает "сделано верно". Для того чтобы убедиться в том, что продукт "сделан верно", надо знать: • каким требованиям он должен соответствовать • каким образом возможно получить достоверные доказательства этого соответствия Общепризнанным способом такого доказательства служит сертификация соответствия и заявление о соответствии. Заявление поставщика о соответствии: • означает, что поставщик (изготовитель) под свою личную ответственность сообщает о том, что его продукция отвечает требованиям конкретного нормативного документа • содержит следующие сведения: • адрес изготовителя, представляющего заявление-декларацию, • обозначение изделия и дополнительную информацию о нем; • наименование, номер и дату публикации стандарта, на который ссылается изгото- витель; • указание о личной ответственности изготовителя за содержание заявления и др. Заявление не является гарантией на соответствие стандарту. Заявление отражает готов- ность нести ответственность. Сертификация соответствия: • предполагает обязательное участие третьей стороны • осуществляется по правилам определенной процедуры, включающей обязательные испы- тания на соответствие стандарту Сертификация считается основным достоверным способом доказательства соответствия продукции (процесса, услуги) заданным требованиям (стандартам). Систему сертификации (в об- щем виде) составляют: • центральный орган который управляет системой, проводит надзор за ее деятельностью и может передавать право на проведение сертификации другим органам; правила и порядок проведения сертификации; • нормативные документы, на соответствие которым осуществляется сертификация; • процедуры (схемы) сертификации; • порядок инспекционного контроля. Системы сертификации могут действовать на национальном, региональном и международ- ном уровнях. 1.3.2. Какие бывают стандарты? Среди всего многообразия стандартов принято выделять следующие основные ти- пы стандартов: Корпоративные стандарты разрабатываются крупными фирмами (корпорациями) с целью повышения качества своей продукции. Такие стандарты разрабатываются на основе собственного опыта и с учетом требований мировых стандартов. Корпоративные стандар- ты не сертифицируются, но являются обязательными для применения внутри корпорации. В условиях рыночной конкуренции могут иметь закрытый характер. В IT сфере известны стандарты, разработанные Microsoft, Intel, IBM. Отраслевые стандарты действуют в пределах организаций некоторой отрасли (ми- нистерства). Например, СНИП – строительные нормы и правила. Разрабатываются с уче- 17 том требований мирового опыта и специфики отрасли. Являются, как правило, обязатель- ными для отрасли. Подлежат сертификации. Государственные стандарты (ГОСТы) принимаются государственными органами, имеют силу закона. Разрабатываются с учетом мирового опыта или на основе отраслевых стандартов. Могут иметь как рекомендательный, так и обязательный характер (стандарты безопасности). Для сертификации создаются государственные или лицензированные ор- ганы сертификации. Международные стандарты. Разрабатываются, как правило, специальными между- народными организациями на основе мирового опыта и лучших корпоративных стандар- тов. Имеют сугубо рекомендательный характер. Право сертификации получают организа- ции (государственные и частные), прошедшие лицензирование в международных органи- зациях. 1.3.3. Кто разрабатывает стандарты SE? Основными разработчиками международных стандартов являются следующие ор- ганизации: ISO - International Organization for Standardization – Международная организация по стандартизации. Наиболее представительная и влиятельная организация, разрабатываю- щая стандарты почти во всех областях деятельности, в том числе и в IT. ACM - Association for Computing Machinery –Ассоциация по вычислительной тех- нике. Всемирная научная и образовательная организация в области вычислительной тех- нике. Известна также и разработкой образовательных стандартов. SEI - Software Engineering Institute - Институт Программной Инженерии. Исследо- вания в области программной инженерии с упором на разработку методов оценки и по- вышения качества ПО. Стандарты по качеству ПО и зрелости организаций, разрабатыва- ющих ПО. PMI - Project Management Institute - Международный Институт Проектного Ме- неджмента (Управления Проектами). Некоммерческая организация, целью которой явля- ется продвижение, пропаганда, развитие проектного менеджмента в разных странах. PMI разрабатывает стандарты проектного менеджмента, занимается повышением квалифика- ции специалистов. IEEE - Институт инженеров по электронике. Поддержка научных и практических разработок в области электроники и вычислительной техники. Большие вложения в разра- ботку стандартов в этой области. См. также: Васютович В.В. Стандартизация в области информационных технологий. http://inform.alee.ru/item_541.html 1.3.3.1. ISO - International Organization for Standardization Неправительственная организация с консультативным статусом ООН. Главная цель - раз- витие стандартизации и родственных направлений деятельности во всем мире. Официальное название -International Organization for Standardization, и сокращенным - ISO. Выходит, что аббревиатурой ISO должен быть IOS. Слово ISO образовано от греческого сло- ва isos , что означает «равный» и служит приставкой iso- в таких терминах как «изономия», «изо- метрия». Во избежание многочисленных вариаций аббревиатуры, получающейся от перевода International Organization for Standardization на родные языки членов организации решили ис- пользовать аббревиатуру ISO, как сокращенную форму обозначения Международной организации по стандартизации (ISO) во всем мире. Международная организация по стандартизации (ISO): • Является всемирной федерацией национальных организаций по стандартизации (комите- тов-членов ISO) 18 • Разработка международных стандартов обычно осуществляется техническими комитетами ISO. Каждый комитет-член, заинтересованный в деятельности, для которой создан техни- ческий комитет, имеет право быть представленным в этом комитете. Международные правительственные и неправительственные организации, имеющие связи с ISO, также принимают участие в работах. Стандарты ISO являются рекомендательными; в то же время некоторые международные стандарты (например по проблемам здравоохранения, безопасности, охраны окружающей среды) приняты рядом стран в качестве обязательных на территории данной страны. Как правило, никакого контроля за выполнением стандартов, никакой сертификации на соответствие своим стандартам ISO не ведет - это также считается суверенным правом стран. Обычно эти процедуры поручаются либо специально назначенному государственному органу ре- гистрации, либо так называемой третьей стороне -- лаборатории или аудиторскому институту, в том числе и частному аудитору, действующему на коммерческой основе. Использование логотипа ISO на каких-либо продуктах или в предприятиях является также незаконным, поскольку дает ощущение "одобрения" данного продукта; а как мы уже говорили, ISO не занимается сертификацией. Проекты международных стандартов, принятые техническими комитетами, рассылаются комитетам-членам на голосование. Их опубликование в качестве международных стандартов тре- бует одобрения, по меньшей мере, 75% комитетов-членов, принимающих участие в голосовании. 1.3.3.2. ACM - Association for Computing Machinery ACM - Association for Computing Machinery – название почти никогда не переводится. Можно перевести как Ассоциация для вычислительной техники, что звучит весьма коряво. ACM является крупнейшей всемирной научной и образовательной организацией, объединяющей более 75000 профессионалов компьютерной науки. Основанная в 1947 г, АСМ ежегодно проводит до 100 международных (научных и практических) конференций, издает несколько десятков научных журналов и присуждает большое количество авторитетных наград за достижения в области ком- пьютерной науки, в т.ч. A.M. Turing Award, известную как "нобелевская премия информатики". Под эгидой ACM проводятся ежегодные международные студенческие олимпиады по программи- рованию. Подробнее об ACM можно прочесть на Internet-сайте ассоциации: http://www.acm.org/ |