乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      軟件觀點 - 軟件工廠方法

       快樂學習 2010-01-06

      軟件觀點 - 軟件工廠方法

      現(xiàn)在軟件產(chǎn)品都面臨著快速高質(zhì)量的要求,而我們也在一直追求著這個目標。項目管理軟件規(guī)模較大,定制能力要求強,規(guī)?;_發(fā)也是一個很重要的目標。

      影響生產(chǎn)力的現(xiàn)有主要因素

      1.         業(yè)務(wù)領(lǐng)域設(shè)計研究不夠深入

      當 業(yè)務(wù)復(fù)雜而又缺乏良好的設(shè)計時,那它就會變得難以重構(gòu)和組合。越來越多的領(lǐng)域規(guī)則被嵌入到查詢代碼中,大部分數(shù)據(jù)訪問基礎(chǔ)結(jié)構(gòu)的技術(shù)復(fù)雜性,很快使得客戶 代碼陷入混亂。由于開發(fā)人員不能夠確切的知道整個系統(tǒng)的功能,重復(fù)問題就產(chǎn)生了。我們可以對那些類和方法進行分解使之便于重用,但這樣一來各個小部分分別 有什么作用又變得難以跟蹤。一個缺乏清晰設(shè)計的軟件,單是看到其中的混亂結(jié)構(gòu)就會讓開發(fā)人員頭腦發(fā)暈,更不用說對設(shè)計進行修改(那只會使設(shè)計更加混亂), 有時甚至會由于意料之外的依賴關(guān)系而導(dǎo)致設(shè)計完全無法工作。這種脆弱性導(dǎo)致我們無法構(gòu)造出行為更加豐富的系統(tǒng)(除非系統(tǒng)的規(guī)模相當小),也阻礙了重構(gòu)和迭 代精化的進行。

      2.         基礎(chǔ)架構(gòu)通用設(shè)計問題。

      比如權(quán)限、流程、報表基礎(chǔ)設(shè)施的支持,效率、應(yīng)用模式的支持。

      3.         技術(shù)本身帶來的問題。

      比如配置文件的管理,工具支持不夠,新技術(shù)帶來的學習曲線,底層技術(shù)的質(zhì)量。

      其他主要因素

      產(chǎn)品的快速和質(zhì)量是由需求、開發(fā)、測試共同完成的,影響進度和質(zhì)量的不能只考慮技術(shù)本身,可能我們開發(fā)的方法就未成型,可以改善的地方可以更多。所以我認為對現(xiàn)狀的改善不能只關(guān)注軟件技術(shù),而需要對軟件工程領(lǐng)域多投入一些關(guān)注。

      如何才能快速開發(fā)高質(zhì)量的產(chǎn)品?如何才能提高我們的生產(chǎn)力?下面描述一下我的一些觀點。

      關(guān)注方向

      產(chǎn)品線工程

      領(lǐng)域驅(qū)動開發(fā)

      很 多原因都會造成軟件開發(fā)的復(fù)雜性,然而其核心則是由于問題領(lǐng)域本身的復(fù)雜性??刂茝?fù)雜問題的關(guān)鍵是建立一個好的領(lǐng)域模型,它越過問題域的表象介紹其底層的 結(jié)構(gòu),給軟件開發(fā)人員提供所需的方法。領(lǐng)域驅(qū)動設(shè)計的一個核心的原則是使用一種基于模型的語言。因為模型是軟件滿足領(lǐng)域的共同點,它很適合作為這種通用語 言的構(gòu)造基礎(chǔ)。

      特定領(lǐng)域開發(fā)

               我們現(xiàn)在使用Delphi開 發(fā)時,是利用編譯器將代碼編譯成可執(zhí)行的程序,不需要去直接修改二進制而是修改代碼然后重新編譯。特定領(lǐng)域開發(fā)也類似與一般開發(fā),當發(fā)現(xiàn)軟件有問題時,我 們不是直接修改代碼,而是修改領(lǐng)域模型,然后利用工具將模型轉(zhuǎn)成代碼再進行編譯或者直接將模型轉(zhuǎn)為配置。使用特定領(lǐng)域開發(fā)將大幅提升我們的生產(chǎn)力。

               特定領(lǐng)域開發(fā)強調(diào)更安全、更高層次的自動化。它在軟件業(yè)中已經(jīng)應(yīng)用比較廣泛,也存在多種相關(guān)的方法,例如產(chǎn)生式編程、軟件工廠、特定領(lǐng)域建模(DSM)、面向問題語言(LOP)、模型驅(qū)動架構(gòu)(MDA)、意圖編程等。以上各個方法之間存在一些類似之處,在我工作中借鑒了部分產(chǎn)生式編程、軟件工廠和DSM的思想,這幾個也是我一直覺得比較好,希望在產(chǎn)品中更加深入應(yīng)用的一些方法,下文我將介紹軟件工廠相關(guān)的一些方法。

      軟件工廠



      軟件工廠由四個基礎(chǔ)構(gòu)建塊組成,分別是產(chǎn)品線工程,架構(gòu)框架,模型驅(qū)動開發(fā)和構(gòu)建指南。

      產(chǎn)品線工程

      1 軟 件產(chǎn)品線是指具有一組可管理的共同特性的軟件密集性系統(tǒng)的集合,這些系統(tǒng)滿足特定的市場需求或任務(wù)需求,并且按預(yù)定義的方式從一個公共的核心資產(chǎn)開發(fā)得 到。構(gòu)建一個產(chǎn)品主要工作是組裝或生成,而不是重新開發(fā),主要活動是集成而不是編程。每條軟件產(chǎn)品線都有一個預(yù)先定義的指南和計劃,用來定義確切地產(chǎn)品構(gòu) 建方法。

      2 在軟件產(chǎn)品線方法中,重用是有計劃的、能夠?qū)崿F(xiàn)的和強制的。資產(chǎn)庫包括從一開始就花費大量成本進行開發(fā)的各類產(chǎn)品-即需求、領(lǐng)域模型、軟件構(gòu)架、性能模型、測試用例和組件。所有資產(chǎn)都是為重用而設(shè)計,并且為了能重用與多個系統(tǒng)進行了優(yōu)化。

      3 產(chǎn)品線中每個產(chǎn)品都是核心資產(chǎn)的一個簡單定制,核心資產(chǎn)必須認真設(shè)計并不斷重構(gòu)。

      4 產(chǎn)品線核心關(guān)注范圍、通用性、可變性和擴展點



      軟件產(chǎn)品線活動概述


      一個產(chǎn)品線是基于商業(yè)策略,滿足給定市場的一組系統(tǒng)。產(chǎn)品線開發(fā)區(qū)別兩種活動:為重用而開發(fā)(for reuse)和使用重用來開發(fā)(with reuse)。傳統(tǒng)重用方法主要是基于代碼的重用,而軟件產(chǎn)品線的重用包括在產(chǎn)品開發(fā)生命周期各階段的資產(chǎn)。如上圖所示,軟件產(chǎn)品線工程由領(lǐng)域工程和應(yīng)用工程組成。

      領(lǐng)域工程

      1.         縱向領(lǐng)域(vertical domain):根據(jù)系統(tǒng)類別而組織的領(lǐng)域。如預(yù)算軟件、材料管理、合同管理、企業(yè)報表系統(tǒng)等。

      2.         橫向領(lǐng)域(horizontal domain):根據(jù)軟件部件的類別而組織的領(lǐng)域。比如數(shù)據(jù)關(guān)系計算引擎、報表引擎、工作流系統(tǒng)等。

      3.         領(lǐng)域之間有3中類型的關(guān)系:

      a)         包含:比如成本管理軟件包含了材料管理系統(tǒng)

      b)         使用:比如公司大部分軟件都使用了報表引擎

      c)         類似:領(lǐng)域之間側(cè)重點不同,但有很多的相似性,通過深入研究一個領(lǐng)域,可以取得對另一個領(lǐng)域的更好理解。比如報表引擎中對于表達式解析和索引部分可能與數(shù)據(jù)關(guān)系計算引擎類似。

      應(yīng)用工程

      應(yīng)用工程是基于領(lǐng)域工程的結(jié)果構(gòu)建系統(tǒng)的過程。對一個新的具體應(yīng)用做需求分析的時候是利用已有的領(lǐng)域模型,通過領(lǐng)域分析提供的各種通用功能、支持的變量配置、 提供的擴展等來描述客戶需要。如果新的需求在領(lǐng)域模型中不存在,則可以定制,或者反饋到領(lǐng)域工程來擴充領(lǐng)域的支持范圍。

      軟件產(chǎn)品線工程框架


      上圖是軟件產(chǎn)品線工程框架圖??蚣芊譃閮蓚€階段:領(lǐng)域工程應(yīng)用工程。領(lǐng)域工程產(chǎn)出平臺的公共核心資產(chǎn),應(yīng)用工程產(chǎn)出產(chǎn)品。在整個開發(fā)生命周期中,存在9個 子流程,八個流程互相匹配成四組類似流程,需求、設(shè)計、實現(xiàn)和測試在領(lǐng)域工程和應(yīng)用工程都存在,每一匹配組的流程都緊密相連。領(lǐng)域工程的子流程目的在于滿 足通用需求,而在應(yīng)用工程是為了生產(chǎn)可供使用的產(chǎn)品。應(yīng)用工程的子流程需要提供反饋給領(lǐng)域工程,這種循環(huán)反饋才能確保平臺一直都能有效的生產(chǎn)出最終產(chǎn)品。

      基于BAPO的系統(tǒng)族評估框架(FEF)


      BAPO模型覆蓋了軟件工程的主要關(guān)注點。這四個關(guān)注點(商業(yè)、架構(gòu)、流程和組織)成為了FEF的四個評估維度。每個維度有五個級別,并且有三到四個方面。

      領(lǐng)域工程開發(fā)活動大綱

      產(chǎn)生式編程方法中對領(lǐng)域工程開發(fā)的各個活動進行介紹。

      1.       領(lǐng)域分析

      a)         領(lǐng)域定義

                               i.              目標和風險承擔者分析。此活動的工作量依賴于項目的大小和上下文。

                             ii.              領(lǐng)域范圍界定和上下文分析

      1.         應(yīng)用領(lǐng)域和現(xiàn)有系統(tǒng)的分析

      2.         領(lǐng)域特征的確定

      3.         與其他領(lǐng)域關(guān)系的確定

      b)         領(lǐng)域建模

                               i.              關(guān)鍵概念的確定

                             ii.              關(guān)鍵概念的特征建模(共同點、可變性、特征依賴和特征交互)

      2.       領(lǐng)域設(shè)計

      a)         整個實現(xiàn)架構(gòu)的確認和規(guī)范

      b)         領(lǐng)域特定語言的確認和規(guī)范

      c)         配置知識的規(guī)范

      3.       領(lǐng)域?qū)崿F(xiàn)(DSL、產(chǎn)生器和實現(xiàn)組件的實現(xiàn))

      4.       領(lǐng)域測試

      模型驅(qū)動開發(fā)

      MDD建立在更高級別的抽象基礎(chǔ)上,不同于傳統(tǒng)使用類、方法、屬性抽象軟件,而是使用業(yè)務(wù)領(lǐng)域概念(比如工作流模型、實體關(guān)系模型、報表模型、界面描述模型等)來描述模型。代碼生產(chǎn)和領(lǐng)域特定語言是模型驅(qū)動開發(fā)的一些重要概念。

      DSM的三個核心元素

      有經(jīng)驗的開發(fā)員人都希望能達到一下目標:

      1.       不重復(fù)自己:不反復(fù)做同類設(shè)計,拷貝粘貼代碼,大量重復(fù)勞動

      2.       三次重復(fù)后就該考慮自動化

      3.       定制方案比通用方案更好

      DSM是領(lǐng)域特定建模,可以很好的解決以上三個問題。定義模型語言,代碼生成和框架代碼是DSM的三個主要元素。在工作中在UI方面采用元數(shù)據(jù)驅(qū)動的方法,很好的解決了以往UI帶來的重復(fù)工作以及很好的提高了這方面的軟件質(zhì)量。通過定義UI的元數(shù)據(jù)模型,項目運行框架通過生成的元數(shù)據(jù)信息來自動生成界面并綁定數(shù)據(jù)和操作事件。

      代碼和模型

      代碼和模型一般存在以下幾種模式,DSM屬于最后一種。



      DSM開發(fā)角色

      在以前的基于組件開發(fā)技術(shù)中,有人開發(fā)組件,有人使用組件。在產(chǎn)品線開發(fā)中,一部分人開發(fā)所有項目通用的平臺,一部分人使用這些資產(chǎn)進行開發(fā)。DSM開發(fā)組織機構(gòu)與這些方法類似,也區(qū)分兩種不同的角色:開發(fā)DSM解決方案的角色和使用DSM進行開發(fā)的角色。
      DSM中我們可以定義出以下幾種角色:

      1.       領(lǐng)域?qū)<遥河?/span>DSM應(yīng)用的問題領(lǐng)域的豐富知識。他們知道術(shù)語、概念和領(lǐng)域規(guī)則。當開發(fā)業(yè)務(wù)系統(tǒng)時,專家懂得業(yè)務(wù)知識。如果是技術(shù)領(lǐng)域,則架構(gòu)師和開發(fā)經(jīng)理就是領(lǐng)域?qū)<摇?/span>

      2.       DSM用戶:使用模型語言進行開發(fā)。這個角色的人員最多。模型在高級別層次上進行抽象,很大程度上支持測試、產(chǎn)品管理、QA、實施、銷售和客戶等多種人員進行溝通。測試人員可以使用模型建立測試用例,部署人員可以生產(chǎn)安裝程序,管理人員可以獲取度量信息等

      3.       基于特定模型語言的語言開發(fā)人員:設(shè)計元模型,并提供使用指導(dǎo)和模型示例。語言開發(fā)人員與領(lǐng)域?qū)<液完P(guān)鍵DSM用戶關(guān)系密切。

      4.       生成器開發(fā)人員:從模型轉(zhuǎn)換成代碼。通常生成器開發(fā)人員也是定義領(lǐng)域框架的人員。

      5.       領(lǐng)域框架開發(fā)人員:通常是有應(yīng)用架構(gòu)的經(jīng)驗開發(fā)人員。他們提供在目標環(huán)境下的參考實現(xiàn),并且已經(jīng)開發(fā)過組件框架、類庫等。

      6.       工具開發(fā)人員:實現(xiàn)模型語言和代碼生成器的工具支持。

      架構(gòu)框架

      1.       架構(gòu)框架不同于一般產(chǎn)品的開發(fā)框架。架構(gòu)框架的需求來源是產(chǎn)品線所有產(chǎn)品的共性,架構(gòu)需要實現(xiàn)所有共性,靈活實現(xiàn)變化點,并支持獨立產(chǎn)品的擴展點。

      2.       架構(gòu)不是瀑布式的,不是一層不變,而應(yīng)該隨著開發(fā)迭代周期不斷的重構(gòu)演化。

      構(gòu)建指南

      對產(chǎn)品線產(chǎn)品實現(xiàn)的最佳實踐,指導(dǎo)開發(fā)人員什么時候該做什么以及怎么做,可以降低學習曲線,并減少錯誤。

      模型驅(qū)動開發(fā)應(yīng)用目標

      通過幾個轉(zhuǎn)變來改變長期的工作方式:

      1.         面向通用語言 –> 模型驅(qū)動開發(fā)。使用特定模型,提高產(chǎn)品生產(chǎn)力和質(zhì)量。

      2.         基于數(shù)據(jù)庫開發(fā) –> 領(lǐng)域驅(qū)動開發(fā)。減少業(yè)務(wù)領(lǐng)域設(shè)計研究不夠深入帶來的問題

      3.         開發(fā)人員驅(qū)動 –> 業(yè)務(wù)人員驅(qū)動
      現(xiàn)在主要工作圍繞大量開發(fā)人員,通過模型驅(qū)動開發(fā),業(yè)務(wù)分析人員可以建立模型,需求分析、編碼、測試人員將基于統(tǒng)一模型進行工作。軟件開發(fā)人員逐步像分析設(shè)計人員發(fā)展,底層設(shè)計編碼由少量具有經(jīng)驗的開發(fā)人員承擔。

       ppt 


      軟件觀點 - 從軟件工程到業(yè)務(wù)工程
      軟件觀點 - 平臺分類:系統(tǒng)平臺、開發(fā)平臺和開放平臺

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多