Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Отсутствие ошибок как критерий качества




Критерии качества ПО

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

Возникает вопрос, что понимать под высококачественным ПО? Часто под этим понимают создание «правильных программ», т.е. программ, не содержащих ошибок. Однако что понимать под ошибкой? Оказывается, дать формальное определение этого понятия невозможно. Наиболее логичным представляется считать, что в программе имеется ошибка, если она не выполняет того, что указано в документации по применению этой программы. Поскольку такие документы являются плохо формализованными, то и понятие ошибки в программе является существенно не формальным. В ПО программы и документация взаимно увязаны, образуют некоторую целостность. Поэтому правильнее говорить об ошибке не в программе, а в ПО в целом: будем считать, что в ПО имеется ошибка ($о/(\уаге еггог), если оно не выполняет того, что разумно ожидать от него пользователю. Разновидностями ошибок в ПС можно отметить:

1) несогласованность между программами ПО и документацией по их

применению;

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

- инженеры работают в условиях ограниченных ресурсов: временных, финансовых и организационных (оборудование, техника, люди). <Иными словами, продукт должен быть создан в установленные сроки, в рамках выделенных средств, оборудования и людей. Хотя это в первую очередь относится к созданию заказных продуктов (оговаривается в условиях контракта), но при создании коробочных продуктов эти ограничения имеют не меньшее значение, т.к. здесь они диктуются условиями рыночной конкуренции;».

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

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

В чем отличие программной инженерии от других инженерных дисциплин?

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

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

- стоимость программы = стоимости ее проектирования;

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

- стоимость заказных продуктов остается высокой.

Второе существенное отличие заключается в том, что компьютерная программа - искусственный объект в том смысле, что для нее нет объективных законов, которым подчинялось бы ее поведение. <Например. у инженера—строителя есть объективные законы строительной механики: равновесия моментов и сил. устойчивости механических систем и т.д. Инженер-строитель может проверить свои архитектурные решения на соответствие этим законам и тем самым обеспечить удачу проекта. Эти законы объективны, они будут действовать всегда. У программного инженера на первый взгляд также есть типовые, проверенные временем архитектурные решения (например, клиент-серверная архитектура). Но эти решения определяются уровнем развития вычислительной техники (и адекватным им уровнем требований). С появлением техники с принципиально новыми возможностями программному инженеру придется искать новые решения. >

Прямым следствием отсутствия возможности «теоретического» контроля проекта является то, что тестирование продукта это

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

Ну и наконец, программная инженерия - молодая дисциплина, опыт которой насчитывает всего несколько десятков лет. По сравнению с опытом строительной инженерии (тысячелетия) это конечно очень мало. <Программную инженерию иногда сравнивают с ранней строительной, когда законы строительной механики еще не были известны и строительные инженеры действовали методом проб и ошибок, накапливая бесценный опыт. > Несмотря на МОЛОДОЙ возраст, программная инженерия также накопила определенный опыт, который позволяет (при разумном его применении) делать удачные проекты. Этот опыт выражен в основных принципах программной инженерии, которые мы с вами сейчас рассмотрим.




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 514; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.