Виды ошибок при разработке программ

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

Основные типы ошибок

Синтаксические ошибки

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

Ошибки времени выполнения

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

Типичные ошибки при разработке приложений, работащих с PostgreSQL / Иван Фролков

Логические ошибки

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

Типичные ошибки в программировании

При написании кода программы новички могут допустить следующие ошибки:

  • Изобретение неоправданных алгоритмов.
  • Склонность к «красивым» решениям, которые не являются эффективными.
  • Использование объектов не по назначению.
  • Пренебрежение стилю написания кода, форматированию, названию переменных и объектов.
  • Недостаточное или некорректное комментирование кода.

Типы ошибок в разработке программ на языке С#

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

Программные ошибки

Программная ошибка — это проблема, возникающая в процессе работы программы и нарушающая её функционал. Большинство программных ошибок производятся программистом при написании кода. Программист может наблюдать следующие типы программных ошибок:

  • Синтаксические ошибки
  • Логические ошибки
  • Ошибки времени выполнения

Способы предотвращения ошибок

Для минимизации ошибок в программном коде следует использовать следующие практики:

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

Вывод

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

Курс Excel_Базовый — Урок №16 Виды ошибок. Исправление ошибок

Какого типа ошибки могут возникать в программе

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

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

Какие бывают программные ошибки

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

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

Какие могут быть ошибки при создании программ

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

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

При разработке программы могут возникнуть различные типы ошибок, которые могут затруднить или нарушить ее работу. Одним из основных типов ошибок являются синтаксические ошибки — это ошибки, связанные с нарушением синтаксических правил языка программирования. Вторым типом ошибок являются runtime errors, или ошибки времени выполнения, которые возникают в процессе выполнения программы, когда что-то идет не так. Являются также ошибки логики, при которых программа может работать без ошибок, но результат ее работы не будет соответствовать ожидаемому. Для предотвращения возможных ошибок необходимо тщательно планировать и анализировать каждый шаг при создании программы, а также тестировать ее на различных уровнях.

Читайте также:
Черный ящик программа информатика

Источник: selhozinstitut.ru

Классификация программных ошибок

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

Работа содержит 1 файл

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

Классификация ошибок с точки зрения тестировщика

В Главе 5 книги [5] приводится форма отчета о тестировании, в котором предлагается типизация выявленных проблем, которая может служить классификацией ошибок с точки зрения тестировщика.

  1. Ошибки кодирования.
  2. Ошибки проектирования.
  3. Предложения тестировщика по улучшению программы.
  4. Расхождение с документацией.
  5. Взаимодействие с аппаратурой.
  6. Поведение программы, вызывающее вопросы тестировщика.

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

Вероятность ошибки такого отнесения также высока. Следствием подобных ошибок в классификации будет увеличение время отладки программы, так как программные ошибки будут направляться на исправление не тем сотрудникам или подразделениям, которые на самом деле должны ими заниматься. Для предотвращения подобных ситуаций могут применяться системы автоматизированной классификации ошибок, позволяющие быстро оценивать серьезность ошибок, информировать об их возникновении нужных специалистов и т.д. Вопросы построения такого рода систем, в основу работы которых положен анализ сообщений об ошибках, рассмотрены в работе [8]. Их функционирование должно опираться на использование методов и моделей искусственного интеллекта (в частности методов классификации текстов).

Классификация ошибок по степени их критичности

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

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

Классификация может быть следующей.

Разрушение системы (Causes crash) — Под ним объединяют все те ошибки в программе, которые могут вызвать крах или зависание всей системы, нарушить стабильность ее работы.

Косметические (Cosmetic) — под этим понятием объединяют ошибки дизайна (например, не тот цвет линии или шрифт), пользовательского интерфейса и т.п., которые не мешают работать программе, но портят ее «товарный вид».

Критические (Critical) – ошибки, которые приводят к «зависанию» или «падению» самой программы, не затрагивая операционной системы в целом.

Error Handling — ошибки при обработке ошибок.

Functional — ошибки функциональности, не относящиеся к критическим.

Setup — ошибки инсталляции.

Suggestion – предложения по улучшению программы (так называемые «фичи» (feature).

Во многих отраслевых и корпоративных стандартах для ответственных систем принят подобный принцип классификации ошибок, который является главным. Так стандарт DO-178B, предназначенный для сертификации ПО авиационного электронного оборудования, выделяет следующие категории аварийных ситуаций (сбоев, ошибок) по степени их негативного воздействия на самолет, экипаж и пассажиров. Оставлено без перевода, так как нам гораздо важнее принцип классификации, нежели перевод терминов конкретной предметной области.

Catastrophic — Failure may cause a crash.

Hazardous — Failure has a large negative impact on safety or performance, or reduces the ability of the crew to operate the plane due to physical distress or a higher workload, or causes serious or fatal injuries among the passengers.

Major — Failure is significant, but has a lesser impact than a Hazardous failure (for example, leads to passenger discomfort rather than injuries).

Minor — Failure is noticeable, but has a lesser impact than a Major failure (for example, causing passenger inconvenience or a routine flight plan change)

No Effect — Failure has no impact on safety, aircraft operation, or crew workload.

В зависимости от того, какого рода ошибки могут встретиться в конкретной программе, определяется ее уровень. От этого уровня зависят требования, которые предъявляются к ее тестированию и верификации.

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

Классификация ошибок в зависимости от их места в жизненном цикле программного изделия

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

Можно наметить следующую схему такой классификации.

  1. Ошибки при постановке задачи и при составлении ТЗ.
  2. Ошибки проектирования.
  1. Ошибки в структуре ПО.
  2. Ошибки функциональности отдельных модулей.
  3. Ошибки программных интерфейсов.
  4. Ошибки в спецификациях программ.
  5. Недостатки программы и методики тестирования.
  6. Ошибки при выборе средств разработки и управления проектом.
  1. Опечатки при кодировании.
  2. Ошибки при реализации спецификаций.
  3. Не выполнение критериев добротности программы.
  4. Недостатки оформления и документирования исходных текстов.
  1. Не реализована полностью программа и методика тестирования.
  2. Не все ошибки отражены в отчете.
  3. Не все ошибки исправлены.
  4. Недостатки в документировании ошибок.
  1. Отсутствие системы сбора ошибок и пожеланий пользователей.
  2. Не все ошибки фиксируются.
  3. Отсутствует единые принципы ведения и форматы документов об ошибках.
  4. Ошибки исправляются не оперативно.
  5. Обновление системы осуществляется некорректно.
  6. Исправление одних ошибок приводит к появлению других.
Читайте также:
Как отключить программу мультибонус в Почта банке через приложение

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

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

Также заслуживает внимания и п.3.3, приведенной классификации. Обычно на этом этапе разработки ПО речь идет о плохом стиле программирования. Это понятие до сих пор слабо формализовано и понимается программистами и теоретиками программирования по-разному. Введенное И.В.

Поттосиным понятие добротности программы [9] является более емким понятием, характеризующим высококачественное кодирование, нежели, чем понятие стиля программирования. Рассмотрение всего круга вопросов, связанного с добротностью программ и ошибок (недостатков) программы, которые снижают характеристики ее добротности требуют отдельного рассмотрения.

Классификация программных ошибок (багов) с точки зрения субъективного восприятия их программистами

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

В Интернете можно найти несколько вариантов такого рода классификаций программных ошибок. Вот некоторые фрагменты, взятые из классификации статьи [10].

«Бозебаг — это скопление ошибок в каком-то конкретном месте исполняемого кода, бесконечное их число.

Борбаг — ошибка, которая, в противоположность гейзенбагу, не исчезает и не меняет своих свойств при попытке её обнаружения. Данный тип ошибки характеризуется как устойчивый и поэтому назван в честь атомной модели, разработанной Нильсом Бором.

Гейзенбаг — тип ошибки, которая исчезает или меняет свои свойства при попытке её обнаружения.

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

Дзенбаг — это такая ошибка, которая, в общем-то, ни на что не влияет, но при этом ошибкой всё же является.

Шрёдинбаг — один из самых интересных типов ошибок, который никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на него в исходном коде или попытается использовать программу в необычных условиях и осознаёт, что система вообще не могла работать при наличии такой ошибки. После этого программа перестаёт работать вообще до тех пор, пока ошибка не будет исправлена.

Хотя это звучит невероятно, некоторые программы содержат в себе латентные шрёдинбаги. Слово «шрёдинбаг» происходит от мысленного эксперимента с котом Шрёдингера. Забавным примером можно считать историю о старике и бороде (хотя само название «шрёдинбаг» в ней, разумеется, не упомянуто).

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

В статье [11] дается, например, такое «определение» программных ошибок и весьма оригинальная метрика качества программы:

Источник: www.stud24.ru

Источники ошибок в программных средствах

Человеку свойственно ошибаться. Сенека Лекция 2. ИСТОЧНИКИ ОШИБОК В ПРОГРАММНЫХ СРЕДСТВАХ Интеллектуальные возможности человека, используемые при разработке программных систем. Понятия о простых и сложных системах, о малых и больших системах.

Неправильный перевод информации из одного представления в другое — основная причина ошибок при разработке программных средств. Модель перевода и источники ошибок. · Интеллектуальные возможности человека. Дейкстра [2.1] выделяет три интеллектуальные возможности человека, используемые при разработке ПС:

Рекомендуемые материалы

Тест 2 верен на 95%

Программирование и алгоритмизация

Ответы на Аттестацию официального партнера amoCRM 2023

Информатика

Ответы на экзамен верны на 100%

Программирование и алгоритмизация

220 189 руб.

Вариан 24 — ДЗ №3 — Программирование на С++ с использованием классов

Объектно-ориентированное программирование (ООП)

699 290 руб.

Вариант 24 — ДЗ №1 — Программирование на ObjectPascalс использованием классов

Объектно-ориентированное программирование (ООП)

699 290 руб.

Расчетно-графическая работа по курсу «Программирование». Семинар 2. Овладение навыками обработки символьных данных.. Вариант 22

Программирование и алгоритмизация

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

Эта способность весьма ограничена — в среднем человек может уверенно (не сбиваясь) перебирать в пределах 1000 предметов (элементов). Человек должен научиться действовать с учетом этой своей ограниченности.

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

Читайте также:
Список программ для wot

При разработке ПС человек имеет дело с системами. Под системой будем понимать совокупность взаимодействующих (находящихся в отношениях) друг с другом элементов. ПС можно рассматривать как пример системы. Логически связанный набор программ является другим примером системы. Любая отдельная программа также является системой.

Понять систему — значит осмысленно перебрать все пути взаимодействия между ее элементами. В силу ограниченности человека к перебору будем различать простые и сложные системы [2.2].

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

При разработке ПС мы не всегда можем уверенно знать о всех связях между ее элементами из-за возможных ошибок. Поэтому полезно уметь оценивать сложность системы по числу ее элементов: числом потенциальных путей взаимодействия между ее элементами, т.е. n! , где n — число ее элементов.

Систему назовем малой, если n < 7 (6! = 720 < 1000), систему назовем большой, если n > 7. При n=7 имеем промежуточный класс систем. Малая система всегда проста, а большая может быть как простой, так и сложной. Задача технологии программирования — научиться делать большие системы простыми. Полученная оценка простых систем по числу элементов широко используется на практике.

Так, для руководителя коллектива весьма желательно, чтобы в нем не было больше шести взаимодействующих между собой подчиненных. Весьма важно также следовать правилу: «все, что может быть сказано, должно быть сказано в шести пунктах или меньше».

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

При разработке и использовании ПС мы многократно имеем дело [2.3, стр. 22-28] с преобразованием (переводом) информации из одной формы в другую (см. рис.2.1). Заказчик формулирует свои потребности в ПС в виде некоторых требований.

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

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

Везде здесь, а также в ряде других процессах разработки ПС, имеет место указанный перевод информации. Рис. 2.1. Грубая схема разработки и применения ПС.

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

Модель перевода. Чтобы понять природу ошибок при переводе рассмотрим модель [2.3, стр. 22-28], изображенную на рис.2.2. На ней человек осуществляет перевод информации из представления A в представление B. При этом он совершает четыре основных шага перевода: Рис.2.2.

Модель перевода. · он получает информацию, содержащуюся в представлении A, с помощью своего читающего механизма R; · он запоминает полученную информацию в своей памяти M; · он выбирает из своей памяти преобразуемую информацию и информацию, описывающую процесс преобразования, выполняет перевод и посылает результат своему пишущему механизму W; · с помощью этого механизма он фиксирует представление B. На каждом из этих шагов человек может совершить ошибку разной природы. На первом шаге способность человека «читать между строк» (способность, которая часто оказывается полезной, позволяя ему понимать текст, содержащий неточности или даже ошибки) может стать причиной ошибки в ПС.

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

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

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

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

2.1. Что такое простая и сложная системы? 2.2. Что такое малая и большая системы? Литература к лекции 2. 2.1. Э. Дейкстра.

Заметки по структурному программированию / У. Дал, Э. Дейкстра, К. Хоор. Структурное программирование. — М.: Мир, 1975. — С. 7-19. 2.2. Е.А. Жоголев. Технологические основы модульного программирования. // Программирование, 1980, #2. — С. 44-49.

1. Г. Майерс. Надежность программного обеспечения. — М.: Мир, 1980.

Источник: studizba.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru