Цена программной ошибки сегодня неизмеримо возросла: взрываются ракеты, нарушаются графики движения поездов, наконец, гибнут пациенты клиник... С ростом сложности прикладных систем, расширением сфер их применения и увеличением жизненного цикла программ все меньше оказывается специалистов, досконально знающих целое. Несмотря на то, что имеется документация и более-менее подробные инструкции, описывающие детали реализации, растет вероятность ошибок в сложных программных комплексах. В этих условиях на первый план выходят технологии и методики, направленные на предотвращение ошибок и непрерывное отслеживание качества ПО.
Данный номер журнала, тема которого "Качество программного обеспечения", содержит шесть статей, посвященных разным аспектам качества, технологиям тестирования и построения надежного ПО. Прежде всего стоит обратить внимание читателей на статью "Мифы о безопасном ПО: уроки знаменитых катастроф", весьма ярко описывающую последствия халатного отношения производителей к созданию критически важных приложений. Все примеры в статье относятся к зарубежным системам — в России всегда была очень сильная школа mission-critical систем, вполне конкурентоспособная на общем мировом фоне. Отрадно, что и в нынешние турбулентные времена у нас сохранились работоспособные коллективы, однако и в авариях недостатка тоже нет.
Одна из причин появления все новых ошибок в ПО коренится в естественном стремлении разработчиков к повторному использованию готовых программных модулей. Однако в этой связи становится очевидной необходимость пересмотра всей стратегии поддержки ПО — статья "Сопровождение компонентных систем" дает обзор основных проблем, связанных с сопровождением компонентного ПО.
Понятие "контрактного проектирования" (Design by Contract), введенное автором статьи "Построение надежного объектно-ориентированного ПО. Введение в контрактное проектирование" для описания систематического подхода к созданию надежного ПО, столь же важно для ОО парадигмы, как и классы, объекты, наследование и полиморфизм. Для того, чтобы быть уверенным в надлежащей работе объектной программы необходим систематический подход к специфицированию и реализации программных сущностей и их взаимосвязей в программной системе. Статья была предложена редакции Бертраном Мейером — основателем и президентом компании Interactive Software Engineering, одним из признанных классиков объектного подхода, автором языка Eiffel, написавшим десяток книг.
В статье "Добротность программ и информационных потоков", отражающей точку зрения представителей новосибирской школы программирования на качество ПО, вводится понятие добротности как важной внутренней характеристики программных систем, соответствующей различным аспектам качества ПО. Приводится классификация критериев добротности и различных видов требований, соответствующих прагматическим критериям.
Блок концептуальных и обзорных статей дополняют две публикации "Тестирование ПО как один из элементов системы качества" и "Система контроля этапов жизненного цикла ПО", содержащие описание конкретного опыта создания качественного, с точки зрения авторов, программного обеспечения.
Серию тематических статей продолжает публикация "Знак качества программному продукту" из рубрики "Стандарты", посвященная технологии получения сертификата качества на программы. Даже несмотря на действие рыночных механизмов естественного отбора, когда качество продукта определяет спрос на него, серьезные компании стремятся не только обеспечить качество, но и подтвердить его официально, получив сертификат. Иначе говоря, компании добровольно сдают экзамены и проходят проверку, цель которой — демонстрация работающей у них системы управления и обеспечения качеством. Наличие такой системы и соответствующего сертификата служит определенной гарантией доверия его обладателю со стороны клиентов и партнеров.
Статья "Тенденции индустрии встроенных микропроцессоров" посвящена перспективам такой стремительно развивающейся отрасли как встроенные системы и комплексы реального времени.
Жанр статьи "Страсти по качеству ПО" дает возможность читателю по-иному взглянуть на рассматриваемый вопрос.
Как построить эффективную работу с большими обьемами данных? Как организовать постоянный информационный поток между разными структурами подразделения или распределенной компании или, хотя бы, внутри отдела? Один из возможных ответов, основанных на анализе конкретного опыта обработки массивов правовой информации можно найти в статье "Комплекс аналитических средств для принятия правовых решений".