Сопоставление и взаимосвязь сруктурного и объектно-ориентированного программирования

Автор работы: Пользователь скрыл имя, 14 Апреля 2014 в 12:28, диссертация

Описание работы

Цель исследования состоит в изучении взаимосвязи структурного и объектно-ориентированного подходов к проектированию программного обеспечения распределенных информационных систем.

Содержание работы

Введение
1 Технологии создания программного обеспечения
1.1 Технология структурного программирования
1.2 Технология объектно-ориентированного программирования
1.3 Технология Rational Unified Process (IBM Rational Software)
1.4 Технология Oracle
1.5 Технология Borland
2 Методические основы технологий создания программного обеспечения
2.1 Визуальное моделирование
2.2 Методы структурного анализа и проектирования программного обеспечения
2.3 Методы объектно-ориентированного анализа и проектирования программного обеспечения
2.4 Методы моделирования бизнес-процессов и спецификации требований
2.5 Методы анализа и проектирования программного обеспечения
3 Структурное и объектно-ориентированное программирование в проектировании программного обеспечения распределенных информационных систем
3.1 Проектирование программного обеспечения распределенных информационных систем
3.2 Структурный подход к проектированию информационных систем
3.3 Проектирование информационных систем на основе объектно-ориентированного подхода
3.4 Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов
3.5 Проблемы преподавания структурного и объектно-ориентированного программирования
Заключение
Глоссарий
Список использованных источников
Литература

Файлы: 1 файл

Жанбекова.doc

— 571.00 Кб (Скачать файл)

Однако наличие совершенных для современного уровня развития инструментов не гарантирует получение качественных программ: необходимо в совершенстве овладеть как самими инструментами, так и приемами их совместного использования, приемами работы в коллективе.

Освоение программирования можно характеризовать тремя историческими этапами, отличающимися уровнем сложности получения профессиональной квалификации.

Ранний этап характерен очень высоким уровнем сложности. Программирование осуществляется на языке кодов компьютера, позже – на языке ассемблера. От программиста требуются глубокие знания архитектуры компьютера: системы команд, методов управления памятью и управления вычислительным процессом и т.д.  Появившаяся в те времена профессия «программист» относилась к элитным, загадочным.

С появлением языков программирования высокого уровня начался второй этап, характеризующийся резким снижением уровня начальной профессиональной подготовки. Идеи языка программирования стали доступны широкому кругу различных специалистов и, как следствие, программистская деятельность стала составной частью многих профессий. В этот период было создано огромное число достаточно простых программ. Потребность в автоматизации несложных задач была удовлетворена. Однако в конце двадцатого века стали резко усложняться передаваемые компьютеру задачи. На этом фоне усилились предъявляемые к программам требования: надежности, корректности, дружественного к пользователю интерфейса, простоты совершенствования и развития. Переход к технологии персональных компьютеров, сделавший этот инструмент массовым, способствовал созданию специальных средств управления вычислительным процессом. В практику программирования были введены концепции событийного программирования и защищенных от ошибок программных кодов.

С появлением объектно-ориентированного программирования начался новый, третий, этап в сложности получения базовых знаний для занятия программистской деятельностью. Теперь весьма поверхностное освоение приемов программирования позволяет создавать несложные программы. Чаще всего качество таких программ не удовлетворяет современным требованиям надежности, модифицируемости и, как следствие, время жизни программы будет небольшим. Легкость получения работающей программы создает у программистов иллюзию достаточной подготовленности. Однако для создания отвечающего всем современным требованиям сложного программного изделия необходимо глубокое понимание идей, принципов объектно-ориентированного программирования, реализации их в системе программирования, устройства объектно-ориентированной программы, объектно-ориентированной технологии создания программных систем.

Основные проблемы, возникающие в учебном процессе по освоению объектно-ориентированного программирования.

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% в год. Определяющим фактором для развития этой тенденции является стремление компаний-разработчиков повысить продуктивность своей работы, сократить сроки вывода новых продуктов на рынок, контролировать расходы и быстро получать отдачу от инвестиций. Достижению этих целей способствует использование сред разработки, позволяющих снизить сложность процессов создания программного обеспечения, увеличить их эффективность, уменьшить затраты на разработку и максимально использовать потенциал новых технологий. Аналитики сходятся на том, что основное направление развития инструментальных средств - их сквозная интеграция, переход от частично интегрированных средств к интегрированным комплексам, объединяющим возможности управления требованиями, моделирования, разработки, тестирования, управления конфигурацией и изменениями и развертывания приложений. В ближайшие годы такие комплексы, помимо перечисленных возможностей будут включать в себя средства управления потоками работ и проектами. Рынок таких инструментальных средств ожидает глобальная консолидация, обещающая принести значительные выгоды разработчикам. В то же время проблема обоснованного выбора и эффективного применения технологии создания программного обеспечения в крупномасштабных проектах остается актуальной. Невозможно достичь удовлетворительных результатов от применения даже самых совершенных технологий, если они применяются бессистемно, разработчики не обладают необходимой квалификацией для работы с ними, и сам проект выполняется и управляется хаотически. Систематический, обоснованный подход к выбору и применению технологии создания программного обеспечения может сократить время и повысить качество разработки программного обеспечения, обеспечить высокую степень его независимости от конкретных разработчиков, а также снизить затраты на разработку и сопровождение программного обеспечения.

Вторая глава диссертации рассматривает методические основы технологий создания программного обеспечения. Среди современных информационных технологий программирование занимает особое место. В технологиях программирования в определенной степени синтезируются все достижения информатики на каждом этапе ее развития. Визуальное программирование - одна из современных технологий программирования. В ее основе лежит объектно-ориентированный подход к описанию процессов (явлений), который, по утверждению ряда исследователей, является одним из наиболее эффективных и удобных средств, используемых сегодня программистами для создания больших программных систем. Кроме того, при визуальном программировании учитывается вероятностная природа решаемых задач, что, естественно, более соответствует реальной действительности. Навыки программирования в среде визуального программирования в настоящее время становятся перспективным компонентом профессиональной деятельности преподавателя информатики.

Информация о работе Сопоставление и взаимосвязь сруктурного и объектно-ориентированного программирования