Программирование

Материал из ITpedia

Перейти к: навигация, поиск

Программирование — процесс создания компьютерных программ и/или программного обеспечения для ЭВМ с помощью языков программирования. Программирование сочетает в себе элементы искусства науки, инженерии и ремесла.

Методология программирования — это совокупность идей, понятий, принципов, способов и средств, определяющая стиль написания, отладки и сопровождения программ.

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

Содержание

[править] Основные этапы разработки программ

Программирование включает в себя:

  • Анализ и постановка задач
  • Алгоритмизация — разработка комплекса алгоритмов
  • Написание исходных текстов программ для ЭВМ
  • Тестирование и отладку программ на ЭВМ
  • Испытания и сдачу программ на ЭВМ
  • Сопровождение программ

Большая часть работы программистов связана с написанием исходных текстов программ на одном из языков программирования, а также тестированием и отладкой программ на ЭВМ .

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

[править] Проблемы разработки программ

Программный продукт - это программы, которые не дают сбоев и отказов при их выполнении на ЭВМ. Программы с ошибками дефектами, которые приводят к сбоям и отказам в работе ЭВМ - это не продукт.

Программы с дефектами и ошибками согласно Закону РФ "О защите прав потребителей" подлежат исправлению, а программные продукты - замене либо возвращению денежных средств.

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

Тщательное тестирование программ на ЭВМ и привлечение доказательного подхода к проектированию ПО позволяет избавить программы от ошибки и обеспечить гарантии качества и надежности программ для ЭВМ.

[править] Ошибки в алгоритмах и программах

Ошибки в алгоритмах программах - одна из самых серьезных проблем в информатике и профессиональном программировании.

Программа содержит ошибки, если при ее выполнении ЭВМ дает сбои, отказы или неправильные результаты.

Аксиомы программирования (Каймин-Дейкстра):

1) Число ошибок в программах - неизвестно.

2) Продолжительность отладки программ - неизвестна.

3) Отсутствие ошибок гарантируют доказательства правильности.

Отсутствие ошибок в программах проверяется их тестированием на ЭВМ. Тестирование может выявить ошибки, но не может гарантировать отсутствие ошибок в программах. (Дейкстра)

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

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

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

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

[править] Структурное программирование

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

Структурное программирование - это разработка программ для ЭВМ с использованием языков структурного программирования Паскаль, Си, Java, PHP, Perl, Javascript и т.д. - программ, имеющих структурную запись и состоящих из четырех видов композиции операторов - последовательностей, альтернатив, циклов и подпрограмм.

[править] Структурное проектирование программ

Структурное проектирование программ для ЭВМ - это разработка комплекса алгоритмов и сложных программ для ЭВМ с использованием структурный псевдокода для описания алгоритмов и документирования программной продукции (программного обеспечения).

Структурное проектирование программ для ЭВМ было предложено профессором Харланом Миллзлм, сотрудником корпорации IBM для документирования всей программной продукции фирмы IBM в 1972г. и применяется в ИБМ для разработки и документирования всего ПО ИБМ.

По данным ИБМ использование структурного проектирования ПО с применением псевдокода позволило корпорации сократить число ошибок в программах в десять раз с 2-3 ошибок в ста операторах до 2-3 ошибок на тысячу операторов.

Практика обучения студентов структурному программированию и структурному проектированию программ для ЭВМ также показала десятикратное сокращение ошибок в программах.

При обучении структурному программированию объем программ редко составляет более 100 операторов, по этому у студентов редко бывает более 2-3 ошибок в структурированных алгоритмах и программах.

[править] Доказательное Программирование

Доказательное программирование - это технология разработки программ для ЭВМ с доказательствами правильности - доказательствами отсутствия ошибок в программах.

Идея доказательного программирования впервые была высказана академиком Ершовым А.П., а первый учебник по доказательному программированию был написан Кайминым В.А. в 1987г. и апробирван в рамках курса алгоритмизация и программирования в 1980-88гг.

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

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

Для доказательства правильности алгоритмов и программ используется математическая семантика структурированных алгоритмов и программ, разработанная и описанная Кайминым В.А. в книгах "Основы доказательного программирования" (1987) и "Методы разработки программ на языках высокого уровня". --ВАК, проф.,док.комп.наук 05:24, 17 июля 2009 (UTC)

[править] Обучение программированию

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

Обучение алгоритмизации и программированию успешно проводилось и проводится с 1980 года на всех факультетах и специальностях МИЭМ, МАТИ и многих других вузах по учебникам и методике Каймина, Нечаева, Питеркина.

В основе обучения программированию лежит описание алгоритмов решения задач на ЭВМ на русскоязычном псевдокоде, понятном всем русскоязычным студентам, школьникам, учителям и преподавателям.

Нет и не было ни одного студента или школьника, преподавателя или учителя, который не смог научиться читать, понимать и писать алгоритмы решения задач на ЭВМ с проверкой программ на ЭВМ и помощи учителя.

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

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

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

Попробуйте и я гарантирую у вас и всех ваших коллег и друзей все получится с составлением алгоритмов и программ для отображения картинок на экранах ЭВМ.

[править] См. также

информатика

логика в информатике

структурный псевдокод

решение задач на ЭВМ

логическое программирование

доказательное программирование

методология программирования

Технология программирования

Открытое программное обеспечение

[править] Литература

  • Наур. Наука программирования. М., Мир, 1982.
  • Турский М. Методология программирования. М., Мир, 1982.

* Дейкстра Э. Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — С. 275.

[править] Интернет-ссылки