Программирование
Материал из 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.
- Иан Сомервилл «Инженерия программного обеспечения», 6-е издание : Пер. с англ. — М. : 2002. — 624 стр. с ил., «Вильямс»
- Каймин В.А. Методы разработки программ на языках высокого уровня. М.: МИЭМ, 1985.
- Каймин В.А. Основы доказательного программирования. М.: МИЭМ, 1987.
- Каймин В.А. Информатика. Учебник для студентов. М.: ИНФРА-М, 1998-2009.
- Каймин В.А. Информатика. Учебник для школьников. М.: Проспект. 2009.
- Каймин В.А. Информатика. Пособие к экзаменам. М.: РИОР, 2008.
- Нечаев А.М. Программирование ЭВМ. М.,МИЭМ, 2003.

