新四季網

軟體工廠指定和執行模型的製作方法

2023-04-27 16:37:36 1

專利名稱:軟體工廠指定和執行模型的製作方法
軟體工廠指定和執行模型背景軟體開發團隊採用領域專業知識來開發針對真實世界問題的軟體解決方案。該領域專業知識可包括例如,關於業務流程的信息、功能或非功能需求、商業和技術體系結構、 得到證明的技術選擇和實現決策、可重用型式和方針、規章順應陳述、開發實踐等。通常將軟體開發實現至可接受的質量水平。例如,除了功能需求之外,可接受的質 量水平可包括對行業標準的遵從性、生產實踐、組織策略和/或政府規章。開發目標還可包 括具體化所建立的方法和型式以使得其他人能夠理解並維護所開發的軟體。其他開發目標 可包括質量屬性,例如,在可接受的資源消耗水平下的可用性、可靠性、性能和/或可伸縮 性。常規上,開發團隊已採用通用工具和平臺來開發軟體。然而,採用這些通用工具和 平臺已被證明是令開發團隊感到灰心的,因為已經難以生產提供具有可接受質量的所需功 能的解決方案。此外,使用通用工具和平臺,開發團隊已無法可靠地預測預算和時間表。例 如,採用通用工具和平臺可導致開發出超預算和/或未及時生產的軟體。另外,開發出的軟 件可能具有較差的質量和/或一致性,具有非最優可溯性(traceability),需要大量補強 (ramp-up)時間和/或導致高維護成本。概述以下提出了簡化概述以便提供對在此描述的各新穎實施例的基本理解。本概述不 是詳盡的概覽,並且它不旨在標識關鍵/重要的元素,也不旨在描繪其範圍。其唯一的目的 是以簡化的形式來介紹一些概念,作為稍後提出的更為詳細的描述的序言。所公開的系統和方法通過基於被稱為「工廠模式」或簡稱為「模式」的元模型的實 例(即,模型)來提供軟體工廠以便於軟體開發。該模型定義一個或多個視點或透視,每一 個視點定義隔離一組特定關注事項的軟體視圖,該組關注事項通常指定這一視圖的範圍、 用於呈現該視圖的記法(如果有的話)、以及用於創建和修改該視圖的編輯器(如果有的 話)。該模型還可定義從每一個視點產生的工作產品類型(如果有的話)、以及執行以產生 或維護視圖或工作產品的每一種類型的任務模板(如果有的話)。該模型還可定義視點之 間的關係以及視點和工作產品類型之間的關係、和可以在關係上執行的操作。另外,該模型 可描述可用於支持執行從任務模板中實例化的任何任務的資產。在一個實現中,提供一種計算機實現的軟體工廠指定系統。該軟體工廠指定系統 可由例如工廠開發者用來指定工廠模式。共同描述的工廠模式和編輯器、任務模板和資產 形成「軟體工廠」或簡稱為「工廠」,其可捕捉領域專業知識,例如,業務流程、需求、體系結 構、技術決策、實現、型式和方針、規章順應性、開發約束等。一旦實現,就可採用軟體工廠來 例如定製通用交互式開發環境(IDE)以開發特定類型的軟體解決方案。為實現上述及相關目的,本文結合下面的描述和附圖來描述某些說明性方面。然 而,這些方面僅指示可使用此處所公開的各原理的各種方式中的一些。結合附圖閱讀下面 的詳細描述,則其它優點和新穎特徵將變得顯而易見。附圖簡述


圖1示出了計算機實現的軟體工廠指定系統。圖2示出了示例性工廠模式。圖3示出了工廠模式的示例性元模型。圖4示出了計算機實現的軟體工廠系統。圖5示出了交互式開發環境的示例性用戶界面。圖6示出了交互式開發環境的另一示例性用戶界面。圖7示出了交互式開發環境的又一示例性用戶界面。圖8示出了指定軟體工廠的方法。
圖9示出了使用軟體工廠的方法。圖10示出了可用於執行所公開的體系結構的計算系統。圖11示出了示例性計算環境。詳細描述所公開的系統和方法通過基於被稱為「工廠模式」或簡稱為「模式」的元模型的實 例(即,模型)來提供軟體工廠以便於軟體開發。工廠模式捕捉領域專業知識以便於構建 對於真實世界問題的軟體解決方案,定義可由軟體開發團隊執行以構建這些解決方案的任 務,以及提供可以在執行任務時使用的編輯器和資產。該模型定義一個或多個視點或透視,每一個視點定義隔離一組特定關係的軟體視 圖,該組關係通常指定這一視圖的範圍、用於呈現該視圖的記法(如果有的話)、以及用於 創建和修改該視圖的編輯器(如果有的話)。該模型還可定義從每一個視點產生的工作產 品的類型(如果有的話)、以及執行以產生和/或維護視圖或工作產品的每一種類型的任務 模板(如果有的話)。該模型還可定義視點之間的關係以及視點和工作產品之間的關係、和 可以在關係上執行的操作。另外,該模型可描述可用於支持從任務模板中實例化的任何任 務的執行的資產。這一模型可由例如工廠開發者來定義。在一個實現中,所定義的模型和編輯器、任 務模板和資產可以在交互式開發環境中由開發團隊共同用來生產特定類型的產品(例如, 客戶機應用程式、移動客戶端、web服務等)。現在參考附圖,附圖中相同的附圖標記用於指代在全文中相同的元素。在以下描 述中,為解釋起見,描繪了眾多具體細節以提供對本發明的全面理解。然而,顯然,這些新穎 實施例可以在沒有這些具體細節的情況下實現。在其它情況下,以框圖形式示出了公知的 結構和設備以便於描述它們。首先參考附圖,圖1示出了計算機實現的軟體工廠指定系統100。系統100包括元 模型110、用戶界面組件120和工廠模式130 (即,元模型110的實例)。通過用戶界面組件 120,用戶(例如工廠開發者)可與元模型110交互以便為特定軟體工廠定義工廠模式130。 在一個實現中,用戶界面組件120包括交互式開發環境。工廠模式130可以在交互式開發環境中連同所描述的編輯器、任務模板和資產一 起用於支持產品(例如,客戶機應用程式、移動客戶端、web服務等)的指定、開發、使用和維 護。所描述的工廠模式130和編輯器、任務模板和資產共同形成「軟體工廠」或簡稱為「工 廠」,其可用於通過允許系統地重用軟體資產來提高軟體開發團隊的生產力,這些軟體資產 可用於通過利用明確定義的可變性點來產生特定類型的軟體系統的各種各樣的變型。
被設計成促進軟體資產的重用的常規系統僅獲得少許成功。元模型110通過以下 手段來便於對軟體資產的更有效的重用指定定義其中開發工作產品的體系結構上下文的 工廠模式130的結構、將用於開發每一工作產品的過程放在相同的體系結構上下文中、以 及提供可用於例如在交互式開發環境中支持過程制定的資產。暫時轉向圖2,元模型110支持一組視點210的工廠模式130中的指定。例如,視 點210可對應於開發中軟體的表示和隔離作為特定角色的風險承擔者(stakeholder)的關 注事項的特定方面。
元模型110還支持視點210之間以及視點210和工作產品類型260之間的關係、 以及可在關係220上執行的操作230的工廠模式130中的指定。另外,元模型110支持描 述包括對應於每一個視點210的工作流(例如自定義過程)的模板270的任務的一組任務 模板240、以及可用於加速任務模板240的每一個實例(即,每一個任務)的執行的一組資 產250(例如可重用資產)的工廠模式130中的指定。元模型110還支持將由每一個任務 消費和/或生產的工作產品的類型260的工廠模式130中的定義。暫時轉向圖3,描述了使用統一建模語言(UML)的示例性元模型110。元模型110 通過指定可能出現在工廠模式中的元素的類型(例如,資產、任務和視點)以及元素之間的 關係來描述其實例(即,工廠模式130)的結構。參考圖1、2和3,元模型110提供供工廠開發者定義視點210的結構化框架。視點 210是對要構建的軟體的透視。在一個示例中,視點210通常映射到編輯器。對於每一個視點210,工廠開發者可指定要生產的工作產品的類型260,並定義任 務模板240和包括用於構建所指定工作產品260的各組相關任務(例如自定義過程)的 工作流的模板270。工廠開發者還可指定支持任務模板240所描述的任務的制定的資產 250(例如可重用資產)。例如由工廠開發者指定的視點210、關係220、操作230、任務模板 240和資產可由工廠模式130來描述。資產250可包括例如,文檔、代碼模板、腳本、型式等。工廠模式130由此描述視點210和從特定視點210執行的任務的模板240,以及可 用於支持執行任務模板240所描述的特定任務的資產250。通過工廠模式130,工廠開發者可捕捉領域專業知識,這些知識關於業務流程、需 求、體系結構、技術決策、實現、型式和方針、規章順應性、開發等等。使用由這一工廠模式 130描述的工廠,開發團隊能夠在工廠開發者所指定的體系結構中以結構化方式生產軟體 解決方案。一旦由工廠開發者指定,就可以在交互式開發環境(IDE)中將工廠模式130連 同所描述的編輯器、任務模板和資產一起用作軟體工廠,如將在以下更詳細地描述的。通過使用元模型110來指定工廠模式130,工廠開發者可提供軟體產品開發的基 線。因為工廠模式130定義可重複過程,所以可通過隨著獲得經驗而細化工廠來更準確地 預測質量和一致性並改進之。另外,工廠環境可便於軟體需求的可溯性。例如,工廠模式130可使得軟體開發團隊能夠快速標識需要完成的工作以及能夠 完成工作的最佳方式。在一個實現中,可重用資產250可幫助軟體開發團隊快速執行需要 完成的工作。工廠模式130所固有的結構可導致由軟體工廠生產的產品的維護成本降低。另 夕卜,可更容易地理解對由軟體工廠生產的產品的改變。此外,軟體開發團隊的新成員能夠更 快地跟上進度。
轉向圖4,示出了計算機實現的軟體工廠系統400。系統400包括用戶界面組件 410。通過用戶界面組件410,用戶可與工廠模式130以及所描述的編輯器、任務模板和資產 交互以創建產品420。「產品」指的是軟體工廠系統400的輸出並且可包括已知類型的軟體 (例如數據訪問層、所連接的系統等)。一般而言,特定軟體工廠系統400生產作為同一種 類型的軟體的變型(例如,在線銀行門戶、智能客戶端、移動客戶端等)的產品。在一個實現中,用戶界面組件410是交互式開發環境(IDE)。因此,軟體工廠系統 400是IDE的擴展,其提供並支持如上所述的例如由工廠開發者在工廠模式130中捕捉到的 領域專業知識的應用。工廠模式130還允許收穫、產生和/或打包上下文化的手動和/或 自動嚮導,該上下文化的手動和/或自動嚮導封裝知識並使知識對開發團隊的成員和/或 他們的顧客可用。系統400的用戶能夠經由用戶界面組件410來與工廠模式130交互。用戶界面組 件410可展示與工廠模式130交互以幫助創建產品420的圖形用戶界面(GUI)和應用程式 編程接口(API)。工廠模式130包括對以下各項的描述視點210、與特定視點210相關聯的一組工 作產品類型260、與特定視點和工作產品類型260相關聯的一組任務模板240、以及與特定 任務模板240相關聯的資產250。S卩,工廠模式130描述與關聯於特定視點210或工作產品 類型260的特定任務模板240相關聯的資產250。在一個實現中,工廠模式130允許開發團隊的成員訪問與工廠模式130中所定義 的視點210相對應的產品420(例如開發中的軟體系統)的一個或多個視圖。團隊成員還 可檢索並使用跨視點210的關係220和操作230,從任務模板240和工作流模板270中生成 任務和工作流(即,定製過程),並訪問對應於這些任務的相關聯資產250,以便評估和修改 表達為工作產品(即,工作產品類型260的實例)集合的開發中產品420的狀態,作為IDE 的擴展(例如MICROSOFT VISUALSTUDIO 團隊系統開發環境)。使用該工廠模式、 該模式描述的視點的實例(即,視圖)、以及該模式描述的工作產品類型的實例(即,工作產 品),IDE可便於用戶可視化產品420的結構。使用由工廠模式提供的模板所描述的任務的 工作流,IDE還可便於用戶跟蹤產品420的各部分的進度。系統400可支持構建工廠模式130所描述的特定類型產品420的方式。工廠模式 130可描述用於構建產品420的自定義過程。經由用戶界面組件410,用戶可獲取關於所標 識任務和支持每一個任務的資產的執行的信息。在一個示例中,工廠模式130描述與特定需求相關聯的任務的核心子集。即,工廠 模式130描述在所有產品420中是共有且可重複的各方面。以此方式,可以通過採用可重 用資產來在提高執行的同時減少軟體開發時間。接著,參考圖5,示出了已經使用工廠模式來配置的交互式開發環境(例如軟體工 廠開發環境)的示例性用戶界面500。用戶界面500包括產品瀏覽器區域510 (例如編輯器 區域),該區域用於顯示一個或多個工廠的產品以及與特定產品420相關聯的視點210、視 圖和工作產品。用戶界面500還包括任務區域520,該區域用於顯示從與特定視點210或工 作產品類型260相關聯的任務模板240和工作流模板270中生成的任務。用戶界面500還 包括解決方案瀏覽器區域530、屬性區域540和項目區域550。在該示例中,用戶界面500提供用於使用軟體工廠系統400來開發軟體的平臺(例如GUI和API)。用戶界面500提供可幫助用戶與軟體工廠系統400交互以生產產品 420的圖形表示。在該示例中,用戶可選擇單個活動「創建設計」。對「創建設計」任務的選 擇使得軟體工廠系統400顯示如工廠模式130中所指定的信息。轉向圖6,示出了交互式開發環境的示例性用戶界面600。在該示例中,用戶選擇 了圖5中的「創建設計」,該選擇已使得基於工廠模式130來在應用程式瀏覽器區域510中 顯示「視點i 」並且在任務區域520中顯示「任務i 」和「任務N 」。向用戶呈現如由工廠開發 者在工廠模式130中指定的信息(例如,視點210、從任務模板240中生成的任務和/或資 產250)。此外,由工廠模式130來描述軟體工廠系統400的一個或多個流程。用戶可創建與視點210相關聯的視圖。「視圖」是來自特定視點210的對開發中的 特定產品420的具體描述。視圖通常映射到在特定編輯器中打開的特定文檔。視圖與軟體 工廠系統400正在構建的特定產品420相關聯。視圖還可包含已經在工廠模式130中在特 定視點210的上下文中指定的工作產品類型260的一個或多個實例(即,工作產品)。暫時參考圖7,示出了交互式開發的示例性用戶界面700。繼續圖5和6的示例, 用戶的當前焦點是「視圖廣(例如,「視點廣的實例)並且該用戶選擇了 「任務Λ該選擇 使得「資產」在資產區域560中顯示。資產區域560描述對從任務模板240中生成的所選 任務可用的資產250(如果有的話)。使得特定資產250在特定視點210、遵從該視點的特 定視圖、需要作為開發過程的一部分來執行的特定任務、以及必須生產或維護的特定類型 260的工作產品的上下文中對軟體開發團隊成員可用,對於通過使開發過程更一致、可溯和 可預測並降低用於非專家軟體開發者的培訓成本來提高軟體質量是特別重要的。在一個實現中,軟體工廠系統400可捕捉與可幫助預算制定和時間安排的軟體開 發經驗相關聯的信息。例如,系統400可捕捉完成特定任務所花費的時間量、從事特定任務 的用戶的數量和技能等。圖8示出了指定軟體工廠的方法。儘管出於解釋簡明的目的,此處例如以流圖或 流程圖形式示出的一個或多個方法被示出並描述為一系列動作,但是可以理解和明白,這 些方法不受動作的次序的限制,因為根據本發明,某些動作可以按與此處所示並描述的不 同的次序和/或與其它動作同時發生。例如,本領域技術人員將會明白並理解,方法可被替 換地表示為一系列相互關聯的狀態或事件,諸如以狀態圖的形式。此外,並非一方法中所示 的所有動作都是對於新穎實現所必需的。在800,在工廠模式130(例如元模型110的實例)中創建視點。例如,工廠開發者 可創建要在交互式開發環境中作為軟體工廠系統400的一部分來採用的工廠模式。所創建 的視點可對應於軟體體系結構中的表示和隔離作為特定角色的風險承擔者的關注事項的 特定方面。在802,將編輯器供應和分配給需要編輯器的視點。視點中的部分、全部或沒有一 個可能需要編輯器。在804,為每一個視點創建任務模板。可將任務模板分組成工作流模板270,工作流模板270描述表示用於在特定視點的實例(即,視圖)中構建工作產品類型260的實例 的自定義過程的工作流。也在該步驟中創建工作產品類型260。在806,將資產供應和分配給每一個任務。這些資產可以是可重用軟體資產,例如, 文檔、訣竅等。在808,創建視點210之間和/或視點210和工作產品類型260之間的關係。
在810,定義操作並將其分配給關係。在812,存儲工廠模式130以及該工廠模式 描述的所有項目。工廠模式130和由工廠模式130描述的項目可以存儲在一起(例如,以 供稍後在交互式開發環境中用作軟體工廠)。圖9示出了使用軟體工廠的方法。在900,至少部分地基於元模型的實例(即,工 廠模式130)來創建項目。在902,顯示視點、對應於特定視點的視圖以及包含在特定視圖 中的工作產品。視點可對應於以與項目相關聯的特定角色工作的工廠用戶的關注事項。在 特定視點下,可示出一個或多個視圖(例如,作為在特定項目的上下文中創建的視點的實 例)。在特定視圖下,可示出一個或多個工作產品(即,作為與特定視圖的視點相關聯的工 作產品類型的實例)。在904,在必要時從模板中生成與所選視圖或工作產品相關聯的任務,並且然後顯 示任務。例如,任務可以是實現自定義過程的工作流的一部分。一般而言,對於給定上下文 (即,對於給定視圖或工作產品)一次生成多個任務,並 且然後在每一次選擇該上下文時顯 示這些任務。在一個實例中,上下文可提供模板中的參數的值。例如,可從任務與其相關聯 的工作產品的名稱中取得該任務的名稱。在906,顯示與所選任務相關聯的資產。在908,使用相關聯的資產來執行所選任 務。在910,存儲使用軟體工廠來生產的特定產品。該產品可以是執行所選任務的結果。儘管參考如用戶界面的各個附圖示出並描述了向用戶顯示信息的一些方式,但相 關領域的技術人員可以認識到,可採用各種其它替換方案。術語「屏幕」、「屏幕截圖」、「網 頁」、「文檔」和「頁面」在本文中一般可互換使用。頁面或屏幕作為顯示描述、作為圖形用戶 界面或通過描繪屏幕(例如,無論是個人計算機、PDA、行動電話還是其它合適的設備)上的 信息的其它方法被存儲和/或傳輸,其中要顯示在頁面上的布局和信息或內容被存儲在存 儲器、資料庫或另一存儲設施中。如在本申請中所使用的,術語「組件」和「系統」旨在表示計算機相關的實體,其可 以是硬體、硬體和軟體的組合、軟體、或者執行中的軟體。例如,組件可以是但不限於,在處 理器上運行的進程、處理器、硬碟驅動器、多個(光和/或磁存儲介質的)存儲驅動器、對 象、可執行代碼、執行的線程、程序、和/或計算機。作為說明,運行在伺服器上的應用程式 和伺服器都可以是組件。一個或多個組件可以駐留在進程和/或執行的線程中,並且組件 可以位於一臺計算機內和/或分布在兩臺或更多的計算機之間。現在參考圖10,示出了可用於執行所公開的軟體工廠系統的計算系統1000的框 圖。為了提供用於其各方面的附加上下文,圖10及以下討論旨在提供對其中可實現該各方 面的合適的計算系統1000的簡要概括描述。儘管以上描述是在可在一個或多個計算機上 運行的計算機可執行指令的一般上下文中進行的,但是本領域的技術人員將認識到,新穎 實施例也可結合其它程序模塊和/或作為硬體和軟體的組合來實現。一般而言,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、組 件、數據結構等等。此外,本領域的技術人員可以理解,本發明的方法可用其它計算機系統 配置來實施,包括單處理器或多處理器計算機系統、小型計算機、大型計算機、以及個人計 算機、手持式計算設備、基於微處理器的或可編程消費電子產品等,其每一個都可操作上耦 合到一個或多個相關聯的設備。所示各方面也可以在其中某些任務由通過通信網絡連結的遠程處理設備來執行的分布式計算環境中實踐。在分布式計算環境中,程序模塊可以位於本地和遠程存儲器存 儲設備中。計算機通常包括各種計算機可讀介質。計算機可讀介質可以是可由計算機訪問的 任何可用介質,且包括易失性和非易失性介質、可移動和不可移動介質。作為示例而非限 制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以存儲如 計算機可讀指令、數據結構、程序模塊或其他數據等信息的任何方法或技術來實現的易失 性和非易失性、可移動和不可移動介質。計算機存儲介質包括但不限於RAM、R0M、EEPR0M、閃 存或者其它存儲器技術、CD-ROM、數字視頻盤(DVD)或其它光碟存儲、磁帶盒、磁帶、磁碟存 儲或其它磁存儲設備、或可以用於存儲所需信息並且可以由計算機訪問的任何其它介質。再次參考圖10,用於實現各方面的示例性計算系統1000包括計算機1002,計算機 1002包括處理單元1004、系統存儲器1006和系統總線1008。系統總線1008向包括但不限 於系統存儲器1006的各系統組件提供到處理單元1004的接口。處理單元1004可以是市 場上可購買到的各種處理器中的任意一種。雙微處理器和其它多處理器體系結構也可用作 處理單元1004。系統總線1008可以是若干種總線結構中的任一種,這些總線結構還可互連到存 儲器總線(帶有或沒有存儲器控制器)、外圍總線、以及使用各類市場上可購買到的總線體 繫結構中的任一種的局部總線。系統存儲器1006包括只讀存儲器(ROM) 1010和隨機存取 存儲器(RAM) 1012。基本輸入/輸出系統(BIOS)儲存在諸如R0M、EPR0M、EEPR0M等非易失 性存儲器1010中,其中BIOS包含幫助諸如在啟動期間在計算機1002內的元件之間傳輸信 息的基本例程。RAM1012還可包括諸如靜態RAM等高速RAM來用於高速緩存數據。計算機1002還包括內置硬碟驅動器(HDD) 1014 (例如,EIDE、SATA),該內置硬碟驅 動器1014還可被配置成在合適的機殼(未示出)中外部使用;磁軟盤驅動器(FDD)1016(例 如,從可移動磁碟1018中讀取或向其寫入);以及光碟驅動器1020 (例如,從⑶-ROM盤1022 中讀取,或從諸如DVD等其它高容量光學介質中讀取或向其寫入)。硬碟驅動器1014、磁碟 驅動器1016和光碟驅動器1020可分別通過硬碟驅動器接口 1024、磁碟驅動器接口 1026和 光碟驅動器接口 1028來連接到系統總線1008。用於外置驅動器實現的接口 1024包括通用 串行總線(USB)和IEEE1394接口技術中的至少一種或兩者。驅動器及其相關聯的計算機可讀介質提供了對數據、數據結構、計算機可執行指 令等的非易失性存儲。對於計算機1002,驅動器和介質容納適當的數字格式的任何數據的 存儲。儘管以上對計算機可讀介質的描述涉及HDD、可移動磁碟以及諸如CD或DVD等可移 動光學介質,但是本領域的技術人員應當理解,示例性操作環境中也可使用可由計算機讀 取的任何其它類型的介質,諸如zip驅動器、磁帶盒、快閃記憶體卡、盒式磁帶等等,並且任何這樣 的介質可包含用於執行所公開的體系結構的新穎方法的計算機可執行指令。多個程序模塊可存儲在驅動器和RAM1012中,包括作業系統1030、一個或多個應 用程序1032、其它程序模塊1034和程序數據1036。軟體工廠系統400可以是應用程式 1032。所有或部分作業系統、應用程式、模塊和/或數據也可被高速緩存在RAM1012中。應該 明白,所公開的體系結構可以用市場上可購得的各種作業系統或作業系統的組合來實施。用戶可以通過一個或多個有線/無線輸入設備,例如鍵盤1038和諸如滑鼠1040 等定點設備將命令和信息輸入到計算機1002中。其它輸入設備(未示出)可包括話筒、IR遙控器、操縱杆、遊戲手柄、指示筆、觸控螢幕等等。這些和其它輸入設備通常通過耦合到系統總線1008的輸入設備接口 1042連接到處理單元1004,但也可通過其它接口連接,如並行端 口、IEEE1394串行埠、遊戲埠、USB埠、IR接口等等。監視器1044或其它類型的顯示設備也經由接口,諸如視頻適配器1046連接至系 統總線1008。除了監視器1044之外,計算機通常包括諸如揚聲器、印表機等其它外圍輸出 設備(未示出)。計算機1002可使用經由有線和/或無線通信至一個或多個遠程計算機,諸如遠程 計算機1048的邏輯連接在聯網環境中操作。遠程計算機1048可以是工作站、伺服器計算 機、路由器、個人計算機、可攜式計算機、基於微處理器的娛樂設備、對等設備或其它常見的 網絡節點,並且通常包括相對於計算機1002描述的許多或所有元件,儘管為簡明起見僅示 出了存儲器/存儲設備1050。所描繪的邏輯連接包括到區域網(LAN) 1052和/或例如廣域 網(WAN) 1054等更大的網絡的有線/無線連接。這一 LAN和WAN連網環境常見於辦公室和 公司,並且方便了諸如內聯網等企業範圍計算機網絡,所有這些都可連接到例如網際網路等 全球通信網絡。當在LAN網絡環境中使用時,計算機1002通過有線和/或無線通信網絡接口或適 配器1056連接到區域網1052。適配器1056可以方便到LAN1052的有線或無線通信,並且 還可包括其上設置的用於與無線適配器1056通信的無線接入點。當在WAN連網環境中使用時,計算機1002可包括數據機1058,或連接到 WAN1054上的通信伺服器,或具有用於通過WAN1054,諸如通過網際網路建立通信的其它裝 置。或為內置或為外置以及有線或無線設備的數據機1058經由串行埠接口 1042連 接到系統總線1008。在聯網環境中,相對於計算機1002所描述的程序模塊或其部分可以存 儲在遠程存儲器/存儲設備1050中。應該理解,所示網絡連接是示例性的,並且可以使用 在計算機之間建立通信鏈路的其它手段。現在參考圖11,示出了便於經由軟體工廠系統400來進行軟體開發的示例性計算 環境1100的示意性框圖。系統1100包括一個或多個客戶機1102。客戶機1102可以是硬 件和/或軟體(例如,線程、進程、計算設備)。例如,客戶機1102可容納cookie和/或相 關聯的上下文信息。系統1100還包括一個或多個伺服器1104。伺服器1104也可以是硬體和/或軟體 (例如,線程、進程、計算設備)。伺服器1104可以例如通過使用本體系結構來容納線程以 執行變換。在客戶機1102和伺服器1104之間的一種可能的通信能夠以適合在兩個或多個 計算機進程之間傳輸的數據分組的形式進行。數據分組可包括例如cookie和/或相關聯 的上下文信息。系統1100包括可以用來使客戶機1102和伺服器1104之間通信更容易的 通信框架1106 (例如,諸如網際網路等全球通信網絡)。通信可經由有線(包括光纖)和/或無線技術來促進。客戶機1102操作上被連 接到可以用來存儲對客戶機1102本地的信息(例如,cookie和/或相關聯的上下文信息) 的一個或多個客戶機數據存儲1108。同樣地,伺服器1104可在操作上連接到一個或多個服 務器數據存儲1110,這可以用來存儲對伺服器1104本地的信息。以上所描述的包括所公開的體系結構的各示例。當然,描述每一個可以想到的組 件和/或方法的組合是不可能的,但本領域內的普通技術人員應該認識到,許多其它組合和排列都是可能的。因此,本新穎的體系結構旨在涵蓋所有這些落入所附權利要求書的精 神和範圍內的更改、修改和變化。此外,就在說明書或權利要求書中使用術語「包括」而言, 這一術語旨在以與術語「包含」在被用作權利要求書中的過渡此時所解釋的相似的方式為 包含性的。
權利要求
一種計算機實現的軟體工廠指定系統(100),包括描述工廠模式(130)的元模型(110),所述工廠模式包括多個視點,視點包括一個或多個工作產品類型,每一個視點或工作產品類型具有一個或多個相關聯的工作流模板,工作流模板包括任務模板和任務模板之間的關係,每一個任務模板描述支持創建和修改所述視點和工作產品類型的實例的任務,所述工廠模式還包括視點之間以及特定視點和特定工作產品類型之間的關係、可在視點之間的關係上執行的操作、以及對每一個任務模板可用的零個、一個或多個資產;以及用於與所述元模型交互以指定所述工廠模式的用戶界面組件(120)。
2.如權利要求1所述的系統,其特徵在於,所述用戶界面組件包括交互式開發環境。
3.如權利要求1所述的系統,其特徵在於,所述資產中的至少一個是可重用軟體資產。
4.如權利要求1所述的系統,其特徵在於,所述工廠模式還包括由特定任務消費的工 作產品的類型的定義。
5.如權利要求1所述的系統,其特徵在於,所述工廠模式還包括要由特定任務產生的 工作產品的類型的定義。
6.如權利要求1所述的系統,其特徵在於,所述工廠模式包括映射到設計者的特定視點ο
7.如權利要求1所述的系統,其特徵在於,所述工廠模式是用於軟體工廠系統的模式。
8.如權利要求1所述的系統,其特徵在於,每一個任務模板都是描述包括自定義過程 的工作流的工作流模板的一部分。
9.如權利要求1所述的系統,其特徵在於,所述工廠模式包括對每一個任務模板可用 的資產的描述。
10.一種計算機實現的軟體工廠系統(400),包括包括多個視點的工廠模式(130),視點包括一個或多個工作產品類型,每一個視點或工 作產品類型具有一個或多個相關聯的工作流模板,工作流模板包括任務模板和任務模板之 間的關係,每一個任務模板描述支持創建和修改所述視點和工作產品類型的實例的任務, 所述工廠模式還定義視點之間以及特定視點和特定工作產品類型之間的關係、可在視點之 間的關係上執行的操作、以及對每一個任務模板可用的零個、一個或多個資產;以及用於與所述工廠模式交互以生產產品(420)的用戶界面組件(410)。
11.如權利要求10所述的系統,其特徵在於,與所述工廠模式交互包括檢索並使用至 少兩個特定視點之間的特定關係。
12.如權利要求10所述的系統,其特徵在於,與所述工廠模式交互包括檢索並使用與 視點之間的特定關係相關聯的操作。
13.如權利要求10所述的系統,其特徵在於,與所述工廠模式交互包括以下動作中的 至少一個訪問從與所選視點或工作產品實例相關聯的任務和/或工作流模板中生成的一 個或多個任務,或者訪問與所選任務相關聯的資產。
14.如權利要求10所述的系統,其特徵在於,所述用戶界面組件包括交互式開發環境。
15.如權利要求10所述的系統,其特徵在於,所述用戶界面組件包括顯示與所選視圖 或工作產品相關聯的視點、視圖、工作產品、工作流或任務中的至少一個的用戶界面。
16.如權利要求15所述的系統,其特徵在於,所述用戶界面還顯示與所選任務相關聯的零個、一個或多個資產。
17.一種使用軟體工廠的計算機實現的方法,包括至少部分地基於工廠模式來創建項目(900),所述工廠模式包括多個視點,視點包括 一個或多個工作產品類型,每一個視點或工作產品類型具有一個或多個相關聯的工作流模 板,工作流模板包括任務模板和任務模板之間的關係,每一個任務模板描述支持創建和修 改所述視點和工作產品類型的實例的任務,所述工廠模式還定義視點之間以及特定視點和 特定工作產品類型之間的關係、可在視點之間的關係上執行的操作、以及對每一個任務模 板可用的零個、一個或多個資產;顯示所述多個視點、所述多個視點的實例、以及所述多個視點的實例所包含的工作產 品(902);以及顯示與所選視圖或工作產品相關聯的至少一個任務(904)。
18.如權利要求17所述的方法,其特徵在於,還包括顯示與所選任務相關聯的至少一 個資產。
19.如權利要求18所述的方法,其特徵在於,還包括使用所選資產來執行所選任務。
20.如權利要求19所述的方法,其特徵在於,還包括存儲作為執行所述所選任務中的 一個或多個的結果的產品。
全文摘要
一種通過基於元模型的實例來提供軟體工廠以便於軟體開發的系統。元模型支持定義一個或多個視點,視點包括一個或多個工作產品類型、支持創建和修改視點和工作產品類型的實例的一個或多個任務的模板、以及包括一個或多個任務和任務之間的關係的工作流的模板。元模型支持定義視點之間和/或視點和工作產品類型之間的關係、以及可以在關係上執行的操作。另外,還可如元模型所支持的那樣定義對特定任務可用的資產(如果有的話)。
文檔編號G06F9/44GK101828169SQ200880112315
公開日2010年9月8日 申請日期2008年10月10日 優先權日2007年10月16日
發明者J·格林菲爾德, M·雷吉奧, T·J·霍蘭德, W·克扎茨尼斯基 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀