Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм icon

Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм




Скачати 100.11 Kb.
НазваТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Дата12.09.2012
Розмір100.11 Kb.
ТипЛекція

Лекція 17 "Інформатика та комп'ютерна техніка"

Розділ 7. Основи програмування

Тема 7.1. Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів

Життєвий цикл програм.


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

  • для менеджмента – зная основные этапы создания и затраты на них Вы можете эффективно управлять процессом разработки.

  • для маркетинга – правильно оценивать срок эффективной продажи ПО


^ Жизненный цикл зависит от вида ПО, его назначения и способов его создания:

Таблица 1

Фаза

Затраты

Коммерческое ПО

Индивидуальная разработка

«Рождение»

50%

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

Действия: Маркетинговые ис­следования и реклама, проекти­ро­­вание, программирование, отладка

Причины: Наличие заказчи­ка и финанси­рования с его стороны.

Действия: Спецификация задачи, составление ТЗ и контракта на разработку, прототипирование или создание пилотной модели.

«Взросление»

15%

Причины: успешность отладки, положительные отклики на рекламу.

Действия: - и -тестирование, создание дополнений в соот­ветствии с реакцией рынка

Причины: Заказчик дово­лен работой прототипа и согласен на дальнейшее финансирование

Действия: доработка, отладка и тестирование ПО

«Зрелость»

25%

Причины: желание оправдать вложенные средства.

Действия: Тиражирование и завоевание рынка, промыш­ленная эксплуатация, обучение и сопровождение пользователей, развитие ПО.

Причины: Производ­ствен­ные или иные потребности заказчика

Действия: Эксплуатация, сопровождение и развитие

«Старость»

10%

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

Действия: Ликвидация ПО (в худшем случае - с компен­сацией ущерба), инвестиции в создание новой версии.

Причины: Отсутствие потребности у заказчика


Действия: Прекращение сопровождения. Фиксация и использование накоплен­ного опыта, разборка ПО и передача полезных компонент в депозитарий.



^

Лінійна, циклічна та спіральна моделі ЖЦ і їх економічне підгрунтя.


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

Циклическая модель: заказ – частичная спецификация – прототип – опытная эксплуатация – уточнение спецификаций – возврат на начало к созданию новой версии.

Применяется при серийной разработке ПО. Ориентирована на ограниченное тиражирование с учетом последующего сопровождения. Средняя по затратам и срокам окупаемости.

Спиральная модель: частичный заказ – модель программы – использование – осознание потребностей. – усовершенствование модели с учетом нового понимания задачи. Ориентирована на заказное ПО. Требует постоянных контактов между разработчиками и заказчиками. Обеспечивает минимальные сроки начала эксплуатации.
^

Поняття обчислювального процесу. Види обчислювальних процесів.


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

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

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

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

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

Опис вихідних, проміжних і кінцевих даних.


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

  • понятие, которому они соответствуют;

  • роль, которую они играют, место и способ обработки при вычислениях;

  • значения, которые они имеют в начале процесса (исходные значения);

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

Описание (спецификация) данных обычно приводится в виде таблиц и графов взаимосвязи понятий. При проектировании баз данных строится информационно-логическая модель.
^

Поняття алгоритму. Алгоритмізація завдань. Абстрактна модель обчислювача.


Aлгоритм - это формализованная запись последовательности действий (шагов), выполнение которых приводит к решению поставленной задачи.

Алгоритмы всегда ориентированы на исполнителя и записываются на понятном ему языке. Формализация алгоритмов необходима для исключе­ния неоднозначности его понимания.

Абстрактная модель вычислителя






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

^ Устройство управления «понимает» алгоритм и превращает его в последовательность команд. После выполнения команды проверяются ее результаты и в соответствии с ними выбирается следующий шаг алгоритма.
^

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


Математическая модель – это система взаимосвязанных формул, описывающая зависимость результата от входных данных.

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


Модель предметной области и проектирование алгоритмов






^

Засоби подання алгоритмів: класична покрокова нотація, граф-схеми, блок-схеми, мови проектування алгоритмів та програм. Стандартизація подання алгоритмів.



Классическая пошаговая запись

Шаг 1: Выбрать фирму, размер и срок вклада;

Шаг 2: Вычислить размер начисленных процентов;

Шаг 3: Если «маловато будет» вернуться на Шаг 1;

Шаг 4: Вложить деньги в фирму.


Граф-схемы алгоритмов





Блок-схемы алгоритмов


Языки проектирования


СХЕМА Поиск;

«Выбор наилучшего места вложения денег »

=== « Установить Достаточно = ложь » *

* ПОКА НЕ ‘Достаточно’

ЦИКЛ ( « Выбрать фирму, размер и срок вклада » *

* « Вычислить размер начисленных процентов ») ;


« Выбрать фирму, размер и срок вклада »

=== . . .


« Вычислить размер начисленных процентов »

=== . . .

КОНЕЦ;

Поширені алгоритми вирішення економічних завдань.


  • ^ Расчет технико-экономических показателей: алгоритмы расчета по математическим формулам.;

  • Моделирование экономических процессов: решение систем уравнений, алгоритмы последовательных приближений, метод Монте-Карло;

  • ^ Сбор и обработка экономической информации, управление ресурсами, автоматизация финансовой деятельности: алгоритмы управления базами данных и автоматизации формирования запросов, алгоритмы кодирования, верификации и передачи данных;

  • ^ Прогнозирование экономических процессов: алгоритмы вычисления статистических показателей, экстраполяции различными функциями, построения нейронных сетей;

  • Анализ взаимного влияния экономических факторов: алгоритмы факторного анализа, построения трендов, многомерной регрессии;

  • ^ Планирование и оптимизация производства и распределения: алгоритмы поиска экстремумов функций, генерации вариантов решений, согласования экспертных оценок, решения систем неравенств;

Мови та інструментарії програмування. Інтер­претатори, компілятори, засоби тестування, збереження та повторного використання програм, інтегроване мовне середовище програмування.


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

^ Языки низкого уровня – Ассемблеры – для системного программирования (операционные системы, драйверы устройств, встраиваемые программы). Глубокие возможности но высокая трудоемкость программирования. Привязаны к конкретной платформе.

^ Универсальные языки высокого уровня – С++, Паскаль, Ява – для проблемного программирования (различные приложения). Широкие возможности, средняя трудоемкость.

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

^ Языки программирования в среде СУБД – SQL – для создания, заполнения, управления и поиска в базах данных. (Создание приложений на базе СУБД). Специфические возможности, низкая трудоемкость.

^ Инструментарий программирования – это программный комплекс, поддерживающий создание и отладку программ на данном языке. В настоящее время применяются интегрированные среды визуального программирования – Visual C++, Visual Basic, Delphi и им подобные. Поддерживают разработку путем расположения пиктограм элементов программы в полях формы. Имеют встроенные редакторы и отладчики, компиляторы и построители загрузочных модулей или интерпретаторы исходных текстов.
^

Засоби розробки програм. Мови специфікації та кодування програм.


При создании программ различают следующие виды работ:

  • спецификацию – описание требований, предъявляемых к обрабатываемым данным, алгоритмам и к программе в целом;

  • кодирование – отображение алгоритма в соответствии со спецификациями в текст программы;

  • верификацию – проверку полученного текста программы на выполнение требований спецификации;

  • отладку – поиск и исправление ошибок в программе;

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

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

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

Поняття технології програмування.


Технология программирования, это порядок действий, которые следует выполнять при разработке программы в рамках данного инструментария, и используемые при этом программные конструкции. Например, технология структурного программирования предполагала использование трех стандартных конструкций – композиции, ветвления и цикла. Технология вертикальных слоев – последовательную реализацию отдельных функций сверху-вниз. Технология объектно-ориентированного программирования – разработку комплексных объектов на базе прототипов (наследование и переопределение свойств).

Контрольні питання та завдання:

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

  2. В якому випадку лінійна модель життєвого циклу ПЗ має переваги над циклічною?

  3. У вас народилась оригінальна ідея проведення маркетингових досліджень, і Ви вирішили найняти програміста для її реалізації. По якій моделі життєвого циклу буде розвиватися створювана програма, і чому?

  4. Приведіть не менш ніж 5 причин, через які інтегровані середовища програмування купують більш охоче, ніж окремі інструментальні програми?

  5. Перерахуйте не менш ніж 3 компоненти інтегрованого середовища розробки програм і поясніть їх призначення.

  6. Які висхідні дані необхідні для складання алгоритмів?

  7. Чому розробку програмних виробів не варто розпочинати безпосередньо з програмування, і що повинно передувати цьому?

  8. Ви разом із професійним програмістом розробляєте систему для моделювання динаміки ринку. Які етапи аналізу предметної області будуть вами пройдені і в якому вигляді ви представите результати кожного етапу.

  9. Які переваги і недоліки мають мови проектування алгоритмів порівняно з класичним покроковим записом?

  10. Які переваги і недоліки мають мови проектування алгоритмів порівняно з блок-схемами?

  11. Запишіть алгоритм транспонування матриці.

  12. Запишіть алгоритм перемноження двох матриць.

  13. Запишіть алгоритм, що розраховує середнє арифметичне елементів масиву та виводить повідомлення, якщо тільки чверть елементів менш за нього,

  14. Запишіть алгоритм, що для вказаного року розраховує його колір та відповідну тварину по східному календарю.






45484 22.9.1999 11:20:00 AM


Схожі:

Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм
Жизненный цикл программных изделий, это этапы создания, использования и утилизации программ. Экономистам понимание жизненного цикла...
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconДокументи
1. /fiz/Б. Ступенева структура/1. Освiтнi та освiтньо-квалiфiкацiйнi рiвнi.doc
2....

Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconТема: Каскадне меню. Запуск програм
Мета: Уміти користуватися головним меню для запуску програм І налаштовування системи
Тема Загальні відомості про розробку програм. Формалізація та алгоритмізація обчислювальних процесів Життєвий цикл програм iconЛекція Віруси. Загальні відомості
Ряд програм виконують неявну мету прикладом можуть служити драйвери, які у фоновому режимі забезпечують взаємозв'язок різних пристроїв...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи