Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов к проектированию программного обеспечения распределенных информационных систем
Теоретические основы структурного и объектно-ориентированного подходов, основные понятия технологии создания программного обеспечения. Суть внедрения технологий создания программного обеспечения в организации для реализации выполнения пилотного проекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 22.04.2014 |
Размер файла | 124,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Безусловно, объектно-ориентированная модель наиболее адекватно отражает реальный мир, представляющий собой совокупность взаимодействующих (посредством обмена сообщениями) объектов. Но на практике в настоящий момент продолжается формирование стандарта языка объектно-ориентированного моделирования UML, и количество CASE-средств, поддерживающих объектно-ориентированный подход, невелико по сравнению с поддерживающими структурный подход. Кроме того, диаграммы, отражающие специфику объектного подхода (диаграммы классов и т. п.), гораздо менее наглядны и плохо понимаемы непрофессионалами. Поэтому одна из главных целей внедрения CASE-технологии, а именно снабжение всех участников проекта (в том числе и заказчика) общим языком «для передачи понимания», обеспечивается на сегодняшний день только структурными методами.
При переходе от структурного подхода к объектному, как при всякой смене технологии, необходимо вкладывать деньги в приобретение новых инструментальных средств. Здесь следует учесть и расходы на обучение (овладение методом, инструментальными средствами и языком программирования). Для некоторых организаций эти обстоятельства могут стать серьезными препятствиями.
Несмотря на отдельные критические замечания в адрес ООП, в настоящее время именно эта парадигма используется в подавляющем большинстве промышленных проектов. Однако, нельзя считать, что ООП является наилучшей из методик программирования во всех случаях.
Процедурное программирование лучше подходит для случаев, когда важны быстродействие и используемые программой ресурсы, но требует большего времени для разработки.
Объектное программирование подходит когда важна управляемость проекта и его модифицируемость, а также скорость разработки.
Исследование Thomas E. Potok, Mladen Vouk и Andy Rindos показало отсутствие значимой разницы в продуктивности разработки программного обеспечения между ООП и процедурным подходом.
Кристофер Дэйт указывает на невозможность сравнения ООП и других технологий во многом из-за отсутствия строгого и общепризнанного определения ООП.
Александр Степанов, в одном из своих интервью, указывал на то, что ООП «методологически неправильно» и что «… ООП практически такая же мистификация как и искусственный интеллект…».
Фредерик Брукс (Frederick P. Brooks, Jr.) в своей статье «No Silver Bullet. Essence and Accidents of Software Engineering» (Computer Magazine; April 1987) указывает на то, что наиболее сложной частью создания программного обеспечения является « … спецификация, дизайн и тестирование концептуальных конструкций, а отнюдь не работа по выражению этих концептуальных конструкций…». ООП (наряду с такими технологиями как искусственный интеллект, верификация программ, автоматическое программирование, графическое программирование, экспертные системы и др.), по его мнению, не является «серебряной пулей», которая могла бы на порядок величины (то есть примерно в 10 раз, как говорится в статье) снизить сложность разработки программных систем. Согласно Бруксу, «…ООП позволяет сократить только привнесённую сложность в выражение дизайна. Дизайн остаётся сложным по своей природе…».
Эдсгер Дейкстра указывал: «… то о чём общество в большинстве случаев просит - это змеиное масло. Естественно, «змеиное масло» имеет очень впечатляющие имена, иначе будет очень трудно что-то продать: «Структурный анализ и Дизайн», «Программная инженерия», «Модели зрелости», «Управляющие информационные системы» (Management Information Systems), «Интегрированные среды поддержки проектов», «Объектная ориентированность», «Реинжиниринг бизнес-процессов»…».
Никлаус Вирт считает, что ООП - не более чем тривиальная надстройка над структурным программированием, и преувеличение её значимости, выражающееся, в том числе, во включении в языки программирования всё новых модных «объектно-ориентированных» средств, вредит качеству разрабатываемого программного обеспечения.
Патрик Киллелиа в своей книге «Тюнинг веб-сервера» писал: «… объектно-ориентированное программирование предоставляет вам множество способов замедлить работу ваших программ …»
Известная обзорная статья проблем современного объектно-ориентированного программирования перечисляет некоторые типичные проблемы объектно-ориентированного программирования.
При классификации критических высказываний в адрес объектно-ориентированного программирования, можно выделить несколько аспектов критики данного подхода к программированию:
1. Критика рекламы объектно-ориентированного программирования.
Критикуется явно высказываемое или подразумеваемое в работах некоторых пропагандистов объектно-ориентированного программирования, а также в рекламных материалах «объектно-ориентированных» средств разработки представление об объектном программировании как о некоем всемогущем подходе, который магическим образом устраняет сложность программирования. Как замечали многие, в том числе Брукс и Дейкстра, «серебряной пули не существует» - независимо от того, какой парадигмы программирования придерживается разработчик, создание нетривиальной сложной программной системы всегда сопряжено со значительными затратами интеллектуальных ресурсов и времени. Из наиболее квалифицированных специалистов в области объектно-ориентированного программирования никто, как правило, не отрицает справедливость критики этого типа.
2. Оспаривание эффективности разработки методами объектно-ориентированного программирования.
Критики оспаривают тезис о том, что разработка объектно-ориентированных программ требует меньше ресурсов или приводит к созданию более качественного программного обеспечения. Проводится сравнение затрат на разработку разными методами, на основании которого делается вывод об отсутствии у объектно-ориентированного программирования преимуществ в данном направлении. Учитывая крайнюю сложность объективного сравнения различных разработок, подобные сопоставления, как минимум, спорны.
3. Производительность объектно-ориентированных программ.
Указывается на то, что целый ряд «врождённых особенностей» объектно-ориентированные технологии делают построенные на её основе программы технически менее эффективными, по сравнению с аналогичными необъектными программами. Не отрицая действительно имеющихся дополнительных накладных расходов на организацию работы объектно-ориентированных программ, нужно, однако, отметить, что значение снижения производительности часто преувеличивается критиками. В современных условиях, когда технические возможности компьютеров чрезвычайно велики и постоянно растут, для большинства прикладных программ техническая эффективность оказывается, менее существенна, чем функциональность, скорость разработки и сопровождаемость. Лишь для некоторого, очень ограниченного класса программ (программное обеспечение встроенных систем, драйверы устройств, низкоуровневая часть системного программного обеспечения, научное программное обеспечение) производительность остаётся критическим фактором.
4. Критика отдельных технологических решений в объектно-ориентированных-языках и библиотеках.
Эта критика многочисленна, но затрагивает она не объектно-ориентированное программирование как таковое, а приемлемость и применимость в конкретных случаях тех или иных реализаций её механизмов. Одним из излюбленных объектов критики является язык C++, входящий в число наиболее распространённых промышленных объектно-ориентированных-языков.
Гради Буч указывает на следующие причины, приводящие к снижению производительности программ из-за использования объектно-ориентированных средств:
1. Динамическое связывание методов.
Обеспечение полиморфного поведения объектов приводит к необходимости связывать методы, вызываемые программой (то есть определять, какой конкретно метод будет вызываться) не на этапе компиляции, а в процессе исполнения программы, на что тратится дополнительное время. При этом реально динамическое связывание требуется не более чем для 20% вызовов, но некоторые объектно-ориентированные-языки используют его постоянно.
2. Значительная глубина абстракции.
Объектно-ориентированная-разработка часто приводит к созданию «многослойных» приложений, где выполнение объектом требуемого действия сводится к множеству обращений к объектам более низкого уровня. В таком приложении происходит очень много вызовов методов и возвратов из методов, что, естественно, сказывается на производительности.
3. Наследование «размывает» код.
Код, относящийся к «оконечным» классам иерархии наследования (которые обычно и используются программой непосредственно) - находится не только в самих этих классах, но и в их классах-предках. Относящиеся к одному классу методы фактически описываются в разных классах. Это приводит к двум неприятным моментам:
- снижается скорость трансляции, так как компоновщику приходится подгружать описания всех классов иерархии;
- снижается производительность программы в системе со страничной памятью поскольку методы одного класса физически находятся в разных местах кода, далеко друг от друга, при работе фрагментов программы, активно обращающихся к унаследованным методам, система вынуждена производить частые переключения страниц.
4. Инкапсуляция снижает скорость доступа к данным.
Запрет на прямой доступ к полям класса извне приводит к необходимости создания и использования методов доступа. И написание, и компиляция, и исполнение методов доступа сопряжено с дополнительными расходами.
5. Динамическое создание и уничтожение объектов.
Динамически создаваемые объекты, как правило, размещаются в куче, что менее эффективно, чем размещение их на стеке и, тем более, статическое выделение памяти под них на этапе компиляции.
Несмотря на отмеченные недостатки, выгоды от использования объектно-ориентированного программирования более весомы. Кроме того, повышение производительности за счёт лучшей организации объектно-ориентированного-кода, в некоторых случаях компенсирует дополнительные накладные расходы на организацию функционирования программы. Можно также заметить, что многие эффекты снижения производительности могут сглаживаться или даже полностью устраняться за счёт качественной оптимизации кода компилятором. Например, упомянутое выше снижение скорости доступа к полям класса из-за использования методов доступа устраняется, если компилятор вместо вызова метода доступа использует онлайн-подстановку (современные компиляторы делают это вполне уверенно).
3.5 Проблемы преподавания структурного и объектно-ориентированного программирования
В современном программировании объектно-ориентированный подход является одним из популярнейших. Средства для поддержки объектно-ориентированного программирования вошли практически во все профессиональные системы программирования. Этот стиль вместе с организационными нововведениями резко повысил качество программ, производительность труда отдельного программиста, эффективность коллективной работы программистов. Поэтому объектно-ориентированное программирование и объектно-ориентированная технология программирования уже стали неотъемлемой частью вузовских учебных программ по направлению «Информатика и вычислительная техника».
Однако, чтобы начать изучение объектно-ориентированного программирования, необходимы знания и умения основных принципов структурного программирования. Начальное обучение программированию осуществляется без использования объектно-ориентированных средств, неизбежно базируется на структурном программировании, на функциональной декомпозиции решаемых задач. У студента вырабатывается стереотип процедурного мышления. Переход к объектно-ориентированному программированию содержит в себе много неожиданностей. Использование объектной декомпозиции решаемых задач предполагает полную перестройку системного мышления. Поэтому разъяснение метафоры объектного программирования должно занимать существенную часть лекционного курса.
Объектно-ориентированное программирование, являясь в значительной мере развитой дисциплиной, включает как теоретические обоснования, так и богатый набор профессиональных практических приемов и рекомендаций. В качестве теоретической основы в объектно-ориентированном программировании используются абстрактные типы данных. Целью данной теории является обоснование автоматизированной процедуры формирования понятий, изменения понятий в процессе наследования, использования для определения одних понятий других понятий. Очень важной стадией развития объектно-ориентированного программирования является объектно-ориентированная технология проектирования программных систем, которая предоставила средства и приемы предварительного описания и документирования сложных задач автоматизации.
Однако наличие совершенных для современного уровня развития инструментов не гарантирует получение качественных программ: необходимо в совершенстве овладеть как самими инструментами, так и приемами их совместного использования, приемами работы в коллективе.
Освоение программирования можно характеризовать тремя историческими этапами, отличающимися уровнем сложности получения профессиональной квалификации.
Ранний этап характерен очень высоким уровнем сложности. Программирование осуществляется на языке кодов компьютера, позже - на языке ассемблера. От программиста требуются глубокие знания архитектуры компьютера: системы команд, методов управления памятью и управления вычислительным процессом и т. д. Появившаяся в те времена профессия «программист» относилась к элитным, загадочным.
С появлением языков программирования высокого уровня начался второй этап, характеризующийся резким снижением уровня начальной профессиональной подготовки. Идеи языка программирования стали доступны широкому кругу различных специалистов и, как следствие, программистская деятельность стала составной частью многих профессий. В этот период было создано огромное число достаточно простых программ. Потребность в автоматизации несложных задач была удовлетворена. Однако в конце двадцатого века стали резко усложняться передаваемые компьютеру задачи. На этом фоне усилились предъявляемые к программам требования: надежности, корректности, дружественного к пользователю интерфейса, простоты совершенствования и развития. Переход к технологии персональных компьютеров, сделавший этот инструмент массовым, способствовал созданию специальных средств управления вычислительным процессом. В практику программирования были введены концепции событийного программирования и защищенных от ошибок программных кодов.
С появлением объектно-ориентированного программирования начался новый, третий, этап в сложности получения базовых знаний для занятия программистской деятельностью. Теперь весьма поверхностное освоение приемов программирования позволяет создавать несложные программы. Чаще всего качество таких программ не удовлетворяет современным требованиям надежности, модифицируемости и, как следствие, время жизни программы будет небольшим. Легкость получения работающей программы создает у программистов иллюзию достаточной подготовленности. Однако для создания отвечающего всем современным требованиям сложного программного изделия необходимо глубокое понимание идей, принципов объектно-ориентированного программирования, реализации их в системе программирования, устройства объектно-ориентированной программы, объектно-ориентированной технологии создания программных систем.
Основные проблемы, возникающие в учебном процессе по освоению объектно-ориентированного программирования.
1. Объектно-ориентированное программирование ориентировано в первую очередь на создание сложных программ, а студент, выполняя лабораторные работы, решает простые задачи. В курсовых работах студент чаще всего решает локальные задачи. Руководителем проекта является преподаватель, на нем лежит ответственность за проект в целом. В результате, большая часть студентов не получает опыт создания сложных программ и, тем более, руководства процессом их разработки.
2. Объектно-ориентированное программирование создает хорошие возможности модификации программ, но эти возможности закладываются еще на этапе проектирования программы.
3. Большинство преподавателей высшей школы являются представителями старшего поколения. Как правило, они получили огромный опыт использования технологии структурного проектирования программ, основанной на алгоритмической декомпозиции больших систем. Большинство служащих примерами успешных программ разработано с применением технологии структурного проектирования. Поэтому обучение объектно-ориентированному программированию находится под (объективным и субъективным) влиянием идей структурного проектирования программ. Накопление полезного опыта объектно-ориентированного программирования в этом случае становится делом самостоятельным на основе метода проб и ошибок.
4. Наука программирования быстро развивается, поэтому полученные обычно на начальных курсах знания приемов программирования к моменту окончания ВУЗа в значительной мере устаревают. Поэтому учебный процесс должен прививать специалисту качества оперативной реакции на новые идеи и технологии программирования.
5. Сложность задач автоматизации неуклонно растет. Поэтому молодой специалист, получив представление об одном уровне сложности программных систем, попадает в условия следующего уровня сложности. Поэтому неизбежен этап адаптации к новым условиям. От выпускника опять требуются качества оперативного реагирования на изменившиеся условия работы.
6. Качественная программа должна не только решать прикладную задачу, но и быть легко читаемой, легко понимаемой. В программистской практике нередка ситуация, когда уже разработанная программа передается другому программисту для ее сопровождения и развития, работа этого программиста начинается с изучения программы. Использование хороших правил именования идентификаторов и аналогичных методических приемов существенно повышает преемственность. Поэтому доступность понимания программы является, прежде всего, практическим принципом: как показывают научные исследования, при отладке программ до 90% времени тратится на чтение исходного текста. У программиста «пишущего» программу создается иллюзия ее ясности. С целью экономии времени студенты используют заложенные в систему программирования правила именования идентификаторов, после двух недель приходится восстанавливать в памяти то, что написано ранее. В результате, на вопрос «Какое назначение кнопки Button8?», студент отвечает только после внимательного просмотра и изучения своей программы. Большую помощь в чтении программы оказывает применение правил именования идентификаторов, однако часто студенты пренебрегают этими правилами.
7. Особенность организации учебного процесса в ВУЗе состоит в том, что студент должен изучить большое число общеобразовательных, общетехнических и специальных дисциплин. Дифференциация наук достигла большого размаха и не прошла мимо объектно-ориентированного программирования, которое опирается на теорию алгоритмов, теорию абстрактных типов данных, теорию проектирования программ и др. Освоение разных дисциплин осуществляется под руководством разных преподавателей, в результате чего у студентов возникают затруднения в осознании целостности распределенного по разным дисциплинам учебного материала.
8. Перед преподавателем стоит проблема оценки знаний и навыков студентов в области объектно-ориентированного программирования, которая в значительной мере затрагивает интересы студента. Учитывая, что обсуждаемая технология ориентирована на создание сложных программ, преподавателю приходиться преодолевать серьезные трудности при выборе адекватных средств контроля или упрощать картину. Контроль знаний на уровне синтаксиса конструкций языка программирования трудно назвать удовлетворительным для объектно-ориентированного программирования.
9. Создатели программных средств, как правило, считают реализацию программ коммерческой тайной, подробно раскрывается только внешняя логика программы. Поэтому хорошие примеры реализации объектно-ориентированных программ с комментариями по выбору решений фактически отсутствуют. По этой причине, предлагая примеры программ студентам, преподаватель действует субъективно, а студенты находятся в зависимости от профессиональных пристрастий конкретного преподавателя.
Следующие проблемы это традиционные для учебного процесса.
1. Студенческий контингент неоднороден: одни студенты пришли получить профессию, другие - диплом, третьи - по рекомендации. Перед преподавателем стоит проблема выбора студента, который будет изучать программирование, углублено.
2. Практические занятия опережают теоретические занятия. Преподаватель должен организовать самостоятельную работу студентов по предварительному овладению теоретическими знаниями.
3. Последовательность дисциплин в учебном процессе часто не отвечает требованиям первичности-вторичности получения знаний. И причина здесь не в плохой организации учебного процесса, а в сильной взаимосвязи многих дисциплин в рамках одной специальности. В последнем случае преподавателю часто приходиться отвлекаться на краткие экскурсы в другие дисциплины.
Основным инструментом программиста является система программирования, которая содержит средства для построения всего спектра современных информационных технологий. Многие учебники по объектно-ориентированному программированию представляют, по сути, справочники по визуальным компонентам и приемам их задействования в программе. Однако все визуальные компоненты в обозначенное учебным планом время подробно рассмотреть невозможно. Поэтому преподавателю, решая задачу выбора перечня рассматриваемых компонентов, приходиться ранжировать компоненты, определяя важность, значимость каждого из них. Однозначно просмотреть и изучить все компоненты невозможно, поэтому часто здесь присутствует субъективизм и личные пристрастия. Этим можно объяснить и тот факт, что в разных учебниках рассматриваются разные наборы визуальных компонентов. Основной путь получения профессиональных знаний и навыков использования визуальных компонентов заключается в самостоятельной работе. Не случайно появилось высказывание: «Чтобы научиться программированию, нужно программировать».
В этих условиях основной задачей преподавателя является обучение методике освоения программирования с использованием библиотеки визуальных компонентов. Во-первых, необходимо рассмотреть иерархию компонентов, которая является своеобразным путеводителем по компонентам и помогает понять взаимодействие компонентов. Во-вторых, целесообразно изучение начинать с корня иерархии компонентов, для каждого компонента подробно рассматриваются только те методы и свойства, которые впервые появились в нем, вспоминая при этом свойства и методы, которые компонент унаследовал. Полученные знания позволят студентам самостоятельно добраться до листьев иерархии визуальных компонентов. В-третьих, необходимо изучить окружение программы, в котором работают компоненты.
Конечной целью обучения программированию является умение самостоятельно создавать качественные программные изделия. Система контроля по дисциплине «Объектно-ориентированное программирование» должна быть ориентирована в первую очередь на оценку навыков разработки программ. Как правило, знание теории позволяет студенту и специалисту создавать качественные программы.
Таким, образом, в условиях учебного процесса студент не всегда имеет возможность в полной мере ощутить потребность в использовании рекомендаций объектно-ориентированного программирования и оценить их по достоинству. Выпускник ВУЗа, получивший образование в области информатики и вычислительной техники на примере простых программ, под руководством «структурно-ориентированных» преподавателей и на примере успешных «структурно-ориентированных» программ вынужден во время получения образования и на начальном этапе профессиональной деятельности самостоятельно отфильтровывать идеи структурного проектирования программ, несовместимые с идеями объектно-ориентированной технологии. Кроме того, современные системы программирования уже не содержат средства поддержки структурного проектирования программ.
Заключение
Первая глава магистерской диссертации описывает технологии структурного и объектно-ориентированного подходов а также примеры технологий создания программных обеспечений различных компаний-поставщиков, таких как: Rational Unified Process (IBM Rational Software), Oracle, Borland, Computer Associates.
По прогнозам IDC, рынок технологий создания программного обеспечения, испытавший определенный кризис в 2002 году, в ближайшее пятилетие ожидает устойчивый рост в среднем на 6, 3% в год. Определяющим фактором для развития этой тенденции является стремление компаний-разработчиков повысить продуктивность своей работы, сократить сроки вывода новых продуктов на рынок, контролировать расходы и быстро получать отдачу от инвестиций. Достижению этих целей способствует использование сред разработки, позволяющих снизить сложность процессов создания программного обеспечения, увеличить их эффективность, уменьшить затраты на разработку и максимально использовать потенциал новых технологий. Аналитики сходятся на том, что основное направление развития инструментальных средств - их сквозная интеграция, переход от частично интегрированных средств к интегрированным комплексам, объединяющим возможности управления требованиями, моделирования, разработки, тестирования, управления конфигурацией и изменениями и развертывания приложений. В ближайшие годы такие комплексы, помимо перечисленных возможностей будут включать в себя средства управления потоками работ и проектами. Рынок таких инструментальных средств ожидает глобальная консолидация, обещающая принести значительные выгоды разработчикам. В то же время проблема обоснованного выбора и эффективного применения технологии создания программного обеспечения в крупномасштабных проектах остается актуальной. Невозможно достичь удовлетворительных результатов от применения даже самых совершенных технологий, если они применяются бессистемно, разработчики не обладают необходимой квалификацией для работы с ними, и сам проект выполняется и управляется хаотически. Систематический, обоснованный подход к выбору и применению технологии создания программного обеспечения может сократить время и повысить качество разработки программного обеспечения, обеспечить высокую степень его независимости от конкретных разработчиков, а также снизить затраты на разработку и сопровождение программного обеспечения.
Вторая глава диссертации рассматривает методические основы технологий создания программного обеспечения. Среди современных информационных технологий программирование занимает особое место. В технологиях программирования в определенной степени синтезируются все достижения информатики на каждом этапе ее развития. Визуальное программирование - одна из современных технологий программирования. В ее основе лежит объектно-ориентированный подход к описанию процессов (явлений), который, по утверждению ряда исследователей, является одним из наиболее эффективных и удобных средств, используемых сегодня программистами для создания больших программных систем. Кроме того, при визуальном программировании учитывается вероятностная природа решаемых задач, что, естественно, более соответствует реальной действительности. Навыки программирования в среде визуального программирования в настоящее время становятся перспективным компонентом профессиональной деятельности преподавателя информатики.
Сопоставление и взаимосвязь структурного и объектно-ориентированного подхода к проектированию программного обеспечения информационных систем рассматривается в третьей главе диссертации. В данной главе описываются структурный и объектно-ориентированный подходы в проектировании программного обеспечения информационных систем. Изучены проблемы преподавания структурного и объектно-ориентированного программирования. Несмотря на то, что изучение основ структурного программирования входит в государственный образовательный стандарт общего и среднего образования по информатике, значительная часть первокурсников имеет весьма слабое представление о программировании вообще. Значительные затруднения при изучении разделов программы, связанных с алгоритмизацией и программированием, испытывают и те студенты, которые изучали основы программирования в рамках школьного курса информатики. Успешной является их весьма незначительная часть (примерно до 10% от их общего числа). Такая ситуация является достаточно стабильной в течение последних лет.
Таким образом, программирование стало одновременно и простым, и сложным, а учебный процесс по изучению объектно-ориентированного программирования накопил целый ряд противоречий объективного и субъективного характера.
Глоссарий
№ п/п |
Понятие |
Определение |
|
1 |
Абстрагирование |
мысленное выделение, вычленение некоторых элементов конкретного множества и отвлечение их от прочих элементов данного множества. |
|
2 |
Адаптация |
процесс накопления информации в системе, направленный на достижение оптимального состояния. |
|
3 |
Алгоритм |
предписание, задающее на базе системы правил последовательность операций, точное выполнение коих позволяет решать задачи определенного класса. |
|
4 |
Архитектура компьютера |
логическая организация, структура и ресурсы компьютера, которые может использовать программист |
|
5 |
Верификация |
установление соответствия принятой и переданной информации с помощью логических методов |
|
6 |
Визуальное программирование |
программирование, предусматривающее создание приложений с помощью наглядных средств. При этом программист показывает, что должно получиться в результате, а текст программы генерируется автоматически с помощью визуального прототип |
|
7 |
Генерация |
функция построения, при которой настоящие действующие процессы, работая в режиме объединения с другими встречающимися процессами, образуют связующие концепции. |
|
8 |
Декомпозиция |
метод, использующий структуру задачи и позволяющий заменить решение одной большой задачи решением серии меньших задач. |
|
9 |
Заглушка |
процедура, представленная точной спецификацией заголовка и пустым телом. |
|
10 |
Инкапсуляция |
сокрытие внутренней структуры данных и реализации методов объекта от остальной программы |
|
11 |
Интеграция |
состояние связанности отдельных дифференцируемых частей и функций системы в целое, а также процесс, ведущий к такому состоянию. |
|
12 |
Итерация |
повторное применение математической операции в серии аналогичных операций, производимых для получения результата. |
|
13 |
Концепция |
основополагающая идея теории |
|
14 |
Методология |
система принципов и способов организации и построения теоретической и практической деятельности, а также учение об этой системе. |
|
15 |
Наследование |
свойство объекта, заключающееся в том, что характеристики одного объекта (объекта-предка) могут передаваться другому объекту (объекту-потомку) без их повторного описания |
|
16 |
Подход |
комплекс парадигматических, синтагматических и прагматических структур и механизмов в познании и/или практике, характеризующий конкурирующие между собой (или исторически сменяющие друг друга) стратегии и программы |
|
17 |
Полиморфизм |
способность объекта выбирать правильный метод в зависимости от типа данных, полученных в сообщении |
|
18 |
Программирование |
процесс подготовки задач для их решения с помощью компьютера; итерационный процесс составления программ |
|
19 |
Программист |
специалист, занимающийся разработкой и проверкой программ |
|
20 |
Процедура |
часть программы, предназначенная для выполнения некоторых стандартных действий, зависящих, в общем случае, от входных параметров |
|
21 |
Реинжиринг |
радикальное переосмысление и перепроектирование деловых процессов для достижения резких, скачкообразных улучшений главных современных показателей деятельности компании, таких, как стоимость, качество, сервис и темпы. |
|
22 |
Репозиторий |
хранилище место, где хранятся и поддерживаются какие либо данные. |
|
23 |
Стратегия |
набор правил, согласно которым предпринимаемые действия должны зависеть от обстоятельств, включая естественные события и действия других людей. |
|
24 |
Типизация данных |
классификация данных по областям их значений; и по операциям, в которых они участвуют |
|
25 |
Функция |
поименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо. |
Размещено на Allbest.ru
...Подобные документы
Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Особенности объектно-ориентированного проектирования. Основные понятия объектно-ориентированного подхода. Основы языка UML, варианты его использования. Диаграммы классов и взаимодействия. Разработка диаграммы прецедентов (вариантов использования).
курсовая работа [1,1 M], добавлен 13.05.2014Понятие технологии разработки программного обеспечения и модели жизненного цикла. Сущность объектно-ориентированного подхода. Строительные блоки, общие механизмы языка моделирования UML, диаграммы классов, состояний, взаимодействий и компонентов.
курсовая работа [262,5 K], добавлен 10.07.2014Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.
курсовая работа [1,6 M], добавлен 23.02.2016История развития информационных технологий. Классификация, виды программного обеспечения. Методологии и технологии проектирования информационных систем. Требования к методологии и технологии. Структурный подход к проектированию информационных систем.
дипломная работа [1,3 M], добавлен 07.02.2009Оформление технического задания на разработку программы или программного изделия для вычислительных машин и комплексов. Принципы объектно-ориентированного программирования в среде Delphi. Ознакомление на конкретных примерах с технологиями OLE и СОМ.
отчет по практике [8,4 M], добавлен 04.02.2011История развития языков программирования; создание и распространение языка С++; новый подход к разработке объектно-ориентированного программного обеспечения. Применение моделирования предметных областей для структуризации их информационных отражений.
реферат [29,1 K], добавлен 06.12.2010Виды архитектуры распределенных информационных систем. Сущность синхронного и асинхронного, блокирующего и неблокирующего взаимодействия в распределенных информационных системах. Основные проблемы и принципы реализации удаленного вызова процедур.
реферат [26,4 K], добавлен 22.06.2011Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.
курсовая работа [30,4 K], добавлен 29.06.2010Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.
презентация [379,5 K], добавлен 30.04.2014Основные процессы разработки, приобретения и внедрения сложных систем. Семейство стандартов ISO 9000. Зрелые и незрелые организации-разработчики программного обеспечения. Основные направления формирования метрик для оценки компьютерных программ.
дипломная работа [656,8 K], добавлен 27.11.2012Понятие объектно-ориентированного программирования, общая характеристика языков высокого уровня. Разработка программного обеспечения для реализации компьютерной игры "пинбол" с помощью императивного программирования в среде Microsoft Visual Basic.
курсовая работа [428,9 K], добавлен 19.09.2012Анализ проблематики построения объектно-ориентированного канала связи. Основные понятия протокола Modbus. Возможности CodeSys для реализации объектно-ориентированного подхода. Разработка методики кроссплатформенной библиотеки для интеграции устройств.
курсовая работа [38,6 K], добавлен 15.06.2013Особенности реализации главных элементов разрабатываемой программы (цифровые элементы) с помощью объектно-ориентированного подхода. Применение принципа инкапсуляции для защиты данных. Конструирование классов, описание и тестирование программного продукта.
курсовая работа [2,3 M], добавлен 10.05.2015Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Анализ современного рынка программных продуктов. Понятие виртуального тура и возможности его применения. Изучение программного обеспечения и технологии создания виртуальных туров. Панорамный снимок и виртуальная брошюра. Настройка параметров панорамы.
курсовая работа [3,5 M], добавлен 22.03.2016Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Схемы взаимодействия между заказчиком и разработчиком программного обеспечения. Качество программного обеспечения и определение основных критериев его оценка на современном этапе, особенности управления на стадиях жизненного цикла, анализ достаточности.
презентация [114,7 K], добавлен 14.08.2013Реализация задачи использования методики SDLC (управление жизненным циклом разработки программного обеспечения) при внедрении реальной системы информационных технологий. Описание проекта внедрения системы автоматической регистрации участников выставок.
реферат [585,1 K], добавлен 10.09.2010