Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
07:30 Сбор группы: ст. метро «ВДНХ» (стоянка справа от отеля «Космос» по улице Космонавтов, автобус с лобовой табличкой "8 Марта в Костроме"...полностью>>
'План-конспект'
Дидактична гра: Авторське право( Учні пропонують кандидатур на оцінювання їхніх знань, умінь, навиків, задають їм запитання, а потім оцінюють їх після...полностью>>
'Методические рекомендации'
Методические рекомендации по дисциплине «Основы менеджмента» для подготовки учащихся средних школ к конкурсу ученических производственных бригад разра...полностью>>
'Документ'
Відповідно до Закону України “Про загальну середню освіту”, на виконання підпункту “і” пункту 2 статті 3 Указу Президента України від 30 вересня 2010...полностью>>

Что такое программное обеспечение (software)

Главная > Документ
Сохрани ссылку в одной из сетей:

  1. Что такое программное обеспечение (software)?

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

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

-коробочные продукты

-заказные продукты

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

Из чего складывается стоимость ПО?

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

Типовое распределение стоимости между основными этапами (без сопровождения) выглядит следующим образом:

  • 15% - спецификация – формулировка требований и условий разработки

  • 25% - проектирование – разработка и верификация проекта

  • 20% - разработка – кодирование и тестирование компонент

  • 40% - интеграция и тестирование – объединение и сборочное тестирование продукта

Отклонения от этой схемы в зависимости от типа ПО выглядят следующим образом:

  • Коробочное ПО

    • Рост доли тестирования за счет уменьшения доли спецификации

  • Заказное ПО

    • Рост доли тестирования за счет уменьшения доли проектирования и разработки

2. Что такое программная инженерия?

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

В чем отличия от информатики?

Информатика (computer science) занимается теорией и методами вычислительных и программных систем, в то время как программная инженерия занимается практическими проблемами создания ПО. Информатика составляет теоретические основы программной инженерии и инженер

В чем отличие от других инженерий?

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

  • Почему доля провальных проектов в программной инженерии так велика по сравнению с другими инженериями?

  • Можно ли в программной инженерии применять опыт других инженерий?

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

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

Отсюда следуют следующие выводы:

  • Стоимость программы – это стоимость только ее проектирования

  • Стоимость проектирования коробочных продуктов «размазывается» по копиям

  • Стоимость заказных продуктов (массово не копируемых) остается высокой

3. В чем еще отличие от др. инженерий?

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

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

Ну и наконец, программная инженерия – молодая дисциплина, опыт которой насчитывает всего несколько десятков лет.

4. Программный процесс?

  • Жизненный цикл – непрерывный процесс с момента принятия решения о создании ПО до снятия его с эксплуатации.

  • Процесс – совокупность действий и задач, имеющих целью достижение значимого результата.

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

В соответствии с двумя типами процессов – основных и дополнительных - можно говорить о двух типах моделей процесса:

- модели процесса разработки (модели жизненного цикла)

- модели организации работ по выполнению разработки.

К первым типам моделей относятся модели, в которых описывается порядок выполнения действий по созданию продукта:

  • Водопадная.

  • Спиральная

  • Компонентная (предполагает сборку продукта из заранее написанных частей )

  • Формальная (основана на формальном описании требований с последующим преобразованием требований в исходный код

Ко второму типу моделей – моделей организации работ относятся:

  • Модель потока работ — показывает последовательность действий, выполняемых людьми на различных этапах разработки ПО.

  • Модель потоков данных — представляет процесс в виде последовательного преобразования данных.

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

Методы прогр. инженерии?

  • Метод программной инженерии — это структурный подход к созданию ПО:

    • как высококачественного продукта

    • экономически эффективным способом.

  • Наиболее известные методы:

    • Структурного анализа и проектирования

    • Сущность-связь

    • Объектно-ориентированного анализа и проектирования

Цель - создание и поэтапное преобразование моделей ПО

  • Методы должны включать в себя следующие компоненты:

    • Описание моделей системы и нотация

    • Правила и ограничения

    • Рекомендации

    • Руководство по применению метода

Что такое CASE системы?

CASE - Computer Aided System Engineering - различного рода инструментальные программы, используемые для поддержки процесса создания программ

5. Свойства хорошей программы?

Хорошая программа должна делать то, что ожидает от нее заказчик – т.е. удовлетворять требованиям заказчика. Такие требования называют функциональными.

К нефункциональным требованиям относят:

-Сопровождаемость

-Надежность

-Удобство использования

Основные трудности?

  • Главная проблема: универсальный метод и процесс

  • Основные трудности:

    • Наследование ранее созданного ПО .

      • Сопровождение – поддержка и развитие старого ПО.

    • Разнородность программных систем.

      • Распределенные сети, разнородное оборудование, разные среди, различные ОС

    • Сокращение времени на разработку.

      • Сократить время разработки ПО без снижения его качества

6. Профессиональные и этические требования.

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

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

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

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

  • Защита интеллектуальной собственности – специалист должен соблюдать законодательство и принципы защиты интеллектуальной собственности при использовании чужой интеллектуальной собственности. Кроме того, он должен защищать интеллектуальную собственность работодателя и клиента. Внимание: создаваемая им интеллектуальная собственность является собственностью работодателя или клиента.

  • Злоупотребление компьютером – программный специалист не должны злоупотреблять компьютерными ресурсами работодателя или заказчика; под злоупотреблениями мы здесь понимаем широкий спектр — от игр в компьютерные игрушки на рабочем месте до распространения вирусов и т.п.

Кодекс этики IEEE-CS/ACM

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

  • Association for Computing Machinery - Ассоциация по вычислительной технике,

  • IEEE – Institute of Electrical and Electronic Engineers – Институт инженеров по электротехнике и электронике

  • British Computer Society – Британское компьютерное общество

Они совместно разработали и опубликовали Кодекс этики и профессиональной практики программной инженерии. Члены этих организация принимают обязательство следовать этому кодексу в момент вступления в организацию.

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

Кодекс распространяется также на студентов и «подмастерьев», изучающих данную профессию

Кодекс имеет краткую и полную версии

Краткая версия кодекса суммирует стремления кодекса на высоком уровне абстракции.

Полная версия показывает как эти стремления отражаются на деятельности профессиональных программистов

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

1. ОБЩЕСТВО

  • Программные инженеры будут действовать соответственно общественным интересам.

2. КЛИЕНТ И РАБОТОДАТЕЛЬ

  • Программные инженеры будут действовать в интересах клиентов и работодателя, соответственно общественным интересам.

3. ПРОДУКТ

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

4. СУЖДЕНИЕ

  • Программные инженеры будут добиваться честности и независимости в своих профессиональных суждениях

5. МЕНЕДЖМЕНТ

  • Менеджеры и лидеры программных инженеров будут руководствоваться этическим подходом к руководству разработкой и сопровождением ПО, а также будут продвигать и развивать этот подход

6. ПРОФЕССИЯ

  • Программные инженеры будут улучшать целостность и репутацию своей профессии соответственно с интересами общества

4. КОЛЛЕГИ

  • Программные инженеры будут честными по отношению к своим коллегам и будут всячески их поддерживать

8. ЛИЧНОСТЬ

  • Программные инженеры в течение всей своей жизни будут учиться практике своей профессии и будут продвигать этический подход к практике своей профессии

7. Технология, стандарт и сертификация. Роль стандартов в программной инженерии.

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

Технология - Происходит от греческого téchne (искусство, мастерство) и логия (знание, умение). Определяется как:

  • совокупность приёмов и способов получения, обработки или переработки сырья, материалов, полуфабрикатов или изделий, осуществляемых в различных отраслях промышленности, в строительстве и т. д.;

  • научная дисциплина, разрабатывающая и совершенствующая такие приёмы и способы;

  • сами операции добычи, обработки, переработки, транспортирования, складирования, хранения, которые являются основной составной частью производственного процесса;

  • описание производственных процессов;

  • инструкции по их выполнению;

  • технологические правила, требования, карты, графики и др.

Иными словами – это подробное описание того, как надо изготовлять то или иное изделие и наука о составлении таких описаний.

Стандарт - Происходит от английского standard - норма, образец, мерило. Это:

    • утверждаемый компетентным органом нормативно-технический документ, устанавливающий комплекс норм, правил по отношению к предмету стандартизации;

    • типовой образец, эталон, модель, принимаемые за исходные для сопоставления с ними других предметов.

Стандарт может быть разработан на

  • материально-технические предметы (продукцию, эталоны, образцы веществ);

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

Пример: Вузы работают в соответствии с государственными образовательными стандартами, представленными в виде паспортов специальностей.

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

Сертификация в переводе с латыни означает "сделано верно". Для того чтобы убедиться в том, что продукт "сделан верно", надо знать:

  • каким требованиям он должен соответствовать

  • каким образом возможно получить достоверные доказательства этого соответствия

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

Заявление поставщика о соответствии:

  • означает, что поставщик (изготовитель) под свою личную ответственность сообщает о том, что его продукция отвечает требованиям конкретного нормативного документа

  • содержит следующие сведения:

адрес изготовителя, представляющего заявление-декларацию,

обозначение изделия и дополнительную информацию о нем;

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

указание о личной ответственности изготовителя за содержание заявления и др.

Заявление не является гарантией на соответствие стандарту. Заявление отражает готовность нести ответственность.

Сертификация соответствия:

  • предполагает обязательное участие третьей стороны

  • осуществляется по правилам определенной процедуры, включающей обязательные испытания на соответствие стандарту

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

Систему сертификации (в общем виде) составляют:

  • центральный орган который управляет системой, проводит надзор за ее деятельностью и может передавать право на проведение сертификации другим органам; правила и порядок проведения сертификации;

  • нормативные документы, на соответствие которым осуществляется сертификация;

  • процедуры (схемы) сертификации;

  • порядок инспекционного контроля.

Системы сертификации могут действовать на национальном, региональном и международном уровнях.

8. Основные стандарты программной инженерии и кто их разрабатывает?

Среди всего многообразия стандартов принято выделять следующие основные типы стандартов:

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

В IT сфере известны стандарты, разработанные Microsoft, Intel, IBM.

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

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

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

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

ISO - International Organization for Standardization – Международная организация по стандартизации. Наиболее представительная и влиятельная организация, разрабатывающая стандарты почти во всех областях деятельности, в том числе и в IT.

ACM - Association for Computing Machinery –Ассоциация по вычислительной технике. Всемирная научная и образовательная организация в области вычислительной технике. Известна также и разработкой образовательных стандартов.

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

PMI - Project Management Institute - Международный Институт Проектного Менеджмента (Управления Проектами). Некоммерческая организация, целью которой является продвижение, пропаганда, развитие проектного менеджмента в разных странах. PMI разрабатывает стандарты проектного менеджмента, занимается повышением квалификации специалистов.

IEEE - Институт инженеров по электронике. Поддержка научных и практических разработок в области электроники и вычислительной техники. Большие вложения в разработку стандартов в этой области.

9. Жизненный цикл программного продукта. Процесс, действие, задача жизненного цикла. Этапы ЖЦ и их связь с процессами.

Появление понятия жизненного цикла ПО было связано с кризисом программирования, который наметился в конце 60-х – начале 70-х годов прошлого века. Суть кризиса состояла в том, что программные проекты все чаще стали выходить из-под контроля: нарушались сроки, превышались запланированные объемы финансирования, результаты не соответствовали требуемым. Многие проекты вообще не доводились до завершения. Кроме того, оказалось, что недостаточно разработать программу, а надо ее еще сопровождать и этап сопровождения часто требует больше средств, чем разработка.

Жизненный цикл программного продукта (software life cycle) – это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации

Процесс (process): Набор взаимосвязанных работ, которые преобразуют исходные данные в выходные результаты.

В соответствии со стандартом ISO 12207 процессы ЖЦ делятся на три группы:

  • Основные

  • Вспомогательные

  • Организационные

В соответствии с новой классификацией в трех группах процессов вводятся пять категорий процессов:

  • Основные процессы:

    • CUS: Потребитель-поставщик

    • ENG: Инженерная

  • Вспомогательные процессы:

    • SUP: Вспомогательная

  • Организационные процессы:

    • MAN Управленческая

    • ORG: Организационная

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

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

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

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

В этих определениях существенным является следующее:

  • Состав, количество и, можно добавить, порядок выполнения фаз определяется особенностью проекта.

  • Каждая фаза завершается получением одного из основных результатов, в то время как процесс или задача – просто значимого результата

Этапы:

  1. Формирование требований к АС

  • Обследование объекта и обоснование необходимости создания АС

  • Формирование требований пользователя к АС

  • Оформление отчета о выполнении работ и заявки на разработку АС

  1. Разработка концепции АС

  • Изучение объекта

  • Проведение необходимых научно-исследовательских работ

  • Разработка вариантов концепции АС и выбор варианта концепции АС, удовлетворяющего требованиям пользователей

Оформление отчета о проделанной работе

  1. Техническое задание

  • Разработка и утверждение технического задания на создание АС

  1. Эскизный проект

  • Разработка предварительных проектных решений по системе и ее частям

  • Разработка документации на АС и ее части

  1. Технический проект

  • Разработка проектных решений по системе и ее частям

  • Разработка документации на АС и ее части

  • Разработка и оформление документации на поставку комплектующих изделий

  • Разработка заданий на проектирование в смежных частях проекта

  1. Рабочая документация

  • Разработка рабочей документации на АС и ее части

  • Разработка и адаптация программ

  1. Ввод в действие

  • Подготовка объекта автоматизации

  • Подготовка персонала

  • Комплектация АС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами, информационными изделиями)

  • Строительно-монтажные работы

  • Пусконаладочные работы

  • Проведение предварительных испытаний

  • Проведение опытной эксплуатации

  • Проведение приемочных испытаний

  1. Сопровождение АС.

  • Выполнение работ в соответствии с гарантийными обязательствами

  • Послегарантийное обслуживание

10. Основные процессы жизненного цикла ПО.

ISO 12207.

К числу основных относятся процессы:

  • Заказа. Определяет работы заказчика, то есть организации, которая приобретает систему, программный продукт или программную услугу.

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

  • Разработки. Определяет работы разработчика, то есть организации, которая проектирует и разрабатывает программный продукт.

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

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



Скачать документ

Похожие документы:

  1. «Программное обеспечение компьютера»

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

    Документ
    В конце 60-х – начале 70-х годов прошлого века произошло событие, которое вошло в историю как первый кризис программирования. Событие состояло в том, что стоимость программного обеспечения стала приближаться к стоимости аппаратуры
  3. Лекция Введение в информатику  > Что такое инфоpматика? Термин "информатика" (франц informatique ) (1)

    Лекция
    Термин "информатика" (франц. informatique) происходит от французских слов information (информация) и automatique (автоматика) и дословно означает "информационная автоматика".
  4. Губанов Юрий Александрович, mail Критерии зачёта min 50% посещаемость доклад

    Доклад
    Основная задача курса — дать студентам разносторонний и по возможности полный обзор вопросов, из которых состоит предмет "программной инженерии" (software engineering).
  5. Методические рекомендации по внедрению и использованию свободного программного обеспечения в образовательных учреждениях Российской Федерации. Москва 2010

    Методические рекомендации
    Свободное программное обеспечение (СПО) — это программное обеспечение, распространяемое на условиях так называемых открытых или свободных лицензий. Одной из них является, например, лицензия GNU General Public License (GNU GPL).

Другие похожие документы..