《軟件工程》課件(全).pptx_第1頁
《軟件工程》課件(全).pptx_第2頁
《軟件工程》課件(全).pptx_第3頁
《軟件工程》課件(全).pptx_第4頁
《軟件工程》課件(全).pptx_第5頁
已閱讀5頁,還剩448頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Software Engineering,Born in 1968, Because of Software Crisis(high costs, slow delivery, low quality),Bilingual language teaching,雙語教學(xué)(中英,中俄,中韓) 板書、講授、作業(yè)、考試采用兩種語言的混雜,比例是外語不低于20% 是基礎(chǔ)英語、科技英語、專業(yè)英語的延續(xù),體現(xiàn)英語教學(xué)的不斷線。 是英語的應(yīng)用,不是為了學(xué)習(xí)英語,經(jīng)過近20年的英語學(xué)習(xí),現(xiàn)在是大家應(yīng)用英語的時候了。 雙語軟件工程是為了學(xué)習(xí)軟件工程的知識,是為了達(dá)到國際水平而開設(shè)的。,State investig

2、ate,Program language: 1.會C語言 2.除C語言外,會C+ 3.還會Java, C# Practices: 1.生成過exe文件 2.制作過setup文件 3.做過網(wǎng)站,State investigate,聽說過: 1.軟件工程 2.瀑布型模型 3.構(gòu)件 4.OCX,DLL,COM,J2EE 5.SOA 6.云計(jì)算,Purpose,教我們?nèi)绾巫鲕浖?,按照工程化的方法開發(fā)軟件,What is software?(什么是軟件),Computer programs and associated documentation and Configuration Data 程序、相關(guān)

3、文檔和數(shù)據(jù) Software products may be developed for a particular customer or may be developed for a general market 訂制和通用,What is software engineering?(什么是軟件工程),Software engineering is an engineering discipline which is concerned with all aspects of software production(涉及軟件所有方面的工程原則) Software engineers shou

4、ld adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available (采用系統(tǒng)方法、工具和管理技術(shù)),What is the difference between software engineering and computer science?,Computer scien

5、ce is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software Computer science theories are currently insufficient to act as a complete underpinning for software engineering 計(jì)算機(jī)科學(xué)是基礎(chǔ)理論,支撐軟件工程,What is the differenc

6、e between software engineering and system engineering?,System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, arch

7、itectural design, integration and deployment 軟件工程是系統(tǒng)工程的分支,What is a software process?(什么是軟件過程),A set of activities whose goal is the development or evolution of software Generic activities in all software processes are: Specification 、Development 、Validation 、Evolution 軟件開發(fā)和升級的一系列活動:描述、開發(fā)、測試和升級,What

8、 is a software process model?(什么是軟件過程模型),A simplified representation of a software process, presented from a specific perspective(簡單概括) Examples of process perspectives are Workflow perspective(工作流) Data-flow perspective (信息流) Role/action perspective (角色/行為) Generic process models Waterfall(瀑布型) Evo

9、lutionary development(進(jìn)化型) Formal transformation(形式化型) Integration from reusable components(面向復(fù)用型),What are the costs of software engineering?(什么是軟件工程成本),Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs Costs vary

10、depending on the type of system being developed and the requirements of system attributes such as performance and system reliability Distribution of costs depends on the development model that is used,What are software engineering methods?(什么是軟件工程方法),Structured approaches to software development whi

11、ch include system models, notations, rules, design advice and process guidance Model descriptions(模型描述) Descriptions of graphical models which should be produced Rules(規(guī)則) Constraints applied to system models Recommendations(建議) Advice on good design practice Process guidance(過程指南) What activities t

12、o follow,What is CASE (Computer-Aided Software Engineering)(輔助工具),Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support Upper-CASE(高端工具) Tools to support the early process activities of requirements and design

13、 Lower-CASE(低端工具) Tools to support later activities such as programming, debugging and testing,What are the attributes of good software?(優(yōu)良軟件的特性是什么?),The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable Maintainability(可

14、維護(hù)) Dependability(可信賴) Efficiency(有效) Usability(可用),What are the key challenges facing software engineering?(面臨的挑戰(zhàn)),Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times Legacy systems(遺留系統(tǒng)) Old, valuable systems must be maintained and update

15、d Heterogeneity(多樣性) Systems are distributed and include a mix of hardware and software Delivery(交付) There is increasing pressure for faster delivery of software,Issues of professional responsibility(職業(yè)道德),Confidentiality (機(jī)密) Engineers should normally respect the confidentiality of their employers

16、or clients irrespective of whether or not a formal confidentiality agreement has been signed. Competence (工作競爭力) Engineers should not misrepresent their level of competence. They should not knowingly accept work which is out with their competence.,Issues of professional responsibility (職業(yè)道德),Intelle

17、ctual property rights (知識產(chǎn)權(quán)) Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected. Computer misuse (計(jì)算機(jī)濫用) Software engineers should no

18、t use their technical skills to misuse other peoples computers. Computer misuse ranges from relatively trivial (game playing on an employers machine, say) to extremely serious (dissemination of viruses).,Code of ethics principles (代碼道德),1. PUBLIC(公眾感) Software engineers shall act consistently with t

19、he public interest. 2. CLIENT AND EMPLOYER (客戶和顧主) Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT (產(chǎn)品) Software engineers shall ensure that their products and related modifications meet the highest p

20、rofessional standards possible.,Code of ethics principles (代碼道德),JUDGMENT (判斷力) Software engineers shall maintain integrity and independence in their professional judgment. 5. MANAGEMENT (管理能力) Software engineering managers and leaders shall subscribe to and promote an ethical approach to the manage

21、ment of software development and maintenance. 6. PROFESSION (職業(yè)感) Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.,Code of ethics principles (代碼道德),7. COLLEAGUES (對待同事) Software engineers shall be fair to and supportive of their col

22、leagues. 8. SELF (自我要求) Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.,Key points(主要知識點(diǎn)),Software engineering is an engineering discipline which is concerned with all aspect

23、s of software production. Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability. The software process consists of activities which are involved in developing software products. Basic act

24、ivities are software specification, development, validation and evolution.,Key points,CASE tools are software systems which are designed to support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have b

25、een run. Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues. Professional societies publish codes of conduct which set out the standards of behaviour expected of their members.,Homework,what is software? what

26、is Software Engineering? what is software process? what are the costs of Software Engineering? what is CASE? what is software engineering code of ethics and professional practice?,Software Processes (軟件過程),Coherent sets of activities for specifying, designing, implementing and testing software syste

27、ms (定義、設(shè)計(jì)、實(shí)現(xiàn)和測試等一系列活動),Generic software process models(一般軟件過程模型),The waterfall model (瀑布模型) Evolutionary development (進(jìn)化式模型) Formal systems development (形式化模型) Reuse-based development (面向復(fù)用模型),Waterfall model(瀑布模型),需求定義,系統(tǒng)和軟件設(shè)計(jì),編碼和單元測試,集成和系統(tǒng)測試,運(yùn)行和維護(hù),Waterfall model problems(瀑布模型的問題),Inflexible parti

28、tioning of the project into distinct stages(僵化的階段劃分) This makes it difficult to respond to changing customer requirements(不適應(yīng)需求變化) Therefore, this model is only appropriate when the requirements are well-understood (適用于需求明確的系統(tǒng)),Evolutionary development(進(jìn)化開發(fā)),Exploratory development (演化開發(fā)) Objective

29、is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements Throw-away prototyping(拋棄開發(fā)) Objective is to understand the system requirements. Should start with poorly understood requirements,Evolutionary development (進(jìn)化開

30、發(fā)),Evolutionary development (進(jìn)化開發(fā)),Problems(問題) Lack of process visibility(過程不可見) Systems are often poorly structured(系統(tǒng)結(jié)構(gòu)不好) Special skills (e.g. in languages for rapid prototyping) may be required(需要一些技巧) Applicability(適用于) For small or medium-size interactive systems 中等規(guī)模的交互系統(tǒng) For parts of large

31、systems (e.g. the user interface) 大系統(tǒng)的一部分 For short-lifetime systems 生命周期短的系統(tǒng),Formal systems development(形式化系統(tǒng)開發(fā)),Based on the transformation of a mathematical specification through different representations to an executable program (基于數(shù)學(xué)模型) Transformations are correctness-preserving so it is straig

32、htforward to show that the program conforms to its specification (正確轉(zhuǎn)換) Embodied in the Cleanroom approach to software development(凈室方法),Formal systems development (形式化系統(tǒng)開發(fā)),需求定義,形式化描述,形式化轉(zhuǎn)換,集成和系統(tǒng)測試,Formal transformations (形式化轉(zhuǎn)換),形式描述,可執(zhí)行系統(tǒng),Formal systems development (形式化系統(tǒng)開發(fā)),Problems(問題) Need for

33、specialised skills and training to apply the technique Difficult to formally specify some aspects of the system such as the user interface Applicability(適用于) Critical systems especially those where a safety or security case must be made before the system is put into operation,Reuse-oriented developm

34、ent(面向復(fù)用的開發(fā)),Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems(現(xiàn)成商業(yè)系統(tǒng)) Process stages Component analysis(構(gòu)件分析) Requirements modification(需求修改) System design with reuse(系統(tǒng)設(shè)計(jì)) Development and integration(開發(fā)和集成) This approach is b

35、ecoming more important but still limited experience with it,Reuse-oriented development (面向復(fù)用的開發(fā)),需求定義,構(gòu)件分析,需求調(diào)整,系統(tǒng)設(shè)計(jì),設(shè)計(jì)和集成,系統(tǒng)測試,Process iteration(過程反復(fù)),System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process fo

36、r large systems Iteration can be applied to any of the generic process models Two (related) approaches Incremental development Spiral development,Incremental development(增量開發(fā)),Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each i

37、ncrement delivering part of the required functionality User requirements are prioritised and the highest priority requirements are included in early increments Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve

38、,Spiral development(螺旋開發(fā)),Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required Risks are e

39、xplicitly assessed and resolved throughout the process,Spiral model of the software process (螺旋開發(fā)),總結(jié),進(jìn)化式模型是新手和新的不熟悉項(xiàng)目的首選 瀑布模型有經(jīng)驗(yàn)的人對熟悉的系統(tǒng) 形式化轉(zhuǎn)換往往針對協(xié)議一類便于形式化的系統(tǒng) 面向復(fù)用是成功的商業(yè)系統(tǒng) 現(xiàn)在軟件開發(fā)面臨: 1.平臺的不同 2.工具的不同,Automated process support (CASE)(計(jì)算機(jī)輔助工具),Computer-aided software engineering (CASE) is software to s

40、upport software development and evolution processes Activity automation(自動化) Graphical editors for system model development Data dictionary to manage design entities Graphical UI builder for user interface construction Debuggers to support program fault finding Automated translators to generate new

41、versions of a program,Case technology (計(jì)算機(jī)輔助工具技術(shù)),Case technology has led to significant improvements in the software process though not the order of magnitude improvements that were once predicted(工具作用尚未達(dá)到預(yù)期) Software engineering requires creative thought - this is not readily automatable(創(chuàng)造性行為) So

42、ftware engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these (人之間交互太多),CASE classification (計(jì)算機(jī)輔助工具分類),Classification helps us understand the different types of CASE tools and their support for process activitie

43、s Functional perspective(功能觀點(diǎn)) Tools are classified according to their specific function Process perspective(過程觀點(diǎn)) Tools are classified according to process activities that are supported Integration perspective(集成觀點(diǎn)) Tools are classified according to their organisation into integrated units,CASE int

44、egration (計(jì)算機(jī)輔助工具集成),Tools(工具) Support individual process tasks such as design consistency checking, text editing, etc. Workbenches(工作平臺) Support a process phase such as specification or design, Normally include a number of integrated tools Environments(環(huán)境) Support all or a substantial part of an en

45、tire software process. Normally include several integrated workbenches,Key points(主要知識點(diǎn)),Software processes are the activities involved in producing and evolving a software system. They are represented in a software process model General activities are specification, design and implementation, valid

46、ation and evolution Generic process models describe the organisation of software processes Iterative process models describe the software process as a cycle of activities,Key points (主要知識點(diǎn)),Requirements engineering is the process of developing a software specification Design and implementation proce

47、sses transform the specification to an executable program Validation involves checking that the system meets to its specification and user needs Evolution is concerned with modifying the system after it is in use CASE technology supports software process activities,1.what are the four software proce

48、ss models? 2.what is the waterfall model? Advantages and disadvantages? 3. what are the two kind models of evolutionary model? Advantages and disadvantages? 4.what is the reuse-based model? Advantages and disadvantages? 5.what is formal system development model? Advantages and disadvantages?,Homewor

49、k,Project management項(xiàng)目管理,Organising, planning and scheduling software projects 軟件項(xiàng)目的組織、計(jì)劃和進(jìn)度安排,角色模擬,假設(shè)馬鞍山股份鋼鐵公司投資1億元人民幣,開發(fā)全公司的ERP(Enterprise Resource Planning)管理系統(tǒng),你作為項(xiàng)目負(fù)責(zé)人,請問你如何開展工作,寫出提綱。,給出參考,項(xiàng)目規(guī)劃和計(jì)劃 人員組成 進(jìn)度安排 成本預(yù)算(經(jīng)費(fèi)分配) 風(fēng)險(xiǎn)管理,Topics covered包含主要內(nèi)容,Management activities 管理行為 Project planning 計(jì)劃管理 Pr

50、oject scheduling 進(jìn)度管理 Risk management 風(fēng)險(xiǎn)管理,The product is intangible 不可見性 The product is uniquely flexible 彈性 Software engineering is not recognized as an engineering discipline with the same status as mechanical, electrical engineering, etc. The software development process is not standardised 無標(biāo)準(zhǔn)

51、Many software projects are one-off projects 一次性,Software management distinctions軟件管理特點(diǎn),Project staffing人員管理,May not be possible to appoint the ideal people to work on a project Project budget may not allow for the use of highly-paid staff Staff with the appropriate experience may not be available An

52、 organisation may wish to develop employee skills on a software project Managers have to work within these constraints especially when (as is currently the case) there is an international shortage of skilled IT staff,Project plan structure項(xiàng)目計(jì)劃結(jié)構(gòu),Introduction Project organisation Risk analysis Hardwa

53、re and software resource requirements Work breakdown Project schedule Monitoring and reporting mechanisms,Milestones in the RE process軟件工程中的里程碑,Project scheduling項(xiàng)目進(jìn)度,Split project into tasks and estimate time and resources required to complete each task Organize tasks concurrently to make optimal u

54、se of workforce Minimize task dependencies to avoid delays caused by one task waiting for another to complete Dependent on project managers intuition and experience,Scheduling problems進(jìn)度問題,Estimating the difficulty of problems and hence the cost of developing a solution is hard Productivity is not p

55、roportional to the number of people working on a task Adding people to a late project makes it later because of communication overheads The unexpected always happens. Always allow contingency in planning,Bar charts and activity networks橫道圖和活動網(wǎng)絡(luò),Graphical notations used to illustrate the project sche

56、dule Show project breakdown into tasks. Tasks should not be too small. They should take about a week or two Activity charts show task dependencies and the the critical path Bar charts show schedule against calendar time,Task durations and dependencies,Activity network活動網(wǎng)絡(luò),Activity timeline橫道圖,Staff

57、allocation人員分配,Risk management風(fēng)險(xiǎn)管理,Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project. A risk is a probability that some adverse circumstance will occur. Project risks affect schedule or resources Product risks affect the quality or perform

58、ance of the software being developed Business risks affect the organisation developing or procuring the software,The risk management process風(fēng)險(xiǎn)管理過程,Risk identification Identify project, product and business risks Risk analysis Assess the likelihood and consequences of these risks Risk planning Draw u

59、p plans to avoid or minimise the effects of the risk Risk monitoring Monitor the risks throughout the project,Risk identification風(fēng)險(xiǎn)識別,Technology risks 技術(shù)風(fēng)險(xiǎn) People risks 人員風(fēng)險(xiǎn) Organisational risks 機(jī)構(gòu)風(fēng)險(xiǎn) Requirements risks 需求風(fēng)險(xiǎn) Estimation risks 估算風(fēng)險(xiǎn),Risk analysis風(fēng)險(xiǎn)分析,Assess probability and seriousness of each risk Probability may be very low, low, moderate, high or very high 風(fēng)險(xiǎn)的可能性大小 Risk effects might be catastrophic, serious, tolerable or insignificant 風(fēng)險(xiǎn)影響大小,Risk planning風(fēng)險(xiǎn)規(guī)劃,Consider each risk and develop a strategy to manage that risk Avoidance strategies 避免風(fēng)險(xiǎn) Th

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論