Файл: Основы проектирования программ. Этапы создания программ (Общие положения теории проектирования)ного обеспечения.pdf
Добавлен: 30.04.2023
Просмотров: 98
Скачиваний: 2
СОДЕРЖАНИЕ
1. ОСНОВЫ ПРОЕКТИРОВАНИЯ ПРОГРАММ
1.1. Общие положения теории проектирования
2. ОПТИМИЗАЦИЯ ПРОГРАММНЫХ РАЗРАБОТОК
2.1. Выбор оптимального проектного решения
2.2. Анализ требований к системе (системный анализ) и формулировка целей
2.3. Проектная процедура постановки задачи разработки программы
3. ТЕХНОЛОГИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
3.1. Этапы и модели объектно-ориентированной технологии
Введение
Курсовая работа - это учебно-научное исследование, предполагающее творческий подход к проработке его содержания, тщательность и грамотность.
Информационные технологии занимают все более значимую роль в обществе. Для обслуживания общественных потребностей в автоматизации труда, связи, хранения данных и т.п.
Программирование - понятие, которое для большинства людей не имеет значения, но практически каждый человек слышал это слово, при этом многие даже не представляют, чем оно является.
В настоящее время программирование переросло в целую индустрию производства программных изделий, поэтому теперь мало знать только язык программирования и операционный подход к составлению алгоритмов. Профессиональный разработчик программных изделий должен владеть методами активизации мышления и теорией проектирования.
Цели курсовой работы - изучение, углубление и совершенствование теоретических знаний основ проектирования программ и этапов создания программного обеспечения.
Возможность в последующем применить теоретические знания на практике.
Задачи курсовой работы :
- научиться основам проектирования программ;
- углубленно изучить основы программного обеспечения;
- изучить теорию оптимизации программных разработок;
- освоить технологию объектно-ориентированного программирования;
- выявить все этапы создания программного обеспечения ;
- научиться разработке системных требований и требований к ПО, научиться анализировать, проектировать, кодировать, тестировать и отлаживать программное обеспечение;
- развить умение самостоятельной работы по сбору, изучению, анализу и обобщению материала, необходимого для раскрытия темы работы;
- выработать навыка формулирования умозаключений, логически последовательно и доказательно излагать суждения и выводы;
- подготовка к выполнению дипломной работы .
Объект курсовой работы - Программное обеспечение.
Программное обеспечение - программа или множество программ, используемых для управления компьютером[1].
Предмет — Проектирование и создание ПО
Проектирование – это разработка проекта, процесс создания спецификации, необходимой для построения в заданных условиях еще несуществующего объекта на основе первичного описания этого объекта. Результатом проектирования является проектное решение или их совокупность, удовлетворяющих заданным требованиям, которые в свое время должны включать форму представления решения.
Курсовая работа разделена на 3 главы:
В первой главе изложены основы проектирования программ и программного обеспечения.
Во второй главе: оптимизации программных разработок, анализ требований к системе и формулировка целей.
В третьей главе описана технология объектно-ориентированного программирования.
В курсовой работе использована информация из источников которые указаны в библиографическом списке в конце работы.
1. ОСНОВЫ ПРОЕКТИРОВАНИЯ ПРОГРАММ
1.1. Общие положения теории проектирования
«Как без оформленного проекта можно построить скворечник, но не возможно строительство высотного здания или комплекса космодрома со строительной индустрией, жилыми, стартовыми и производственными комплексами, так и без проекта можно организовать лишь небольшую программу, но не автоматизированное рабочее место специалиста, а тем более автоматизированную систему управления большого предприятия.»[2]
Программисты создают программный продукт, в терминах автоматизированных систем - программисты создают программное обеспечение.
Программное изделие - программа, которую можно запускать, тестировать, исправлять, развивать, написанная в едином стиле, оттестирована до требуемого уровня надежности, сопровождена подробной документацией и подготовлена для выпуска в тираж[3].
Программное обеспечение для автоматизированных систем -совокупность программ на носителях данных и программных документов, предназначенная для отладки, функционирования и проверки работоспособности автоматизированных систем.
Автоматизированная система (АС) - организационно-техническая система, обеспечивающая выработку решений на основе автоматизации информационных процессов в различных сферах деятельности, система, состоящая из персонала и комплекса средств автоматизации их деятельности, реализующая информационную технологию выполнения установленных функций.[4]
Программа — это очень сложный продукт, который состоит из сотен тысяч «мыслей». Сложность программы - это свойство, которое необходимо и определяется четырьмя основными причинами:
- сложностью задачи;
- сложностью управления процессом разработки;
- сложностью описания поведения отдельных подсистем;
- сложностью обеспечения гибкости конечного программного продукта.
Проектирование - это разработка проекта, процесс создания спецификации, необходимой для построения еще несуществующего объекта в заданных условиях, на основе первичного описания этого объекта. Результатом проектирования является - проектное решение или совокупность этих решений, удовлетворяющих заданным требованиям, которые в свое время должны включать форму представления решения.
Спецификация в сфере проектной деятельности – это какое-либо описание в точных терминах[5].
Методики проектирования излагаются в виде описаний проектных процедур и операций. Под проектной процедурой принято понимать формализованную совокупность действий, выполнение которых оканчивается проектным решением.
Алгоритм - строго определенная для исполнителя последовательность действий, приводящих к их решению.[6]
Согласно Д. Кнуту[7] – алгоритм имеет пять важных свойств:
- Конечность (Алгоритм должен заканчиваться после выполнения конечного числа шагов);
- Определенность (Каждый шаг алгоритма должен быть точно определен);
- Наличие входных данных (Алгоритм имеет входные данные, задающиеся до начала его работы или определяющиеся динамически во время его выполнения);
- Наличие выходных данных (Алгоритм имеет одно/несколько выходных данных, имеющих определенную связь с входными данными);
- Эффективность (Алгоритм считается эффективным, если его операторы достаточно просты для того, чтобы их можно было точно выполнить при помощи бумаги и карандаша, в течении конечного промежутка времени).
Технология программирования, как наука изучает технологические процессы и порядок их прохождения (с использованием знаний, средств и методов)[8]. Технологический процесс - это последовательность действий направленных на создание заданного объекта (технологических процедур и технологических операций), каждое из которых основано на каких-либо естественных процессах и деятельности человека[9]. Знания, средства и методы могут использоваться в разных процессах и технологиях.
Программный продукт является разработанной программистом информационной технологией, которая у заказчика материализуется в виде изделия, становясь автоматизированными системами, инструментам и их обслуживания.
Программы различаются по выполняемым функциям, назначению, формам реализации. Существуют некоторые принципы, которые следует использовать при разработке программ[10]:
- Частотный принцип. (Основан на выделении в данных и алгоритмах особых групп по частоте использования. Для действий, наиболее часто встречающихся при работе программ, создаются условия быстрого выполнения.)
- Принцип модульности. (Под модулем понимается функциональный элемент рассматриваемой системы, оформленный, выполненный и законченный в пределах требований системы, и средства сопряжения с подобными элементами или более высокого уровня элементами данной или другой системы. Способы обособления составных частей программ в отдельные модули могут существенно различаться. В большей степени разделение системы на модули определяется используемым методом проектирования программ.)
- Принцип функциональной избирательности. (Принцип является логическим продолжением модульного и частотного принципов и используется при проектировании программ. В программах выделяется часть важных модулей, которые постоянно должны быть в состоянии готовности для эффективной организации вычислительного процесса.)
- Принцип генерируемости. (Основное положение принципа определяет такой способ исходного представления программы, который позволял бы осуществлять настройку на конкретную конфигурацию технических средств, условия работы пользователя и круг решаемых проблем.)
- Принцип функциональной избыточности. (Данный принцип учитывает возможность проведения одной и той же работы различными средствами. Особенно важен учет этого принципа при разработке пользовательского интерфейса для выдачи одних и тех же данных разными способами вызова из-за психологических различий в восприятии информации.)
- Принцип «по умолчанию». (Такой принцип применяется для облегчения организации связей с системой как на стадии генерации, так и при работе с готовыми программами. Принцип основан на хранении в системе некоторых базовых описаний структур, конфигураций оборудования, модулей и данных, определяющих условия работы с программой. Эту информацию программа использует в качестве заданной по умолчанию, если пользователь сознательно не конкретизирует ее или забудет.)
Системный подход[11] - общенаучный, обобщенный эвроритм, предусматривающий всестороннее исследование сложного объекта с использованием функционального, структурного, параметрического, компонентного и генетического видов анализа.
- Компонентный анализ - это рассмотрение, включающего в себя составные элементы и входящего в систему более высокого ранга объекта .[12]
- Структурный анализ - выявление элементов объекта и связей между ними.
- Функциональный анализ - рассмотрение объекта как комплекса выполняемых им полезных и вредных функций.[13]
- Параметрический анализ - установление качественных пределов развития объекта - физических, экономических, экологических и др. Применительно к программам параметрами могут быть: время выполнения какого-нибудь алгоритма, размер занимаемой памяти и т.д. При этом выявляются ключевые технические противоречия, мешающие дальнейшему развитию объекта, и ставится задача их устранения за счет новых технических решений.
- Генетический анализ - исследование объекта на его соответствие законам развития программных систем.[14] В процессе анализа изучается история развития (генезис) исследуемого объекта: конструкции аналогов и возможных частей, технологии изготовления, объемы тиражирования, языки программирования и т.д.
При блочно-иерархическом подходе (частном эвроритме системного подхода, который часто используется в программировании и в технике) процесс представления и проектирования о самом объекте разделяется на уровни. На самом высшем уровне используется наименее детальное представление, отражающее общие особенности и черты проектируемой системы. На каждом новом последовательном уровне разработки степень подробности рассмотрения растет, при этом система рассматривается не в целом, а отдельными блоками.
Методология данного подхода базируется на трех концепциях:
- Разбиения и локальной оптимизации (Концепция разбиения позволяет сложную задачу проектирования системы или объекта свести к решению более простых задач с учетом их взаимосвязи. Локальная оптимизация - подразумевает улучшение параметров внутри каждой простой задачи.)
- Абстрагирования (Абстрагируемость - заключается в построении моделей, отражающих только значимые в данных условиях свойства объектов.)
- Повторяемости (Повторяемость - в использовании существующего опыта проектирования.)