
- •Методы достижения качества
- •Сертификация и аттестация
- •1. Компонентный состав:
- •2. Функциональная полнота:
- •3. Степень зависимости от субд:
- •4. Тип используемой модели:
- •Принципы разработки
- •2. Учет возможностей аппаратных и программных средств разработчика и пользователя.
- •Международный стандарт жизненного цикла
- •1. Процесс приобретения
- •2. Разработка системы и программного средства
- •3. Эксплуатация системы и программного средства
- •4. Сопровождение и развитие системы и программного средства
- •5. Управление проектом и обеспечение качества системы и программного средства
- •6. Интегральные процессы поддержки разработки программных средств
- •2. Эскизный проект
- •3. Технический проект
- •4. Рабочий проект
- •5. Внедрение
- •Каскадная модель
- •Каскадная модель с промежуточным контролем
- •Модель разработки программных средств на основе ранее созданных компонентов
- •Эволюционная модель
- •Модель пошаговой разработки программных средств
- •Спиральная модель
- •Методология быстрой разработки приложений (rad)
2. Эскизный проект
Разработка эскизного проекта. Предварительная разработка структуры входных и выходных данных. Уточнение методов решения задачи. Разработка общего описания алгоритма решения задачи. Разработка технико-экономического обоснования.
Утверждение эскизного проекта. Разработка пояснительной записки. Согласование и утверждение эскизного проекта.
3. Технический проект
Разработка технического проекта. Уточнение структуры входных и выходных данных. Разработка алгоритма решения задачи. Определение формы представления входных и выходных данных. Определение семантики и синтаксиса языка. Разработка структуры программы. Окончательное определение конфигурации технических средств.
Утверждение технического проекта. Разработка плана мероприятий по разработке и внедрению программ. Разработка пояснительной записки. Согласование и утверждение технического проекта.
4. Рабочий проект
Разработка программы. Программирование и отладка программы.
Разработка программной документации. Разработка программных документов в соответствии с требованиями ГОСТ 19.101–77.
Испытания программы. Разработка, согласование и утверждение программы и методики испытаний. Проведение предварительных государственных, межведомственных и других видов испытаний. Корректировка программы и программной документации по результатам испытаний.
5. Внедрение
Подготовка и передача программы. Подготовка и передача программы и программной документации для сопровождения и (или) изготовления. Оформление и утверждение акта о передаче программы на сопровождение и (или) изготовление. Передача программы в фонд алгоритмов и программ.
Допускается исключать вторую стадию разработки, а в технически обоснованных случаях – вторую и третью стадии. Необходимость проведения этих стадий указывается в техническом задании.
Допускается объединять, исключать этапы работ и (или) их содержание, а также вводить другие этапы работ по согласованию с заказчиком.
9. Определение, назначение и принципы структурного программирования.
Структурное программирование – это программирование в соответствии с заранее определенным набором правил и принципов, облегчающих восприятие и отладку программ, повышающих их надежность, гибкость и эффективность.
Принципы структурного программирования
1. Модульное программирование – процесс разбиения программы на отдельные программные модули (базовые классы, процедуры, функции, ActiveX – элементы, COM/DCOM‑компоненты и др.). Свойства модуля: возникает в результате отдельной компиляции; вызывается по имени; возвращает управление тому, кто его вызывал; может обращаться к другим модулям, непосредственно нижестоящим в схеме иерархии; должен быть небольшого размера; должен иметь один вход и один выход; не должен сохранять историю вызовов для управления своим функционированием; обладает единственной функцией; должен быть независимым от других модулей; должен содержать тесно связанные элементы; должен проверять аргументы; при возникновении в модуле ошибок управление должно возвращаться обратно; должен быть замкнутым.
2. Проектирование и кодирование (программирование) сверху вниз. Если проект большой, то он разбивается на части, представляющие собой древовидную структуру (схема иерархии). Сначала задача описывается на естественном языке, в дальнейшем проект постепенно уточняется, и на каждом шаге выявляются детальные функции. Таким образом, задача разбивается на подзадачи до тех пор, пока они не станут настолько простыми, что каждой из них будет соответствовать один программный модуль.
Достоинства: хорошая комплексная отладка; заказчик участвует в проектировании; промежуточные результаты можно показать заказчику.
Недостатки: слабая автономная отладка модулей; наличие программ-заглушек, которые имитируют работу несуществующих программ нижнего уровня.
Обычно для больших проектов применяется метод «сэндвича». Для одних частей используется метод нисходящего, а для других – метод восходящего проектирования.
3. Защитное программирование. Это такой стиль написания программ, при котором появляющиеся ошибки легко обнаруживаются и идентифицируются программистом. Средства защитного программирования: все входные данные или действия пользователя подлежат обязательной проверке (принцип «всеобщего недоверия»); немедленное обнаружение ошибок; изолирование и минимизация последствий ошибок. Для предотвращения ошибок в программе рекомендуется не применять непроверенные способы программирования. Не используйте принцип умолчания значений (когда при отсутствии параметра программа принимает его определенное значение), так как они могут изменяться в новых версиях. Не допускайте зависимости программ от недостоверности данных. Стремитесь минимизировать число обращений к пользователю.
Тестирование – процесс обнаружения ошибок программы. Тестовые примеры разрабатываются постановщиком на этапе разработки алгоритма. Обычно вместо одного теста готовится целая серия тестов. Рекомендуется тестирование сверху вниз. Первый тест должен быть простым, так как он показывает работу программы вообще. Следующие тесты, предназначенные для проверки общей организации программы, обеспечивают обнаружение грубых ошибок. Повторно тестируйте исправленный код. Ведите журнал обнаруженных ошибок и изменений программы.
Этапы тестирования:
Проверка в нормальных условиях для характерной совокупности допустимых значений.
Проверка в экстремальных условиях в приграничных областях допустимых значений (граничные допустимые значения, нулевые данные, пустые циклы, массивы, файлы).
Проверка в исключительных ситуациях в областях недопустимых значений.
С целью выявления ошибок организуется сквозной структурный контроль (просмотр). В этом случае собираются 4–6 специалистов, которые получают необходимые материалы за 5–7 дней до начала совещания. Время совещания ограничивается двумя часами. Ведущий совещание обеспечивает составление полного списка обнаруженных ошибок. В начале совещания эксперты характеризуют степень завершенности и качество проекта. Разработчик делает обзор проделанной работы, результаты подвергаются групповому анализу. По окончании совещания председатель вручает каждому участнику список ошибок и проблем, требующих решения. Разработчик обязан устранить ошибки и сообщить об этом эксперту.
4. Наглядность исходных текстов программ. Стиль программирования, который позволяет получать удобные для применения и легко читаемые программы. Стиль связан с удобочитаемостью программы.
Рекомендации. Вводный комментарий объясняет назначение и условия применения. Пояснительные комментарии сопровождают те части программы, которые трудно понять. Дополнительные пробелы указываются повсюду, где это приводит к улучшению читабельности программы. Переменные следует явно объявлять и комментировать. Имена должны отображать смысл содержания. Допускается префиксная нотация (перед именем объекта), которая отражает тип объекта (cmdVixod – имя командной кнопки «Выход»). Составные имена следует писать через знак подчеркивания или начинать с прописных букв. Используйте общепринятые имена, которые описывают действия.
В сокращения наименований полей, переменных и других программных объектов всегда должны входить начальные буквы. Согласные важнее гласных. Начало слова важнее его конца. Списки имен в командах объявления упорядочиваются по алфавиту. Используйте общепринятые сокращения.
При записи операторов и для указания связи между ними делаются одинаковые отступы от начала строки в размере трех позиций, т.е. отступами выделяются структуры вложенности отдельных фрагментов программы.
5. Гибкость и эффективность программ. Выносите изменяемые константы, адреса и имена файлов, баз данных в отдельные файлы настройки. Оптимизируйте программу после ее отладки. Используйте именованные константы вместо обычных. Минимизируйте применение глобальных переменных, вложенных структур и команд перехода Goto. Ограничивайте действия над параметрами подпрограмм (например, для Visual Basic – ByVal, ByRef; для Pascal – Optional, Var, Out, Const).
Общие рекомендации программисту. Помните: программы читаются людьми, и поэтому их тексты должны быть легко читаемыми и понятными. Используйте вводные комментарии. Располагайте комментарии в программе таким образом, чтобы это не делало ее менее наглядной. Одного оператора в строке достаточно. Для выделения структуры используйте отступы (начало и конец структуры сдвинуты на три позиции влево относительно тела структуры). Фиксируйте соответствие букв кириллицы и букв латинского алфавита (например, Щ (H), И (I), B (V)). Стремитесь к простоте и универсальности (например, программа имеет средства настройки на форматы и значения данных). Используйте постоянные приемы программирования. Унифицируйте форматы ввода и вывода информации. Обеспечивайте максимально удобный интерфейс пользователю. Интересуйтесь, как эксплуатируется программа (поработайте со своей программой в качестве пользователя). Устанавливайте более скромные цели (работающие программы гораздо полезнее и важнее незаконченных громадных проектов). Общая схема упрощения – разбиение программы на модули и оформление каждого модуля в виде процедуры, функции, класса, ActiveX‑элемента, компонента. Сложность возрастает квадратично размеру программы. Рекомендуется заменять циклы или вложенные конструкции на функции.
10. Сущность структурного подхода к проектированию программных и информационных систем, основные понятия, принципы и модели.
Сущность структурного подхода к разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции (бизнес-процессы): система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, а они – на задачи, и так до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы «снизу вверх» от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Базовыми принципами структурного подхода являются:
принцип «разделяй и властвуй» – принцип решения сложных проблем путем их разбиения на множество меньших независимых задач, легких для понимания и решения;
принцип иерархического упорядочения – принцип организации составных частей проблемы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне;
принцип абстрагирования – выделение существенных аспектов системы и отвлечение от несущественных;
принцип формализации – необходимость строгого методического подхода к решению проблемы;
принцип непротиворечивости – обоснованность и согласованность элементов;
принцип структурирования данных, т.е. данные должны быть структурированы и иерархически организованы.
В структурном анализе используются в основном две группы средств, иллюстрирующих функции, выполняемые системой, и отношения между данными. Каждой группе средств соответствуют определенные виды моделей (диаграмм), наиболее распространенными, среди которых являются:
DFD (Data Flow Diagrams) – диаграммы потоков данных (процессов);
SADT (Structured Analysis and Design Technique) – модели и соответствующие функциональные диаграммы;
ERD (Entity-Relationship Diagrams) – диаграммы «сущность-связь».
11. Определение и назначение стандартов, базовых и предварительных стандартов, профилей, технических условий, свода правил, регламентов и положений.
Одним из путей повышения эффективности создания ПС являются стандартизация и автоматизация технологических процессов проектирования, разработки и сопровождения программ для компьютера. В стандартах обобщаются опыт и результаты исследований множества специалистов и сосредоточиваются наиболее эффективные современные методы и процессы.
Существуют следующие разновидности нормативных документов.
Стандарт – это нормативно-технический документ, устанавливающий комплекс норм, правил и требований к объекту стандартизации, разработанный на основе согласия и на обобщенных результатах научных исследований, технических достижений и практического опыта, направленный на достижение оптимальной пользы для общества.
Стандарты бывают двух типов:
де–юре - официально принятые организацией по стандартизации (например, международный стандарт языка SQL).
де–факто - добровольно принятые пользователями без формального принятия организацией по стандартизации.
Назначение стандартов:
- устанавливают параметры качества объекта стандартизации;
- задают современные технологии производства и использования объектов стандартизации.
- унифицируют объекты стандартизации, что позволяет собирать более сложные объекты, не зависимо где и кем были произведены объекты, например, детали, узлы, изделия, программные модули различных типов: базовые классы, ActiveX–элементы, COM/DCOM‑компоненты, программные интерфейсы (например, связывание и встраивание объектов OLE), процедуры, функции, SQL-запросы и др. Унификация позволяет разработчикам программного обеспечения перейти от огромного множества разнообразных не связанных между собой разрозненных программных модулей к небольшому, хорошо интегрируемых набору программных модулей со стандартной структурой. Это, в частности, позволяет разрабатывать и использовать эти модули при разработке программного обеспечения на различных языках программирования;
Базовый стандарт – это принятый нормативный документ, регламентирующий типовые (возможно многовариантные) требования, нормы и правила применительно к объекту стандартизации.
Профиль стандарта – это принятый нормативный документ, регламентирующий требования, нормы и правила, выбранные из базового стандарта и, при необходимости, уточненные и/или пополненные применительно к конкретному объекту стандартизации.
Предварительный стандарт – это временный документ, используемый для получения отзывов для решения вопроса о целесообразности принятия стандарта.
Техническое условие (ТУ) – устанавливает технические требования к продукции, услуги или процессу с указанием методов и процедур проверки в соблюдении требований технических условий. Технические условия разрабатывают предприятия в том случае, когда стандарт предприятия создавать не целесообразно.
Свод правил – содержит основные правила проектирования, монтажа, оборудования и конструкции, технического обслуживания и эксплуатации объектов, конструкций, изделий.
Регламент – это документ, в котором содержатся обязательные правовые нормы.
Положение – это документ, регламентирующий деятельность отдельного подразделения или организации в целом.
Организация работ по стандартизации на международном уровне и в США. Примеры международных стандартов в области программных и информационных систем и технологий.
1) Международные стандарты ISO/IEC, разрабатываемые Международной организацией стандартизации (International Standards Organization – ISO от греческого слова ISOS – равный, чтобы аббревиатура на всех языках была одинаковой) и Международной комиссией по электротехнике (International Electro-technical Commission – IEC). Международная организация по стандартизации – это всемирная организация, ответственная за разработку международных стандартов путем координации деятельности участвующих национальных органов стандартизации стран мира.
На этом уровне осуществляется стандартизация наиболее общих технологических методов и процессов, имеющих значение для международной кооперации и разделения труда (прил. 1.1, 1.2, 1.3). Сфера деятельности ISO касается стандартизации во всех областях, кроме электротехники, электроники, радиосвязи и приборостроения, которыми занимается IEC. ИСО поддерживает связь с региональными организациями по стандартизации, например, с Европейским комитетом по стандартизации (CEH) и Европейской ассоциацией производителей вычислительных машин (ЕСМА, технический комитет ТК32 «Передача данных, сети и взаимосвязь систем»), созданной в 60-х гг. с целью координировать деятельность Европейских производственных средств обработки данных. Вопросами информационных технологий, микропроцессорной техники входят в область совместных разработок ИСО/МЭК, которые проводятся созданным в 1987 году Объединенным техническим комитетом JTC1 (Joint Technical Committee 1). В этом комитете существуют несколько подкомитетов и групп, которые специализируются по различным направлениям, например, разработка программного обеспечения и документации, языки программирования, компьютерная графика, телекоммуникация и информационный обмен, управлением данными, информационная безопасность, символьные данные и кодирование информации и др. Стандарты ISO/IEC имеют рекомендательный характер.
Можно ещё отметить Международный союз электросвязи, Международный консультативный комитет по телеграфии и телефонии – занимается разработкой международных стандартов в области радио и связи, телефонии, телеграфии, передачи данных, программ звукового и TV вещания, мультимедийных служб.
В частности на международном уровне решаются проблемы информационной совместимости различных архитектур. Разработана общая базовая эталонная модель - стандарт ИСО 7498 – все многочисленные функции сети были разделены на группы, каждая группа функций была отделена от другой стандартными интерфейсами и получила относительную независимость. Открытые системы – используют стандарт между однородными аппаратными компонентами. Для взаимосвязи открытых систем в федеральных правительственных службах возникли правительственные профили взаимосвязи открытых систем (Government Open Interconnection Profile - GOSIP), которые определяют и описывают общую совместимость протоколов обмена данными, которые позволяют системам, разработанными различными поставщиками взаимодействовать между собой, а пользователям этих систем обмениваться информацией.
Например, ISO/IEC 12207 - Международный стандарт жизненного цикла
ISO/IEC 9126 - Оценка программного продукта (характеристики и качество программных средств, и руководство по их использованию)
2) Американские национальные стандарты в виду лидирующих позиций США в Мировой экономике и информатике, имеют оттенок международных стандартов. Во многих случаях они служат базой для последующего создания стандартов уровня ISO/IEC. Единственной организацией в США, которая утверждает стандарты, является Национальный институт стандартов и технологий (NIST), бывший Американский национальный институт стандартов (ANSI). Разрабатывают федеральные стандарты организации, аккредитованные NIST. В области электротехники и электроники стандарты разрабатываются Институтом инженеров электротехники и радиоэлектроники США (Institute of Electromechanical and Electronics Engineers – IEEE). По этому направлению разработано наибольшее число стандартов в рассматриваемой области (прил. 1.2, 1.3). Стандарты NIST/IEEE в основном имеют рекомендательный характер, кроме, требований, касающихся безопасности. Для министерства обороны США есть отдельные группы стандартов (MIL, DOD), которые имеют повышенные требования к качеству, надежности и безопасности и являются обязательными для фирм, работающих по заказам этого министерства обороны.
Отраслевые стандарты (ОСТ) и стандарты предприятий (СТП). Определение, назначение, классификация и порядок разработки СТП.
Отраслевые стандарты (ОСТ) отражают специфику отрасли, и они детализируют государственные стандарты или восполняют их отсутствие, но в любом случае они не должны противоречить государственным стандартам. Обычно они обозначаются в виде:
OCT XXXXXXXX, где
XXXXXXXX – номер отраслевого стандарта.
Степень обязательности соблюдения таких стандартов определяется предприятием, которое применяет его или по договору между изготовителем и потребителем. Контроль за выполнением стандарта организует организация, принявшая этот стандарт.
Стандарты предприятий (СТП) (внутрифирменные или внутрикорпоративные стандарты) отражают специфику предприятия, они детализируют государственные или отраслевые стандарты или восполняют их отсутствие и не должны противоречить государственным и отраслевым стандартам. Обычно они обозначаются в виде:
СТП XXXXXXXX, где
XXXXXXXX – номер стандарта.
Стандарты предприятия основываются на применении передовых технологий, получивших наибольшее распространение в области разработки программного обеспечения, являются обязательными и вводятся в действие приказом руководителя предприятия, в котором указывается срок и область действия стандарта, способы доведения до исполнителей, ответственные лица за контролем исполнения и ответственность за не выполнение требования стандарта (например, лишении премии). Если на предприятии имеется подразделение нормоконтроля, то стандарт предприятия передается в это подразделение для контроля соблюдения требований стандартов при разработке и документировании проектов. Для разработки таких стандартов привлекаются ведущие специалисты (владеющие методами средствами организации и разработки ПС) из различных заинтересованных подразделений разработчика и пользователя (например, при разработке стандарта на пользовательский интерфейс). Стандарты должны оперативно пересматриваться, иначе они могут тормозить процессы ввода в производство современных технологий и снижать качество выпускаемой продукции.
Стандарты предприятия можно разделить на две группы:
1) производственные – регламентируют процессы разработки проекта по стадиям и этапам жизненного цикла программного средства;
2) управленческие – регламентируют порядок управления разработкой проектов.
Хорошо разработанные стандарты предприятия способствуют повышению качества, надежности, удобства использования и унификации разрабатываемого ПС.
Стандарт предприятия должен содержать следующий компоненты: назначение, область применения, термины и сокращения, ответственность, срок действия, описание методики, указания и примечания, порядок разработки и предоставления пользователем, порядок внесения изменений, приложения.
Часто стандарт предприятия разрабатывается путем детализации соответствующего государственного или отраслевого стандарта (т.е. является профилем соответствующего вышестоящего стандарта), например, руководства программиста, системного программиста и пользователя из группы государственных стандартов ГОСТ 19 (ЕСПД).
В идеале, СТП должны охватывать все технологические и другие операции и процессы в предприятии и должны быть обязательными для всех сотрудников предприятия, причем, сотрудники не обязаны знать вышестоящие стандарты, если они положены в основу разработанных СТП.
Разработка СТП должна проводится с привлечением будущих пользователей СТП под руководством руководителя предприятия в следующей последовательности: формирование оглавления, определение типовых форм, назначение исполнителей и ответственных, разработка календарного графика, описание входных и выходных данных, составление глоссария терминов.
Приведем следующие наиболее общепринятые СТП в области разработки ПС: анализ и проектирование.
Общие стандарты, регламентируют правила общения с клиентами и сотрудниками; перечень используемого программного обеспечения; способы обмена данными между программами, организации хранения программ и др.
Стандарты анализа и проектирования регламентируют применение методик (структурного, объектно-ориентированного) и средств (BPWin, ERWin, Rational Rose и др.) анализа предметной области; правила оформления и хранения аналитической информации, наименований файлов и других объектов.
Стандарты разработки регламентируют формирование полных и наименований и сокращенных наименований различных объектов (файлов, программ, процедур, версий, директорий, баз данных и др.), отладку, использование команд языка программирования и структурного программирования, формирование интерфейса пользователя (принципы разработки интерфейса), сообщений пользователю (например, использования отдельного файла с текстом сообщений), проектирования баз данных, порядок ведений версий и др.
Стандарты тестирования определяют методику тестирования, регламентируют порядок проведения тестирования, оценку и оформление результатов.
Организация работ по стандартизации в России. Классификация и обозначение стандартов. Группы стандартов в области разработки программных и информационных систем.
В России деятельность по стандартизации регулируется законом РФ «О стандартизации», а национальным органом по стандартизации является Государственный комитет Российской Федерации по стандартизации и метрологии (Госстандарт России), который имеет свой логотип. В его ведении находятся службы по надзору за государственными стандартами и обеспечением единства измерений, более 100 центров стандартизации, метрологии и сертификации (ЦСМ), 19 научно-исследовательских институтов, 13 опытных заводов, 2 типографии, 3 учебных заведения. Постоянными рабочими органами являются технические комитеты, которые специализируются по объектам стандартизации.
Все стандарты, разработанные в России, разбиты на группы, и их кодовое обозначение имеет следующий вид:
ГОСТ ГГ.ТNN – ХХ, где
ГГ – числовой номер группы стандартов;
Т – числовой тип стандарта;
NN – числовой номер стандарта данного типа;
ХХ – две последние цифры номера года издания стандарта.
Основные группы стандартов в области информатики:
ГОСТ 19 - ЕСПД (Единая система программы документации);
ГОСТ 24 - АСУ (Автоматизированная система управления);
ГОСТ 34 - АС (Автоматизированная система).
Большинство этих стандартов морально устарели. Обновление стандартов происходит в основном путем включения соответствующих международных стандартов в состав Российских вместо устаревших или в качестве новых стандартов. Такие стандарты обозначаются в виде:
ГОСТ Р ИСО/МЭК NNNNNNNN-XX, где
NN – номер стандарта по международной классификации;
ХХ – две последние цифры номера года принятия стандарта в состав Российских стандартов (номер года не всегда указывается).
Все стандарты в России являются необязательными. Причиной этого является возможность выпуска новых изделий, товаров и предоставления услуг при отсутствии соответствующих стандартов (исключается прохождение долговременных бюрократических процедур разработки и утверждения новых стандартов), что расширяет номенклатуру изделий, товаров и услуг. Стандарты становятся обязательными на контрактной (договорной) или на добровольной основах. Поэтому, если заказчик или разработчик проекта желают вести разработку и оформление документации по определенным стандартам, то нужно указать необходимость их использования в техническом задании на проект.
Модели жизненного цикла программных средств. Определение и сравнительный анализ. Определение, назначение и особенности технологии быстрой разработки приложений (RAD-технологий).
Модель жизненного цикла ПС (ЖЦ ПС) – структура, содержащая процессы, действия и задачи, которые осуществляются в ходе разработки, функционирования и сопровождения программного средства в течение всей жизни системы, от определения требований до завершения ее использования (прил. 1.1). В самом общем виде ЖСПС включает этапы системного анализа, проектирования, эксплуатация и сопровождение ПС.