Методология разработки программных продуктов

Реферат

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

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

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

программа язык алгоритм программный

1. Этапы планирования программы

Решение любой задачи на ЭВМ представляет собой процесс обработки данных с помощью программы. Создание такой программы предполагает выполнение ряда последовательных этапов:

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

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

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

3 стр., 1250 слов

Принципы разработки алгоритмов и программ для решения прикладных задач

... программе, а лишь затем решать, как это надо делать. При нисходящем проектировании исходная, подлежащая решению задача разбивается на ряд подзадач, подчиненных по ... числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как ... задачи - одно из важнейших в программировании. Допустим, надо ввести в память компьютера 100 чисел и по ... программ часто называют абстракцией данных. Информация ...

Третий этап подготовки решения задачи представляет собой алгоритмизацию ее решения, т.е. разработку оригинального или адаптацию известного алгоритма. Алгоритмизация — это сложный процесс, носящий в значительной степени творческий характер. Постановка задачи и ее алгоритмизация составляют до 20-30% общего времени на разработку программы. Сложность и ответственность реализации данного этапа объясняется тем, что для решения одной и той же задачи, как правило, существует множество различных алгоритмов.

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

Четвертый этап — составление программы. На этом этапе производится перевод описания алгоритма на один из доступных для ЭВМ языков описания.

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

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

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

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

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

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

Запись команд непосредственно на языке, понятном процессору, довольно утомительна. Такие программы создавались программистами лишь для первых ламповых ЭВМ.

В 1950-х годах появились первые языки, называемые Автокодами, а позднее они стали называться Ассемблеры. Здесь переменные величины стали обозначаться символами, а команды зарезервированными наборами символов. Таким образом, процесс программирования стал более понятен для человека. Такое представление работы с данными было реализовано с помощью специального переводчика — транслятора — программы, переводящей текст создаваемой человеком программы в машинные команды.

12 стр., 5572 слов

Разработка программы с помощью языка программирования Delphi

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

Языки типа Ассемблеров (языки низкого уровня) являются машинно-ориентированными, т. е. для каждого типа процессора существует свой язык-Ассемблер.

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

Различают 2 типа трансляции:

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

2. интерпретация заключается в последовательном чтении транслятором очередной команды, переводе ее в машинный код и последующем ее выполнении, при этом результаты предыдущих переводов в памяти не сохраняются; программа-интерпретатор постоянно находится в оперативной памяти компьютера.

Следует отметить, что откомпилированная пользовательская программа выполняется быстрее, чем интерпретированная. Поэтому такие языки программирования высокого уровня, как Turbo Pascal, Фортран, Си, используют компиляцию при реализации программ.

Каждый язык программирования характеризуется элементами:

1) Алфавит — набор символов, разрешенных к использованию и воспринимаемых компилятором. С помощью этих символов строятся команды, переменные, операции.

2) Синтаксис — правила записи команд и операций.

3) Семантика — смысловое содержание и способы построения конструкций языка.

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

Класс машинно-зависимых языков представлен ассемблером. Язык ассемблера делает доступными все программно-управляемые компоненты компьютера, поэтому он применяется для написания программ, использующих специфику конкретной аппаратуры. Ассемблер — это наиболее трудоемкий язык программирования, и из-за его низкого уровня не удается построить средства отладки, которые существенно снизили бы трудоемкость разработки программ. Программирование на ассемблере требует от программиста детальных знаний технических компонент персонального компьютера. Ассемблер используется в основном для системного программирования.

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

Исторически одним из самых распространенных языков стал Бейсик. Он прост в освоении и использовании. Написать на этом языке программу в 20-30 строк и получить результат можно за несколько минут. Для различных типов ПК разработаны различные версии языка Бейсик.

Паскаль является одним из самых распространенных, хотя он и создавался как учебный. Использование в структуре языка специального кода позволило в 4-5 раз уменьшить длину текста программы и в 4-5 раз увеличить быстродействие программы. Версия Паскаля для ПК — Турбо-Паскаль — характеризуется такими важными особенностями, как полноэкранное редактирование и управление, графика, звуковое сопровождение и развитые связи с DOS. Система программирования на Турбо-Паскале является резидентной программой. Это позволяет пользователю вводить тексты программ и немедленно их выполнять, не тратя времени на компилирование.

15 стр., 7480 слов

Проектирование технологических процессов обработки экономической информации

... языков Детальные блок-схемы программных модулей Распечатка программы Описание текста программы Отлаженный текст программы Исходные данные контрольного примера Отлаженный текст программы Описание контрольного примера Документация по программному обеспечению Технологическая документация Технологическая сеть проектирования процесса обработки ...

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

Фирмой IBM в развитие идей Фортрана, Алгола и Кобола был предложен язык PL/1, который получил наибольшее распространение на больших машинах. PL/1 разрабатывался как универсальный язык программирования, поэтому он располагает большим набором средств обработки цифровой и текстовой информации. Однако эти достоинства делают его весьма сложным для обучения и использования.

Класс проблемно-ориентированных языков программирования представлен языками Лого, РПГ и системой программирования GPSS. Язык Лого был создан с целью обучения школьников основам алгоритмического мышления и программирования. Лого — диалоговый процедурный язык, реализованный на основе интерпретатора с возможностью работы со списками и на их основе с текстами, оснащенными развитыми графическими средствами, которые доступны для детского восприятия. Этот язык реализован в большинстве ПК, применяемых в школах.

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

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

В последние годы развивается объектно-ориентированный подход к программированию. Наиболее полно он реализован в языках Форт и СМОЛТОК. Форт сочетает в себе свойства операционной системы, интерпретатора и компилятора одновременно. Основной чертой языка является его открытость. Программист может легко добавлять новые операции, типы данных и определения основного языка. Форт позволяет поддерживать многозадачный режим работы, использует принцип одновременного доступа программ. К объектно-ориентированным средам разработки программ можно отнести Delphi, Visual Basic, Visual FoxPro.

К функциональным языкам программирования можно отнести языки Лиеп, Пролог И Снобол. Лиеп является инструментальным средством для построения программ с использованием методов искусственного интеллекта. Особенность этого языка заключается в удобстве динамического создания новых объектов. В качестве объектов могут выступать и сами исходные объекты. В настоящее время для Лиепа определились две сферы активного применения: проектирование систем искусственного интеллекта и анализ текстов на естественном языке.

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

3 стр., 1489 слов

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

... возможности автоматизации 2D-проектирования обычным пользователем без использования программирования. Текущая версия программы (AutoCAD 2014) включает ... данных. ЭЦП. Подготовка данных для ERP, расчет себестоимости. В нефтегазовом деле программа позволяет создавать трубопроводы и коммуникации, гидравлические и пневматические системы, трубопроводные обвязки, а также проектировать различные инженерные ...

  • ь назначение разрабатываемой программы;
  • ь время выполнения программы;

ь ожидаемый размер программы — хватит ли объема памяти?

ь необходимость сопряжения программ с другими пакетами или программами;

  • ь возможность и необходимость переноса программы на другие типы компьютеров;
  • ь основные типы данных, с которыми будет работать программа;
  • ь характер и уровень использования в программе аппаратных средств (дисплея, клавиатуры, НМД и др.);
  • ь возможность и целесообразность использования стандартных библиотек программ.

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

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

  • степень автоматизации проектных работ;
  • принятая методология процесса разработки.

По степени автоматизации проектирования алгоритмов и программ можно выделить:

  • методы традиционного (неавтоматизированного) проектирования;
  • методы автоматизированного проектирования (CASE-технология и ее элементы).

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

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

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

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

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

26 стр., 12556 слов

Проектирование CRM-системы ОАО ‘Орбита-Сервис’

... алгоритма работы программного модуля 3 Реализация 3.1 Выбор программного средства разработки 3.1.1 Borland Delphi 3.1.2 MS SQL Server 3.2 Описание прикладной программы 3.2.1 Назначение программы ... Разработка диаграммы потоков данных для информационной системы 2.5 Инфологическая модель предметной области 2.6 Даталогическое проектирование базы данных 2.7 Разработка ... -crm/ Несмотря ...

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

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

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

Типичными методами структурного проектирования являются:

  • нисходящее проектирование, кодирование и тестирование программ;
  • модульное программирование;
  • структурное проектирование (программирование) и др.

В зависимости от объекта структурирования различают:

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

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

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

Для полного представления о программном продукте необходима также текстовая информация описательного характера.

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

Даталогические модели имеют логический и физический уровни представления. Физический уровень соответствует организации хранения данных в памяти компьютера. Логический уровень данных применительно к СУБД реализован в виде:

  • концептуальной модели базы данных — интегрированные структуры данных под управлением СУБД;
  • внешних моделей данных — подмножество структур данных для реализации приложений.

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

14 стр., 6809 слов

Программирование в системе 1С: Предприятие

... работы пользователей с данными (интерфейс) и права доступа различных групп пользователей к различной информации) и написание программ на встроенном языке «1С: Предприятия» для обработки входных и выходных данных. На уровне системы ... Принципы разработки в среде «1С: Предприятие 8» Очень важное отличие разработки бизнес-приложений в системе «1С: Предприятие» от разработки в универсальных системах ...

Заключение

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

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

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

Системы программирования, прежде всего, различаются, естественно, по тому, какой язык программирования они реализуют. Среди программистов пишущих программы для персональных компьютеров, наибольшей популярностью пользуются языки Си, Си++, Паскаль, Visual Basic, Delphi.

1. Информатика и математика: Учебник Под ред. Д.В. Захарова, 2007.

2. Математика и информатика. Турецкий

3. 2004 http://ru.wikipedia.org

4.

5. http://www.citforum.ru

6. Семакин И.Г., Шестаков А.П. Основы программирования: Учебник. — М.: Мастерство; НМЦ СПО; Высшая школа, 2003.

7. Системы преобразования, хранения и передачи информации. Барнаул 2007 год, издательство АГАУ. Сидоров.

8. Информатика. Учебное пособие, Барнаул 2008,издательство АГТУ, Дремова.