Средства разработки программных продуктов: развитие, статистика и тенденции
Основные этапы развития средств разработки программного обеспечения. Структурный, объектный и компонентный подход к программированию. Языки программирования и методологии. Система обозначений, используемых для описания некоторого класса моделей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.12.2019 |
Размер файла | 903,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Сыктывкарский государственный университет имени Питирима Сорокина»
(ФГБОУ ВО «СГУ им. Питирима Сорокина»)
Институт точных наук и информационных технологий
Кафедра информационных систем
Курсовая работа
по дисциплине «Информационные системы»
Средства разработки программных продуктов: развитие, статистика и тенденции
Исполнитель:
Филиппов М.О.
Научный руководитель:
к. ф.-м.н., доцент, зав. кафедрой
Гольчевский Ю.В.
Сыктывкар
2019
Оглавление
программный обеспечение язык
Перечень сокращений и условных обозначений
Словарь терминов
Введение
1. Средства разработки программного обеспечения: сущность понятия
2. Основные этапы развития средств разработки ПО
2.1 «Стихийное» программирование
2.2 Структурный подход к программированию (60-70-е гг. ХХ в.)
2.3 Объектный подход к программированию (с середины 1980 - х гг. до нашего времени)
2.4 Компонентный подход (с середины 1990-х гг. до нашего времени)
2.5 Современный этап (с начала XXI в. до нашего времени)
2.5.1 CASE-средства
2.5.2 UML
2.5.3 Agile-методы
2.5.4 .NET
3. Статистика средств разработки ПО
3.1 Языки программирования
3.2 Инструментальные программные средства
3.3 Методологии
4. Тенденции развития
Заключение
Список используемой литературы
Перечень сокращений и условных обозначений
ПО - программное обеспечение
ООП - объектно-ориентированные программирование
ИИ - искусственный интеллект
XML - eXtensible Markup Language (расширяемый язык разметки)
VR - Virtual Reality (виртуальная реальность)
RAD - Rapid Application Development (быстрая разработка программ)
JS - JavaScript
COM - Component Object Model (компонентная модель объектов)
CLR - Common Language Runtime (общеязыковая исполняющая среда)
CIL - Common Intermediate Language (общий промежуточный язык)
AR - augmented reality (дополненную реальность)
Словарь терминов
Абстрагирование -- это способ выделить набор значимых характеристик объекта, исключая из рассмотрения не значимые соответственно, абстракция -- это набор всех таких характеристик.
Высокоуровневый язык программирования -- язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков -- это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде очень длинны и сложны для понимания.
Инкапсуляция -- это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
Машинный язык -- система команд конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины.
Методология разработки программного обеспечения -- совокупность методов, применяемых на различных стадиях жизненного цикла программного обеспечения и имеющих общий философский подход.
Наследование -- это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
Нотацией называют систему обозначений, используемых для описания некоторого класса моделей. Нотации бывают графические (предоставление моделей в виде графов, диаграмм, таблиц, схем и т. п.) и текстовые (описания моделей на формальных и естественных языках).
Полиморфизм -- это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Введение
Программирование -- сравнительно молодая и быстро развивающаяся отрасль науки и техники. Опыт ведения реальных разработок и совершенствования имеющихся программных и технических средств постоянно переосмысливается, в результате чего появляются новые методы, методологии и технологии, которые, в свою очередь, служат основой более современных средств разработки программного обеспечения.
Создание программной системы - весьма трудоемкая задача, особенно в наше время, когда обычный объем программного обеспечения превышает сотни тысяч операторов. Будущий специалист в области разработки программного обеспечения должен иметь ориентироваться в существующих подходах и технологиях, а также прослеживать свежие тренды в их развитии.
Объектом исследования являются средства разработки программных продуктов.
Цель проекта заключается в изучении средств разработки ПО в их историческом аспекте, анализе ситуации в этой сфере и определение возможных направлений их развития.
Достижение цели предполагает решение следующих задач:
Определить сущность понятия “средство разработки”
Выявить этапы развития и раскрыть их содержание
Найти и проанализировать статистические данные из исследований и опросов компаний в сфере IT
Выявить тренды и определить, как они могут повлиять на развитие средств разработки ПО
1. Средства разработки программного обеспечения: сущность понятия
Прежде чем приступить к рассмотрению истории развития средств разработки, их статистике и тенденциям, необходимо определиться с основными понятиями, терминами, которые будут использоваться в работе. В соответствии с тематикой базовым термином является «средство разработки программных продуктов». Применительно к области разработки программного обеспечения данное определение может звучать следующим образом:
Средства разработки программного обеспечения - совокупность приемов, методов, методик, а также набор инструментальных программ (компиляторы, прикладные/системные библиотеки и т.д.), используемых разработчиком в процессе создания программного продукта [1].
Функции, которые выполняют средства разработки:
Создание текста разрабатываемой программы с использованием специально установленных кодовых слов (языка программирования), а также определенного набора символов и их расположения в созданном файле - синтаксис программы.
Перевод текста создаваемой программы в машинно-ориентированный код, доступный для распознавания ЭВМ. В случае значительного объема создаваемой программы, она разбивается на отдельные модули и каждый из модулей переводится отдельно.
Соединение отдельных модулей в единый исполняемый код, с соблюдением необходимой структуры, обеспечение координации взаимодействия отдельных частей между собой.
Тестирование и контроль созданной программы, выявление и устранение формальных, логических и синтаксических ошибок, а также оценка работоспособности и потенциала созданной программы.
К средствам разработки программного обеспечения относят [2]:
Язык программирования - формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно -- ЭВМ) под её управлением.
Ассемблеры - программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода.
Трансляторы - программы или технические средства, выполняющие трансляцию программы.
Компоновщик, или редактор связей, собирает объектные файлы отдельных компонентов программы и разрешает внешние ссылки от одного компонента к другому, формируя исполняемый файл.
Препроцессоры исходных текстов - это компьютерные программы, принимающие данные на входе и выдающие данные, предназначенные для входа другой программы, например, такой, как компилятор.
Отладчик (debugger) - это инструментальное средство, которое дает возможность программисту управлять выполнением программы на уровне отдельных операторов для диагностики ошибок.
Текстовые редакторы - программы, предназначенные для создания и изменения текстовых файлов, а также их просмотра на экране, вывода на печать, поиска фрагментов текста и т. п.
Специализированные редакторы исходных текстов - текстовые редакторы для создания и редактирования исходного кода программ. Специализированный редактор исходных текстов может быть отдельным приложением, или быть встроен в интегрированную среду разработки (IDE).
Библиотеки подпрограмм - сборники подпрограмм или объектов, используемых для разработки программного обеспечения.
Редакторы графического интерфейса.
Средства автоматизации разработки программ (CASE-средства) - программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем. Средства CASE-технологий делятся на:
- встроенные в систему реализации - все решения проектированию и реализации привязки к выбранной СУБД;
независимые от системы реализации - все решения проектированию ориентированы на унификацию (определение) начальных этапов жизненного цикла программы и средств их документирования, обеспечивают большую гибкость в выборе средств реализации. [3]
Перечисленные инструменты могут входить в состав интегрированных сред разработки.
Интегрированная среда разработки (IDE, Integrated Development Environment) - которые представляют собой системы, содержащие большую часть или все перечисленные выше инструментальные средства. Преимущество интегрированной среды заключается в чрезвычайной простоте интерфейса пользователя: каждый инструмент инициируется нажатием единственной клавиши или выбором из меню вместо набора на клавиатуре имен файлов и параметров.
В зависимости от предметной области и задач, поставленных перед разработчиками, разработка программ может представлять собой достаточно сложный, поэтапный процесс, в котором задействовано большое количество участников и разнообразных средств.
2. Основные этапы развития средств разработки ПО
Для того чтобы разобраться в существующих средствах разработки программного обеспечения целесообразно рассматривать их в историческом контексте. Понимание эволюции этих средств важно для осмысления текущей ситуации в сфере и определения основных тенденций их развития в будущем.
Можно выделить следующие основные этапы развития средств разработки ПО [4, 10]:
«Стихийное» программирование
Структурный подход к программированию
Объектный подход к программированию
Компонентный подход
Современный Этап
Далее подробней рассмотрим каждый из этапов.
2.1 «Стихийное» программирование
Этот этап охватывает период от момента появления первых вычислительных машин до середины 60-х гг. XX в. В это время практически отсутствовали технологии разработки программного обеспечения. Первые программы имели простейшую структуру (Рис.1). Они состояли из собственно программы на машинном языке и обрабатываемых ею данных. Сложность программ в машинных кодах ограничивалась способностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение данных при программировании.
Рисунок 1. Структура первых программ
Появление ассемблеров позволило вместо двоичных или шестнадцатеричных кодов использовать символические имена данных и мнемоники кодов операций. В результате программы стали более «читаемыми».
Первые функционирующие языки программирования, предназначенные для передачи инструкций компьютеру, были написаны в начале 1950-х годов. Short Code (Короткий код) Джона Мочли, предложенный в 1949 году, был одним из первых языков высокого уровня, когда-либо разработанных для электронных компьютеров [5]. В отличие от машинного кода, короткие операторы кода представляют математические выражения в понятной форме. Однако программу приходилось переводить в машинный код каждый раз, когда она выполнялась, что делало процесс намного медленнее, чем выполнение эквивалентного машинного кода.
Создание языков программирования высокого уровня, таких как FORTRAN (1957 г.) и ALGOL (1958 г.), существенно упростило программирование вычислений, снизив уровень детализации операций. Это, в свою очередь, позволило увеличить сложность программ.
Революционным было появление в языках средств, позволяющих оперировать подпрограммами. Подпрограммы можно было сохранять и использовать в других программах. В результате были созданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере надобности вызывались из разрабатываемой программы.
Типичная программа того времени состояла из основной программы, области глобальных данных и набора подпрограмм (в основном библиотечных), выполняющих обработку всех данных или их части.
Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой. Чтобы сократить количество таких ошибок, было предложено в подпрограммах размещать локальные данные.
Сложность разрабатываемого программного обеспечения при использовании подпрограмм с локальными данными по-прежнему ограничивалась возможностью программиста отслеживать процессы обработки данных, но уже на новом уровне. Однако появление средств поддержки подпрограмм позволило осуществлять разработку программного обеспечения нескольким программистам параллельно.
В начале 60-х гг. XX в. разразился «кризис программирования». Термин «кризис программного обеспечения» был введён Фридрихом Л. Бауэром на Конференции НАТО «Инженерия программного обеспечения» в 1968 в Гармиш-Партенкирхене (Германия). Термин использовался Эдсгером В. Дейкстрой в 1972 в его лекции при получении премии Тьюринга:
«Основная причина кризиса программного обеспечения -- резкий рост мощностей вычислительных машин! Проще говоря: нет вычислительной техники -- нет проблем с разработкой программного обеспечения для неё; когда же появилось несколько слабых компьютеров, появились первые проблемы, связанные с разработкой программного обеспечения, сейчас у нас есть гигантские компьютеры, и программирование стало столь же гигантской проблемой». [6]
Он выражался в том, что фирмы, взявшиеся за разработку сложного программного обеспечения такого, как операционные системы, срывали все сроки завершения проектов. Проект устаревал раньше, чем был готов к внедрению, увеличивалась его стоимость, и в результате многие проекты так никогда и не были завершены.
Объективно все это было вызвано несовершенством технологии программирования. Прежде всего, стихийно использовалась разработка «снизу-вверх» - подход, при котором вначале проектировали и реализовывали сравнительно простые подпрограммы, из которых затем пытались построить сложную программу. В отсутствии четких моделей описания подпрограмм и методов их проектирования создание каждой подпрограммы превращалось в непростую задачу, интерфейсы подпрограмм получались сложными, и при сборке программного продукта выявлялось большое количество ошибок согласования. Исправление таких ошибок, как правило, требовало серьезного изменения уже разработанных подпрограмм, что еще более осложняло ситуацию, так как при этом в программу часто вносились новые ошибки, которые также необходимо было исправлять. В конечном итоге процесс тестирования и отладки программ занимал более 80 % времени разработки, если вообще когда-нибудь заканчивался. На повестке дня самым серьезным образом стоял вопрос разработки технологии создания сложных программных продуктов, снижающей вероятность ошибок проектирования.
Анализ причин возникновения большинства ошибок позволил сформулировать новый подход к программированию, который был назван «структурным».
2.2 Структурный подход к программированию (60-70-е гг. ХХ в.)
Методология структурного программирования появилась как следствие возрастания сложности решаемых на компьютерах задач, и соответственно, усложнения программного обеспечения. В 1970-е годы объёмы и сложность программ достигли такого уровня, что традиционная разработка программ перестала удовлетворять потребностям практики. Программы становились слишком сложными, чтобы их можно было нормально сопровождать. Поэтому потребовалась систематизация процесса разработки и структуры программ.
В основе структурного подхода лежит декомпозиция (разбиение на части) сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм. С появлением других принципов декомпозиции (объектного, логического и т.д.) данный способ получил название «процедурной декомпозиции».
В отличие от используемого ранее процедурного подхода к декомпозиции структурный подход требовал представления задачи в виде иерархии подзадач простейшей структуры. Проектирование, таким образом, осуществлялось «сверху-вниз» и подразумевало реализацию общей идеи, обеспечивая проработку интерфейсов подпрограмм. Одновременно вводились ограничения на конструкции алгоритмов, рекомендовались формальные модели их описания, а также специальный метод проектирования алгоритмов - метод пошаговой детализации.
Метод пошаговой детализации заключается в поэтапной разработке алгоритмов. На первом этапе описывают решение поставленной задачи, выделяя подзадачи и считая их решенными. На следующем - аналогично описывают решение подзадач, формулируя уже подзадачи следующего уровня. Процесс продолжают, пока не доходят до подзадач, алгоритмы решения которых очевидны. При этом, описывая решение каждой задачи, желательно использовать не более одной-двух конструкций, таких как цикл или ветвление, чтобы четче представить себе структуру программы. [7]
Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования. Как правило, они включали основные «структурные» операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных. В следствие чего структура программ стала такой, как показано на Рис. 2. Среди наиболее известных языков этой группы стоит назвать PL/1 (1964 г.), ALGOL-68 (1968 г.), Pascal (1970 г.), С (1972 г.).
Рисунок 2. Структура ПО второго этапа
Дальнейший рост сложности и размеров разрабатываемого программного обеспечения потребовал развития структурирования данных. Как следствие этого в языках появляется возможность определения пользовательских типов данных. Одновременно усилилось стремление разграничить доступ к глобальным данным программы, чтобы уменьшить количество ошибок, возникающих при работе с глобальными данными. В результате появилась и начала развиваться технология модульного программирования.
Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки подпрограмм) (Рис. 3). Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, в то время как доступ к реализации модуля (телам подпрограмм и некоторым «внутренним» переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal и С (C++), языки Ада (1980 г.) и Modula (1978 г.).
Рисунок 3. Модульная структура ПО
Использование модульного программирования существенно упростило разработку программного обеспечения несколькими программистами. Теперь каждый из них мог разрабатывать свои модули независимо, обеспечивая взаимодействие модулей через специально оговоренные межмодульные интерфейсы. Кроме того, модули в дальнейшем без изменений можно было использовать в других разработках, что повысило производительность труда программистов.
Узким местом модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении программы (из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно). При увеличении размера программы обычно возрастает сложность межмодульных интерфейсов, и с некоторого момента предусмотреть взаимовлияние отдельных частей программы становится практически невозможно. Для разработки программного обеспечения большого объема было предложено использовать объектный подход.
2.3 Объектный подход к программированию (с середины 1980 - х гг. до нашего времени)
В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств. Проследить структуры программ в ООП можно на Рис. 4.
Рисунок 4. Структура ПО в ООП
Кроме этого, объектный подход предлагает новые технологические средства разработки, такие как наследование, полиморфизм, композиция, наполнение, позволяющие конструировать сложные объекты из более простых. В результате существенно увеличивается показатель повторного использования кодов, появляется возможность создания библиотек объектов для различных применений, и разработчикам предоставляются дополнительные возможности создания систем повышенной сложности.
Объектная структура программы впервые была использована в языке имитационного моделирования сложных систем Simula (1967 г.), появившемся еще в 60-х гг. XX в. Естественный для языков моделирования способ представления программы получил развитие в другом специализированном языке моделирования - языке Smalltalk (1969 г.), а затем был использован в новых версиях универсальных языков программирования, таких как Pascal, C++, Modula, Java (1995 г.).
Бурное развитие технологий программирования, основанных на объектном подходе, позволило решить многие проблемы. Так, были созданы среды, поддерживающие визуальное программирование, например, Delphi (1995 г.), C++ Builder, Visual C++ (1994 г.) и т. д. Фирма Microsoft расширила идеи языка BASIC, выпустив Visual Basic (VB). Основная цель VB - без лишних усилий позволить пользователям создавать программы с мощными экранными интерфейсами. Особую популярность язык получил ввиду его интегрированности с пакетом прикладных программ Microsoft Office, что позволило расширить возможности популярного пакета и создавать мощные приложения.
При использовании визуальной среды у программиста появляется возможность проектировать некоторую часть, например, интерфейсы будущего продукта, с применением визуальных средств добавления и настройки специальных библиотечных компонентов. Результатом визуального проектирования является заготовка будущей программы, в которую уже внесены соответствующие коды.
При использовании этих языков программирования сохраняется зависимость модулей программного обеспечения от адресов экспортируемых полей и методов, а также структур и форматов данных. Это связано с тем, что в них фактически отсутствуют стандарты компоновки двоичных результатов компиляции объектов в единое целое даже в пределах одного языка программирования. Эта зависимость объективна, так как модули должны взаимодействовать между собой, обращаясь к ресурсам друг друга. Связи модулей нельзя разорвать, но можно попробовать стандартизировать их взаимодействие, на чем и основан компонентный подход к программированию.
2.4 Компонентный подход (с середины 1990-х гг. до нашего времени)
Компонентно-ориентированное программирование существенным образом опирается на понятие компонента -- независимого модуля исходного кода программы, предназначенного для повторного использования и развёртывания и реализующегося в виде множества языковых конструкций (например, «классов» в объектно-ориентированных языках программирования), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
В отличие от обычных объектов компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию. Сегодня рынок объектов стал реальностью: так, в Интернете существуют узлы, предоставляющие большое количество компонентов, рекламой компонентов забиты журналы. Это позволяет программистам создавать продукты, хотя бы частично состоящие из повторно использованных частей, т.е. применять технологию, хорошо зарекомендовавшую себя в области проектирования аппаратуры.
Компонентный подход лежит в основе технологий, разработанных на базе COM (Component Object Model - компонентная модель объектов).
COM - это технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих компонентов объекта, каждый из которых может использоваться во многих программах одновременно. Стандарт воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. Стандарт COM мог бы быть универсальным и платформа-независимым, но закрепился в основном на операционных системах семейства Microsoft Windows.
Технология СОМ определяет общую парадигму взаимодействия программ любых типов: библиотек, приложений, операционной системы, т. е. позволяет одной части программного обеспечения использовать функции (службы), предоставляемые другой, независимо от того, функционируют ли эти части в пределах одного процесса, в разных процессах на одном компьютере или на разных компьютерах.
В дополнение к привычным сущностям ООП, СОМ предлагает новые концептуальные понятия - свойства, события, команды, модули и т.д. Изменение внутреннего состояния компонента производится с помощью изменения соответствующих свойств.[8]
Архитектура СОМ-системы построена таким образом, что компоненты не зависят друг от друга и являются взаимозаменяемыми. Архитектор может собирать требуемую систему из компонентов как из кубиков детского конструктора. В случае изменения функциональности компонента, от программиста может потребоваться перекомпилировать отдельный компонент, но не все приложение.
При этом компонент не автономен - он находится в тесном взаимодействии со средой. О среде компонент знает ровно столько, сколько ему необходимо для реализации заявленной функциональности.
В СОМ принято говорить об установке компонентов, когда скомпилированные сборки, или пакеты, содержащие компоненты, устанавливаются в среду проектирования. Компоненты готовы к использованию сразу после попадания в среду.
На базе технологии COM были разработаны компонентные технологии, решающие различные задачи разработки программного обеспечения. OLE-аutomation или просто Automation (автоматизация) - технология создания программируемых приложений, обеспечивающая программируемый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) - специального интерфейса, облегчающего вызов функций объекта. Эту технологию поддерживает, например, Microsoft Excel, предоставляя другим приложениям свои службы.
ActiveX - технология, построенная на базе OLE-automation, предназначена для создания программного обеспечения как сосредоточенного на одном компьютере, так и распределенного в сети. Предполагает использование визуального программирования для создания компонентов - элементов управления ActiveX. Полученные таким образом элементы управления можно устанавливать на компьютер дистанционно с удаленного сервера, причем устанавливаемый код не зависит от используемой операционной системы. Это позволяет применять элементы управления ActiveX в клиентских частях приложений Интернет.
2.5 Современный этап (с начала XXI в. до нашего времени)
2.5.1 CASE-средства
Отличительной особенностью современного этапа развития технологии программирования, кроме изменения подхода, является создание и внедрение автоматизированных технологий разработки и сопровождения программного обеспечения, которые были названы CASE-технологиями (Computer-Aided Software/System Engineering - разработка программного обеспечения/программных систем с использованием компьютерной поддержки). Без средств автоматизации разработка достаточно сложного программного обеспечения на настоящий момент становится трудно осуществимой: память человека уже не в состоянии фиксировать все детали, которые необходимо учитывать при разработке программного обеспечения.
В функции CASE входят средства анализа, проектирования и программирования программных средств, проектирования интерфейсов, документирования и производства структурированного кода на каком-либо языке программирования.[4]
CASE-инструменты классифицируются по типам и категориям.
Классификация по типам отражает функциональную ориентацию средств на те или иные процессы жизненного цикла разработки программного обеспечения, и, в основном, совпадают с компонентным составом крупных интегрированных CASE-систем, и включает следующие типы:
средства анализа -- предназначены для построения и анализа модели предметной области;
средства проектирования баз данных;
средства разработки приложений;
средства реинжиниринга процессов;
средства планирования и управления проектом;
средства тестирования;
средства документирования.
Классификация по категориям определяет степень интегрированности по выполняемым функциям и включают -- отдельные локальные средства, решающие небольшие автономные задачи, набор частично интегрированных средств, охватывающих большинство этапов жизненного цикла и полностью интегрированных средств, охватывающий весь жизненный цикл информационной системы и связанных общим репозиторием.
Типичными CASE-инструментами являются:
инструменты управления конфигурацией;
инструменты моделирования данных;
инструменты анализа и проектирования;
инструменты преобразования моделей;
инструменты редактирования программного кода;
инструменты рефакторинга кода (равносильное преобразование алгоритмов);
генераторы кода;
инструменты для построения UML-диаграмм.
На сегодня существуют CASE-технологии, поддерживающие как структурный, так и объектный (в том числе и компонентный) подходы к программированию.
К недостаткам CASE-средств можно отнести высокую стоимость программного обеспечения, сложность подготовки и обучения специалистов, сложность интеграции с другими средствами разработки, низкое качество получаемого автоматически программного кода и необходимость его ручной доводки.
2.5.2 UML
В ноябре 1997 г. после продолжительного процесса объединения различных методик группа OMG (Object Management Group) приняла получившийся в результате унифицированный язык моделирования (Unified Model Language) UML в качестве стандарта.
UML (англ. Unified Modeling Language -- унифицированный язык моделирования) представляет собой объектно-ориентированный графический язык для визуализации, специфицирования, конструирования и документирования систем, где большая роль отводится описанию бизнес-процессов в информационных системах. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, которая называется UML моделью. UML был создан для определения, визуализации, проектирования и документирования по большей части программных систем.
Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
UML обладает следующими основными характеристиками:
является языком визуального моделирования, который обеспечивает разработку репрезентативных моделей для организации взаимодействия заказчика и разработчика, различных групп разработчиков ИС
содержит механизмы расширения и специализации базовых концепций языка.
Преимущества UML:
UML объектно-ориентирован, в результате чего методы описания результатов анализа и проектирования семантически близки к методам программирования на современных объектно-ориентированных языках;
UML позволяет описать систему практически со всех возможных точек зрения и разные аспекты поведения системы;
Диаграммы UML сравнительно просты для чтения после достаточно быстрого ознакомления с его синтаксисом;
UML расширяет и позволяет вводить собственные текстовые и графические стереотипы, что способствует его применению не только в сфере программной инженерии;
UML получил широкое распространение и динамично развивается.
2.5.3 Agile-методы
В 1970 году американский ученый Уинстон Ройс составил документ, называвшийся «Управление развитием крупных программных систем». В нем он приводил критику последовательной разработки, указывая на то, что разработка программного обеспечения не должна походить на работу сборочной линии, где новые детали по очереди добавляются в последовательные фазы.
Вместо того чтобы ждать, пока будут поочередно завершены все этапы (фазы), Ройс предложил применять фазовый подход. Суть его в том, что изначально собираются все требования, необходимые для проекта, после чего завершается вся архитектура, создается дизайн, записывается код и т.д.
На основе этого в 90-х удалось создать комплекс гибких методов разработки ПО, способных заменить сложные и трудоемкие методы. Происходило это так:
В 1991 году появился метод быстрой разработки приложений RAD.
В 1994 году появился метод разработки динамических систем DSDM.
В 1995 году появилась платформа гибкой разработки Scrum.
В 1996 году появилась гибкая методология разработки Crystal Clear, а также экстремальное программирование XP.
В 1997 году появилась итеративная методология разработки ПО FDD.
Все вместе эти методы объединились под общим названием гибких методов разработки ПО.
Четыре года спустя - в 2001 году в результате обсуждения методов разработки был опубликован «Манифест о гибкой разработке программного обеспечения Agile» (в переводе с английского понятие «agile» означает «подвижный», «проворный» или «быстрый», но в большинстве случаев его переводят именно как «гибкий»). Он и задал темп всей дальнейшей работе над созданием ПО.
Манифест, созданный программистами, включает в себя 4 базовых идеи и 12 принципов эффективного управления проектами.
Идеи Agile [13]:
Люди и их взаимодействие важнее, чем процессы и инструменты
Рабочее ПО важнее, чем документация
Клиенты и сотрудничество с ними важнее, чем контракт и обсуждение условий
Готовность к внесению изменений важнее, чем первоначальный план
Принципы Agile:
Удовлетворять клиентов, заблаговременно
Изменять требования к конечному продукту в течение всего цикла его разработки
Поставлять рабочее ПО как можно чаще (раз в неделю, в две недели, в месяц и т.д.)
Поддерживать сотрудничество между разработчиками и заказчиком в течение всего цикла разработки
Поддерживать и мотивировать всех, кто вовлечен в проект (если команда мотивирована, она намного лучше справляется со своими задачами, нежели команда, члены которой условиями труда недовольны)
Обеспечивать непосредственное взаимодействие между разработчиками (возможность прямого контакта способствует более успешной коммуникации)
Измерять прогресс только посредством рабочего ПО (клиенты должны получать только функциональное и рабочее программное обеспечение)
Поддерживать непрерывный темп работы (команда должна выработать оптимальную и поддерживаемую скорость работы)
Уделять внимание дизайну и техническим деталям (благодаря эффективным навыкам и хорошему дизайну команда проекта получает возможность постоянного совершенствования продукта и работы над его улучшением)
Стараться сделать рабочий процесс максимально простым, а ПО - понятным
Позволять членам команды самостоятельно принимать решения (если разработчики могут сами принимать решения, самоорганизовываться и общаться с другими членами коллектива, обмениваясь с ними идеями, вероятность создания качественного продукта существенно возрастает)
Постоянно адаптироваться к меняющейся среде (благодаря этому конченый продукт будет более конкурентоспособен).
Agile - методология основывается, в первую очередь, на визуальном контроле. Чаще всего участники проекта, работая над достижением результата, пользуются специальными цветными карточками. Один цвет сигнализирует о завершении планирования какого-то элемента конечного продукта, другой - о завершении его разработки, третий - о готовности и т.п. Визуальный контроль позволяет команде иметь наглядное представление о текущем состоянии процесса и гарантирует одинаковое видение проекта всеми ее членами.
Члены команды и клиент в большинстве случаев работают вместе и рядом. Благодаря этому существенно ускоряются многие рабочие процессы, которые связаны с информированием участников проекта. Кроме того, совместная работа способствует созданию здоровой атмосферы для плодотворного и эффективного сотрудничества и скорейшего достижения результатов.
Особое внимание нужно уделить руководителю проекта. Его нельзя назвать человеком, раздающим указания налево и направо. Руководитель здесь выступает скорее в роли лидера, который задает направление и определяет правила сотрудничества и работы. Другими словами, Agile-управление является адаптируемым.
Еще одним важным моментом Agile-методологии является разделение всего объема проекта на несколько более мелких составных частей. Такой подход многократно упрощает процесс разработки, а отдельные группы команды могут фокусироваться каждая на своей конкретной задаче.
Работая над одним циклом, участники проекта овладевают новыми навыками и получают новые знания, а также анализируют допущенные в процессе ошибки. Все это сводит вероятность совершения подобных ошибок в будущем (в следующих циклах и других проектах) практически к нулю.
2.5.4 .NET
.NET Framework - программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для разных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду [9].
Хотя .NET является патентованной технологией корпорации Microsoft и официально рассчитана на работу под операционными системами семейства Microsoft Windows, существуют независимые проекты (прежде всего это Mono и Portable.NET), позволяющие запускать программы .NET на некоторых других операционных системах. В настоящее время .NET Framework получает развитие в виде .NET Core, изначально предполагающей кроссплатформенную разработку и эксплуатацию. Основной идеей при разработке .NET Framework являлось обеспечение свободы разработчика за счёт предоставления ему возможности создавать приложения различных типов, способные выполняться на различных типах устройств и в различных средах.
Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный байт-код Common Intermediate Language (CIL). В терминах .NET получается сборка. Затем код исполняется виртуальной машиной Common Language Runtime (CLR- общеязыковая исполняющая среда). Использование виртуальной машины избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR встроенный в неё компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.
3. Статистика средств разработки ПО
В этом разделе будут использованы несколько различных рейтингов, которые отличаются в подходе к составлению.
Первый из них рейтинг фирмы TIOBE - Programming community index (Индекс сообщества программирования) Для формирования индекса используется поиск в нескольких наиболее посещаемых порталах: Google, Blogger, Wikipedia, YouTube, Baidu, Yahoo!, Bing, Amazon. Расчёт индекса происходит ежемесячно.
Плюсы подхода:
простота для подсчета
учитываются предпочтения свободных программистов и обучающихся
Минусы подхода:
индекс TIOBE не ранжирует языки по качеству или количеству написанного кода
методика расчета индекса очень чувствительна к внутренним алгоритмам и политикам поисковых систем
Второй подход используют в своих исследованиях фирмы Apiumhub и GoodFirms. Он заключается в опросе профессиональных разработчиков из IT фирм с разных уголков мира.
Плюсы подхода:
можно использовать для понимания, какие языки и методики востребованы в компаниях
менее подвержен ошибкам во время составлении
Минусы подхода:
более сложное и затратное составление (в силу чего некоторые метрики закрыты для бесплатного доступа)
3.1 Языки программирования
Технология программирования во многом определяется языком программирования, на котором пишутся программы. В языке могут быть заложены средства, влияющие на технологичность и архитектуру разрабатываемой системы (например, объектная ориентированность, модульность и т.п.) О распространенности языков можно судить по рейтингу, ежемесячно составляемому фирмой TIOBE [15]. Следует отметить, что данный рейтинг составлен на основе запросов в поисковых системах, поэтому отражает количество проектов, написанных на том или ином языке. Однако по нему можно отследить уровень заинтересованности в них рядовых программистов.
Таблица 1. Рейтинг языков программирования [15]
Место в рейтинге за июнь 2019 |
Язык программирования |
Рейтинг |
Изменения за год |
|
1 |
Java |
15.004% |
-0.36% |
|
2 |
C |
13.300% |
-1.64% |
|
3 |
Python |
8.530% |
+2.77% |
|
4 |
C++ |
7.384% |
-0.95% |
|
5 |
Visual Basic .NET |
4.624% |
+0.86% |
|
6 |
C# |
4.483% |
+0.17% |
|
7 |
JavaScript |
2.716% |
+0.22% |
|
8 |
PHP |
2.567% |
-0.31% |
|
9 |
SQL |
2.224% |
-0.12% |
|
10 |
Assembly language |
1.479% |
+0.56% |
В июне 2019 года Python снова достиг рекордно высокого уровня по индексу TIOBE - 8,5%. Стоит отметить, что в 2018 году этот язык получил звание “Язык года” от компании TIOBE. Если Python сможет сохранить такой темп роста, он, вероятно, заменит C и Java через 3-4 года, став таким образом самым популярным языком программирования в мире. Основной причиной этого является то, что разработка программного обеспечения находится на подъеме. Это привлекает много новичков в этой области. Java-программирование слишком многословно для начинающих. Для того, чтобы полностью понять и запустить простую программу, такую ??как «hello world» на Java, необходимо знание классов, статических методов и пакетов. В C это немного проще, но тогда вы столкнетесь с явным управлением памятью. В Python это всего лишь одна строка.
Причины использования Python:[11]
«дружелюбен» к разработчикам;
позволяет легко нанимать новых сотрудников в силу распространенности;
удобные инструменты для тестирования и развертывания приложений;
большое количество библиотек;
минимум затрат для начинающего бизнеса.
Согласно другому рейтингу от компании Apiumhub (Рис. 5), составленному посредством опроса работников IT-фирм и свободных программистов первым по популярности языком является JavaScript.
Рисунок 5. Рейтинг Apiumhub [14]
JavaScript - мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Многие ошибочно полагают, что это все на что способен JS. Однако в последнее время его роль в других сферах возрастает. JavaScript широко используется в браузерных операционных системах. Так, например, исходный код IndraDesktop WebOS на 75 % состоит из JavaScript, код браузерной операционной системы IntOS -- на 70 %. Также используется для написания прикладного ПО, например, исходный код Mozilla Firefox на 16,4% написан на JS. Более важную роль язык играет в выпущенной компанией Google Chrome OS. Так как данная система в качестве прикладного ПО использует веб-приложения, то фактически JS является основным языком для нее. В случае успешного распространения на рынке Chrome OS JavaScript получит большой толчок для развития.
Третьим популярным языком, занимающим высокие строчки в обоих рейтингах являетя Java. Его популярность в первую очередь связана с его широким спектром применения. Java более 20 лет, используется миллионами разработчиков и миллиардами устройств по всему миру и может работать на любом оборудовании и операционной системе через виртуальную машину Java. Этот универсальный язык программирования используют компании разного масштаба в своем корпоративном серверном ПО. Написанные на Java приложения можно найти везде: в «умном» чайнике, Android-смартфоне, компьютере или автомобиле Tesla. Существует множество областей применения Java, от сайтов электронной коммерции до Android приложений, от научных до финансовых приложений, таких как трейдинговые системы, от игр до настольных программных средств, таких как Eclipse, Netbeans и IntelliJ, от фреймворков с открытым кодом до J2ME приложений (для устройств с ограниченными ресурсами).
Java очень обширно применяется в финансовой сфере. Многие мировые инвестиционные банки используют Java для написания фронт-энд и бэк-энд офисных электронных систем, систем регулирования и конфирмации, проектов обработки данных и некоторых других. Преимущественно Java используется при написании серверных приложений, в большинстве своём без какого-либо пользовательского интерфейса, которые получают данные с одного сервера, обрабатывают их и отправляют дальше.
Многие полезные программные средства и средства разработки написаны и разработаны на Java, например Eclipse, IntelliJ Idea и Netbeans IDE. Это наиболее используемые приложения, написанные на Java.
3.2 Инструментальные программные средства
Различные инструменты разработки предлагают поддержку и дополнительную функциональность, различного объема и масштаба, для языков программирования. Выбор инструмента разработки программного обеспечения аналогичен выбору аппаратного инструмента - необходимо учитывать гибкость, а также ограничения проекта.
При опросе GoodFirms [12] разработчики выявили ряд различных инструментов, которые они используют в типичной разработке программного обеспечения. На Рис. 6 представлены наиболее популярные инструменты программирования.
Рисунок 6. Наиболее популярные средства разработки [12]
Около 46,20% разработчиков-участников используют Microsoft Visual Studio для своих проектов.
В то время как 38,50% программистов кодируют и собирают программное обеспечение в Subline Text.
Около 23,10% участников заявляют, что используют GitHub для разработки программного обеспечения для веб-хостинга.
Более 15,40% разработчиков используют WebStorm и около 7,70% из них разрабатывают на Ruby по Rails.
Хотя это всего лишь пять упомянутых участниками инструментов из множества доступных, некоторые из тех о которых также стоит сказать (69,30%): NodeJS, Bitbucket, Jenkins, NetBeans, PhpStorm, Postman и Docker среди нескольких тысяч других.
Огромная популярность таких инструментов, как Visual Studio, Sublime Text, WebStorm и Ruby by Rails, подразумевает тенденцию разработчиков практиковать IDE, а не различные дискретные инструменты.
Пятерка самых популярных инструментов тестирования представлена на Рис. 7.
Рисунок 7. Наиболее популярные средства тестирования [12]
Selenium - платформа для тестирования программного обеспечения - используется большинством, то есть 38,50% тестировщиков, учитывая общую адаптивность и гибкость инструмента.
Apache JMeter популярен среди 30,80% участников для нагрузочного тестирования и тестирования производительности.
Кроме того, Agile Load используется 23,10% опрошенных фирм для оптимизации и автоматизации процесса тестирования.
Каждый из Redmine и Appium привлекает 15,40% программистов для тестирования.
На разных этапах и платформах разработчики подразумевали важность как автоматического, так и непрерывного тестирования производительности. Это отражено в текущей популярности таких инструментов, как Selenium, Agile Load и Appium.
3.3 Методологии
Как правило, если подход к разработке программного обеспечения определяется рационально, он может улучшить программное обеспечение на нескольких этапах разработки при ограниченных ресурсах и экономическом бюджете. В течение короткой истории программного обеспечения, около шести десятилетий, было реализовано несколько десятков моделей разработки. На Рис. 8 показаны результаты опроса компаний о использованных ими методологиях разработки [14].
Рисунок 8. Статистика по использованию методологий [14]
Agile (гибкая) разработка программного обеспечения получает широкое внедрение. Ее использует около 60% опрошенных компаний. Компании выделили следующие причины такого распространения:
Эффективное сотрудничество команды - привнесение гибкости во взаимодействии.
Регулярное участие клиентов - поощрение прозрачности на этапе разработки и эволюции решений.
Подходит для адаптации к изменяющимся требованиям клиентов, что создает одну из самых больших проблем для команд разработчиков.
Наиболее популярным является Scrum метод, 60,5% компаний. Scrum - гибкая адаптированная структура-направлена на расширение ассоциации и лучшее вовлечение клиентов. Значительная часть фирм-разработчиков, около 23.10%, использует Scrum или его версии по таким причинам, как:
Расширенное командное сотрудничество с ежедневными встречами и непрерывной интеграцией программного обеспечения.
Жизнеспособное участие клиента с мастерами Scrum, которые держат их в курсе обновлений и документации.
Лучшие результаты - обеспечение удовлетворенности клиентов и оптимизированные решения производительности.
Среди всех методов системы Agile Scrum отличается тем, что делает основной упор на качественный контроль рабочего процесса.
Метод заключается в том, что разработка проекта разделяется на спринты, по окончании которых клиент получает улучшенное ПО. Спринты строго фиксируются по времени, и могут длиться от 2 до 4 недель. Рабочий процесс в одном спринте включает в себя несколько стадий:
Определяются объемы работы
Каждый день проводятся 15-минутные встречи, чтобы члены команды могли скорректировать свою работу и подвести промежуточные итоги
Демонстрируются полученные результаты
Спринты обсуждаются для поиска удачных и неудачных решений и действий
В большинстве случаев Scrum применяется в работе со сложным ПО и для разработки продукта с использованием инкрементных и итеративных методов. Благодаря ему серьезно повышается производительность команды и сокращаются временные затраты на достижение цели.
Scrum улучшает результаты, помогает адаптировать проект к изменениям, обеспечивает более точную оценку при меньших трудозатратах на анализ и позволяет эффективнее контролировать этапы работы и сценарий проекта. Все это как нельзя лучше соответствует бизнес-целям.
Kanban - второй по популярности метод, 35,4%. Это еще один метод, делающий командную работу более результативной и продуктивной. Смысл его сводится к приданию процессу разработки максимальной прозрачности и равномерному распределению нагрузки среди участников проекта. Важная особенность Kanban еще и в том, что он мотивирует людей на постоянное сотрудничество, совершенствование и обучение.
Работа по методу Kanban выстраивается на нескольких принципах. Во-первых, вся информация о проекте должна быть визуализирована, что позволяет видеть накладки, ошибки и недочеты и активно их устранять. Во-вторых, работа над одной задачей должна вестись одновременно всей командой - это помогает сбалансировать усилия и получаемые результаты, исключает неравномерное распределение нагрузки. И, в-третьих, время на выполнение всех задач строго контролируется, благодаря чему оптимизируется процесс и экономится время.
...Подобные документы
Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).
презентация [41,4 K], добавлен 13.10.2013Стадии разработки программного средства. Средства, методологии и методы его разработки. Оценка надежности и качества проекта. Обоснование необходимости разработки программы. Тестирование как процесс выполнения тестовой программы с намерением найти ошибки.
презентация [57,0 K], добавлен 27.12.2013Анализ и сравнение существующих систем тьюторской поддержки. Методологии разработки программного обеспечения. Разработка web-ориентированной системы тьюторской поддержки самостоятельной работы студента. Выбор архитектуры программных средств разработки.
курсовая работа [1,1 M], добавлен 05.01.2013Этапы технологического процесса разработки программных продуктов, их жизненный цикл. Общая характеристика языков программирования. Виды ошибок и принципы тестирования программ. Установление прав собственности на продукт посредством лицензий и контрактов.
презентация [1,9 M], добавлен 01.05.2011Современные методологические проблемы разработки и внедрения программного обеспечения ERP систем. Основные концептуальные подходы к методологии разработки и внедрения программного обеспечения. Исследование методологии ASAP: ее сильные и слабые стороны.
дипломная работа [4,3 M], добавлен 29.04.2011Виды и классификация программного обеспечения. Операционные системы. Виды прикладного программного обеспечения. Программные средства работы с текстом, для вычислительных работ, с графикой, со звуком. Базы данных. Языки и системы программирования.
реферат [87,7 K], добавлен 07.03.2009Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.
презентация [379,5 K], добавлен 30.04.2014История развития информационных технологий. Классификация, виды программного обеспечения. Методологии и технологии проектирования информационных систем. Требования к методологии и технологии. Структурный подход к проектированию информационных систем.
дипломная работа [1,3 M], добавлен 07.02.2009Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".
дипломная работа [3,2 M], добавлен 11.09.2014Технологии разработки программного обеспечения. Процедура постановки задачи, определения требований. Последовательность действий логической, разветвленной и циклической структуры. Терминология программирования. Этапы создания программного продукта.
презентация [793,8 K], добавлен 15.11.2010Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.
дипломная работа [861,9 K], добавлен 27.11.2014Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017Современные инструменты разработки программного обеспечения для СУТП. Универсальные языки программирования и сравнение их со SCADA-системами. Разработка программного обеспечения с использованием многоканальных измерительных преобразователей Ш9327.
дипломная работа [2,3 M], добавлен 13.07.2011Несоответствие процессов разработки программного обеспечения международным стандартам. Фазы, развитие вычислительной инфраструктуры. История развития компьютерных систем. Этапы разработки программ и их тестирование. Ошибки в программном обеспечении.
реферат [176,2 K], добавлен 27.08.2009Объектный подход как метод реализации программных систем. Проектирование и программная реализация стратегической системы, реализующей процессы создания и взаимодействия группы объектов. Разработка объектной модели. Назначение элементов интерфейса.
курсовая работа [4,1 M], добавлен 11.05.2012Понятие CASE-средств как программных средств, которые поддерживают процессы создания и сопровождения информационных систем (ИС). Особенности IDEF-технологии разработки ИС. Описание нотации IDEF0. Разработка функциональных моделей бизнес-процесса.
презентация [399,8 K], добавлен 07.04.2013Правила написания программ с блоками защиты от несанкционированного ввода данных. Приемы надежного программирования. Причины, источники и классификация ошибок программного обеспечения. Основные пути борьбы с ошибками. Метод введения переменной состояния.
курсовая работа [1,6 M], добавлен 25.03.2012Эволюция систем автоматизированного проектирования от простых средств двухмерного рисования и разработки чертежей до программных продуктов, включающих поддержку цикла разработки и производства изделия. Требования к пользовательскому интерфейсу САПР.
курсовая работа [274,5 K], добавлен 19.12.2014Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.
курсовая работа [19,5 K], добавлен 19.05.2011Методологии разработки информационных систем в отечественной и зарубежной литературе. Государственные и международные стандарты в области разработки программного обеспечения. Разработка фрагмента информационной системы "Учебно-методический ресурс".
курсовая работа [364,6 K], добавлен 28.05.2009