Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Служба Рассылок Городского Кота


Служба Рассылок Городского Кота
ТЕХНОЛОГИИ СОЗДАНИЯ ПРОГРАММ
9-й выпуск
Очень рад вас видеть, даже немного соскучился !

СЛОВО ВЕДУЩЕМУ
Дела, дела... Как они много времени требуют, а ведь еще и рассылка. Извиняюсь за долгий перерыв, надеюсь вы меня поймете: ведь я занимаюсь рассылкой в свободное время.

Проголосовало всего 73 человека из 6700 ? Меня это удивило... Не ожидал. Голосование я не закрываю до следующего выпуска, так что очередь за вами. И еще, на сервере голосований имеется какая-то забавная ошибка: только один раздел "CASE" не считает голоса,

Спасибо тем, кто откликнулся на мой призыв поиска материалов для библиотеки, а также тем, кто собирается это сделать. Набралось около 15 Мб, они даже лежат уже на сервере... а вот времени на аннотацию не хватает. Постараюсь исправиться к следующей неделе.

Присылайте свои вопросы и ответы, советы, критику (давно ее не слышал - странно), мысли, тексты !

Как всегда смотрите вакансии в конце рассылки. Надеюсь помогут.

ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Как мной и обещалось сегодня будет рассмотрено нисходящее проектирование в более практическом аспекте.

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

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

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

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

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

Более подробно некоторые из этих предпосылок обсуждаются ниже.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ВОПРОСЫ ВЕДУЩЕГО
1. После прочтения теоретического материала о модульном программировании интересно было бы узнать от вас: чем отличается функция от модуля, да и отличается ли вообще ?

2. Стоит ли рассмотреть технологию HIPO ?

3. Один из читателей спросил меня, и мне стало очень интересно узнать ваше мнение. Почему в качестве IT -специалистов требуются в основном молодые люди (обычно до 30) ?

Жду ответов.

ОТВЕТЫ НА ВАШИ ВОПРОСЫ
!!!??? Как видите новых вопросов не прибавилось. Неужели ничто никого не интересует.

Вопрос: В случае проектирования многопользовательской системы, в которой, существует несколько ролей или наборов прав, для различных пользователей, возможно ли (а может быть и следует) вводить в качестве актор а (Actor) абстрактных пользователей системы? Или возм

Ответ: (прислал Андрей) Вопрос вообще достаточно запутан, но, видимо, состоит в том: следует ли включать внешние сущности в моделируемую систему. Однажды, много лет назад, человек создавший свою методологию проектирования (OOSE) Ивар Джекобсон ответил на этот вопрос. Да, конеч Согласно тому же Джекобсону, построение такой диаграммы -- первое, что следует делать при выполнении объектно-ориентированного анализа, именно по причине того, что это позволяет определить место системы среди всего внешнего, определить как функционал моде

Вопрос: Можно ли привести пример расчета трудозатрат на написание программы ? Ответ: Ответ есть ! Мне просто нужно время для его анализа и редактирования.

ССЫЛКИ
http://www.delfin.ru/misc/stas - Авторская страница читателя рассылки. Имеется неплохой материал по проектированию информационных систем.

http://www.cetus-links.org/oo_uml.html - Множество ссылок на материалы по объектно-ориентированому программированию и языку UML.

http://got2.mmtel.ru/net/gost/index.htm - ГОСТЫ на проектирование и разработку программного обеспечения

http://ekarat.chat.ru/ - Еще одна авторская страничка читателя рассылки. Есть немного интересных статей по математике и программированию, особенно мне запомнилась статья "Проектирование классов в шутку и в серьез". Советую почитать !

Присылайте свои ссылки.

СОТРУДНИЧЕСТВО
Жду от вас интересных писем, ссылок, материалов и ответов на ваши и мои вопросы.

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

"Программируем на Visual Basic" - рассылка посвящена практическим вопросам программирования на MVB.

"Секреты программирования в Delphi" - все или почти все о Delphi

"Новости библиотеки алгоритмов" - то, что иногда не хватает программистам - алгоритмов на все случаи жизни !

ПОИСК
- Ищется РЕКЛАМОДАТЕЛЬ. - Ищутся соавторы, авторы, практики и т.п. с целью оказания рассылке информационной поддержки.

ВАКАНСИИ (остальные доступны на сервере http://www.job.com.ru)
Требуется программист Возраст от 20 до 30 лет
Образование - высшее Заработная плата от 400 у.е./месяц
На постоянную работу, полный рабочий день
Город: Москва Персона для контакта: Алексей Яцкевич E-mail: apl_mail@mail.ru Дополнительная информация: Требуется программист с хорошим знанием Visual C++ и MFC. Желательно знание технологии COM/DCOM

Требуется программист на должность программист.
Возраст от 23 до 40 лет Образование - высшее Заработная плата от 500 у.е./месяц
На постоянную работу, полный рабочий день
Город: Москва E-mail: kadry@ecuran.ru Дополнительная информация: Oracle,Delphi, знание предметной области (бухучет, производство, сбыт)

Организации Moscow office of offshore software company требуется руководитель проекта на должность Software Project Manager.
Возраст от 25 до 35 лет Образование - высшее Заработная плата от 1500 у.е./месяц
На постоянную работу, полный рабочий день
Город: Москва E-mail: SwPrMan@hotmail.com Дополнительная информация: Responsibilities: - Project planning and team leading - Establishing production process, coordinating revisions, assigning resources - Communicating to top management and customers in Russia and abroad - Developing internal stan

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

    Образование - высшее На постоянную работу, полный рабочий день Город: Москва, РФ Персона для контакта: Соловьева Ольга Телефон: (095) 275-77-62 Факс: 275-77-62 E-mail: olga@corvus.ru Дополнительная информация: Основные требования: высшее образование (техническое + экономическое); знание предметной области (наличие систематизированных представлений о деятельности банков и Казначейства); опыт создания формализованных постановок задач и Требуется программист Возраст не имеет значения Образование - высшее Заработная плата от 250 у.е./месяц На постоянную работу, полный рабочий день Город: Москва Персона для контакта: Мусатов Константин Телефон: (095) 784-7986 E-mail: sbs@comail.ru Дополнительная информация: Опыт написания реальных приложений в VB и MS SQL Требуется программист на должность программист, начальник подотдела.
Возраст от 25 до 48 лет
    Образование - высшее Заработная плата от 500 у.е./месяц На постоянную работу, полный рабочий день Город: Москва Персона для контакта: Ремов Максим Телефон: 476-16-63 (вечером) Факс: 476-16-63 E-mail: maxremov@mail.ru Дополнительная информация: В крупную IT-компанию. На постоянную работу. Имеются возможности для роста. Опыт работы от 4-5 лет. Опыт самостоятельной разработки приложений в архитектуре клиент-сервер с использованием продуктов Centura (Team Developer, SQL w Требуется программист Возраст не имеет значения Образование - высшее На постоянную работу, полный рабочий день Город: Москва Персона для контакта: Князев Александр Телефон: (095) 158-28-93 E-mail: kn@infotecs.ru Дополнительная информация: ОАО <ИнфоТеКС> требуются программисты и руководители разработчиков. Для получения полной информации о фирме и условиях работы просьба обращаться на www.infotecs.ru. При обращении заполнить анкету, размещенную там же.


С уважением, Сергей (trbps@newmail.ru, trbps@ok.ru )
Архив рассылки доступен по адресу: http://trbps.newmail.ru


http://www.citycat.ru/
E-mail: citycat@citycat.ru

В избранное