Разработка программного продукта для работы с числами палиндромами

Автор работы: Пользователь скрыл имя, 02 Апреля 2010 в 11:37, Не определен

Описание работы

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

Файлы: 1 файл

Курсовая 1 яасть.doc

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

Что это такое, как отпределяются ко всем ПП. + определить требования к разработанному студентом

Техническое задание

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

Не забудьте указать функции программы, имеющие отношение к функциональности программы.  
 

Модель жизненного цикла ПП

     Жизненный цикл программного обеспечения (ПО) —  период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Каскадная модель жизненного цикла («модель водопада», англ. waterfall model) была предложена в 1970 г. Уинстоном Ройсом. Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.

     Этапы проекта в соответствии с каскадной моделью:

  • Формирование требований;
  • Проектирование;
  • Реализация;
  • Тестирование;
  • Внедрение;
  • Эксплуатация и сопровождение.определение потребностей;
  • исследование и описание основных концепций, необходимых для разработки данного ПП;
  • проектирование и разработка ПП;
  • испытание ПП;

     Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.

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

     На каждой итерации оцениваются:

риск превышения сроков и стоимости проекта;

необходимость выполнения еще одной итерации;

степень полноты и точности понимания требований к системе;

целесообразность прекращения проекта.

     Один из примеров реализации спиральной модели — RAD (англ. Rapid Application Development, метод быстрой разработки приложений).

     К развитию итерационной модели, сближению и появлению современного итерационного подхода, который представляет рациональное сочетание этих моделей привело естественное развитие каскадной и спиральной моделе. Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов (RUP, MSF, XP).

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

    • определение потребностей – определялось то, что мы хотим разработать;
    • исследование и описание основных концепций, необходимых для разработки данного ПО – на данном этапе изучалась среда и способы, с помощью которых можно было разработать ПО, а именно: лекционные и практические занятия по предмету «Технология разработки программных продуктов», специализированные учебные пособия по среде разработки Delphi;
    • проектирование и разработка – сначала была разработана блок-схема для создаваемого программного продукта, затем на ее основе данный ПП был разработан в среде разработки Delphi;
    • испытание ПП – была проведена проверка на наличие ошибок и последующая отладка.
 
 
 
 
 
 
 
 

Глава 2

Выполнить проектирование программного обеспечения. Варианты использования должны быть представлены как в графическом виде (диаграмма UML, блок-схема), так и в текстовом виде! Также разработать и другие диаграммы в нотации UML и сопроводить их текстовым описанием (диаграммы последовательности и кооперации, диаграмма классов, диаграммы состояний, диаграмма реализации). 

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

Выполнить тестирование и отладку. 

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

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

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

 

Заключение

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

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

для диапазона  от 10 до 50000 - результат положительный, …;

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

Список литературы

  1. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. — Харьков: Фолио, Ростов н/Д: Феникс, 1997.
 
  1. Ван Тассел Д. Стиль, разработка, эффективность, отладка  и испытание программ. — М.: Мир, 1981.
 
  1. Вирт Н. Алгоритмы и структуры данных. — М.: Мир, 1989.
  2. Культин Н.Б. Программирование в Turbo Pascal и Delphi.— СПб.: BHV — Санкт-Петербург, 1998.

Братищенко  В.В. Проектирование информационных систем. — Иркутск: Изд-во БГУЭП, 2004. — 84 с. 
Приложения А

(обязательное)

Функция проверки числа

 

 

Приложения Б

(обязательное)

Поиск палиндромов

 

Приложения В

(обязательное)

Программный код модуля Unit1:

unit Unit1; 

interface 

uses

  Windows,

  Messages,

  SysUtils,

  Variants,

  Classes,

  Graphics,

  Controls,

  Forms,

  Dialogs,

  StdCtrls,

  ComCtrls, XPMan, Menus; 

type

  TForm1 = class(TForm)

    Memo1: TMemo;

    Button1: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    ProgressBar1: TProgressBar;

    XPManifest1: TXPManifest;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    SaveDialog1: TSaveDialog;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

Продолжение программного кода Unit1:

    N7: TMenuItem;

    procedure N7Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1; 

implementation 

uses unit2, about; 

{$R *.dfm} 

function isPalindrom(num: uint64): boolean;

var

  _on, nn, r: uint64;

begin 

  _on := num; 

  nn := 0;

  while (num <> 0) do

  begin

    r := num mod 10;

    num := num div 10;

    nn := nn * 10 + r;

  end; 

Продолжение программного кода Unit1:

  result := (_on = nn); 

end; 

procedure TForm1.Button1Click(Sender: TObject);

var

  iFrom, iTo, i: integer;

  ix: uInt64;

begin 

  Button1.Enabled := False;

  Memo1.Clear; 

  iFrom := StrToIntDef(Edit1.Text, 0);

  iTo := StrToIntDef(Edit2.Text, 0); 

  ProgressBar1.Max := iTo; 

  for i := iFrom to iTo do

  begin 

    ix := i;

    if isPalindrom(ix) and isPalindrom(ix * ix) {} then

    begin

      Memo1.Lines.Add(Format('%d <--> %d', [ix, ix * ix]));

      Memo1.SelStart := Length(Memo1.Text);

      ProgressBar1.Position := i;

      Application.ProcessMessages;

    end;

  end; 

  ProgressBar1.Position := i; 

  Button1.Enabled := True;

end; 

Продолжение программного кода Unit1:

procedure TForm1.N2Click(Sender: TObject);

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