Жизненный цикл программного обеспечения

Автор работы: Пользователь скрыл имя, 14 Июня 2013 в 03:13, курсовая работа

Краткое описание

Теоретический вопрос - « Жизненный цикл программного обеспечения.»
Практическое задание - составить программу по следующему условию: «Элементы вещественного массива размером N содержат результаты забега на 100 м N спортсменов, измеренные в сек. Составить команду из четырёх лучших бегунов для участия в эстафете 4х100 (указать номера четырёх спортсменов).»

Вложенные файлы: 1 файл

Курсовая.doc

— 455.50 Кб (Скачать файл)

 

Министерство  образования и науки Российской Федерации

ФГБОУ ВПО «Московский  государственный открытый

университет имения В.С. Черномырдина

Чебоксарский  политехнический институт (филиал)

 

Кафедра информационных технологий и программирования

 

 

 

Курсовая работа

по дисциплине "Программирование и основы алгоритмизации"

на тему: " Жизненный цикл программного обеспечения "

Вариант № 3

 

 

 

Выполнил :

студент 1-го курса

очного отделения 

факультета УИТС

специальность 220204

Васько  Н.А.

Проверила:

ст. преподаватель Замкова Т.В.

 

 

 

Чебоксары 2013

 

Задание:

Теоретический вопрос  - « Жизненный цикл программного обеспечения.»

Практическое задание  - составить программу по следующему условию: «Элементы вещественного массива размером  N содержат результаты забега на 100 м N спортсменов, измеренные в сек. Составить команду из четырёх лучших бегунов для участия в эстафете 4х100 (указать номера четырёх спортсменов).»

 

Жизненный цикл программного обеспечения.

 

Введение

 

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

 

В практике разработок больших  программных проектов зачастую отсутствует единый подход к оцениванию затрат труда, сроков проведения работ и материальных затрат, что сдерживает повышение производительности разработки программного обеспечения, а в конечном счете - эффективное управление жизненным циклом программного обеспечения. Поскольку программа любого типа становится изделием (кроме, может быть, учебных, макетных программ), подход к ее изготовлению во многом должен быть аналогичен подходу к производству промышленной продукции, и вопросы проектирования программ становятся чрезвычайно важными. Эта идея лежит в основе книги Б.У. Боэма «Инженерное проектирование программного обеспечения», которую мы использовали при написании данной курсовой работы. В этой книге под проектированием программного обеспечения понимается процесс создания проекта программного изделия.

Жизненный цикл программного обеспечения - это непрерывный процесс, который начинается с момента принятия решения о необходимости создания программного обеспечения (в дальнейшем «ПО») и заканчивается в момент его полного изъятия из эксплуатации.

 

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

 

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

 

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

 

И, для разнообразия, - приведем шаги процесса программирования, представленные Д.Райли в книге «Использование языка Модула-2». Это представление, по-моему, является весьма простым и привычным, с него и начнём.

Шаги процесса программирования по Райли.

Процесс программирования включает четыре шага (рис. 1):

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

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

кодирование программы, т. е. перевод спроектированного  решения в программу, которая может быть выполнена на машине;

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

Рис. 1.Четыре шага программирования

 

Программирование начинается с того момента, когда пользователь, т.е. тот, кто нуждается в программе для решения задачи, излагает проблему системному аналитику. Пользователь и системный аналитик совместно определяют постановку задачи. Последняя затем передается алгоритмисту, который отвечает за проектирование решения. Решение (или алгоритм) представляет последовательность операций, выполнение которых приводит к решению задачи. Поскольку алгоритм часто не приспособлен к выполнению на машине, его следует перевести в машинную программу. Эта операция выполняется кодировщиком. За последующие изменения в программе несет ответственность сопровождающий программист. И системный аналитик, и алгоритмист, и кодировщик, и сопровождающий программист – все они являются программистами.

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

Постановка задачи

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

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

Характеристики Хорошей  Постановки Задачи:

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

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

Ясность, т.е. она должна быть понятной и пользователю и системному аналитику, поскольку постановка задачи – это единственный контракт между  ними.

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

Стандартная форма постановки задачи.

Рассмотрим следующую  постановку задачи: «Ввести три числа  и вывести числа в порядке».

Такая постановка не удовлетворяет  приведенным выше требованиям: она не является ни точной, ни полной, ни понятной. Действительно, должны ли числа вводиться по одному на строке или все числа на одной строке? Означает ли выражение «в порядке» упорядочение от большего к меньшему, от меньшего к большему или тот же порядок, в каком они были введены.

Очевидно, что подобная постановка не отвечает на множество  вопросов. Если же учесть ответы на все  вопросы, то постановка задачи станет многословной и трудной для восприятия. Поэтому Д. Райли предлагает для  постановки задачи пользоваться стандартной формой, которая обеспечивает максимальную точность, полноту, ясность и включает:

наименование задачи (схематическое определение);

общее описание (краткое  изложение задачи);

ввод;

вывод;

ошибки (явно перечислены  необычные варианты ввода, чтобы показать пользователям и программистам те действия, которые предпримет машина в подобных ситуациях);

пример (хороший пример может передать сущность задачи, а  также проиллюстрировать различные  случаи).

Пример. Постановка задачи в стандартной форме.

НАЗВАНИЕ 

 Сортировка трех  целых чисел.

ОПИСАНИЕ

Ввод и вывод трех целых чисел, отсортированных от меньшего числа к большему.

Ввод

Вывод

ОШИБКИ

1) Если введено менее  трех чисел, программа ждет  дополнительного ввода.

2) Строки ввода, кроме первых трех, игнорируются.

3) Если какая-либо из  первых трех строк содержит  более одного целого числа,  то программа завершает работу  и выдает сообщение.

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

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

Сопровождение программы

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

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

Программная документация

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

Определение жизненного цикла ПО по Леману.

В самом общем случае можно считать, что жизненный  цикл программной системы состоит из трех фаз:

определения;

реализации;

обслуживания.

Определение системы

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

Информация о работе Жизненный цикл программного обеспечения