Наши проекты: Скачать программы Экспорт новостей (RSS)
Главная | Domino | Статьи | Computer FAQ | Download | T0P-100 Software | Форум
Internet Zone - компьютерный электронный журнал         Подписка на рассылку
Реклама у нас, Контакты

 Статьи/обзоры   Новые обзоры | Software | Hardware | Система | Безопасность | Интернет | Бизнес и Заработок | Игры | Фото | Mobile | Разное | Пресс-релизы компаний | Авторам статей

Старые рубрики этого раздела - FAQ Windows 9x/Me | FAQ Windows NT/2K | FAQ Windows XP FAQ | Software FAQ | Hardware FAQ | Linux FAQ | Скачай сейчас | Веб-навигатор

ITrader – преобразуй время в деньги!
Программа, дающая доступ к торговле на всех мировых финансовых рынках для возможности заработка с помощью следующих инструментов: валюты, акции, индексы, нефть, драгоценные металлы. Скачай и открой бесплатный Демо-счет! Обучение. Депозит от 1000 рублей.
Подробнее...

Software


Эффективная разработка программ: Руководство программиста-практика

Дата публикации: 14 Апреля 2004
Автор: Абрамовский Иван

Данное руководство - это подробное описание действий, которые приведут вас к успеху создания Программного Проекта! Если Вы решили в одиночку сделать что-то посложнее программы «Hello, World!!!», то данное руководство окажет Вам неоценимую услугу в проектировании, сопровождении и реализации Вашего Проекта!

Что для этого Вам понадобится:
- желание создания программы
- терпение и настойчивость
- чистая тетрадь или записная книжка

Идея данного метода состоит в том, что Вы фиксируете всю работу над проектом от начала до конца, в одном документе. Этот документ назовем «The Design Document of <название программы>», пусть этим документом является простая тетрадка в 48 листов.

Design Document - это отражение состояния и эволюции Программного Проекта (в дальнейшем просто ‘ПП’), в течении всего периода разработки.

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

Как сказано выше Design Document - это простая записная книжка или тетрадь, но специальным образом организованная. Каким образом она организована, Вы узнаете прочитав эту статью.

Design Document состоит из следующий разделов:

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

2. Разработка и сопровождение
- список работ
- график работ
- хронометраж работы
- итог

Ниже приведено подробное описание каждого раздела.

Проектирование.

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

Назначение программы.

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

Результат работы.

Опишите во всей красе итог вашей работы - что должно быть в идеале, как Вы видите завершенную программу. Укажите, что это должна быть за программа, ее размер, целевая аудитория, поддерживаемые языки, какие технические средства вы хотите применить (попробовать). Чего вообще Вы ждете от реализации программы? Для кого пишется эта программа - для себя или для всех желающих, а может Вы планируете заняться Shareware-бизнесом? Вобщем «узнайте» как можно больше о будущей программе, чего Вы хотите в действительности достичь. Это очень поможет Вам при реализации.

Интерфейс.

Опишите и зарисуйте интерфейс программы. Нарисуйте окна, меню, и прочие элементы управления. Напишите за что будет отвечать тот или иной диалог. Задайте себе вопросы примерно такого содержания:
- какой тип главного окна (SDI, MDI или диалог)
- как удобнее расположить главные управляющие элементы
- будет ли интерфейс стандартным или вы будете применять специальные классы, dll или ActiveX?

Глоссарий терминов.

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

Функциональные возможности.

В этом разделе следует привести подробный список функционала, т.е. конкретных действий программы.
Например:

- проигрывание файла в формате mp3
- конвертация файла из формата wav в mp3
- чтение тегов в файле mp3

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

Сопровождение.

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

Список работ.

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

Рекомендуемая минимальная работа до 1,5 часа, т.е. если Вы запишите какую-либо работу свыше 1,5 часа, то ее лучше разбить на более меньшие(например на две работы по 45 – 50 мин).

График работы.

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

Пример графика работы:

Дата

Вид работ

Время (час)

Пн

1. Интерфейс

4

Главное окно

1

Строка состояния

0.5

Диалог 'Настройки'

1.5

Окно представления

1

Вт, Ср

2. Класс работы с файлом

10

Функции Add, Get

2.5

Функции Insert, Delete

2.5

Механизм криптования

3

Оптимизация класса + документирование

2

Чт

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

3

Пт

4. Документация программы

6

Написание справки

4

Интеграция справки

2

Сб

Защита(механизм регистрации)

3

Итог

Всего

26

За 1 день

5

Планируемая длительность

26/5 = 5.2 ~ 6 дн

Релиз альфа версии

12.04.2004

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

Хронометраж работы.

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

Например:

Что

Сколько

Главное окно

20 мин

Диалог 'Настройки'

2,4 часа

Окно представления

4 часа

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

Если используется какие-либо новые компоненты(классы, ActiveX, dll и др.), то следует записывать их в «общий перечень используемых инструментов». Такая запись поможет при отладке, и документировании проекта.

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

Следует также вести раздел «Описание слабых мест». Т.е. тех мест которые необходимо будет оптимизировать(изменить) в следующих версиях.

Еще один раздел «сложные места» - это описание тех мест, где вы долго не могли разобраться. И написание комментариев для быстрого «прохождения» этого места.

Итог.

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

- Количество потраченных часов (дней). В дальнейшем вам будет интересно посмотреть сколько времени тратилось на то или иное дело. Когда у вас будет несколько проектов можно будет провести сравнение и анализ.

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

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

Итак, теперь вы знаете как эффективно организовать создание программного проекта. Главное здесь - это поэтапное фиксирование и анализ всего процесса создания ПО от начала до конца.

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

Успехов!
Замечания и предложения прошу направлять на: abhome@atnet.ru

***

Смотрите также:
  • Сделать MIDI из MP3? Легко
  • Disk Write Copy: как установить вечный Windows?
  • Программы для Windows
  • Adobe Photoshop Elements 6
  • Качаем файлы, обмениваемся ими с друзьями с удаленной машины
  • Все статьи рубрики Software


    Главная | Domino | Статьи | Computer FAQ | Download | T0P-100 Software | Форум
    Рассылка - Реклама у нас - Экспорт новостей (RSS) - Карта сайта  | Наши проекты: Скачать программы
    Copyright © Internet Zone. Информация об использовании материалов сайта, Контакты
    Rambler's Top100