Показаны сообщения с ярлыком RUMTMARC. Показать все сообщения
Показаны сообщения с ярлыком RUMTMARC. Показать все сообщения

четверг, 25 апреля 2013 г.

20. RUMTMARC : Попытка смены вектора развития (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/19-rumtmarc-at.html

Я как "руководитель проекта" вот что подумал - может быть ну его этот калькулятор, да и и тестовый редактор - тем более (я их за свою жизнь уже штук пять написал.. под разные платформы..). Может быть сразу возьмём StarUML И попытаемся прикрутить к нему собственную кодогенерацию? Проект конечно растянется. Зато не будет "академическим" примером, да и решать будем вполне насущные задачи. Что скажете?

Причём пример будет - рекурсивный - в какой-то момент мы сможем сам редактор на самом себе же описывать. Да и прецедентов там явно больше.

P.S. если конечно удастся скачать исходники... (Update - скачал, они - на Java. StarUML - видимо тогда не рассматриваем)

P.P.S. Помогите мне криворукому скачать исходники StarUML. (Update - скачал)

P.P.P.S. И ещё - расскажите - как настроить доступ из CVS (домашнего) к sourceforge. (Update - настроил, там оказывается давно не CVS, а SVN и git)

19. RUMTMARC : Первичный анализ возможных тест-кейсов (AT)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/18-rumtmarc-at.html


Пока нет программы и, естественно, нет сценариев, которые приведут к ошибке, то можно покрыть все требования тестами.
Т.е.
0.1. При открытии программа содержит 0 в качестве текущего значения, отображаемого в окне ввода/отображения информации.
Тест: смотрим, в каком окне находится фокус при входе.
0.2. При открытии текущее значение 0, значение предыдущего операнда 0, тип производимого действия не определен.
Тест: пишем в эталон текущее значение, предыдущее (None) и пробуем определить тип производимого действия (None).
(кстати, При открытии программа содержит 0 в качестве текущего значения и При открытии текущее значение 0) повторяется в требованиях.
0.3. Программа находится в режиме ввода данных.
Тест: эмулируем процесс входа в программу, нажимаем цифру на клавиатуре, пишем в эталон текущее значение (должно быть равно этой цифре).
И т.д для всех требований.
Можно дополнительно проверять размеры кнопок, их состояние (нажатость), цвет, текст, хинты, отступы на форме, параметры и названия окон и многое другое. То есть все, что будет зафиксировано в требованиях. То есть нужен эскиз внешнего вида программы, с указанием размеров.  

Следующая серия - http://18delphi.blogspot.com/2013/04/20-rumtmarc-al.html

18. RUMTMARC : Дополнения к требованиям от тестировщиков (AT)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/17-rumtmarc-ak.html


Можно еще дополнить требования:
3. Ввод данных
3.4. Ввод текста
3.4.0.1. Запрещен ввод текста в окно ввода/отображения информации.
Можно еще добавить описание горячих клавиш.
И определить сообщения, получаемые в результате ошибочных действий: деления на ноль, использования недопустимых аргументов (и как они будут выводится - в отдельном окне или в открытой форме) и т.д.
И добавить описание возможных действий с цифрами в окне ввода/отображения информации (можно ли его копировать), и также пункт, что нельзя установить курсор в окно ввода/отображения информации с целью правки операнда с помощью клавиатуры или выделения мыши. 

Следующая серия - http://18delphi.blogspot.com/2013/04/19-rumtmarc-at.html

17. RUMTMARC : Дополнения к требованиям (AK)

Предыдущая серия - http://18delphi.blogspot.com/2013/04/16-rumtmarc-uml.html

Я еще забыл про отрицательные числа и кнопку "минус" (для установки знака вводимым числам) в требованиях. Так что дописать надо про это.

Следующая серия - http://18delphi.blogspot.com/2013/04/18-rumtmarc-at.html

16. RUMTMARC : Про UML (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/15-rumtmarc-al.html

Давайте представим, что у нас впереди "вечность" и будем пытаться ориентироваться на StarUML. Попутно дорабатывая его.

Часть диаграмм я буду приводить "а ля" из Rational Rose. Но у нас с вами лицензии на него - нет. Считайте, что они на бумажке нарисованы.

Хорошо? Будем дорабатывать StarUML "по ходу пьесы"?

Так и примеры нагляднее получатся... И GoF - я думаю - востребованы будут...

P.S. snapshot что-то не качается.. Видимо про StarUML придётся "пока забыть".

P.P.S. Сам StarUML живёт тут - http://staruml.sourceforge.net/en/
Вторая альтернатива тут - https://www.ibm.com/developerworks/rational/products/rose/

Но ни там, ни там нет кодогенерации в том виде о которой буду рассказывать я.

Следующая серия - http://18delphi.blogspot.com/2013/04/17-rumtmarc-ak.html

15. RUMTMARC : Договариваемся с коллегами о порядке коммитов и использовании общих библиотек (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/14-rumtmarc-al.html

Или у нас коллег с общими библиотеками нет? Или с ними УЖЕ всё давно договорено?

Следующая серия - http://18delphi.blogspot.com/2013/04/16-rumtmarc-uml.html

14. RUMTMARC : Приступаем к начальному кодированию (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/13-rumtmarc-al.html

Так? Или что-то забыл?

Спросите "где UML и MDA" - отвечу - "надо же что-то поделать "руками" и "на земле". Чтобы "пощупать". Глядишь и UML - не нужен будет". Может "и так всё закодируем"...

Шучу. UML - конечно будет.

Но и про байты забывать - не надо - http://russian.joelonsoftware.com/Articles/BacktoBasics.html

... тут будут какие-то первичные проектные классы ...

Следующая серия тут - http://18delphi.blogspot.com/2013/04/15-rumtmarc-al.html

13. RUMTMARC : Инспектируем существующие компоненты и библиотеки. (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/12-rumtmarc-al.html

Инспектируем существующие компоненты и библиотеки.

Так?

Следующая серия тут - http://18delphi.blogspot.com/2013/04/14-rumtmarc-al.html

12. RUMTMARC : Бюджет (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/11-rumtmarc-al.html

Про бюджет мы наверное где-то раньше поговорили? Так?

Следующая серия - http://18delphi.blogspot.com/2013/04/13-rumtmarc-al.html

11. RUMTMARC : Определяем платформу (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/10-rumtmarc-al.html

И тут я опять остановился.. И ОПЯТЬ - подумал...

Надо же платформу определить..

VCL или FireMonkey? В требованиях у на тут - "пробел".

Или всё равно? Или раньше надо было думать?

Следующая серия - http://18delphi.blogspot.com/2013/04/12-rumtmarc-al.html

10. RUMTMARC : Сроки и планы (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/9-rumtmarc-gui-al.html

Тут я остановился и подумал - надо же наверное уже определить сроки, сверстать хоть какие-нибудь планы. Исходя из существующих ресурсов.

Так?

Или сроки надо раньше определять? :-)

Следующая серия - http://18delphi.blogspot.com/2013/04/11-rumtmarc-al.html

9. RUMTMARC : Тут бы начать подключать тестировщиков и выяснять у них - какие "ручки" им могут понадобиться для GUI-тестирования (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/8-rumtmarc-usecase-al.html

Тут бы начать подключать тестировщиков и выяснять у них - какие "ручки" им могут понадобиться для GUI-тестирования.

Так?

Следующая серия - http://18delphi.blogspot.com/2013/04/10-rumtmarc-al.html

8. RUMTMARC : Крупными мазками рисуем UseCase'ы (AL)

Предыдущая серия - http://18delphi.blogspot.com/2013/04/7-rumtmarc-al.html

Крупными мазками рисуем прецеденты и выделяем актёров.

Так?

... тут будут диаграммы с требованиями ...

Следующая серия - http://18delphi.blogspot.com/2013/04/9-rumtmarc-gui-al.html

7. RUMTMARC : Работающий прототип интерфейса (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/6-rumtmarc-al.html

Так?

Пока без "всяких UML" и "прочих чудес". Чисто "морда". С кнопками.

Следующая серия - http://18delphi.blogspot.com/2013/04/8-rumtmarc-usecase-al.html

6. RUMTMARC : Проект интерфейса (AL)

Предыдущая серия была тут  - http://18delphi.blogspot.com/2013/04/5-rumtmarc-al.html

Так?

Следующая серия тут - http://18delphi.blogspot.com/2013/04/7-rumtmarc-al.html

среда, 24 апреля 2013 г.

5. RUMTMARC : Настройка среды (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/4-rumtmarc-ak.html

Тут пишем - как покупать Delphi и как его ставить (ссылки приветствуются).

Тут пишем - где брать CVS и как его ставить (ссылки приветствуются).

Updated: в итоге выбрал SVN и SmartSVM. И создал репозитарий - https://sourceforge.net/p/rumtmarc/code-0/HEAD/tree/

Тут пишем - где брать SVN и SmartSVN и как его ставить (ссылки приветствуются).

Следующая серия - http://18delphi.blogspot.com/2013/04/6-rumtmarc-al.html

4. RUMTMARC : Первично собранные требования (AK)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/3-rumtmarc-ak.html

Итак. Интервью с заказчиком поведено.

Первичные требования - собраны:

Итак, требования.

Нефункциональные.

Программа должна работать под Windows XP и выше.

Интерфейс пользователя
Стандартное окно с возможностью закрытия размеров таких-то
В верхней части должно быть окошко для ввода данных с клавиатуры и отбражения результатов.
Под ним расположены кнопки для ввода цифр 0..9, разделитель дробной части .,  кнопки для действий +, -, *, /, =, стирание предыдущего символа, обнуление. Размеры кнопок и расположение - такое-то

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

Требования

0. Начало
0.1. При открытии программа содержит 0 в качестве текущего значения, отображаемого в окне ввода/отображения информации.
0.2. При открытии текущее значение 0, значение предыдущего операнда 0, тип производимого действия не определен.
0.3. Программа находится в режиме ввода данных.
1. Выход
1.0. На выходе программа закрывает окно и освобождает все занятые ресурсы.
2. Очистка текущего состояния

2.0. При нажатии на "обнуление" (или ESC клавиатуры) текущее значение становится равным 0, значение предыдущего операнда 0, тип производимого действия не определен.

2.1. Программа переходит в режим ввода данных.

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

3.0.1. Если программа в режиме "после действия", то в окне текущего значения устанавливается введенный символ, и программа переходит в режим ввода данных.

3.1. Ввод точки-разделителя дробной части

3.1.0. Если программа в режиме ввода данных

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



3.1.0.1. если ранее точка-разделитель была введена, то введенная последовательность символов в окне текущего значения не изменяется.
3.1.1. Если программа в режиме "после действия", то в окне текущего значения устанавливается значение "0.".



3.2. Ввод действий +, -, /,*,=

3.2.0. Если запомненный тип производимого действия определен, то программа выполняет соответствующую бинарную операцию между "значением предыдущего операнда" и текущим значением (конвертированным до числа с плавающей точкой 64-битной точности). Вычисленное значение помещается в окно текущего значения.

3.2.1. Тип производимого действия устанавливается в соответствии с введенным действием (при действии "=" тип производимого действия не определен)
3.2.2. Программа переходит в режим "после действия"

3.3. Cтирание предыдущего неверно введенного символа

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


3.3.1. Если программа в режиме "после действия", то в окне текущего значения устанавливается значение "0"

Следующая серия - http://18delphi.blogspot.com/2013/04/5-rumtmarc-al.html

3. RUMTMARC : Интервью с заказчиком (AK)

Предыдущая серия - http://18delphi.blogspot.com/2013/04/2-rumtmarc-al.html


Приблизительное Интервью с Заказчиком, опуская приветствия, лирику
И - Интервьювер
З - Заказчик
- И: Какая программа вам требуется?
- З: Нужен аналог обычного калькулятора, который бы позволял складывать, вычитать, умножать, делить числа.
- И: Для какого компьютера или ОС?
- З: Мы используем обычные компьютеры на базе Windows XP, и не планируем пока переходить на другие ОС. Ну разве что в перспективе...
- И: Тоже семейства Windows?
- З: Да.
- И: Какими числами Вы хотите оперировать?
- З: Обычные, как в обычном калькуляторе, целые, дробные, положительные, отрицательные, ноль
- И: Какой диапазон значений?
- З: Чем больше - тем лучше, иногда приходится считать триллионы, иногда доли единиц (например, при подсчете процентов)
- И: Какая точность нужна для дробной части числа (сколько знаков после запятой, длина мантиссы)?
- З: Чем больше - тем лучше, пусть будет минимум 8 знаков после запятой.
- И: Правильно ли я понимаю, что если числа большие (ну миллиард), то там такая точность не нужна, то есть точность - это относительная характеристика, 8 знаков после запятой только для чисел, скажем, в диапазоне от 0 до 100?
- З: Да.
- И: Как должен быть организован ввод чисел, действий?
- З: Нужен ввод с клавиатуры, но для универсальности пусть будет также возможен вариант ввода через мышь. Для удобства нужно чтобы было можно удалять последние введенные символы. Скажем через BACKSPACE или соответствующую кнопку пользовательского интерфейса.
- И: Копирование и вставка в буффер Windows?
- З: Пока не требуется. Но заложите на последующие версии.
- И: Как должны располагаться окна и кнопки в пользовательском интерфейсе?
- З: В точности как на калькуляторе (фото: http://fast.ulmart.ru/good_big_pics/160636.jpg)
- И: Размеры окна программы? Кнопок? Размер шрифта и т.п.?
- З: (после совместного редактирования формы в дизайнере - определены). Но желательно иметь возможность изменить шрифт.
- И: С запоминанием выбранного шрифта?
- З: Да, но это (настройка шрифтов) - вопрос второй очереди.
- И: В калькуляторе есть функции вычисления процентов, корня...
- З: Это полезно, но тоже вопрос на потом, сначала сделайте + - * /
- И: Функции работы с памятью?
- З: Это полезно, но тоже вопрос на потом, сначала сделайте + - * /
- И: Клавиша обнуления?
- З: Разумеется, должна быть.


Следующая серия тут - http://18delphi.blogspot.com/2013/04/4-rumtmarc-ak.html

2. RUMTMARC : Выбираем инструменты (AL)

Предыдущая серия - http://18delphi.blogspot.com/2013/04/1-rumtmarc-al.html

Поскольку этот блог про Delphi и у меня есть честно купленная лицензия на Delphi XE3, То основным рабочим инструментом выбираем - Delphi XE 3.

Инструментом конфигурационного контроля выберем CVS и WinCVS.

Updated: в итоге выбрал SVN и SmartSVM. И создал репозитарий - https://sourceforge.net/p/rumtmarc/code-0/HEAD/tree/

Инструментом моделирования - пока давайте ничего не выберем. Будем сомневаться между Rational Rose и StarUML. Rational Rose стоит дорого, да и к нему есть вопросы, StarUML - "тормозной" и не поддерживает собственную кодогенерацию. (Может быть у читателей есть варианты?)

Годится для начала?

Следующая серия - http://18delphi.blogspot.com/2013/04/3-rumtmarc-ak.html

1. RUMTMARC : Распределяем роли (AL)

Предыдущая серия была тут - http://18delphi.blogspot.com/2013/04/0-rup-uml-mda-etc-al.html

Пока участников - двое:
AK - Мой товарищ и специалист по сбору требований и работе с заказчиками.
AL - Ваш покорный слуга и ведущий этого блога.
AT - Мой знакомый специалист по тестированию.

Итак. Какие РОЛИ (а не должности) нам понадобятся:
1. Работа с требованиями - AK
2. Работа с заказчиком - AK
3. Аналитик проекта - AK и AL
4. Архитектор - AL
5. Библиотекарь - AL
6. Программист - AL
7. unit-тестировщик - AL
8. gui-тестировщик - AT и AL
9. Технический писатель - AK и AL
10. Аналитик тестирования - AT

Что-то забыл? Пишите!

P.S. если состав ролей или состав участников - будем меняться - мы будем писать про это отдельными постами.

Следующая серия - http://18delphi.blogspot.com/2013/04/2-rumtmarc-al.html