Файл: .Классификация языков программирования. Критерии выбора среды и языка разработки программ..pdf
Добавлен: 23.04.2023
Просмотров: 93
Скачиваний: 1
СОДЕРЖАНИЕ
1.Основные понятия о программном обеспечении ПК
Понятие программного обеспечения и его классификация
1.2. Инструментальное программное обеспечение
2. Характеристика средств разработки программных продуктов
2.1. Проблема выбора средств разработки
2.2.Классификация языков программирования и программных средств
3. Использование выбора программных средств для создания программного продукта
3.1. Выбор программного средства для разработки
К таким относятся следующие программные средства: Delphi, Visual C++, Visual Basic, С++ Builder, Java Builder и многие другие.
Использование средств такого типа оправдано, когда нужно в сжатые сроки создавать приложение с понятным и удобным и графическим интерфейсом.[3]
Приняв во внимание все вышеперечисленные аргументы, для создания программных продуктов целесообразно использовать средства быстрой разработки RAD.
Для функционирования любого программного комплекса, необходима некоторая программная среда, а в простейшем случае представленная ОС. В сложных случаях, если система обрабатывает большое количество данных, что необходимо поддерживать и контролировать в актуальном состоянии, присутствует некоторая СУБД.
Для обоснованного и правильного выбора RAD-средства нужна оценка продуктов за определенным критериям экспертами.
Непосредственно получить оценку таких продуктов можно с специальных источников. Хотя эта оценка дается, имея специфику разработки некоторого приложения.
Рациональный выбор средства для разработки приложения можно выполнить только в контексте определенного проекта и конкретной организации, которая ведет разработку.[6]
Поэтому для правильной оценки всех средств разработки приложения очень нужна оценка экспертов, которые ознакомлены с спецификой разрабатываемого приложения и вопросами его модификации и сопровождения. [9]
Во внимание принимаются различные критерии по оценке качества программного продукта, а именно такие, что учитывают аспекты всех разрабатываемых программных продуктов:
– доступность программных средств для реализации и разработки;
– cоответствие выбранных программных средств уровню программиста;
– возможности программных средств при разработке профессиональных приложений;
– перспективность и жизнеспособность компаний изготовителей программных средств, а также возможность обновления, наличия новых версий программных продуктов;
– оценка качества средств по надежности, производительности и удобства работы;
– возможность перехода с однопользовательского варианта к сетевому, для разных средств разработки и эксплуатации;
– стыковка с огромным спектром других СУБД, возможности переноса БД в данное программное средство;
– модульный принцип построения;
– возможность подключения к разным корпоративным сетям, поддержка постоянно развивающихся веб-технологий;
– скорость компиляции приложения;
– наличие документации, документации в электронном исполнении, справочных систем;
– скорость работы приложения;
– простота языка программирования;
– наличие интегрированного отладчика;
– обработка исключительных ситуаций.
2.2.Классификация языков программирования и программных средств
Развитие вычислительной техники всегда сопровождается созданием и совершенствованием существующих методов и средств общения программистов – языков программирования (ЯП).[12]
Под ЯП понимают такое представления данных, а также записи алгоритмов для их обработки, которые выполняются автоматически ЭВМ. В абстрактном виде ЯП – средством создания программных продуктов и моделей внешнего мира.
К настоящему времени уже созданы десятки различных языков от самых примитивных и до близких к обычному языку человека. Чтоб разобраться во всем разнообразии ЯП, нужно узнать их классификацию, также историю создания и тенденции развития.
Также, чтобы понимать тенденции развития языков, нужно знать их движущие силы в эволюции.
Языками низкого уровня (до 1966 г.) называются все языки ассемблеров, что представляет каждую команду для машинного кода, не как числа, а с помощью некоторых условных символьных обозначений, которые называются мнемониками. [15]
Однозначное преобразование одной такой машинной инструкции в команду ассемблера является транслитерацией. Поскольку наборы инструкций для всех моделей процессора отличаются, то конкретной компьютерной архитектуре может соответствовать свой язык ассемблера, а написанная на нем любая программа может использоваться только в этой среде.
При помощи языков низкого уровня можно создавать очень компактные и эффективные программы, ведь разработчик получает доступ к всем возможностям процессора. Хотя при этом:
– требуется хорошо понимать непосредственно устройство компьютера,
– сильно затрудняется отладка огромных программ,
– результирующая программа не всегда не может быть перенесена на ПК с иным типом процессора.
Такие языки обычно применяются при написании драйверов устройств, небольших системных приложений, модулей стыковки с оборудованием.
Языки высокого уровня (с конца 60-х годов 20 века) значительно ближе и понятны человеку, чем компьютеру. Особенности таких конкретных компьютерных архитектур не учитываются, поэтому и создаваемые программы на уровнях исходных текстов очень легко переносимы на иные платформы, для которых и создан транслятор языка.
Разрабатывать такие программы на языках высокого уровня при помощи мощных и понятных команд значительно проще, при этом ошибок при создании таких программ допускается меньше.[18]
Языки программирования делят на пять поколений:[2]
– Первое поколение. Конец 40-х годов, когда компьютеры только появились. Первый язык ассемблера, который создан по принципу «одна инструкция – одна строка».
– Второе поколение. Начало 60-х – середина 60-х годов – разработан символический ассемблер, где и появилось понятие переменной.[14]
Основными примерами языков является:
– Fortran (1955-1956);
– Algol-60 (1959-1960);
– Cobol (1958-1962);
– Lisp (1958);
– Basic (1965);
– PL/1 (1963).
- Третье поколение. Конец 60-х годов – появились универсальные языки высокого уровня, при этом при их помощи удается решать задачи по любых областях:[14]
– АЛГОЛ-68;
– ПЛ/1;
– СИМУЛА-67.
Такие качества языков, как простота, независимость от компьютера и возможность применения мощных синтаксических конструкций, позволяют резко повышать производительность труда всех программистов. Подавляющее большинство таких языков этого поколения применяется успешно и сегодня.
Появляются развитые системы для программирования с оптимизирующими, специализированных текстовыми редакторами, отладочными трансляторами, библиотеками стандартных программ, макробиблиотеками, средствами диалоговой отладки и анализа в терминах входных языков.
Разрабатываются развитые ОС, первые СУБД, разные системы автоматизации документирования и системы для управления программной конфигурацией (а именно, отслеживания модификаций версий ПО).
– Четвертое поколение. Середина 70-х годов и по настоящее время – языки такого поколения предназначены для использования в крупных проектах, повышают их надежность, скорость создания, ориентированы на специальные области применения, используют не универсальные, проблемно-ориентированные языки, которые оперируют конкретными понятиями узкой области.
В эти языки также встраиваются мощные операторы, которые позволяют одной строкой описать функциональность, для реализации которой потребовались бы тысячи инструкций исходного кода.
Типовым представителем этого этапа является ЯП Pascal. Компонентный подход также лежит в основе всех технологий, разработанных с помощью COM (компонентная модель объектов), а также технологии создания разных распределенных приложений CORBA (общая архитектура с обработкой запросов объектов).
Такие технологии используют разные сходные принципы, а также различаются только особенностями их реализации.[19]
Технология СОМ от фирмы Microsoft является продуктом развития технологии OLE (внедрение и связывание объектов), которая применяется в Windows.
Технология СОМ определяет всеобщую парадигму взаимодействия различных программ любых типов: [13]
– приложений;
– библиотек;
– операционной системы.
То есть, позволяет одной части ПО использовать функции (или службы), предоставляемые другой частью, независимо от того, могут ли функционировать эти части в границах одного процесса, в различных процессах на 1 компьютере или в разных компьютерах (рисунок 3).
Рисунок 3 – Взаимодействие программных компонентов для различных типов
– Пятое поколение. Начало 90-х годов и по настоящее время – к этому поколению относят системы автоматического создания для прикладных программ при помощи визуальных средств разработки, даже без знания программирования.
Основная идея, которая закладывается в такие языки, – это возможность автоматического формирования результата на универсальных языках программирования.
К тому же, инструкции вводятся в ПК в максимально наглядном виде при помощи методов, которые наиболее удобны для человека, что не знаком с программированием.
К таким языкам относятся:[1]
– Cи;
– Modula-2;
– Ada;
– Prolog;
– Smalltalk;
– C++;
– Java;
– C#.
Развиваются инструментальные интегрированные среды разработки программного обеспечения. Получает признание объектно-ориентированный подход к программированию и проектированию. Разрабатываются программы, что поддерживают создание ПО на всех этапах.
Сейчас существует один единственный язык, что работает с мета-данными, – язык команд менеджеров пакетов и менеджеров зависимостей, например, apt, smart, yum, maven, cpan и прочие.
Они оперируют метаданными о метаданных в пакетах. Использование yum, apt-get и smart действительно очень сильно повысило производительность администраторов
Использование менеджеров зависимостей, например, maven, cpan, pim, easy_install, rakudo, действительно значительно повысило также производительность программистов, примерно до 10-ти раз.
К сожалению, такие языки являются только языками командной строки, они не являются ЯП.
Во второй главе рассмотрены основные этапы эволюции языков программирования, рассмотрены типовые программные средства тех этапов, изучены принципы выбора средств разработки.
3. Использование выбора программных средств для создания программного продукта
3.1. Выбор программного средства для разработки
Необходимо создать программный продукт, который бы имитировал работу банкомата.
Банкомат – автомат для выдачи денег по кредитным карточкам. В его типичный состав входят такие устройства: [17]
– дисплей;
– приемник кредитных карт;
– панель управления с кнопками;
– хранилище денег;
– хранилище конфискованных карт;
– лоток для выдачи денег;
– принтер для справок.
Банкомат подключается к линии связи для выполнения обмена данных с некоторым банковским компьютером, хранящим разные сведения о счетах различных клиентов.
Обслуживание клиента будет начинаться с момента помещения конкретной пластиковой карточки в приемник банкомата.
После распознавания вида пластиковой карточки, банкомат выдаст на дисплей приглашение о введении персонального кода.
Персональный код – это четырехзначное число. Далее банкомат проверяет правильность кода.
Если код неправильный, пользователю предоставляются две попытки ввести правильный код. [13]
В случае следующих неудач карта переместится в хранилище карт, сеанс обслуживания закончится.
После ввода кода правильно, банкомат предлагает пользователю выбирать операцию. Клиент сможет либо снять наличные, либо запросить остаток на счету.
При снятии денег со счета банкомат предложит указать сумму. После выбора суммы банкомат запросит, нужно ли печатать чек по операции. Затем он посылает запрос на выдачу выбранной суммы к центральному компьютеру банка. [11]
В случае получения положительного разрешения на операцию, банкомат проверит, имеется ли нужная сумма в хранилище денег.
Если он выдаст деньги, то выводится на дисплей сообщение «Выньте карту». Далее, после удаления карточки с приемника, банкомат выдает сумму в лоток для выдачи. Банкомат напечатает чек по произведенной операции, когда он был затребован клиентом.
Если же клиент хочет узнать свой остаток на счету, банкомат посылает запрос к центральному компьютеру и выводит сумму. По требованию клиента также печатается и выдается чек.
Выполним выбор средства разработки.
Разработанный программный продукт должен обеспечивать возможность имитировать работу обычного банкомата, а также применять функциональные возможности при работе с программой.