ALTE DOCUMENTE
|
||||||||||
Выбор и обоснование операционной системы и языка программирования 14414r1715o
Подавляющее большинство современных пользователей знают, что работа на компьютере не возможна без операционной системы. Линейку самых гибких, универсальных и надёжных операционных систем представляет компания 14414r1715o Microsoft Windows претерпело сильные изменения 14414r1715o по сравнению с начальной версией Windows
Любому современному программисту, который желает идти в ногу с последними веяния 14414r1715o ми, каждые несколько лет приходится переучиваться. Языки (C++, Visual Basic, Java), библиотеки (MFC, ATL, STL), архитектуры (COM, CORBA), которые стали вехами в развитии программирования 14414r1715o за последние годы, постепенно уходят в тень лучших или по крайней мере более молодых программных технологий.
Платформа .NET компании Microsoft - это следующая волна коренных изменений, которая идет к нам из Редмонда.
Перед разработкой «Обучающей интеллектуальной программы диалогового построения 14414r1715o трасс логического вывода» необходимо выбрать:
язык программирования 14414r1715o , на котором будет разрабатываться программа.
MS Windows 2000;
MS Windows XP;
MS Windows
Исходя из требований к средствам программирования 14414r1715o , можно выбрать один из следующих языков визуального объектно-ориентированного программирования 14414r1715o :
Microsoft Visual C
Microsoft Visual Basic
Microsoft Java
Microsoft Visual C
Проведем морфологический анализ выбранных средств, определим правила предпочтения 14414r1715o , весовые коэффициенты и значения 14414r1715o частных критериев для выбранных альтернатив.
Язык программирования 14414r1715o |
|
MS Windows 2000 |
Microsoft Visual C++ |
MS Windows XP |
Microsoft Visual Basic |
MS Windows |
Microsoft Java |
Microsoft Visual C# |
Комбинируя элементы морфологического ящика, можно получить самые разные варианты выбора. Любая линия 14414r1715o , проведённая через любые элементы этой матрицы слева на право, даёт один из возможных вариантов. Общее число таких вариантов равно произведению числа строк в каждом столбце 3*4=12.
Зададим частные критерии частей морфологического ящика, их правила предпочтения 14414r1715o и весовые коэффициенты, а также альтернативы данных частей и значения 14414r1715o частных критериев для данных альтернатив. Эту информацию сведём в таблицах с 1.2 по 1.3.
Частными критерия 14414r1715o ми при выборе операционной системы являются:
Windiws Windiws Windiws Vista
Windows
С каждой новой операционной системой визуальный интерфейс становился всё более прия 14414r1715o тен: красивые ярлычки, полупрозрачные окна, более яркий и насыщенный объектами интерфейс. Все эти нововведения 14414r1715o отражаются и на цене.
Правила предпочтения 14414r1715o | |||||
MS Windows 2000 |
MS Windows XP |
MS Windows |
|||
Видно, что MS Windows 2000 обладает меньшей стоимостью по сравнению со своими собратьями.
Для определения 14414r1715o операционной системы воспользуемся применением множества Парето аддитивного критерия 14414r1715o . Записываем в множество Парето Windows Windows Windows Windows XP Windows Windows XP Windows Vista Windows Vista Windows Windows Vista
Windows 2000:
Y1 = -7*
Windows XP:
Y2 = -7*
Windows Vista:
Y 5*(6/9)+1*(9/9)=-2,6.
Для разработки и применения 14414r1715o «Интеллектуальной обучающей программы диалогового построения 14414r1715o трасс логического вывода» будет использована ОС MS Windows 2000, т.к. расчёт аддитивного критерия 14414r1715o показал преимущество Windows
1.2.2 Выбор и обоснование языка программирования 14414r1715o
Язык программирования 14414r1715o C++
C++ - это огромный шаг вперед в отношении новых возможностей по сравнению с исходным языком С. Во многих ситуация 14414r1715o х C++ вполне допустимо представить как объектно-ориентированную надстройку над С. Такая надстройка позволяет использовать преимущества столпов объектно-ориентированного программирования 14414r1715o - инкапсуляции, полиморфизма и наследования 14414r1715o . Однако программисты, использующие C++, остаются незащищенными от многих и часто опасных особенностей С (теми же самыми низкоуровневыми возможностями работы с памятью и трудными для восприя 14414r1715o тия 14414r1715o синтаксическими конструкция 14414r1715o ми).
Существует множество библиотек для C++, основное назначение которых - облегчить написание приложений под Windows, предоставив для этой цели уже готовые классы. Одна из наиболее распространенных библиотек - это MFC (Microsoft Foundation Classes). MFC - это дополнительный уровень над Win32 API, который значительно упрощает работу программиста за счет использования 14414r1715o готовых классов, макросов и мастеров. Однако MFC - это лишь частичное решение проблемы. Даже при использовании MFC программисту приходится работать со сложным для чтения 14414r1715o кодом, весьма опасным с точки зрения 14414r1715o возможных ошибок.
Язык программирования 14414r1715o Visual Basic
Люди всегда стремятся сделать свою жизнь проще. Повинуясь этому стремлению многие программисты на C++ обратили свои взоры к гораздо более простому и дружелюбному языку, каким является Visual Basic (VB). Visual Basic позволяет
работать с достаточно сложными элементами интерфейса пользователя, библиотеками кода (например, СОМ-серверами) и средствами доступа к данным при минимальных затратах времени и сил. Visual Basic в гораздо большей степени, чем MFC, прячет от пользователя вызовы Win32 API и предоставляет большой набор интегрированных средств быстрой разработки.
Однако у Visual Basic есть и недостатки. Главный из них - это гораздо меньшие возможности, которые предоставляет этот язык, по сравнению с C++ (это утверждение справедливо, по крайней мере, для версий более ранних, чем VB.NET).
Visual Basic - это язык для работы с объектами, а не объектно-ориентированный язык в обычном понимании этого слова. В Visual Basic нет классического наследования 14414r1715o , нет поддержки создания 14414r1715o параметризованных классов, нет собственных средств создания 14414r1715o многопоточных приложений - и этот список можно продолжать еще долго.
Язык программирования 14414r1715o Java
Язык программирования 14414r1715o Java - это полностью объектно-ориентированный язык, который в отношении синтаксиса многое унаследовал от C++. Конечно, преимущества Java далеко не исчерпываются межплатформенностью. Язык Java в синтаксическом отношении проще и логичнее, чем C++. Java как платформа предоставляет в распоряжение программистов большое количество библиотек (пакетов), в которых содержится большое количество описаний классов и интерфейсов на все случаи жизни. С их помощью можно создавать стопроцентные приложения 14414r1715o Java с возможностью обращения 14414r1715o к базам данных, поддержкой передачи почтовых сообщений, клиентской частью, которой необходим только web-браузер, или наоборот, с клиентской частью, обладающей изощренным интерфейсом.
Java - это очень элегантный и красивый язык. Однако при его использовании проблем также избежать не удастся. Одна из серьезных проблем заключается в том, что при создании сложного приложения 14414r1715o на Java вам придется использовать только этот язык для создания 14414r1715o всех частей этого приложения 14414r1715o . В Java предусмотрено не так уж много средств для межъязыкового взаимодействия 14414r1715o (что понятно ввиду предназначения 14414r1715o Java быть единым многоцелевым языком программирования 14414r1715o ). В реальном мире существуют миллионы строк готового кода, которые хотелось бы интегрировать с новыми приложения 14414r1715o ми на Java. Однако это сделать очень трудно.
Java - это далеко не идеальный язык во многих ситуация 14414r1715o х. Простой пример если вы попытаетесь создать только на Java приложение, активно работающее с 3D графикой, скорее всего, вы обнаружите, что работать такое приложение будет не очень быстро. Немного подумав, вы можете прийти к выводу, что для работы с 3D графикой лучше использовать код, написанный на языке с более развитыми низко уровневыми возможностями (например, на C++). Однако интегрировать такой код кодом на Java вам будет очень сложно. Поскольку возможности для обращения 14414r1715o к API компонентам, созданным на других языках, в Java очень ограничены, говорить о реальном межъязыковом взаимодействии на основе Java не приходится.
Язык программирования 14414r1715o C NET
На момент написания 14414r1715o диплома платформа .NET и программирование на С# уже представляли собой заметное явление в мире программирования 14414r1715o . Не хочется впадать в рекламную патетику, однако я абсолютно уверен, что платформа .NET это Новый Мировой Порядок программирования 14414r1715o под Windows (а в будущем, наверное, и не только под Windows).
.NET представляет собой совершенно новый способ создания 14414r1715o распределенных, настольных и встроенных приложений. Очень важно сразу осознать, что .NET не имеет ничего общего с СОМ (кроме мощных средств интеграции двух платформ). Для типов .NET не нужны ни фабрики классов, ни регистрация 14414r1715o в системном реестре. Эти основные элементы СОМ не скрыты - их просто больше нет.
Специально для новой платформы Microsoft разработала новый язык программирования 14414r1715o - С# (Си Шарп). Этот язык, как и Java, очень многое позаимствовал из C++ (особенно с точки зрения 14414r1715o синтаксиса). Однако на С# сильно повлия 14414r1715o л и Visual Basic 6.0.
В целом можно сказать, что С# впитал в себя многое из того лучшего, что есть в самых разных языках программирования 14414r1715o , и если у вас есть опыт работы с C++, Java или Visual Basic, то вы найдете в С# много знакомого.
Очень важно отметить, что платформа .NET является полностью независимой от используемых языков программирования 14414r1715o . Можно использовать несколько .NET-совместимых языков программирования 14414r1715o (скорее всего, вскоре их будет множество) даже в рамках одного проекта. Разобраться с самим языком С# достаточно просто. Наибольшие усилия 14414r1715o потребуются, чтобы познакомиться с многочисленными пространствами имен и типами библиотеки базовых классов .NET. С этими типами (как и со своими собственными, созданными, например, на С#) можно работать из любого .NET-совместимого языка.
Решение .NET
На этом будем считать обращение к новейшей истории программирования 14414r1715o законченным. Главный вывод, с которым вряд ли кто-нибудь будет спорить, таков: тяжела жизнь Windows-программиста. На этом фоне возможности, предлагаемые платформой .NET, позволяют радикально облегчить нашу жизнь. Один из главных принципов .NET звучит так: «Изменяйте все, что хотите, откуда вам угодно».
.NET - это совершенно новая модель для создания 14414r1715o приложений под Windows(а в будущем, видимо, и под другими операционными системами).
Вот краткое перечисление основных возможностей .NET:
. Полные возможности взаимодействия 14414r1715o с существующим кодом. Вряд ли кто-нибудь будет спорить, что это - вещь очень хорошая.
. Полное и абсолютное межъязыковое взаимодействие. В .NET поддерживаются межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка.
. Общая среда выполнения 14414r1715o для любых приложений .NET, вне зависимости от того, на каких языках они были созданы. Один из важных моментов при этом - то, что для всех языков используется один и тот же набор встроенных типов данных.
. Библиотека базовых классов, которая обеспечивает сокрытие всех сложностей, связанных с непосредственным использованием вызовов API, и предлагает целостную объектную модель для всех языков программирования 14414r1715o , поддерживающих .NET.
. Действительное упрощение процесса развертывания 14414r1715o приложения 14414r1715o . В .NET нет необходимости регистрировать двойные типы в системном реестре. Более того, .NET позволяет разным версия 14414r1715o м одного и того же модуля DLL мирно сосуществовать на одном компьютере.
Проведем морфологический анализ выбранных средств, определим правила предпочтения 14414r1715o , весовые коэффициенты и значения 14414r1715o частных критериев для выбранных альтернатив.
Таблица 1.3 Частные критерии альтернатив для вариантов языка программирования 14414r1715o
Правила предпочтения 14414r1715o | ||||||
MS |
MS VB |
MS Java |
MS C# |
|||
NET Visual Studio Professional 2008 Win32 AcademicEdition.
Главными критерия 14414r1715o ми являются обучаемость и удобство использования 14414r1715o языка. Видно, что язык С# превосходит своих собратьев. Исходя из вышесказанного, «Интеллектуальная обучающая программа построения 14414r1715o трасс логического вывода» написана на языке C
|