Главная » Просмотр файлов » Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)

Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033), страница 171

Файл №1004033 Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)) 171 страницаБьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033) страница 1712018-10-07СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 171)

Изложение фокусируется на методах проектирования и эффективной реализации проекта в терминах языковых конструкций. Главы 23. Обший взгляд на разработку программ. Проектирование 24. Проектирование и программирование 25. Роли классов «Я только сейчас начинаю испытывать всю сложность реализации идей на бумаге. По- ка речь идет об описании чего-либо, все просто; но как только в игру вступают рассу- ждения, так сразу взаимосвязи, ясность и беглость изложения становятся для меня весьма нелегкой задачей, о чем ранее я и понятия не имел. — Чарльз Дарвин Общий взгляд на разработку программ. Проектирование Не сущесгпеуеа серебряной пули.

— Ф. Брукс Разработка программного продукта — цели и средства — процесс разработки— цикл разработки — этапы проектирования — вьивление классов — определение операций — определение зависимостей — определение интерфейсов — реорганизация иерархии классов — модели — экспериментирование и анализ — тестирование — сопровождение программного продукта — эффективность руководство разработкой — повторное использование — масштаб — важность личностей — гибридное проектирование — аннотированная библиография— советы. 23.1.

Обзор Данная глава является первой из трех глав, посвященных процессу разработки программ, начиная с относительно высокоуровнего взгляда на проектирование и заканчивая специфическими для языка С++ концепциями и программными технологиями, призванными непосредственно поддержать проектные решения. После введения и короткого обсуждения целей и средств программирования в 523.3, настоящая глава сосредотачивается на двух главных темах, которые можно охарактеризовать как; ° э23.4 Общий взгляд на разработку программ.

° з23.5 Практические советы по поводу организации процесса разработки программ. В главе 24 обсуждается взаимосвязь проектирования и языка программирования. Глава 25 рассказывает о той роли, которую классы играют в организации программ на этапе проектирования. В целом эти три главы, составляющие часть ГЧ на- Глава 23. Общий взгляд на разработку программ. Проектирование 812 стоящей книги, призваны навести мосты между двумя крайними методиками: между высокоуровневым проектированием, мнящим себя независимым от деталей языка, и сугубо приземленным программированием, близоруко цепляющимся за мелкие детали языка.

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

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

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

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

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

Данная глава фокусируется на подходе к проектированию, при котором удается эффективно применить механизм абстракции данных и средства объектно-ориентированного программирования языка С++; такой подход часто называют обьеклгно-оряеняированным лроекгя ированием (об/есг-ог!ел ге!! без(ял). Несколько важнейших мыслей насквозь пронизывают данную главу: ° Самое важное в разработке программ — ясно понимать, что именно вы пытаетесь сделать.

° Успешный процесс разработки программного продукта — это длительный процесс. ° Разрабатываемые системы всегда эволюционируют в направлении предела сложности, который доступен нам самим и применяемым средствам разработки. ° Не существует готовых рецептов проектирования и программирования, которые могли бы заменить интеллект, опыт и вкус. ° Экспериментирование незаменимо для любого нетривиального программного проекта. ° Проектирование и программирование — итеративные процессы.

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

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

Кажется, что в самой природе людей заключается их стремление браться за задачи, находящиеся на последней грани их ресурсов. Менее амбициозные проекты слабо нуждаются в подробном рассмотрении вопросов проектирования. У них имеются 814 Глава 23. Общий взгляд на разработку программ. Проектирование свои привычные среды и приемы разработки, от которых не стоит отказываться.

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

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

Характеристики

Тип файла
DJVU-файл
Размер
8,84 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6472
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее