Вот тут - http://18delphi.blogspot.com/2013/04/uml_19.html была "вода" про UML и "микросхемы".
Теперь приведу иллюстрацию из самого, что ни на есть реального проекта.
Диаграмма:
<<VCMApplication>> - приложение
<<VCMUseCaseRealization>> - и есть те самые "микросхемы", точнее - БИС.
Приложение КОНСТРУИРУЕТСЯ из разработанных ранее МОДУЛЕЙ.
Теперь код, который из этого ГЕНЕРИРУЕТСЯ:
Теперь приведу иллюстрацию из самого, что ни на есть реального проекта.
Диаграмма:
<<VCMApplication>> - приложение
<<VCMUseCaseRealization>> - и есть те самые "микросхемы", точнее - БИС.
Приложение КОНСТРУИРУЕТСЯ из разработанных ранее МОДУЛЕЙ.
Теперь код, который из этого ГЕНЕРИРУЕТСЯ:
unit NemesisRes; interface uses ... ; type TNemesisRes = {final} class(TPrimNemesisRes) {* [$90440042] } protected procedure RegisterFormSetFactories; override; class procedure RegisterModules(aMain: TvcmMainForm); override; ... end;//TNemesisRes implementation uses moCompareEditions, moInternetAgent, moFolders, moChat, moWorkJournal, moMonitorings, moCommon, moDocument, moList, moDiction, moTips, moInpharm, moRubricator, moSettings, moMainMenu, moConsultations, moBaseSearch, moFilters, moUnderControl, moDocumentListFromFile, moChangesBetweenEditions, moSearch, moAAC, ... fsCompareEditions, fsInternetAgent, fsFolders, fsAutoreferat, fsAutoreferatAfterSearch, fsDocument, fsDocumentWithFlash, fsList, fsDiction, fsTips, fsMedicDiction, fsMedicFirmDocument, fsDrugDocument, fsDrugList, fsMedicFirmList, fsSimpleMainMenu, fsSendConsultation, fsConsultation, fsViewChangedFragments, fsSituationSearch, fsSituationFilter, fsAACContents, fsAAC ; // start class TNemesisRes procedure TNemesisRes.RegisterFormSetFactories; begin inherited; RegisterFormSetFactory(Tfs_CompareEditions); RegisterFormSetFactory(Tfs_InternetAgent); RegisterFormSetFactory(Tfs_Folders); RegisterFormSetFactory(Tfs_Autoreferat); RegisterFormSetFactory(Tfs_AutoreferatAfterSearch); RegisterFormSetFactory(Tfs_Document); RegisterFormSetFactory(Tfs_DocumentWithFlash); RegisterFormSetFactory(Tfs_List); RegisterFormSetFactory(Tfs_Diction); RegisterFormSetFactory(Tfs_Tips); RegisterFormSetFactory(Tfs_MedicDiction); RegisterFormSetFactory(Tfs_MedicFirmDocument); RegisterFormSetFactory(Tfs_DrugDocument); RegisterFormSetFactory(Tfs_DrugList); RegisterFormSetFactory(Tfs_MedicFirmList); RegisterFormSetFactory(Tfs_SimpleMainMenu); RegisterFormSetFactory(Tfs_SendConsultation); RegisterFormSetFactory(Tfs_Consultation); RegisterFormSetFactory(Tfs_ViewChangedFragments); RegisterFormSetFactory(Tfs_SituationSearch); RegisterFormSetFactory(Tfs_SituationFilter); RegisterFormSetFactory(Tfs_AACContents); RegisterFormSetFactory(Tfs_AAC); end; class procedure TNemesisRes.RegisterModules(aMain: TvcmMainForm); begin inherited; aMain.RegisterModule(Tmo_CompareEditions); aMain.RegisterModule(Tmo_InternetAgent); aMain.RegisterModule(Tmo_Folders); aMain.RegisterModule(Tmo_Chat); aMain.RegisterModule(Tmo_WorkJournal); aMain.RegisterModule(Tmo_Monitorings); aMain.RegisterModule(Tmo_Common); aMain.RegisterModule(Tmo_Document); aMain.RegisterModule(Tmo_List); aMain.RegisterModule(Tmo_Diction); aMain.RegisterModule(Tmo_Tips); aMain.RegisterModule(Tmo_Inpharm); aMain.RegisterModule(Tmo_Rubricator); aMain.RegisterModule(Tmo_Settings); aMain.RegisterModule(Tmo_MainMenu); aMain.RegisterModule(Tmo_Consultations); aMain.RegisterModule(Tmo_BaseSearch); aMain.RegisterModule(Tmo_Filters); aMain.RegisterModule(Tmo_UnderControl); aMain.RegisterModule(Tmo_DocumentListFromFile); aMain.RegisterModule(Tmo_ChangesBetweenEditions); aMain.RegisterModule(Tmo_Search); aMain.RegisterModule(Tmo_AAC); end; var g_opcode_Document_ShowJurorComments : TvcmOpID; g_opcode_Document_ShowUserComments : TvcmOpID; g_opcode_Document_ShowVersionComments : TvcmOpID; g_opcode_Finder_GotoPara : TvcmOpID; g_opcode_Finder_DisableForceDrawFocusRect : TvcmOpID; g_opcode_File_Print : TvcmOpID; g_opcode_File_PrintDialog : TvcmOpID; g_opcode_File_PrintPreview : TvcmOpID; g_opcode_File_Save : TvcmOpID; g_opcode_Document_OpenEditionLocalLink : TvcmOpID; g_opcode_ControlCenter_Refresh : TvcmOpID; g_opcode_Document_SetPosition : TvcmOpID; g_opcode_RightEdition_ReturnToDocument : TvcmOpID; g_opcode_RightEdition_SetFocusToText : TvcmOpID; g_opcode_RightEdition_IsCurrentPara : TvcmOpID; g_opcode_Document_GetParaForPositionning : TvcmOpID; g_opcode_Edition_PrevChange : TvcmOpID; g_opcode_Edition_NextChange : TvcmOpID; g_opcode_Edition_ReturnToDocument : TvcmOpID; g_opcode_Document_ViewChangedFragments : TvcmOpID; g_opcode_Redactions_OpenRedactionListFrmAct : TvcmOpID; g_opcode_Redactions_RedactionOnID : TvcmOpID; g_opcode_Redactions_ActualRedaction : TvcmOpID; g_opcode_Redactions_PrevRedaction : TvcmOpID; g_opcode_Redactions_NextRedaction : TvcmOpID; g_opcode_Scalable_ChangeScale : TvcmOpID; g_opcode_Scalable_CanChangeScale : TvcmOpID; g_module_opcode_InternetAgent_InternetAgent : TvcmMOpID; g_opcode_Result_Cancel : TvcmOpID; g_opcode_FoldersControl_EditElement : TvcmOpID; g_opcode_FoldersControl_DeleteElement : TvcmOpID; g_opcode_Result_Ok : TvcmOpID; ...
procedure TNemesisRes.Loaded; begin inherited; PublishModule(Tmo_CompareEditions, 'Сравнение редакций'); PublishModule(Tmo_InternetAgent, 'Интернет-агент'); PublishModule(Tmo_Folders, 'Папки'); PublishModule(Tmo_Chat, 'Чат'); PublishModule(Tmo_WorkJournal, 'Журнал работы'); PublishModule(Tmo_Monitorings, 'Мониторинги'); PublishModule(Tmo_Common, 'Окна'); PublishModule(Tmo_Document, 'Документ'); PublishModule(Tmo_List, 'Список'); PublishModule(Tmo_Diction, 'Толковый словарь'); PublishModule(Tmo_Tips, 'Совет дня'); PublishModule(Tmo_Inpharm, 'Инфарм'); PublishModule(Tmo_Rubricator, 'Правовой навигатор'); PublishModule(Tmo_Settings, 'Установки'); PublishModule(Tmo_MainMenu, 'Основное меню'); PublishModule(Tmo_Consultations, 'Консультации'); PublishModule(Tmo_BaseSearch, 'Базовый поиск'); PublishModule(Tmo_Filters, 'Фильтры'); PublishModule(Tmo_UnderControl, 'Документы на контроле'); PublishModule(Tmo_DocumentListFromFile, 'Список документов из файла'); PublishModule(Tmo_ChangesBetweenEditions, 'Просмотр только измененных фрагментов'); PublishModule(Tmo_Search, 'Поиск'); PublishModule(Tmo_AAC, 'Актуальная аналитика')
...
g_opcode_Document_ShowVersionComments := PublishOperation(en_Document, op_ShowVersionComments, en_capDocument, op_capShowVersionComments); with PublishOperationState(en_Document, op_ShowVersionComments, 'Hide') do begin st_user_Document_ShowVersionComments_Hide := StateIndex; Caption := 'Выключить информацию об изменениях документа'; Checked := true; end;//with PublishOperationState(en_Document, op_ShowVersionComments, 'Hide') with PublishOperationState(en_Document, op_ShowVersionComments, 'Show') do begin st_user_Document_ShowVersionComments_Show := StateIndex; Caption := 'Включить информацию об изменениях документа'; end;//with PublishOperationState(en_Document, op_ShowVersionComments, 'Show') PublishOperation(en_Document, op_ShowCommentsGroup, en_capDocument, op_capShowCommentsGroup); PublishOperation(en_SubPanelSettings, op_ShowSpecial, en_capSubPanelSettings, op_capShowSpecial); PublishOperation(en_SubPanelSettings, op_ShowInfo, en_capSubPanelSettings, op_capShowInfo); g_opcode_Finder_GotoPara := PublishInternalOperation(en_Finder, op_GotoPara, en_capFinder, op_capGotoPara); g_opcode_Finder_DisableForceDrawFocusRect := PublishInternalOperation(en_Finder, op_DisableForceDrawFocusRect, en_capFinder, op_capDisableForceDrawFocusRect); PublishOperation(en_File, op_ToMSWord, en_capFile, op_capToMSWord); PublishOperation(en_File, op_SendMailAsAttachment, en_capFile, op_capSendMailAsAttachment, true); g_opcode_File_Print := PublishOperation(en_File, op_Print, en_capFile, op_capPrint); g_opcode_File_PrintDialog := PublishOperation(en_File, op_PrintDialog, en_capFile, op_capPrintDialog); g_opcode_File_PrintPreview := PublishOperation(en_File, op_PrintPreview, en_capFile, op_capPrintPreview); g_opcode_File_Save := PublishOperation(en_File, op_Save, en_capFile, op_capSave); g_opcode_Document_OpenEditionLocalLink := PublishInternalOperation(en_Document, op_OpenEditionLocalLink, en_capDocument, op_capOpenEditionLocalLink); PublishOperation(en_Edit, op_Copy, en_capEdit, op_capCopy); with PublishOperationState(en_Edit, op_Copy, 'AttributesCopy') do begin st_user_Edit_Copy_AttributesCopy := StateIndex; Caption := 'Копировать все атрибуты документа в буфер обмена'; end;//with PublishOperationState(en_Edit, op_Copy, 'AttributesCopy') PublishOperation(en_Edit, op_Cut, en_capEdit, op_capCut); PublishOperation(en_Edit, op_FindContext, en_capEdit, op_capFindContext); PublishOperation(en_Edit, op_FindNext, en_capEdit, op_capFindNext); PublishOperation(en_Edit, op_Paste, en_capEdit, op_capPaste); PublishOperation(en_Edit, op_Undo, en_capEdit, op_capUndo); PublishOperation(en_Edit, op_Redo, en_capEdit, op_capRedo); PublishOperation(en_Edit, op_SelectAll, en_capEdit, op_capSelectAll); PublishOperation(en_Edit, op_Deselect, en_capEdit, op_capDeselect); PublishOperation(en_Edit, op_FindPrev, en_capEdit, op_capFindPrev); g_opcode_ControlCenter_Refresh := PublishInternalOperation(en_ControlCenter, op_Refresh, en_capControlCenter, op_capRefresh); g_opcode_Document_SetPosition := PublishInternalOperation(en_Document, op_SetPosition, en_capDocument, op_capSetPosition); PublishOperation(en_HyperLink, op_Open, en_capHyperLink, op_capOpen); PublishOperation(en_HyperLink, op_OpenNewWindow, en_capHyperLink, op_capOpenNewWindow); PublishOperation(en_HyperLink, op_NextHyperLink, en_capHyperLink, op_capNextHyperLink); PublishOperation(en_HyperLink, op_PrevHyperLink, en_capHyperLink, op_capPrevHyperLink); PublishOperation(en_HyperLink, op_Delete, en_capHyperLink, op_capDelete, true); g_opcode_RightEdition_ReturnToDocument := PublishInternalOperation(en_RightEdition, op_ReturnToDocument, en_capRightEdition, op_capReturnToDocument); g_opcode_RightEdition_SetFocusToText := PublishInternalOperation(en_RightEdition, op_SetFocusToText, en_capRightEdition, op_capSetFocusToText); g_opcode_RightEdition_IsCurrentPara := PublishInternalOperation(en_RightEdition, op_IsCurrentPara, en_capRightEdition, op_capIsCurrentPara); g_opcode_Document_GetParaForPositionning := PublishInternalOperation(en_Document, op_GetParaForPositionning, en_capDocument, op_capGetParaForPositionning); g_opcode_Edition_PrevChange := PublishOperation(en_Edition, op_PrevChange, en_capEdition, op_capPrevChange); g_opcode_Edition_NextChange := PublishOperation(en_Edition, op_NextChange, en_capEdition, op_capNextChange); g_opcode_Edition_ReturnToDocument := PublishOperation(en_Edition, op_ReturnToDocument, en_capEdition, op_capReturnToDocument); g_opcode_Document_ViewChangedFragments := PublishOperation(en_Document, op_ViewChangedFragments, en_capDocument, op_capViewChangedFragments); g_opcode_Redactions_OpenRedactionListFrmAct := PublishOperation(en_Redactions, op_OpenRedactionListFrmAct, en_capRedactions, op_capOpenRedactionListFrmAct); with PublishOperationState(en_Redactions, op_OpenRedactionListFrmAct, 'ChooseAnotherEditions') do begin st_user_Redactions_OpenRedactionListFrmAct_ChooseAnotherEditions := StateIndex; Caption := 'Выбрать другие редакции'; end;//with PublishOperationState(en_Redactions, op_OpenRedactionListFrmAct, 'ChooseAnotherEditions') g_opcode_Redactions_RedactionOnID := PublishInternalOperation(en_Redactions, op_RedactionOnID, en_capRedactions, op_capRedactionOnID); g_opcode_Redactions_ActualRedaction := PublishOperation(en_Redactions, op_ActualRedaction, en_capRedactions, op_capActualRedaction); g_opcode_Redactions_PrevRedaction := PublishOperation(en_Redactions, op_PrevRedaction, en_capRedactions, op_capPrevRedaction); g_opcode_Redactions_NextRedaction := PublishOperation(en_Redactions, op_NextRedaction, en_capRedactions, op_capNextRedaction); PublishOperation(en_Edit, op_Delete, en_capEdit, op_capDelete); with PublishOperationState(en_Edit, op_Delete, 'Controlled') do begin st_user_Edit_Delete_Controlled := StateIndex; Caption := 'Снять с контроля'; end;//with PublishOperationState(en_Edit, op_Delete, 'Controlled')
... with PublishOperationState(en_Edit, op_Delete, 'Contact') do begin st_user_Edit_Delete_Contact := StateIndex; Caption := 'Удалить пользователя'; end;//with PublishOperationState(en_Edit, op_Delete, 'Contact') g_opcode_Scalable_ChangeScale := PublishInternalOperation(en_Scalable, op_ChangeScale, en_capScalable, op_capChangeScale); g_opcode_Scalable_CanChangeScale := PublishInternalOperation(en_Scalable, op_CanChangeScale, en_capScalable, op_capCanChangeScale); g_module_opcode_InternetAgent_InternetAgent := PublishModuleOperation(Tmo_InternetAgent, 'InternetAgent', 'Новости онлайн'); g_opcode_Result_Cancel := PublishOperation(en_Result, op_Cancel, en_capResult, op_capCancel); g_opcode_FoldersControl_EditElement := PublishInternalOperation(en_FoldersControl, op_EditElement, en_capFoldersControl, op_capEditElement); g_opcode_FoldersControl_DeleteElement := PublishInternalOperation(en_FoldersControl, op_DeleteElement, en_capFoldersControl, op_capDeleteElement); g_opcode_Result_Ok := PublishOperation(en_Result, op_Ok, en_capResult, op_capOk); with PublishOperationState(en_Result, op_Ok, 'Search') do begin st_user_Result_Ok_Search := StateIndex; Caption := 'Искать'; Hint := 'Провести поиск по выбранным параметрам'; end;//with PublishOperationState(en_Result, op_Ok, 'Search') with PublishOperationState(en_Result, op_Ok, 'Print') do begin st_user_Result_Ok_Print := StateIndex; Caption := 'Печать'; ImageIndex := 3; end;//with PublishOperationState(en_Result, op_Ok, 'Print') with PublishOperationState(en_Result, op_Ok, 'AttributesSelect') do begin st_user_Result_Ok_AttributesSelect := StateIndex; Caption := 'Подтвердить выбор элементов'; end;//with PublishOperationState(en_Result, op_Ok, 'AttributesSelect') with PublishOperationState(en_Result, op_Ok, 'ConsultationMark') do begin st_user_Result_Ok_ConsultationMark := StateIndex; Caption := 'Оценить'; end;//with PublishOperationState(en_Result, op_Ok, 'ConsultationMark') with PublishOperationState(en_Result, op_Ok, 'Analize') do begin st_user_Result_Ok_Analize := StateIndex; Caption := 'Построить'; end;//with PublishOperationState(en_Result, op_Ok, 'Analize') PublishOperation(en_Result, op_Append, en_capResult, op_capAppend); g_opcode_AdditionInfo_Show := PublishInternalOperation(en_AdditionInfo, op_Show, en_capAdditionInfo, op_capShow); g_opcode_AdditionInfo_Hide := PublishInternalOperation(en_AdditionInfo, op_Hide, en_capAdditionInfo, op_capHide); g_opcode_AdditionInfo_SetCaption := PublishInternalOperation(en_AdditionInfo, op_SetCaption, en_capAdditionInfo, op_capSetCaption); g_opcode_AdditionInfo_Close := PublishInternalOperation(en_AdditionInfo, op_Close, en_capAdditionInfo, op_capClose); g_opcode_Switcher_BecomeActive := PublishInternalOperation(en_Switcher, op_BecomeActive, en_capSwitcher, op_capBecomeActive); g_opcode_ResultExt_Ok := PublishOperation(en_ResultExt, op_Ok, en_capResultExt, op_capOk); with PublishOperationState(en_ResultExt, op_Ok, 'None') do begin st_user_ResultExt_Ok_None := StateIndex; Hint := 'Подтвердить выбор'; Enabled := false; end;//with PublishOperationState(en_ResultExt, op_Ok, 'None') with PublishOperationState(en_ResultExt, op_Ok, 'NewFolder') do begin st_user_ResultExt_Ok_NewFolder := StateIndex; Hint := 'Создать папку'; end;//with PublishOperationState(en_ResultExt, op_Ok, 'NewFolder') with PublishOperationState(en_ResultExt, op_Ok, 'Edit') do begin st_user_ResultExt_Ok_Edit := StateIndex; Hint := 'Сохранить отредактированные параметры'; end;//with PublishOperationState(en_ResultExt, op_Ok, 'Edit')
... g_opcode_Document_ExportBlock := PublishInternalOperation(en_Document, op_ExportBlock, en_capDocument, op_capExportBlock); g_opcode_Document_GetCurrentPosition := PublishInternalOperation(en_Document, op_GetCurrentPosition, en_capDocument, op_capGetCurrentPosition); g_opcode_Document_SelectBlock := PublishInternalOperation(en_Document, op_SelectBlock, en_capDocument, op_capSelectBlock); g_opcode_Document_CopyBlock := PublishInternalOperation(en_Document, op_CopyBlock, en_capDocument, op_capCopyBlock); g_opcode_Document_PrintBlock := PublishInternalOperation(en_Document, op_PrintBlock, en_capDocument, op_capPrintBlock); g_opcode_Document_PrintDialogBlock := PublishInternalOperation(en_Document, op_PrintDialogBlock, en_capDocument, op_capPrintDialogBlock); g_opcode_Document_PreviewBlock := PublishInternalOperation(en_Document, op_PreviewBlock, en_capDocument, op_capPreviewBlock); g_opcode_Document_ShowRespondentListToPart := PublishInternalOperation(en_Document, op_ShowRespondentListToPart, en_capDocument, op_capShowRespondentListToPart); g_opcode_Document_ShowCorrespondentListToPart := PublishInternalOperation(en_Document, op_ShowCorrespondentListToPart, en_capDocument, op_capShowCorrespondentListToPart); g_opcode_Document_ModifyBookmarkNotify := PublishInternalOperation(en_Document, op_ModifyBookmarkNotify, en_capDocument, op_capModifyBookmarkNotify); g_opcode_Document_AddBookmarkFromContents := PublishInternalOperation(en_Document, op_AddBookmarkFromContents, en_capDocument, op_capAddBookmarkFromContents); g_opcode_Document_OpenNotSureTopic := PublishInternalOperation(en_Document, op_OpenNotSureTopic, en_capDocument, op_capOpenNotSureTopic); g_opcode_Document_GotoPara := PublishInternalOperation(en_Document, op_GotoPara, en_capDocument, op_capGotoPara);
... PublishOperation(en_UserComment, op_Delete, en_capUserComment, op_capDelete); g_opcode_Text_AddUserComment := PublishOperation(en_Text, op_AddUserComment, en_capText, op_capAddUserComment); g_opcode_Text_DeleteBookmark := PublishOperation(en_Text, op_DeleteBookmark, en_capText, op_capDeleteBookmark); g_opcode_Text_EditBookmark := PublishOperation(en_Text, op_EditBookmark, en_capText, op_capEditBookmark); g_opcode_Text_AddBookmark := PublishOperation(en_Text, op_AddBookmark, en_capText, op_capAddBookmark); g_opcode_Text_OpenNewWindow := PublishOperation(en_Text, op_OpenNewWindow, en_capText, op_capOpenNewWindow); g_opcode_DocumentSubPanel_UpdateSubPanel := PublishInternalOperation(en_DocumentSubPanel, op_UpdateSubPanel, en_capDocumentSubPanel, op_capUpdateSubPanel); PublishOperation(en_DocumentBlockBookmarks, op_AddBookmark, en_capDocumentBlockBookmarks, op_capAddBookmark); PublishOperation(en_IntranetSourcePoint, op_GoToIntranet, en_capIntranetSourcePoint, op_capGoToIntranet); PublishOperation(en_Picture, op_Open, en_capPicture, op_capOpen); PublishOperation(en_Picture, op_OpenNewWindow, en_capPicture, op_capOpenNewWindow); ... end; ... // modules operations class procedure TNemesisRes.MakeCompareEditions(const aDoc: IDocument; const aPara: IeeLeafPara; aEditionForCompare: Integer; const aDocumentForReturn: TnsDocumentForReturnInfo); begin TBaseEditionsModule.MakeCompareEditions(aDoc, aPara, aEditionForCompare, aDocumentForReturn); end; class procedure TNemesisRes.MakeCompareEditions(const aDoc: IDocument; const aPara: IeeLeafPara); begin TBaseEditionsModule.MakeCompareEditions(aDoc, aPara); end; class procedure TNemesisRes.MakeCompareEditions(const aLeft: IDocument; const aRight: IDocument; const aPara: IeeLeafPara); begin TBaseEditionsModule.MakeCompareEditions(aLeft, aRight, aPara); end; class procedure TNemesisRes.MakeCompareEditions(const aDoc: IDocument; const aPara: IeeLeafPara; aEditionForCompare: Integer); begin TBaseEditionsModule.MakeCompareEditions(aDoc, aPara, aEditionForCompare); end; class procedure TNemesisRes.OpenDocument(const aDocInfo: IdeDocInfo; const aContainer: IvcmContainer); begin TDocumentModule.OpenDocument(aDocInfo, aContainer); end; class function TNemesisRes.OpenEntityAsDocument(const anEntity: IUnknown; const aContainer: IvcmContainer): IDocument; begin Result := TDocumentModule.OpenEntityAsDocument(anEntity, aContainer); end; class function TNemesisRes.SafeOpenDocument(const aBaseEntity: IUnknown): IDocument; begin Result := TDocumentModule.SafeOpenDocument(aBaseEntity); end; class procedure TNemesisRes.OpenDocumentWithCheck(const aDocInfo: IdeDocInfo; const aContainer: IvcmContainer); begin TDocumentModule.OpenDocumentWithCheck(aDocInfo, aContainer); end; class function TNemesisRes.OpenExternalObject(const aContainer: IvcmContainer; const aData: InsLinkedObjectData): IvcmEntityForm; begin Result := TDocumentModule.OpenExternalObject(aContainer, aData); end; class function TNemesisRes.OpenPicture(const aContainer: IvcmContainer; const aData: InsLinkedObjectData): IvcmEntityForm; begin Result := TDocumentModule.OpenPicture(aContainer, aData); end; class function TNemesisRes.OpenPictureInfo(const aContainer: IvcmContainer; const aData: InsLinkedObjectDescription): IvcmEntityForm; begin Result := TDocumentModule.OpenPictureInfo(aContainer, aData); end; class function TNemesisRes.OpenTurnOnTimeMachine(const anIntf: InsTurnOnTimeMachine): IvcmEntityForm; begin Result := TDocumentModule.OpenTurnOnTimeMachine(anIntf); end; class function TNemesisRes.OpenEditionsListModal(const anEditionsHolder: IsdsEditionsHolder; const anAggregate: IvcmAggregate): IvcmEntityForm; begin Result := TDocumentModule.OpenEditionsListModal(anEditionsHolder, anAggregate); end; class function TNemesisRes.MakeBaloonForm(aCaller: TvcmContainerForm; aUserType: TvcmEffectiveUserType; const aWarning: IdsWarning): IvcmEntityForm; begin Result := TDocumentModule.MakeBaloonForm(aCaller, aUserType, aWarning); end; class function TNemesisRes.DocumentUseFixedFontForPrintAndExportSetting: Boolean; begin Result := TDocumentModule.DocumentUseFixedFontForPrintAndExportSetting; end; class procedure TNemesisRes.WriteDocumentUseFixedFontForPrintAndExportSetting(aValue: Boolean); begin TDocumentModule.WriteDocumentUseFixedFontForPrintAndExportSetting(aValue); end; class function TNemesisRes.DocumentShowChangesInfoSetting: Boolean; begin Result := TDocumentModule.DocumentShowChangesInfoSetting; end; class procedure TNemesisRes.WriteDocumentShowChangesInfoSetting(aValue: Boolean); begin TDocumentModule.WriteDocumentShowChangesInfoSetting(aValue); end; class procedure TNemesisRes.OpenTermByContext(const aContext: Il3CString; aLanguage: TbsLanguage); begin TDictionModule.OpenTermByContext(aContext, aLanguage); end; class procedure TNemesisRes.OpenDictionary(const aDocInfo: IdeDocInfo; const aContainer: IvcmContainer); begin TDictionModule.OpenDictionary(aDocInfo, aContainer); end; class procedure TNemesisRes.MakeInternetAgent(const anURL: Il3CString; const aContainer: IvcmContainer); begin TPrimInternetAgentModule.MakeInternetAgent(anURL, aContainer); end; class function TNemesisRes.OpenFolders(const aContainer: IvcmContainer; aCanCreate: Boolean): IvcmEntityForm; begin Result := TPrimFoldersModule.OpenFolders(aContainer, aCanCreate); end; class procedure TNemesisRes.OpenAutoreferat(const aDoc: IDocument; const aContainer: IvcmContainer); begin TPrimMonitoringsModule.OpenAutoreferat(aDoc, aContainer); end; class procedure TNemesisRes.OpenAutoreferatAfterSearch(const aList: IMonitoringList; const aContainer: IvcmContainer); begin TPrimMonitoringsModule.OpenAutoreferatAfterSearch(aList, aContainer); end; class function TNemesisRes.OpenNewsLine: IvcmEntityForm; begin Result := TPrimMonitoringsModule.OpenNewsLine; end; class function TNemesisRes.OpenPostingOrder(const aQuery: IQuery): IvcmEntityForm; begin Result := TCommonPostModule.OpenPostingOrder(aQuery); end; class procedure TNemesisRes.OpenSendConsultation(const aQuery: IQuery); begin TConsultationModule.OpenSendConsultation(aQuery); end; class procedure TNemesisRes.OpenEntityAsConsultation(const aCons: IUnknown; const aContainer: IvcmContainer); begin TConsultationModule.OpenEntityAsConsultation(aCons, aContainer); end; class procedure TNemesisRes.OpenConsultation(const aCons: IbsConsultation; const aContainer: IvcmContainer); begin TConsultationModule.OpenConsultation(aCons, aContainer); end; class procedure TNemesisRes.FiltersOpen(const aData: IucpFilters); begin TFiltersModule.FiltersOpen(aData); end; class function TNemesisRes.CreateFilter(const aQuery: IQuery): Integer; begin Result := TFiltersModule.CreateFilter(aQuery); end; class procedure TNemesisRes.RenameFilter(const aFilter: IFilterFromQuery); begin TFiltersModule.RenameFilter(aFilter); end; class function TNemesisRes.MakeChatDispatcher: IbsChatDispatcher; begin Result := TBaseChatModule.MakeChatDispatcher; end; class function TNemesisRes.OpenChatWindow(anUID: TbsUserID; const aName: Il3CString): IvcmEntityForm; begin Result := TBaseChatModule.OpenChatWindow(anUID, aName); end; class function TNemesisRes.OpenAddUserDialog: IvcmEntityForm; begin Result := TBaseChatModule.OpenAddUserDialog; end; class function TNemesisRes.OpenHistoryWindow(anUID: TbsUserID; const aName: Il3CString): IvcmEntityForm; begin Result := TBaseChatModule.OpenHistoryWindow(anUID, aName); end; ... end.
Заглянем внутрь? Одной из "микросхем".Например:
Обратите кстати внимание на стрелки "реализации" к требованиям (<<UseCasRequiriement>>). Я о них позже - расскажу.
Очень интересно.
ОтветитьУдалитьНО! все таки не догоняю. :(
На чем рисовать, какую кнопку нажать....
Мне, чайнику, нужна что-то вроде "Автогенерация кода по UML" шаг за шагом.
Наверно не судьба....
Как раз таки - судьба. Коллективный разум родил проект. Сегодня вечером напишу вводную. Следите за обновлениями, если интересно.
ОтветитьУдалитьВот тут - http://18delphi.blogspot.com/2013/04/0-rup-uml-mda-etc-al.html - "вводная". Дальше - по ссылкам. И следите за обновлениями.
ОтветитьУдалитьпоследняя диаграмма идиотизм, и насилье над мозгом. я то прочел но в целом, вы это по памяти уже понмните просто ?
ОтветитьУдалитьНе вижу идиотизма
Удалить