Рассмотрим более подробно все этапы (дела), из которых состоит постановка задачи на программирование.
Идея программы
Жизнь новой программы начинается с идеи использования компьютера для новой задачи. Идея может родиться у программиста наблюдающего, как мучаются его коллеги, у самих информационных тружеников, просто у любознательного и умного человека. Одна и та же идея может быть реализована несколькими программами, в одной программе может быть заложено несколько идей. Но, без хорошей идеи не будет и программы.
Например. Замечательная идея Питера Нортона, автора "Norton Commander", в последствии была повторена в десятке различных программ, разбивающих экран на два окна со списками файлов и позволяющих в наглядном виде осуществить процедуры копирования и переноса файлов.
Кто Ваш пользователь и зачем ему нужна эта программа?
Даже из замечательной идеи программы не получится, если такая программа никому не нужна. Отбросим экзотический случай «программирования для души» (программист, прежде всего профессионал!). Во всех остальных случаях программа пишется, если она кому-то нужна.
Для кого предназначена программа, которую Вы собираетесь написать? Какие проблемы стоят перед ее будущим пользователем? Как Ваша программа поможет ему решить эти проблемы? От ответов на эти вопросы зависит дальнейшая постановка.
Если Ваш пользователь еще не имеет достаточного опыта применения компьютера в своей работе, интерфейс Вашей программы должен быть максимально ему понятный, система подсказок должна содержать подробные справки о выполнении всех операций. Модули ввода данных должны содержать специальные алгоритмы проверки вводимых данных. Система управления программой должна обеспечивать мощную «защиту от дурака5» и т.д.
Например. Ваша программа - база данных, рассчитанная на не очень квалифицированного пользователя. Название формы: «Введите поля данных» приведет его в замешательство. В этом случае Вам лучше сформулировать содержательный вопрос. Например: «Введите свою фамилию, имя и отчество».
Неквалифицированный пользователь может заполнять числовые поля буквами или другими символами. Поэтому в программе необходимо предусмотреть проверку типа данных. Если тип вводимых данных не соответствует требуемому, программа должна вежливо объяснить пользователю: в чем его ошибка и попросить ввести правильные данные.
Наконец, если в Вашей программе предусмотрены какие-то необратимые действия, например, стирание информации, программа должна предупредить о последствиях выполнения такого действия и попросить подтверждения на его исполнение. Еще лучше организовать «откат» - запомнить состояние перед действием и, при необходимости, вернуться к нему.
Если Ваш пользователь - узкий специалист и Ваша программа предназначена для решения специальных задач, терминология, используемая в интерфейсе программы,
5 В термине «защита от дурака» нет ничего обидного. Он появился в период Второй мировой войны. Снабжая армию США современным вооружением, специалисты столкнулись с проблемой. Плохо обученные солдаты ломали новую технику гораздо эффективнее, чем артиллерия противника. Для устранения этой беды были разработаны специальные методы, обеспечивающие сохранность техники при неверных действиях персонала.
должна быть взята из предметной области пользователя. Представление входных и выходных данных, а также хода решения задачи должны соответствовать нормам, принятым в данной предметной области.
Например. Вы разрабатываете программу по бухгалтерскому учету. Вам придется овладеть бухгалтерской терминологией. То, что программист воспринимает как последовательность операций со счетами, бухгалтер называет «проводкой» и именно так должна называться эта последовательность в Вашей программе.
В бухучете разработана специальная система документации, строго регламентирующая форму документов, последовательность полей и используемую терминологию. Бухгалтера привыкли к этим формам, а Закон требует их строгого соблюдения. Поэтому: входные и выходные формы Вашей программы должны строго соответствовать требованиям к документам. Терминологические справочники, используемые в программе должны содержать все разрешенные термины и только их.
Поиск программ-аналогов
В настоящее время в мире работают миллионы программистов. Задачи, которые они решают, очень часто схожи с Вашими задачами. Поэтому Вам стоит познакомится с программами, разработанными другими программистами для решения аналогичных задач.
Вполне может оказаться, что и для решения Вашей задачи уже есть готовая программа. Вы можете ей воспользоваться. Но для этого Вам нужно выполнить необходимые условия использования объектов чужой интеллектуальной собственности. Например, приобрести лицензию. Несмотря, на то, что лицензионное программное обеспечение стоит дорого, Вы можете сэкономить много сил и времени, отказавшись от разработки собственной программы.
Еще одним аргументом в пользу поиска готовых программ является уже имеющийся опыт их эксплуатации. Как бы не была продумана постановка Вашей программы, как бы тщательно Вы не обрабатывали в ней все сбойные варианты, жизнь оказывается богаче на сюрпризы, чем подсказывают Вам Ваше воображение и опыт. В программе, которая уже применялась на практике, как правило, уже учтены наиболее часто встречающиеся реальные ситуации, в том числе, приводящие к сбою или неверным вычислениям.
Часто бывает, что чужую программу можно использовать только частично, или после ее модификации. Если у Вас есть исходный текст программы, а вносимые изменения не существенны, Вам, наверное, стоит рискнуть и модифицировать чужую программу для своих нужд. Однако, если изменения существенны (например, затрагивают логику данных или вычислений) трудоемкость отладки таких изменений будет сопоставима, а часто и превышать трудоемкость написания и отладки собственной программы. В этом случае можно воспользоваться только отдельными программными модулями, для которых Вы хорошо представляете алгоритмы их работы и способ обмена данными.
Даже если Вы не нашли никаких программ, подходящих для решения Вашей задачи, время было потрачено не зря. Вы познакомились с новыми методами и программистскими приемами решения задач, схожих с Вашей. Вы убедились, что Ваша задача уникальная, однако в и ней можно использовать некоторые приемы, позаимствованные из других задач. Наконец, Вы повысили свой кругозор и программистскую культуру!
31
Поможем написать любую работу на аналогичную тему