Автор работы: Пользователь скрыл имя, 10 Ноября 2014 в 02:32, шпаргалка
Методология процедурно-ориентированного программирования.
Методология объектно-ориентированного программирования.
Методология объектно-ориентированного анализа и проектирования.
В эпоху развития алгоритмических языков программирования, казалось, что достаточно разработать последовательность элементарных действий, каждое из которых преобразовывать в понятные компьютеру инструкции для решения практически любой задачи. Данная идея оказалась настолько жизнеспособной, что долгое время управляла процессом разработки программ и послужила поводом к бурному развитию специальных языков программирования, которые преобразовывали отдельные вычислительные операции в соответствующий программный код. Основой данной методологии являлась процедурная или алгоритмическая организация структуры программного кода. Основным понятием являлось понятие алгоритма, под которым понималось предписание выполнения точно определенной последовательности действий. Именно на этом этапе программирования возникает новая наука – теория алгоритмов, так же блок-схемы алгоритма, это понятие вкладывается даже в ГОСТ. На тот момент это была единственная эффективная технология программирования.
В процессе разработки программ оказалось, что трудоемкость разработки программных приложений ниже затрачиваемых усилий, что значительно увеличивало дополнительные расходы на разработку, и постоянно отдаляла конечные сроки готовности программ. С расширением областей приложений компьютерных программ изменялись и функциональные требования к разработчикам, что усложняло их работу и делало окончание работ практически невозможным. Следствием являлось значительное увеличение групп разработки программ, в группы включались специалисты других областей программирования, такие как анализаторы, тестеры и программисты для адаптации. Это вызвало другую проблему: главный упор делался не на разработку программы, а на управление и манипулирование данными. В связи с этими недостатками возникает новая методология ООП, которая способна решать комплекс проблем, с достаточно малой численностью групп разработки и существенно увеличенной надежностью программ. Фундаментальным понятием становится понятие класса или объекта.
Класс – абстракция совокупности объектов, которые имеют общий набор свойств и обладают одинаковым поведением. При этом каждый объект рассматривается как экземпляр класса и объекты, не имеющие одинаковых свойств и поведения, могут использоваться в программах независимо друг от друга. На основе этого разработка программ осуществлялась не в виде алгоритмов, а в виде некоторой иерархической структуры, которая по внешнему виду представляет классификацию объектов понятиями формальной логики.
Необходимость анализа предметной области до начала написания программного кода была осознана при появлении первых масштабных программных проектов, когда группы проектов состояли из нескольких десятков специалистов, когда появилась необходимость хранить огромные БД по своему наполнению. Процесс разработки БД на данном этапе существенно отличается от написания программного кода для решения вычислительных задач. Главное отличие методологии заключается в том, что при проектировании строится так называемая концептуальная модель программного продукта, которая отражает все взаимосвязи и объекты предметной области, структуру и архитектуру будущего программного продукта (основные части программного кода и взаимосвязи между ними) и особенности организации работы группы проектов над программным продуктом. Именно в этой методологии возникают подходы к программированию, и в этой методологии вводится понятие жизненного цикла программного продукта. Данный этап методологии дает толчок к появлению инструментариев быстрой разработки приложений (RAD инструментарий). В данной методологии предполагалось, что группа разработки занимается только смысловым наполнением основных частей программ, организация модулей и структурных частей, а так же взаимосвязи между ними система воспроизводила автоматически. На основе этой технологии разрабатывается концепция автоматизированной разработки ПО. CASE – автоматизированная разработка программного обеспечения.
Системный анализ, как научное направление имеет более давнюю историю, чем ООП и ООАП. Центральным понятием системного анализа является понятие системы, под которой понимается совокупность объектов, компонентов или элементов произвольной природы, образующих некоторую целостность для достижения поставленной цели. Основной причиной рассматривать программный продукт, как систему явилось то, что у системы в целом появляются свойства и характеристики, которые не присущи ни одной из составляющих, то есть процесс соединения отдельных частей в целое порождает совершенно новый объект с новыми свойствами и характеристиками. В данной методологии рассматриваются 2 важных аспекта:
Яркой предпосылкой этой методологии является диаграмма UML.
Основоположником языка являются две вещи: теория множеств и параллельные процессы Хоара.
Исходным понятием теории множеств является само понятие множество, под которым принято понимать некоторую совокупность объектов, хорошо различимых нашей мыслью или интуицией. При этом не делается никаких предположений ни о природе этих объектов, ни о способе их включения в данную совокупность. Отдельные объекты, составляющие то или иное множество, называют элементами данного множества.
Примеров конкретных множеств можно привести достаточно много. Это и множество квартир жилого дома, и множество натуральных чисел и др.
В теории множеств используется специальное соглашение, по которому множества обозначаются прописными буквами латинского алфавита, и традиция эта настолько общепризнана, что не возникает никакого сомнения в ее целесообразности. При этом отдельные элементы обозначаются строчными буквами, иногда с индексами, которые вносят некоторую упорядоченность в последовательность рассмотрения этих элементов. Важно понимать, что какой бы то ни было порядок, вообще говоря, не входит в исходное определение множества.
Принято называть элементы отдельного множества принадлежащими данному множеству. Данный факт записывается при помощи специального символа "е", который так и называется – символ принадлежности.
Следующим важным понятием, которое служит прототипом многих более конкретных терминов при моделировании сложных систем, является понятие подмножества. Если есть некоторая совокупность, рассматриваемая как множество, то любая ее часть и будет являться подмножеством. Для обозначения подмножества используется специальный символ. Если утверждается, что множество А является подмножеством множества В, то это записывается как Аа В. Запоминать подобные значки не всегда удобно, поэтому со временем была предложена специальная система графических обозначений.
Как же используются диаграммы Венна в теории множеств? Оказывается, тот факт, что некоторая совокупность элементов образует множество, можно обозначить графически в виде круга. В этом случае окружность имеет содержательный смысл или, выражаясь более точным языком, семантику границы данного множества. Очевидно, что рассмотрение отношения включения элементов одного множества в другое можно изобразить графически. На рисунке большему множеству В соответствует внешний круг, а меньшему множеству (подмножеству) А – внутренний.
Подобным образом можно изобразить и основные теоретико-множественные операции. Так, пересечением двух множеств А и В называется некоторое третье множество С, которое состоит из тех и только тех элементов двух исходных множеств, которые одновременно принадлежат и множеству А, и множеству В.
Следующей операцией, которая также допускает наглядную интерпретацию, является операция объединения множеств. Под объединением двух множеств А и В понимается некоторое третье множество, пусть это будет D, которое состоит из тех и только тех элементов, которые принадлежат или А, или В, или им обоим одновременно.
Последнее, на что следовало бы обратить внимание при столь кратком знакомстве с основами теории множеств – это на так называемые понятия мощности множества и отношения множеств. В случае конечного множества ситуация очень простая, поскольку мощность конечного множества равна количеству элементов этого множества.
Ситуация усложняется, когда рассматриваются бесконечные множества, т. е. множества, не являющиеся конечными. Такими множествами принято считать множества, содержащие бесконечное число элементов, которые, однако, можно перенумеровать натуральными числами 1, 2, 3 и т. д. При этом важно иметь в виду, что достичь последнего элемента при такой нумерации принципиально невозможно, иначе множество окажется конечным. Или, говоря строгим языком, это множество имеет конечную мощность.
Это фундаментальное понятие отношения множеств, которое часто заменяется терминами связь или соотношение. Данный термин ведет свое происхождение от теории множеств и служит для обозначения любого подмножества упорядоченных кортежей, построенных из элементов некоторых исходных множеств. При этом под кортежем понимается просто набор или список элементов, важно только, чтобы они были упорядочены
Хотя и существует некоторая неоднозначность в принятых обозначениях, кортеж из двух элементов удобно обозначать как <a1, a2>, из трех элементов – <a1, a2, a3> и т. д. При этом отдельные элементы могут принадлежать как одному и тому же множеству, так и различным множествам. Важно иметь в виду, что порядок выбора элементов для построения кортежей строго фиксирован для конкретной задачи.
Граф можно рассматривать как графическую нотацию для бинарного отношения двух множеств. Бинарное отношение состоит из таких кортежей или списков элементов, которые содержат только два элемента некоторого множества.
Графом называется совокупность двух множеств: множества точек или вершин и множества соединяющих их линий или ребер. Формально граф задается в виде двух множеств: G=(V, Е), где V={v1v2, ..., vn} – множество вершин графа, а Е={е1, е2, ..., еm} – множество ребер графа. Натуральное число n определяет общее количество вершин конкретного графа, а натуральное число m – общее количество ребер графа. Вершины графа изображаются точками, а ребра – отрезками прямых линий. Рядом с вершинами и ребрами записываются соответствующие номера или идентификаторы, позволяющие их идентифицировать однозначным образом.
Графы широко применяются для представления различной информации о структуре систем и процессов. Примерами подобных графических моделей могут служить: схемы автомобильных дорог, соединяющих отдельные населенные пункты; схемы телекоммуникаций, используемых для передачи информации между отдельными узлами; схемы программ, на которых указываются варианты ветвления вычислительного процесса. Общим для всех конкретных подобных моделей является возможность представления информации в графическом виде в форме соответствующего графа. При этом отдельные модели, как правило, обладают дополнительной семантикой и специальными обозначениями, характерными для той или иной предметной области.
Важными понятиями теории графов являются понятия маршрута и пути, которые ассоциируются с последовательным перемещением от вершины к вершине по соединяющим их ребрам или дугам. Для неориентированного графа маршрут определяется как конечная или бесконечная упорядоченная последовательность ребер, таких, что каждые два соседних ребра имеют общую вершину. Нас будут интересовать только конечные, т. е. такие маршруты, которые состоят из конечного числа ребер. Для ориентированного графа соответствующая последовательность дуг называется ориентированным маршрутом, если две соседние дуги имеют общую вершину, которая является концом предыдущей и началом последующей дуги.
Если в маршруте не повторяются ни ребра, ни вершины, как в случае S1 и S3, то такой неориентированный маршрут называется простой цепью.
Если в ориентированном маршруте не повторяются ни ребра, ни вершины, то такой ориентированный маршрут называется путем. Последнее понятие также иногда применяется для обозначения простой цепи в неориентированных графах и для определения специального класса графов, так называемых деревьев. В общем случае деревья служат для графического представления иерархических структур или иерархий, занимающих важное место в ООАП.
Деревом в теории графов называется такой граф D=<V, E>, между любыми двумя вершинами которого существует единственная простая цепь, т. е. неориентированный маршрут, у которого вершины и ребра не повторяются. Применительно к ориентированным графам соответствующее определение является более сложным, поскольку основывается на выделении некоторой специальной вершины v0, которая получила специальное название корневой вершины или просто – корня. В этом случае ориентированный граф D=<V, Е> называется ориентированным деревом или сокращенно – деревом, если между корнем дерева v0 и любой другой вершиной существует единственный путь, берущий начало в v0.
Важно иметь в виду, что в теории графов дерево «растет» вниз, а не вверх, как в реальной жизни.
Информация о работе Шпаргалка по "Программированию и компьютерам"