Техническое задание на разработку программы калькулятор windows

УДК 004.6

Поварницын Е.Н.

студент

факультет «Информационные системы и технологии» Северный Арктический Федеральный Университет

Россия, г. Архангельск

СОСТАВЛЕНИЕ ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ ПРОГРАММЫ КАЛЬКУЛЯТОР WINDOWS

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

Ключевые слова: Техническое задание, Windows, калькулятор, программирование, заказчик.

Povarnitsyn E.N.

student

faculty of Information systems and technologies Northern Arctic Federal University Russia, Arkhangelsk

DRAWING UP A TECHNICAL ASSIGNMENT FOR THE

DEVELOPMENT OF A WINDOWS CALCULATOR PROGRAM

Annotation: The article is devoted to the development of technical specifications. It examines in detail all the stages of the technical specification using the example of a Windows calculator.

Keyword: Terms of reference, Windows, calculator, programming, customer.

1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ

1.1 Общие сведения

Полное наименование: программа «калькулятор Windows».

Краткое наименование: веб- калькулятор Windows.

Наименование организаций — Заказчика и Разработчика:

Заказчик: Microsoft

Фактический адрес: 163200, Россия, г. Няндома, ул. Ленина 42

Телефон: (8182) 42-02-32

Разработчик: Поварницын Егор Николаевич, студент 4 курса высшей школы информационных технологий и автоматизированных систем направления «09.03.02 Информационные системы и технологии» с профилем «Разработка и сопровождение информационных систем»

Фактический адрес: г. Архангельск, пр. Ломоносова 6

1.2 Назначение и задачи

Назначение:

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

Интерфейс программы спроектирован таким образом, чтобы имитировать внешний вид реального калькулятора. Его «кнопки» можно нажимать мышкой. Возможен ввод с дополнительной цифровой клавиатуры. Также можно вставлять математические выражения из буфера обмена и получать результат (например, набрать в Блокноте «2*2=», скопировать и вставить в Калькулятор, на «экране» которого появится ответ «4»).

1.2.1 Требования к веб-ресурсу

Калькулятор до версии, включённой в состав Windows 7, работал в двух режимах: «Обычный» и «Инженерный» (переключение через меню «Вид»). Состояние хранится в файле win.ini, секция [SciCalc]. При переключении режимов экран очищается.

В обычном и инженерном режимах отличается порядок выполнения операций:

в обычном режиме нажатие 1+1*2= даст ответ 4

в инженерном режиме 1+1*2= даёт в результате 3

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

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

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

— перегрузка ПК;

— ограничение чисел на табло;

— недостаточно оперативной памяти.

Требования техническому обеспечению:

Инфраструктуру, поддерживающую работоспособность программы, составляют ПК, на котором находится программы.

ПК:

— Windows OC;

— RAM 1 ГБ;

— HDD 20 TБ;

1.2.2 Состав и содержание работ по созданию подсистемы

Состав и содержание работ по разработке веб -ресурса представлены в таблице 1.

Таблица 1 — Состав и содержание работ по разработке веб-ресурса

Наименование работ Срок выполнения

Изучение предметной области 17.02.2020 — 01.03.2020

Разработка технического задания 01.03.2020 — 15.03.2020

Проектирование подсистемы 16.03.2020 — 22.03.2020

Реализация подсистемы 22.03.2020 — 01.05.2020

Тестирование

Сроки выполнения каждого этапа должны быть согласованы с соответствующими договорами и планом выполнения работ.

1.2.3 Порядок контроля и приемки модуля

Виды испытаний, которые должен пройти программа регламентируется в соответствии с ГОСТ 34.603-92. Должны быть выполнены следующие виды испытаний:

— тестирование.

Виды испытаний, проходимые программы, определяются Исполнителем и утверждаются Заказчиком. Порядок проведения испытаний регламентируется программами и методиками испытаний, предложенными Исполнителем и согласованными Заказчиком.

1.2.4 Требования к документированию

Вместе с разработанным программным обеспечением Исполнитель передает Заказчику комплект документации в единственном экземпляре в электронном виде посредством отправки на электронную почту Заказчика. Электронная документация должна быть предоставлена в формате PDF.

Состав документации регламентируется следующими стандартами и руководящими документами по стандартизации:

— ГОСТ 2.105-95;

— ГОСТ 2.106-96;

— ГОСТ 2.610-2006;

— РД 50-34-698-90.

2 ПРОЕКТИРОВАНИЕ

Приблизительно проект будет выглядеть в соответствии с рисунком 1

= Обычный ©

О

М+ М- MS

% У .v2 Ух

СЕ с <э -f-

7 8 9 X

4 5 6 —

1 2 3 +

± 0 1 =

Рисунок 1 — Калькулятор

Использованные источники:

1 Тюкачев, Н. А. C#. Основы программирования : учебное пособие / Н. А. Тюкачев, В. Г. Хлебостроев. — 3-е изд., стер. — Санкт-Петербург : Лань, 2018. — 272 с. — ISBN 978-5-8114-2567-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/104962 (дата обращения: 27.04.2020). — Режим доступа: для авториз. пользователей.

2 Тюкачев, Н. А. C#. Алгоритмы и структуры данных : учебное пособие / Н. А. Тюкачев, В. Г. Хлебостроев. — 3-е изд., стер. — Санкт-Петербург : Лань, 2018. — 232 с. — ISBN 978-5-8114-2566-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/104961 (дата обращения: 27.04.2020). — Режим доступа: для авториз. пользователей.

Как написать ТЗ на простую программу (калькулятор)

Уровень сложностиПростой

Время на прочтение11 мин

Количество просмотров14K

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

Возьмём калькулятор, который будет выполнять базовые арифметические операции (+, -, *, /).

Работу можно построить в 2 этапа:

  1. Поиск позитивных фактов о том, что именно мы хотим от калькулятора;

  2. Поиск негативных фактов, что может пойти не так (в широком смысле слова) при работе как с программой, так и с ТЗ — и формулирование требований, им препятствующим.

Используя наше понимание предметной области, можно сформулировать такие позитивные факты:

Калькулятор должен выполнять арифметические операции.

По большому счёту, позитивные факты на этом кончаются, так как дальше почти все относится к сфере «очевидно, что… — да? а мне не совсем очевидно».

Уровень сложности: I’m too young to die

Что может пойти не так:

Как насчёт тетрации?

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

Калькулятор должен выполнять 4 базовые арифметические операции: сложение, вычитание, умножение, деление.

(с точки зрения классики инженерии требований тут 4 требования в одном, но на данном этапе это не так важно)

Мы не указали интерфейс пользователя

Как мы понимаем сейчас, интерфейс вполне может быть как минимум голосовым, если не тактильным по Брайлю.

Поскольку мы пишем ТЗ на простую (и для разработки, и для пользователя) программу, то выберем именно графический интерфейс.

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

Сколько будет MCMXII + VII?

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

Калькулятор должен оперировать в пользовательском интерфейсе арабскими цифрами.

Направление чтения чисел

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

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

Польская нотация

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

Калькулятор должен позволять вводить и обрабатывать арифметические выражения в инфиксной записи.

So far, so good

Что у нас пока  получилось:

Калькулятор должен выполнять 4 базовые арифметические операции: сложение, вычитание, умножение, деление.

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

Калькулятор должен оперировать в графическом пользовательском интерфейсе арабскими числами.

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

Калькулятор должен позволять вводить и обрабатывать арифметические выражения в инфиксной записи.

Классифицируйте это немедленно

У любого хоть немного системного — … аналитика, … программиста или … администратора наверняка возникнет желание классифицировать этот перечень для удобства анализа и работы с ним. Как минимум мы чётко видим подмножество требований про пользовательский интерфейс:

Функциональные требования

Калькулятор должен выполнять 4 базовые арифметические операции: сложение, вычитание, умножение, деление.

Требования к интерфейсам

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

Калькулятор должен оперировать в пользовательском интерфейсе арабскими числами.

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

Калькулятор должен позволять вводить и обрабатывать арифметические выражения в инфиксной записи.

Хм, последнее требование содержит в себе и функции тоже, что вроде как делает его и функциональным требованием, так и требованием к интерфейсу. И это называется ТЗ на простую программу? Запутались в 3-х соснах, то бишь в 5 требованиях — захотели упростить себе дальнейшую жизнь классификацией, но стало только хуже — ну, типичное горе от ума! :)

Ладно, давайте вернёмся на классический вид структуры, который мы проскочили — иерархический, в духе функциональной декомпозиции. В нём можно под каждую функцию запихнуть как функциональное подтребование, так и любое другое. Любое другое можно для удобства и обобщения назвать «ограничение» (constraint), т.к. они только и делают, что ограничивают поведение функции и ничего более!

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

Калькулятор должен позволять вводить арифметические выражения.

> Калькулятор должен позволять вводить арифметические выражения в инфиксной записи.

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

> Калькулятор должен оперировать в пользовательском интерфейсе арабскими числами.

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

Калькулятор должен выполнять 4 базовые арифметические операции: сложение, вычитание, умножение, деление.

> Калькулятор должен выполнять арифметические выражения в инфиксной записи.

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

А вот это уже сценарий!

Поскольку у нас получился практически сценарий, а не просто иерархия, уже можно проверить его на замкнутость-полноту — позволит ли такой набор операций, выраженный функциями, получать нужный нам результат?

Как будто бы да, но человек со взглядом тестировщика легко подскажет, что позволять вводить, демонстрировать вводимое и вычислять результаты операций — это ещё не значит показывать результаты вычислений!

Поэтому давайте добавим последнюю явную функцию:

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

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

Фактически у нас получился типичный минимальный прото-юскейс из 4-х шагов:

  1. Программа предоставляет возможности ввода исходных данных и выдачи команды

  2. Пользователь вводит исходные данные и даёт команду

  3. Программа выполняет запрошенную команду над данными

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

А интерфейс ввода?

Так, кажется мы что-то забыли. Пользователький графический интерфейс показывает цифры и операции, это ок. Но ведь для ввода чисел и команд тоже нужен интерфейс. И тоже не голосовой, но есть как минимум 2 варианта:

  1. Клавиатурный ввод

  2. Ввод мышью….

Можно затребовать оба интерфейса сразу, по крайней мере такой вариант мы видим в типичном десктопном калькуляторе. Стоп, а почему мы решили, что у нас десктоп, а не мобилка? Неужели для простейшей программы надо учитывать контекст применения? Получается, да. Или нет?

Калькулятор должен позволять вводить арифметические выражения посредством графического интерфейса.

Можно ли 7 шапок?

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

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

Но стоп, постойте, на каких именно категориях устройств разработчик будет демонстрировать и сдавать программу? У Андроид-устройств, например, есть множество версий устройств, да ещё на разных поколениях ОС.

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

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

Учитывая, что у настольного компьютера практически всегда минимум 2 интерфейса ввода (клавиатура и мышь), а на смартфоне всё-таки доминирует тачскрин, решаем делать программу именно для смартфона.

Итого, можно взять самое популярное устройство по итогам продаж за последний год в нашем регионе, например, Redmi 9A (32 ГБ).

Как будет выглядеть требование-ограничение для этого случая:

Калькулятор должен работать на устройствах Redmi 9A (32 Гб).

Шеф, всё сломалось

Вещи ломаются, софт тоже может сломаться или не сработать. Ожидать 100%-ной надёжности не приходится, важно выбрать какой-то разумный компромисс. В общем случае полезно делать надёжность, соответствующей ожиданиям пользователей. В случае сложной и дорогой программы стоит изучить показатели конкурентов и сделать расчёты стоимости отказа для пользователей и бизнеса.

В нашем же случае хватит простой прикидки — в скольки случаев из 100 программа может позволить себе сбой? У нас нет никакой дополнительной информации о контексте использования, поэтому можно заложить 1-2 сбоя на 100 команд.

Калькулятор должен выполнять вычисления над выражениями с надёжностью не меньше, чем 98%.

Поговорим о габаритах…

В физическом мире габариты и форм-фактор продукта, устройства сильно влияют на его потребительские качества.

В цифровом мире аналогом габаритов можно с некоторой натяжкой считать размер программы в памяти и на диске.

Представьте себе, что наша программа при скачивании весит 1 Гб. Допустимо ли такое? Вряд ли.

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

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

Калькулятор должен поставляться в виде дистрибутива размером не более 200 Мб.

… и эффективности

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

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

Калькулятор должен использовать не более 50 Мб оперативной памяти телефона.

Не тормози!

Рассмотрим ещё один не совсем очевидный, но вполне возможный случай негативного события — представим, что вводим в калькулятор 2 + 2 и калькулятор думает 14 часов. Ну или хотя бы 7 минут. Ладно, пусть будет 15 секунд. Что вы скажете о таком калькуляторе? Нужно ограничить это безумие!

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

Калькулятор должен проводить вычисление арифметического выражения не более чем за 0,1 секунду.

Сколько вешать в граммах?

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

Опять-таки ищем лучшие практики для бытовых калькуляторов и выходим на уровень:

Калькулятор должен производить вычисления с точностью не хуже 8 знаков после запятой.

Знак бесконечности

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

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

Кроме того, тут мы возвращаемся к вопросу про интерфейс — а сколько цифр мы хотим одновременно видеть на экране? У обычного карманного калькулятора 8-10 цифр на экране. Тогда можно ограничиться диапазоном в 10 цифр — т.е. 10 млрд как максимальное число. Но этого не хватит даже, чтобы показать годовой бюджет России (18 трлн в 2024-м году).

Однако программный калькулятор отличается от физического тем, что он может управлять размером отображаемых чисел и вообще делать перенос строк. После некоторых экспериментов можно установить, что достаточно читаемыми могут быть числа, представленные в виде 5 строк по x 3 разряда  x 7 троек нулей, те ~= 100 разрядов.

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

Калькулятор должен производить вычисления с числами от 10^-99 до 10^99.

Наши пальчики устали

Так, что у нас ещё осталось, какие риски, что может пойти не так?

Представим, что мы вводим выражение в виде длинной цепочки с большим количеством различных операций. Какое количество операций имеет смысл поддерживать?

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

Ой, кстати, а что насчёт ошибок, которые не являются сбоем? Например, деление на 0? Надо же как-то реагировать на это:

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

Вот так добавление одной только операции «разделить» нам усложняет поведение программы.

Ну и заодно давайте опишем, что же делать со сбоями:

Калькулятор должен сообщать о сбое в ходе выполнения операции.

И так до самого конца сплошные черепахи

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

— графического дизайна,

— какие кнопки будут у калькулятора, кроме цифровых и операций,

— скорости реакции калькулятора на нажатие кнопок :)

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

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

Смотрим итоговую сборку требований

Давайте соберём и посмотрим, что же у нас в итоге получилось:

Функции и их микро-ограничения

Калькулятор должен позволять вводить арифметические выражения.

Калькулятор должен позволять вводить арифметические выражения посредством графического интерфейса.

Калькулятор должен позволять вводить арифметические выражения в инфиксной записи.

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

Калькулятор должен оперировать в пользовательском интерфейсе арабскими числами.

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

Калькулятор должен выполнять 4 базовые арифметические операции: сложение, вычитание, умножение, деление.

Калькулятор должен выполнять арифметические выражения в инфиксной записи.

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

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

Калькулятор должен сообщать о сбое в ходе выполнения операции.

Макро-ограничения

Совместимость

Калькулятор должен работать на устройствах Redmi 9A (32 Гб).

Надёжность

Калькулятор должен выполнять вычисления над выражениями с надёжностью не меньше, чем 98%.

Эффективность

Калькулятор должен поставляться в виде дистрибутива размером не более 200 Мб.

Калькулятор должен использовать не более 50 Мб оперативной памяти телефона.

Производительность

Калькулятор должен проводить вычисление выражения не более чем за 0,1 секунду.

Точность

Калькулятор должен производить вычисления с точностью не хуже 8 знаков после запятой.

Границы вычислений

Калькулятор должен производить вычисления с числами от 10^-99 до 10^99.


Какие ещё дыры вы видите в такой спецификации требований? :)

За картинки спасибо нейрохудожнику Алине Богачёвой.

Разработка программы ‘Калькулятор’

Содержание

Введение

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

1. Аналитический раздел

1.1 Обзор и анализ существующих программных решений

1.2 Определение функциональных требований к разрабатываемой
программной системе

2. Конструкторский раздел

2.1 Выбор языка и среды программирования

2.2 Функциональная схема работы программы

2.3 Организация данных и проектирование интерфейсов обмена данными
в программной системе

3. Технологический раздел

3.1 Определение структуры и состава программной системы

3.2 Описание разработанных алгоритмов программы

3.3 Руководство пользователя

4. Экспериментальный раздел

4.1 Виды контроля качества разрабатываемого ПО

4.2 Методика проведения и результаты тестирования

4.3 Методы и способы устранения ошибок

4.4 Отладка выявленных ошибок, обнаруженных при тестировании

Заключение

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

Приложения


Введение

Целью данного курсового проекта является создание программы
«Калькулятор», которая и будет являться объектом исследования.

Калькулятор — устройство для арифметических вычислений. Мы
пользуемся простыми калькуляторами для математических вычислений в школе и для
подсчета денег в магазине. Ученые, инженеры и статистики пользуются другими
калькуляторами, способными выполнять сложные операции. Современные калькуляторы
— это электронные приборы с маленькими силиконовыми микросхемами, производящими
любые вычисления. Разновидность калькулятора — кассовый аппарат. Он суммирует
цены и делает распечатку чека. Большинство кассовых аппаратов автоматически
считывают цены по бар коду, указанному на каждом товаре. «Мозг»
калькулятора может только складывать и вычитать. Умножение и деление он
выполняет путем многократного сложения или вычитания.

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

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

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

программа алгоритм калькулятор ошибка


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

на курсовой проект по дисциплине «Языки программирования»

Студент Носенков А.В. Группа 11-БАС-2

Тема Разработка программы «Калькулятор»

Общая формулировка задания

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

Требования к графическому и пользовательскому
интерфейсам:

·        программа должна работать в графическом
режиме;

·        в программе должны использоваться кнопки
для ввода данных (операций) и графическое меню;

·        программа должна содержать поле для ввода
данных и вывода результата.

Требования к функциональным возможностям:

·        реализовать возможность вывода на экран
последнего операнда;

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

·        реализовать
возможность сброса результата.

Руководитель Леонов Ю.А.


1.
Аналитический раздел

1.1 Обзор и
анализ существующих программных решений

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

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

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

За рубежом развитие счетных машин происходит не менее
интенсивно. Первый калькулятор массового выпуска — ANITA MK VIII — выпускается в Англии в
1961-ом году и представляет собой устройство, работающее на газоразрядных
лампах. Это устройство было достаточно громоздким по современным меркам, оно
оснащалось клавиатурой для ввода числа, а также дополнительной 10-ти клавишной
консолью для задания множителя. В 1965-ом году калькуляторы Wang впервые научились
считать логарифмы, а уже через четыре года в США появился и первый настольный
программируемый калькулятор. А в 1970-ые годы мир калькуляторов становится
более совершенным и разнообразным — появляются новые настольные и карманные
машины, а также профессиональные инженерные калькуляторы, позволяющие
производить сложнейшие расчеты.

Сегодня усовершенствованные модели калькуляторов представляют
собою высокотехнологичные разработки, при создании которых был использован
колоссальный опыт инженерных предприятий во всем мире. И, несмотря на
абсолютный приоритет ЭВМ, калькуляторы и прочие счетные устройства по-прежнему
сопровождают человека в различных отраслях деятельности!

Из доступных программ-калькуляторов можно назвать
«Калькулятор Windows» и «NumLock Calculator«.

. NumLock Calculator — очень удобный
калькулятор, который выскакивает при нажатии NumLock (или ScrollLock), а при повторном
нажатии прячется обратно в системную панель. Результат вычислений может
автоматически вставляться в активное окно. Поддерживает разные форматы
(десятичный, шестнадцатиричный, с фиксированной точкой, научный), разные виды
(простой, инженерный, программерский и т.п.).

Основные функции NumLock Calculator:

·        быстрый вызов по «горячим
клавишам», определяемым пользователем;

·        автоматическая вставка результата в
документы и буфер обмена;

·        более 100 функций, 7 форматов чисел и
выражений;

·        история вычислений, 10 ячеек памяти,
доступ к 100 переменным;

Пример работы данной программы (рис.1.1).

Рис.1.1 Пользовательский интерфейс программы » NumLock Calculator«.

. «Калькулятор Windows» —
компонент Microsoft
Windows, имитирующий работу
обычного карманного калькулятора. Его «кнопки» можно нажимать мышкой.
Возможен ввод с дополнительной цифровой клавиатуры. Также можно вставлять
математические выражения из буфера обмена и получать результат (например,
набрать в Блокноте «2*2=», скопировать и вставить
в Калькулятор, на «экране» которого появится ответ «4»). Пример работы данной программы
(рис.1.2.).

Рис.1.2 Интерфейс программы «Калькулятор Windows».


1.2
Определение функциональных требований к разрабатываемой программной системе

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

1)      соблюдение правильности вычислений;

2)      программа должна иметь простой, но в то же время
понятный и наглядный интерфейс, который не должен перегружать ресурсы
компьютера;

)        программа должна иметь возможность сброса
полученного результата;

)        пользователь должен иметь возможность видеть
выполняемые им действия и полученный результат;

)        программа не должна занимать большой объем памяти и
не должна требовать установки на жесткий диск компьютера;

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

)        работоспособность приложения в среде Windows.

2.
Конструкторский раздел

2.1 Выбор
языка и среды программирования

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

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

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

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


2.2
Функциональная схема работы программы

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

Рис.2.1 Функциональная схема программы
«Калькулятор»

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

Далее пользователю предоставляется продолжить работу с
результатом («Работа с результатом«). В следствие работы с ним
пользователь может выйти из программы или сбросить результат и продолжить
вычисления.


2.3
Организация данных и проектирование интерфейсов обмена данными в программной
системе

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

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

Выводимые данные в программе представлены в виде графического
отображения окна программы (рис.2.2):

Рис.2.2 Окно программы

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

·        нажатие клавиш
клавиатуры;

·        работа пользователя с кнопками в
интерфейсе.


3.
Технологический раздел

3.1
Определение структуры и состава программной системы

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

Модуль GrMouse обрабатывает прерывание Dos $33 — это события от
мыши и определяет координаты курсора и состояние кнопок мыши.

Модуль GrButton содержит описание процедур, связанных с
событиями мыши.

Модуль Functions содержит набор подпрограмм для работы с числами.

Модуль GrOutPut содержит набор подпрограмм для собственно
отрисовки результатов в графическом режиме, вывод результата в нужном виде в
нужное место. Список стандартных модулей представляют Graph, crt, dos

В модуле Graph (GRAPH. TPU) находится библиотека, состоящая из более чем 50
графических подпрограмм от побитовых до подпрограмм высокого уровня.

Модуль Crt позволяет выводить цветные символы на цветном
экране. Хотя по-прежнему отображение будет происходить в текстовом режиме.
Текстовый режим означает, что на экране могут выводиться только определенные
символы в определенных местах (знакоместах). Можно представить экран,
разделенным вертикальными и горизонтальными линиями на ячейки. В эти ячейки
можно «вписывать» различные символы. У каждой ячейки есть адрес.

Модуль Dos позволяет использовать возможности операционной
системы MS DOS, не предусмотренные в стандарте языка Паскаль, и содержит типы,
константы, переменные и подпрограммы для реализации этих дополнительных
возможностей.

В программе использованы локальные переменные и константа,
стандартные и пользовательские процедуры и функции.

Константа называется Captions и имеет тип данных
строковый. Она нужна для нанесения надписей на кнопки, используемые в
интерфейсе программы.

Локальные переменные:

§  Buttons-массив от 1 до 35 для
индексов кнопок;

§  CEbutton, QuitButton, FirstEdit, SecondEdit — переменные для кнопок
сброса, выхода из программы, первого числа и второго числа соответственно;

§  Quit-переменная с типом
данных «булевский», при значении true происходит выход из
программы.

Процедуры и функции пользователя:

·        «function
GetCaption (i: byte): string; » — нанесение надписей на кнопки;

·        «procedure
ChangeSysOfCount (SysOfCount: TSysCountStr); » — выбор десятичной системы
счисления;

·        «procedure
SetGroupEnabled (SysOfCount: TSysCountStr); » — подключение кнопок
клавиатуры;

·        «procedure
Drawing SquareOfButt (MaxTopInc, LeftOffs, TopOffs, BStartInd, BCount: word);
» — отрисовка кнопок;

·        «procedure FstAction; » — работа с
первым операндом;

·        «procedure SndAction; » — работа со
вторым операндом.


3.2 Описание
разработанных алгоритмов программы

Рис.3.1 Алгоритм программы «Калькулятор».

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

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


3.3
Руководство пользователя

Требования к аппаратуре и программному
обеспечению

Так как программа выполнена в среде программирования Turbo Pascal, то требования к
аппаратному и программному обеспечению минимальны.

ПК с процессором, совместимым с Intel Pentium или AMD, монитором и
клавиатурой. Операционная система MS-DOS или MS Windows (кроме Windows 7, так как на данной
операционной системе приложение не может работать в полноэкранном режиме).

Установка программы

Установка программы на компьютер пользователя заключается в
копировании папки программы и установки ярлыка на Рабочий стол. Создайте в
любом разделе жесткого диска новую папку и скопируйте в нее все файлы папки
«Курсовой проект».

Запускать следует файл GRCALC. EXE непосредственно из папки
или при помощи ярлыка кнопкой Enter или двойным щелчком мыши.

Если требуется доработка программы, то необходимо иметь
исходный файл GRCALC. PAS, который открывается в среде программирования TURBO PASCAL версии 7 или совместимой
с ней. Порядок работы с программой опишем в руководстве пользователя. Здесь
приводится описание приемов управления программой.

Порядок работы

Запуск программы производится двойным щелчком мыши на файле GRCALC. EXE или на его ярлыке.

После запуска открывается окно программы. Далее в поле данных
мы должны ввести первое число, затем операцию, которую мы хотим выполнить, а
затем второе число. Нажимаем кнопку «=». Далее получаем результат
выполнения действия. Можно сбросить результат (нажать «CE») или продолжить
работу с ним.


4.
Экспериментальный раздел

4.1 Виды
контроля качества разрабатываемого ПО

Тестирование программы — это этап, на котором проверяется,
как ведет себя программа на как можно большем количестве входных наборов
данных, в том числе и на заведомо неверных.

Основные принципы организации тестирования:

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

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

·        по тем же соображениям организация —
разработчик программного обеспечения не должна «единолично ” его
тестировать (должны существовать организации, специализирующиеся на
тестировании программных средств);

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

·        необходимо тщательно подбирать тест не
только для правильных (предусмотренных) входных данных, но и для неправильных
(непредусмотренных);

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

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

·        следует учитывать так называемый «принцип
скопления ошибок”: вероятность наличия не обнаруженных ошибок в некоторой части
программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

4.2 Методика
проведения и результаты тестирования

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

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

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

·        следует всегда помнить, что тестирование —
творческий процесс, а не относиться к нему как к рутинному занятию;

·        следует по возможности избегать
тестирования программы ее автором.

Тестирование выявило ряд ошибок в алгоритме, синтаксисе кода
программы и ее интерфейсе.

4.3 Методы и
способы устранения ошибок

Отладка — это комплексный процесс по выявлению и исправлению
дефектов в программном обеспечении. Сами же дефекты, обычно, обнаруживается в
процессе тестирования ПО.

Отладка состоит из следующих этапов:

·        воспроизведение дефекта (любым из
доступных способов);

·        дизайн
исправления дефекта;

·        кодирование
исправления дефекта;

·        валидация
исправления;

·        интеграция исправления в кодовую базу или
целевую систему;

·        дополнительные
валидации после интеграции.

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

Этап отладки можно считать законченным, если программа
правильно работает на двух-трех наборах входных данных.

Некоторые методы отладки ПО используемые на данный момент в
индустрии:

·        запуск программы из под отладчика;

·        анализ
поведения системы;

·        unit
тестирование;

·        анализ кода без исполнения программы;

·        выполнения программы (или её части) в
другой среде;

·        отладка
трансляцией кода.

4.4 Отладка
выявленных ошибок, обнаруженных при тестировании

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

·        unit
тестирование;

·        анализ кода без исполнения программы;

·        запуск программы из под отладчика.

Отладка ряда ошибок прошла успешно, были внесены изменения в
интерфейс программы.

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

case CurrentFunc of

‘/’: begin if stemp=0 then begin res: =0;
outtextxy (450,65,’false’); end else if SParam<>’0’then begin Res:
=FTemp/STemp;; end;

‘√’: begin if ftemp <0 then begin res:
=0; outtextxy (450,65,’false’); end else Res: =sqrt (Ftemp); end;


Заключение

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

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

Достоинства:

·        Существует
возможность сбрасывать результат;

·        Программный продукт малотребователен к
системным ресурсам компьютера.

Недостатки:

·        Невозможность выполнения некоторых других
математических операций;

·        Невозможность сохранения операндов или результатов
в памяти программы;

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


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

1.
Фаронов, В.В. Программирование в Delphi 7: учеб. пособие / В.В. Фаронов. — 7-е изд.,
перераб. — М.: Нолидж, 2006. — 412с.

.
Ставровский, А.Б. Delphi в задачах и примерах: учеб. для вузов / А.Б. Ставровский. — Киев:
BНV, 2004. — 399с.

.
Кнут, Д.Э. Искусство программирования: учеб. пособие: в 3 т.: пер. с англ. Т.1:
Основные алгоритмы. — 3-е изд. — М. и др.: Вильямс, 2000. — 720 с.

.
Гловацкая, А.П. Методы и алгоритмы вычислительной математики: учеб. пособие для
вузов / А.П. Головыцкая. — М.: Радио и связь, 1999. — 408с.

.
Бежанова, М.М. Практическое программирование: структуры данных и алгоритмы:
учеб. для вузов / М.М. Бежанова, Л.А. Москвина, И.В. Поттосин. — М.: Логос,
2001. — 223с.


Приложения

Приложение 1

Листинг программы

program Calculator;

uses
Functions,GrMouse,GrButton,Graph,GrOutPut,dos,crt;: string=’ 7 8 9/< — x^y’+

‘ 4 5 6 * sin cos’+

‘ 1 2 3 — tg ktg’+

‘ 0 с. + = ы’+

‘ P R O E K T’;

{$F+}: array [1.35] of TGrButton;,QuitButton:
TGrButton;,SecondEdit: TGrButton;: TMouseStatus;: boolean;GetCaption (i: byte):
string;,TempPos,Count: byte;: =0;: =0;x: =1 to Length (Captions) doCaptions [x]
=’ ‘ then inc (count);Count=i-2 then TempPos: =x;Count=i-1 then GetCaption:
=copy (Captions,TempPos+2,x-TempPos-1);;;ChangeSysOfCount (SysOfCount:
TSysCountStr);: string;SysOfCount [1] of

‘D’: begin;;SysOfCount [1] of

‘D’: begin SysCount: =DEC; DisButtons:
=DECindexes;
end;;(FParam);(SParam);(false);(SParam);(true);(FParam);;SetGroupEnabled
(SysOfCount: TSysCountStr);: =ALLnumbers;i: =2 to 35 doi in DisButtons
thenButtons [i] donot Enabled then(true);(SysOFCount);i: =2 to 35 doi in
DisButtons then[i]. SetEnabled (False);: =»;;DrawingSquareOfButt
(MaxTopInc,LeftOffs,TopOffs,BStartInd,BCount: word);: =0;j<=MaxTopInc doi:
=BStartInd-1 to BStartInd+BCount-2 do[j+i+1]. Left: =i*50+LeftOffs;[j+i+1].
Top: =j*7+TopOffs;[j+i+1]. Draw;;(j,7);;;Action;: =true;;SetRadioClick (var
ActButt,DisAct1,DisAct2: TGrButton);ActButt. FillColor=ActButt. FillColor then.
FillColor: =ActButt. PressedColor;. FillColor: =1;. FillColor: =1;. Fill
(ActButt. PressedColor);. Fill (DisAct1. FillColor);. FIll (DisAct2.
FillColor);;;SetDECsys;(Buttons [8],Buttons [1],Buttons
[15]);(‘DEC’);;FstAction;(FirstEdit. FillColor=1) then. FillColor: =4;.
FillColor: =1;. Draw;. Draw;(true);: =false;;;SndAction;(SecondEdit.
FillColor=1) then. FillColor: =1;. FillColor: =4;. Draw;. Draw;(false);;;;;.
Init;. Init;. Init;. Init;i: =1 to 35 doButtons [i] do;: =GetCaption
(i+1);;QuitButton do: =140;: =GetMaxY-50;: =20;: =370;: =’Quit’;;;CEButton do:
=GetMaxX-220;: =80;: =30;: =85;: =’CE’;;;FirstEdit do: =GetMaxX-55;: =120;:
=’Fst’;: =4;;;SecondEdit do: =GetMaxX-55;: =170;:
=’Snd’;;;(30,140,1200,1,1);(30,170,120,2,6);(5,5,GetMaxX-5,GetMaxY-5);(OutXs,OutYs,OutXf,OutYf);

{/*End of drawing*/};;;[1]. PressedColor: =8;[8].
PressedColor: =8;[15]. PressedColor: =8;(‘DEC’);(Buttons [8],Buttons [1],Buttons
[15]);[8]. Action: =SetDECsys;[6]. Action: =BackSpaceSymbol;[24]. Action:
=SetPlusMines;[27]. Action: =GetResult;

{*************************}not Quit doi: =1 to 35
doButtons [i] doonClick (Action,MouseStatus) then(Length (Caption) =1)
then(Caption [1] in SysCount) then(Caption);: =false;;(Caption [1]);Caption [1]
=’с’ then Calculated: =false;;: =0;KeyPressed then: =Ord (readkey);Key of

.57,46,97.103:UpCase (Char (Key)) in SysCount
then(UpCase (Char (Key)));: =false;;

: begin;: =false;;

: SetEnterMode (‘*’); {*}

: SetEnterMode (‘+’); {+}

: SetEnterMode (‘-‘); {-}

: SetEnterMode (‘/’); {/}

: exit;;;;. onClick (Action,MouseStatus);.
OnClick (CEClick,MouseStatus);FirstEdit. OnClick (FstAction,MouseStatus) or
(FActive) then FstAction;SecondEdit. OnClick (SndAction,MouseStatus) or
(SActive) then SndAction;;;.

Модуль Function

unit Functions;

{$F+} {$N+}Graph,GrOutPut;SetEnterMode (Func:
char);GetResult;FilterExpValue (var Par: StrParam);IntToStr (Param: word):
String;: string;: word;(Param,Temp);: =Temp;;FilterExpValue (var Par:
StrParam);degree,mant,NullStr: string;,e,DotPos,ExpPos: integer;,minus:
boolean;: integer;Par [1] =’-‘ then minus: =trueminus: =false;: =Pos (‘.
‘,Par);: =Pos (‘E’,Par);: =»;: =»;: =false;

{**************}ExpPos=0 then exit;: =Copy
(Par,ExpPos+1,Length (Par) — ExpPos);: =Copy
(Par,DotPos-1,ExpPos-DotPos+1);(Degree, IntDegree,e);(IntDegree>0)begini: =1
to IntDegreebegin: =Pos (‘. ‘,mant);(mant,DotPos,1);(‘.
‘,mant,DotPos+1);;;(IntDegree<0)begini: =1 to — IntDegreebegin(‘0’,mant,1);:
=Pos (‘. ‘,mant);(mant,DotPos,1);(‘. ‘,mant,2);;;: =Length (mant);(mant [i]
=’0′)begin(mant, i,1);: =i-1;;mant [Length (mant)] =’. ‘Delete (mant,Length
(mant),1);minus then insert (‘-‘,mant,1);: =mant;;ExcludeMines (Par:
boolean);Par thenPos (‘-‘,FParam) <>0 then(FParam,1,1);Pos (‘-‘,SParam)
<>0 then(SParam,1,1);elsePos (‘-‘,FParam) =0 then: =’-‘+FParam;Pos
(‘-‘,SParam) =0 then: =’-‘+SParam;;;Value (FPar,SPar: StrParam; var
FTemp,STemp);: word;(FPar,Extended (FTemp),e);(SPar,Extended (STemp),e);;Operation:
string;,STemp,Res: extended;,Answer: StrParam;,RetBin,Ex: boolean;: word;

{******************}

{******************}: =false;:
=false;(FParam,SParam,FTemp,STemp);: =false; {*used for exit after odnomest
function*}CurrentFunc of

‘+’: Res: =FTemp+STemp;

‘-‘: Res: =FTemp-STemp;

‘*’: Res: =FTemp*STemp;

‘/’: if SParam<>’0’then Res: =FTemp/STemp;

‘c’: Res: =cos (ftemp);

‘t’: Res: = (sin (ftemp) /cos (ftemp));

‘k’: Res: = (cos (ftemp) /sin (ftemp));

‘√’: Res: =sqrt (Ftemp);

‘x’: Res: =exp (ln (Ftemp) *stemp);;(Res,St);Ex
then exit;(st);(SParam);(FParam);: =St;: =st;: =#0;(Result);;;SetEnterMode
(Func: char);(Func in AllOper) then(Length (FParam) =0) or (FParam=’0′)
then(true);elseFunc in [‘n’,’p’] then: =Func;;;;(False);CurrentFunc=#0 then:
=Func;;Calculated then: =Operation;;Calculated then:
=Result;;(true);(FParam);(false);: =false;: =»;: =»;else(Length (SParam)
>0) and (SParam<>’0′) then(FParam);(SParam);:
=Operation;;;;;GetResult;not Calculated thenCurrentFunc<>#0 then: =Operation;;.

Модуль Groutput

unit GrOutPut;

{$N+}Graph;=string [64];=Procedure;=record:
char;: StrParam;;=record,y1,x2,y2: word;;

{Output controls}=30;=20;=600;=60;

{***************}

{All ordinal operations}=
[‘+’,’-‘,’*’,’/’,’c’,’s’,’t’,’k’,’√’,’x’];

{**********************}= [‘0’. ‘9’,’. ‘];

{*****************************************}=
[2,3,4,9,10,11,16,17,18,23,30.35];= [30.35];

{***********************************}=13;=36;CheckOutPut
(var Out: StrParam);ClearOutPut;ClrResOut;SetFActive (param: boolean);TextToOut
(Out: StrParam);AddToOutPut (Param:
string);SetPlusMines;ResultToScreen;BackSpaceSymbol;CEClick;CurrentFuncToScr;ClearCurrentFunc;,FParam,SParam:
StrParam;: TMem;: set of char;: set of byte;: char;,Operation, i,j,Middle,Key:
word;,SActive,Calculated: boolean;CheckOutPut (var Out: StrParam);: boolean;:
=1;: =false;Pos (‘-‘,Out) <>0 then(Out,1,1);: =true;;Pos (‘ ‘,Out)
<>0 do delete (Out,Pos (‘ ‘,Out),1);i<=Length (Out) doOut [i] =’. ‘
theni<>Pos (‘. ‘,Out) then(Out, i,1);: =i-1;;(i);;Out [2] <>’. ‘
then(Out [1] =’0′) or (Out [1] =’. ‘) doLength (Out) >1 then Delete
(Out,1,1) else;Out [1] =’. ‘ then Out: =’0’+Out;Out [Length (Out)] =’. ‘ then
Out: =Out+’0′;Length (Out) =0 then Out: =’0’;MinesState thenPos (‘-‘,Out) =0
then: =’-‘+Out;;SetFActive (param: boolean);: =Param;: =not
Param;;BackSpaceSymbol;: =false;FActive of:FParam<>’0′ then(FParam,Length
(FParam),1);(FParam);;:SParam<>’0′ then(SParam,Length
(SParam),1);(SParam);;;;ClrResOut;(OutXs+1,OutYs+FParamOfs+8,OutXf-1,OutYf-3,true);;(0,0,GetMaxX,GetMaxY,true);;TextToOut
(Out: StrParam);FActive of: SetViewPort
(OutXs+1,OutYs+3,OutXf-1,OutYs+FParamOfs-1,true);: SetViewPort
(OutXs+1,OutYs+FParamOfs,OutXf-1,OutYf-3,true);;;(Out);;FActive of: begin
OutTextXY (OutXf-40-TextWidth (Out) div 2,4,Out); ClrResOut; end;: OutTextXY
(OutXf-40-TextWidth (Out) div
2,4,Out);;(0,0,GetMaxX,GetMaxY,true);;ResultToScreen;(OutXs+1,OutYs+23,OutXf-1,OutYf-1,true);;(OutXf-40-TextWidth
(Result),2,OutXf-40,2);(OutXf-40-TextWidth (Result) div 2,9,Result);:
=true;(0,0,GetMaxX,GetMaxY,true);;CEClick;: =0;;: =false;FActive of: begin
FParam: =’0’; TextToOut (‘0′);(false); TextToOut (SParam);(true); end;: begin
SParam: =’0’; TextToOut (‘0’);(true); TextToOut (FParam);(false);
end;;(‘0’);(true);;AddToOutPut (Param: string);: string;;FActive of:
beginSysCount=Dec thenPos (‘E’,FParam) <>0 then FParam: =’0′;:
=FParam+Param;(FParam);;: beginSysCount=Dec thenPos (‘E’,SParam) <>0 then
SParam: =’0′;: =SParam+Param;(SParam);;;;;AddDelMines (var Param:
StrParam);(Length (Param) >=1) and

(Param<>’0′) and (Param<>’0.0′)
thenPos (‘-‘,Param) =0 then:
=’-‘+Param;(Param);(Param);else(Param,1,1);(Param);(Param);;;SetPlusMines;FActive
of: AddDelMines (FParam);: AddDelMines (SParam);;;ClearCurrentFunc;:
ViewPortType;(ViewPort);(OutXs+1,OutYs+6,OutXf-20-Middle,OutYs+14,true);;ViewPort
do(x1,y1,x2,y2,Clip);;CurrentFuncToScr;: ViewPortType;

{if CurrentFunc=#0 then exit; }(ViewPort);

{**************}TextWidth (FParam) >TextWidth
(SParam) then: =TextWidth (FParam)Middle: =TextWidth (SParam);

{**************}(OutXs+1,OutYs+6,OutXf-30-Middle,OutYs+14,true);;

{**************}(OutXf-OutXs-40-Middle,5,CurrentFunc);

{**************}ViewPort
do(x1,y1,x2,y2,Clip);;ClearOutPut;(OutXs+1,OutYs+1,OutXf-1,OutYf-1,true);;(0,0,GetMaxX,GetMaxY,true);;:
=true;: =false;: =#0;: =DEC;: =false;: =’0′;: =’0′;: =»;

en
Приложение 2

Графический интерфейс программы

Рис.1. Графический интерфейс программы

Рис.2. Программа во время работы

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Содержание

  1. Проект «Экранный калькулятор выражений» Техническое задание
  2. 1 ВВЕДЕНИЕ
  3. 1.1 Наименование программы
  4. 1.2 Область применения
  5. 2 ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ
  6. Основанием для разработки является учебный план кафедры компьютерных систем в управлении и проектировании (КСУП), на 7-й семестр по предмету «Лингвистическое и программное обеспечение систем автоматизированного проектирования».
  7. 2.1 Заказчик
  8. 2.2 Разработчик
  9. 2.3 Документы, на основании которых ведется разработка
  10. 3 ТРЕБОВАНИЯ К ПРОГРАММЕ
  11. 3.1 Требования к составу выполняемых функций
  12. 3.1.1 Ввод исходных данных
  13. 3.1.2 Анализ исходного выражения
  14. 3.1.3 Решение исходного выражения
  15. 3.1.4 Вывод результата решения выражения
  16. 3.2 Требования к надежности
  17. 3.3 Требования к численности и квалификации персонала
  18. 3.4 Требования к составу и параметрам технических средств
  19. 3.5 Лингвистическое обеспечение
  20. 3.6 Программное обеспечение
  21. 3.7 Требования к маркировке и упаковке
  22. 4 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ
  23. Разработка программы «Простой калькулятор»
  24. Разработка приложения для Windows, реализующая простой калькулятор. Назначение и область применения программы. Организация входных и выходных данных. Выбор состава технических и программных средств. Спецификация программы, ее тестирование и отладка.
  25. Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
  26. Введение
  27. программа калькулятор приложение
  28. Для написания курсовой была выбрана тема Разработка программы «Простой калькулятор», выбор обусловлен возможностью реализовать программу различными способами, используя язык программирования Delphi. В данной работе будет описан один из способов создания калькулятора с функциями сложения, вычитания, умножения и деления
  29. Актуальность данной темы обусловлена популярностью простейших математических расчетов в повседневной работе, а т.к. в большинстве случаев работать происходит за компьютером, то, следовательно калькулятор должен быть виртуальным.
  30. Целью данного курсового проекта является создание программы «Калькулятор», которая и будет являться объектом исследования.
  31. Обычный калькулятор выполняет сложение и вычитание, умножение и деление. Любое число, которое вы вводите в калькулятор, преобразуется в бинарный код, а результаты в бинарном коде переводятся обратно в десятичную систему и отображаются на дисплее.
  32. Когда вы набираете числа на клавиатуре, в регистры памяти калькулятора вводятся бинарные коды для операндов и арифметических действий (сложения, вычитания, умножения и деления). Арифметический блок выполняет действие и сохраняет результат в одном из регистров. Затем результат пересылается в память дисплея и отображается в десятичной форме на дисплее.
  33. Для написания программы использовалось программное средство Delphi 7, так как обладает дружелюбным интерфейсом и возможностью расположить окна и меню в удобном для пользователя порядке, а так же обладает достаточным количеством функций требуемых для решения поставленной задачи.
  34. 1. Разработка эскизного и технического проектов программы Назначение и область применения Программа Калькулятор предназначена для выполнения простых математических вычислений с данными, вводимыми с клавиатуры. Программа полностью выполняет функции простого микрокалькулятора. Постановка задачи Задача курсовой работы состоит в создании программы калькулятор в интегрированной среде Delphi. Программа должна выдавать ответ при задании стандартных арифметических операций (сложение, вычитание, умножение, деление). Необходимо создать удобный пользовательский интерфейс для работы с программой : ?программа должна работать в графическом режиме; ?в программе должны использоваться кнопки для математических операций, кнопки для ввода данных и графическое меню; ?программа должна содержать поле для ввода данных и вывода результата операции. Программа представляет собой окно (рисунок 1) с расположенными на нем кнопками для ввода данных (цифры), кнопки с арифметическими операциями (сложение, вычитание, умножение, деление), а так же кнопку сброса и поле для отображения результатов операции. Рисунок 1-рабочее окно программы «простой калькулятор» При нажатии на кнопку с цифрой программа выполняет определённое действие и на экране отображаются последовательность всех ваших операций. У программы «калькулятор» имеются меню с пунктами: «Файл» и «Справка» это это можно увидеть на рисунке 1. В меню «файл» находится закладка для выхода из программы, вкладка «закрыть», а в «справке» находятся краткие сведения о программе и разработчике. Список использованных переменных В программе «Простой калькулятор» были использованы стандартные элементы Delphi 7. В главной форме-Form1, которая является самим калькулятором (рисунок 2) и в меню «о программе»-Form2 (рисунок 3). В программе использованы элементы закладок Standard (TButton, TEdit, TMainMenu, TLabel) Рисунок 2-3:форма Form1;форма Form2 Первые 11 элементов TButton (названия от _0 до _9) имеется операция ввода чисел. 12й элемент с именем `Dot’играет роль отделения дробной части от целой. При нажатии на одну из этих кнопок число появляется на дисплее и переносятся в переменную `back’ с типом string которая сохраняет в себе данные всех введённых чисел. Другие элементы TButton являются функциональными клавишами, 1 кнопка вывода результата (`=’). При срабатывании функциональной клавиши, арифметический знак так же выводится на дисплей и заносится в переменную `s’ типа string. После этих действий у нас есть все необходимые данные для определения результата операции (события OnClick для кнопки со значением “=”). Результат вычисления заносится в переменную rez типа real и отображается на дисплее. Элемент TMainmenu используются для реализации меню программы с пунктами: Файл,Справка(на Form1),Закрыть(на Form2) Элемент TLabel применен для вывода текста информации о программе в меню. 1.2 Описание алгоритма 2. Определение введённого символа 3. Выполнение соответствующих операций 4. Вывод результата на дисплей Обобщенная схема алгоритма приведена в ПРИЛОЖЕНИИ 1 1.3 Организация входных и выходных данных Выходные данные. Числа вещественного типа данных. 1.4 Выбор состава технических и программных средств Среда Delphi позволяет достаточно быстро и легко разрабатывать приложения для Windows. Технические характеристики компьютера: Объем оперативной памяти не менее 60 Мб; Необходимое пространство на жестком диске 150 Мб. Дополнительных средств (принтер, сканер, дополнительные дисководы и т.д.) не требуется. Разработка рабочего проекта 1.5 Разработка программы Для создания приложения программы “Калькулятор” используется среда визуального программирования Delphi. Проект программы содержит два окна: Источник Разработка программы «Калькулятор» <***********************************>=13;=36;CheckOutPut (var Out: StrParam);ClearOutPut;ClrResOut;SetFActive (param: boolean);TextToOut (Out: StrParam);AddToOutPut (Param: string);SetPlusMines;ResultToScreen;BackSpaceSymbol;CEClick;CurrentFuncToScr;ClearCurrentFunc;,FParam,SParam: StrParam;: TMem;: set of char;: set of byte;: char;,Operation, i,j,Middle,Key: Разработка программы Калькулятор Другие курсовые по предмету 1. Аналитический раздел 1.1 Обзор и анализ существующих программных решений 1.2 Определение функциональных требований к разрабатываемой программной системе 2. Конструкторский раздел 2.1 Выбор языка и среды программирования 2.2 Функциональная схема работы программы 2.3 Организация данных и проектирование интерфейсов обмена данными в программной системе 3. Технологический раздел 3.1 Определение структуры и состава программной системы 3.2 Описание разработанных алгоритмов программы 3.3 Руководство пользователя 4. Экспериментальный раздел 4.1 Виды контроля качества разрабатываемого ПО 4.2 Методика проведения и результаты тестирования 4.3 Методы и способы устранения ошибок 4.4 Отладка выявленных ошибок, обнаруженных при тестировании Целью данного курсового проекта является создание программы «Калькулятор», которая и будет являться объектом исследования. Обычный калькулятор выполняет сложение и вычитание, умножение и деление, а также вычисляет проценты. Любое число, которое вы вводите в калькулятор, преобразуется в бинарный код, а результаты в бинарном коде переводятся обратно в десятичную систему и отображаются на дисплее. Когда вы набираете числа на клавиатуре, в регистры памяти калькулятора вводятся бинарные коды для операндов и арифметических действий (сложения, вычитания, умножения и деления). Арифметический блок выполняет действие и сохраняет результат в одном из регистров. Затем результат пересылается в память дисплея и отображается в десятичной форме на дисплее. Целью курсового проекта является приобретение и закрепление навыков в организации вычислительных процессов и программирования на алгоритмическом языке. программа алгоритм калькулятор ошибка на курсовой проект по дисциплине «Языки программирования» Студент Носенков А.В. Группа 11-БАС-2 Тема Разработка программы «Калькулятор» Общая формулировка задания Необходимо разработать программу «Калькулятор» выполняющую основные арифметические операции, а также расчет основных тригонометрических функций в среде программирования Turbo Pascal 7.0. Требования к графическому и пользовательскому интерфейсам: ·программа должна работать в графическом режиме; ·в программе должны использоваться кнопки для ввода данных (операций) и графическое меню; ·программа должна содержать поле для ввода данных и вывода результата. Требования к функциональным возможностям: ·реализовать возможность вывода на экран последнего операнда; ·реализовать возможность выполнения основных арифметических действий (сложение, вычитание, деление, умножение), извлечение квадратного корня, вычисление основных тригонометрических функций (косинус, синус, тангенс, котангенс), возведение в целую степень; ·реализовать возможность сброса результата. Руководитель Леонов Ю.А. 1. Аналитический раздел 1.1 Обзор и анализ существующих программных решений Сегодня усовершенствованные модели калькуляторов представляют собою высокотехнологичные разработки, при создании которых был использован колоссальный опыт инженерных предприятий во всем мире. И, несмотря на абсолютный приоритет ЭВМ, калькуляторы и прочие счетные устройства по-прежнему сопровождают человека в различных отраслях деятельности! Из доступных программ-калькуляторов можно назвать «Калькулятор Windows» и «NumLock Calculator«. Основные функции NumLock Calculator: ·быстрый вызов по «горячим клавишам», определяемым пользователем; ·автоматическая вставка результата в документы и буфер обмена; ·более 100 функций, 7 форматов чисел и выражений; ·история вычислений, 10 ячеек памяти, доступ к 100 переменным; Пример работы данной программы (рис.1.1). Рис.1.1 Пользовательский интерфейс программы » NumLock Calculator». Рис.1.2 Интерфейс программы «Калькулятор Windows». 1.2 Определение функциональных требований к разрабатываемой программной системе Проанализировав существующие программные решения, были определены следующие функциональные требования к разрабатываемой программе: 1)соблюдение правильности вычислений; 2)программа должна иметь простой, но в то же время понятный и наглядный интерфейс, который не должен перегружать ресурсы компьютера; )программа должна иметь возможность сброса полученного результата; )пользователь должен иметь возможность видеть выполняемые им действия и полученный результат; )программа не должна занимать большой объем памяти и не должна требовать установки на жесткий диск компьютера; )должна существовать возможность вычисления основных тригонометрических функций (синус, косинус, тангенс, котангенс), извлечение квадратного корня, а также возведение числа в целую степень; )работоспособность приложения в среде Windows. В ходе разработки программы все вышеописанные функциональные требования к ней были выполнены. 2. Конструкторский раздел 2.1 Выбор языка и среды программирования Источник Стандарты и шаблоны для ТЗ на разработку ПО Введение Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому… И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification): • ГОСТ 34 • ГОСТ 19 • IEEE STD 830-1998 • ISO/IEC/ IEEE 29148-2011 • RUP • SWEBOK, BABOK и пр. ГОСТ 34 ГОСТ 34.602-89 Техническое задание на создание автоматизированной системы регламентирует структуру ТЗ на создание именно СИСТЕМЫ, в которую входят ПО, аппаратное обеспечение, люди, которые работают с ПО, и автоматизируемые процессы. Согласно ГОСТ 34 техническое задание должно включать следующие разделы: 1. Общие сведения 2. Назначение и цели создания (развития) системы 3. Характеристика объектов автоматизации 4. Требования к системе 5. Состав и содержание работ по созданию системы 6. Порядок контроля и приемки системы 7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие 8. Требования к документированию 9. Источники разработки При разработке ТЗ для государственных проектов Заказчики, как правило, требуют соблюдение именно этого стандарта. ГОСТ 19 “ГОСТ 19.ххх Единая система программной документации (ЕСПД)” — это комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ (или ПО) и программной документации. Т.е. этот стандарт относится к разработке именно ПО. Согласно ГОСТ 19.201-78 Техническое задание, требования к содержанию и оформлению техническое задание должно включать следующие разделы: 1. Введение; 2. Основания для разработки; 3. Назначение разработки; 4. Требования к программе или программному изделию; 5. Требования к программной документации; 6. Технико-экономические показатели; 7. Стадии и этапы разработки; 8. Порядок контроля и приемки; 9. Приложения. Естественно ГОСТ 34 (и 19) уже устарели, и я не люблю их использовать, но при правильном интерпретации стандартов, можно получить хорошее ТЗ, см. Заключение. IEEE STD 830-1998 Описывается содержание и качественные характеристики правильно составленной спецификации требований к программному обеспечению (SRS) и приводится несколько шаблонов SRS. Данная рекомендуемая методика имеет своей целью установление требований к разрабатываемому программному обеспечению, но также может применяться, чтобы помочь в выборе собственных и коммерческих программных изделий. Согласно стандарту техническое задание должно включать следующие разделы: На самом деле новичку достаточно трудно понять, что должно содержаться в данных разделах по вышеприведенной структуре (как и в случае с ГОСТом), поэтому нужно читать сам стандарт, который легко найти в Интернете. Как и примеры, правда, на англ. языке. Мне же больше нравится адаптированный шаблон Карла Вигерса, который я использую при разработки ТЗ для коммерческих компаний. И вообще дедушка Вигерс предоставляет множество полезных рекомендаций по работе с требованиями (куда идут деньги при покупке этих рекомендаций, читайте в начале красным). Ну а его книжку вы уже несколько раз, надеюсь, перечитали. ISO/IEC/ IEEE 29148-2011 Стандарт IEEE 29148-2011 обеспечивает единую трактовку процессов и продуктов, используемых при разработке требований на протяжении всего жизненного цикла систем и программного обеспечения. Он приходит на смену стандартов IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998. Данный стандарт содержит два шаблона спецификации требований: • System requirements specification (SyRS) • Software requirements specification (SRS) System Requirements Specification (SyRS) определяет технические требования для выбранной системы и удобства взаимодействия предполагаемой системы и человека. Она определяет высокоуровневые требования к системе с точки зрения предметной области, а также информацию об общей цели системы, ее целевой среде и ограничениях, допущениях и нефункциональных требованиях. Она может включать в себя концептуальные модели, спроектированные для иллюстрации содержания системы, сценариев использования, основных сущностей предметной области, данных, информаций и рабочих процессов. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 34. SyRS может содержать следующие разделы: 3. Системные требования SRS может содержать следующие разделы: 3. Детальные требования Структура SRS в RUP(Rational Unified Process) представляет собой документ, в котором необходимо описать артефакты, полученные в процессе специфицирования требований. Шаблон SRS в RUP адаптирован из стандарта IEEE STD 830 и содержит два варианта: • Традиционный шаблон SRS со структурированными функциональными требованиями по функциям Системы, максимально похож на 830 стандарт. • Упрощенный шаблон SRS со структурированными функциональными требованиями в виде вариантов использования (use cases): SWEBOK, BABOK и пр. SWEBOK, BABOK, а также множество других методологий разработки ПО и сводов знаний при упоминании SRS ссылаются на вышеупомянутые зарубежные стандарты. Также стоит сказать, что для описания требований к АС и ПО используются и другие виды документов, кот каждый называет по разному: FRD (Functional Requirements Document), RD (Requirements Document), ПЗ (Постановка задачи или Пояснительная записка) и пр. Но это все производные документы от вышеупомянутых стандартов, не имеющих отраслевой стандартизации, хотя, в некоторых случаях, уже и с устоявшейся терминологией. А как же Agile? Я скажу одной фразой из Манифеста Agile: “Working software over comprehensive documentation”. Поэтому в Agile документации отводится совсем мало места. Мое же убеждение, что разработать АС без ТЗ можно (используя техники/рекомендации Agile), но вот в дальнейшем сопровождать — невозможно. Поэтому сразу задумайтесь, как вы будете писать ТЗ и другую документацию, при разработке ПО по Agile. Заключение Как говорится, каждому проекту свое техническое задание. При правильном использовании любого из вышеперечисленных стандартов можно брать эти шаблоны для написания ТЗ, естественно адаптируя их под себя. Но главное, чтобы ТЗ не превращалось в ХЗ, а, именно, содержание (наполнение) в ТЗ — самое главное! Но это уже совсем другая история… Если есть интерес, то можно пройти он-лайн курс Разработка и управление требованиями к ПО. Ну а кто дочитал до конца — тому бонус: пример ТЗ, который я писал много лет назад (сейчас уже просто аналитиком давно не работаю, да и другие более удачные примеры запрещает открывать на всеобщее обозрение NDA). Также рекомендую ознакомиться со следующими материалами: Источник
  35. Назначение и область применения
  36. Постановка задачи
  37. 1.2 Описание алгоритма
  38. 1.3 Организация входных и выходных данных
  39. Выходные данные. Числа вещественного типа данных.
  40. 1.4 Выбор состава технических и программных средств
  41. Разработка рабочего проекта
  42. 1.5 Разработка программы
  43. Для создания приложения программы “Калькулятор” используется среда визуального программирования Delphi. Проект программы содержит два окна:
  44. Разработка программы «Калькулятор»
  45. Разработка программы Калькулятор
  46. Стандарты и шаблоны для ТЗ на разработку ПО
  47. Введение
  48. ГОСТ 34
  49. ГОСТ 19
  50. IEEE STD 830-1998
  51. ISO/IEC/ IEEE 29148-2011
  52. SWEBOK, BABOK и пр.
  53. А как же Agile?
  54. Заключение

Проект «Экранный калькулятор выражений» Техническое задание

Министерство образования РФ

Томский государственный университет систем управления и радиоэлектроники

Кафедра компьютерных систем в управлении и проектировании

Проект «Экранный калькулятор выражений»

Преподаватель каф. КСУП

1.1 Наименование программы.. 3

1.2 Область применения. 3

2 ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ.. 3

2.3 Документы, на основании которых ведется разработка. 3

3 ТРЕБОВАНИЯ К ПРОГРАММЕ.. 4

3.1 Требования к составу выполняемых функций. 4

3.1.1 Ввод исходных данных. 4

3.1.2 Анализ исходного выражения. 4

3.1.3 Решение исходного выражения. 4

3.1.4 Вывод результата решения выражения. 4

3.2 Требования к надежности. 4

3.3 Требования к численности и квалификации персонала. 5

3.4 Требования к составу и параметрам технических средств. 5

3.5 Лингвистическое обеспечение. 5

3.6 Программное обеспечение. 5

3.7 Требования к маркировке и упаковке. 6

4 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ.. 7

5 СТАДИИ И ЭТАПЫ РАЗРАБОТКИ.. 8

6 ПОРЯДОК КОНТРОЛЯ И ПРИЁМКИ.. 9

6.1 Виды, состав, объем и методы испытаний системы и ее составных частей (виды испытаний в соответствии с действующими нормами, распространяющимися на разрабатываемую систему). 9

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

6.3 Статус приемочной комиссии. 9

7 ИСТОЧНИКИ РАЗРАБОТКИ.. 10

1 ВВЕДЕНИЕ

1.1 Наименование программы

«Экранный калькулятор выражений». Программа для вычисления математических выражений.

1.2 Область применения

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

2 ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ

Основанием для разработки является учебный план кафедры компьютерных систем в управлении и проектировании (КСУП), на 7-й семестр по предмету «Лингвистическое и программное обеспечение систем автоматизированного проектирования».

2.1 Заказчик

Томский государственный университет систем управления и радиоэлектроники (ТУСУР), факультет вычислительных систем (ФВС), кафедра компьютерных систем в управлении и проектировании (КСУП), преподаватель

2.2 Разработчик

Студенты группы 587-2 ФВС ТУСУР:

2.3 Документы, на основании которых ведется разработка

У тех, кто взял за тему курсового проекта тему ГПО стоит дата и номер приказа группы ГПО. А какой документ должна указать наша группа?

3 ТРЕБОВАНИЯ К ПРОГРАММЕ

3.1 Требования к составу выполняемых функций

3.1.1 Ввод исходных данных

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

3.1.2 Анализ исходного выражения

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

3.1.3 Решение исходного выражения

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

3.1.4 Вывод результата решения выражения

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

3.2 Требования к надежности

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

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

– при ошибках в работе аппаратных средств (кроме носителей данных и программ) восстановление функции системы возлагается на ОС;

– при ошибках, связанных с программным обеспечением (ОС и драйверы устройств), восстановление работоспособности возлагается на ОС.

Система должна обеспечить корректный вывод сообщения об ошибке в выражении в случае, если в нем содержатся синтаксические ошибки.

3.3 Требования к численности и квалификации персонала

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

3.4 Требования к составу и параметрам технических средств

Требования к техническим характеристикам ПК:

Поддерживаемые операционные системы: Windows 7, Windows Vista, Windows XP.

Процессор: 400 MHz Pentium (минимальный) и выше, 1GHz Pentium (рекомендуемый) и выше.

Объем RAM:256 MB и более.

3.5 Лингвистическое обеспечение

Язык высокого уровня С#, С++.

3.6 Программное обеспечение

Microsoft Visual Studio 2008, 2010.

Требования не предъявляются.

3.7 Требования к маркировке и упаковке

Проект сдается руководителю на компакт-диске вместе с сопровождающей документацией.

4 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

Состав программной документации должен включать в себя:

— титульный лист (1 шт.);

— роли участников и краткое описание выполненной работы каждым участником проекта со сроками выполнения (1 шт.);

— результаты тестирования (1 шт.);

— описание алгоритмов (1 шт.);

— руководство программиста (1 шт.);

— список литературы (1 шт.);

— листинг разработанного приложения (1 шт.);

Источник

Разработка программы «Простой калькулятор»

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.01.2015
Размер файла 379,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://allbest.ru

Разработка программы «Простой калькулятор»

Введение

программа калькулятор приложение

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

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

Целью данного курсового проекта является создание программы «Калькулятор», которая и будет являться объектом исследования.

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

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

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

1. Разработка эскизного и технического проектов программы

Назначение и область применения

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

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

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

?программа должна работать в графическом режиме;

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

?программа должна содержать поле для ввода данных и вывода результата операции.

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

Рисунок 1-рабочее окно программы «простой калькулятор»

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

У программы «калькулятор» имеются меню с пунктами: «Файл» и «Справка» это это можно увидеть на рисунке 1. В меню «файл» находится закладка для выхода из программы, вкладка «закрыть», а в «справке» находятся краткие сведения о программе и разработчике.

Список использованных переменных

В программе «Простой калькулятор» были использованы стандартные элементы Delphi 7. В главной форме-Form1, которая является самим калькулятором (рисунок 2) и в меню «о программе»-Form2 (рисунок 3). В программе использованы элементы закладок Standard (TButton, TEdit, TMainMenu, TLabel)

Рисунок 2-3:форма Form1;форма Form2

Первые 11 элементов TButton (названия от _0 до _9) имеется операция ввода чисел. 12й элемент с именем `Dot’играет роль отделения дробной части от целой. При нажатии на одну из этих кнопок число появляется на дисплее и переносятся в переменную `back’ с типом string которая сохраняет в себе данные всех введённых чисел. Другие элементы TButton являются функциональными клавишами, 1 кнопка вывода результата (`=’). При срабатывании функциональной клавиши, арифметический знак так же выводится на дисплей и заносится в переменную `s’ типа string. После этих действий у нас есть все необходимые данные для определения результата операции (события OnClick для кнопки со значением “=”). Результат вычисления заносится в переменную rez типа real и отображается на дисплее.

Элемент TMainmenu используются для реализации меню программы с пунктами:

Файл,Справка(на Form1),Закрыть(на Form2)

Элемент TLabel применен для вывода текста информации о программе в меню.

1.2 Описание алгоритма

2. Определение введённого символа

3. Выполнение соответствующих операций

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

Обобщенная схема алгоритма приведена в ПРИЛОЖЕНИИ 1

1.3 Организация входных и выходных данных

Выходные данные. Числа вещественного типа данных.

1.4 Выбор состава технических и программных средств

Среда Delphi позволяет достаточно быстро и легко разрабатывать приложения для Windows.

Технические характеристики компьютера:

Объем оперативной памяти не менее 60 Мб;

Необходимое пространство на жестком диске 150 Мб.

Дополнительных средств (принтер, сканер, дополнительные дисководы и т.д.) не требуется.

Разработка рабочего проекта

1.5 Разработка программы

Для создания приложения программы “Калькулятор” используется среда визуального программирования Delphi. Проект программы содержит два окна:

Источник

Разработка программы «Калькулятор»

<***********************************>=13;=36;CheckOutPut (var Out: StrParam);ClearOutPut;ClrResOut;SetFActive (param: boolean);TextToOut (Out: StrParam);AddToOutPut (Param: string);SetPlusMines;ResultToScreen;BackSpaceSymbol;CEClick;CurrentFuncToScr;ClearCurrentFunc;,FParam,SParam: StrParam;: TMem;: set of char;: set of byte;: char;,Operation, i,j,Middle,Key:

Разработка программы Калькулятор

Другие курсовые по предмету

1. Аналитический раздел

1.1 Обзор и анализ существующих программных решений

1.2 Определение функциональных требований к разрабатываемой программной системе

2. Конструкторский раздел

2.1 Выбор языка и среды программирования

2.2 Функциональная схема работы программы

2.3 Организация данных и проектирование интерфейсов обмена данными в программной системе

3. Технологический раздел

3.1 Определение структуры и состава программной системы

3.2 Описание разработанных алгоритмов программы

3.3 Руководство пользователя

4. Экспериментальный раздел

4.1 Виды контроля качества разрабатываемого ПО

4.2 Методика проведения и результаты тестирования

4.3 Методы и способы устранения ошибок

4.4 Отладка выявленных ошибок, обнаруженных при тестировании

Целью данного курсового проекта является создание программы «Калькулятор», которая и будет являться объектом исследования.

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

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

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

программа алгоритм калькулятор ошибка

на курсовой проект по дисциплине «Языки программирования»

Студент Носенков А.В. Группа 11-БАС-2

Тема Разработка программы «Калькулятор»

Общая формулировка задания

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

Требования к графическому и пользовательскому интерфейсам:

·программа должна работать в графическом режиме;

·в программе должны использоваться кнопки для ввода данных (операций) и графическое меню;

·программа должна содержать поле для ввода данных и вывода результата.

Требования к функциональным возможностям:

·реализовать возможность вывода на экран последнего операнда;

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

·реализовать возможность сброса результата.

Руководитель Леонов Ю.А.

1. Аналитический раздел

1.1 Обзор и анализ существующих программных решений

Сегодня усовершенствованные модели калькуляторов представляют собою высокотехнологичные разработки, при создании которых был использован колоссальный опыт инженерных предприятий во всем мире. И, несмотря на абсолютный приоритет ЭВМ, калькуляторы и прочие счетные устройства по-прежнему сопровождают человека в различных отраслях деятельности!

Из доступных программ-калькуляторов можно назвать «Калькулятор Windows» и «NumLock Calculator«.

Основные функции NumLock Calculator:

·быстрый вызов по «горячим клавишам», определяемым пользователем;

·автоматическая вставка результата в документы и буфер обмена;

·более 100 функций, 7 форматов чисел и выражений;

·история вычислений, 10 ячеек памяти, доступ к 100 переменным;

Пример работы данной программы (рис.1.1).

Рис.1.1 Пользовательский интерфейс программы » NumLock Calculator».

Рис.1.2 Интерфейс программы «Калькулятор Windows».

1.2 Определение функциональных требований к разрабатываемой программной системе

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

1)соблюдение правильности вычислений;

2)программа должна иметь простой, но в то же время понятный и наглядный интерфейс, который не должен перегружать ресурсы компьютера;

)программа должна иметь возможность сброса полученного результата;

)пользователь должен иметь возможность видеть выполняемые им действия и полученный результат;

)программа не должна занимать большой объем памяти и не должна требовать установки на жесткий диск компьютера;

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

)работоспособность приложения в среде Windows.

В ходе разработки программы все вышеописанные функциональные требования к ней были выполнены.

2. Конструкторский раздел

2.1 Выбор языка и среды программирования

Источник

Стандарты и шаблоны для ТЗ на разработку ПО

Введение

Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.

ГОСТ 34

ГОСТ 34.602-89 Техническое задание на создание автоматизированной системы регламентирует структуру ТЗ на создание именно СИСТЕМЫ, в которую входят ПО, аппаратное обеспечение, люди, которые работают с ПО, и автоматизируемые процессы.

Согласно ГОСТ 34 техническое задание должно включать следующие разделы:

1. Общие сведения
2. Назначение и цели создания (развития) системы
3. Характеристика объектов автоматизации
4. Требования к системе
5. Состав и содержание работ по созданию системы
6. Порядок контроля и приемки системы
7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
8. Требования к документированию
9. Источники разработки

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

ГОСТ 19

“ГОСТ 19.ххх Единая система программной документации (ЕСПД)” — это комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ (или ПО) и программной документации. Т.е. этот стандарт относится к разработке именно ПО.
Согласно ГОСТ 19.201-78 Техническое задание, требования к содержанию и оформлению техническое задание должно включать следующие разделы:

1. Введение;
2. Основания для разработки;
3. Назначение разработки;
4. Требования к программе или программному изделию;
5. Требования к программной документации;
6. Технико-экономические показатели;
7. Стадии и этапы разработки;
8. Порядок контроля и приемки;
9. Приложения.

Естественно ГОСТ 34 (и 19) уже устарели, и я не люблю их использовать, но при правильном интерпретации стандартов, можно получить хорошее ТЗ, см. Заключение.

IEEE STD 830-1998

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

Согласно стандарту техническое задание должно включать следующие разделы:

На самом деле новичку достаточно трудно понять, что должно содержаться в данных разделах по вышеприведенной структуре (как и в случае с ГОСТом), поэтому нужно читать сам стандарт, который легко найти в Интернете. Как и примеры, правда, на англ. языке.

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

ISO/IEC/ IEEE 29148-2011

Стандарт IEEE 29148-2011 обеспечивает единую трактовку процессов и продуктов, используемых при разработке требований на протяжении всего жизненного цикла систем и программного обеспечения. Он приходит на смену стандартов IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998.

Данный стандарт содержит два шаблона спецификации требований:

• System requirements specification (SyRS)
• Software requirements specification (SRS)

System Requirements Specification (SyRS) определяет технические требования для выбранной системы и удобства взаимодействия предполагаемой системы и человека. Она определяет высокоуровневые требования к системе с точки зрения предметной области, а также информацию об общей цели системы, ее целевой среде и ограничениях, допущениях и нефункциональных требованиях. Она может включать в себя концептуальные модели, спроектированные для иллюстрации содержания системы, сценариев использования, основных сущностей предметной области, данных, информаций и рабочих процессов. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 34.

SyRS может содержать следующие разделы:

3. Системные требования

SRS может содержать следующие разделы:

3. Детальные требования

Структура SRS в RUP(Rational Unified Process) представляет собой документ, в котором необходимо описать артефакты, полученные в процессе специфицирования требований.

Шаблон SRS в RUP адаптирован из стандарта IEEE STD 830 и содержит два варианта:

• Традиционный шаблон SRS со структурированными функциональными требованиями по функциям Системы, максимально похож на 830 стандарт.
• Упрощенный шаблон SRS со структурированными функциональными требованиями в виде вариантов использования (use cases):

SWEBOK, BABOK и пр.

SWEBOK, BABOK, а также множество других методологий разработки ПО и сводов знаний при упоминании SRS ссылаются на вышеупомянутые зарубежные стандарты.

Также стоит сказать, что для описания требований к АС и ПО используются и другие виды документов, кот каждый называет по разному: FRD (Functional Requirements Document), RD (Requirements Document), ПЗ (Постановка задачи или Пояснительная записка) и пр. Но это все производные документы от вышеупомянутых стандартов, не имеющих отраслевой стандартизации, хотя, в некоторых случаях, уже и с устоявшейся терминологией.

А как же Agile?

Я скажу одной фразой из Манифеста Agile: “Working software over comprehensive documentation”. Поэтому в Agile документации отводится совсем мало места.

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

Заключение

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

Но главное, чтобы ТЗ не превращалось в ХЗ, а, именно, содержание (наполнение) в ТЗ — самое главное! Но это уже совсем другая история… Если есть интерес, то можно пройти он-лайн курс Разработка и управление требованиями к ПО.

Ну а кто дочитал до конца — тому бонус: пример ТЗ, который я писал много лет назад (сейчас уже просто аналитиком давно не работаю, да и другие более удачные примеры запрещает открывать на всеобщее обозрение NDA).

Также рекомендую ознакомиться со следующими материалами:

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как настроить рамку окна в windows 10
  • Прикольные курсоры для windows 11
  • Боковая панель виджетов для windows 10
  • Windows 10 не запускается установщик программы
  • Wifi internet sharing windows