版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、What Is Software?什么是軟件?:Software is corresponding and related to hardware, both are components of computer system. Its a integrated collection which includes Programs, Data and Documents.軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數據及其相關文檔的完整集合。Program is serious of instructions that perform according to initially
2、 designed function and performance requirement;程序是按事先設計的功能和性能要求執(zhí)行的指令序列Documents are text and graphic materials that are related to program developing, maintaining and using. 文檔是與程序開發(fā)、維護和使用有關的圖文材料 Phenomena of Software Crisis 軟件危機的表現Cost and schedule of developing can not be estimated accurately. 對軟件
3、開發(fā)成本和進度的估計常常很不準確User are always unsatisfied with delivered software system. 用戶對“已完成的”軟件系統(tǒng)不滿意的現象經常發(fā)生Quality of software are usually poor. 軟件產品的質量往往靠不住Software can hardly be maintained. 軟件常常是不可維護的There is always no proper document of software. 軟件通常沒有適當的文檔資料Proportion of software cost in computer syste
4、m are increasing. 軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升The progress of software productivity can not catch up with trend of pervasively using of computer. 軟件開發(fā)生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢Reason of Software Crisis 軟件危機的原因Some are because of characters of Software 自身性質的原因Logicality of software 邏輯特性Complexity of sof
5、tware 復雜性Large scale of software 大規(guī)模特性Some are because of wrong developing and maintaining method 過程的原因(開發(fā)和維護方法錯誤的原因)Neglecting the importance of requirement analysis 忽視需求分析Consider developing to be writing program and making it run 認為開發(fā)就是寫程序并使之運行Despising of maintaining of software 輕視軟件的維護Tools :in
6、strument or automated system for accomplishing something in a better way. 工具:為較好完成一件事情的設備或自動化系統(tǒng)。procedures :recipe for combination of tools and techniques, produce a particular product.過程:將技術和工具結合的方法,來生產一個特定的產品。paradigms :style of doing something規(guī)范:做某事的樣式。Software engineers use tools, techniques(met
7、hod), procedures, and paradigms to enhance the quality of their software products. Their aim is to use efficient and productive approaches to generate effective solutions to problems. 軟件工程師使用工具、技術(方法)、過程、規(guī)范來改進軟件產品的質量。他們的目標就是使用高效的高產的途徑產生解決問題的有效方案。 軟件質量要素:正確性(Correctness) :程序滿足規(guī)格說明及完成用戶目標的程度可靠性(Reliab
8、ility) :能夠防止因概念、設計和結構等方面的不完善造成的軟件系統(tǒng)失效,具有挽回因操作不當造成軟件系統(tǒng)失效的能力有效性(Efficiency):軟件系統(tǒng)能充分地利用計算機的時間資源和空間資源的程度完整性(Integrity):控制未被授權人員訪問程序和數據的程度可用性(Usability):學習使用軟件的難易程度, 包括: 操作軟件, 為軟件準備輸入數據, 結實軟件輸出結果可維護性(Maintainability):軟件產品交付用戶使用后, 能夠對它進行修改的難易程度可測試性(Testability):測試程序使之具有預定功能所需的工作量適應性(Flexibility):改變一個操作程序所
9、需的工作量可移植性(Portability):軟件從一個計算機系統(tǒng)或環(huán)境搬到另一個計算機系統(tǒng)或環(huán)境的難易程度可重用性(Reusability):軟部件可以在多種場合應用的程度互用性(Interoperability):兩個或多個系統(tǒng)交換信息并相互使用已交換信息的能力Who Does Software Engineering? 誰來做軟件工程? 客戶(Customer)is the company, organization, or person who is paying for the software system to be developed.花錢開發(fā)軟件系統(tǒng)的公司、組織或個人; 開發(fā)
10、者(Developer)is the company, organization , or person who is building the Software system for the customer. 為客戶構建軟件系統(tǒng)的公司、組織或個人; 用戶(User)is the person or people who will actually use the system.最終使用該系統(tǒng)的人員。The elements of system(系統(tǒng)元素):Activities(活動):is something that happens in a system發(fā)生在系統(tǒng)中的某個事件。Obje
11、cts or entities(對象):the elements involved in the activities 活動中涉及的元素。Relationships(關系):we match the entities with their activities.實體與活動間的匹配。System Boundary(系統(tǒng)邊界):what is included in the project and what is not.項目中包括什么不包括什么。A system (系統(tǒng))is a collection of things: a set of entities, a set of activiti
12、es, a description of the relationships among entities and activities, and definition of the boundary of the system.。系統(tǒng)是一組事務的集合:實體的集合、活動的集合、實體和活動之間關系的描述以及系統(tǒng)邊界的定義。Key factors altering software engineering practice (Wasserman) 改變軟件工程實踐的7個關鍵因素1.Criticality of time-to-market for commercial products商業(yè)產品推向
13、市場的時間的重要性2.Shift in the economics of computing: lower hardware costs and greater development and maintenance cost計算行業(yè)經濟的變化趨勢:硬件費用越來越低,而開發(fā)、維護費用越來越高3.Availability of powerful desktop computing功能強大的桌面計算的出現4.Extensive local-and wide-area networking網絡的延伸5.Availability and adoption of object-oriented tech
14、nology面向對象技術的出現和應用6.Graphical user interfaces using windows, icons, menus, and pointers 使用窗口、圖標、菜單和指針的用戶界面7.Unpredictability of the waterfall model of software development軟件開發(fā)瀑布模型的不可預知性。 ways to partition the system into units:五種把系統(tǒng)分解成單元的方法:Modular decomposition 模塊化分解Data-oriented decomposition 面向數據
15、的分解Event-oriented decomposition 面向事件的分解Outside-in design 從外到內的設計Object-oriented design 面向對象的設計What is Process? 什么是過程?:A Series of steps involving activities, constraints, and resources that produce an intended output of some kind.一系列涉及到活動、約束和資源的步驟,他們產生某種類型的有目的的輸出。Process Characteristics 過程的特征(7項)1.T
16、he process prescribes all of the major process activities 規(guī)定了所有主要過程活動2.Process uses resources, subject to a set of constraints(such as schedule),and produces intermediate and final products 使用資源、服從于一組約束(比如進度約束),產生中間結果和最終產品。3.The process may be composed of subprocesses that are linked in some way. Th
17、e process may be defined as a hierarchy of processes, organized so that each subprocess has its own process model 可由子過程組成,這些子過程用某種方式鏈接起來。過程可以定義為分層的過程等級結構,以便每個子過程具有自己的過程模型。4.Each process activity has entry and exit criteria,so that we know when the activity begins and ends. 每個具有活動有入口和出口標準,這樣可以知道活動何時開
18、始及何時結束。5.The activities are organized in a sequence, so that it is clear when one activity is performed relative to the other activities. 活動以一定順序組織,因此,一個活動相對于其他活動何時完成是是很清楚的。6.Every process has a set of guiding principles that explain the goals of each activity 每個過程具有一系列的指導原則,以解釋每個活動的目標7.Constraints
19、or controls may apply to an activity, resource or product 約束與控制可以應用到任何活動、資源或產品中。Software Lifecycle:The software development process is sometimes called the software life cycle。軟件開發(fā)過程有時被稱為軟件生命周期維護階段的關鍵任務是:通過各種必要的維護活動使軟件系統(tǒng)持久地滿足用戶的需要。通常的4種維護Why software process modeling? 為什么建立軟件過程模型?Writes down a descr
20、iption of development process, forms a common understanding of the activities, resources, and constraints involved in software development. 形成對軟件開發(fā)中涉及到的活動、資源和約束的共同理解。Helps the development team find inconsistencies, redundancies, and omissions in the process and in its constituent parts. 有助于開發(fā)小組發(fā)現過程及
21、其組織成分中的不一致、冗余和遺漏。The model reflects the goals of development, such as building high-quality software finding faults early in development, and meeting required budget and schedule constraints. 反映開發(fā)的目標(如構建高質量軟件、早期發(fā)現錯誤、滿足預算和開發(fā)進度)。 Every process should be tailored for the special situation in which it w
22、ill be used.根據每個過程將被使用的特殊情況對其進行裁剪。Typical process models 典型的過程模型Waterfall model 瀑布模型Prototyping 原型化模型V-model V-模型Operational specification 操作說明模型Transformational model 變換模型Phased development: increments and iteration 階段化開發(fā):增量和迭代模型Spiral model 螺旋模型Characters of Waterfall modeln One development stage
23、should be completed before the next begins.n Include stages of requirements analysis, system design, program design, coding, unit & integration testing, acceptance testing, operation & maintenancen Steps dont goes backward.Merits of Waterfall modeln Has been used to prescribe software develo
24、pment activities in a variety of contexts.n Is very useful in helping developers lay out what they need to do.n Easy to explain to customers who are not familiar with software developmentn It makes explicit which intermediate products are necessary in order to begin the next stage.n More complex mod
25、els are really just embellishments of the waterfall.Shortage of Waterfall modeln Does not reflect the way code is really developed, software is usually developed with a great deal of iteration.n The model imposes a project management structure on system development.n Fail to treat software as a prob
26、lem-solving process.n The model was derived from the hardware world.What is project management? 什么是項目管理:The application of knowledge, skills, tools, and techniques to project activities in order to meet or exceed stake holder needs and expectations 。將知識、技能、工具、技術應用于項目活動以滿足或超過預期的需求。有效的項目管理集中于三個P 上Peop
27、le:項目參與者、項目負責人、軟件項目組、協調和通訊Problem:軟件范圍、問題分解Project Schedule describes the software development cycle for a particular project by enumerating the phases or stages of a project and breaking each into discrete tasks or activities to be done. 項目進度描述了針對特定項目的軟件開發(fā)周期,列舉了項目的各個階段,把每個階段劃分成要完成的離散任務或活動The schedu
28、le is a timeline that shows when activities will begin and end, and when the related development products will be ready. 進度是一個時間的限期,它表明活動將于何時開始何時結束、相關的開發(fā)產品何時準備就緒。Project deliverables項目可交付品Documents文檔Demonstrations of function功能演示Demonstrations of subsystems子系統(tǒng)演示Demonstrations of accuracy正確性演示Demonst
29、rations of reliability, performance or security可靠性、安全性或性能演示Activity( 活動):A part of a project that takes place over a period of time項目的一個部分,發(fā)生在一段時間內。Milestone(里程碑 ) : completion of an activity - a particular point in time一個活動的完成。是某一特定時刻。描述活動的4個參數:Precursor( 前驅 ): event or set of events that must occu
30、r in order for an activity to start 在活動開始之前必須發(fā)生的一個或一組事件,它描述了活動開始的一組條件。Duration( 持續(xù)時間): length of time needed to complete an activity 完成一個活動需要的時間長度Due date(截至日期): date by which an activity must be completed 活動必須完成的日期Endpoint(終點): Milestones or deliverables里程碑或交付品 活動圖Real time: is the estimated amount
31、 of time required for the activity to be completed.available time: is the amount of time available in the schedule for the activitys completion.Slack time= available time real time (空閑時間 可用時間 實際時間) = latest start time - earliest start time (空閑時間 最晚開始時間 最早開始時間)Critical Path Method (CPM關鍵路徑法)Project o
32、rganization項目組織Chief Programmer Team 核心程序員組:On a chief programmer team, one person is totally responsible for a systems design and development. 核心程序員組由一個人總體負責系統(tǒng)的設計和開發(fā)Egoless approach無私編程 :Instead of a single point of responsibility, an egoless approach holds everyone equally responsible.不是把責任放在單個人身上
33、,而是讓每個人平等地擔負責任。怎樣選擇合適的組織結構? Projects with a high degree of certainty, stability, uniformity, and repetition can be accomplished more effectively by a hierarchical organizational structure such as the chief programmer team. 在有著高確定性、穩(wěn)定性、均勻性和重復性的項目中,核心程序員組這樣的等級組織結構會更有效。When there is much uncertainty in
34、volved in a project, a more democratic approach may be better. 當項目涉及大量的不確定性時,更為民主的方法可能更好。工作量和成本估計軟件成本包括:-包括維護在內的硬件和軟件費用;-工作成本(支付給軟件開發(fā)人員的費用);-應用的方法、過程所形成的一部分成本;-使用的工具;-差旅費;工作量估計技術1.Expert judgment 專家判斷2.Algorithmic methods 算法方法3.Machine-Learning Method 機器學習方法Risk management 風險管理Risk(風險): is an unwant
35、ed event that has negative consequences.不希望反生的具有負面影響的事件。Risk Management(風險管理): is to understand and control the risks on projects.了解和控制項目中的風險。Risk impact(風險后果 ): the loss associated with the event與該事件有關的損失Risk probability(風險概率): the likelihood that the event will occur事件發(fā)生的可能性Risk control(風險控制): the
36、 degree to which we can change the outcome我們能改變結果的程度Risk exposure(風險成本(暴露量)= (risk probability風險概率) x (risk impact風險后果)Three strategies for risk reduction 降低風險的3種策略avoiding the risk(避免風險): change requirements for performance or functionality 通過改變性能或功能需求。transferring the risk(轉移風險):by allocating risk
37、s to other system or buy insurance to cover any financial loss should the become a reality. 通過把風險分配到其他系統(tǒng)中,或者購買保險以便在風險成為事實時能彌補經濟上的損失assuming the risk(假設風險會發(fā)生): by accepting it and controlling it with the projects resources 用項目資源承受和控制風險risk leverage(風險杠桿) = difference in risk exposure divided by cost
38、of reducing the riskProject plan 項目計劃:We write a document called a project plan .the plan puts in writing the customers needs, as well as what hope to do meet them.包含了顧客的需要以及我們要做些什么來滿足這些需求的文檔叫項目計劃Project plan contents 項目計劃的內容1.project scope 項目范圍2.project schedule 項目進度3.project team organization 項目小組
39、組織結構 4.technical description of the proposed system 項目的技術描述5.project standards, procedures and proposed techniques and tools 項目標準、過程和建議的技術及工具6.quality assurance plan 質量保證計劃7.configuration management plan 配置管理計劃8.documentation plan 文檔計劃9.data management plan 數據管理計劃10.resource management plan 資源管理計劃11
40、.test plan 測試計劃12.training plan 培訓計劃13.security plan 安全計劃14.risk management plan 風險管理計劃15.maintenance plan 維護計劃Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the systems purpose。需求是系統(tǒng)的特征,或為了實現系統(tǒng)目標系統(tǒng)能做什么的一個描述。Three kinds of requir
41、ements把需求按必要程度分三類:1.those that absolutely must be met 絕對需要滿足的需求2.those that are highly desirable but not necessary 想要但并非必須的需求3.those that are possible but could be eliminated 可以接受但也可以排除的需求Requirements definition(需求定義): complete listing of what the customer expects the system to do 完整地列出顧客希望系統(tǒng)做的每一件事R
42、equirements specification(需求規(guī)格說明): restates the definition in technical terms so that the designer can start on the design 用技術術語重申需求定義以便系統(tǒng)設計員能開始設計Configuration management(配置管理): supports direct correspondence between the two documents支持兩個文檔間直接對應There must be a direct correspondence between each requ
43、irement of the definition document and those of the specification document. it is here that the configuration management methods used throughout the life cycle begin. 每個需求的定義文檔和詳細說明文檔之間有直接的對應關系。生命周期開始之后正是從此處開始一直都使用配置管理方法。Configuration management配置管理:Set of procedures that track一組跟蹤以下內容的過程1.requireme
44、nts that define what the system should do 定義系統(tǒng)應該做什么需求2.design modules that are generated from requirements 從需求中得出設計模塊3.program code that implements the design 實現設計的程序代碼4.tests that verify the functionality of the system 驗證系統(tǒng)功能的測試5.documents that describe the system 描述系統(tǒng)的文檔需求定義和詳細說明文檔描述了系統(tǒng)如何與環(huán)境交互的所有事
45、情。包括:Physical environment物理環(huán)境Interfaces 接口(界面)Users and human factors用戶與人的因素Functionality功能性Documentation文檔Data數據Resources資源Security安全性Quality assurance質量保證Functional vs. non-functional requirements 功能性需求與非功能性需求n Functional: describes an interaction between the system and its environmentn Examples:n
46、 System shall communicate with external system X.n What conditions must be met for a message to be sentn Non-functional: describes a restriction or constraint that limits our choices for constructing a solutionn Examples:n Paychecks distributed no more than 4 hours after initial data are read.n Syst
47、em limits access to senior managers.關于需求的完整性Requirement is Completed: if all possible states, state changes, inputs, products, and constraints are described by some requirement. 需求是完整的:如果某些需求描述了所有可能的狀態(tài),以及狀態(tài)的變化、輸入、過程和約束。A system description is externally complete: if the description constrains all th
48、e proper ties to the environment desired by the customer.系統(tǒng)描述是外部完整的:如果描述包含的所有關系都與顧客想要的環(huán)境相關時。A system description is internally complete: if there are no undefined references among the requirements.系統(tǒng)描述是內部完整的:需求之間沒有未定義的引用。requirements validation 需求確認n Requirements validation is the process of determi
49、ning that specification is consistent with the requirements definition; validation makes sure that the requirements will meet the customers needs. 需求確認就是判斷規(guī)格說明是否與需求定義一致的過程;確認就是保證需求滿足了顧客的需要。n 從哪些方面確認需求現實性有效性一致性完整性what is design什么是設計?:Design is the creative process to transform the problem into a solu
50、tion. 設計是將問題轉化成解決方案的創(chuàng)造性的活動Design is the description of a solution. 是對解決方案的描述Two stages of design:設計的兩個階段Conceptual Design 概念設計Technical Design 技術設計Conceptual design 概念設計:Tells the customer what the system will do. 告訴顧客系統(tǒng)將要做什么。Technical design技術設計: Description is a technical picture of the system spe
51、cification. Tells the programmers what the system will do系統(tǒng)規(guī)格說明的技術性描述。告訴程序員系統(tǒng)將做什么。Includes:包括major hardware components and their function. 主要硬件組件和功能;hierarchy and function of software components. 軟件組件的層次和功能;data structures. 數據結構;data flow. 數據流Five ways to create designs五種創(chuàng)建設計的方法Modular decomposition
52、 模塊分解:將功能分配給組件。Data-oriented decomposition 面向數據的分解:基于外部數據結構。Event-oriented decomposition 面向事件的分解:基于系統(tǒng)必須處理的事件和事件改變系統(tǒng)的狀態(tài)信息。Outside-in design 由外而內的設計:基于系統(tǒng)的用戶輸入(屬黑盒方法)。Object-oriented design OO設計:確定對象的類和它們之間的相互關系。模塊:the results of decomposition form composite parts called modules or components. 分解結果形成的組
53、成部分稱模塊或組件E-R圖數據流圖面向數據流的設計方法變換分析:把具有變換流特點的數據流圖按預先確定的模式映射成軟件結構的一系列步驟的總稱。第1步 復查基本系統(tǒng)模型。第2步 復查并精化數據流圖。第3步 確定數據流圖具有變換特性還是事務特性。第4步 確定輸入流和輸出流的邊界,從而孤立出變換中心。 第5步 完成“第一級分解(first level factoring)”。分解就是分配控制的過程。分解出模塊:Cm, Ca, Ct, Ce,其中: Cm:協調下述從屬的控制功能;Ca:輸入信息處理控制模塊,協調對所有輸入數據的接收;Ct:變換中心控制模塊,管理對內部形式的數據的所有操作;Ce:輸出信息處
54、理控制模塊,協調輸出信息的產生過程。 第6步 完成“第二級分解”。即把數據流圖中的每個處理映射成軟件結構中一個適當的模塊。第7步 使用設計度量和啟發(fā)式規(guī)則對第一次分割得到的軟件結構進一步精化。事務分析由事務流映射成的軟件結構包括一個接收分支和一個發(fā)送分支;映射接收分支:從事務中心的邊界開始,把沿著接收流通路的處理映射成模塊;發(fā)送分支的結構包含一個調度模塊,它控制下層的所有活動模塊;把數據流圖中的每個活動流通路映射成與它的流特征相對應的結構。軟件體系結構(Software Architecture):The software architecture of a system is the str
55、ucture or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.系統(tǒng)的軟件體系結構是一種軟件設計活動的工作產品。是對子系統(tǒng)、軟件系統(tǒng)構件以及它們之間相互關系的描述。常用的設計風格:Pipes and filters 管道和過濾器;Object-oriented design OO 設計;Implicit invocation 隱含調用;Layering 分層;Repositories 倉庫;Interpreters 解釋器;Process control 過程控制;Client-server 客戶機/服務器。度量標準:模塊的獨立程度可以由coupling and cohesion 內聚和耦合度量。耦合衡量不同模塊彼此間互相依
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特別約定合同范例
- 教室桌椅采購合同范例
- 渣土車合作簽約合同范例
- 儀式外包合同范例
- 平房轉讓協議合同范例
- 學生餐桌轉讓合同范例
- 保證自保證合同范例
- 小區(qū)出租車司機合同范例
- 圍墻排險合同范例
- 機械政府采購合同范例
- 山東省高等醫(yī)學院校臨床教學基地水平評估指標體系與標準(修訂)
- 大孔吸附樹脂技術課件
- 空白貨品簽收單
- 建筑電氣施工圖(1)課件
- 質量管理體系運行獎懲考核辦法課案
- 泰康人壽養(yǎng)老社區(qū)介紹課件
- T∕CSTM 00584-2022 建筑用晶體硅光伏屋面瓦
- 2020春國家開放大學《應用寫作》形考任務1-6參考答案
- 國家開放大學實驗學院生活中的法律第二單元測驗答案
- CAMDS操作方法及使用技巧
- Zarit照顧者負擔量表
評論
0/150
提交評論