понедельник, 7 апреля 2014 г.

Прецеденты в Архитектуре информационных систем

Готовлюсь читать "Архитектуру информационных систем" в университете. Решил создать на  linkedin тему "Use Cases in Architecture of Information Systems".

Английский у меня так себе, сформулировал вопрос так. Чур не смеяться.

It so happend that I have to teach Architecture of Information Systems (ISA) for our students. I have read a lot of books and arcticles but all of them is devoted to software architecture but none to ISA. Then I mage conclusion SWA = ISA.
Thus UCs can be applied for development of architecture. Could you share how it do?Links, arcticles, books welcome!

Получил интересный ответ от John Watson

Let’s start with the idea that Use Case ovals in a Use Case diagram represent the functions of the SuD but do not represent components of the SuD. 
Now consider an Automatic Telling machine (ATM) system that has the actors Customer, Maintainer, and Bank. 
The ATM functions of interest (Use Cases) from the Customer viewpoint are Get Cash, Get Account Balance, and Transfer Funds. The Bank actor provides validation services in relation to the Customer functions. 
The ATM functions of interest from the Maintainer viewpoint are Replenish Consumables and Get Audit reports which both require Bank services as well. 
Both Customer and Maintainer use a Manage Access service of the ATM which also uses Bank services. 
The human actor roles are Customer and Maintainer. There is one non-human actor role; Bank. 
In order to allow human and ATM interaction, a Human Interface (HI) software component is required. The HI component provides, via interfaces, services like readKeyboard, writeToScreen, issueCash, printOutput. 
In order to allow machine and ATM interaction, a System Interface (SI) software component is required. The SI component, via interfaces, provides services like validateAccessCredentials, validateTransaction. 
The Use Case Manage Access is realised via a Security Services (Sec) component which, via interfaces, provides services like logOn, logoff. The Customer Transaction Handler via interfaces provides services like getCash, getBalance, transferFunds. 
The Maintenance Transaction Handler via interfaces provides services like replenishConsumables and getAuditReports. 
I would use a Component Diagram to illustrate the above architecture. The components would be related via Required Interface “cups” and Supplied Interface “ball” relationships. 
The Component Diagram would be supported by a Class Diagram and perhaps a Package Diagram. To make the transition from Class to both Package and Component Diagrams I would probably produce Sequence Diagrams.

Коллега заметил:

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

Я все-таки решил визуализировать то, что описал уважаемый John Watson. 

Now consider an Automatic Telling machine (ATM) system that has the actors Customer, Maintainer, and Bank. 

The ATM functions of interest (Use Cases) from the Customer viewpoint are Get Cash, Get Account Balance, and Transfer Funds. The Bank actor provides validation services in relation to the Customer functions. 

The ATM functions of interest from the Maintainer viewpoint are Replenish Consumables and Get Audit reports which both require Bank services as well. 

Both Customer and Maintainer use a Manage Access service of the ATM which also uses Bank services. 
fig 1
In order to allow human and ATM interaction, a Human Interface (HI) software component is required. The HI component provides, via interfaces, services like readKeyboard, writeToScreen, issueCash, printOutput. 
In order to allow machine and ATM interaction, a System Interface (SI) software component is required. The SI component, via interfaces, provides services like validateAccessCredentials, validateTransaction.
The Use Case Manage Access is realised via a Security Services (Sec) component which, via interfaces, provides services like logOn, logoff. 
The Customer Transaction Handler via interfaces provides services like getCash, getBalance, transferFunds. 
The Maintenance Transaction Handler via interfaces provides services like replenishConsumables and getAuditReports. 
fig 2