PowerAnt - Могучий Муравей: Научи Свой компьютер Управлять Реальным Миром
PowerAnt это программное управление через RS-232 порт 14 и больше внешними устройствами с помощью компьютера. Открытый, текстовый, хорошо задокументированный протокол управления. Управление электроприборами с потребяемой мощностью до 200Вт. Хотите управлять Реальным Миром даже из MS Excel?.
 Применение
Компьютерный клуб
Компьютерная сеть
Домовая сеть
Умный дом
Прочее
 PowerAnt
Описание
Применение
Тех. характеристики
Документация
Фотографии
 Базовая станция
Описание
Применение
Тех. характеристики
Документация
 Типы PowerAnt
SwSe
SwSw
SeSe
 Скорость работы
MS-DOS
Linux
MS Windows 98
MS Windows 98, Perl
 Программирование
Примеры на Perl
C/C++ - c чего начать
C/C++ - примеры
MS Access 2000
MS Excel 2000
 Заказ
Комплектность
Цены
 ЧаВо
 Новости сайта RSS
 Статьи
 Контакты
 Рейтинги
Яндекс цитирования Каталог ресурсов ListTop.Ru Rambler's Top100

Наука программирование. Рождение, жизнь и смерть.

Алексей В. Пастухов

Введение

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

Жизненный цикл программного обеспечения

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

Написание любой программы начинается с Потребности в решении задачи. В данном случае будут рассматриваться любые задачи, даже те, которые в настоящее время не решаются программным путем. Исходя из потребности в решении задачи формулируется задача. Мерилом правильности работы программы является полное решение задачи, породившей необходимость в написании программы. Причем, в данном случае, имеется ввиду именно полное решение задачи, которую подразумевал пользователь, а не решение поставленной задачи. Итого, жизненный цикл, несколько расширенный относительно стандартного описания, будет выглядеть следующим образом:
Потребность в решении задачи
Постановка задачи
Проектирование
Программирование
Тестирование
Релиз
Эксплуатация
Сопровождение
Полное решение задачи

Системы разработки программного обеспечения

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

Однозначно самую долгую жизнь в этой цепочке будет иметь пользователь со своими потребностями в решении какой-либо задачи. В случае взаимодействия с идеальной системой разработки пользователю достаточно расплывчато сформулировать задачу (а в идеале вообще ее не формулировать). После чего система разработки самостоятельно создаст полное решение задачи, без дополнительных обращений к пользователю. Причем, идеальная система, создаст полное решение задачи за минимальное, приближающиеся к нулю время. Разумеется, такого рода решение подразумевает отсутствие людей в процессе решения задачи, то есть отсутствие программистов как таковых. Это и можно смело назвать смертью программирования как инженерной дисциплины (и триумф систем Искусственного Интеллекта).

Инженерное решение, научное решение, искусство. Что есть что.

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

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

Теперь попробуем определиться с самым абстрактным понятием в программировании - что есть искусство в программировании. Однозначно это нечто, что невозможно автоматизировать, то есть логически вывести применив какие-либо методики. Понятие искусства тесно связано с человеческой индивидуальностью, что и придает элемент неповторимости в творениях людей. Если рассмотреть современные методики программирования, регламентирующие все и вся, можно заметить, что они направлены в первую очередь на удаление элементов непредсказуемости и неповторимости из процесса программирования (хороший тому пример - спецификации на форматирование текстов программ). В принципе понятие искусства существует скорее среди самих программистов в плане изящности решения какой-либо задачи. Пользователь же системы видит исключительно вершину айсберга - пользовательский интерфейс и пользователя интересует полнота решения его задачи. Что и оставляет простор для искусства в программировании.

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

Все вышеизложенное можно представить в графическом виде:

А как-же снижение стоимости ?

Стоимость конечного решения зависит в первую очередь от трудоемкости * наукоемкость.

Заключение

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

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

PowerAnt это программное управление через RS-232 порт 14 и больше внешними устройствами с помощью компьютера. Открытый, текстовый, хорошо задокументированный протокол управления. Управление электроприборами с потребяемой мощностью до 200Вт. Хотите управлять Реальным Миром даже из MS Excel?.
  © 2004-2014 by  www.anthillsolutions.com