版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Software Engineering軟 件 工 程,李 宣 東 南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 http://cs.nju.edu.cn/people/lixuandong/softE.html,Contents,Conventional Methods for Software Engineering 傳統(tǒng)軟件工程方法Object-Oriented Software Engin
2、eering 面向?qū)ο筌浖こ蘏oftware Process, Management, and Quality 軟件過(guò)程、管理與質(zhì)量,Reference 參考文獻(xiàn),Roger S. Pressman Software Engineering: A Practitioner’s Approach McGraw-Hill 1982(1/e), 1987(2/e), 1992(3/e) 1997
3、(4/e), 2001(5/e) «可視化面向?qū)ο蠼<夹g(shù)» 劉超 張莉 編著 北京航空航天大學(xué)出版社http://moon.nju.edu.cn,Conventional Methods for Software Engineering,What,How,Do it,Test,Use,,,,,,,,,Conventional Methods for Software Engineering,Sy
4、stem engineering,Analysis,Testing,Design,Maintenance,Code,,,,,,,,,,,系統(tǒng)定義,分析,設(shè)計(jì),編碼,測(cè)試,維護(hù),Basic Concepts 基本概念,Software isinstructions (computer programs) that when executed provide desired function and performance,data
5、structures that enable the programs to adequately manipulate information, anddocuments that describe the operation and use of the programs.,Basic Concepts,軟件 計(jì)算機(jī)系統(tǒng)中的程序及其有關(guān)文件。程序 計(jì)算任務(wù)中的處理對(duì)象和處理規(guī)則的描述。文件 為了便于了解
6、程序所需的資料說(shuō)明。,Basic Concepts,Software CharacteristicsSoftware is developed or engineering, it is not manufactured in the classical sense. 軟件是由開發(fā)或工程化而形成的,而不是傳統(tǒng)意義上由制造產(chǎn)生的。Software doesn’t “wear out”. 軟件不會(huì)“磨損”。Although
7、 the industry is moving toward component-based assembly, most software continues to be custom build. 大多數(shù)軟件是自定的,而不是通過(guò)已有的構(gòu)件組裝起來(lái)的。,Basic Concepts,Software ApplicationsSystems softwareReal-time softwareBusiness softwar
8、eEngineering and scientific softwareEmbedded softwarePersonal computer softwareWeb-based softwareArtificial intelligence software,Basic Concepts,Generic Category for Software:系統(tǒng)軟件支撐軟件(中間件middleware)應(yīng)用軟件,Basic Co
9、ncepts,硬件平臺(tái),系統(tǒng)軟件,支撐軟件,,硬件平臺(tái),系統(tǒng)軟件,支撐軟件,,中間件,應(yīng)用軟件,應(yīng)用軟件,Basic Concepts,Evolution of Software 軟件的發(fā)展過(guò)程第一階段:從第一臺(tái)計(jì)算機(jī)上的第一個(gè)程序的出現(xiàn)到實(shí)用的高級(jí)程序設(shè)計(jì)語(yǔ)言出現(xiàn)之前(1946-1956);第二階段:從實(shí)用的高級(jí)程序設(shè)計(jì)語(yǔ)言出現(xiàn)到軟件工程出現(xiàn)之前(1956-1968);第三階段:軟件工程(1968- )。,Basic C
10、oncepts,Software crisis 軟件危機(jī)供求關(guān)系失調(diào)開發(fā)費(fèi)用失控,進(jìn)度拖延可靠性差難以維護(hù),Basic Concepts,產(chǎn)生軟件危機(jī)的原因軟件本身的特點(diǎn)管理人員的錯(cuò)誤觀點(diǎn)用戶的錯(cuò)誤觀點(diǎn)軟件開發(fā)人員的錯(cuò)誤觀點(diǎn),Basic Concepts,產(chǎn)生軟件危機(jī)的原因(軟件本身的特點(diǎn))軟件開發(fā)進(jìn)展情況較難衡量軟件開發(fā)質(zhì)量難以評(píng)價(jià)管理和控制軟件開發(fā)過(guò)程相當(dāng)困難軟件沒有“磨損”概念,軟件維護(hù)通常意味著該
11、進(jìn)或修改原來(lái)的設(shè)計(jì),Basic Concepts,產(chǎn)生軟件危機(jī)的原因(管理人員的錯(cuò)誤觀點(diǎn))We already have a book that’s full of standards and procedures for building software, won’t that providemy people with everything they need to know? 我們 已經(jīng)有了關(guān)于開發(fā)軟件的標(biāo)準(zhǔn)和規(guī)范的
12、書籍,難道它們不能給人們提供所有其需要知道的信息嗎?,Basic Concepts,產(chǎn)生軟件危機(jī)的原因(管理人員的錯(cuò)誤觀點(diǎn))My people have state-of-the-art software development tools, after all, we buy them the newest computers. 我們已經(jīng)有了很好很多的軟件開發(fā)工具,而且,我們擁有最新的計(jì)算機(jī)。If we get behin
13、d schedule, we can add more programmers and catch up. 如果我們已經(jīng)落后于計(jì)劃,可以增加更多的程序員來(lái)趕上進(jìn)度。,Basic Concepts,產(chǎn)生軟件危機(jī)的原因(用戶的錯(cuò)誤觀點(diǎn))A general statement of objectives is sufficient to begin writing programs - we can fill in the deta
14、ils later. 有一個(gè)對(duì)目標(biāo)的概括描述就足以著手編寫程序了,許多細(xì)節(jié)可以在以后再補(bǔ)充。Project requirements continually change, but change can be easily accmodated because software is flexible. 用戶對(duì)軟件的要求不斷變化,然而軟件是柔軟而靈活的,可以輕易地改動(dòng)。,Basic Concepts,產(chǎn)生軟件危機(jī)的原
15、因(軟件開發(fā)人員的錯(cuò)誤觀點(diǎn))Once we write the program and get it to work, our job is done. 所謂軟件開發(fā)就是編寫程序并設(shè)法使它運(yùn)行。Until I get the program “running” I have noway of assessing its quality. 在程序真正運(yùn)行之前,沒有辦法評(píng)估其質(zhì)量。,Basic Concepts,產(chǎn)生軟件
16、危機(jī)的原因(軟件開發(fā)人員的錯(cuò)誤觀點(diǎn))The only deliverable work product for a successful project is the working program. 一個(gè)成功項(xiàng)目唯一應(yīng)該提交的就是可運(yùn)行的程序。Software engineering will make us create voluminous and unnecessary documentation and will
17、invariably slow us down. 軟件工程就是建立龐大無(wú)用的文檔,這必將降低我們的軟件開發(fā)效率。,Basic Concepts,產(chǎn)生軟件危機(jī)的原因(共有的錯(cuò)誤觀點(diǎn))軟件投入生產(chǎn)性運(yùn)行以后需要的維護(hù)工作并不多,而且維護(hù)是一件很容易做的簡(jiǎn)單工作。,Basic Concepts,Software EngineeringThe establishment and use of sound engineering
18、 principles in order to obtain economically software that is reliable and works efficiently on real machines. (NATO Science Committee),Basic Concepts,軟件工程應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化原則、方法解決軟件問題的工程。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用
19、于制定規(guī)范、設(shè)計(jì)范型、降低成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。(大百科全書),Basic Concepts,軟件工程的基本內(nèi)容:軟件設(shè)計(jì)方法論軟件工具軟件工程標(biāo)準(zhǔn)和規(guī)范軟件工程管理軟件工程理論,Basic Concepts,軟件工程的基本原理:嚴(yán)格按照計(jì)劃進(jìn)行管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代的程序技術(shù)結(jié)果要能清晰地審計(jì)開發(fā)小組人員素質(zhì)要好,數(shù)量不宜多要承認(rèn)不斷改善軟件工程實(shí)踐的
20、必要性,Basic Concepts,Software Life Cycle 軟件生存期(Software Process 軟件過(guò)程)模型: 軟件生存期是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動(dòng)的全周期。從形成概念開始,經(jīng)過(guò)研制,交付使用,在使用中不斷增補(bǔ)修訂,直到最后被淘汰,讓位于新的軟件產(chǎn)品的過(guò)程。對(duì)軟件生存期的不同劃分,形成了不同的軟件生存期模型。,Basic Concepts,System engineering,
21、Analysis,Testing,Design,Maintenance,Code,,,,,,,,,,,系統(tǒng)定義,分析,設(shè)計(jì),編碼,測(cè)試,維護(hù),強(qiáng)調(diào)階段的劃分及其順序性、各階段工作及其文檔的完備性,是一種嚴(yán)格線性的、按階段順序的、逐步細(xì)化的開發(fā)模式。,Waterfall Model,Basic Concepts,瀑布式軟件生存期模型把軟件開發(fā)過(guò)程劃分成若干階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,便于不同人員分工協(xié)作,從而降低了整個(gè)軟件開發(fā)工
22、程的困難程度。在軟件生存期的每個(gè)階段都采用科學(xué)的管理技術(shù)和良好的方法與技術(shù),而且每個(gè)階段結(jié)束之前,都從技術(shù)和管理兩個(gè)角度進(jìn)行嚴(yán)格的審查,經(jīng)確認(rèn)之后才開始下一階段的工作。,Basic Concepts,瀑布式模型的特點(diǎn):結(jié)構(gòu)簡(jiǎn)單明了;歷史較長(zhǎng)、應(yīng)用面廣泛、為廣大軟件工作者所熟悉;已有與之配套的一組十分成熟的開發(fā)方法和豐富的支撐工具。確定了需求分析的絕對(duì)重要性,但是在實(shí)踐中要想獲得完善的需求說(shuō)明是非常困難的;反饋信息慢。,Basic C
23、oncepts,Software Quality Factors 軟件質(zhì)量要素:Correctness 正確性:軟件產(chǎn)品準(zhǔn)確執(zhí)行軟件規(guī)格說(shuō)明中所規(guī)定的能力。Robustness 健壯性:在異常條件下軟件仍能運(yùn)行的能力。Reliability 可靠性:軟件在給定的時(shí)間內(nèi)和規(guī)定的環(huán)境條件下,按規(guī)格說(shuō)明的規(guī)定成功地運(yùn)行的概率??煽啃岳斫鉃檎_性和健壯性之和。,System Engineering,What is it? B
24、efore software can be engineered, the “system” in which it resides must be understood. To accomplish this, the overall objective of the system must be determined; the role of hardware, software, people, database, proce
25、dures, and other system elements must be identified; and operational requirements must be elicited, analyzed, specified, modeled, validated, and managed. These activities are the foundation of system engineering.,S
26、ystem Engineering,Who does it?A system engineer works to understand system requirements by working with the customer, future users, and other stakeholders.,System Engineering,Why is it important?There is an old sayin
27、g:“You cannot see the forest for the trees.”In this context, the “forest”is the system, and the trees are the technology elements (include software) that are required to realize the system. If you rush to build technolog
28、y elements before you understand the system, you will undoubtedly make mistakes that will disappoint your customer. Before you worry about the trees, understand the forest.,System Engineering,What are the steps?Objectiv
29、es and more detailed operational requirements are identified by eliciting information from the customer.Requirements are analyzed to assess their clarity, completeness, and consistency.A specification, often incorporat
30、ing a system model, is created and then validated by both practitioners and customers.System requirements are managed to ensure that changes are properly controlled.,System Engineering,What is the work product?A effect
31、ive representation of the system must be produced as a consequence of system engineering. This can be a prototype, a specification or even a symbolic model, but it must communicate the operational, functional, and behavi
32、oral characteristics of the system to be built and provide insight into the system architecture.,System Engineering,How do I ensure that I have done it right?Perform requirements engineering steps, including requirement
33、s elicitation, that lead to a solid specification. Then review all system engineering work products for clarity, completeness, and consistency. As important, expect changes to the system requirements and manage them usin
34、g solid SCM (Software Configuration Management).,System Engineering,Instead of concentrating solely on software, system engineering focuses on a variety of elements, analyzing, designing, and organizing those elements in
35、to a system that can be a product, a service, or a technology for the transformation of information or control.,System Engineering,Computer - Based SystemsA set or arrangement of elements that are organized to accompli
36、sh some predefined goal by processing information.,System Engineering,Computer - Based SystemsSoftwareHardwarePeopleDatabaseDocumentationProcedures,System Engineering,Business or product domain,,,,,,,,,,,,,,,,,,,
37、,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,World view,Domain view,Element view,Detailed view,Domain of interest,System element,,,,,,,,,,,,,,,,,,,,,,System Engineering,System engineering hierarchyThe world view (WV) is co
38、mposed of a set of domain (Di), which can be system or system of systems in its own right. WV = {D1, D2, D3, …, Dn}Each domain is composed of specific element (Ej) each of which serves some role in accomplishing
39、the objective and goals of the domain or component. Di = {E1, E2, E3, …, Em}Each element is implemented by specifying the technical componets (Ck) that achieve the necessary function for an element. Ej = {C1
40、, C2, C3, …, Ck},System Engineering,System ModelingSystem Simulations,System Engineering,System engineering is a modeling process:Define the processes that serve the needs of the view under consideration.Represent t
41、he behavior of the processes and the assumptions on which the behavior is based.Explicitly define both exogenous and endogenous input to the model.Represent all linkages (including output) that will enable the engineer
42、 to better understand the view.,System Engineering,To construct a system model, the engineer should consider a number of restraining factors:AssumptionsSimplificationsLimitationsConstraintsPreferences,System Engine
43、ering,System SimulationMany computer -based systems interact by the real world in a reactive fashion.Real-time and embedded systems often fall into the reactive systems category.,System Engineering,System engineering
44、 process:Business process engineering The system engineering process is called business process engineering when the engineering work focuses on a business enterprise. Product engineering The system enginee
45、ring process is called product engineering when a product is to be built.,System Engineering,Business process engineeringThe goal of business process engineering is to define architectures that will enable a business to
46、 use information effectively.Three different architectures must be analyzed and designed within the context of business objectives and goals: - data architecture - application architecture - techno
47、logy infrastructure,System Engineering,Business process engineeringThe data architecture provides a framework for the information needs of a business or business function.The application architecture encompasses those
48、 elements of a system that transform objects within the data architecture for some business purpose.The technology infrastructure provides the foundation for the data and application architectures.,System Engineering,T
49、he enterprise,,,,,A business area,,,,,,,,,,,,,,,,,,,Informationsystem,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Business area,,Processing requirement,,Business system design (element view),Business area analysis(domain view
50、),Informationstrategy planning (world view),Construction & integration(detailed view),,Softwareengineer,System Engineering,Product engineeringThe goal of product engineering is to translate the cu
51、stomer’s desire for a set of defined capability into a working product.To achieve this goal, product engineering must derive architecture and infrastructure. The architecture encompasses four distinct system components
52、: software, hardware, data (databases), and people.A support infrastructure is established and includes the technology to tie the components together and the information that is used to support the components.,System En
53、gineering,The complete product,,,,,Hardware,Software,,,,,,,,,,,,,,,,,Data,Function,Behavior,,,,,,,,,,,,,,,,,,,,,,,,,,Capabilities,,Processing requirements,,Programcomponent,,Construction & integration(d
54、etailed view),Requirements engineering (world view),Component engineering(domain view),,Softwareengineer,Analysis & design modeling (element view),System Engineering,Product engineeringSystem Analysis
55、Identification of NeedFeasibility Study Economic feasibility Technical feasibility Legal feasibility Alternatives Economic AnalysisTechnol
56、ogy Analysis,System Engineering,Requirements engineeringThe outcome of the system engineering process is the specification of a computer-based system or product at the different levels.But the challenge facing system e
57、ngineers (and software engineers) is profound: How can we ensure that we have specified a system that properly meets the customer’s needs and satisfies the customer’s expectations? There is no foolproof answer to this di
58、fficult question, but a solid requirements engineering process is the best solution we currently have.,System Engineering,Requirements engineeringRequirements engineering provides the appropriate mechanism for understa
59、nding what the customer wants, analyzing need, assessing feasibility, negotiating a reasonable solution, specifying the solution unambiguously, validating the specification, and managing the requirements as they are tran
60、sformed into an operational system.,System Engineering,Requirements engineering processrequirements elicitationrequirements analysis and negotiationrequirements specificationsystem modelingrequirements validationre
61、quirements management,System Engineering,How to model systemsEvery computer-based system can be modeled as an information transform using an input-processing-output template.To develop the system model, a system model
62、template is used. The system engineer allocates system elements to each of five processing regions within the template: - user interface - input - system function and control - output - maintenan
63、ce and self test,System Engineering,User interface processing,Inputprocessing,Outputprocessing,Process and controlfunctions,Maintenance and self-test,System model template,System Engineering,System specificationIntro
64、duction A. Scope and purpose of Document B. Overview 1. Objectives 2. ConstraintsFunctional and Data Descriptions A. System architecture 1. System context dia
65、gram 2. SCD Description,System Engineering,System specificationSubsystem Descriptions A. Architecture Diagram Specification for Subsystem n B. Architecture Dictionary C. Architec
66、ture Interconnect Diagrams and DescriptionSystem Modeling and Simulation Results A. System Model Used for Simulation B. Simulation Results C. Special Performance IssuesProject Issues
67、 A. Projecte Development Costs B. Project ScheduleAppendices,Software Requirements Analysis,Software requirements engineering is a process of discovery, refinement, modeling, and specification.Both the softwa
68、re engineer and customer take an active role in software requirements engineering.,Software Requirements Analysis,Requirements analysis is a software engineering task that bridges the gap between system level requirement
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)-計(jì)算機(jī)系主頁(yè)
- 面向?qū)ο蠹夹g(shù) - 計(jì)算機(jī)系主頁(yè)
- 機(jī)器翻譯理論和技術(shù) - 計(jì)算機(jī)系主頁(yè)
- 數(shù)字圖象處理第5章-計(jì)算機(jī)系主頁(yè)
- 第四章繼承和多態(tài)-計(jì)算機(jī)系主頁(yè)
- 第七章運(yùn)行時(shí)刻環(huán)境-計(jì)算機(jī)系主頁(yè)
- 數(shù)學(xué)與計(jì)算機(jī)系網(wǎng)站優(yōu)化
- a3.3工序質(zhì)量報(bào)驗(yàn)單(計(jì)算機(jī)系)
- 計(jì)算機(jī)系生產(chǎn)實(shí)習(xí)報(bào)告
- 計(jì)算機(jī)系外文翻譯---歷史的計(jì)算
- 高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)-清華大學(xué)計(jì)算機(jī)系高性能所
- 計(jì)算機(jī)系外文翻譯--歷史的計(jì)算
- 計(jì)算機(jī)系畢業(yè)設(shè)計(jì)論文
- 計(jì)算機(jī)系開題報(bào)告(附外文翻譯)
- 計(jì)算機(jī)系年度工作計(jì)劃
- 計(jì)算機(jī)系畢業(yè)生離校單
- 計(jì)算機(jī)系bbs論壇畢業(yè)設(shè)計(jì)
- 數(shù)學(xué)與計(jì)算機(jī)系網(wǎng)站優(yōu)化畢業(yè)論文
- 計(jì)算機(jī)系統(tǒng)與編程
- 計(jì)算機(jī)系計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)教學(xué)計(jì)劃執(zhí)行情況
評(píng)論
0/150
提交評(píng)論