
- •1. Высокоуровневое и низкоуровневое программирование. Решаемые задачи, области применимости, используемые языки и методы программирования.
- •Блок управления физическим устройством
- •2. Этапы разработки программного обеспечения. Задачи и вопросы, решаемые на каждом этапе. Документы каждого этапа.
- •3. Петля управления производством и реализацией продукции. Место компьютерных программ различного типа в информационном обеспечении бизнеса. Отличительные черты программ каждого типа.
- •Программы а типа
- •Программы б типа
- •Массивы
- •25. Ссылочные типы данных. Класс как пример ссылочного типа. Ссылка и объект. Создание объекта. Примеры. Приведение типов.
- •26. Правила написания и структура программ на языке Java. Пример программы, состоящей из нескольких классов и нескольких пакетов.
ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ
1. Высокоуровневое и низкоуровневое программирование. Решаемые задачи, области применимости, используемые языки и методы программирования.
Смысл низкоуровневого программирования заключается в том, чтобы создать базу, определенный интерфейс для манипулирования сложным объектом, предоставить программисту высокого уровня некую «панель управления», указать точки для передачи аппарату управляющих сигналов и параметров, и места, в которых можно считать текущее состояние аппарата, оценить значения контролируемых величин.
Использование
устройства. Вариант 1
Высокоуровневое
программирование


Использование устройства. Вариант 2
Использование
устройства
…
Использование
устойства. Вариант N
Блок управления физическим устройством
Низкоуровневое
программирование
Физическое
устройство
(компьютер,
телефон, т.д.)
Пользовательская
функция 1
Пользовательская
функция 2
Пользовательская
функция …
Пользовательская
функция M
Рис. 1-1. Примеры высокоуровневого и низкоуровневого программирования
К примеру возьмем объект смартфон, в результате получим следующие задачи:
• задачу для низкоуровневого программирования – создание операционной системы и драйверов устройств (управление железками)
• массу задач для высокоуровневого программирования – разработку различных приложений, необходимых Пользователю устройства (компьютера, телефона)
Для однозначного понимания используемых в дальнейшем терминов дадим несколько определений.
Определение. Под методом будем понимать некоторую систематизированную последовательность действий для выполнения определенной задачи или реализации определенной цели.
Определение. Информатика – наука, изучающая структуру и наиболее общие свойства информации, ее поиск, хранение, передачу и обработку с применением ЭВМ.
Определение. Программирование – создание программ с помощью языков программирования для решения определенных задач на компьютере.
Определение. Высокоуровневые методы информатики и программирования – набор приемов программирования, не привязанных к конкретной архитектуре используемых аппаратных средств, ориентированных на высокую эффективность разработки программ.
Высокая эффективность разработки обусловлена следующими особенностями высокоуровневых методов:
• Использование современных языков программирования
• Высокая надежность кода
• Открытость кода для дальнейшей модернизации
• Наличие большого количества готовых шаблонов, библиотек, алгоритмов
• Удобные интегрированные среды разработки
• Использование объектно-ориентированных моделей при описании прикладных задач
• Возможность групповой работы
2. Этапы разработки программного обеспечения. Задачи и вопросы, решаемые на каждом этапе. Документы каждого этапа.
Как правило, готовая программа, работающая корректно, устойчиво и без ошибок – результат целой последовательности типовых шагов, которые прошел Разработчик (одно лицо или коллектив), начиная с неформализованного пожелания Заказчика до ввода программы в эксплуатацию и работы в реальном времени с реальными данными с ожидаемым результатом.
Разберем наиболее важные этапы, через которые нужно пройти Исполнителю (Разработчику программы), чтобы считать работу по написанию программы выполненной.
Первый этап. Первое общение Исполнителя с Заказчиком
Как правило, на этом этапе Исполнитель погружается в предметную область Заказчика и обсуждает с ним следующие вопросы:
Какова цель создания будущей программы?
Какие задачи она будет решать?
Какие исходные данные требуются для решения?
В каком виде и формате должны быть представлены вводимые данные?
Кто их будет вносить?
Что необходимо получить на выходе программы?
В каком виде должны быть представлены результаты?
Каков алгоритм получения результатов?
Каковы пожелания Заказчика к интерфейсу программы?
Должны ли в программе присутствовать графики и диаграммы?
Должна ли программа поддерживать несколько языков интерфейса?
Предполагается ли коллективная работа с программой?
Где должна размещаться программа – на локальном компьютере или на сервере?
Каковы требования к сохранности данных?
Нужно ли шифровать хранимые данные?
Нужны ли различные уровни доступа для работы с программой?
Должна ли быть связь программы с другими программами? Если «да», то с какими?
Нужен ли импорт/экспорт данных в популярные форматы Word, Excel?
Предусматривается ли механизм тиражирования программы?
Нужна ли защита от копирования?
Каков должен быть уровень защиты?
Требуется ли шифрование данных?
Каковы сроки разработки программы?
Какие этапы сдачи программы?
Какова стоимость каждого этапа?
На каких операционных системах должна работать программа?
В случае тиражирования программы как будет распределяться доход?
Какие требования к документации программы? Каков ее объем, кто будет писать документацию?
Нужна ли встроенная система помощи? Кто ее будет создавать?
Остаются ли у Заказчика исходные коды программы?
Может ли Исполнитель использовать программу и/или ее части для продажи сторонним Покупателям?
Кому будет принадлежать право интеллектуальной собственности на программу?
Будет ли поддержка Пользователей программы после завершения разработки, и если «да», то каков механизм поддержки (телефон, почта, форум, выезд на место и т.д.)
и т.д.
В результате обсуждения рождается документ (как правило, Договор, Контракт), в котором описаны отношения Исполнителя и Заказчика, стоимости и сроки работ, ответственность сторон. Как правило, вместе с Договором сторонами подписывается Техническое Задание (ТЗ), оформленное в виде Приложения к договору, в котором подробно расписаны ответы на все перечисленные технические вопросы.
Работа по составлению технического задания является необходимым этапом, так как при возникновении любых спорных ситуаций при разработке программы сразу идет обращение к соответствующему пункту ТЗ. Чем более тщательно будет составлено техническое задание, тем меньше проблем будет у Исполнителя при сдаче программы в эксплуатацию. Более того, так как Заказчик в общем случае не является специалистом в информационных технологиях, он может привлекать к составлению технического задания специалистов сторонних фирм-разработчиков ПО для того, чтобы не оказаться заложником технического задания, ловко составленного Исполнителем. И если Заказчик опытный и хитрый, то он будет стремиться к тому, чтобы ТЗ было разработано одним Исполнителем, а реализация выполнялась другим Исполнителем. Если же Исполнитель опытный, то он будет стремиться навязать свое ТЗ, заложив в него свое понимание задачи и отразив свои возможности ее решения.
Следует отметить, что разработка ТЗ – самостоятельная и сложная работа, поэтому для серьезных проектов разработка ТЗ оплачивается Заказчиком отдельно.
Второй этап. Разработка программы
Самый длительный по времени этап, может в свою очередь делиться на более мелкие этапы, на каждом этапе выполняется определенная часть разработки ПО, проводится периодическое тестирование сделанных модулей и шаблонов, находятся и исправляются ошибки и т.д. На второй этап приходятся основные трудозатраты Исполнителя.
Именно на втором этапе Разработчик минимально связан с Исполнителем, и в заданных временных и функциональных рамках ТЗ может проявить свой творческий и профессиональный потенциал. Можно сказать, что второй этап – это полигон для применения Разработчиком всех своих знаний по высокоуровневым методам информатики и программирования. Именно работу программиста.
Третий этап. Сдача программы Заказчику
После завершения работы по созданию программы программа сдается Заказчику на контрольном примере и передается ему в тестовую, а затем и в промышленную эксплуатацию. В течение оговоренного в ТЗ срока выполняется доработка программы, устранение найденных ошибок, обучение персонала, после чего Заказчиком и Исполнителем составляется Акт выполненных работ, в котором регистрируется дата завершения работ по Договору.
В Акте как правило, присутствует положение, что «указанные в Договоре работы выполнены качественно и в установленный срок, оплачены полностью, и Стороны претензий друг к другу не имеют». После подписания Акта можно считать эпопею по разработке программы выполненной.
После сдачи программы Заказчику
Следующий возможный этап развития отношений Заказчика и Исполнителя – дальнейшее сопровождение программы и ее доработка. С точки зрения привлекательности таких работ для Исполнителя – это самый выгодный этап, и этот этап может продолжаться неопределенно долго. Причина в том, что теперь Заказчик зависит от Исполнителя, так как Заказчиком приложены значительные усилия по интеграции разработанного заказного ПО в свой бизнес, и вместе с развитием бизнеса Заказчику необходимо развивать ПО. В качестве примера можно привести бухгалтерское и управленческое ПО фирмы 1С, когда фирмы-клиенты каждый месяц платят деньги за обновление всевозможных баз. При большом количестве клиентов деньги за такое сопровождение отчисляются немалые.
Другой пример – правовые и бухгалтерские программы-справочники: Консультант Плюс, Гарант. Деньги также делаются на периодическом обновлении информации.