商品簡介
《面向對象的分析與設計》是一本全面論述面向對象分析與設計方法的專著。全書分為3部分。第一部分為基礎篇,論述面向對象方法的基本思想和主要概念,對不同的分析與設計方法進行綜述,對統一建模語言(UML)和《面向對象的分析與設計》提出的方法做概要介紹。第二部分為分析篇,詳細介紹面向對象分析的全過程,圍繞面向對象建模中的需求模型(用況圖)、基本模型(類圖)、輔助模型(包圖、順序圖、活動圖以及其他各種UML模型圖)和模型規約,對面向對象的分析進行深入討論,給出詳細的過程指導和工程策略,並對相關的UML內容做較詳細的介紹。第三部分為設計篇,介紹如何在面向對象分析模型基礎上,針對具體的實現條件進行面向對象的系統設計,包括問題域部分、人機交互部分、控制驅動部分和數據接口部分4個主要部分的設計,最後介紹如何進行構件化與系統部署。《面向對象的分析與設計》是作者多年來在面向對象技術領域長期從事科研、教學和工程實踐的總結,在廣泛借鑒該領域的經典理論和當前最新研究成果的基礎上,堅持獨立思考、實事求是的科學態度,對該領域的諸多問題提出了新的學術觀點和解決方案。《面向對象的分析與設計》可供計算機軟件領域的研究人員和工程技術人員,計算機軟件專業的教師、研究生和高年級本科生閱讀參考。
作者簡介
邵維忠,北京大學信息科學技術學院教授、博士生導師。1970年畢業于北京大學數學力學系,1979-1983年在計算機科學技術系任教並攻讀碩士學位。早期主要從事操作系統和軟件工程領域的研究。1987-1989年在新加坡國立大學參加科技合作。回國後在楊芙清院士主持的國家“八五”、“九五”重點科技攻關課題中擔任主要技術負責人。自1991年起注重於面向對象建模方法的研究,開設了研究生課程和本科生課程,組織研製了一系列面向對象建模工具。撰寫和翻譯了多部關於面向對象方法的學術著作。在軟件工程環境、面向對象方法、建模語言、軟件複用、構件技術和中間件技術等領域承擔了多項國家高技術研究發展計劃(863)項目、國家重大基礎研究(973)項目和國家自然科學基金項目。曾獲國家科技進步二等獎及國家部委級獎勵多項。楊芙清,中國科學院院士,計算機軟件科學家、教育家。北京大學信息科學技術學院教授、博士生導師。現任北京大學信息與工程科學學部主任、軟件工程國家工程研究中心首席科學家、軟件與微電子學院理事長。1958年北京大學數學力學系研究生畢業。1957-1959年在前蘇聯學習程序設計和計算機軟件。1962-1964年任莫斯科杜勃納聯合核子物理研究所計算中心中國專家。20世紀70年代主持研製了我國第一台百萬次集成電路計算機多道運行操作系統和第一個全部用高級語言書寫的操作系統。1983-1999年擔任北京大學計算機系系主任期間,將該系建成國內一流和國際知名的計算機科學技術研究和人才培養基地。在國內率先倡導開展軟件工程研究,創辦了國內第一個軟件工程學科,主持了歷經多個五年計劃的國家重點科技攻關項目:青鳥工程和國家863計劃若干重點課題的研究。創建了軟件工程國家工程研究中心,提出“人才培養與產業建設互動”的理念,創建了以新機制、新模式辦學的示範性軟件學院。曾多次獲得各種榮譽稱號和獎勵,如全國科學大會獎、國家科技進步二等獎、電子工業部科技進步特等獎、國家級教學成果獎一等獎等十六項國家及部委級的獎勵,以及全國“三八”紅旗手、全國高等學校先進科技工作者、“光華科技基金”一等獎、何梁何利科學與技術進步獎、中國計算機學會終身成就獎等。發表論文150餘篇、著作10余部,培養了百余名碩士、博士和博士後。
名人推薦
《面向對象的分析與設計》可供計算機軟件領域的研究人員和工程技術人員,計算機軟件專業的教師、研究生和高年級本科生閱讀參考。
目次
第一部分基礎篇第1章面向對象方法概論1.1什麼是面向對象1.2從認識論看面向對象方法的形成1.2.1軟件開發:對事物的認識和描述1.2.2語言的鴻溝1.2.3編程語言的發展使鴻溝變窄1.2.4軟件工程學的作用1.2.5面向對象是軟件方法學的返璞歸真1.3面向對象方法的基本概念1.3.1對象1.3.2類1.3.3封裝1.3.4繼承1.3.5聚合1.3.6關聯1.3.7消息1.3.8多態性1.3.9其他1.3.10術語對照1.4面向對象方法的歷史及現狀1.4.1歷史1.4.2發展到軟件生存週期全過程1.4.3滲透到計算機軟件的各個領域第2章不同的分析與設計方法2.1功能分解法2.2結構化方法2.3信息建模法2.4面向對象方法2.4.1什麼是OOA2.4.2什麼是OOD2.4.3面向對象方法的主要優點2.4.4幾種典型的面向對象方法2.4.4.1Booch方法2.4.4.2Coad/Yourdon方法2.4.4.3Jacobson方法2.4.4.4Rumbaugh方法第3章統一建模語言UML簡介3.1UML的背景與發展歷史3.2UML1概況3.2.1UML1規範的主要組成部分3.2.2語言體系結構和定義方式3.2.3UML1的各種圖和擴展機制3.3UML2概況3.3.1從UML1到UML23.3.2UML2的4個規範3.3.2.1UML基礎結構3.3.2.2UML上層結構3.3.2.3對象約束語言3.3.2.4UML圖交換3.3.3UML2的各種圖第4章本書的OOA&D方法概貌4.1引言4.2主要概念4.2.1主要模型元素4.2.2面向對象建模的主要原則4.3模型及其規約4.3.1基本模型:類圖4.3.2需求模型:用況圖4.3.3輔助模型:其他各種圖4.3.4模型規約4.3.5OOA模型框架4.3.6OOD模型框架4.4建模過程4.4.1OOA過程……第二部分分析篇第三部分設計篇索引參考文獻
書摘/試閱
以相同的方式與系統進行交互的參與者可能有多個。例如在一個超級市場中有多個收款員。在識別收款員這種參與者時,是按照人類通常采用的抽象思維方式,把所有的收款員作為一個概念來考慮的,而不是單個地考慮每一個具體的收款員。在用況圖中,一個表示參與者的圖形符號代表了同一類型的全部參與者。
在需求分析中要找出每一類參與者,但是對參與者的描述并不需要太多信息,通常只要給出它們的名稱。如果其名稱不足以準確地表達這類參與者是一種什么人或者物,可以在用況圖的規約中附加一點簡明扼要的文字說明。
用況圖中的參與者和類圖中的類都是對現實世界中某些事物的抽象。那么,二者之間有什么區別?根本的區別是:類是系統的構成元素,位于系統邊界以內,在編程時需要用程序來實現;參與者不是系統的構成元素,只是位于系統邊界以外與系統交互的外界事物,不對應任何程序代碼。對現實世界中的某一事物,如何判斷它應該成為系統中的對象還是作為系統以外的參與者?可通過以下條件來判斷:
如果某一事物需要由系統來保存、管理和使用它的某些信息,或者由系統來實現它的某些行為,則它應該被抽象為系統中的對象,用類圖中的類來表示;
如果某一事物將與系統直接進行交互,以使用系統的某些功能,則它應該被看成系統的參與者,在用況圖中表示;
如果某一事物同時具備以上兩個條件,則它既要被抽象為系統中的對象,又要作為系統的參與者,在類圖和用況圖中都要加以表示;
如果某一事物不具備上述任何條件,則它與系統沒有任何關系,應該被忽略。
發現參與者的基本思路是:分析用戶所要求的每一項功能是由哪些人員、設備或外系統來使用的,或者說每一項功能的執行需要哪些人員、設備或外系統與系統進行信息交互。這些與系統交互的人員、設備或外系統就是系統的參與者。以下分別討論3類參與者的發現策略。
1.人員
首先從接受系統服務的人員中發現參與者。找出哪些人員是系統的直接使用者。注意,這里強調的是“直接使用”。間接地使用系統的人不能看成參與者。例如,公司的經理如果只是閱讀秘書從系統獲得的報表,而自己并不直接操縱系統,那么,參與者應該是秘書而不是經理。