T.M. SoftStudio

feci quod potui, faciant meliora potentes

Купить полную версию курса "Введение в вычисления с Java" (русскоязычная версия, лекции, тесты, лабораторные работы)

Введение в вычисления с Java. Обзор

Неделя 1

Лекция 3

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

Компьютерная техника сама по себе не была бы очень полезна.

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

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

Этот вид инструкций можно назвать программным обеспечением.

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

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

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

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

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

Некоторые примеры системного программного обеспечения это операционные системы и системы перевода или компиляторы для языков программирования, таких как Java, Python и C + +.

Другой тип системного программного обеспечения называется утилитами.

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

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

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

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

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

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

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

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

В общем, пользовательский интерфейс обеспечивает взаимодействие между человеком и компьютером, его иногда называют взаимодействием человека с компьютером (или HCI).

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

Важной частью ОС является обеспечение пользовательского интерфейса между операционной системой и пользователем.

Например, файловая система является частью операционной системы.

Хороший интерфейс для системы управления файлами позволит пользователям поддерживать и манипулировать своими файлами эффективно и результативно.

В существующих компьютерах есть в основном два вида пользовательских интерфейсов, а именно интерфейс командной строки и графический интерфейс пользователя (или GUI).

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

Примером командной строки является программа cmd, которую вы найдете в системе Microsoft Windows.

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

Например, команда "cd ..", чтобы изменить текущий рабочий каталог на один уровень вверх, и "dir", чтобы вывести список файлов в текущем каталоге.

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

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

Я уверен, что все из вас знакомы с каким-нибудь графическим интерфейсом пользователя (GUI).

В GUI вы можете найти на экране графические объекты, такие как значки, выпадающие меню и окна.

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

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

Вот пример, показывающий, как можно было бы манипулировать файлами с помощью перетаскивания.

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

Мы часто используем графический пользовательский интерфейс, разработанный другими.

Здесь, конечно, вы также узнаете, как разрабатывать свой собственный графический интерфейс пользователя с помощью Event Driven программирования.

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

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

Задачи, которые компьютер может выполнять, включают в себя многие бизнес операции и ежедневные приложения.

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

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

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

Некоторое широко используемое программное обеспечение может быть сгруппировано в следующие категории.

Первая категория это производительное программное обеспечение, например, MS Word для подготовки документов, Excel Access для создания баз данных и ppt для подготовки презентаций.

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

Другой вид прикладного программного обеспечения, с которым я уверен, многие из вас знакомы, является коммуникационным программным обеспечением, особенно то, которое вы используете для общения через Интернет.

Вы можете использовать интернет-браузеры, такие как Internet Explorer, Safari, Chrome или Firefox для поиска информации в WWW.

Многие из вас общаются с друзьями по электронной почте или Facebook.

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

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

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

Есть мобильные приложения для игр и для общения с другими людьми, развлекательные приложения для прослушивания музыки или просмотра фильмов, навигационные приложения, такие как Google Maps для путешествий, и многое другое.

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

Давайте теперь взглянем на операционные системы или ОС.

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

Некоторые популярные ОС предназначены для компьютеров Apple, или Mac OS, которая используется Mac ПК, последняя версия OS X и IOS, которая используется iPhone и IPad.

Компания Microsoft начала продавать MS DOS в начале 1980-х и операционную систему Windows в середине 80-х.

Последняя версия – Windows 8, которая обеспечивает лучший пользовательский интерфейс для мобильных устройств.

Другие ОС включают UNIX и Linux, которая также является UNIX-подобной ОС.

Другая популярная ОС для мобильных устройств – Android, разработанная Google.

Android разработан на основе ядра Linux и имеет сейчас самую большую долю рынка среди всех мобильных ОС.

Вот некоторые из важных сервисов, предлагаемых операционной системой.

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

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

Операционная система также несет ответственность за управление устройствами ввода и вывода.

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

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

Многочисленные окна, которые вы открыли, управляются ОС.

Языки программирования

Мы только что говорили о прикладном программном обеспечении и системном программном обеспечении.

Это на самом деле программы, которые были написаны на определенных языках программирования.

Например, операционная система UNIX, которая является системным программным обеспечением, написана в основном на языке С.

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

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

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

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

Преимуществом использования языков программирования высокого уровня является то, что их легче читать, писать и поддерживать.

Вот некоторые примеры из языков программирования высокого уровня:

Fortran рассматривается как один из первых языков программирования высокого уровня. Он был разработан в 1950-х годах.

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

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

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

Вы до сих пор можете найти, что многие системы банков и финансовых учреждений написаны на Cobol.

Basic является одним из самых простых в изучении языков.

VBA Microsoft или Visual Basic for Applications является реализацией Visual Basic вместе со своей интегрированной средой разработки.

С это язык программирования общего назначения, разработанный в AT & T Bell Labs в начале 1970-х.

Многие черты C были приняты многими более поздними языками, включая C ++, который является объектно-ориентированной версией С.

Другой язык программирования, который приобрел популярность в последнее время, это Python, он впервые появился в 1990-х годах.

Он поддерживает несколько парадигм программирования, в том числе императивное, объектно-ориентированное и функциональное программирование.

Java это язык программирования, который мы собираемся использовать для этого курса, был разработан в 1990-х годах Sun Microsystems, которая была приобретена Oracle.

Он особенно популярен для веб-приложений из-за его мобильности.

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

Это потому, что программы Java компилируются в форме, называемой байт-кодом, который может быть запущен на виртуальной машине Java (JVM), установленной на другом компьютере.

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

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

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

Программы могут быть введены в компьютер, используя какой-либо из редакторов.

Это может быть простой текстовый редактор, такой как блокнот, или более сложный редактор, например MS Word.

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

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

Программа перевода является своего рода системным программным обеспечением, потому что она взаимодействует с другими программами.

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

Этот процесс часто называют компиляцией.

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

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

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

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

Процесс связывания создаст компьютерный исполняемый код, который обычно хранится в .exe файле.

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

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

Если обнаружена ошибка, программу нужно пересмотреть и провести через последовательность шагов разработки снова.

В настоящее время, все эти процессы могут осуществляться в интегрированной среде разработки (IDE).

Интегрированная среда разработки (IDE) является программным приложением, которое обеспечивает интерактивные инструменты для программистов, чтобы упростить цикл разработки программного обеспечения и таким образом, улучшить производительность.

Далее приведем общие компоненты в IDE.

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

Редактор в IDE часто предоставляет инструменты, которые помогут вам отформатировать и документировать программы.

Некоторые могут даже помочь вам сделать некоторую первоначальную проверку на синтаксис.

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

Часто существуют ошибки в программах, даже для программ, написанных опытными программистами.

Отладчик может помочь в выявлении и локализации ошибок.

Это позволяет программисту проследить шаг за шагом выполнение программы.

В отладке программы, есть два распространенных типа ошибок, а именно синтаксические ошибки и семантические ошибки.

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

Это похоже на грамматику в естественном языке, таком как английский язык.

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

Программа может быть синтаксически правильным, но она может не давать предполагаемое значение.

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

Например, если вы бы дали следующее указание, подумайте о том, какое может быть значение этой инструкции.

Например, инструкция может быть "to feed her dog food".

Можно интерпретировать – кормить ее собаку едой или кормить ее собачьей едой.

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

Для компьютера, он всегда даст каждой программе ровно одну интерпретацию.

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