Методология разработки программных продуктов
Этапы планирования программы: постановка задачи, алгоритмизация ее решения, формализованное описание, составление, отладка и эксплуатирование программы. Виды и классификация языков программирования. Методы проектирования алгоритмов и программ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 04.03.2011 |
Размер файла | 27,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
Алтайский государственный аграрный университет
Реферат
Методология разработки программных продуктов.
Выполнил: Рябов Дмитрий Вячеславович 1 курс. о/о. мех.с/х
Барнаул 2011г
Содержание
- Введение
- 1. Этапы планирования программы
- 2. Язык программирования - инструмент для разработки программы. Виды и классификация языков программирования
- 3. Классификация методов создания программных продуктов
- Список использованной литературы и источников
Введение
Современный этап развития общества характеризуется возрастающей ролью информационной сферы, представляющей собой совокупность информации, информационной инфраструктуры, субъектов, осуществляющих сбор, формирование, распространение и использование информации, а также системы регулирования возникающих при этом общественных отношений. Информационная сфера, являясь системообразующим фактором жизни общества, активно влияет на состояние политической, экономической, оборонной и других составляющих безопасности Российской Федерации.
В современном обществе компьютер играет огромную роль, уже трудно представить труд ученых, инженеров, экономистов, бухгалтеров без использования вычислительной техники. Но компьютер сам по себе не способен даже на простые операции, поэтому для того чтобы человек мог использовать компьютер необходимо так называемое программное обеспечение. Программа руководит ресурсами компьютера и предоставляет их в распоряжение пользователя.
Следует отметить, что программное обеспечение, с помощью специальных инструментов - языков программирования специалистами в этой области.
программа язык алгоритм программный
1. Этапы планирования программы
Решение любой задачи на ЭВМ представляет собой процесс обработки данных с помощью программы. Создание такой программы предполагает выполнение ряда последовательных этапов:
ь постановка задачи;
ь математическое описание и выбор метода;
ь разработка алгоритма решения;
ь составление программы;
ь тестирование и отладка программы;
ь эксплуатирование программы.
Первый этап представляет собой постановку задачи. На этом этапе формулируется цель задачи, определяется взаимосвязь с другими задачами, раскрывается состав и форма представления входной, промежуточной и результативной информации, характеризуются формы и методы контроля достоверности информации на ключевых этапах решения задачи, определяются формы взаимодействия пользователя с ЭВМ в ходе решения задачи и т.п.
На втором этапе разработки программы выполняется формализованное описание программы, т.е. устанавливаются и формулируются средства языка математики логико-математические зависимости между исходными и результатными данными. Для задач, допускающих возможность математического описания, необходимо выбрать численный метод решения, а для нечисловых задач - принципиальную схему решения в виде однозначно понимаемой последовательности выполнения элементарных математических и логических операций.
Третий этап подготовки решения задачи представляет собой алгоритмизацию ее решения, т.е. разработку оригинального или адаптацию известного алгоритма. Алгоритмизация - это сложный процесс, носящий в значительной степени творческий характер. Постановка задачи и ее алгоритмизация составляют до 20-30% общего времени на разработку программы. Сложность и ответственность реализации данного этапа объясняется тем, что для решения одной и той же задачи, как правило, существует множество различных алгоритмов.
Алгоритм - это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату. Это конечный набор правил, однозначно раскрывающих содержание и последовательность выполнения операций для систематического решения определенного класса задач за конечное число шагов.
Четвертый этап - составление программы. На этом этапе производится перевод описания алгоритма на один из доступных для ЭВМ языков описания.
Тестирование и отладка составляют заключительный этап разработки программы решения задачи на ЭВМ. Оба эти процесса функционально связаны между собой, хотя их цели несколько отличаются друг от друга.
Тестирование представляет собой совокупность действий, предназначенных для демонстрации правильной работы программы. Цель тестирования заключается в выявлении возможных ошибок в разработанных программах путем их проверке на наборе заранее подготовленных контрольных примеров.
Процессу тестирования сопутствует процесс отладки, который подразумевает совокупность действий, направленных на устранение ошибок в программе. Действия по отладке начинаются с момента обнаружения фактов ошибочной работы программы и завершаются устранением причин, порождающих ошибки.
После завершения процессов тестирования и отладки программные средства вместе с сопроводительной документацией передаются пользователю для эксплуатации. Основное назначение сопроводительной документации - обеспечить пользователя необходимыми инструктивными материалами по работе с программой.
2. Язык программирования - инструмент для разработки программы. Виды и классификация языков программирования
Языком программирования называют способ записи алгоритмов (решений различных задач) на языке, понятном для ЭВМ.
Процессор компьютера может обрабатывать информацию, представленную лишь в виде машинных кодов (двоичных). Запись команд непосредственно на языке, понятном процессору, довольно утомительна. Такие программы создавались программистами лишь для первых ламповых ЭВМ.
В 1950-х годах появились первые языки, называемые Автокодами, а позднее они стали называться Ассемблеры. Здесь переменные величины стали обозначаться символами, а команды зарезервированными наборами символов. Таким образом, процесс программирования стал более понятен для человека. Такое представление работы с данными было реализовано с помощью специального переводчика - транслятора - программы, переводящей текст создаваемой человеком программы в машинные команды.
Языки типа Ассемблеров (языки низкого уровня) являются машинно-ориентированными, т. е. для каждого типа процессора существует свой язык-Ассемблер.
Создание языка программирования заключается в создании программы-транслятора этого языка в машинные коды.
Различают 2 типа трансляции:
1. компиляция заключается в полном предварительном переводе всего набранного пользователем текста программы в программу машинных кодов, причем последняя сохраняется в памяти, откуда и происходит ее выполнение; такая программа-компилятор загружается в память только перед исполнением компиляции;
2. интерпретация заключается в последовательном чтении транслятором очередной команды, переводе ее в машинный код и последующем ее выполнении, при этом результаты предыдущих переводов в памяти не сохраняются; программа-интерпретатор постоянно находится в оперативной памяти компьютера.
Следует отметить, что откомпилированная пользовательская программа выполняется быстрее, чем интерпретированная. Поэтому такие языки программирования высокого уровня, как Turbo Pascal, Фортран, Си, используют компиляцию при реализации программ.
Каждый язык программирования характеризуется элементами:
1) Алфавит - набор символов, разрешенных к использованию и воспринимаемых компилятором. С помощью этих символов строятся команды, переменные, операции.
2) Синтаксис - правила записи команд и операций.
3) Семантика - смысловое содержание и способы построения конструкций языка.
Алгоритмические языки представляют собой средства описания данных и алгоритмов решения задач, они разработаны для составления программы пользователем. В настоящее время разработано большое количество языков программирования. Они отличаются друг от друга различными свойствами и областью применения.
Класс машинно-зависимых языков представлен ассемблером. Язык ассемблера делает доступными все программно-управляемые компоненты компьютера, поэтому он применяется для написания программ, использующих специфику конкретной аппаратуры. Ассемблер - это наиболее трудоемкий язык программирования, и из-за его низкого уровня не удается построить средства отладки, которые существенно снизили бы трудоемкость разработки программ. Программирование на ассемблере требует от программиста детальных знаний технических компонент персонального компьютера. Ассемблер используется в основном для системного программирования.
К классу машинно-ориентированных языков можно отнести языки группы С, С++, Турбо С. Эти языки являются результатом попытки объединить возможности ассемблера со встроенными структурами данных.
Класс универсальных языков программирования представлен наиболее широко: Бейсик, Фортран, Паскаль и др.
Исторически одним из самых распространенных языков стал Бейсик. Он прост в освоении и использовании. Написать на этом языке программу в 20-30 строк и получить результат можно за несколько минут. Для различных типов ПК разработаны различные версии языка Бейсик.
Паскаль является одним из самых распространенных, хотя он и создавался как учебный. Использование в структуре языка специального кода позволило в 4-5 раз уменьшить длину текста программы и в 4-5 раз увеличить быстродействие программы. Версия Паскаля для ПК - Турбо-Паскаль - характеризуется такими важными особенностями, как полноэкранное редактирование и управление, графика, звуковое сопровождение и развитые связи с DOS. Система программирования на Турбо-Паскале является резидентной программой. Это позволяет пользователю вводить тексты программ и немедленно их выполнять, не тратя времени на компилирование.
Язык Кобол был разработан специально для решения экономических задач. Он дает возможность составлять наиболее удобочитаемые программы, которые понятны и непрограммисту. В обработке данных сложной структуры Кобол бывает эффективнее Паскаля.
Фирмой IBM в развитие идей Фортрана, Алгола и Кобола был предложен язык PL/1, который получил наибольшее распространение на больших машинах. PL/1 разрабатывался как универсальный язык программирования, поэтому он располагает большим набором средств обработки цифровой и текстовой информации. Однако эти достоинства делают его весьма сложным для обучения и использования.
Класс проблемно-ориентированных языков программирования представлен языками Лого, РПГ и системой программирования GPSS. Язык Лого был создан с целью обучения школьников основам алгоритмического мышления и программирования. Лого - диалоговый процедурный язык, реализованный на основе интерпретатора с возможностью работы со списками и на их основе с текстами, оснащенными развитыми графическими средствами, которые доступны для детского восприятия. Этот язык реализован в большинстве ПК, применяемых в школах.
РПГ, или генератор отчетов, представляет собой язык, включающий многие понятия и выражения, которые связаны с машинными методами составления отчетов и проектирования форм выходных документов. Язык используется главным образом для печати отчетов, записанных в одном или нескольких файлах баз данных.
Система программирования GPSS ориентирована на моделирование систем с помощью событий. В терминах этого языка легко описывается и исследуется класс моделей массового обслуживания и другие системы, работающие в реальном масштабе времени.
В последние годы развивается объектно-ориентированный подход к программированию. Наиболее полно он реализован в языках Форт и СМОЛТОК. Форт сочетает в себе свойства операционной системы, интерпретатора и компилятора одновременно. Основной чертой языка является его открытость. Программист может легко добавлять новые операции, типы данных и определения основного языка. Форт позволяет поддерживать многозадачный режим работы, использует принцип одновременного доступа программ. К объектно-ориентированным средам разработки программ можно отнести Delphi, Visual Basic, Visual FoxPro.
К функциональным языкам программирования можно отнести языки Лиеп, Пролог И Снобол. Лиеп является инструментальным средством для построения программ с использованием методов искусственного интеллекта. Особенность этого языка заключается в удобстве динамического создания новых объектов. В качестве объектов могут выступать и сами исходные объекты. В настоящее время для Лиепа определились две сферы активного применения: проектирование систем искусственного интеллекта и анализ текстов на естественном языке.
Нетрудно заметить, что языка, который был бы идеальным для всех случаев, не существует. Какой язык является лучшим, надо определять в каждой конкретной ситуации. Поэтому перед разработкой программы следует установить:
ь назначение разрабатываемой программы;
ь время выполнения программы;
ь ожидаемый размер программы - хватит ли объема памяти?
ь необходимость сопряжения программ с другими пакетами или программами;
ь возможность и необходимость переноса программы на другие типы компьютеров;
ь основные типы данных, с которыми будет работать программа;
ь характер и уровень использования в программе аппаратных средств (дисплея, клавиатуры, НМД и др.);
ь возможность и целесообразность использования стандартных библиотек программ.
3. Классификация методов создания программных продуктов
Проектирование алгоритмов и программ - наиболее ответственный этап жизненного цикла программных продуктов, определяющий, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей. Затраты на создание, сопровождение и эксплуатацию программных продуктов, научно-технический уровень разработки, время морального устаревания и многое другое- все это также зависит от проектных решений.
Методы проектирования алгоритмов и программ очень разнообразны, их можно классифицировать по различным признакам, важнейшими из которых являются:
степень автоматизации проектных работ;
принятая методология процесса разработки.
По степени автоматизации проектирования алгоритмов и программ можно выделить:
методы традиционного (неавтоматизированного) проектирования;
методы автоматизированного проектирования (CASE-технология и ее элементы).
Неавтоматизированное проектирование алгоритмов и программ преимущественно используется при разработке небольших по трудоемкости и структурной сложности программных продуктов, не требующих участия большого числа разработчиков. Трудоемкость разрабатываемых программных продуктов, как правило, небольшая, а сами программные продукты имеют преимущественно прикладной характер.
При нарушении этих ограничений заметно снижается производительность труда разработчиков, падает качество разработки, и, как ни парадоксально, увеличиваются трудозатраты и стоимость программного продукта в целом.
Автоматизированное проектирование алгоритмов и программ возникло с необходимостью уменьшить затраты на проектные работы, сократить сроки их выполнения, создать типовые "заготовки" алгоритмов и программ, многократно тиражируемых для различных разработок, координации работ большого коллектива разработчиков, стандартизации алгоритмов и программ.
Автоматизация проектирования может охватывать все или отдельные лапы жизненного цикла программного продукта, при этом работы этапов могут быть изолированы друг от друга либо составлять единый комплекс, выполняемый последовательно во времени. Как правило, автоматизированный подход требует технического и программного "перевооружения" труда самих разработчиков (мощных компьютеров, дорогостоящего программного инструментария, а также повышения квалификации разработчиков и т.п.).
Автоматизированное проектирование алгоритмов и программ под силу лишь крупным фирмам, специализирующимся на разработке определенного класса программных продуктов, занимающих устойчивое положение на рынке программных средств.
Проектирование алгоритмов и программ может основываться на различных подходах, среди которых наиболее распространены:
структурное проектирование программных продуктов;
информационное моделирование предметной области и связанных с ней приложений;
объектно-ориентированное проектирование программных продуктов.
В основе структурного проектирования лежит последовательная декомпозиция, целенаправленное структурирование на отдельные составляющие. Начало развития структурного проектирования алгоритмов и программ падает на 60-е гг. Методы структурного проектирования представляют собой комплекс технических и организационных принципов системного проектирования.
Типичными методами структурного проектирования являются:
нисходящее проектирование, кодирование и тестирование программ;
модульное программирование;
структурное проектирование (программирование) и др.
В зависимости от объекта структурирования различают:
функционально-ориентированные методы - последовательное разложение задачи или целостной проблемы на отдельные, достаточно простые составляющие, обладающие функциональной определенностью;
методы структурирования данных.
Для функционально-ориентированных методов в первую очередь учитываются заданные функции обработки данных, в соответствии с которыми определяется состав и логика работы (алгоритмы) отдельных компонентов программного продукта. С изменением содержания функций обработки, их состава, соответствующего им информационного входа и выхода требуется перепроектирование программного продукта. Основной упор в структурном подходе делается на моделирование процессов обработки данных.
Для методов структурирования данных осуществляется анализ, структурирование и создание моделей данных, применительно к которым устанавливается необходимый состав функций и процедур обработки. Программные продукты тесно связаны со структурой обрабатываемых данных, изменение которой отражается на логике обработки (алгоритмах) и обязательно требует перепроектирования программного продукта.
Для полного представления о программном продукте необходима также текстовая информация описательного характера.
Еще большую значимость информационные модели и структуры данных имеют для информационного моделирования предметной области, в основе которого положение об определяющей роли данных при проектировании алгоритмов и программ. Подход появился в условиях развития программных средств организации хранения и обработки данных - СУБД ( см. гл. 15).
Даталогические модели имеют логический и физический уровни представления. Физический уровень соответствует организации хранения данных в памяти компьютера. Логический уровень данных применительно к СУБД реализован в виде:
концептуальной модели базы данных - интегрированные структуры данных под управлением СУБД;
внешних моделей данных - подмножество структур данных для реализации приложений.
Средствами структур данных моделируются функции предметной области, прослеживается взаимосвязь функций обработки, уточняется состав входной и выходной информации, логика преобразования входных структур данных в выходные. Алгоритм обработки данных можно представить как совокупность процедур преобразований структур данных в соответствии с внешними моделями данных.
Объектно-ориентированная технология разработки программных продуктов объединяет данные и процессы в логические сущности - объекты, которые имеют способность наследовать характеристики (методы и данные) одного или более объектов, обеспечивая тем самым повторное использование программного кода. Это приводит к значительному уменьшению затрат на создание программных продуктов, повышает эффективность жизненного цикла программных продуктов (сокращается длительность фазы разработки).При выполнении программы объекту посылается сообщение, которое инициирует обработку данных объекта.
Заключение
Даже при наличии десятков тысяч программ для ЭВМ пользователям может потребоваться что-то такое, чего не делают (или делают, но не так) имеющиеся программы. В этих случаях следует использовать системы программирования, т.е. системы для разработки новых программ.
Современные системы программирования для персональных компьютеров обычно предоставляют пользователю весьма мощные и удобные средства для разработки программ. В них входят:
компилятор, осуществляющий преобразование программ на языке программирования в программу машинных кодах, или интерпретатор, осуществляющий непосредственное выполнение текста программы на языке программирования высокого уровня;
библиотеки программ, содержащие заранее подготовленные программы, которыми могут пользоваться программисты;
различные вспомогательные программы, например отладчики, программы для получения перекрестных ссылок и т.д.
Системы программирования, прежде всего, различаются, естественно, по тому, какой язык программирования они реализуют. Среди программистов пишущих программы для персональных компьютеров, наибольшей популярностью пользуются языки Си, Си++, Паскаль, Visual Basic, Delphi.
Список использованной литературы и источников
1. Информатика и математика: Учебник Под ред. Д.В. Захарова, 2007.
2. Математика и информатика. Турецкий
3. 2004http://ru.wikipedia.org
4. http://www.inforazrabotky.info
5. http://www.citforum.ru
6. Семакин И.Г., Шестаков А.П. Основы программирования: Учебник. - М.: Мастерство; НМЦ СПО; Высшая школа, 2003.
7. Системы преобразования, хранения и передачи информации. Барнаул 2007 год, издательство АГАУ. Сидоров.
8. Информатика. Учебное пособие, Барнаул 2008,издательство АГТУ, Дремова.
Размещено на Allbest.ru
Подобные документы
Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.
реферат [59,7 K], добавлен 19.08.2010Этапы разработки программных продуктов. Основные понятия и методы программирования. Разработка обучающей программы по технике безопасности при работе на ПК. Постановка и разработка модели задачи. Проектирование. Отладка и тестирование программы.
курсовая работа [3,8 M], добавлен 04.10.2008Создание программы для автоматизации продаж программных продуктов, ведение базы данных по клиентам, формирование отчетов по реализованным товарам и вырученным средствам. Алгоритмизация задачи. Аномалии и защитное программирование. Тестирование и отладка.
курсовая работа [2,9 M], добавлен 17.07.2014Содержательная и формальная (математическая) постановка задачи. Разработка алгоритма решения задачи. Структуры программы и алгоритмы программных модулей, их описание. Решение задачи на конкретном примере. Разработка системы тестов и отладка программы.
курсовая работа [882,1 K], добавлен 24.11.2014Этапы технологического процесса разработки программных продуктов, их жизненный цикл. Общая характеристика языков программирования. Виды ошибок и принципы тестирования программ. Установление прав собственности на продукт посредством лицензий и контрактов.
презентация [1,9 M], добавлен 01.05.2011Составление программы, с помощью которой пользователь может получать статистические сведения о текстовой информации. Для разработки программы использовался язык С++ и среда программирования Borland C++ Builder 6. Постановка задачи и описание ее решения.
курсовая работа [1,6 M], добавлен 03.07.2011Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.
курсовая работа [233,5 K], добавлен 14.12.2012Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.
курсовая работа [19,5 K], добавлен 19.05.2011Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.
курсовая работа [593,6 K], добавлен 09.07.2012Характеристика алгоритмов и программных реализаций поведения агентов в двумерной среде. Исследование разработки структур данных и знаний. Особенность создания интерфейса и карты лабиринта. Экспериментальное тестирование и отладка модулей программы.
дипломная работа [2,4 M], добавлен 12.08.2017