Cтраница 2
Возможность управления доступом позволяет увеличить надежность программного обеспечения. Она аналогична использованию атрибута INTENT ( IN) для формального аргумента подпрограммы, запрещающего его изменение. [16]
Публикации определенным образом влияют на надежность программного обеспечения. Прочитав руководство, пользователь начнет работать с программой и обнаружит, что она ведет себя не так, как он ожидал - это и является, по определению, ошибкой в программе. [17]
Один из лучших способов повысить надежность программного обеспечения в нынешних или будущих проектах - очевидный, но часто упускаемый из виду процесс обучения на сделанных ошибках. Каждую ошибку следует внимательно изучить, чтобы понять, почему она возникла и что должно было быть сделано, чтобы ее предотвратить или обнаружить раньше. Редко можно встретить программиста или организацию, которые выполняли бы такой полезный анализ, а когда он проводится, то обычно имеет поверхностный характер и сводится, например, к классификации ошибок: ошибки проектирования, логические ошибки, ошибки сопряжения или другие, не имеющие особого смысла категории. [18]
В этой книге рассматриваются концепции надежности программного обеспечения, принципы проектирования надежных программных средств, их испытания, а также ряд смежных вопросов, касающихся методов управления разработками, эффективности языков программирования, влияния языков и архитектуры ЭВМ на надежность программ, доказательство правильности функционирования программ и моделей надежности. Однако вопросы гарантирования качества программного обеспечения не затрагиваются. Все рассмотренные в книге вопросы характеризуются равной глубиной анализа и степенью сложности, дается много полезных контрольных вопросников и большое количество примеров, однако упражнения для читателей отсутствуют. Книга написана в непринужденной манере В доставляет удовольствие при чтении. [19]
Первая на русском языке монография по надежности программного обеспечения. Разработка программного комплекса рассматривается в книге во всей полноте - от подготовки технического задания до документации отдельных модулей. Ценно, что теоретическое исследование каждой проблемы сопровождается конкретными рекомендациями по ее решению. Каждая глава завершается библиографией, содержащей важнейшие работы по затронутым в главе вопросам. [20]
Среди множества идей, которые касаются надежности программного обеспечения, не нужно забывать о важном и часто недооцениваемом факторе: позиции ( или психологии) программиста. Нас особенно интересуют следующие два аспекта этого вопроса: позиция программиста по отношению к продукту его труда и его точка зрения на роль процесса компиляции. [21]
Наилучшее, что компилятор может сделать для надежности программного обеспечения - обнаруживать все синтаксические ошибки. [22]
При оценке надежности АСУТП трудно учесть уровень надежности программного обеспечения, и уровень надежности действий персонала АСУТП. Поэтому в документе Проектная оценка надежности системы, как правило, указываются сведения по оценке надежности АСУТП только с учетом надежности комплекса технических средств. [23]
Первое с чем мы сталкиваемся при анализе надежности программного обеспечения - это проблема определения: что такое ошибка в программном обеспечении и что такое надежность программного обеспечения. [24]
Безопасность доступа к данным в значительной степени определяет надежность программного обеспечения. Опасная практика заключается, например, в бесконтрольном использовании указателей ( что ведет к заблу-дившимвя и висячим ссылкам), в отсутствии контроля трактовки внутреннего представления при использований записей с вариантами, в нарушении механизма контроля типов с помощью трюков. [25]
Второй термин, который следует определить - это надежность программного обеспечения. Мы опять начнем с исследования известного определения, согласно которому надежность есть вероятность того, что при функционировании системы в течение некоторого периода времени не будет обнаружено ни одной ошибки. Основной недостаток такого определения - это то, что в нем не учтено различие между ошибками разных типов. По своим последствиям эти ошибки далеко не одинаковы, поэтому надежность должна быть определена как функция не только частоты ошибок, но и их серьезности. [26]
В настоящее время не существует стандартных методов расчета надежности программного обеспечения, подобных разработанным для аппаратуры, хотя эта задача для программного обеспечения стоит еще более остро, чем для аппаратуры. Тем не менее программные ошибки принято относить к ошибкам проектирования, и в этом случае предсказание значения интенсивности отказов становится весьма затруднительным. [27]
Поставщики вычислительной техники обычно отказываются давать какие-либо оценки надежности программного обеспечения и по числу ошибок, с которыми, возможно, столкнется пользователь и по возможному их влинянию на функционирование всей системы. Такая позиция совершенно естественна, поскольку невозможно предвидеть и заранее удовлетворить все требования пользователя или дать гарантии, что не существует ошибок, приводящих к отказу всей системы. Кроме того, те же производители часто готовы оценивать надежность оборудования, обычно игнорируя многочисленные сложности, о которых уже говорилось в нашей книге, и, сталкиваясь с ошибками проектирования, знают, какие усовершенствования следует разработать и внести в конструкцию с тем, чтобы обеспечить практическое достижение предсказанной надежности. Что касается программного обеспечения, большинство ошибок в котором считается ошибками проектирования, то пользователи, встречающиеся с отказами относительно высокого уровня, обычно получают соответствующую помощь, а те, кто в подобных случаях выражет свое недовольство особенно сильно, имеют даже больше. В конце концов все-таки достигается приемлемый уровень надежности. [28]
Безопасные ПЛК имеют специальные средства для проверки правильности и надежности программного обеспечения. [29]
Это первая в мировой литературе книга, целиком посвященная надежности программного обеспечения и не без оснований претендующая на освещение практически всей совокупности факторов, существенно влияющих на этот важнейший показатель. Автор настаивает на том, что повышение надежности - самый выгодный путь к снижению общих затрат, связанных с программным обеспечением. Выбрав надежность основным критерием качества окончательного программного продукта, автор получает точный ориентир для отбора технологических рекомендаций, составляющих сущность книги. [30]