Главная страница
Навигация по странице:

  • Общие вопросы разработки ПО

  • Другие аннотированные библиографии

  • 35.3. Периодические издания Журналы для начинающих программистов

  • Журналы для продвинутых программистов

  • Специализированные публикации Часть периодики более глубоко рассматривает специальные темы.Профессиональные издания

  • Популярные коммерческие издания

  • 35.4. Список литературы для разработчика ПО

  • Курс практической подготовки

  • Курс профессиональной подготовки

  • 35.5. Профессиональные ассоциации

  • Библиография Библиография

  • Руководство по стилю программирования и конструированию по


    Скачать 7.6 Mb.
    НазваниеРуководство по стилю программирования и конструированию по
    Дата18.05.2023
    Размер7.6 Mb.
    Формат файлаpdf
    Имя файлаCode_Complete.pdf
    ТипРуководство
    #1139697
    страница100 из 104
    1   ...   96   97   98   99   100   101   102   103   104
    ГЛАВА 35 Где искать дополнительную информацию
    837
    И, наконец, превосходный обзор проблем разработки ПО сделан в «Software Crea- tivity» (Glass, 1995). Эту книгу следовало бы считать прорывом в отношении к программированию как к творчеству. Такую же роль сыграла книга «PeopleWare»
    в вопросах коллективной разработки. Гласс сопоставляет творчество и дисцип- лину, теорию и практику, эвристику и методологию, процесс и результат, а также многие другие противоположные и в то же время взаимосвязанные понятия из области ПО. Спустя годы после обсуждения этой книги со своими коллегами я понял, в чем ее противоречие. Дело в том, что Гласс — редактор, а не автор очер- ков, вошедших в книгу, и поэтому у некоторых читателей возникает ощущение незавершенности. Тем не менее я до сих пор требую от каждого разработчика моей компании прочесть ее. Книга не переиздается, ее трудно найти, но затраченные на поиск усилия не окажутся напрасными.
    Общие вопросы разработки ПО
    Каждый практикующий программист должен иметь руководства высокого уров- ня по вопросам разработки ПО. Такие книги скорее очерчивают общую картину методологии, а не отдельные, характерные детали этой картины. Они знакомят с эффективными методиками разработки и предлагают сжатые описания специаль- ных технических приемов. Сокращенные описания недостаточно подробны, чтобы обучаться этим приемам, но, с другой стороны, для этого понадобилась бы кни- га, содержащая несколько тысяч страниц. И все же полученная информация по- зволяет выбрать необходимые для дальнейшей работы технологии и научиться применять их в комплексе.
    Роджер С. Прэссман в книге «Software Engineering: A Practitioner’s Approach», 6-е изд. (Pressman, 2004) дает стройное толкование таким терминам, как требования,
    проектирование, качественная проверка данных и управление. На 900 страницах этой книги уделено мало внимания практике программирования, но это не явля- ется существенным недостатком, особенно если у вас есть книга по конструиро- ванию, подобная той, что вы читаете сейчас.
    Шестое издание книги Иэна Соммервилла «Software Engineering» (Sommerville, 2000)
    сопоставимо с книгой Прэссмана и также содержит прекрасный обзор процесса разработки ПО.
    Другие аннотированные библиографии
    Хорошие библиографии по вычислительной технике — ред- кость. Далее рассматриваются те, что заслуживают внимания.
    «ACM Computing Reviews» — специализированное издание
    Ассоциации по вычислительной технике (ACM), представляющие собой обзор книг,
    охватывающих все аспекты знаний о компьютерах и программировании. Разветв- ленная схема размещении материалов в этом издании позволяет без труда найти книги по интересующим темам. Для получения информации об этой публикации и о членстве в ACM пишите по адресу: ACM, PO Box 12114, Church Street Station, New
    York, NY 10257.
    Информация компании Construx Software о технологиях обу- чения и повышения профессионального уровня содержит- http://cc2e.com/3502
    http://cc2e.com/3509

    838
    ЧАСТЬ VII Мастерство программирования ся на сайте
    www.construx.com/ladder/. Здесь представлены списки источников, ре- комендованные для разработчиков, тестировщиков и руководителей в области ПО.
    35.3. Периодические издания
    Журналы для начинающих программистов
    Журналы этого уровня часто продаются в газетных киосках.
    «Software Development»,
    www.sdmagazine.com. Этот журнал освещает общие вопросы программирования, а не пробле- мы использования конкретных сред. Статьи довольно хо- рошо написаны; журнал содержит обзор новых продуктов.
    «Dr. Dobb’s Journal»,
    www.ddj.com. Этот журнал ориентиро- ван на активных программистов. Его статьи тяготеют к де- тализации материала и содержат огромное количество кода.
    Если не удается найти эти журналы в киоске, издатели могут прислать вам поощ- рительный экземпляр, а большинство статей доступно в сети.
    Журналы для продвинутых программистов
    Как правило, в киосках этих изданий не найти. Вам нужно обратиться в крупную университетскую библиотеку или подписаться на них.
    «IEEE Software»,
    www.computer.org/software/. В этом журнале,
    выходящем раз в два месяца, обсуждаются вопросы кон- струирования и проектирования ПО, выработки требований и управления, а также другие темы передовых технологий создания ПО. Его цель
    — «создать организацию, объединяющую ведущих специалистов в области ПО».
    В 1993 году я писал, что это «самый полезный журнал, на который может подпи- саться программист». Позже мне довелось занимать в нем пост главного редакто- ра, и я по-прежнему убежден, что это лучшее периодическое издание, предназна- ченное для серьезной практической деятельности.
    «IEEE Computer»,
    www.computer.org/computer/. Этот ежемесяч- ный журнал является лидером публикаций компьютерной ассоциации IEEE (Института инженеров по электротехни- ке и электронике). Он охватывает широкий круг вопросов по вычислительной технике, использует жесткие критерии при отборе статей, обеспечивая высокое качество публикуемых материалов. Так как интересы издания довольно обшир- ны, в нем вы, пожалуй, найдете меньше полезных статей, чем в «IEEE Software».
    «Communications of the ACM»,
    www.acm.org/cacm/. Это одно из старейших и наиболее уважаемых компьютерных изда- ний имеет огромные полномочия, позволяющие расширять границы такого предмета, как компьютерология, который сегодня включает в себя значительно больше терминов и определений, чем несколько лет назад. Как и в случае с «IEEE Computer», диапазон вопросов издания довольно широк, и темы многих статей, возможно, не отвечают вашим интересам. Журнал отличает дух академизма, что имеет как хорошую, так и плохую стороны. К плохой следует http://cc2e.com/3516
    http://cc2e.com/3523
    http://cc2e.com/3530
    http://cc2e.com/3537
    http://cc2e.com/3544

    ГЛАВА 35 Где искать дополнительную информацию
    839
    отнести путаный, сложный для восприятия стиль некоторых авторов. Хорошая проявляется в том, что он содержит наиболее передовую информацию, которая не попадет с годами в низкопробные издания.
    Специализированные публикации
    Часть периодики более глубоко рассматривает специальные темы.
    Профессиональные издания
    Компьютерная ассоциация IEEE выпускает специализирован- ные журналы по следующим вопросам: проектирование ПО,
    безопасность и защита информации, компьютерная графи- ка и анимация, Интернет-технологии, мультимедиа, интеллектуальные системы,
    история вычислительной техники и др. Подробнее см. по адресу
    www.computer.org.
    ACM также публикует специальные выпуски по таким раз- делам, как искусственный интеллект, взаимодействие чело- века и компьютера, базы данных, встроенные системы, гра- фика, языки программирования, ПО для математических задач, построение сетей,
    проектирование ПО и др. Подробнее см. по адресу
    www.acm.org.
    Популярные коммерческие издания
    Темы следующих журналов следуют из названий.
    «The C/C++ Users Journal»,
    www.cuj.com.
    «Java Developer’s Journal»,
    www.sys-con.com/java/.
    «Embedded Systems Programming»,
    www.embedded.com.
    «Linux Journal»,
    www.linuxjournal.com.
    «Unix Review»,
    www.unixreview.com.
    «Windows Developer’s Network»,
    www.wd-mag.com.
    35.4. Список литературы для разработчика ПО
    В этом разделе предлагается план чтения, позволяющий разработчику ПО стать полноценным специалистом в моей компании, Construx Software. Этот план является предмет- ным базовым курсом и рассчитан на тех, кто уже работает в области ПО и желает уделить особое внимание теме разработки. Наше методическое пособие дает воз- можность перестраивать базовую программу с учетом индивидуальных интере- сов. В рамках программы Construx предусматривается также повышение квали- фикации и обмен опытом работы по конкретным вопросам.
    Вводный курс
    Чтобы пройти «начальный» уровень по методике Construx, необходимо прочесть следующие книги.
    Adams, James L.
    Conceptual Blockbusting: A Guide to Better Ideas, 4th ed. Cambridge,
    MA: Perseus Publishing, 2001.
    http://cc2e.com/3551
    http://cc2e.com/3558
    http://cc2e.com/3565
    http://cc2e.com/3507

    840
    ЧАСТЬ VII Мастерство программирования
    Bentley, Jon.
    Programming Pearls, 2d ed. Reading, MA: Addison-Wesley, 2000.
    Glass, Robert L.
    Facts and Fallacies of Software Engineering. Boston, MA: Addison-Wesley,
    2003.
    McConnell, Steve.
    Software Project Survival Guide. Redmond, WA: Microsoft Press, 1998.
    McConnell, Steve.
    Code Complete, 2d ed. Redmond, WA: Microsoft Press, 2004.
    Курс практической подготовки
    Далее предлагаются дополнительные источники, которые должен освоить програм- мист, чтобы соответствовать «промежуточному» уровню в Construx.
    Berczuk, Stephen P. and Brad Appleton.
    Software Configuration Management Patterns:
    Effective Teamwork, Practical Integration. Boston, MA: Addison-Wesley, 2003.
    Fowler, Martin.
    UML Distilled: A Brief Guide to the Standard Object Modeling Language,
    3d ed. Boston, MA: Addison-Wesley, 2003.
    Glass, Robert L.
    Software Creativity. Reading, MA: Addison-Wesley, 1995.
    Kaner, Cem, Jack Falk, Hung Q. Nguyen
    Testing Computer Software, 2d ed. New York,
    NY: John Wiley & Sons, 1999.
    Larman, Craig.
    Applying UML and Patterns: An Introduction to Object-Oriented Analysis
    and Design and the Unified Process, 2d ed. Englewood Cliffs, NJ: Prentice Hall, 2001.
    McConnell, Steve.
    Rapid Development. Redmond, WA: Microsoft Press, 1996.
    Wiegers, Karl.
    Software Requirements, 2d ed. Redmond, WA: Microsoft Press, 2003.
    Manager’s Handbook for Software Development, NASA Goddard
    Space Flight Center. Получить информацию можно по адре- су
    sel.gsfc.nasa.gov/website/documents/online-doc.htm.
    Курс профессиональной подготовки
    Изучив следующую литературу, разработчик ПО добьется полного профессиональ- ного соответствия в Construx («уровень лидера»). К каждому разработчику предъяв- ляются отдельные дополнительные требования, здесь перечислены лишь общие для всех требования.
    Bass, Len, Paul Clements, and Rick Kazman.
    Software Architecture in Practice, 2d ed. Boston,
    MA: Addison-Wesley, 2003.
    Fowler, Martin.
    Refactoring: Improving the Design of Existing Code. Reading, MA: Add- ison-Wesley, 1999.
    Gamma, Erich, et al.
    Design Patterns. Reading, MA: Addison-Wesley, 1995.
    Gilb, Tom.
    Principles of Software Engineering Management. Wokingham, England: Add- ison-Wesley, 1988.
    Maguire, Steve.
    Writing Solid Code. Redmond, WA: Microsoft Press, 1993.
    Meyer, Bertrand.
    Object-Oriented Software Construction, 2d ed. New York, NY: Prentice
    Hall PTR, 1997.
    Software Measurement Guidebook, NASA Goddard Space Flight
    Center. Информация доступна по адресу:
    sel.gsfc.nasa.gov/
    website/documents/online-doc.htm.
    http://cc2e.com/3514
    http://cc2e.com/3521

    ГЛАВА 35 Где искать дополнительную информацию
    841
    Наш сайт
    www.construx.com/professionaldev/ подробно зна- комит с программой повышения профессионального уровня и содержит обновленный список литературы.
    35.5. Профессиональные ассоциации
    Общение с другими программистами, работающими в той же области, что и вы, — один из лучших способов узнать о программировании больше. Региональные группы пользо- вателей конкретных аппаратных средств и языков программирования — один из видов сообществ. К другим относятся национальные и международные организа- ции. Компьютерная ассоциация IEEE — наиболее профессионально-ориентиро- ванная организация, выпускающая журналы «IEEE Computer» и «IEEE Software». Ин- формацию о членстве в IEEE смотрите на сайте
    www.computer.org.
    ACM была первой профессиональной организацией. Она издает журнал «Communications of the ACM», многие другие специализированные журналы и в сравнении с IEEE боль- ше внимания уделяет теории. Информацию о членстве в ACM см. на сайте
    www.acm.org.
    http://cc2e.com/3528
    http://cc2e.com/3535
    http://cc2e.com/3542

    842
    Библиография
    Библиография
    «A C Coding Standard.» 1991.
    Unix Review 9, no. 9 (September): 42–43.
    Abdel-Hamid, Tarek K. 1989. «The Dynamics of Software Project Staffing: A System Dynamics
    Based Simulation Approach.»
    IEEE Transactions on Software Engineering SE-15, no. 2 (February):
    109–19.
    Abran, Alain, et al. 2001. Swebok: Guide to the Software Engineering Body of Knowledge: Trial
    Version 1.00-May 2001. Los Alamitos, CA: IEEE Computer Society Press.
    Abrash, Michael. 1992. «Flooring It: The Optimization Challenge.»
    PC Techniques 2, no. 6 (February/
    March): 82–88.
    Ackerman, A. Frank, Lynne S. Buchwald, and Frank H. Lewski. 1989. «Software Inspections: An
    Effective Verification Process.»
    IEEE Software, May/June 1989, 31–36.
    Adams, James L. 2001.
    Conceptual Blockbusting: A Guide to Better Ideas, 4th ed. Cambridge, MA:
    Perseus Publishing.
    Aho, Alfred V., Brian W. Kernighan, and Peter J. Weinberg. 1977.
    The AWK Programming Language.
    Reading, MA: Addison-Wesley.
    Aho, Alfred V., John E. Hopcroft, and Jeffrey D. Ullman. 1983.
    Data Structures and Algorithms.
    Reading, MA: Addison-Wesley.
    Albrecht, Allan J. 1979. «Measuring Application Development Productivity.» Proceedings of the
    Joint SHARE/GUIDE/IBM Application Development Symposium, October 1979: 83–92.
    Ambler, Scott. 2003.
    Agile Database Techniques. New York, NY: John Wiley & Sons.
    Anand, N. 1988. «Clarify Function!»
    ACM Sigplan Notices 23, no. 6 (June): 69–79.
    Aristotle.
    The Ethics of Aristotle: The Nicomachean Ethics. Trans. by J.A.K. Thomson. Rev. by Hugh
    Tredennick. Harmondsworth, Middlesex, England: Penguin, 1976.
    Armenise, Pasquale. 1989. «A Structured Approach to Program Optimization.»
    IEEE Transactions
    on Software Engineering SE-15, no. 2 (February): 101–8.
    Arnold, Ken, James Gosling, and David Holmes. 2000.
    The Java Programming Language, 3d ed.
    Boston, MA: Addison-Wesley.
    Arthur, Lowell J. 1988.
    Software Evolution: The Software Maintenance Challenge. New York, NY:
    John Wiley & Sons.
    Augustine, N. R. 1979. «Augustine’s Laws and Major System Development Programs.»
    Defense Systems
    Management Review: 50–76.
    Babich, W. 1986.
    Software Configuration Management. Reading, MA: Addison-Wesley.
    Bachman, Charles W. 1973. «The Programmer as Navigator.» Turing Award Lecture.
    Communications
    of the ACM 16, no. 11 (November): 653.
    Baecker, Ronald M., and Aaron Marcus. 1990.
    Human Factors and Typography for More Readable
    Programs. Reading, MA: Addison-Wesley.
    Bairdain, E. F. 1964. «Research Studies of Programmers and Programming.» Unpublished studies reported in Boehm 1981.

    Библиография
    843
    Baker, F. Terry, and Harlan D. Mills. 1973. «Chief Programmer Teams.»
    Datamation 19, no. 12
    (December): 58–61.
    Barbour, Ian G. 1966.
    Issues in Science and Religion. New York, NY: Harper & Row.
    Barbour, Ian G. 1974. Myths, Models, and Paradigms: A Comparative Study in Science and Religion.
    New York, NY: Harper & Row.
    Barwell, Fred, et al. 2002.
    Professional VB.NET, 2d ed. Birmingham, UK: Wrox.
    Basili, V. R., and B. T. Perricone. 1984. «Software Errors and Complexity: An Empirical Investigation.»
    Communications of the ACM 27, no. 1 (January): 42–52.
    Basili, Victor R., and Albert J. Turner. 1975. «Iterative Enhancement: A Practical Technique for Software
    Development.»
    IEEE Transactions on Software Engineering SE-1, no. 4 (December): 390–96.
    Basili, Victor R., and David M. Weiss. 1984. «A Methodology for Collecting Valid Software Engi- neering Data.»
    IEEE Transactions on Software Engineering SE-10, no. 6 (November): 728–38.
    Basili, Victor R., and Richard W. Selby. 1987. «Comparing the Effectiveness of Software Testing
    Strategies.»
    IEEE Transactions on Software Engineering SE-13, no. 12 (December): 1278–96.
    Basili, Victor R., et al. 2002. «Lessons learned from 25 years of process improvement: The Rise and Fall of the NASA Software Engineering Laboratory,»
    Proceedings of the 24th International
    Conference on Software Engineering, Orlando, FL.
    Basili, Victor R., Richard W. Selby, and David H. Hutchens. 1986. «Experimentation in Software
    Engineering.»
    IEEE Transactions on Software Engineering SE-12, no. 7 (July): 733–43.
    Basili, Victor, L. Briand, and W.L. Melo. 1996. «A Validation of Object-Oriented Design Metrics as
    Quality Indicators,»
    IEEE Transactions on Software Engineering, October 1996, 751–761.
    Bass, Len, Paul Clements, and Rick Kazman. 2003.
    Software Architecture in Practice, 2d ed. Boston,
    MA: Addison-Wesley.
    Bastani, Farokh, and Sitharama Iyengar. 1987. «The Effect of Data Structures on the Logical
    Complexity of Programs.»
    Communications of the ACM 30, no. 3 (March): 250–59.
    Bays, Michael. 1999.
    Software Release Methodology. Englewood Cliffs, NJ: Prentice Hall.
    Beck, Kent. 2000.
    Extreme Programming Explained: Embrace Change. Reading, MA: Addison-Wesley.
    Beck, Kent. 2003.
    Test-Driven Development: By Example. Boston, MA: Addison-Wesley.
    Beck, Kent. 1991. «Think Like An Object.»
    Unix Review 9, no. 10 (October): 39–43.
    Beck, Leland L., and Thomas E. Perkins. 1983. «A Survey of Software Engineering Practice: Tools, Methods,
    and Results.»
    IEEE Transactions on Software Engineering SE-9, no. 5 (September): 541–61.
    Beizer, Boris. 1990.
    Software Testing Techniques, 2d ed. New York, NY: Van Nostrand Reinhold.
    Bentley, Jon, and Donald Knuth. 1986. «Literate Programming.»
    Communications of the ACM 29,
    no. 5 (May): 364–69.
    Bentley, Jon, Donald Knuth, and Doug McIlroy. 1986. «A Literate Program.»
    Communications of
    the ACM 29, no. 5 (May): 471–83.
    Bentley, Jon. 1982.
    Writing Efficient Programs. Englewood Cliffs, NJ: Prentice Hall.
    Bentley, Jon. 1988.
    More Programming Pearls: Confessions of a Coder. Reading, MA: Addison-Wesley.
    Bentley, Jon. 1991. «Software Exploratorium: Writing Efficient C Programs.»
    Unix Review 9, no. 8
    (August): 62–73.
    Bentley, Jon. 2000.
    Programming Pearls, 2d ed. Reading, MA: Addison-Wesley.
    Berczuk, Stephen P. and Brad Appleton. 2003. Software Configuration Management Patterns:
    Effective Teamwork, Practical Integration. Boston, MA: Addison-Wesley.
    Berry, R. E., and B. A. E. Meekings. 1985. «A Style Analysis of C Programs.»
    Communications of the
    ACM 28, no. 1 (January): 80–88.

    844
    1   ...   96   97   98   99   100   101   102   103   104


    написать администратору сайта