Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП лекции Разделы 1-3.doc
Скачиваний:
20
Добавлен:
28.09.2019
Размер:
1.95 Mб
Скачать

1.1.5. Платформа .Net.

.NET представляет собой одновременно две вещи. Во-первых, это биб­лиотека, такая же большая, как и Windows API. Вы можете использовать ее для вызова тех же функций, которые традиционно выполнялись операционной системой Windows: ото­бражение диалоговых и обычных окон, проверка удостоверений безопасности, вызов основных служб операционной системы, создание потоков и т.д. Кроме того, предлагают­ся новые возможности, например доступ к базам данных, соединение с Интернетом, пре­доставление служб Web.

Во-вторых, платформа .NET — это среда, в которой выполняется программа. В этом контексте речь идет о среде исполнения .NET (также известной как общая среда ис­полнения (CLR)), которая представляет собой программное обеспечение, связанное с выполнением пользовательских программ. Когда исполняется код, написанный для .NET (обычно применяется термин "управляемый (managed) код"), платформа .NET запус­кает код, управляет потоками, предоставляет различные вспомогательные службы и на са­мом деле является той средой, которую "видит" вокруг себя исполняемый код. Можно с таким же успехом рассматривать .NET как среду, обеспечивающую некоторый уровень абстракции от операционной системы.

Однако необходимо отметить, что сама по себе.NET не является операционной сис­темой. Среда исполнения .NET представляет собой прослойку между ОС Windows и другими приложениями, предлагая более современный, простой и объектно-ориентированный каркас для разработки и выполнения кода. В ряде случаев придется отказаться от преимуществ, предлагаемых .NET, и напрямую использовать Windows API, и это можно будет делать с помощью С# (или управляемого кода, созданного на C++ или VB.NET). Конечно, более ранние приложения, которые не были созданы специально для .NET (неуправляемые приложения), будут напрямую работать с Windows и Windows API так же, как прежде. Описанная ситуация представлена на рисунке ниже:

С применением платформы .NET любой язык, включая VB.NET, С# и управляемый C++, может компилироваться в общий промежуточный язык. Это означает, что языки совместимы на совершенно новом уровне. Например, в отлад­чике можно перешагивать с кода C++ прямо на код С#, а затем на код VB.NET без ка­ких-либо проблем. Более того, все языки используют теперь общую среду разработки.

Тема 1.2. Организация процесса проектирования программного обеспечения (по)

1.2.1. Проблемы разработки сложных программных систем.

Большинство современных программных систем объективно очень сложны. Эта сложность обуславливается многими причинами, главной из ко­торых является логическая сложность решаемых ими задач.

Пока вычислительных установок было мало, и их возможности были ог­раничены, ЭВМ применяли в очень узких областях науки и техники, причем, в первую очередь, там, где решаемые задачи были хорошо детерминированы и требовали значительных вычислений. В наше время, когда созданы мощ­ные компьютерные сети, появилась возможность переложить на них реше­ние сложных ресурсоемких задач, о компьютеризации которых раньше никто и не думал. Сейчас в процесс компьютеризации вовлекаются совершенно но­вые предметные области, а для уже освоенных областей усложняются уже сложившиеся постановки задач.

Дополнительными факторами, увеличивающими сложность разработки программных систем, являются [10]:

  • сложность формального определения требований к программным сис­темам;

  • отсутствие удовлетворительных средств описания поведения дискрет­ных систем с большим числом состояний при недетерминированной после­довательности входных воздействий;

  • коллективная разработка;

  • необходимость увеличения степени повторяемости кодов.

Сложность определения требований к программным системам. Слож­ность определения требований к программным системам обусловливается двумя факторами. Во-первых, при определении требований необходимо учесть большое количество различных факторов; Во-вторых, разработчики программных систем не являются специалистами в автоматизируемых пред­метных областях, а специалисты в предметной области, как правило, не мо­гут сформулировать проблему в нужном ракурсе.

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

Коллективная разработка. Из-за больших объемов проектов разработка программного обеспечения ведется коллективом специалистов. Работая в коллективе, отдельные специалисты должны взаимодействовать друг с дру­гом, обеспечивая целостность проекта, что при отсутствии удовлетворитель­ных средств описания поведения сложных систем, упоминавшемся выше, достаточно сложно. Причем, чем больше коллектив разработчиков, тем сложнее организовать процесс работы [8]. .

Необходимость увеличения степени повторяемости кодов. На слож­ность разрабатываемого программного продукта влияет и то, что для увели­чения производительности труда компании стремятся к созданию библиотек компонентов, которые можно было бы использовать в дальнейших разработ­ках. Однако в этом случае компоненты приходится делать более универсаль­ными, что в конечном итоге увеличивает сложность разработки.

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