Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сокращения. В каком направлении движутся исследования программной архитектуры и их практические результаты?




Заключение

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

Когда Фреда Брукса однажды спросили, почему его книга «Мифический че­ловеко-месяц» стала хрестоматийной, он ответил в том духе, что книга на самом деле не о компьютерах, а о людях. С программной инженерией — то же самое. Дэйв Парнас очень удачно сформулировал различие между программированием и программной инженерией. По его мнению, для продуктов, которые разрабаты­вает один человек в единственной версии, программирования вполне достаточ­но. Однако если вы предполагаете, что с продуктом будут работать сторонние пользователи (или хотя бы хотите впоследствии дать ему самостоятельную оцен­ку), без программной инженерии не обойтись. Те же слова можно сказать и про архитектуру Если бы наши заботы ограничивались вычислением правильного ответа, хватило бы банальной монолитной архитектуры. Архитектура нужна для удовлетворения потребностей тех людей, которые будут работать с проектиру­емой системой, — она обеспечивает достаточную производительность, позволяет укладываться в рамки бюджета, достигать желаемых выгод, консолидировать коллектив разработчиков, упрощать задачи специалистов по сопровождению и, на­конец, растолковывать суть системы заинтересованным лицам.

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

ПРОГРАММНАЯ АРХИТЕКТУРА В ОБРАЗОВАНИИ

В этой главе мы обсудили техническую будущность программной архитектуры и изложили наши соображения по поводу ее дальнейшего развития. Но есть и другой вопрос — какое место займет изучение архитектуры в будущих образовательных программах в области про­граммной инженерии? Наблюдательный читатель, вероятно, заметил, что в написании этой книги участвовали три члена семейства Бассов. Я получил степень бакалавра математики в 1964 году, Таня стала бакалавром компьютерных наук в 1991-м, а Мэтт — в 2000-м. Из моего опыта и опыта членов моей семьи можно сделать некоторые выводы.

К моменту получения диплома я видел компьютер один раз в жизни (нас водили на экс­курсию лишь затем, чтобы его увидеть). Я абсолютно ничего не смыслил в программирова­нии и принципах работы компьютеров. Естественно, меня сразу взяли на работу программи­стом. Мир тогда был совсем другим.

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

Таня, получив диплом, уже знала несколько языков программирования, в том числе С; курс по С++ в ее время еще не читался, равно как и курсы по основам объектно-ориентиро­ванной технологии. Когда выпускником стал Мэтт, он тоже успел изучить несколько языков программирования, но уже других — в частности, С++ и Java. Кроме того, он имел представ­ление об объектно-ориентированном проектировании.

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

Получив образование, Мэтт освоил значительно больше элементов абстракции и проек­тирования, чем Таня, и эта тенденция, конечно, будет продолжаться. Таким образом, по мое­му мнению, к 2010 году курсы программной архитектуры на младших курсах станут совер­шенно обычным явлением, а в некоторых университетах на этом уровне будет предусмотрено сразу несколько дисциплин. Выпускников-специалистов в области программной архитекту­ры будет уже в достатке.

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

-LJB


AAS (Advanced Automation System) Комплексная система автоматизации — наименование запланированных мероприятий по сплошной реконст­рукции американской системы управления воздушным движением
ABC (Architecture Business Cycle) Архитектурно-экономический цикл
ABM (Atomic Broadcast Manager) Диспетчер элементарной трансляции
ADD (Attribute Driven Design method) Атрибутный метод проектирования
API (Application Programming Interface) Интерфейс прикладного програм­мирования
ASEILM (Automated SEI Licensee Management) Система автоматического уп­равления лицензиатами SEI
AST (Abstract Syntax Tree) Абстрактно-синтаксическое дерево
ATAM (Architecture Tradeoff Analysis Method) Метод анализа компромисс­ных архитектурных решений
ATC (Air Traffic Control) Управление воздушным движением
BCN (Backup Communications Network) Резервная сеть передачи данных
CBAM (Cost Benefit Analysis Method) Метод анализа стоимости и эффек­тивности
C&C (Component-and-Connector) Компонент и соединитель — класс про­екций
CDL (Chart Description Language) Язык описания схем
CERN (European Laboratory for Particle Physics) Европейская лаборатория ядерных исследований
CGI (Common Gateway Interface) Общий шлюзовой интерфейс
COCOMO (Constructive Cost Modeling) Конструктивное стоимостное модели­рование
COOB (Common Object Manager) Универсальный менеджер объектов
CORBA (Common Object Request Broker Architecture) Обобщенная архитек­тура построения брокеров объектных запросов
COSE (Common Operating System Environment) Общее операционное окру­жение

 

COTS (Commercial Off-the-Shelf) Коммерческий коробочный продукт - обо­значение программного обеспечения и компонентов, представленных на рынке в готовом виде
CPU (Central Processing Unit) Центральный процессор
CSC (Computer Software Components) Компоненты компьютерных программ
CSCI (Computer Software Configuration Item) Элемент конфигурации ком­пьютерных программ — компонент программного обеспечения
CSCW (Computer Supported Cooperative Work) Совместная работа на базе ЭВМ
C3 (Command, Control, and Communications) Командование, управление и связь
DAWG (Data Access Working Group) Рабочая группа по доступу к данным
DBMS (Database Management Systems) Система управления базами данных
DMZ (Demilitarized Zone) Демилитаризованная зона
DSRGM (Decision Support and Report Generation Manager) Диспетчер приня­тия решений и составления отчетов
ECS (Earth Core System) Центральная информационная система наблюде­ния за поверхностью Земли
EDARC (Enhanced Direct Access Radar Channel) Расширенный радиолокаци­онный канал прямого доступа в составе системы ISSS
EFC (EDARC Format Conversion) Программа преобразования форматов EDARC — приложение в составе элемента управления выводом дан­ных на экран
EIS (EDARC Interface Software) Интерфейсная программа EDARC — при­ложение в составе элемента «Общие системные службы»
EJB (EnterpriseJavaBeans) Система корпоративных JavaBeans, архитектур­ная спецификация Enterprise JavaBeans
EOS (Earth Observing System) Система наблюдения за поверхностью Земли
EOSDIS (Earth Observing System Data System Information System) Информа­ционная система наблюдения за поверхностью Земли
ESI (External System Interface) Внешний системный интерфейс
ESIP (ESI Processor) Процессор внешнего системного интерфейса
FAA (Federal Aviation Administration) Федеральное авиационное агентство США, заказчик системы ISSS
FAR (Federal Acquisition Regulations) Федеральные правила приобретений
FG (Functional Group) Функциональная группа — приложение, которое в составе системы ISSS не проявляет отказоустойчивость (то есть не является операционным блоком)
FIFO (First-In/First-Out) Первым пришел — первым обслужен
FTP (File Transfer Protocol) Протокол передачи файлов
GIOP (General Inter-ORB Protocol) Универсальный межброкерный протокол
GUI (Graphical User Interface) Графический пользовательский интерфейс

 

HCI (Human-Computer Interface) Человеко-машинный интерфейс
HCIS (Host Computer Interface Software) Интерфейсная программа базово­го компьютера — приложение в составе элемента «Общие системные службы» системы ISSS
HCS (Host Computer System) Базовый компьютер — центральная вычис­лительная машина системы управления воздушным движением
HTML (HyperText Markup Language) Язык разметки гипертекста
HTTP (HyperText Transfer Protocol) Протокол передачи гипертекста
HTTPS (HvperText Transfer Protocol Secure) Протокол защищенной передачи гипертекста
I/O (Input/Output) Ввод-вывод
IAPR (Interactive Architecture Pattern Recognition) Система интерактивно­го распознавания архитектурных образцов
IDE (Integrated Development Environment) Интегрированная среда разра­ботки
IDL (Interface Definition Language) Язык описания интерфейсов
IEEE (Institute of Electrical and Electronics Engineers) Институт инженеров по электротехнике и электронике
IIOP (Internet Inter-ORB Protocol) Межброкерный протокол Интернета
IMS (Inertial Measurement System) Инерциальная система измерений
IP (Internet Protocol) Интернет-протокол
ISO (International Organization for Standardization) Международная орга­низация по стандартизации
ISSS (Initial Sector Suite System) Основная система контроля секторов — система, которая, согласно первоначальным планам, должна была ус­танавливаться во всех транзитных центрах управления воздушным движением; соответствующий конкретный пример рассматривается в главе 6
ISV (Independent Software Vendor) Независимый поставщик программно­го обеспечения
IT (Information Technology) Информационная технология
JDBC (Java Database Connectivity) Java-интерфейс связи с базами данных
JMS (Java Messaging Service) Служба сообщений Java
JNDI (Java Naming and Directory Interfасе) Java-интерфейс именования и ка­талогов
JSP JavaServer Pages
J2EE (Java 2 Enterprise Edition) Корпоративная apxитектура Java 2
JTS (Java Transaction Service) Служба транзакций Java
JVM (Java Virtual Machine) Виртуальная машина Java
KSLOC (Kilos of Source Lines of Code)...тысяч строк исходного кода — стан­дартная единица измерения статического размера компьютерной про­граммы

 

KWIC (Keyword in Context) Ключевое слово в контексте
LAN (Local Area Network) Локальная сеть
LCN (Local Communications Network) (Основная) локальная сеть передачи данных
LGSM (Local/Group SMMM) локальная/групповая SMMM — приложение в составе элемента «Общие системные службы»
LIU (LCN Interface Unit) Интерфейсный блок локальной сети передачи данных
M&C (Monitor and Control) Мониторинг и управление — тип консоли в си­стеме ISSS
MIPS (Million Instructions per Second) Миллион команд в секунду
MODN (Noise Model) Шумовая модель
MODP (Prop Loss Model) Модель потери опоры
MODR (Reverb Model) Модель отражения
MRI (Magnetic Resonance Imaging) Отображение магнитного резонанса, MP- отображение
MVC (Model-View-Controller) Образец «модель-представление-контроллер»
NASA (National Aeronautics and Space Administration) Национальный коми­тет no аэронавтике и исследованиям космического пространства, НАСА
NASM (National Airspace System Modification) Модификация национальной воздушно-космической системы — один из элементов конфигурации системы ISSS
NAT (Network Address Translation) Трансляция сетевых адресов
NISL (Network Interface Sublayer) Подуровень сетевых интерфейсов
NIST (National Institute of Standards and Technology) Национальный инсти­тут стандартов и технологии
NNTP (Network News Transport Protocol) Сетевой протокол передачи ново­стей
NRL (Naval Research Laboratory) Научно-исследовательская лаборатория ВМС США
OLE (Object Linking and Embedding) Связывание и внедрение объектов
OLTM (OnLine Transaction Manager) Диспетчер оперативных транзакций
OMA (Object Management Architecture) Архитектура управления объектами
OMG (Object Management Group) Рабочая группа по объектному менедж­менту
ORB (Object Request Broker) Брокер объектных запросов
PAC (Presentation-Abstraction-Control) Образец «представление-абстрак- ция-управление»
PAS (Primary Address Space) Основное адресное пространство — копия при­ложения, которое фактически исполняет все функции ISSS; см. так­же SAS

 

PCTE (Portable Common Tools Environment) Переносимые универсальные инструменты
PDF (Portable Document Format) Формат портативных документов
PICS (Platform for Internet Content Selection) Платформа отбора информа­ции в Интернете
PMS (Prepare Messages) Подготовка сообщении — приложение в составе элемента «Общие системные службы» системы ISSS
RCS (Revision Control Svstem) Система управления пересмотром проект­ных решении
RISC (Reduced Instruction Set Chip) Микросхема с сокращенным набором команд
RMI (Remote Method Invocation) Удаленный вызов методов
ROOM (Real-Time Object-Oriented Modeling) Объектно-ориентированное моделирование в реальном времени
RPC (Remote Procedure Call) Удаленный вызов процедуры
RUP (Rational Unified Process) Рациональный унифицированный процесс
SAAM (Software Architecture Analysis Method) Метод анализа программной архитектуры
SAR (System Analysis And Recording) Анализ и регистрация операций си­стемы — функция системы ISSS, а также приложение в рамках функ­ций записи, анализа и воспроизведения
SAS (Standby (Secondary) Address Space) Резервное (вторичное) адресное пространство — резервная копия приложения в системе ISSS, заменя­ющее PAS в случае его отказа
SCR (Software Cost Reduction) Проект по снижению издержек производ­ства программного обеспечения систем ВМС США
SEI (Software Engineering Institute) Институт программной инженерии
SIMD (Single Instruction, Multiple Data) Архитектура с одним потоком ко­манд и множеством потоков данных
SLOC (Source Lines of Code)...строк исходного кода
SMMM (System Monitor And Mode Management) Программа системного мо­ниторинга и управления режимами
SQL (Structured Query Language) Язык структурированных запросов
SSL (Secure Sockets Layer) Протокол защищенных сокетов
TAFIM (Technical Architecture for Information Management) Техническая ар­хитектура управления информацией
TARGET (Theater-Level Analysis, Replanning and Graphical Execution Toolbox) Инструментальный комплекс анализа операций на театре военных действий, оперативного планирования и графического оформления
TCA (Terminal Control Area) Узловой диспетчерский район
TCP (Transmission Control Protocol) Протокол управления передачей

 

TCP/IP (Transmission Control Protocol/Internet Protocol) Протокол управле­ния передачей/Интернет-протокол
UDDI (Universal Description, Discovery, and Integration) Универсальная си­стема предметного описания и интеграции
UI (User Interface) Пользовательский интерфейс
UML (Unified Modeling Language) Унифицированный язык моделирования
URL (Uniform Resource Locator) Унифицированный указатель ресурса
VPN (Virtual Private Network) Виртуальная частная сеть
W3C (World Wide Web Consortium) Консорциум Всемирной паутины
WAIS (Wide Area Information Service) Глобальный информационный сервер
WAP (Wireless Application Protocol) Беспроводной прикладной протокол
WIMP (Window, Icon, Mouse, Pointer) Окна, пиктограммы, мышь, указатели (интерфейс)
WWW (World Wide Web) Всемирная паутина
XML (eXtensible Markup Language) Расширяемый язык разметки

[1] Модуль банка данных демонстрирует пример использования архитектурного образца классной доски (ем. главу 5 «Реализация качества»).

[2] Источник: приводится но изданию (Clements 02а) (адаитирошшпая версия).

[3] Эта упрощенная методика довольно часто применяется в ходе мозгового штурма.

[4] На анализ первого сценария всегда уходит больше всего времени — в некоторых случаях в три раза больше, чем в среднем.

[5] Джей Асунди (Jai Asundi) занимается преподавательской работой в Техасском университете (Даллас).

[6] И рамках данного конкретного примера мы покажем только сокращенный набор сценарной.

[7] Апиа Лиу (Anna Liu) — старший научный сотрудник и группе по программной архитектуре и тех­нологиям (Software Architecture and Technologies Group) при научно-промышленной исследова­тельской организации Содружества Наций (Commonwealth Scientific Industrial Research Organization, CS1RO) (Сидней, Австралия) и одновременно адъюнкт-профессор Сиднейского университета.

[8] Все перечисленные специалисты работают в корпорации Inmedius (Питтсбург, США).

[9] Бизнес-делегат выступает в роли фасада компонента — он обнаруживает его и предоставляет его функции остальным элементам приложения. Таким образом, бизнес-делегат должен знать, как об­наружить компонент, как к нему обратиться и как скрыть соответствующие детали от остального приложения. К примеру, если компонент реализован в виде EJB, бизнес-делегат выполняет преду­смотренные Java-интерфейсом именования и каталогов Gava Naming Directory Interface, JNDI) операции поиска и тем самым сужает удаленный (remote) интерфейс EJB. При этом факт реализа­ции данного компонента в виде EJB скрывается. Приложение не отвечает за управление жизнен­ным циклом компонента — эту функцию выполняют KoiiTetinepuJ2EE. С другой стороны, в связи с делегированием перед приложением стоит задача выбора коммонента(ов). Кроме того, в приложе­нии присутствует логика, регулирующая взаимодействие и взаимоотношения между компонента­ми. Она очевидным образом принадлежит приложению. При условии следования этому правилу реализация компонентов упрощается, а их взаимозависимость уменьшается.

[10] Роберт С. Сикорд (Robert С. Seacord) — старший научный сотрудник Института программной инженерии; Мэтью Басс (Matthew Bass) — младший научный сотрудник того же учреждения.




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 420; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.