Прикладное ПО Пользовательские интерфейсы и классы ПО

Введение

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

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

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

 

Часть 1.1

Прикладное  ПО (введение)

     Прикладно́е (специальное) програ́ммное обеспе́чение (прикладное ПО, прикладные программы) — программы, предназначенные для выполнения определенных пользовательских задач и рассчитанные на непосредственное взаимодействие с пользователем. В отличие от прикладного, системное программное обеспечение (операционная система) используется для обеспечения работы компьютера самого по себе и выполнения прикладных программ. Если в качестве простой аналогии рассматривать операционную систему как корпус, мотор, шасси, колёса и другие компоненты автомобиля (те детали которые позволяют автомобилю ехать), то роль прикладных программ будут играть рулевое управление, сиденья, приборная панель, кондиционер и т. п., то есть те части которые позволяют нам использовать автомобиль в целях передвижения в нём и разнообразные дополнительные опции, повышающие удобство этого использования. Аналогично автомобилю, которым невозможно пользоваться без руля, разве что только для обогрева помещения, так и компьютер без прикладного ПО практически бесполезен, можно из него сделать разве что файл-сервер или принт-сервер.

      Часть 1.2

Что такое  программное обеспечение?

Программное обеспечение (software) – это набор  команд, управляющих работой компьютера. Без программного обеспечения компьютер  не сможет выполнять задачи, которые  мы обычно связываем с компьютерами. Функции программного обеспечения следующие:

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

Выбор соответствующего потребностям организации  программного обеспечения – одна из ключевых задач управляющего персонала. 

 

Часть 1.3

Программы

     Программа (program) – это набор команд для  компьютера. Процесс создания или  написания программ называется программированием, а люди, которые специализируются на этом виде деятельности – программистами. Синонимом слову "программа" является термин "приложение" (application).

     Для того чтобы программа была выполнена, она должна быть загружена в оперативную память компьютера вместе с данными, которые необходимо обработать (обычно говорят запустить программу или запустить на выполнение). Когда выполнение программы завершено, она выгружается из оперативной памяти компьютера. Все современные компьютеры позволяют загрузить на выполнение несколько программ одновременно.

Часть 1.4

Основные  типы программного обеспечения 

     Существует  два основных типа программного обеспечения: системное и прикладное. Каждый тип  выполняет различные функции. Системное  программное обеспечение (system software) – это набор программ, которые управляют компонентами компьютера, такими как процессор, коммуникационные и периферийные устройства. Программистов, которые создают системное программное обеспечение, называют системными программистами.

     К прикладному программному обеспечению (application software) относятся программы, написанные для пользователей или самими пользователями, для задания компьютеру конкретной работы. Программы обработки  заказов или создания списков  рассылки – примеры прикладного программного обеспечения. Программистов, которые пишут прикладное программное обеспечение, называют прикладными программистами.

     Оба типа программного обеспечения взаимосвязаны  и могут быть представлены в виде диаграммы, изображенной на стр.3 Как видите, каждая область тесно взаимодействует с другой. Системное программное обеспечение обеспечивает и контролирует доступ к аппаратному обеспечению компьютера. Прикладное программное обеспечение взаимодействует с аппаратными компонентами через системное. Конечные пользователи в основном работают с прикладным программным обеспечением. Чтобы обеспечить аппаратную совместимость, каждый тип программного обеспечения разрабатывается для конкретной аппаратной платформы.

Часть 2.1

Прикладное  программное обеспечение

     Основной  функцией прикладного программного обеспечения является выполнение задач, поставленных конечными пользователями. Для разработки прикладного ПО может  быть использовано множество языков программирования. Каждый из этих языков имеет свои сильные и слабые стороны. 

     Чтобы работать с компьютерами первого  поколения, программисты писали свои программы  в машинных кодах (machine language) – то есть с помощью одних только нулей  и единиц. Конечным пользователям  приходилось тесно взаимодействовать  с программистами, которым, в свою очередь, чтобы разрабатывать приложения в машинных кодах, приходилось даже думать в той манере, как работают компьютеры. Программирование с помощью двоичного кода (все операции, такие как сложение, вычитание и прочие, а также сами данные, переводились в последовательность 0 и 1) было очень медленным и трудоемким процессом.

     С развитием аппаратного обеспечения  компьютеров, увеличивалась скорость обработки и емкость памяти. Это  привело к изменениям в языках программирования – они стали проще и понятнее для людей. Языки программирования в своем развитии прошли практически те же стадии, что и сами компьютеры. Диаграмма на Стр. 4 показывает, как происходило развитие языков программирования вместе с поколениями компьютеров за последние 50 лет. Основная тенденция – увеличение простоты взаимодействия пользователя с аппаратным и программным обеспечением компьютеров.

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

     Машинные  коды были языком программирования первого  поколения. Второе поколение ознаменовалось появлением в начале 50х годов  языка программирования Ассемблера (assembly language). Вместо одних только нулей и единиц, программисты теперь могли пользоваться операторами, которые были похожи на слова английского языка. Компилятор преобразовывал эти выражения в машинные коды.

     Вместе  с появлением компьютеров третьего поколения, развитие языков программирования также вступило в новую фазу. Период с середины 50-х до 70-х годов отмечен появлением первых языков программирования высокого уровня (high-level languages). Эти языки впервые позволили ученым (прежде всего, математикам) работать с компьютерами. Язык программирования FORTRAN позволял довольно легко определять переменные и использовать для вычислений математические выражения. Для языков высокого уровня, таких как FORTRAN и COBOL, понадобились более быстрые, высокоэффективные компиляторы, поскольку при преобразовании исходного кода, выходные программы получались большими.

     Четвертое поколение языков программирования зародилось в конце 70-х, а развитие их продолжается по сей день. Эти  языки существенно уменьшили  время разработки ПО и позволили  выполнять эту работу даже людям без технического образования, и не прибегая к помощи профессиональных программистов. Сегодня для выполнения многих задач программирование как таковое вообще не требуется. Например, появление приложений электронных таблиц (spreadsheets), таких как Microsoft Excel, позволяет обычным пользователям обрабатывать финансовую информацию и управлять большими массивами данных. В 60-х и 70-х годах так просто, без применения языков программирования, использовать возможности компьютеров было невозможно. 

Часть 2.2

Популярные  языки программирования

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

Ассемблер

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

       
 
 

FORTRAN

     FORTRAN – FORmula TRANslator  был спроектирован  в 1956 году в основном для инженеров, математиков и ученых, которые имеют в основном дело с формулами и проблемами, ориентированными на вычисления. На FORTRANе можно довольно просто описывать сложные вычисления, манипулировать массивами и распечатывать выходные множества чисел. Хотя на этом языке было написано немало бизнес-приложений, он не очень подходит для частых операций ввода-вывода и работы со списками. FORTRAN сравнительно легко осваивается, но его синтаксис очень требователен к точности ввода операторов, что вызывает частые ошибки и делает сложной отладку программ.

       
 
 

COBOL

     COBOL – Common Business-Oriented Language (Рис 2.9) –  общий язык для приложений, ориентированных  на бизнес и коммерцию. COBOL был  разработан в начале 60-х годов,  для того чтобы было легче  писать программы для бизнеса, которые могли использоваться в таких видах деятельности как обработка заказов, ведение бухгалтерии, планирование производства и т.д. Данные, которыми оперирует COBOL – это, прежде всего, записи, файлы, таблицы и списки. Программы, написанные на языке COBOL, относительно понятны даже неспециалистам.

       
 

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

     Десятки тысяч студентов университетов  в 60-х и начале 70-х годов впервые  получили FORTRAN для обучения разработке простых программ. Пришло это через  вводный курс по информатике либо как часть инженерного или  математического учебного плана, но, обучившись языку FORTRAN, они познакомились с истинным значением слова компьютер. Позже большинство из них поняли, что огромный компьютерный мир постоянно меняется, но FORTRAN все еще нужен им для написания программ, которые решают их производственные проблемы. Даже сегодня в научном и инженерном сообществе язык FORTRAN еще достаточно распространен и превалирует над многими языками. 

BASIC

     BASIC (Beginners All-purpose Symbolic Instruction Code) был создан  в 1964 году для обучения студентов колледжей использованию компьютеров. Вероятно, сегодня BASIC – один из самых используемых языков программирования. Это простой язык, который недавно подошел к такому уровню развития, при котором его можно использовать даже для построения больших систем высокой производительности. Слабая сторона BASICа – то что он выполняет все задачи одинаково, без оптимизации кода. Хотя BASIC прост и привлекателен, ему очень не хватает формальной структуры, которая делает язык, подобный C и C++, более подходящим для больших проектов.  

Pascal

     Названный в честь Блеза Паскаля, французского математика и философа, язык программирования Pascal был разработан швейцарским  профессором компьютерных наук Никлаусом  Виртом в конце 60-х. Программирование на Pascal стало весьма популярным на платформе микрокомпьютеров, в основном благодаря тому, что в сочетании с высокоэффективным выходным кодом, генерируемым компилятором этого языка, программы, написанные на нем занимают немного места в памяти. Благодаря наличию возможностей обработки сложных массивов данных и набору простых, но мощных команд, Pascal применяют в основном для обучения будущих профессионалов навыкам программирования. Для начинающих Pascal слишком сложен, а профессионалы для разработки сложных приложений предпочитают C. 

C и C++

     Язык  С (читается "си") был разработан в начале 70-х в AT&T Bell Labs. На сегодня  эти языки являются фактически единственным выбором для построения операционных систем и сложных приложений, таких  как электронные таблицы, компиляторы, сетевые утилиты, коммерческие приложения и проч. Операционные системы UNIX, Linux и Windows большей частью написаны на C, даже компилятор C написан на C. Эти мощные и сложные языки генерируют быстрый и эффективный код. Работать на C можно на любых компьютерах – от микроЭВМ до мэйнфреймов. Программист, владеющий С, имеет полный контроль над средой разработки и может заставить компьютер делать практически все, что ему нужно. С сильно потеснил COBOL в приложениях для бизнеса, но основная область его применения – коммерческие пакеты прикладных программ для микрокомпьютеров – серверов, рабочих станций и ПК. Как и ожидалось, эти языки очень сложны, и для того, чтобы овладеть навыками программирования на С, одного желания мало – нужен талант, как и в случае работы с Ассемблером и машинными кодами.

     В компьютерном мире было, по крайней  мере, две неудавшиеся попытки  разработать и внедрить некий  универсальный язык. Первая, в середине 60-х, ознаменовалась изобретением IBM языка, названного PL/1. Не так давно Министерство обороны США постановило разработать язык, который должен был затем получить статус стандарта. Это усилие было не более успешным, чем попытка IBM продвинуть PL/1, заменяющий сотни языков программирования, широко используемых во всём мире. 

PL/1

     PL/1 (Programming Language 1) был разработан компанией IBM в 1964 году. Это очень мощный, но и очень сложный многоцелевой язык программирования. Он пригоден для проектирования как научных, так и бизнес-приложений и даже операционных систем (огромная операционная система MULTICS была написана на PL/1). IBM, бывшая в то время безоговорочным лидером в мире компьютеров, провозгласила, что PL/1 стратегически необходим всем компаниям. Однако, попытка создать универсальный язык провалилась – программисты не желали переучиваться с COBOLа и FORTRANа на абсолютно новый язык, а коммерческие компании не хотели тратить миллионы долларов на перепроектирование своих приложений, написанных на COBOLе и FORTRANе. 

Ada

Другую  попытку создать компьютерный эсперанто  предприняло в 1980 году Министерство обороны США. Отдав привилегию разрабатывать язык, названный ADA, международному сообществу, правительство начало обсуждать заключение контрактов на его использование. Язык предполагалось использовать прежде всего для разработки программного обеспечения систем вооружений. Предполагалось, что он будет одинаково эффективен для различных аппаратных платформ. Специалисты, работавшие в правительстве США, надеялись, что именно ADA станет удачной заменой языкам программирования, применявшихся в бизнесе. Но этого не случилось по тем же причинам, что и с PL/1 – природа языка ADA весьма сложная. Несмотря на привлекательность в некоторых нюансах, в решении других проблем ADA сильно ограничен.

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

LISP и  Prolog

     LISP был создан в конце 50-х годов  математиком Джоном Маккарти (John McCarthy), который ориентировал этот  язык на формирование из вводимых  символов, которые в свою очередь  являлись операторами, переменными и значениями данных, значащих списков. LISP больше подходит для манипулирования такими списками, чем для решения громоздких числовых задач. Prolog, разработанный в 1970 году, также подходил для этих целей. Отличается же Prolog от LISP в основном тем, что с первым можно работать на обычных компьютерах, а второй работает лучше на машинах, специально созданных для работы с LISP.

Часть 2.3

СРЕДСТВА  РАЗРАБОТКИ четвертого поколения

     К языкам четвертого поколения относятся  программные инструменты, которые  позволяют пользователям разрабатывать программы, обладая минимальными техническими навыками, а также новые средства разработки, которые повышают производительность труда программистов. Языки четвертого поколения постепенно становятся менее процедурными или даже непроцедурными в сравнении с обычными языками программирования. Процедурный язык требует описания последовательных шагов, или процедур, которые "говорят" компьютеру, что нужно сделать и каким образом это должно быть сделано. Непроцедурные языки требуют от пользователя только указания, что надо сделать, без подробного описания, как это должно быть выполнено. Таким образом, с помощью непроцедурного языка можно выполнить некоторую задачу, описав меньшее число шагов, чем при решении той же задачи, пользуясь процедурным языком.

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

       
 
 
 
 
 

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

Часть 2.4

Языки запросов (введение)

      Языки запросов (query languages) являются языками  высокого уровня, которые предназначены  для извлечения информации из баз  данных. Обычно эти языки интерактивны, работают в реальном режиме времени и способны формировать запросы к нестандартизированным данным. Часто они бывают тесно связанными с системами управления базами данных и некоторыми другими программами для ПК. С помощью языка запросов можно выполнять поиск необходимой информации в базе данных, используя простые или сложные критерии отбора, с последующим выводом результатов поиска на экран монитора или печатающее устройство. Языки запросов имеют различные синтаксис и структуру, некоторые из них поддерживают не только поиск информации, но и динамическое обновление данных. Пример обычного пользовательского запроса, выполненный с помощью двух различных языков запросов, Query-by-Example и FOCUS.

Часть 2.5

Языки запросов.

Генераторы  отчетов

     Генераторы  отчетов (report generators) – это программные инструменты для создания пользовательских отчетов. Генераторы отчетов способны извлекать информацию из отдельных файлов или баз данных и создавать на основе этой информации отчеты различных видов. Как правило, эти инструменты дают большую свободу в оформлении информации, чем языки запросов. Некоторые мощные генераторы отчетов позволяют произвести над данными различные вычисления, например, вычислить итоговую сумму или среднее значение. Большинство генераторов отчетов сегодня входят в системы управления базами данных.   

Графические языки

     Графические языки (graphical languages) позволяют извлекать  данные из файлов и баз данных и  отображать найденную информацию в  графическом виде (с помощью графиков и диаграмм). Большинство подобных инструментов могут выполнять над данными арифметические и логические операции. Примерами популярных графических языков могут служить SAS, Harvard Graphics и Lotus Freelance Graphics. 

Генераторы  приложений

     Генераторы  приложений (application generators) содержат запрограммированные модули кода, которые могут генерировать целые приложения, существенно ускоряя обработку. Пользователь может указать, что он хочет получить, и генератор приложений создаст соответствующий программный код для ввода, проверки, обновления, обработки и вывода данных. Большинство полнофункциональных генераторов приложений содержат полный интегрированный набор инструментов разработки: систему управления базами данных, словарь данных, язык запросов, генератор графики, генератор отчетов, инструменты поддержки и моделирования принятия решений, средства защиты, а также язык программирования высокого уровня. Для особых ситуаций, когда требуемый код не может быть получен с помощью имеющихся модулей разработки, во многих генераторах приложений предусмотрены пользовательские выходы (user exits), куда можно вставлять программный код, написанный пользователем. 

Языки программирования очень высокого уровня

     Языки программирования очень высокого уровня (very high-level programming languages) служат для генерирования программного кода с меньшим количеством инструкций, чем у обычных языков, таких как FORTRAN или COBOL. Программы, разрабатываемые с применением языков очень высокого уровня, могут созданы в более короткие сроки. Хотя некоторые возможности этих языков могут быть использованы обычными пользователями, они все же создавались для повышения производительности труда профессиональных программистов. Окно Организаций показывает, как Канадская телефонная компания использовала один из таких языков, Magic, для решения некоторых задач.Окно Организаций Bell Quebec ремонтирует свои таксофоны с помощью Magic.

      В 1993 году канадская компания Bell Quebec (подразделение Bell Canada в Монреале) столкнулась с  множеством проблем. Часть из них  была связана с тем, что агенты по обслуживанию абонентов не успевали реагировать на их замечания и жалобы. Агенты теряли много времени, чтобы выяснить, сигнализировал ли уже кто-нибудь о той или иной проблеме с таксофоном, был ли выслан техник и устранил ли он неисправность. Когда же техник все-таки выезжал, часто он обнаруживал несколько монет в монетосборнике, что по правилам компании требовало оповестить финансовый отдел. Ремонт телефона откладывался до приезда инкассатора, который изымал из автомата деньги.

     У Bell Quebec была система мониторинга телефонных автоматов, которая периодически опрашивала каждый таксофон, чтобы выяснить, работает ли он. Однако, эта система была настоящим кошмаром. Данные передавались в мэйнфрейм, установленный в штаб-квартире компании, где они накапливались, а затем раз в день распечатывались, образовывая пачки бумаги шестидюймовой толщины (около 15 см). Затем работники компании вручную анализировали эти кипы бумаги, выясняя, какой из таксофонов неисправен, чтобы направить техника для проведения ремонта. Части системы были изолированы – в Bell Quebec службы установки и поддержки, ремонта и сервиса, маркетинга и управления финансами не были связанными друг с другом системами, каждая из них хранила свою, часто противоречивую, информацию в своем формате, и не предоставляла ее в совместное пользование другим службам. Хуже того, каждая из этих изолированных систем работала на различных аппаратных платформах – здесь были и мэйнфреймы фирм IBM, Hewlett-Packard (HP), Amdahl, и микрокомпьютеры Sequent, Tandem и DEC VAX, и рабочие станции Sun, и компьютеры HP9000, а также множество ПК и локальных сетей различной конфигурации. Операционных систем также было несколько: MVS, VMS, HP-UX и SunOS.

Пакеты  прикладных программ

     Пакет прикладных программ (software package) – это  готовый исходный код нескольких приложений, который можно приобрести у компании-разработчика или дилера. Приобретение готового исходного кода избавляет компании от необходимости писать собственное программное обеспечение для выполнения определенных задач. Существуют пакеты прикладных программ для системного ПО, но подавляющая их часть предназначена для прикладного использования.

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

Программы для персональных компьютеров

Многие  наиболее популярные инструменты четвертого поколения представляют собой приложения, разработанные для микрокомпьютеров. Это, прежде всего, текстовые редакторы, электронные таблицы, системы управления базами данных, графические инструменты, а также целые наборы офисных приложений, такие как Microsoft Office. 

ТЕКСТОВЫЕ РЕДАКТОРЫ.

      Текстовые редакторы (word processing software) позволяют  выполнять обработку текстовых  данных с помощью компьютера. Эти  программы избавляют пользователей  от многократного набора текстов  на печатающих машинках, а также позволяют качественно оформлять текстовые документы, изменяя межстрочный интервал, размеры полей, размер букв и ширину колонок текста. Наиболее популярные текстовые редакторы – Microsoft Word и WordPerfect. На рисунке изображено окно Microsoft Word с документом, содержащим текст, таблицу и элементы графики. Современные текстовые редакторы содержат модули, существенно облегчающие и автоматизирующие ввод и обработку текста: проверку орфографии и грамматики, автоматический перенос слов, словарь синонимов, опции почтовой рассылки и проч. 

ЭЛЕКТРОННЫЕ ТАБЛИЦЫ.

      Электронные таблицы (spreadsheets) представляют собой компьютеризированные версии традиционных финансовых инструментов для расчетов и моделирования, таких  как блокнот, карандаш и калькулятор. Электронные таблицы состоят из колонок и рядов, образующих сетку ячеек. В ячейки заносятся данные и формулы. При изменении значений в ячейках, все связанные с этими ячейками формулы автоматически перерасчитываются. Электронные таблицы применяются для выполнения задач, где требуется производить множество вычислений с блоками связанных друг с другом данных. Их также применяют для моделирования и анализа типа "что-если". После того как пользователь создаст набор математических взаимосвязей, электронная таблица будет автоматически выполнять перерасчет, подставляя различные блоки входных значений. Большинство приложений электронных таблиц имеют встроенные функции построения многих видов графиков и диаграмм. Это удобно для проведения анализа полученных результатов расчетов. На рмсунке вы видите окно Microsoft Excel с таблицей данных и трехмерной диаграммой. 
 
 
 
 
 
 
 

Прикладное ПО Пользовательские интерфейсы и классы ПО