Автор работы: Пользователь скрыл имя, 17 Декабря 2014 в 02:02, курс лекций
Введение в идеологию. В эпоху НТП объемы производства и использование средств вычислительной технологии во многом определял Н.Т.П. Резкое снижение средств вычислительной техники создало предпосылки для массового внедрения вычислительной техники в бытовом производстве. Это позволило провести широкую автоматизацию производственных процессов на базе встроенных микропроцессов вплоть до применения их в бытовой технике.
2) Систематическое применение
Методы разработки в широком смысле слова включают:
1) Процедура выполнения
2)Требуемые характеристики и
структура результата
3) Средства представления
Структуру результата разработки можно представить в 2-х аспектах
1) Структуризация самой системы программного обеспечения, т.е. представлять ее виде совокупности определенным образом связанные элементы, позволяющие свести сложную задачу к нескольким более простым и таким образом обеспечить более эффективное распределение работ по исполнителям (по бригадам).
2) Структуризация самих описаний с целью обеспечения удобства выполнения различных технологических операций (ввод информации, изменение информации).
Близкими к разработке проектной информации являются ее модификации. Потребности модификаций проектной информации возникают всегда, когда необходимо доработать ту или иную часть программного обеспечения.
Основная проблема, которая возникает в процессе модификаций:
1) адекватность модификаций с ее применением.
2) с естественным стремлением к минимизации изменений
Для обеспечения адекватности модификации должны выполняться не только для текста той части программы, которая была изменена, но и для той части документации, которая поддерживает эту часть программы.
Здесь же появляется еще одна проблема, когда в процессе модификации нового проекта вы максимально должны сохранить, возможно, в старом проекте.
Классификация методов разработки ПО
В практике разработки ПО на разных этапах применяются различные методы, которые могут отличаться по ряду аспектов
Аспекты отличий методов разработки ПО:
1) Оно отличается используемыми способами в структурной организации системы ПО, как совокупностей ее составляющих компонентов.
2) Средствами представления проектной информации, т.е. какими продуктами продуктами были поддержаны проекты и какими методами были реализованы.
3) Методы формирования
Среди характеристик методов разработки наиболее важными являются:
1) Стратегическое направление разработки, т.е. подходы систематизации предметной области на структурном уровне.
2)Вид основных объектов разработки (функции и данные).
3) Способы разбиения исходной задачи на несколько менее сложных задач или на более простые.
В методах стратегической разработки проектной информации выделяют 2 подхода:
1) Разработка сверху вниз (аналитический подход или снисходящий).
2) Снизу вверх (синтетический подход – метод восходящей разработки.
В 1-м случае движение идет от общей идеи (задачи) к более простым задачам или к частностям (аналитическим) т.е. сведение сложных задач к более простой, тогда как переход снизу вверх начинается с частных задач, на основе которых формируется более полная задача, синтезируется более новая задача, отсюда и процесс восхождения.
Здесь мыслительный процесс задействован наиболее активный.
Метод проектирования сверху вниз. Этот метод представляет собой систематическое рекурсивное применение следующей процедуры. Для поставленной задачи в известных терминах понятийного аппарата (языка программирования) формируется решение, если сформулированная задача достаточно проста и решение ее реализован на языке программ, то процесс разработки заканчивается. Если же невозможна или затруднительна разработка поставленной задачи, то вводятся новые понятия в рамках которых снова формируется решение исходной задачи.
В терминах введенных понятий
и языка программирование
1) Когда задача носит чисто формальный характер и решение ее можно получить программным путем.
2) Когда задача формализована на повторное построение с использованием дополнительных понятий и понятий языка программирования.
Процесс разработки закончен, если все задачи сформулированные данным подходом носят характер 1-го типа или формализованы.
Метод снизу вверх . Метод синтезирования
Это проблема сближения уровня языка с требуемым для решения задачи с повышением уровня синтезирования, когда последовательным повышением уровня языка путем введения в него новых понятий (процедур) позволяет расширять понятийный аппарат, обеспечивающий решение исходной задачи. Такое развитие процесса может продолжаться достаточно долго, но до того момента, когда на самом верхнем уровне будет сформировано решение исходной задачи. Таким образом будет создаваться иерархия уровней, где на каждом уровне будет сформулированы задачи обеспечивающие на этапе в конечном счете получение решения исходной задачи. Данный процесс носит процесс синтезхирования, когда на основе множества задач формируется исходная задача или проблема. Каждая из приведенных стратегий не лишена недостатков, поэтому в чистом виде каждую стратегию не используют. Наиболее серьезными недостатком обладает стратегия снизу вверх, поскольку мыслительный процесс ни столь прост и очевиден, поскольку не ясно в каких терминах надо формировать следующую задачу, какие методы использовать, какая исходная информация положена на решение исходной задачи.
Лекция № 6 Продолжение
К недостаткам подхода метода снизу вверх относятся и то, что тестирование и отладка программного обеспечения, как целого и его интерфейсов может производиться, как только после завершения всей системы разработки. Исправление обнаруженных ошибок может потребовать серьезной переработки ПО ( в ряде случаев доходило 70%).
При проектировании сверху вниз исходная задача и каждая из вверенных в него понятий может быть решена на более низком уровне из понятий другого уровня. Недостатки метода снизу вверх – в действительности реальная разработка, как правило, использует баланс 2-х стратегий. Однако, как правило, в большинстве разработок используется метод снизу вверх. ОС ЧИ была разработана чисто.
Область применения обоих стратегий
Как правило, при использовании стратегий сверху вниз используется тогда когда надо решить конкретную проблему, а при разработке ПО используют снизу вверх, когда надо решить класс проблем, кода проблемы по своей общей структуре в противовес, (не формализованы) видны конкретные цели.
Снизу вверх – формализация по порядку.
Анализ различий методов создания ПО по типу основных объектов разработки
В большинстве своем методы разработки ориентируются на его функциональную часть: 1)описание внешних функций программной системы т.е. функций проявление которых видно из вне системы, т.е. со стороны пользователя.
2) Функции, составляющие систему моделей, т.е. функции отражающие структуру проекта ПО.
3) Функции некоторых фрагментов программ, когда выделяются функции используемые во всех фрагментах программы (в любом фрагм.). Как правило в этих методах данные (информ. основа) выступают вторично, однако, они являются неотъемлемой частью всех этих методов (программ, алгоритмов, описаний ит.д.).
Методы разработки программ от данных
Существует 2 подхода: 1) R – технология. 2) Метод Джексона.
В этих методах основными объектами проектирования являются данные, а действия, выполняемые над ними, возникают в процессе разработки, как уточнение данных, как описание процедур обработки. После того, как описаны структуры данных и операции, выполняемые над ними программа разработки, соответствует некоторому процессу, позволяющему его автоматизировать (R – технология).
С другой стороны, это проектирование можно производить в ручную с использованием рутинных правил, преобразования компонент описания данных в программу их обработки (метод Джексона).
В различных методах разработки программ данных используются разные по форме и содержанию способы описания данных.
В методе Джексона структура данных описывается виде графических диаграмм, отражающих иерархию компонентов данных, имеющих определенную структуру (интерпретация) и способы компоновки составных. компонент этих данных (из подчиненных компонент.).
В R – технологии структура данных описывается виде иерархии графов. Дугам каждого из которых соответствуют компоненты данных, т.е. некоторые элементы уточненных данные, а вершинам соответствует состояние обработки данных. Каждый граф строится из стандартного набора элементарных графовых структур при помощи небольшого набора правил (композиций).
В некоторых методах разработки от данных, структура данных описывается виде гамматик (разновидность описания данных). Основная идея всех этих методов одна и та же: структура данных описывается явно, а не в виде алгоритма их обработки. Пример: были разработаны языки прогр.- идеология снизу вверх.
2 подхода разбиения исходной задачи
Два подхода решения разбиения проблемы ПО:
1) Когда решение исходной задачи
формулируется в терминах
Применительно к данным – это сложный объект данных рассматриваемый, как композиция данных более простой структуры.
2)Разбивается на части не решение задачи, а непосредственно ее исходная постановка, формулируется рад более простых задач и затем каждая из них решается независимо друг от друга. К таким методам относится метод Фуксмана (метод расслоенного программирования). И носит название RD - технология программирования. Основной идеей данного подхода (м. Фуксмана) является выделение всех функций системного п.о. таких, удаление которых не делает систему П,О. неработоспособной, а лишь уменьшает его область применения и удобство использования. Такие функции называются расширяющими функциями. Часть системы, из которых удалены все расширяющие функции носит название основы. При использовании указанного метода реализации системы ПО начинают с разработки и отладки основы, после чего последовательно добавляются шаг за шагом расширяющие функции до тех пор, пока не возникает система ПО, удовлетворяющая заказчика.
Таким образом возникает версия ПО. Это позволяет начать опытную эксплуатацию намного раньше, чем эксплуатацию всего ПО.
Структурная организация ПО
Результатом разработки ПО как правило является не полностью разработанный программный продукт с рядом недостатков, неточностей и не оптимальностью процедур, состоящая из компонент, каждый из которых в свою очередь также может быть структурирован, структуры которого так же могут носить не оптимальный характер Конструирование системы программного обеспечения, его организация по структурному методу состоит из независимых компонентов, которые распределены по уровням иерархии. Как правило формирование сложного ПО легче всего произвести большими кирпичами, и более сложно из мелких кирпичей. В 1-м случае – формируется архитектура всего п.о.
Внешне существуют 2 вида структур: внешняя и внутренняя.
1) Под внешней структурой будем понимать структуру системы ПО с точки зрения пользователя или с точки зрения структуры взаимодействия со средой. Все компоненты такой структуры могут выступать с содержательными функциями системы, т. е. описывать предметную область системы, непосредственный эффект от который виден вне системы ПО. Данные, используемые такими функциями описываются через внешние данные (связанные со средой функционирования этого ПО). Компоненты указанного ПО могут быть связаны друг с другом отношениями (включениями) и отношениями взаимосвязей друг с другом (т.е. когда функции взаимодействуют друг с другом циклически)
2) Внутренняя структура системы ПО - это структура программы системы и ее информационной базы. Программа системы может включать в себя программы нескольких подсистем, каждая из которых может состоять из нескольких программных компонентов (модулей информационной базы). Системы программного обеспечения могут включать и внешнюю информационную базу, хранящуюся на внешних носителях, а так же может включать внутреннюю информацию, оформленную в виде некоторых структур данных и доступных во всех фрагментах (частях) программы.
Способы структурной организации программы
Внешняя структура ПО разрабатывается на этапе формирования требований и спецификации внешнего проекта системы программного обеспечения, и используются как исходные данные для выполнения следующих этапов разработки и служат основой для разработки эксплутационной документации. При описании внешнего проекта ПО обычно не применяются сложные методы проектирования, а используют подход иерархический способ организации структур.
Внутренняя структура сложных систем ПО как правило не является единородной и включает компоненты различной природы (типов), которые могут быть иерархически упорядочены друг к другу. При этом процесс разработки внутренней структуры часто разбивают на такие этапы как архитектурное проектирование, когда разработка архитектуры системы представляется в виде уровня иерархии (на концах которой находятся модули программ). Модульное проектирование проводится тогда, когда компоненты верхних уровней иерархии представлены в виде иерархии модулей. Детальное проектирование, представляется тогда, когда разработка разбивается на структуры программ каждого модуля.