




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章1.1舉至少5個子來說明“意外效應法則”在計算機軟件方面的應用。答:典型的例子包括使數字汽車儀表板的件,賦予高科技,高品質的圖像的軟件;如廣泛的消費類電子產品的軟件個人電腦業儀器儀表和機器的軟件軟件分化出的在電子商務方面的應用。1.2舉說明軟件對社會的影(包括正面影響和負面影響答:這是一個很好的課堂討論問題(如果時間允許專注于老生常談的(但很重要)隱私問題,生活質量等問題。您可能想要討論關技術恐懼方的問題,軟件也許會使它惡化但也可能減少”技恐懼“。一個有趣的方面使用諾依曼的風在中做重點討論。你也可以考慮基于軟件現金經,新模式的互動娛樂,虛擬現實,電子商務等方面來思考軟件對社會的影響。1.3針節提出的個問題,請給出你的答案,并同學討論。答:軟件需要如此長的開發時間:設施不上線開發工具并不如預期般運作客戶提出的新要求,需要重新設計和返工產品依賴于政府的規定,被意外更改。嚴格的要求,與現有系統的兼容性需要超過預期更多的測試,設計和實現。多個操作系統下運行的任務需求比預期需要更長的時間。軟件項目風險管理比預期需要更多的時間。依賴的技術仍處于開發階段,從而延長日程安排。開發成本高:比當時預期低得令人無法接受的質量,需要進行更多的測試,設計和實施工作。制定了錯誤的軟件功能需要重新設計和實施。開發錯誤的用戶界面,而導致重新設計和實施。開發了不需要的額外的軟件功能而延長了開發日程安排。在將軟件交付顧客使用之前,我們無法找到所有錯誤:產品依賴于政府監管,意外而改變。產品技術標準草案,會意外更改。有時會在項目后期添加新的開發人員。因為團隊內的沖突有時會導致溝通不暢,而產生糟糕的設計。破壞高效調度產生的項目管理成果和無效的規劃有時裝備部件質量差,導致額外的測試,設計和集成工作和管理額外的客戶關系。軟件開發和維護的過程仍舊難以度量:有時該項目的目的是不明確。有大量的業務所涉及的風險。如果產品內置沒有裝好。我們需要不斷檢討我們的工作。進行維護檢查的時間。在整個軟件開發過程中要徹底組織項目團隊。1.4在付終用戶之前,或者首個版本投入使用之后,許多應用程序都會有繁的變更。為防止變更引起軟件退化,請提出一些有效的解決措施。答多代應用程序在他們呈給最終用戶之前和第一個版本別使用后經常改變下個方面來阻止軟件惡化:收集所需的信息。設計師和客戶定義軟件的總體目標。識別已知的需求。使用現有的程序片段后,有助于建立原型的開發人員的工作計劃快速完成。只有通過合格的培訓或經驗和充分揭露相關的不足保和提高我們的技術能力和讓其人承擔技術任務文件應該被及時制定出來,在文件中應該有標準定義和機制建立。完成某一特定階段的審查工作。每一個關鍵團隊成員應該配有一個后備人員檢查規避風險的步驟是否應用正確對未來的風險分析中檢查是否有必要收集必要的信息。1.5思節中提到的7個件分類問否用一個軟件工程方法用所有的軟件分類?并就你的答案加以解釋。答:七個軟件分類可應用于同樣的方法。在這不確定的今天這的,無疑有很大的影響(對于商務人士,軟件工程師和最終用戶來說)然而,軟件工程師可以準備通過實例化一個過程使有足夠的靈活性適應性適應劇烈變化的技術技術一定要在未來的很長一段時間被商業規則所接受。1.6圖1-3中將軟件程三個層次放在了“質量關注點”這層之上。這意味著在整個開發組織內采用質量管理活動,如“全面質量管理細研究,并列出全面質量管理活動中關鍵原則的大綱。答:你也許建議同學閱讀第十六章的知識來解決問題。1.7隨軟的普及,由于程序錯誤所帶來的公眾風險已經成為一個愈加重要問題。設想一個真實場景由軟件錯誤而“界末日般大危(危害社會經濟或是人類生命財產安全答:確實有很多現實生活中的情況來選擇,例如,軟件錯誤,造成了重大的電話網絡失敗。如在航空電子設備故障導致飛機墜毀算機?。ㄈ缑组_朗基羅的攻擊給主要的電子商務網站造成了重大的經濟損失。1.8用己話描述過程框架。當我們談到框架活動適用于所有的項目時,是意味著對于不同規模和復雜度的項目,可應用相同的工作任務?請解釋。答:過程框架適用于所有的項目,在相同的工作任務,適用于所有項目,無論其規模大小或復雜性個程框架涉及大量與客戶溝通來收集需求個活動建立了一個軟件工程工作計劃它涉及到創建模型這有助于開發人員了解顧客的要求從而進行設計而及構建(代碼生成和錯誤測試)。最后,它提供了基于評價的反饋。1.9普性動存在于整個軟件過程中,你認為他們均勻分布于軟件過程中,是會集中在某個或者某些框架活動中?答傘動在整個軟件過程中發生們被均勻地應用在整個過程中分還包含一系列的工作任務(例如需求收集,制定,協商規范和驗證),一個過程框架有一組傘被應用在整個軟件過程活動中。這些活動包括:軟件項目跟蹤和控制,風險管理,軟件質量保證,和正式的技術審查,測量,軟件配置管理,可重用性管理和工作產品的制作和生產。在節列舉的神話中,增加兩種軟件神話,同時指出與其相對應的真實情。答:沒有標準答案(例如測試可以解決所有的程序錯誤第二章2.1在章的介紹中說過過程為用戶和設計者之間戶和開發工具之間以及設計者和開發工具之間提供交互的途徑[技術]于構建的軟件產品,在以下方面設計五個問題)計者應該問用戶的問題用應該問設計的問題用對將要構建的軟件自問的問題)計者對于軟件產品和建造該產品采取的軟件過程自的問題。答:)設計人員詢問用戶:產品滿意嗎或者它需要重新設計或返工嗎?征求用戶輸入來避免產品不滿意和要求返工。有新要求的需要嗎?該產品比估計的大嗎?與預期的相比模塊需要更多的測試,設計和實行工作來糾正嗎?用戶詢問設計者的問題:范圍明確嗎?我們是否有開發工具和人員開發軟件所需的技能?定義的需求是正確的嗎?還有沒有額外的需要?特定領域的軟件產品比平時的花費更多的時間嗎?該模塊是否需要更多的設計測試?c)用戶對將要構建的軟件自問問題:軟件產品的范圍和目的是什該產品比估計的大嗎?有優秀的人可用嗎?工作人員可靠嗎有沒有具備所需要的技能?能保持工作人員的離職率足夠低嗎?)設計者對于軟件產品和建造該產品采取的軟件過程自問的問題:范圍和目的文件是什么?要使用什么樣的工具?有什么目標和規避風險的優先事項?對風險分析,識別,估計,評價和管理會有什么樣的步驟?2.2為通活動設計一些列的作,選定一個動作作為其設計一個任務集。答:任務交流活動設置務組將定義實際的工作需要以完成一個軟件工程的行動這都是對于通信的活動:利益相關者對項目做一個列表。邀請所有利益相關者的非正式會議。要求他們作出特性和功能列表。討論需求并建立一個最終的的列表。他不確定的優先級的要求和要注意的地方。這些任務可能是一個復雜的軟件項目,然后,他們可能包括:要行系列的范會議,基于利益相關者的輸入,建立了初步的功能和特性列表。要立一個股權持有人要求的修訂清單。使用質量功能展開技術來滿足需求。注意在系統上的約束和限制。討論驗證系統的方法。2.3在通程中,遇到兩位對軟件如何做有著不同想法的利益相關者是很常的問題。也就是說你得到了相互沖突的需求。設計一種過程模式(可以是步驟模式2.13節針對此類問題的模板,給出一種行之有效的解決方法。答:模式名:利益相關者的需求沖突。意圖:此模式描述的方式是解決利益相關者之間在通信框架活動中的沖突。類型:階段模式。初始背景:利益關者已確定利相關者和軟件工師已經建立了協作通軟要解決的主要問題由軟件開發團隊已建立。對開發的項目范圍,基本的業務需求和項目的限制有了初步的了解。問題:對正在開發的軟件,利益相關者的需求出現了相互的矛盾。解決辦法所有的利益相關者被求區分需求的優先級時保住利益相關者的優先級最高或投票的最多的需求從而解決這一問題。結果:由利益相關方的確定的需求優先順序列表來指導軟件開發團隊構件軟件初始模型。相關模式:定義指導和協作方針,范圍隔離,需求收集,約束描述和混合需求。已知用例:必要的溝通是貫通整個軟件工程中。2.4閱[001],然后寫一篇2-3頁論文,討論混亂對軟件工程的影響。答案略。2.5詳描述三個適用于采用布模型的軟件項目。答:適合瀑布模型的項目例如數據結構,軟件架構,程序的細節和接口表征的對象。2.6詳描述三個適用于采用型模型的軟件項目。答:相對容易的原型模型幾乎總是涉及人機交互或雜計算機圖形軟件應用程序,有時適合原型模型是某些類別的數學算法驅動系統和其他應用在沒有實時交互時結果可以很容易地檢查以用原型模型的應用程序括控制和過程控制功能許多種類的實時應用程序和嵌入式軟件。2.7如將原型變成一個可發的系統或產品,應該如何調整過程?答果原型變成一個可發布系統或產品件工程師和客戶需要滿足和定義軟件的總體目標,識別已知的任何要求整體輪廓進一步的強制定義。原型作為一種機制,用于識別軟件需求一工作原型被建立了商試圖利用現有的程序片段或應用工如,報表生成器,窗口管理等)使工作方案,可以快速生成。2.8詳描述三個適于采用增模型的軟件項目。答每個線性序列產生增交的軟件,例字處理軟件開發使用增量范式可能會提供基本的文件管理編輯和文件作功能在第一增量復雜的編輯和文件制作能力在第二增量拼和語法檢查在第三增先進的頁面布局能力在第四增量任何增量的處理流程可以納入原型范式發是別有用當人員無法在經營期限為一個已成立的項目做完美的實施。2.9當著螺旋過程流發展的候,你對正在開發或者維護的軟件的看法是什么?答:隨著工作的螺旋向外移動,產品走向一個更完整的狀態,執行工作的抽象層次減少了??梢杂脦追N過程模型嗎?如果可以,舉例說明。答過模型可以合用每個模都有個有點不同的處理流程但都執行相同的通用框架活動集:溝通,規劃,建模,施工和交反。例如線性順序模型可以作為一個有用的過程模型,在被固定的情況下,要求工作以線性的方式繼續進行,直至完成。在這情況下,開發者可能無法確定一種算法的效率個操作系統的適應性或應采取的人機交互的形式這之中以許多其他場合原型??梢蕴峁┳詈玫霓k法其他情況下以漸進的方式可能是有意義的和螺旋模型的流動可能是有效率程模型具有許多的一個或多個傳統的特性。協同過程模型定義了一套“狀態自己的話描述一下這些狀態表示什么,并指出他們在協同過程模型中的作用。答:簡而言之發進程模型假定不同的部分項目會有所不同階段的完整性,因此,不同的軟件工程活動都被同時執行。目前的挑戰是管理的并發,并能夠評估該項目的狀態。開發量“足夠好軟件,其優點和缺點是什么?也就是說,當我們追求開發速度勝過產品質量的時候,會產生什么后果?答:開發質量“足夠好”的軟件可能會碰到死亡線(截止時間質量會是比較好的。當追求開發速度超過了產品的質量可能會導致許多缺陷該軟件可能需要更多的測試設計和實施工作需求定以的不是清楚可能需要不斷地改變半調子和速度過快開發都可能導致無法檢測到重大的項目風險。質量太差可能導致過多的質量問題和頻繁的返工。詳細述三個適于采用基于構件模型的軟件項目。答:我會建議推遲這個問題直到“軟件過程改進”這一章。我們可以證明一個軟件構件甚至整個程序的正確性,可是為什么并不是每個人都這樣做?答:這是可能的用數學技術來證明軟件組件至整個程序的正確性然,對于復雜的程序,這是一個非常耗時的過程。用詳盡的測試是不可能證明任何不平凡的程序的正確性,統一程和是同一概念嗎?解釋你的答案。答供必要的技術支持和面對象的軟件工程實踐它不提供流程框架來指導項目團隊,在他們的技術應用中。在近幾年中,雅各布森,和制定的統一過程中框架使用的面向對象的軟件工程。今天,統一的流程和被廣泛應用于各種面向對象的項目。第四章4.1需不的改變,理解需求問題是軟件工程師面臨的最困難的工作之一,此他們更少注意需求在些情況下,工程們會化繁為簡他況下,工程師們必須嚴格地執行具體定義的需求。需求分析是設計和施工的橋,不能跳過。4.2你以試使用方法比如(質量功能部署)通過客戶訪談和觀察、調查以檢查歷史數(問題報告為需求收集活動獲取原始數據后把這些數據翻譯成需求表——稱為客戶意見表并客戶和利益相關評審下來使用各種圖表矩和評估方法抽取期望的需求并盡可能導出令人興奮的需求。4.3事上客和開發人員會有一個協商的過程發人員會要求客戶權衡產品的性能與產品成本上市時間之間的關系這個協商的目的是開發一個項目計劃個計劃在滿足客戶需求的同時又能準確反映了軟件開發過程中約(時間人預)不的是這樣的項目計劃很難達成,每個客戶都有自己的觀點。這些觀點并不對其他客戶都適用,此外時間是另一個重要的約客戶可能沒有時間與發人員討論需求,這使得問題更加復雜。4.4需模的目的在于描述所需的信息、功能和計算機系統的工作領域。隨軟件工程師對系統了解的深入以及利益相關者越來越了解他們真正的需求,這種需求模型是不斷變化的。因此,分析模型在任何時候都是用戶需求的簡介4.5最的協商是爭取“雙贏這會使你成為是一位談判大師。這些初期步的成功實施可以達到一個雙贏的結果,這是繼續開展后續的軟件工程活動的關鍵。4.6第組下文無關問題集主要關注的是客戶、總體目標和利益。例如,需工程師可能會問:誰是這項工作的最初請求者?誰將使用該解決方案?成功的解決方案將帶來什么樣的經濟收益?對于這個解決方案你還需要其他資源嗎?4.7-4.9答案略。用例描述了參與者所能觀察到模型圖圖勵系統的功能視圖應轉換為面向對象的視圖。在許多情況下,為了提供更多的相互作用,用例圖需要做更詳細的闡述。任何有一些軟件項目需工程經驗的人都開始注意到定應用領域內某些事情在所有的項目中重復發生些分析模式在特定應用領域內提供了一些解決方類能行為為多應用項目建??梢灾貜褪褂谩W詈脜f商是爭取“雙贏”的結果,即利益相關者的“贏”在于獲得滿足客戶大多數需要的系統或產品,而作為軟件團隊一員贏在于按照實際情況、在可實現的預算和時間期限內完成工作。當需確認解釋了一個錯誤時,每個需求有一個問題清單。之后會有評審小組尋找它。確認需求的評審小組包括軟件工程師、客戶戶和其他利益相關者他在檢查系統規格說明,查找內容或解釋上的錯誤及可能需要進一步解釋澄清的地方丟失的信息、不一致性(這是建造大型產品或系統時遇到的主要問題的需求或是不可實現的(不能達到的)需求。第五章5.1有有可能在分析建模創后立即開始編碼?解釋你的答案,然后說服反方。答分模型作為領域對象的設計和結構的基礎服務定義了對象和屬性后就可以開始進行編碼,也就知道了對象之間的關系。5.2一單經驗的分析原則是:模型“應該關注在問題域或業務域中可見的需求這些域中哪些類型的需求是不可見的?提供一些例子。答正我們所知道的在始段很可能沒有完整的需求規范客戶可能不是非常精確地確定他們的所有需求者沒有把握使用一個具體的方法來正常的完成系統的功能和性能。為了需求分析和建模,不傾向使用迭代的方法。分析師所將認識到的東西進行建模,并使用此模型作為軟件增量的設計的基礎件量作為流程迭代的一部分被制作出來這些領域中需的類型是不可見可能因為一些功能必須在系統中實現系統展示的行為是什么,屬性定義的接口有哪些,應用的約束有哪些?5.3域析目的是什么?如何將域分析與需求模式概念相聯系?答域析是持續的軟件工程活動與任何的軟件項目相關聯它與需求模式的概念相聯系域析是通過一系列活動進行表征的過程些活動從識別域開始以描述域中對象和類的規范為結束。5.4有有能不完成如圖所的4種素就開發出一個有效的分析模型?解釋一下。答:如果沒有圖6.3所的元素,是不可能開發出一個有效的析模型。分析模型作為域對象的設計和建造的基礎。5.5構如系統中的一個:你所在大學基于網絡的課程注冊系統。一個計算機商店的基于的訂單處理系統。一個小企業的簡單發票系統。內置于電磁灶或微波爐的互聯網食譜。選擇你感興趣的系統開發一套試題關系圖并說明數據對象、關系和屬性。答需強調的是所有的數據象和關系一定客戶可見的了確認屬性正確地反映出系統的需求,屬性應該被檢查固定答案)5.6-5.9答案略。什么是分析包?如何使用分析包?答:將分析模型的各種元素以包組的方式進行分類,成為分析包。為了說明分析包的作用,請思考一下視頻游戲。作為視頻游戲的分析模型,道出了大量的類。第六章6.1對需分析,結構分析與面向對象策略有何本質區別?答結分析考把數據作為離實體的變形的數據和過程據目標是被使用它們已被定義的屬性和關系建模的程作數據目標是被使用它們在系統中的數據流向建模的向對象分析,集中于類的定義和它們合作對用戶需求所帶來的效果的方式。6.2在據圖中,一個箭頭表示控制流還是其他?答:數據目標是用有標簽的箭頭所表示的。6.3什是信息流連續性”?當重新定義一個數據流時,如何應用它?答:數據流動連續性意味著在同一等級中的輸入和輸出必須和它們的精確等級相同。6.4在成時,如何使用圖形化解析?答在一次需求整合會議中應用工程描述中分離所有名詞和動詞的第一步被導出文法解析中,動詞時處理和可以被如中的描述的。名詞是中的外部實體(盒子或控制目標(箭頭數據存儲(雙實線6.5什是制規格說明?答:控制規格()以兩種不同的方式描述了系統的行為(在被提到的基準線上),包括一系列行為的規格的狀態圖。它也包括程序行為表——組合的行為規格。6.6和例同一事物嗎?如果不是,請解釋區別。答:不是。過程規格被用于去描述所有現在最終精煉等級的流程模型過程(算法觀點個有用的情況描述一系列行為包括演員和系統(更著重于用戶可見行為而非算法6.7表行建模時有兩種不同“狀態”類型,它們是什么?答動態展現出目標屬性的確情況動狀態指明了目標在轉化或執行過程中的正確情況。6.8如從態圖區分順序圖?它們有何相似之處?答:狀態圖描述了系統的狀態并且展現了事件如何影響系統狀態。順序圖指明了事件如何引起目標的遷移。——答案略。第七章7.1是,是設計是隱式進行的——通常以隨意的方式進行的。在設計過程,我們研究程序的表現形式,而非程序本身。7.2軟設的目的是運用一系列的原則、概念和實踐導致高質量體系或產品發展。設計的目標是創建一個可以正確地實現所有客戶需求并有好的用戶體驗的軟件模型。7.3通開一系列的正式技術評審來評估質量。正式技術評審是由軟件團隊員召開的會議。通常,根據將要評審的設計信息的范圍,選擇2人3人或4人與。每個人扮演一個角色評組長策劃會議、擬定程并主持會議錄記錄筆記以保證沒有遺漏;制作人是指其工作產(如某個軟件件的設計被評審的人。在技術評審會議結束后,軟件團隊決定未來的行動以來完成最終的產品。7.4為開一個完整的設計模型,軟件團隊反復地開發每個模塊的元素。每迭代提供額外的細節并且細化此設任務應用于一個項目可能不同于他們應用其他項目隊須適應一個通用的任務集去滿足產品和項目的需要量的評估在有被修改的錯誤的組件級的設計任務集。任務集在章節中給出。7.5略7.6軟體結構是程序組件(模塊)的結構或組織,這些組件相互作用的方和數據結構被這些組件所使用而在更廣泛的意義上講件可以推廣到代表主要的系統元件以及它們之間的交互。7.7略7.8分關點涉及通過將其分成單獨解決的子問題解決一個復雜的問題,一問題的不同部分是相互結合的方式給不的考慮而是合并考慮更復雜的情況高度耦合的問題表現出這一特征然而問的分繼續組合因為信息量超過了解一個人的能力不能無限期地進行下去,因此,當問題非真,模塊化可以修改,但不能消除。7.9在些間關鍵應用程序可能需要單塊集成軟件。然,如果軟件是塊化實現,設計可以而且應該實現的塊是內聯編碼。信息藏與耦合和內聚概念有關限信息的可用性于些對需要的模塊,模塊之間的耦合在本質上是降低了一般情況下,信息隔離謂詞有隔離功能,因此塊凝聚力也可以改善外部環境、編譯器和操作系統耦合對軟件可移植性造成不利影響。例,考慮一個程序這程序被設計用來充分利用智能終端的特殊圖形的特征。如果沒有終端的軟件被搬到一個系統主要設計和代碼可能要修改。我們建一個功能體系由此來提煉問題。例如,考慮到檢查寫入,我們可能這樣寫:;;;;;>";;;;();;;;;細化1:寫出大寫金額總數。細化2:寫出大寫金額數的程序:驗證金額數是否在允許范圍內;通過解析來確定美元單位;用來示金額數,寫出;結束寫出大寫金額數程序細化3:寫出大寫金額數的程序:檢查是否還有未打印的支票,如有進入下面的循環判斷支票金額數是否大于上面指定的金額數如果大于打印“金額數太大”的錯誤信息否則確定過程標志符為1。結束判斷。當過程標志符為1和效數字存在的話,進入下面的循環:確定最高有效位;設置對應阿爾法短語劃分來確定整數值;連接部分α字符;略不構一種不改變代碼的外部行為和其功能而改善軟件產品的內部質量的過程可能是提高了一個函數的處理速度或者在另一個系統中起到簡化組件的作用。四個素的設計模型:設計模型的四個元素:數據類設計——建立由分析轉化的基于類內元素的類模型和按數據結構要求實現的軟件。結構設計——定義大體軟件元素結構件的關系。接口設計——描述軟件元,件元素和用戶終端通信。組件等級設計——建立由軟件組的程序描述中的軟件結構所定義的元素結構變形。第八章用一個房屋或建筑結構作比喻,與軟件體系結構作對照分析。經典建筑與軟件體系構的原則有什么相似之處?又有何區別?答筑軟件在風格與模式的念存在于宏觀與微觀層面如有的方子都有總體風格(墻頂地基這代表了子的宏觀風格微觀上的模(房子可在木材的類別、壁爐的設計以及窗戶上體現出來件體系結構也一樣不同部件通過不同方法的組裝形成了不同的系統。不同點:一個比較實際,另外一個比較抽象;房屋或建筑物可變化的空間比較小,軟件體系結構變化跨度更大一點8.2舉到個例子,說明8.3.1節提到的一種體系結構風格的應用。答:數據中心體系結:航空訂票系統;書館目錄系統;賓館訂閱系統。數據流結構:任何工程或科學中主要功能是計算的應用程序。調用和返回結構:任何申請。面對對象的體系結構:基于的應用程;任何面向對象的應用程序。分層體系結構用功能必須從底層操作系統或網絡詳細信息分離的應用程序戶服務器軟件通常是分層的。8.3節中提到的一些體系結構風格具有層性,而另一些則沒有。列出每種類型。沒有層次的體系風格如何實現?答層次:數據流,調用返回層。非層次:數據中心,面向對象。非分層體系結構可能是應用面對對象和驅動編程技術的最好實現。8.4在件體系結構討論中,經常會遇到體系結構風格、體系結構模式及框(本書中沒有討論)等術語。研究并描述這些術語之間的不同。答:許多人把建筑模式和建筑風格等價定義(把通用系統模型作為程序設計的起始點管模式往往不太廣泛框可能會被一些人定義為一組提供了一個通用的解決問題方案的類,被解決的問題可以被細化到創建一個應用程序。8.5選擇一個你熟悉的應用,回節對于控制與數據提出的每一個問題答:答案不固定。8.6研究([98])并對節出的個步驟進行詳細論。答:答案不固定。8.7如果還沒有完成習5.6先成它用本章描述的設計方法開發的軟件體系結構。答:答案不固定。8.8使數據流圖和過程說明,描述一個有清楚變換流特征的計算機系統。義流邊界并使用8.6.1描述的技術將映射到軟件體系結構中答:答案不固定。第九章9.1構級設計定義了數據結、算法,界面特性以及分配給每個軟件構件的通信機制。在面向對象語言中(或)構件為類或對象。在傳統語或中構件式函數或操作過程。在混合語言中(如)構件可能是函數或類。9.2像向對象的構件一樣,統軟件構件是由分析模型所導出的。然而在這種情況下,導出構件是以分析模型中面向數據流元素作為基礎據圖的最低層的每個變換都被映射為某一層上的模塊。控制構件(模塊)位于層次結構(體系結構)頂層附近,而問題域構件則傾向位于層次結構的底層。為了獲得有效的模塊化,在構建細化的過程中采用了功能獨立性的設計概念。9.3原模(構件)應該對外延具有開放性,對修改具有封閉性。設計者應采用一種無需對結構自身內代或內部輯修改就可以進行的擴在建所確定的功能域內)的方式來說明構件計者進行抽象那些需要擴展的功能與設計類本身之間起到緩沖區作用。9.4依性置原則),依賴于抽象。不依賴于具體實。構件依賴的其他具體構件(不是依賴抽象類,如接口)越多,擴展起來越困難。9.5構級計中面向對象系統的上下文中,內聚性意味著構件或者類只封裝些相互關聯密切以及與構件或者類自身有切關系的屬性和操作內的構件會與其他構件提供的服務“絕緣而使其實施與維護更加容易。9.6耦是之間彼此聯系程度的一種定性度量。隨著類(構件)相互依賴越來越多,類之間的耦合程度亦會增加。低耦合的好處是構件可以被修改但不會影響其他構件。9.7外耦發生在組件通信或與基礎設施組如作統功能、數據庫功能、通信功能。雖然這種類型的耦合是必要它應該是局限于一小部分系統件或類。軟件必須在內部和外部溝通。因此耦是一個不爭的事實。然而,計師應盡可能減少耦合和理解高耦合的影響不可避免。9.8略9.9重是統決策集散控制的過程,目的是讓頂層模塊執行控制功能,而底層模塊處理所有輸入執行和輸出工作逐步求精是通過連續精化過程細節層次來實現程序的開發傳統軟件開發中兩者是很相似的。構件定義為以下兩點之一:定義良好的聚合功能,為最終用戶處理內容,或提供計算或數據處理內容和功能的聚合包,提供最終用戶所需的功能。略略略人可以短暫記憶一小部分東西,分可以使評審者將相關概念組合成大的碎片或更大的分塊那些具有分塊功能的構如果構件具有高內聚低耦合特性可以使評審者在設計審查時更簡單的追蹤幾個構件的相互作用而不是大量的單各類或方法。第十章這道應該不難許多早期交互式系統都有糟糕的界面在現代環境讓的學生們注重基于的應用程序界面。許多應用程序為了犧牲易用性。例子下:在它們引起“可撤銷的”損害之前抓住潛在的交互錯誤。允許用戶自定義屏幕布局以及命令。利用分離菜單,以便通用功能。例子下:如果用戶有需求,在屏幕上一直顯示快捷鍵命令序列。當一個應用程序需要密碼輸入的時候,提供“密碼提示”機制。例子下:使用一致的顏色,例如,紅色用作警示信息,藍色用作通知信息;提供關鍵字驅動的在線幫助。答案。如果的學生在任務分析上出了問題,老的備用將會有效。問者入什么?它是怎么處理的?處理過程是如何通過界面表現出來的?產生的輸出是什么?案略。當應時間無法預測的時候,使用者會很不耐煩并且重復嘗試請求的命令或者試另一個命令。在某些情況下,這會產生(命令的)排隊問題,并且在極端的情況下,會引起數據的丟失或者甚至是一個系統故障究表明戶可以容忍他們熟悉的應用程序的響應率50%變化。對于那些不熟悉的應用程序,使用者15秒意外的延遲(也就是他們短期記憶的半衰期)后會很焦慮。答案略。如你想要給你的學生一些工作項目表的范例,互聯網是一個很好的可用性調表的來源(大部分都應該有超過道的問題,所以你的學生應該需要優先考慮他們的選擇)第十四章用自的話描述驗證與確認的區別。兩者都要用測試用例的設計方法和測試策略嗎?答是通過嘗試在功能或性能上發現錯誤來保證程序的正確性”保證軟件與需求相一致——這也是質量的基本特征。列出些可能與獨立測試組()的創建相關的問題。與小組由相同的人員組成嗎?答:組建(獨立測試組)最常見的問題是獲得并留住人才,除此之外,如果與軟件工程小組的交流組織地不恰當的話,兩組之間可能會產生敵意。最后能晚接手項目,導致沒有時間完成一個周密測試的計劃和執行和(軟件質量保證組必是同一組人。只關注測試,小組則需要考慮到質量保證相關的所有方面。使用14.1.3節中描述的測試步驟來建立測試軟件的策略總是可行的嘛?對嵌入式系統,出現哪些可能的復雜情況?答它不總是能夠進行單元測試的測試環境成單元測試的復雜(復雜的驅動和存根可無法證明效益集測是復雜的通過單元測試的模塊合并計劃的有效特是當這些模塊滯后的時候很情況下(尤其是嵌入式系統)軟件不能充分進行驗證測試硬件配置外的目標。因此,驗證和系統測試要相結合。為什對具有較高耦合度的模塊進行單元測試?答一高度耦合的模塊要與其他模塊的數據和其他系統元素進行交互此功能往往是依賴于這些耦合元件的操作了底的單元測試這樣一個模塊合素的功能必須以某種方式模擬。這將會是困難和費時的。14.5“防錯法”的概念是一個非常有效的方法。當發現錯誤時,他提供了內置調試幫助:為防錯發開發一組知道原則。討論利用這種技術的優點。討論利用這種技術的缺點。答個一的規則涵蓋了多種況有數據在軟件接外部和內部當過驗如果可能的話優點:錯誤不會滾雪球——滾越大缺點:需要額外的處理時間和內存(那通常只是一個很小的代價項目進度安排是如何影響集成測試的?答完模塊的可用性的影響順序和戰略整合目狀態必須是已知的可以成功地實現整合規劃。在所的情況下,單元測試都是可能的或是值得做的嗎?提供實例來說明你的理由。答一模塊有或個屬供應數據模塊的一個有意義的評價是至關重要的“聚類所有的模塊作為一個單元,它可能無法進行單元測試。誰應完成確認測試——是軟件開發人員還是軟件的使用者,說明你的理由。答開發商如果客戶驗收測試劃發人員和客用戶果沒有進一步的測試計劃。一個獨立的測試組可能是這里最好的選擇,但這不是一個選擇。為本討論的系統開發一個完整的測試策略,并以測試規格說明的方式形成文檔。答:略作一個班級項目,為你的安裝開發調試指南。這個指南應該提供面向語言和向系統的建議這些建議是通過總結校學習過程中所遇到的挫折得到的一經過全班和老師評審過的大綱開始,并在你局部范圍內將這個指南發布給其他人。答:略第十五章[79]用以下程序作為測試能力自我評估:某程序讀入三個整數值表示三角形的三條邊改序打印信息表明三角形是不規則的腰的或等邊的開發一組測試用例測試改程序。答:參考[79]對此問題提出的極其詳細解決方案。設計實現描述的程序(適使用錯誤處理程序中導出流圖并用基本路徑測試方法設計測試,以保證程序中的所有語句都被測試到。執行測試用例并顯示結果。答:你可以選擇發布程序源代碼給您的學生(故意地嵌入一些錯誤你能想出節沒有討論的其他測試目標嗎?答:除了那些目標之外還有:一個成功的測試顯示功能和性能要求;一個成功的測試發現文件錯誤;一個成功的測試發現接口問題;一個成功的測試驗證了程序結構,了解數據結構,界面設計和程序設計;一個成功的測試,建立了一個進入一個測試案例數據庫,以后可以用于回歸測試。選擇個你最近設計和實現的構建計組測試用例證用基本路徑測試執行所有語句。答:略答:進行一些拓展,這些問題可以被指定為一個長期的項目。至少出三個例子,在這些例子中,黑盒測試能給人“一切正?!钡挠∠螅缀袦y試可能發現錯誤。再至少給出三個例子,在這些例子中白盒測試能給人“一切正?!钡挠∠螅诤袦y試可能發現錯誤。答:對于特定的輸入,一個內部發生的錯誤導致:不恰當的數據被設在一個全局數據域里;不恰當的標記將在隨后進行的一系列測試中被測試;不恰當硬件控制,只可能在系統測試時被發現;但是卻產生了正確的輸出。不即使窮舉測試(如果可能的話)也不能發現軟件說明書中的性能問題和錯。在這種情況下需要同時考慮輸入和輸出的等價類。對每一個類來說,學生應當根據數值范圍,集合的元素,系統命令等劃定邊界。這可以作為筆試以及一些著名應用的測試用例的素材成一系列用例來幫助測試用戶的文件材料是一個好辦法。第十六章用自的話,描述為什么在面向對象系統中,類是最小的合理測試單元。答類裝了數據以及處理數據的操作于數據和操作被打包成一個整體個一個地測試方法沒有作用,不能發現與消息傳送,職責和協作相關的錯誤。若現有類已進行了徹底的測試,為么我們必須對從現有類實化的子類進行重新測試?我們可以使用為現有類設計的測試用例么?答由于每一個子類都繼承了父類的私有屬性和操(事實上這些私有屬性和操作會增加復雜度這些子類必須在他們的操作環境中重新測試測試用例可以重復使用,但需要針對子類的私有屬性和操作進行擴充。16.3為什“測試應該從面向對象分析和設計開始?答之的開發過程中面向象分析和設計模型提供了大量與系統結構和行為相關的信息,因此在生成代碼之前,這模型必須經過嚴格的審查有向對象的模型應當在模型的語法語以及語用論的上中經過正確性完整性,一致性的測試(包括技術評審這些評審有可能省去很多不必要的工作和修改(錯誤越早發現,維護的成本越低為導一組索引卡片,按照節講述的步驟確定是否存在不一致性。答:答案會有不同基于程和基于使用的集成測試策略有什么不同?簇測試如何適應?答于程的測試用來集成一列需要對單獨一個程序輸入或事件響應的類于用的測試屬于集成測試的一種通過測試那些很少使用服務器類的稱為獨立類開始系統的構造。測試完獨立類之后,測試使用獨立類的下一層類(稱為依賴類這樣的順序逐層測試依賴類直到整個系統構造完成。將隨測試和劃分方法運用到設計系統時定義的個展示操作調用序列的測試用例。答:答案會有不同運用類測試及從設計的行為模型中生成的測試。答:答案會有不同運用機測試、劃分方法、多類測試及16.5節和16.6節描的銀行應用的行為模型導出的測試,再生成另外生成4個試。答:答案會有不同第十八章基于本章給出的信息和自己的經驗列舉出能夠增強軟件工程師能力的“十條戒律即,列出10條導原則,使得軟件人員能夠在工作中發揮其全部潛力。答:你要變得更聰明。你要注重質量。你要傾聽客戶。你要了解問題你要對一個工作過程不斷的重復。你不可同意荒唐的時間表。你要測量產品,過程和你自己。你要制定最有效的工作方法。你要記住,別人也會軟件工作。你要不斷地提高。的人員能力成熟度模型定義了培養秀軟件人員的“關鍵實踐域老將為你指派一個關鍵實踐域,請你對它進行分析和總結。答:略。描述3現實生活中的實際情況中客戶和最終用戶是相同的人描3種他們是不同人的情況。答:相同的人:)一個工程師必須開發一個供個人使用的程序)個商人創建供個人使用的電子表格模型)個擁有迷人的手機客戶端這一新概念的企業家。不同的人)個信部門的一些業務功能的服務)個軟件開發團隊服務銷的需求)承包商建立的客戶的規格。高級理者所做的決策會對軟件工程團隊的效率產生重大影響3種們是不同人的情況。答:在今天的環境,裁員和外包有最直接的、重大的影響。此外“減少開支的措施,導致較低的產品質量;不切實際的項目最后期限;對用戶的需求了解失敗;或者,反過來說,對軟件工程師的工作提出警告。溫習[,寫出一份的總結,說明在使用模型時應該考慮的問題。答案:略。在一信息系統組織中被指派為項目經理你的工作是開發一個用程序程序類似于你的團隊已經做過的項目,只是規模更大而且更復雜。需求已經由用戶改寫成文檔。你會選擇哪種團隊結構?為什么?你會選擇哪(些)種軟件過程模型?為什么?答一封閉范型方法的團隊結構是一種選擇于需求明確這能會要求和配置多個分區小組規模大的項目緩和了利團隊的方面于沒有討論日程我們假設的交貨日期是合理的。因此,有可能使用一個線性的順序過程模型。然而,迭代模型(例如,螺旋)也是一個很好的可能性。你被派為一個小型軟件產品公司的項目經理。你的工作是開發一個有突破性的產品,該產品結合了虛擬現實的硬件和高超的軟件為家庭娛樂市場的競爭非常激烈成這項工作的壓力很大。你會選擇哪種團隊結構?為什么?你會選擇哪種過程模型?為什么?答:隨機式范型的團隊結構可能是唯一可行的選擇,給出了模糊的要求和工作性質的實驗。應該使用原型開發方法或者一個曾量的過程模型。你被派為一個大型軟件產品公司的項目經理工是管理該公已被廣泛使用的字處理軟件的新版本的開發。由于競爭激烈經規定了緊迫的最后期限并外公布。你會選擇哪種團隊結構?為什么?你會選擇哪些軟件過程模型?為什么?答:一個開放式范型團隊結構可能是最好的定時間壓力和熟悉的工(而,封閉的方法范式團隊可能也很好)。一個曾量過程模型被推動這項工作性質的最后期限所指明。在一為基因工程領域服務的公司中被派為軟件項目經理的工作是管理一個軟件新產品的開發該品能夠速基因分類的速度項工作是面向研究及開發的其目標是在下一年度內生產出產品選哪種團隊結構?為什么?你會選擇哪些軟件過程模型?為什么?答個機式范型可能是最好因為這項工作是實驗性的有個企業的最后期限。另一種可能性是使用一個開放式范型的團隊結構曾過程模型和進化過程模型可以用于推動給予限期的這項工作。要開發一個小型應用軟件,它的作用是分析一所大學開設的每一門課程,并出課程的平均成績(針對某個學期該問題的范圍陳述。答:分數分析應用程序將獲得所有本科和研究生的學分課程的成績和在某一學期課程注冊數據庫。分數分析應用程序會讀每一門課程的所有等級和計算平均成績,使用的數值范圍A=4和其他等級分配值來作為等級值存到29-1檔。本程序會打印一個報告顯示每門課的教師和平均成績個報告可能會按平均成績或者教師等其他類似的特征排序程序可能會運行在操作系統下。出18.3.2中討論的頁面布局功能的第一級功能分解。答:一個簡單的分解:頁面布局定義頁面參數分配文本區域分配圖形區域強調定義(線,著色等)輸入入文本輸入入編輯文本編輯圖形出頁出頁面最終頁面布局第十九章用自的話描述過程度量和項目度量之間的區別。答程量是用來對設計和建計算機軟件的活動進行評為了在后續項目提高這些活動項目度量是用來評估軟件項目的狀態。為什有些軟件度量“有的?給出3個有度量的例子并給出個公有度量的例子。答:當待評估的特征無法被直接測量時一種間接的的測量方法將被使用,例如,“質量不能被直接測量所以只能測量軟件其他的特征件的很多度量工作都間接的為件不是一個有形的可以用直接測量的實體。例子能直接度量的物體紙的數量人的數量不同文件的數量不能直接度量的物體可讀性(利用模糊指數)完整性(計算你收到”服務臺問的數量可維護性定時改變文)什么間接測量?為什么在軟件度量工作中經常用到這類測量?答:沒找到答案。提出一組軟件度量規則,你能在節列的規則中在增加個規則嗎?答:軟件度量的額外規則:不找完美的指標它不存在。保證測量的一致性,避免比較不同的事物。注重質量,這是最重要的。產交付之前,團隊A在軟件工程過程發現了342個誤,團隊發了個錯誤。對于項目A和B,還需要做什么額外測量,才能確定哪個團隊能夠更有效地排除錯誤?你建議采用什么度量能有助于做出判定?那些歷史數據可能有用?答兩團隊應該事先決定好要開發的軟件的大小和功能如可提供一個規范化的評估方法個團隊的軟件開發過程中一個度量標準例如可以提供一個對的效率指標。給出對將代碼行作為軟件生產率度量的論據考幾十個或幾百個項目時說的情況還成立嗎?答:的作用不大是因為它的獎”計劃,同時他也難用在可視化編程中,代碼生成器,或其他的代碼生成器的發展正在遠離3根據面的信息域特性,計算項目的功能點值:用戶人數:用戶輸出數60用戶查詢數24文件數:8外部接口數2假定所有的復雜度校正值都取“中等”值。使用第十三章描述的算法。答:總計:32*4+60*5+24*4+8*10+2*7=618利用節給出的表格于每行代碼具有的功能性出個反對用匯編語言的論據。再參考該表,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年元宇宙社交平臺虛擬社交圈層構建與用戶體驗研究報告
- 2025年醫院信息化建設中的電子病歷系統優化:醫療信息化產業發展現狀與趨勢分析報告001
- 水電行業2025年技術進步動態與大型水電項目投資效益研究報告
- 政策導向下農業綠色發展技術與農村生態環境治理模式創新與實施效果研究
- 探索2025年:有聲讀物市場需求與內容創作模式創新研究報告
- 2025年二手交易電商平臺信用評價體系深度研究報告
- 2025年醫藥企業研發外包(CRO)模式藥物研發生物技術產品研發報告001
- 2025年醫藥企業研發外包(CRO)綠色研發與環保要求報告
- 2025年醫藥流通行業報告:線上線下融合與市場格局變化
- 乳制品創新產業提升建設項目可行性研究報告寫作模板-申批備案
- 2025年白芷種植市場調研報告
- 全國行政區域身份證代碼表(電子表格版)
- 期末復習人教PEP版英語五年級下冊
- 建筑節能與環保培訓課件
- 公司網絡安全教育課件
- 微弱的光亮(2024年山東煙臺中考語文試卷記敘文閱讀試題)
- 2024高考物理一輪復習專題93機械振動和機械波練習含解析新人教版
- 紅色大氣簡約傳承紅色基因弘揚革命精神紀念抗美援朝
- 2024年06月常熟農商銀行小微金融總部招聘筆試歷年參考題庫附帶答案詳解
- 大學英語六級大綱詞匯正序版
- 《計算機圖形學》課后習題參考答案
評論
0/150
提交評論