Модели и методологии разработки по

Происхождение

Можно проследить три пути возникновения методологий. Во-первых, они могут являться выражением практического опыта. Во-вторых, методологии могут происходить от одной из четырёх моделей алгоритма: абстрактная машина Тьюринга (императивное программирование), рекурсивные функции Гильберта и Аккермана (структурное программирование), лямбда-исчисление Чёрча (функциональное программирование), нормальные алгорифмы Маркова (логическое программирование). В-третьих, методологии можно объяснить через отображение одной из трёх структур языка моделирования на структуру языка программирования. Составными частями могут быть структура данных, структура управления и логика. Каждое из девяти отображений определяет либо методологию, либо достаточно серьёзный метод программирования. Например, отображение логика-логика лежит в основе логического программирования.

Принципы структурного программирования

Становление и развитие структурного программирования связано с именем Эдсгера Дейкстры.

Принцип 1. Следует отказаться от использования оператора безусловного перехода goto.

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

  • Последовательность — однократное выполнение операций в том порядке, в котором они записаны в тексте программы.
    Бертран Мейер поясняет: «Последовательное соединение: используйте выход одного элемента как вход к другому, подобно тому, как электронщики соединяют выход сопротивления со входом конденсатора».
  • Ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения заданного условия.
  • Цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется заданное условие (условие продолжения цикла).

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

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

  • В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция «Вызов подпрограммы». При выполнении такой инструкции работает вызванная подпрограмма. После этого продолжается исполнение основной программы, начиная с инструкции, следующей за командой «Вызов подпрограммы».
  • Бертран Мейер поясняет: «Преобразуйте элемент, возможно, с внутренними элементами, в подпрограмму, характеризуемую одним входом и одним выходом в ».

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

Блок — это логически сгруппированная часть исходного кода, например, набор инструкций, записанных подряд в исходном коде программы. Понятие блок означает, что к блоку инструкций следует обращаться как к единой инструкции. Блоки служат для ограничения области видимости переменных и функций. Блоки могут быть пустыми или вложенными один в другой. Границы блока строго определены. Например, в if-инструкции блок ограничен кодом (в языке Паскаль) или фигурными скобками {…} (в языке C) или отступами (в языке Питон).

Принцип 6. Все перечисленные конструкции должны иметь один вход и один выход.

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

Принцип 7. Разработка программы ведётся пошагово, методом «сверху вниз» (top-down method).

Экспертные системы и базы знаний

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

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

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

Примечания

  1. Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985;
  2. Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона + CD. М.: ДМК Пресс, 2010. ISBN 978-5-94074-584-6, 0-13-022005-9
  3. Антонов Е. «Древнегреческий компьютер» оказался древнее, чем считалось // Наука и жизнь. — 2014. — 11 декабря (№ 12).
  4. А.И. Китов. Электронные цифровые машины. — Москва, 1956.
  5. Архангельский А.Я. Программирование на С++Builder 6. — Москва: БИНОМ, 2003. — 1152 с. — ISBN 5-7989-0239-0.
  6. Макки Алекс. Введение .Net 4.0 и Visual Studio 2010 для профессионалов. — Москва: ООО «И.Д. Вильямс», 2010. — 416 с. — ISBN 978-5-8459-1639-6. — ISBN 978-1-43-022455-6.

Некоторые философские проблемы

Развитие методологий программирования каждый опытный программист понимает по-своему. Классическое программирование существенно отличается, например, от:

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

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

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

Характерно: особенности «старых» языков программирования – совместимость снизу вверх (иногда и сверху вниз) ушла в историю. Показала свою живучесть идея нетипированных данных. Действительно, почему нужно в одном месте алгоритма говорить, что «X» – это число, а «Y» – это строка, и затем держаться этой идеи на всем протяжении алгоритма. Методологии программирования подошли к необходимости кардинально нового решения: программа должна быть независима от автора и разработана таким образом, чтобы автор мог ее развивать как совокупность актуальных знаний.

Юниты

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

if (IsUnit == TRUE)

else

1
2
3
4

if(IsUnit==TRUE)

else

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

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

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

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

  • А вот еще такую функцию!
  • Еще нужна такая настройка!
  • Еще добавь интеграцию с 1С!

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

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

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

Примеры нейролингвистического программирования

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

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

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

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

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

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

Техники нейролингвистического программирования чаще применяются в сфере продаж товаров и услуг. Для эффективности продаж необходимо придерживаться двух параметров – качества и уровня. Уровнем называется количество всех приобретенных услуг либо товаров, а качеством – объем конкретно каждого приобретения. Уровень продаж легко увеличивается при помощи рекламной компании. А техники данного направления способны приумножить результативность рекламной компании.

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

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

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


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

Стадии развития программирования

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

  • стихийное;
  • императивное;
  • структурное;
  • процедурное;
  • функциональное;
  • объектно-ориентированное;
  • CASE-технологии и т. п.

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

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

Основные понятия области

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector