Система разработки новых программ на определенном языке программирования называется
Обновлено: 21.11.2024
Спрос на студентов, специализирующихся в области информационных технологий, остается высоким. Из 10 наиболее востребованных степеней бакалавра четыре связаны с компьютером. К ним относятся следующие степени:
Информатика
Информатика и системы
Вычислительная техника
Информационные системы управления/обработка бизнес-данных
Как сообщается в Справочнике по профессиональным перспективам Министерства труда США, занятость программистов, веб-разработчиков, системных аналитиков и сетевых архитекторов, по прогнозам, вырастет в диапазоне от 22 до 30 процентов в период с 2010 по 2020 год, быстрее, чем прогнозируется в среднем. рост общего числа профессий.
Программа бакалавриата по компьютерному программированию и информационным системам требует набора основных курсов, которые должны пройти все выпускники. Базовые курсы обеспечивают разнообразную, но фундаментальную основу в области технологий, необходимую для создания технически подкованного человека. Кроме того, студент выбирает курсы по программированию, разработке систем, созданию сетей, веб-разработке или базам данных. Каждый курс предлагает учащемуся набор навыков в одной дисциплине информационных технологий и позволяет ему/ей углубленно изучать определенную область.
Эта программа затрагивает все аспекты компьютерного программирования и информационных систем. Он предлагает практический подход к программированию с упором на решение бизнес-задач.
Типичные возможности трудоустройства
Специалисты по компьютерной поддержке
Специалисты по информационным технологиям
Аналитики по передаче данных
Специалисты по обеспечению качества
Аналитики ERP
Системные аналитики
Программисты/аналитики
Аналитики баз данных
Веб-разработчики
Сетевые администраторы
Приложения программного обеспечения
Технолог компьютерных сетей
Технолог компьютерных сетей Cisco
Специалист по приложениям Infor для визуальных и облачных интерфейсов ERP Программный аналитик Oracle Software Applications
Программисты преобразовывают спецификации проекта, касающиеся постановки задач и процедур, в подробный код на компьютерном языке. Они также будут разрабатывать и писать компьютерные программы для хранения и извлечения документов, данных и информации.
Системный аналитик анализирует деловые, научные и технические проблемы для применения в компьютерных системах.
Для тех, кто интересуется сетями, наша программа предлагает курсы совместно с Сетевой академией Cisco. Студенты, проходящие эти курсы, получают сертификаты обучения по каждому курсу непосредственно от Cisco. Эти курсы готовят каждого учащегося к сдаче экзамена Cisco Certified Network Associate (CCNA).
Профессионалы в области веб-разработки пользуются спросом в связи с ростом Интернета и распространением Всемирной паутины (графической части Интернета). Этот быстрый рост привел к возникновению множества профессий, связанных с проектированием, разработкой и обслуживанием веб-сайтов и их серверов.
Специалисты по базам данных будут готовы к разработке и администрированию передовых баз данных, от которых зависит отрасль.
Результаты программы «Компьютерное программирование и информационные системы» (BS):
- Выпускники будут обучены решать технические проблемы и получат знания и навыки, необходимые для работы и роста в этой востребованной рабочей силе.
- Выпускники будут иметь возможности для практического обучения, такие как стажировки и/или завершающие проекты.
- Выпускники будут иметь представление о социальных и этических проблемах, связанных с информационными технологиями.
- Выпускники будут эффективно общаться и успешно работать в команде.
Зачисление в Государственный колледж Фармингдейл – Государственный университет Нью-Йорка осуществляется на основе квалификации поступающего независимо от возраста, пола, семейного или военного положения, расы, цвета кожи, вероисповедания, религии, национального происхождения, инвалидности или сексуальной ориентации.
Один из распространенных способов определения языка программирования: "искусственный язык, созданный для того, чтобы кто-то мог давать инструкции компьютеру". Компьютеры не понимают английский, арабский или китайский, и хотя люди технически могут выучить двоичный код (базовый язык компьютеров), почти никто этого не делает. Вот почему нам нужен какой-то промежуточный способ общения, который мы называем языками программирования.
Как видно из раздела I, программисты создавали языки программирования и программные решения с первых дней существования вычислительных систем. В этом разделе вы узнаете, как развивались языки программирования и что с ними можно делать.
Низкоуровневые языки программирования
Изначально, на заре компьютеров, ассемблерный код и двоичный код были основными языками для общения с компьютерами, чтобы просить их выполнять команды путем преобразования данных в единицы и нули; двоичный.
Машинный код, также известный как двоичный язык, представляет собой последовательность нулей и единиц, представляющую команду для процессора компьютера (ЦП). Язык ассемблера намного читабельнее, чем бинарный язык. Ассемблер использует мнемонические коды для обращения к инструкциям машинного кода, а не напрямую использует числовые значения инструкций.
Можно подумать, что эти языки больше не важны, поскольку они невидимы для большинства пользователей компьютеров, но реальность такова, что мы все еще используем эти языки на наших современных компьютерах. Они являются основой любого компьютера. Каждый ЦП может выполнять определенный набор инструкций, соответствующий марке или архитектуре этого ЦП.
Но зачем вам в любом случае изучать низкоуровневые языки и низкоуровневое программирование? Причин много, в том числе:
Некоторые части наших операционных систем и даже вирусы написаны на ассемблере.
Если вы хотите заниматься программированием GPU с использованием языков высокого уровня, таких как CUDA или OpenCL, вам необходимо понимать низкоуровневое программирование.
Если вы хотите улучшить машинное обучение, вы можете оптимизировать свой код, используя язык ассемблера для эффективного управления памятью.
Если вы хотите глубже понять, как работают операционные системы, знание языка ассемблера будет полезно. Язык ассемблера обычно используется в загрузочном коде системы, низкоуровневом коде, который инициализирует и тестирует системное оборудование перед загрузкой операционной системы
Язык ассемблера полезен при обратном проектировании. Многие программы распространяются только в форме машинного кода, который легко перевести на язык ассемблера с помощью дизассемблера, но сложнее перевести на язык более высокого уровня с помощью декомпилятора.
Узнав, как и почему вы можете больше узнать о языках низкого уровня, мы готовы изучить языки высокого уровня.
Языки программирования высокого уровня
Мы знаем, что компьютер понимает двоичный код, но мы сами этого не понимаем — или понимают лишь немногие люди в мире.
В конце 50-х годов пользователям компьютеров (в основном ученым и представителям крупного бизнеса) часто приходилось самим писать программное обеспечение. Недостатком этого было то, что в каждом бизнесе или лаборатории должен был быть кто-то, способный программировать компьютер, а программное обеспечение было создано для одной конкретной компьютерной системы, что делало невозможным его обмен с другими, поскольку они были бы несовместимы. Были изобретены компиляторы, и это способствовало развитию языков программирования высокого уровня, более абстрактных языков, которые легче понять.
Компилятор переводит код, написанный на одном языке программирования, на другой язык программирования.
Первыми языками высокого уровня, разработанными в 50-х годах, были FORTRAN, COBOL и BASIC. Они позволяли задавать программы абстрактно, независимо от точных деталей аппаратной архитектуры компьютера. (Вольфрам, 2002 г.).
Эти языки используются для написания программ, которые представляют собой полные и функциональные наборы инструкций, которые компьютеры используют для выполнения задач, таких как загрузка веб-страницы, выполнение статистического анализа и нахождение суммы двух чисел. Однако код не распознается напрямую ЦП. Вместо этого он должен быть скомпилирован в язык низкого уровня.
Поскольку компиляция большого кода может занять очень много времени, программисты изобрели интерпретаторы.
Интерпретатор напрямую выполняет инструкции, написанные на языке программирования, не требуя, чтобы компилятор компилировал их в программу на машинном языке.
Некоторые языки программирования используют как компиляторы, так и интерпретаторы. Если бы вы писали программу на Java в текстовом редакторе, то при ее компиляции с помощью компилятора Java вы фактически создавали бы нечто, называемое байт-кодом. Байт-код можно рассматривать как промежуточный этап между исходным кодом и объектным кодом. Когда компьютер выполняет программу Java, библиотечные программы на этом компьютере интерпретируют байт-код. Это позволяет Java быть независимым от платформы — пользователю нужны правильные библиотеки времени выполнения для Java на его компьютере, чтобы выполнять программы.
В чем разница между языками низкого и высокого уровня?
Основное отличие заключается в том, что программистам легче понять, интерпретировать или скомпилировать язык высокого уровня по сравнению с машинным кодом. С другой стороны, машины могут понимать низкоуровневый язык легче, чем люди. Давайте посмотрим на другие отличия:
Язык высокого уровня | Язык низкого уровня |
---|---|
Язык, удобный для программиста | Язык, удобный для машин |
Язык высокого уровня менее эффективно использует память | Язык низкого уровня высокая эффективность памяти |
Проще отлаживать | Относительно сложно отлаживать |
Проще поддерживать td> | Относительно сложный в обслуживании |
Портативный | Не переносимый |
Может работать на любая платформа | Зависит от машины |
Требуется компилятор или интерпретатор для перевода | Требуется ассемблер для перевода | tr>
Широко используется в программировании | В настоящее время редко используется в программировании |
Написание собственных программ/программ
Существует целая дисциплина, посвященная созданию программного обеспечения (продуктов), называемая программной инженерией. Сначала вы немного узнаете о разработке программного обеспечения, а затем о языках программирования.
Что такое программная инженерия?
Когда вы думаете о программном обеспечении, вы обычно видите интерфейс, который позволяет вам делать что-то с компьютером, например писать текст. Программная инженерия определяется как процесс анализа пользовательских требований (потребностей, которые пользователи должны иметь для написания текста) для создания желаемого программного продукта. Затем нужно спроектировать, создать и протестировать программное приложение, которое будет удовлетворять этим требованиям.
Давайте рассмотрим различные определения разработки программного обеспечения:
IEEE в своем стандарте 610.12-1990 определяет программную инженерию как применение систематического, упорядоченного, вычислимого подхода к разработке, эксплуатации и обслуживанию программного обеспечения.
Фриц Бауэр определил это как "установление и использование стандартных инженерных принципов. Это помогает вам получить экономичное программное обеспечение, которое является надежным и эффективно работает на реальных машинах".
Бем определяет программную инженерию как «практическое применение научных знаний для творческого проектирования и создания компьютерных программ. Сюда также входит сопутствующая документация, необходимая для их разработки, эксплуатации и обслуживания».
Но включает ли разработка программного обеспечения нечто большее, чем написание кода?
Да, для создания программного обеспечения требуется много шагов, как до, так и после написания кода. Мы называем это жизненным циклом разработки программного обеспечения (SDLC), и он структурирован в виде четко определенной последовательности этапов, что делает процесс проектирования и разработки эффективным. Шаги следующие:
Общение — это первый шаг. Как правило, возможный клиент компании-разработчика программного обеспечения инициирует запрос на желаемый программный продукт.
Сбор требований заключается в попытке получить как можно больше информации о требованиях клиента.
В ходе технико-экономического обоснования команда составляет примерный план процесса разработки программного обеспечения.
Системный анализ — это когда команда проекта анализирует объем проекта и соответствующим образом планирует график и ресурсы.
Проектирование программного обеспечения — это когда команда берет знания из этапов требований и анализа и фактически разрабатывает программный продукт.
На этапе кодирования или программирования команда начинает писать программный код на подходящем языке программирования и эффективно разрабатывает безошибочные исполняемые программы.
Тестирование является важной частью процесса обнаружения и исправления потенциальных ошибок.
Этап интеграции необходим, если программное обеспечение должно интегрироваться с внешними объектами, такими как базы данных или другие программы.
Этап внедрения — это когда новое программное обеспечение готово и фактически установлено на компьютерах пользователей.
Эксплуатация и техническое обслуживание — это подтверждение в реальной жизни эффективности программного обеспечения. Возможные ошибки проверяются и исправляются.
Каскадная разработка против гибкой разработки
Все вышеперечисленные этапы или действия в SDLC могут выполняться в другом порядке в зависимости от существующих подходов. Кроме того, разные подходы тратят больше или меньше времени на разные фазы SDLC. Эти этапы можно выполнять по очереди, как в каскадном подходе, или этапы могут повторяться в различных итерациях, которые подчеркивают поэтапную доставку программного продукта, как в гибком подходе.
В традиционных методах разработки программного обеспечения используется метод каскадной разработки. До того, как обновления программного обеспечения можно было легко загружать из Интернета или автоматически внедрять в Интернете, процесс каскадной разработки был разработан, чтобы попытаться гарантировать, что, когда программное обеспечение будет отправлено клиенту, оно будет содержать все необходимые функции со всеми проверенными и известными проблемами. решена до тех пор, пока не должна быть выпущена следующая версия программного обеспечения.Этот процесс сопряжен с высоким риском и требует много времени, поскольку тестирование продукта проводится в конце, после того как разработчики и дизайнеры потратили огромное количество времени на проектирование и создание всей программы. Этот тип процесса разработки также отдает предпочтение инженерной эффективности, а не опыту конечного пользователя, что может привести к проблемам, не предусмотренным инженерами, и вызвать разочарование у конечных пользователей, которые не участвуют в процессе разработки после первоначального изучения требований. Это разочарование конечных пользователей может привести к потенциальной потере бизнеса или дорогостоящим перестройкам.
Agile – это современный передовой метод совместной разработки программного обеспечения между командами и клиентами, который заключается в постоянном планировании, обучении и общении для создания добавочного программного обеспечения, а не сразу в конце проекта. Конечные пользователи (лица, которые фактически будут использовать программное обеспечение) находятся в центре разработки требований и функций, а также их просят тестировать их небольшими порциями на протяжении всего проекта. Таким образом, если ошибка процесса, для которой был разработан продукт, становится очевидной, корректировки можно внести немедленно, прежде чем продолжить сборку. Разбивка процесса на более мелкие части и постоянное тестирование и пакетная интеграция функций программного обеспечения распределяют риски, связанные с инвестициями в разработку, и ускоряют развертывание программного обеспечения для пользователей.
Теперь, когда мы знаем весь процесс создания программного обеспечения, мы вернемся к написанию кода и языкам программирования.
Как вы уже знаете, большинство компьютерных программ написано на языке программирования высокого уровня; однако удобочитаемая версия программы называется исходным кодом. Вы и разработчик программного обеспечения можете создавать и редактировать исходный код на языке высокого уровня, используя программную среду IDE или даже обычный текстовый редактор.
Что такое программная IDE?
Software IDE расшифровывается как "интегрированная среда разработки" и представляет собой приложение, которое разработчики используют для создания компьютерных программ. В данном случае "интегрированный" относится к способу объединения нескольких инструментов разработки в одну программу. Например, типичная IDE включает в себя редактор исходного кода, отладчик и компилятор. Большинство IDE также предоставляют интерфейс проекта, который позволяет программистам отслеживать все файлы, связанные с проектом. Многие также поддерживают контроль версий.
Некоторые IDE предоставляют "среду выполнения" (RTE) для тестирования программного обеспечения. Когда программа запускается в RTE, разработчик может отслеживать каждое событие, происходящее в тестируемом приложении. Это может быть полезно для поиска и исправление ошибок и определение источника утечек памяти.Поскольку IDE предоставляют централизованный пользовательский интерфейс для написания кода и тестирования программ, программист может быстро внести изменения, перекомпилировать программу и снова запустить программу.Программирование по-прежнему является тяжелой работой, но IDE программное обеспечение помогает упростить процесс разработки.
Существует невероятное количество языков программирования, которые используются программистами, разработчиками программного обеспечения, веб-разработчиками и другими специалистами в области компьютерных наук. Но сколько их на самом деле?
Согласно Википедии, существует около 700 языков программирования, включая эзотерические языки программирования. Другие источники, в которых перечислены только известные языки, по-прежнему насчитывают впечатляющие 245 языков. Другой список, называемый HOPL, который утверждает, что включает все когда-либо существовавшие языки программирования, оценивает их общее число в 8945. По некоторым оценкам, их может быть до 25 000.
Но как выбрать язык программирования для изучения? И можно ли научиться программировать? Ответ - да! Вы можете и должны это делать, поскольку потребность в знании кода для различных профессий возрастает.
Carlcheo создала полезную инфографику, которая поможет нам выбрать язык программирования для изучения, и собрала хорошую отправную точку для изучения некоторых из упомянутых языков.
Если вы хотите, чтобы ваши дети изучали язык, рекомендуется Scratch, а когда вы закончите с ним, вам рекомендуется перейти на Python.
Если вы хотите выучить язык, чтобы получить работу в Facebook или Google, лучшим выбором может быть Python. И бывает, что Python — отличный язык для выбора в целом, так как он считается одним из относительно простых языков для изучения.
Если вы хотите выучить «простой» язык, по мнению разработчиков, вам лучше выбрать Python, Ruby и JavaScript. Эти языки могут дать вам прочную основу для логики и синтаксиса программирования. другой язык будет легче подобрать.
Если вы хотите разрабатывать игры, чаще всего выбирают язык C++.
Если вы хотите кодировать на относительно низком уровне, ваш выбор — C и C++, поскольку они, как правило, компилируются непосредственно на машинный язык используемой платформы. Кроме того, C и C++ позволяют писать так, как это делает большинство машинных кодов (увеличение указателей и т. д.). Rust — новый язык в этой сфере.
Если вы хотите работать над проектами для iPhone, то есть проектами, связанными с iOS, ваш выбор — Swift.
Если вы хотите работать над проектами, связанными с Android, ваш выбор — Java или Kotlin.
Если вас привлекает красота веб-сайтов, высоки шансы, что вам будет интересно изучать код, ориентированный на пользователя (внешняя веб-разработка), и вы выберете язык JavaScript.
Если вас привлекают серверы (внутренняя веб-разработка) и базы данных, вы можете выбрать язык Ruby или Python.
Если вы уже знаете ту часть технического стека, которая вас интересует, вы выберете разработку интерфейса или разработку бэкенда.
И наш последний совет. Поскольку существуют сотни вариантов выбора языка, рекомендуется задать себе два ключевых вопроса, прежде чем сделать какой-либо выбор.
Что заставило вас заинтересоваться программированием?
Чем вы хотите заниматься как программист?
Есть множество возможностей для продвижения по карьерной лестнице. Используйте первый язык, чтобы научиться думать как программист и изучить базовую логику программирования. И не забывайте, что обучение на протяжении всей жизни необходимо для того, чтобы идти в ногу с языковыми и технологическими тенденциями.
Языки программирования — это языки, с помощью которых программист реализует часть программного обеспечения для запуска на компьютере. Самыми ранними языками программирования были языки ассемблера, не далеко ушедшие от двоично-кодированных инструкций, непосредственно исполняемых компьютером. К середине 1950-х годов программисты начали использовать языки высокого уровня.
Двумя первыми языками высокого уровня были FORTRAN (транслятор формул) и ALGOL (алгоритмический язык), которые позволяли программистам писать алгебраические выражения и решать задачи научных вычислений. По мере того, как в 1960-х годах обучение программированию становилось все более важным, в Дартмутском колледже была разработана урезанная версия FORTRAN под названием BASIC (универсальный код символических инструкций для начинающих). BASIC быстро распространился в других учебных заведениях, и к 1980 году версии BASIC для персональных компьютеров позволили даже учащимся начальных школ изучать основы программирования. Кроме того, в середине 1950-х годов был разработан COBOL (общий бизнес-ориентированный язык) для поддержки приложений бизнес-программирования, которые включали управление информацией, хранящейся в записях и файлах.
С тех пор наблюдается тенденция к разработке все более абстрактных языков, позволяющих программисту общаться с машиной на уровне, еще более удаленном от машинного кода. COBOL, FORTRAN и их потомки (например, Pascal и C) известны как императивные языки, поскольку они задают в виде последовательности явных команд, как машина должна решать поставленную задачу. Эти языки были также известны как процедурные языки, поскольку они позволяли программистам разрабатывать и повторно использовать процедуры, подпрограммы и функции, чтобы избежать повторного изобретения базовых задач для каждого нового приложения.
Другие языки высокого уровня называются функциональными языками, поскольку программа рассматривается как набор (математических) функций, и ее семантика очень точно определена. Самым известным функциональным языком этого типа является LISP (List Processing), который в 1960-х годах был основным языком программирования для приложений ИИ. Преемниками LISP в сообществе ИИ являются Scheme, Prolog, а также C и C++ (см. ниже). Схема похожа на LISP, за исключением того, что она имеет более формальное математическое определение. Пролог в основном использовался для логического программирования, и его приложения включают понимание естественного языка и экспертные системы, такие как MYCIN. Пролог, в частности, является так называемым непроцедурным или декларативным языком в том смысле, что программист указывает, какие цели должны быть достигнуты, но не указывает, какие конкретные методы следует применять для достижения этих целей. C и C++ широко используются в робототехнике, важном приложении исследований ИИ. Расширением логического программирования является логическое программирование с ограничениями, в котором сопоставление с образцом заменено более общей операцией удовлетворения ограничений.
Еще одним важным событием в языках программирования в 1980-х годах стало добавление поддержки инкапсуляции данных, что привело к появлению объектно-ориентированных языков. Исходный объектно-ориентированный язык назывался Smalltalk, в котором все программы были представлены как наборы объектов, взаимодействующих друг с другом посредством обмена сообщениями. Объект — это набор данных вместе с методами (функциями), которые могут преобразовывать эти данные. Инкапсуляция относится к тому факту, что данные объекта могут быть доступны только через эти методы. Объектно-ориентированное программирование оказало большое влияние на вычисления. Языки объектно-ориентированного программирования включают C++, Visual BASIC и Java.
Java отличается тем, что ее приложения переводятся не на конкретный машинный язык, а на промежуточный язык, называемый байт-кодом Java, который работает на виртуальной машине Java (JVM).Программы на JVM могут выполняться на большинстве современных компьютерных платформ, включая системы на базе Intel, Apple Macintosh и различные смартфоны и планшеты на базе Android. Таким образом, Linux, iOS, Windows и другие операционные системы могут запускать программы Java, что делает Java идеальной для создания распределенных и веб-приложений. Размещаясь на веб-серверах, Java-программы можно загружать и запускать в любом стандартном веб-браузере, чтобы обеспечить доступ к различным службам, таким как клиентский интерфейс к игре или вход в базу данных, размещенную на сервере.
Компьютерные программы, написанные на любом языке, отличном от машинного, должны быть либо интерпретированы, либо переведены на машинный язык («скомпилированы»). Как указывалось выше, интерпретатор — это программное обеспечение, которое проверяет компьютерную программу по одной инструкции за раз и вызывает код для выполнения машинных операций, требуемых этой инструкцией.
Компилятор — это программное обеспечение, которое переводит всю компьютерную программу в машинный код, который сохраняется для последующего выполнения в любое время. Была проделана большая работа, чтобы сделать как процесс компиляции, так и скомпилированный код максимально эффективными. Когда разрабатывается новый язык, его обычно сначала интерпретируют. Если впоследствии он становится популярным, для него разрабатывается компилятор, поскольку компиляция более эффективна, чем интерпретация.
Существует промежуточный подход, заключающийся в компиляции кода не в машинный язык, а в промежуточный язык (называемый виртуальной машиной), который достаточно близок к машинному языку, чтобы его можно было эффективно интерпретировать, но не настолько близок, чтобы его можно было интерпретировать. привязаны к машинному языку конкретного компьютера. Именно этот подход обеспечивает независимость языка Java от компьютерной платформы через JVM.
Безопасность и обеспечение информации
Безопасность и обеспечение информации относятся к политике и техническим элементам, которые защищают информационные системы, обеспечивая их доступность, целостность, аутентификацию и соответствующие уровни конфиденциальности. Концепции информационной безопасности используются во многих областях информатики, включая операционные системы, компьютерные сети, базы данных и программное обеспечение.
Безопасность операционной системы включает в себя защиту от внешних атак вредоносных программ, которые мешают выполнению системой обычных задач. Сетевая безопасность обеспечивает защиту целых сетей от атак посторонних. Информация в базах данных особенно уязвима для кражи, уничтожения или злонамеренного изменения, когда сервер базы данных доступен нескольким пользователям по сети. Первая линия защиты — разрешить доступ к компьютеру только авторизованным пользователям, аутентифицируя этих пользователей с помощью пароля или аналогичного механизма.
Однако умные программисты (известные как хакеры) научились обходить такие механизмы, разрабатывая компьютерные вирусы, программы, которые самовоспроизводятся, распространяются между компьютерами в сети и «заражают» системы, уничтожая резидентные файлы и приложения. Данные могут быть украдены с помощью таких устройств, как «троянские кони», программы, которые выполняют полезную задачу, но также содержат скрытый вредоносный код, или просто путем прослушивания сетевых коммуникаций. Необходимость защиты конфиденциальных данных (например, для защиты национальной безопасности или частной жизни) привела к достижениям в области криптографии и разработке стандартов шифрования, обеспечивающих высокий уровень уверенности в том, что данные защищены от декодирования даже при самых изощренных атаках.
Разработка программного обеспечения
Разработка программного обеспечения – это дисциплина, связанная с применением теории, знаний и практики для создания надежных программных систем, удовлетворяющих вычислительным требованиям заказчиков и пользователей. Он применим к малым, средним и крупным вычислительным системам и организациям. Программная инженерия использует инженерные методы, процессы, приемы и измерения. Разработка программного обеспечения, независимо от того, выполняется ли она индивидуально или в команде, требует выбора наиболее подходящих инструментов, методов и подходов для данной среды.
Программное обеспечение становится все большей частью компьютерной системы, и его разработка усложняется, часто для этого требуются группы программистов и годы усилий. Таким образом, разработку крупной части программного обеспечения можно рассматривать как инженерную задачу, к которой следует подходить с осторожностью и вниманием к стоимости, надежности и ремонтопригодности конечного продукта. Процесс разработки программного обеспечения обычно описывается как состоящий из нескольких фаз, называемых жизненным циклом, определяемых по-разному, но обычно состоящий из разработки требований, анализа и спецификации, проектирования, построения, проверки, развертывания, эксплуатации и обслуживания.
Беспокойство по поводу большого количества неудач программных проектов привело к разработке нетрадиционных процессов разработки программного обеспечения.Примечательным среди них является гибкий процесс разработки программного обеспечения, который включает в себя быструю разработку и вовлекает клиента как активного и критического члена команды. Agile-разработка эффективно используется при разработке программного обеспечения с открытым исходным кодом, которое отличается от проприетарного программного обеспечения тем, что пользователи могут свободно загружать и модифицировать его в соответствии со своими конкретными потребностями. К особенно успешным программным продуктам с открытым исходным кодом относятся операционная система Linux, веб-браузер Firefox и пакет обработки текстов, электронных таблиц и презентаций Apache OpenOffice.
Независимо от выбранной методологии разработки, процесс разработки программного обеспечения является дорогостоящим и трудоемким. С начала 1980-х годов были созданы все более сложные инструменты, чтобы помочь разработчику программного обеспечения и максимально автоматизировать процесс разработки. Такие инструменты автоматизированной разработки программного обеспечения (CASE) охватывают широкий спектр типов, от тех, которые выполняют задачу рутинного кодирования при наличии достаточно подробного проекта на каком-то определенном языке, до тех, которые включают экспертную систему для обеспечения соблюдения правил проектирования и устранения дефекты программного обеспечения до этапа кодирования.
По мере роста размера и сложности программного обеспечения концепция повторного использования становится все более важной в разработке программного обеспечения, поскольку становится ясно, что обширное новое программное обеспечение невозможно создать дешево и быстро без включения существующих программных модулей (подпрограмм или фрагментов программ). компьютерный код). Одним из привлекательных аспектов объектно-ориентированного программирования является то, что код, написанный в терминах объектов, легко используется повторно. Как и в случае с другими аспектами компьютерных систем, надежность (обычно довольно расплывчато определяемая как вероятность правильной работы системы в течение достаточно длительного периода времени) является ключевой целью готового программного продукта.
Также были разработаны сложные методы тестирования программного обеспечения. Например, модульное тестирование – это стратегия независимого тестирования каждого отдельного модуля программного продукта перед тем, как модули будут объединены в единое целое и протестированы с использованием методов "интеграционного тестирования".
Потребность в более подготовленных инженерах-программистах привела к разработке образовательных программ, в которых разработка программного обеспечения является отдельной специальностью. Рекомендация о том, чтобы инженеры-программисты, как и другие инженеры, имели лицензию или сертификацию, находят все большую поддержку, равно как и процесс аккредитации программ на получение степени инженера-программиста.
Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.
Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.
язык компьютерного программирования, любой из различных языков для выражения набора подробных инструкций для цифрового компьютера. Такие инструкции могут быть выполнены непосредственно, когда они находятся в числовой форме, характерной для производителя компьютера, известной как машинный язык, после простого процесса замены, когда они выражены на соответствующем языке ассемблера, или после перевода с какого-либо языка «более высокого уровня». Хотя компьютерных языков много, широко используются относительно немногие.
Машинные языки и языки ассемблера являются «низкоуровневыми», требуя от программиста явного управления всеми уникальными функциями компьютера по хранению данных и работе. Напротив, языки высокого уровня ограждают программиста от беспокойства по поводу таких соображений и предоставляют нотацию, которая легче пишется и читается программистами.
Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.
Типы языков
Машинные и ассемблерные языки
Машинный язык состоит из числовых кодов операций, которые конкретный компьютер может выполнять напрямую. Коды представляют собой строки из нулей и единиц или двоичные цифры («биты»), которые часто преобразуются как из шестнадцатеричной системы счисления, так и в шестнадцатеричную (с основанием 16) для просмотра и модификации человеком. Инструкции машинного языка обычно используют некоторые биты для представления операций, таких как сложение, и некоторые для представления операндов или, возможно, местоположения следующей инструкции. Машинный язык трудно читать и писать, так как он не похож на обычную математическую запись или человеческий язык, а его коды различаются от компьютера к компьютеру.
Язык ассемблера на один уровень выше машинного языка.Он использует короткие мнемонические коды для инструкций и позволяет программисту вводить имена для блоков памяти, которые содержат данные. Таким образом, вместо «0110101100101000» можно написать «добавить оплату, всего» для инструкции, которая складывает два числа.
Язык ассемблера разработан таким образом, чтобы его можно было легко перевести на машинный язык. Хотя к блокам данных можно обращаться по имени, а не по их машинному адресу, язык ассемблера не предоставляет более сложных средств организации сложной информации. Как и машинный язык, язык ассемблера требует детального знания внутренней архитектуры компьютера. Это полезно, когда такие детали важны, например, при программировании компьютера для взаимодействия с периферийными устройствами (принтерами, сканерами, устройствами хранения и т. д.).
Алгоритмические языки
Алгоритмические языки предназначены для выражения математических или символьных вычислений. Они могут выражать алгебраические операции в обозначениях, аналогичных математическим, и позволяют использовать подпрограммы, которые упаковывают часто используемые операции для повторного использования. Это были первые языки высокого уровня.
ФОРТРАН
Первым важным алгоритмическим языком был FORTRAN (formula translation), разработанный в 1957 году группой IBM под руководством Джона Бэкуса. Он был предназначен для научных вычислений с вещественными числами и их коллекциями, организованными в виде одномерных или многомерных массивов. Его управляющие структуры включали условные операторы IF, повторяющиеся циклы (так называемые циклы DO) и оператор GOTO, который допускал непоследовательное выполнение программного кода. FORTRAN упростил использование подпрограмм для общих математических операций и создал их библиотеки.
FORTRAN также был разработан для перевода на эффективный машинный язык. Он сразу стал успешным и продолжает развиваться.
АЛГОЛ
АЛГОЛ (алгоритмический, lязык) был разработан комитетом американских и европейских ученых-компьютерщиков в 1958–1960 годах для публикации алгоритмов, а также для выполнения вычислений. Подобно LISP (описанному в следующем разделе), ALGOL имел рекурсивные подпрограммы — процедуры, которые могли вызывать сами себя для решения проблемы, сводя ее к меньшей задаче того же типа. Алгол представил блочную структуру, в которой программа состоит из блоков, которые могут содержать как данные, так и инструкции и иметь ту же структуру, что и вся программа. Блочная структура стала мощным инструментом для создания больших программ из небольших компонентов.
ALGOL предоставил нотацию для описания структуры языка программирования, форму Бэкуса-Наура, которая в некоторых вариантах стала стандартным инструментом для определения синтаксиса (грамматики) языков программирования. Алгол широко использовался в Европе и в течение многих лет оставался языком, на котором публиковались компьютерные алгоритмы. Его потомками являются многие важные языки, такие как Паскаль и Ада (оба описаны ниже).
Язык программирования C был разработан в 1972 году Деннисом Ритчи и Брайаном Керниганом в корпорации AT&T для программирования компьютерных операционных систем. Его способность структурировать данные и программы посредством составления более мелких единиц сравнима с возможностями Алгола. Он использует компактную запись и предоставляет программисту возможность оперировать как с адресами данных, так и с их значениями. Эта способность важна в системном программировании, и язык C разделяет с языком ассемблера способность использовать все возможности внутренней архитектуры компьютера. C, наряду с его потомком C++, остается одним из самых распространенных языков.
Бизнес-ориентированные языки
КОБОЛ
COBOL (комоно, ббизнес, оориентированный яязык) активно использовался предприятиями с момента его в 1959 году. Комитет производителей и пользователей компьютеров и правительственных организаций США учредил CODASYL (Комитет по Данныета, системы и языков) для разработки языкового стандарта и контроля за ним, чтобы обеспечить его переносимость между различными системами.
COBOL использует нотацию, похожую на английскую, но новую при введении. Бизнес-вычисления организуют и обрабатывают большие объемы данных, и COBOL представил структуру данных записи для таких задач. Запись объединяет разнородные данные, такие как имя, идентификационный номер, возраст и адрес, в единый элемент. Это контрастирует с научными языками, в которых распространены однородные массивы чисел. Записи — это важный пример «объединения» данных в единый объект, и они есть почти во всех современных языках.
Читайте также: