
- •Этапы развития технологии программирования
- •1). «Стихийное» программирование (до середины 60х гг.).
- •2). «Структурный» подход к программированию (60е – 70е гг.).
- •3). Объектный подход (середина 80-х – конец 90х гг.).
- •Компонентный подход к программированию и case-технологии.
- •Платформа .Net
- •Проблемы разработки сложных программных систем
- •Блочно-иерархический подход к созданию сложных систем
- •Жизненный цикл и этапы разработки программного обеспечения
- •Модели жизненного цикла программного обеспечения
- •Модели с промежуточным контролем.
- •Понятия эффективности и технологичности программного обеспечения.
- •Модули и их свойства (сцепление модулей).
- •Модули и их свойства (связность модулей)
- •Нисходящая и восходящая разработка программного обеспечения
- •Структурное программирование.
- •Линейный, 2)разветвляющий, 3) цикличный.
- •Средства описания структурных алгоритмов (псевдокоды, блок-схемы алгоритмов, Flow-формы, диаграммы Насси-Шнейдермана).
- •Правила оформления программ
- •Этап постановки задачи. Классификация программных продуктов по функциональному признаку.
- •Этап постановки задачи. Основные эксплуатационные требования к программным продуктам.
- •Этап постановки задачи. Предпроектные исследования предметной области.
- •Разработка технического задания.
- •Принципиальные решения начальных этапов проектирования (выбор архитектуры программного обеспечения, выбор пользовательского интерфейса, выбор языка программирования и т.Д.).
- •2) Выбор типа пользовательского интерфейса.
- •3) Выбор подхода к разработке.
- •4) Выбор языка программирования.
- •Классификация моделей разрабатываемого программного обеспечения
- •Модели разрабатываемого по, используемые на этапе анализа технического задания. Структурный подход. Диаграммы переходов состояний.
- •Модели разрабатываемого по, используемые на этапе анализа технического задания. Структурный подход. Функциональные диаграммы.
- •Модели разрабатываемого по, используемые на этапе анализа технического задания. Структурный подход. Диаграммы потоков данных.
- •Модели разрабатываемого по, используемые на этапе анализа технического задания. Структурный подход. Структуры данных и диаграммы отношений компонентов данных.
- •Модели разрабатываемого по, используемые на этапе анализа технического задания. Структурный подход. Сетевая модель данных (Диаграммы «сущность-связь»)
- •Модели разрабатываемого по, используемые на этапе анализа технического задания. Структурный подход. Математические модели.
- •Проектирование программного обеспечения при структурном подходе. Структурная и функциональная схемы.
- •Метод пошаговой детализации при проектировании структуры по
- •Структурный подход. Структурные карты Константайна
- •Проектирование программного обеспечения при структурном подходе. Проектирование структур данных
- •Модель использования. Определение вариантов использования. Диаграммы вариантов использования.
- •Построение диаграммы классов на этапе анализа технического задания.
- •Диаграмма последовательностей системы.
- •Построение диаграммы деятельности на этапе анализа технического задания.
- •Проектирование по при объектном подходе.
- •Диаграмма пакетов.
- •Диаграмма классов этапа проектирования. Уточнение отношений между классами на этапе проектирования.
- •Диаграммы последовательностей этапа проектирования.
- •Диаграммы состояний объекта
- •Диаграмма деятельности на этапе проектирования.
- •Диаграмма компонентов
- •Диаграмма размещения
- •Тестирование программных продуктов.
- •Структурное тестирование.
- •Функциональное тестирование.
- •Восходящее и нисходящее тестирование
- •Классификация ошибок
- •Методы отладки программного обеспечения
Принципиальные решения начальных этапов проектирования (выбор архитектуры программного обеспечения, выбор пользовательского интерфейса, выбор языка программирования и т.Д.).
На начальных этапах процесса проектирования должны быть приняты принципиальные решения, определяющие этот процесс, качество и трудоемкость разработки. К таким решения относят:
Выбор архитектуры ПО.
Выбор типа пользовательского интерфейса и технологии работы с документами.
Выбор подхода к разработке: структурный и объектный.
Выбор языка и среды программирования.
1). Архитектурой ПО называется совокупность базовых концепций (принципов) его построения. Она определяется сложностью решаемых задач, степенью универсальности разрабатываемого ПО и числом пользователей, одновременно работающих с его копией. Различают:
однопользовательскую архитектуру,
многопользовательскую архитектуру, которая рассчитана на работу в локальной или в глобальной сети.
В рамках однопользовательской архитектуры различают программы, пакеты программ, программные комплексы, программные системы.
Многопользовательскую архитектуру реализуют системы, построенные по принципу клиент-сервер.
Программа – это адресованный компьютеру набор инструкций, точно описывающий последовательность действий, которые необходимо выполнить для решения конкретной задачи. При структурном подходе программа представляет собой иерархию подпрограмм, при объектном – совокупность обменивающихся сообщениями объектов, для реализации которых разработаны специальные классы. В этом случае программа представляет собой отдельно компилируемую программную единицу, которая может использовать стандартные библиотеки, но обычно не организует свои.
Пакет программ – это совокупность программ, реализующих задачи некоторой прикладной области. Программы такого пакета связаны между собой только принадлежностью к определенной прикладной области. Пакет программ реализуют как набор отдельных программ, каждая из которых сама вводит данные и выводит результат. По сути дела пакет программ — это некоторая библиотека программ.
Программные комплексы представляют собой совокупность программ, совместно обеспечивающих решение небольшого класса сложных задач одной прикладной области. Для решения такой задачи может потребоваться решить несколько подзадач, последовательно вызывая программы комплекса, Вызов программ в программном комплексе осуществляется специальной программой - диспетчером, который обеспечивает несложный интерфейс с пользователем и, возможно, выдачу некоторой справочной информации. От пакета программ программный комплекс отличается еще и тем, что несколько программ могут последовательно или циклически вызываться для решения одной задачи, и, следовательно, желательно хранить исходные данные и результаты вызовов в пределах одного пользовательского проекта. Программы в этом случае могут реализовываться как отдельно, так и как совместно компилируемые программные единицы, а исходные данные храниться в оперативной памяти или в файлах.
Программные системы представляют собой организованную совокупность программ (подсистем), позволяющую решать широкий класс задач из некоторой прикладной области. В отличие от программных комплексов программы, входящие в программную систему, взаимодействуют через общие данные. Программные системы обычно имеют развитые пользовательский и внутренние интерфейсы, что требует их тщательного проектирования.
Многопользовательские программные системы в отличие от обычных программных систем должны организовывать сетевое взаимодействие отдельных компонентов программного обеспечения, что еще усложняет процесс его разработки. Для разработки подобного программного обеспечения используют специальные технологии или платформы, например, технологии COBRA, COM, Java и т. п.