ИГА_сети_ЭВМ_и_ТК. Хранения информации для коллективного пользования
Скачать 0.88 Mb.
|
Цель методологии разработки ПО – внедрение методов разработки программ, обеспечи-вающих достижение соответствующих характеристик качества. В настоящее время имеется два базовых принципа разработки программных средств: модульный и объектно-ориентированный принципы. Разработка модульных программ основывается на классических методологиях: нисходящем проектировании, расширении ядра, восходящем проектировании и их комбинации, и ряде современных методологий. Объектно-ориентированная разработка базируется на применении методологий объект-но-ориентированного анализа и объектно-ориентированного программирования. Одним из базовых понятий технологии разработки программного обеспечения является понятие жизненного цикла программного средства или системы. При этом под системой подразумевается комплекс, состоящий из процессов, технических и программных средств, устройств и персонала, обладающий возможностью удовлетворять установленным потреб-ностям или целям. 46. Основные характеристики программных продуктов. Программный продукт – комплекс взаимосвязанных программ для решения определен-ной проблемы (задачи) массового спроса, подготовленный к реализации как любой вид промышленной продукции. Основные характеристики: эффективность – соответствие требованиям пользователя при минимальных требованиях к ресурсам, надежность – обеспечение работоспособности продукта, отсутствие отказов, удобство использования – наличие дружественного интерфейса, системы помощи, обу-чающей системы, хорошей документации, мобильность – независимость от используемого технического обеспечения, ОС (много-платформенность), коммуникативность – возможность интеграции с другими программными продуктами, стоимость. Все программы можно разделить на два класса – утилиты и программные продукты. Утилиты играют роль сервиса в технологии обработки данных либо решают функцио-нальные задачи, не предназначены для широкого распространения. Программные продукты предназначены для удовлетворения потребностей пользовате-лей, широкого распространения и продажи. Различные варианты программных продуктов: freeware – бесплатные и свободно распространяемые программы, можно вносить в них необходимые изменения; shareware – некоммерческие (условно-бесплатные) программы, могут использоваться бесплатно. При регулярном использовании осуществляется взнос определенной суммы. OEM-программы, т.е. встроенные программы, устанавливаемые на компьютеры или поставляемые вместе с вычислительной техникой. Программный продукт должен быть соответствующим образом подготовлен к эксплуата-ции, иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы программы, иметь товарный знак изготовителя, а также желательно на-личие кода государственной регистрации. Только при таких условиях созданный програм-мный комплекс может быть назван программным продуктом. 47. Классы программных продуктов. Программный продукт – комплекс взаимосвязанных программ для решения определен-ной задачи, подготовленный к реализации как любой вид промышленной продукции (име-ет программную документацию, предоставляет сервис и гарантию надежной работы, имеет товарный знак изготовителя и т.д.). Программные продукты можно классифицировать по различным признакам, основной признак классификации – область использования: Системное программное обеспечение – совокупность программ и программных комплек-сов для обеспечения работы компьютера и сетей и выполнения различных вспомогатель-ных функций (управление ресурсами; создание копий информации; проверка работоспо-собности устройств; выдача справочной информации о компьютере). Относятся: ОС и оболочки, антивирусные программы, программы архивирования, утили-ты (программы по обслуживанию, диагностике, оптимизации) и др. Пакеты прикладных программ – совокупность программ для решения задач определен-ного класса конкретной предметной области и обеспечения выполнения необходимых пользователю работ. Относятся: текстовые и графические редакторы, электронные таблицы, СУБД, издатель-ские системы, бухгалтерские программы, системы автоматизированного проектирования (САПР), экспертные системы, браузеры, обучающие программы и др. Инструментарий технологии программирования – совокупность программ и програм-мных комплексов для разработки, отладки и внедрения программных продуктов. Относятся: различные системы программирования и создания приложений: Quck Basic; Turbo Basic; Visual Basic; Pascal; C++; Delphi и др. 48. Основные тенденции развития программного обеспечения. Стандартизация отдельных компонентов программных средств и интерфейсов между ни-ми для использования любого приложения на разных аппаратных платформах и в разных ОС и обеспечение его взаимодействия с широким кругом приложений. Ориентация на объектно-ориентированное проектирование и программирование программных средств для перехода к новой технологии «сборки» из отдельных модулей-«кубиков» любого приложения для конкретных потребностей конкретного пользователя, что снижает объем и стоимость и повышает надежность приложения (офисные системы используются на 20-30%). Также снимается проблема модификации приложения при изме-нении информационных потребностей пользователя. Технология «сборки» приложений в сочетании с возможностями сетевого доступа к ним позволяет в перспективе не приобре-тать, а временно арендовать любое приложение, снижая затраты на ПО. Интеллектуализация интерфейса пользователя для более интуитивной понятности, приближения языка общения с компьютером к языку пользователя; настройка интерфейса на особенности и потребности конкретного пользователя при его диалоге с компьютером; использование средств мультимедиа при реализации интерфейса пользователя; Интеллектуализация возможностей программ и программных систем; широкое ис-пользование методов искусственного интеллекта при проектировании приложений (делают приложения более «умными», решают более сложные и плохо формализуемые задачи). Универсализация отдельных модулей прикладных программ и их постепенный пере-ход (также и самих программ) из специализированного в универсальное прикладное ПО. Ранее текстовые процессоры относились к специализированному прикладному ПО, теперь относятся к универсальному. Ориентация на совместную, групповую работу пользователей при решении разных проблем при помощи программных средств. При разработке ПО большое внимание уделя-ется коммуникационным компонентам (включение в ОС Windows коммуникационных средств для работы в сети Интернет). Внедрение ПО в аппаратную составляющую технических средств (товаров) массово-го потребления (телевизоров, телефонов и т. п.), что повышает требования к надежности ПО, интерфейсу пользователя, а также требует от пользователя более полных знаний об основных понятиях ПО и о типичных действиях в программной среде. Постепенный переход компонентов ПО специализированного прикладного ПО в уни-версальное. Ранее доступные только специалистам в конкретной проблемной области программные средства становятся доступны широкому кругу пользователей. (текстовые редакторы). 49. Жизненный цикл программных средств. Жизненный цикл ПС – весь период его разработки и эксплуатации, начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования и полно-го изъятия из эксплуатации. Модель жизненного цикла – структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении ЖЦ. К моделям жизненного цикла программного продукта (последовательности выполне-ния и взаимосвязи процессов, действий и задач на протяжении всего цикла) относятся: Каскадная стратегия (водопадный подход). Разработка ПС – цепочка этапов (документы предыдущего используются на последующем), в конце которой создаются программы, вхо-дящие в ПС. Исследовательскоепрограммирование. Быстрая реализация рабочих версий ПС, выпол-няющих лишь в первом приближении требуемые функции. Далее производится их моди-фикация, чтобы сделать их более полезными для пользователей. Этот процесс повторяется, пока ПС не станет достаточно приемлемо для пользователей (такой подход используется, когда никак точно не сформулировать требования – разработка систем искусственного ин-теллекта). Прототипирование (разработка прототипа). Моделирование начальной фазы исследова-тельского программирования для установления требований к ПС, по которым будет разра-батываться ПС в рамках какого-либо другого подхода. Формальные преобразования. Разработка формальных спецификаций ПС и превращение их в программы путем корректных преобразований. На этом базируется компьютерная тех-нология (CASE-технология) разработки ПС. Сборочное программирование. ПС конструируется из существующих наборов компо-нент (библиотек), многократно используемых в разных ПС. В рамках водопадного подхода различают следующие стадии жизненного цикла ПС: Разработка ПС: - внешнее описание (анализ и определение требований, описание поведения ПС), - конструирование (разработка архитектуры ПС, структур программ ПС, детальная спецификация); - кодирование (программирование) создание текстов программ на языках программи-рования, отладка и тестирование; - аттестация (оценка качества, если приемлема для практического использования, то разработка закончена). Производство программных изделий (экземпляра или копии разработанного ПС): - изготовление (генерации и/или воспроизведения (снятия копии) программ и програм-мных документов ПС для поставки пользователю); - производство (изготовления нужного количества ПИ в установленные сроки) Эксплуатация ПС: - применение (использование для решения практических задач ); - сопровождение (сбор информации о качестве ПС в эксплуатации, устранение обнару-женных ошибок, доработка и модификация, извещения о внесенных изменениях). 50. Стратегии конструирования ПО. Существует три стратегии конструирования программных систем: Однократный проход (каскадная стратегия) – линейная последовательность этапов конструирования. Инкрементная стратегия. В начале процесса определяются все пользовательские и си-стемные требования, оставшаяся часть конструирования выполняется в виде последова-тельности версий. Первая версия реализует часть запланированных возможностей, следую-щая версия реализует дополнительные возможности и т. д., пока не будет получена полная система. Эволюционная стратегия. Система также строится в виде последовательности версий, но в начале процесса определяются не все требования. Требования уточняются в результа-те разработки версий. 51. Критерии качества программ по стандартам ISO (ГОСТ Р ИСО/МЭК 9126-93). Критерии качества устанавливаются государственными стандартами. Качество ПО оцени-вается следующими характеристиками: Функциональные возможности Набор функций и их конкретных свойств для реализации установленных или предполага-емых потребностей. Надежность Набор атрибутов сохраняющих уровень качества функционирования ПО при установлен-ных условиях за установленный период времени. Практичность Возможность использования ПО и его индивидуальной оценки конкретным кругом пользо-вателей. Эффективность Соотношению между уровнем качества функционирования ПО и объемом используемых ресурсов при установленных условиях. Сопровождаемость Возможность проведения конкретных изменений (модификаций) для работы ПО. Мобильность Способность ПО быть перенесенным из одного окружения в другое. 52. Модель СММ. СММ (Capability Maturity Model) – стандарт – модель зрелости процесса разработки ПО, означающего его эффективность, устойчивость и надежность. В модели CMM определено пять уровней зрелости организаций: Первый (начальный) Спонтанный или хаотический процесс разработки ПО. Процедуры разработки не определе-ны, успех зависит от индивидуальных усилий и героизма работников. Второй (повторяющийся) Имеются основные процессы управления для отслеживания функциональных характерис-тик разрабатываемой системы, графика работ и их стоимости. Организация может повто-рить успешную разработку проекта при работе над новым с аналогичными возможностями Третий (определенный) Документируются, стандартизируются и интегрируются в общий процесс управления все управленческие и инженерные задачи разработки ПО. Все проекты используют утвержден-ные методы разработки и поддержки программ, адаптированные к конкретному проекту. Четвертый (управляемый) Имеются способы детального измерения качества процесса и разрабатываемого продукта. Количественные характеристики процесса разработки и разрабатываемых систем хорошо изучены и управляемы. Пятый (оптимизированный) Осуществляется непрерывное улучшение процесса разработки, основанное на количест-венных характеристиках выполненных и выполняемых проектов и на внедрении новых идей и технологий. Повышение зрелости идет от первого к пятому уровню. Большинство организаций, разра-батывающих ПО, начинает с первого уровня (многие там и остаются). Незрелая организа-ция не может предсказать ни срока завершения разработки, ни качества конечного продук-та. Успех почти полностью зависит от опытности руководителя и квалификации и таланта разработчиков. Процесс управления, если и создается, то по ходу выполнения проекта, ему не следуют, особенно во время часто случающихся кризисов и авралов. 53. Методологии проектирования ПО. Методология – совокупность принципов, идей, понятий, методов, способов и средств, ко-торые определяют стиль разработки ПО. Методология – это реализация стандарта, определяет выполнение разработки ПО. Выбор конкретной методологии зависит от размера команды, специфики и сложности про-екта, стабильности и зрелости процессов в компании и личных качеств сотрудников. Выделяют следующие основные методологии, каждая из которых описывает свой подход, в виде задач и/или деятельности в ходе процесса: Каскадная методология выглядит как поток, последовательно проходящий фазы: Анализ треб-й—Проектирование—Реализация—Тестирование—Интеграция и поддержка. Итеративная методология – выполнение работ параллельно с непрерывным анализом по-лученных результатов и корректировкой предыдущих этапов работы. Проект проходит по-вторяющийся цикл: Планирование—Реализация—Проверка—Оценка. По ходу выявляются дополнительные требования или изменяются выявленные ранее, по-являются новые ограничения по техническими решениям, поэтому все это наиболее полно может учесть именно итерационная разработка. Итеративная методология сейчас наиболее распространена благодаря очевидным преиму-ществам, ее различные вариации используются в компании ДПГруп. Rational Unified Process (RUP) — методология разработки ПО компании Rational Software. В основе RUP лежат основные принципы: Ранняя идентификация и непрерывное устранение основных рисков Выполнение требований заказчиков Ожидание изменений в требованиях и реализации в ходе разработки Компонентная архитектура, реализуемая и тестируемая на ранних стадиях проекта Обеспечение качества на всех этапах разработки проекта Работа в команде, ключевая роль в которой принадлежит архитекторам Гибкая методология (Agile software development)– разработка серии коротких циклов (итераций – длятся 1-2 недели), что минимизирует риски. Каждая итерация – программный проект в миниатюре (включает: планирование, анализ требований, проектирование, коди-рование, тестирование, документирование), в конце которой переоцениваются приоритеты разработки. Отдельная итерация недостаточна для выпуска новой версии ПО, но считается, что гибкий программный проект готов к выпуску в конце каждой итерации. Упор делается на общение лицом к лицу (большинство agile-команд располагаются в одном офисе с заказчиком). Наиболее известные и передовые гибкие методологии: SCRUM, KANBAN. К существующей классификации методологий в зависимости от используемой модели ЖЦ (каскадные (водопадные) и итерационные) добавилась более общая классификация на: прогнозируемые (известны задачи, требования и ресурсы на весь срок проекта, их измене-ние может привести к существенному изменению проекта), адаптивные (нет точного плана, преодолевается неполнота требований и их постоянное изменение). 53. CASE-технологии, их содержание и классификации. CASE-технология – это реализованные в виде программных продуктов технологические системы, ориентированные на создание сложных ПС и поддержку их полного ЖЦ или его основных этапов с комплексом средств автоматизации. CASE-технологии развивались с целью преодоления ограничений методологии структур-ного программирования, характеризующейся сложностью понимания, большой трудоем-костью и стоимостью использования, трудностью внесения изменений в проектные спе-цификации. Достоинства CASE-технологии: ускоряют процесс проектирования и разработки, улучшают качество создаваемого ПО за счет средств автоматического контроля, поддерживают повторное использование компонентов, поддерживают адаптивность (развитие) и сопровождение разработки, освобождение от рутинной работы по документированию. Традиционная модель ЖЦ ПО строится по каскадному принципу, CASE-технология по спиральной модели ЖЦ, каждый следующий виток характеризуется более высокой сте-пенью детализации создаваемого ПО, отражающейся в различных схемах, таблицах, диа-граммах, матрицах, картах и т.п. Наиболее часто и эффективно используются: диаграммы потоков данных со словарями и спецификациями; диаграммы "сущность-связь; диаграммы переходов состояний. |