【正文】
軟件設(shè)計(jì)的階段與任務(wù):從工程管理的角度,可以將軟件設(shè)計(jì)分為概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。1是盡量使用已有的構(gòu)件。自頂向下,逐步細(xì)化:抽象是指忽視一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,當(dāng)我們進(jìn)行軟件設(shè)計(jì)時(shí),設(shè)計(jì)開始時(shí)應(yīng)盡量提高軟件的抽象層次,按抽象級別從高到低進(jìn)行軟件設(shè)計(jì),將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個(gè)層次的過程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計(jì)語言的語句能夠?qū)崿F(xiàn)為止,從而最后確定整個(gè)系統(tǒng)的體系結(jié)構(gòu),這就是自頂向下逐步細(xì)化過程。模塊并不是越小越好,當(dāng)模塊數(shù)目增加時(shí),每個(gè)模塊的規(guī)模將減小,開發(fā)單個(gè)模塊的成本確實(shí)減少了,但是隨著模塊數(shù)目增加,模塊之間關(guān)系的復(fù)雜程度也會(huì)增加,設(shè)計(jì)模塊間接口所需要的工作量也將增加。模塊化是將整體軟件劃分為獨(dú)立命名且可獨(dú)立訪問的模塊,不同的模塊通常具有不用的功能或指責(zé),每個(gè)模塊可獨(dú)立開發(fā),測試,最后組裝成完整的軟件。第四章結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法是在模塊化,自頂向下逐步細(xì)化及結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來的,結(jié)構(gòu)化設(shè)計(jì)方法可分為兩類:一類是根據(jù)系統(tǒng)的數(shù)據(jù)流進(jìn)行設(shè)計(jì),稱為面向數(shù)據(jù)流的設(shè)計(jì),或稱過程驅(qū)動(dòng)設(shè)計(jì),另一類是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),稱為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),或稱數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)。加工規(guī)格說明。使用狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)建立系統(tǒng)行為模型。核心是數(shù)據(jù)字典。完整性,正確性,合理性,可行性,充分性。(對,需求描述是困難的)觀察用戶如何工作也是一種需求調(diào)查行為。(系統(tǒng)開發(fā)包含研究行為,應(yīng)了解對手產(chǎn)品,取長補(bǔ)短)系統(tǒng)開發(fā)包含改進(jìn)當(dāng)前系統(tǒng)的缺陷和不足。(不能獲取準(zhǔn)確、全面的系統(tǒng)需求)沒有經(jīng)過與用戶交流而獲取的需求都是不真實(shí)的需求。6,觀察用戶如何工作。4,當(dāng)前系統(tǒng)的問題報(bào)告和改進(jìn)要求。2,現(xiàn)有產(chǎn)品或競爭產(chǎn)品的描述文檔。需求獲取的原則:深入淺出,以流程為主線。按照三個(gè)成分即數(shù)據(jù),過程和接口觀察問題的不同側(cè)面。需求分析的困難體現(xiàn):系統(tǒng)的目標(biāo)或范圍問題;需求不準(zhǔn)確性問題;需求的易變問題需求獲取的任務(wù):發(fā)現(xiàn)和分析問題,并分析問題的原因,結(jié)果關(guān)系。判定樹第三章軟件需求獲取與結(jié)構(gòu)化分析方法 需求獲取的主要任務(wù)是與用戶溝通,了解系統(tǒng)或產(chǎn)品的目標(biāo)是什么,客戶或用戶想要實(shí)現(xiàn)什么,系統(tǒng)和產(chǎn)品如何滿足業(yè)務(wù)的要求,最終系統(tǒng)或產(chǎn)品如何用于日常工作。結(jié)構(gòu)化語言。流程圖(FC)。問題分析圖(PAD)。設(shè)計(jì)模塊的算法和內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。Visio。軟件的體系結(jié)構(gòu)通常用模塊結(jié)構(gòu)圖來描述。通過數(shù)據(jù)流程圖DFD進(jìn)行功能分析。軟件工程各個(gè)階段的基本任務(wù)問題定義與可行性研究:解決什么問題?能否解決問題?是否值得做?”需求分析:做什么軟件設(shè)計(jì):如何實(shí)現(xiàn)程序編碼和單元測試:實(shí)現(xiàn)設(shè)計(jì)集成和系統(tǒng)測試:組裝連接測試、功能驗(yàn)證測試軟件運(yùn)行和維護(hù):修改 第二章軟件工程方法與工具軟件工具:是指能支持軟件生存周期中某一階段(如系統(tǒng)定義,需求分析,設(shè)計(jì),編碼,測試,維護(hù)等)的需要而使用的軟件工具。軟件設(shè)計(jì)說明書。項(xiàng)目計(jì)劃。軟件運(yùn)行維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要,通常有4類維護(hù)活動(dòng):改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)。軟件開發(fā)時(shí)期的任務(wù)和包含階段主要任務(wù)是解決“如何做”的問題,設(shè)計(jì)和實(shí)現(xiàn)定義的軟件。軟件定義時(shí)期的任務(wù)主要任務(wù)是解決“做什么”的問題,確定工程的總目標(biāo)和可行性;實(shí)現(xiàn)工程目標(biāo)的策略及系統(tǒng)功能;估計(jì)需要的資源和成本;制訂工程進(jìn)度表。軟件生存期:軟件的孕育,誕生,成長,成熟,衰亡的生存過程。5,缺少有效的軟件評測手段,提交用戶的軟件質(zhì)量差。3,軟件開發(fā)過程不規(guī)范,缺少方法和規(guī)范的指導(dǎo)。原因:1,缺乏軟件開發(fā)的經(jīng)驗(yàn)和有關(guān)軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計(jì)劃很難制定。軟件的定義:計(jì)算機(jī)程序,方法,規(guī)則,相關(guān)的文檔資料一集在計(jì)算機(jī)上運(yùn)行時(shí)所必需的數(shù)據(jù)。4,可復(fù)用軟件,最初實(shí)現(xiàn)的典型的可復(fù)用軟件是各種標(biāo)準(zhǔn)函數(shù)庫,通常是由計(jì)算機(jī)廠商提供的系統(tǒng)軟件的一部分。2,應(yīng)用軟件,是在系統(tǒng)軟件的支持下,在特定區(qū)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。(錯(cuò))軟件可以不斷改進(jìn),因此軟件不需要廢棄。軟件的開發(fā)環(huán)境往往就是軟件的運(yùn)行環(huán)境,或者與其兼容。(錯(cuò))軟件的生產(chǎn)指的是軟件的復(fù)制。(錯(cuò))軟件的開發(fā)特性是指軟件需要大量手工勞動(dòng),難以自動(dòng)化生產(chǎn)。程序的最小單位是函數(shù)及子程序,程序與數(shù)據(jù)是分離的,在面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí)代,程序的最小單位是類,在類中封裝了相關(guān)的數(shù)據(jù)及指令代碼。數(shù)據(jù)是使程序能夠正確地處理信息的數(shù)據(jù)結(jié)構(gòu)。第三篇:軟件工程總結(jié) is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b are a mixture of print publishing and software development, making their development outside the realm of software engineering : b engineering umbrella activities are only applied during the initial phases of software development : b ahead for software reuse reduces the cost and increases the value of the systems into which they are : a essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for : a agile process models the only deliverable work product is the working : b most software development projects are initiated to try to meet some business : a general software only succeeds if its behavior is consistent with the objectives of its : b processes can be constructed out of preexisting software patterns to best meet the needs of a software : a technology tools allow software organizations to press schedules by skipping unimportant : b is generally accepted that one cannot have weak software processes and create high quality end : a engineering is a generic process that does not vary from one software project to : a stakeholder is anyone who will purchase the pleted software system under : b is relatively mon for different customers to propose conflicting requirements, each arguing that his or her version is the right : a and customers create usecases to help the software team understand how different classes of endusers will use : a actors are always people, never system : b patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to mon : a winwin negotiation, the customer’s needs are met even though the developer’s need may not : b requirements validation the requirements model is reviewed to ensure its technical : b domain analysis is concerned with the identification and specification of reusable capabilities within an application : a structured analysis models focus on the structure of the classes defined for a system along with their : b and refinement of use cases if an important part of scenariobased : a is important to consider alternative actor interactions when creating a preliminary use : b is one technique that may be used to derive a plete set of use case : a many cases there is no need to create a graphical representation of a usage : a or more attributes of a data object must be defined as a key to allow the location of an instance of the data : a are chosen for an object by examining the problem statement and identifying the entities that appear to be : b analysis package involves the categorization of analysis model elements into useful : a data flow diagram must be augmented by minspec that can serve as a guide the design of the software ponent that will implement the : a UML sequence diagram show the order in which system events are : b patterns are discovered, they are not explicitly : a is not possible to justify the time required for WebApp requirements : b activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis : a analysis focuses on the architecture of the user’s web browsing : b objects are extracted from use cases by examining the scenario description for direct or indirect content : a thorough testing it is possible to remove all defects from a program prior to delivery to the : b flow graphs are identical to program : b cyclomatic plexity of a program can be puted directly from a PDL representation of an algorithm without drawing a program flow : a testing methods can only be used for objectoriented systems Answer: b testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be : a value analysis can only be used to do whitebox : b array testing enables the test designer to maximize the coverag