Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура программного обеспечения.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
167.79 Кб
Скачать

1995-1998 Годы

В 1995-м начался настоящий бум программной архитектуры. События ускорились за счет многочисленных «вкладов» отраслевой и академической науки. Заметными явлениями стали метод анализа программной архитектуры SAAM (Software Architecture Analysis Method — первый из серии методов, предложенных SEI [14]), подходы на базе нескольких представлений (такие как модель представления «4+1» компании Rational [15] и четыре представления Siemens [16]), а также специальные шаблоны для разработки программной архитектуры [17]. Корпорации Siemens [18], Nokia [19], Philips [20], Nortel, Lockheed Martin, IBM и другие крупные разработчики программного обеспечения (преимущественно для областей сложных систем, авиации, космонавтики и телекоммуникаций) начали уделять внимание программной архитектуре. Они кооперировались в рамках исследований архитектуры продуктовых линеек программных продуктов [21]. Еще одна книга Речтина и Марка Майера [22] удачно заполнила брешь между оборудованием и программным обеспечением.

1999-2005 Годы

В 1999 году состоялась первая конференция по программной архитектуре [23], были основаны рабочая группа IFIP Working Group 2.10 и институт Worldwide Institute of Software Architects. Множество специалистов энергично принялись за разработку передовых методов [24-27]. В надежде повысить практическую ценность описания архитектуры группа Open Group на базе XML создала язык Architecture Description Markup Language, который обеспечил совместное использование архитектурных моделей. Объединенные усилия сообществ сторонников многократного использования кода привели к появлению специальных продуктовых линеек и методов, которые привлекли внимание крупных промышленных компаний. Так, например, появились и сформировались методы SAAM, BAPO и ATAM [14, 28, 29], а к уже имевшемуся общему стандарту архитектуры RM-ODP [30, 31] добавился IEEE 1471 [1]. Одновременно в SEI продолжали выпускать книгу за книгой [29, 32-34].

Cегодня

В крупных компаниях наподобие Microsoft есть собственные главные архитекторы, причем наблюдается некоторое превосходство программного архитектора над разработчиком. Первый решает очень разные вопросы, несмотря на призыв Мэри Шоу не называть архитектурой все, что попадается на глаза. Появилось немало выразительных языков описания архитектуры ADL, но на практике используются лишь немногие из них. Исключением, пожалуй, являются Koala [35] и UML (если воспринимать его как ADL, но многие пуристы считают иначе).

Для некоторых предметных областей имеются готовые архитектуры в виде платформ — например, J2EE, .Net, Symbian/Series 60 и Websphere. Стандарты обмена данными на уровне приложений, такие как XML и SOAP, оказали на них значительное влияние. Языки сценариев, скажем Python и Perl, изменили привычные способы конструирования систем. Архитекторы больше не могут начинать «с чистого листа»: они строят системы на основе своих представлений о возможностях этих платформ. Программное обеспечение с открытым кодом также сильно влияет на архитектурную практику.

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

Литература

  1. IEEE 1471:2000. Recommended Practice for Architectural Description of Software-Intensive Systems. IEEE Press, 2000.

  2. F. Brooks, The Mythical Man-Month. Addison-Wesley, 1975.

  3. B. Lampson, Hints for Computer System Design. Operating Systems Rev., 1983, vol. 15, no. 5.

  4. D. Parnas, On the Criteria to Be Used in Decomposing Systems into Modules. Comm. ACM, 1972, vol. 15, no. 12.

  5. D. Parnas, On the Design and Development of Program Families. IEEE Trans. Software Eng., 1976, vol. 2, no. 1.

  6. D. Parnas, P. Clements, A Rational Design Process: How and Why to Fake It. IEEE Trans. Software Eng., 1986, vol. 12, no. 2.

  7. D. Parnas, P. Clements, D. Weiss, The Modular Structure of Complex Systems. IEEE Trans. Software Eng., 1985, vol. 11, no. 3.

  8. J. Mills, A Pragmatic View of the System Architect. Comm. ACM., 1985, vol. 28, no. 7.

  9. W.E. Royce, W. Royce, Software Architecture: Integrating Process and Technology. TRW Quest., 1991, vol. 14, no. 1.

  10. E. Rechtin, Systems Architecting: Creating and Building Complex Systems. Prentice Hall, 1991.

  11. P. Kruchten, Un Processus de Developpement de Logiciel Iteratif et Centre sur l?Architecture [An Iterative Software Development Process Centered on Architecture]. Proc. 4?eme Congres de Genie Logiciel, EC2, 1991.

  12. D. Perry, A. Wolf, Foundations for the Study of Software Architecture. ACM Software Eng. Notes., 1992, vol. 17, no. 4.

  13. B. Witt, F. Baker, E. Merritt, Software Architecture and Design: Principles, Models and Methods. Van Nostrand Reinhold, 1994.

  14. R. Kazman et al, SAAM: A Method for Analyzing the Properties of Software Architectures. Proc. 16th Int?l Conf. Software Eng. (ICSE 94), IEEE CS Press, 1994.

  15. P. Kruchten, The 4+1 View Model of Architecture. IEEE Software, 1995, vol. 12, no. 6.

  16. D. Soni, R. Nord, С Hofmeister, Software Architecture in Industrial Applications. Proc. 17th Int?l Conf. Software Eng. (ICSE-17), ACM Press, 1995.

  17. E Buschmann et al, Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons, 1996.

  18. C. Hofmeister, R. Nord, D. Soni, Applied Software Architecture. Addison-Wesley, 1999.

  19. A. Ran, ARES Conceptual Framework for Software Architecture. Software Architecture for Product Families: Principles and Practice, M. Jazayeri, A. Ran and E van der Linden, eds., Addison-Wesley, 2000.

  20. J. Miiller, Integrating Architectural Design into the Development Process. Proc. 1995 Int?l Symp. and Workshop Systems Eng. of Computer-Based Systems, IEEE Press, 1995.

  21. I. Jacobson, K. Palmkvist, S. Dyrhage, Systems of Interconnected Systems. Report on Object-Oriented Analysis and Design (ROAD), May-June 1995, vol. 2, no. 1.

  22. E. Rechtin, M. Maier, The Art of Systems Architecting. CRC Books, 1997.

  23. P. Donohue, ed. Software Architecture-1st IFIP Conf. Software Architecture (Wicsa 1).— Kluwer Academic Publishers.— 1999.

  24. R.C. Malveau and T.J. Mowbray. Software Architect Bootcamp, 2nd ed., Prentice Hall, 2000.

  25. D.M. Dikel, D. Kane and J.R. Wilson. Software Architecture: Organizational Principles and Patterns.— Prentice Hall.— 2001.

  26. H. Obbink et al., Report on Software Architecture Review and Assessment(SARA). V1.0, Feb. 2002.

  27. P. Kruchten, The Rational Unified Process-An Introduction, Addison-Wesley, 1998.

  28. H. Obbink et al, COPA: A Component-Oriented Platform Architecting Method for Families of Software-Intensive Electronic Products (Tutorial). Proc. 1st Software Product Line Conf. (SPLC1), 2000.

  29. P. Clements, R. Kazman, M. Klein, Evaluating Software Architecture. Addison-Wesley, 2002.

  30. ISO/IEC 10746:1995, Reference Model of Open Distributed Processing (RM-ODP). ITU Rec. X901, 1995.

  31. J. Putman, Architecting with RM-ODP. Prentice Hall, 2000.

  32. L. Bass, P. Clements, R. Kazman, Software Architecture in Practice. Addison-Wesley, 1998.

  33. P. Clements et al., Documenting Software Architectures: Views and Beyond, Addison-Wesley, 2002.

  34. P. Clements, L. Northrop, Software Product Lines: Practice and Patterns. Addison-Wesley, 2002.

  35. R. van Ommering et al., The Koala Component Model for Consumer Electronics. IEEE Trans. Computers, 2000, vol. 33, no. 3.

  36. M. Shaw, The Coming-of-Age of Software Architecture Research. Proc. 23rd Int?l Conf. Software Eng. (ICSE 01), IEEE CS Press, 2001.

  37. B. Selic, The Pragmatics of Model-Driven Development. IEEE Software, 2004, vol. 20, no. 5.

  38. R. Soley, Model-Driven Architecture. Object Management Group, 2000.

  39. J. Bosch, Software Architecture: The Next Step, Proc. 1st European Workshop Software Architecture (EWSA 04), Springer, 2004.

Филипп Крачтен (kruchten@ieee.org)— профессор Университета Британской Колумбии, Хенк Оббинк (henk.obbink@philips.com)— ведущий научный сотрудник лаборатории Philips Research Laboratories в Эйндховене, Джудит Стаффорд(jas@cs.tufts.edu)— приглашенный исследователь в Институте программной инженерии Университета Карнеги—Меллона. 

Philippe Kruchten, Henk Obbink, Judith Stafford. The Past, Present, and Future for Software Architecture. IEEE Software, March/April 2006. IEEE Computer Society, 2006, All rights reserved. Reprinted with permission.

Библиотека по программной архитектуре

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