軟件工程 實(shí)踐者的研究方法 PPT_第1頁
軟件工程 實(shí)踐者的研究方法 PPT_第2頁
軟件工程 實(shí)踐者的研究方法 PPT_第3頁
軟件工程 實(shí)踐者的研究方法 PPT_第4頁
軟件工程 實(shí)踐者的研究方法 PPT_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Computing and SE IIIntroduction and OverviewEr-Yu Ding2009-9Software Institute, NJURecommend papernProspects for an engineering discipline of softwaren what knowledge is important to a software professional Main Contents1.Introduction2.What is software?3.What is SE (Software Engineering)?4.SE .vs. C

2、S (Computer Science)?5.Contents of SE6.How to learn SE?丁二玉925E83621362-925You should learned beforen計(jì)算系統(tǒng)基礎(chǔ)q硬件初步(計(jì)算機(jī)體系結(jié)構(gòu))q系統(tǒng)軟件初步(操作系統(tǒng)、編譯)qC語言(結(jié)構(gòu)化程序設(shè)計(jì))n計(jì)算與軟件工程IqJava語言(面向?qū)ο蟪绦蛟O(shè)計(jì))q基本的面向?qū)ο笏枷雚軟件工程初步?n離散數(shù)學(xué)Till now you cannProgrammingqWith c or javanKeywordsnSyntaxnSemanticqUsing the abstract software entit

3、iesnInstructionnStatementnFunctionsnModulenObjectnObject-OrientedqInherit, Encapsulation, PolymorphismThis is Software Engineering ?This is only Programming!Objectives of this coursenBasics of Software EngineeringqBased on your capability of programmingqBase on the knowledge you have learnednabstrac

4、t software entitiesqFunctions/Object/Module/Object-OrientedqDo Software, not ProgramnAnalysis, Design and CreativityqBehavior in engineering manner, not a hero!nEngineering ideanTeamworknMonitor and controlCourse overviewn目標(biāo),通過本課程的學(xué)習(xí),學(xué)生應(yīng)該能夠:q掌握軟件工程的基本思想、方法和技術(shù),了解軟件工程發(fā)展歷史,理解軟件生命周期的各個(gè)階段和各種軟件開發(fā)模型;q建立工程觀

5、,了解軟件工程的專業(yè)范疇,掌握有關(guān)職業(yè)技能,理解軟件開發(fā)的“工程性”;q能夠選擇合適的系統(tǒng)開發(fā)方法,規(guī)劃一個(gè)中等規(guī)模軟件系統(tǒng)的開發(fā)過程;q理解結(jié)構(gòu)化方法和面向?qū)ο蠓椒?。掌握基本的結(jié)構(gòu)化或面向?qū)ο蟮姆治雠c設(shè)計(jì)技術(shù),能夠?yàn)橐粋€(gè)中等規(guī)模系統(tǒng)創(chuàng)建高質(zhì)量的ERD、DFD、結(jié)構(gòu)圖、UML用例圖、類圖、順序圖、狀態(tài)圖和構(gòu)件圖。并初步理解軟件工程的復(fù)雜性,能夠?yàn)檩^復(fù)雜問題提供合理的解決方案,包括問題分析、基本的體系結(jié)構(gòu)構(gòu)建和設(shè)計(jì)方案折中與選擇q理解軟件質(zhì)量保障方法,包括軟件評(píng)審和軟件測(cè)試的基本方法,能夠完成中等規(guī)模系統(tǒng)的質(zhì)量保障;q理解軟件項(xiàng)目管理思想,能夠?yàn)殚_發(fā)一個(gè)中等規(guī)模系統(tǒng)作出規(guī)劃,能夠?qū)χ械纫?guī)模軟件系

6、統(tǒng)的開發(fā)進(jìn)度進(jìn)行度量和追蹤;q利用軟件工程方法提高程序設(shè)計(jì)技能,樹立在宏觀軟件工程方法下展開程序設(shè)計(jì)的理念和習(xí)慣Course overviewn教學(xué)內(nèi)容包括:q軟件的工程基礎(chǔ)q軟件工程的專業(yè)范疇q軟件工程的發(fā)展歷史和從業(yè)知識(shí)。q軟件需求基礎(chǔ)q軟件設(shè)計(jì)基礎(chǔ)q軟件構(gòu)造基礎(chǔ)q軟件質(zhì)量基礎(chǔ)q軟件演化基礎(chǔ)q軟件項(xiàng)目管理基礎(chǔ)Course overviewn資料q教材n課件n軟件工程實(shí)踐者的研究方法q參考資料nIan Sommerville,軟件工程(原書第8版),機(jī)械工業(yè)出版社nShari Lawrence Pfleeger,Joanne M.Atlee,軟件工程(第3版),人民郵電出版社n軟件工程課程網(wǎng)

7、站:/jsalvage/Summer2007/CS451/index.htmln軟件工程課程網(wǎng)站:/turgut/COURSES/EEL6883_SEII_Spr07/ EEL6883_SEII_Spr07_LectureSlides.htmln軟件工程經(jīng)典論文推薦:http:/www.inf.ed.ac.uk/teaching/courses/seoc1/2005_2006/resources/Course overviewn考核q作業(yè)n10q實(shí)驗(yàn)n工作簿管理n40%q期末考試n50課程要求n課前預(yù)習(xí)n課堂

8、q認(rèn)真聽講q做好筆記n作業(yè)q獨(dú)立完成q準(zhǔn)時(shí)提交n晚提交的:1天扣10;3天扣30;一周扣50;一周0分q雷同者取消課程成績(jī)n課外q復(fù)習(xí)q分層次拓展n考試q嚴(yán)格要求Main Contents1.Introduction2.What is software?3.What is SE (Software Engineering)?4.SE .vs. CS (Computer Science)?5.Contents of SE6.How to learn SE?2. What is software?Your thoughts here!?SoftwarenIn the first, software

9、 is not separated qBefore 1960sinstructionMachineSoftwarenWhen software is produced, it are toolsqSoftware = programs + documents + data+CodeSoftwarenAbout now, software is simulation more than toolqKnowledge is carried on software qSoftware = programs + documents + data + knowledgeknowledgeSolution

10、s=organization of software entitiesProgram (Code)Application (Real World )CentricKnowledge Centric Need to find Need to process Need teamwork Will changing the worldTasks of software developmentnAll software construction involves essential tasks, the fashioning of the complex conceptual structures t

11、hat compose the abstract software entityqAnalysis, Design and CreativitynAnd accidental tasks, the representation of these abstract entities in programming languages and the mapping of these onto machine languages within space and speed constraints.-Frederick P. Brooks, Jr., No Silver Bullet, 1986Ma

12、in Contents1.Introduction2.What is software?3.What is SE (Software Engineering)?4.SE .vs. CS (Computer Science)?5.Contents of SE6.How to learn SE?Software is much more complex than ProgramnAs simulation of the world, software must simulative to the real world mostly and can solve problems of the rea

13、l worldnThe real world is complexnSo qSoftware is complexnProblems are complexnSolutions are complexqOnly programmers cant deal with software development wellnThey dont know the problems and solutionsnAnd none can tell them the knowledge clearlyqIf we still produce software only with programming, ba

14、dly things will happen.Software needed to be engineeredn1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國(guó)召開的國(guó)際學(xué)術(shù)會(huì)議上第一次提出了“軟件危機(jī)”(software crisis)這個(gè)名詞q軟件危機(jī): 指的是在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題n開發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)定計(jì)劃一再拖延。n用戶對(duì)“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。n件產(chǎn)品的質(zhì)量往往靠不住。Bug一大堆,Patch一個(gè)接一個(gè)。n件的可維護(hù)程度非常之低。n軟件通常沒有適當(dāng)?shù)奈臋n資料。n軟件的成本不斷提高。n軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求

15、的增長(zhǎng)n1969年的后續(xù)會(huì)議中提出了“軟件工程”的發(fā)展之路Software engineering is about managing the complexity!3. What is SE ?Your thoughts here!?What is Software Engineering?nAs defined in IEEE Standard 610.12:q(1)The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenanc

16、e of software; that is, the application of engineering to software.q(2)The study of approaches as in (1)q(1)應(yīng)用系統(tǒng)化的、學(xué)科化的、定量的方法,來開發(fā)、運(yùn)行和維護(hù)軟件,即,將工程應(yīng)用到軟件。q(2)對(duì)(1)中各種方法的研究。EngineeringnExamplesqMechanical engineeringqArchitectural engineeringqChemical engineeringqElectrical engineeringqNuclear engineeringq

17、nYours thoughts hereqWhat is the word “Engineering” means?What is the “Engineering” means?nEngineering is qThe application of scientific principles and methods to the construction of useful structures & machines which can solve some problems of the real worldqCreating cost-effective solutions to pra

18、ctical problems by applying scientific knowledge to building things in the service of mankindFactors of EngineeringnProblem: MotivationnScientific Knowledge: InstrumentnSolution/Machine: ObjectivenCost-Benefit Effective: Condition Software engineeringnProblemqReal world chaosnIf the state of the rea

19、l world do not accord with our expectations , then there is a problem.qBroad scopenAll fields that mankind set foot innIn others engineering, problems are limitedqMostly not clear, needed to be discoverednIn others engineering, problems are specific and clearqEngineering IdeanObjectives (Know what y

20、ou want to)nCan software engineer master so much knowledge?qAs a software engineer, communication and negotiation skill is very importantqCollaborating with all kinds of people, especially users.qTeamworkTeamworknAbout SE professional qSystems Analyst - to find whats the problem and the direction th

21、e solutionqSoftware Architect give solution a overall structure for the problemqSoftware Designer design the solution detail structureqSoftware Programmer implements the design using software development toolsqSoftware Tester (independent verification and validation e.g. NASA IV&V Facility, South Fa

22、irmont)qSoftware Project Manager Coordinator, Monitor and controllernplan, organize, direct, coordinate, control a software project (emphasis on risk management)TeamworknAbout SE professional(cont.)qSoftware Configuration Manager identify, change control, status accounting, audits and reviewsqSoftwa

23、re Quality Manager/Engineer software reliability modeling, statistical quality control, defect analysisqSoftware Network Specialist LAN/WAN Network design, installation, maintenanceqSoftware Systems Administrator administers user accounts, technology refreshment, software deployment to users, softwa

24、re problem solversqSoftware Database Administrator administers the database (installation, maintenance, backup, refreshment)qSoftware engineeringnScientific KnowledgeqComputing science as the scientific basisnFormal techniquesqBased on mathematics and logicqMany aspects have been made systematicnMet

25、hods/methodologies/techniquesnLanguagesnToolsnProcessesSoftware engineeringnScientific KnowledgeqScience .vs. PracticenFormalists: base their work on the theoretical foundations of computing sciencenPragmatists: take that software engineering is a practical discipline that can be benefit from more t

26、han formal techniquesqEngineering IdeanScience + Principle + ArtSoftware engineeringnScience + Principle + ArtqScience-Computing science knowledge is basis of SEnFeatures of the computernSoftware entities (program languages)nMethods/methodologies/techniquesnqPrinciple-Practice knowledge should also

27、be effective sharednMethods/techniquesnProblems/solutionsnqArtnCreativitySoftware engineeringnSolution/MachineqVirtual Machine=General machine + Specific solutionnSolution can be mapped into the general machine with the help of program languagesnNot different machines for different problems, like ot

28、hers engineeringqDevelopment of solution is the essential task of SEqMapping solution into general machine is accidental task of SESoftware engineeringnDo the solution work?qEngineering Idea nTradeoffqMonitor and Control Technology churnPerformanceThroughputCapacityAvailabilitySafetyFault toleranceF

29、unctionalityCostCompatibilityResilienceSoftware engineeringnCost-Benefit EffectiveqFeasibility studynBenefit is up to clientsnCost is up to software engineerqThere are always many ways to a destination, software engineers should choose the most cost-benefit effective one (not the most advanced one).

30、qWhen cost-benefit is inessential, then SE may disappearsnCost is smallqSmall programnBenefit is implicitqExploration studynCost is inessentialqComputer science studyqEngineering IdeanCost Benefit EffectiveqMonitor and ControlMain Contents1.Introduction2.What is software?3.What is SE (Software Engin

31、eering)?4.SE .vs. CS (Computer Science)?5.Contents of SE6.How to learn SE?4. SE .vs. CS ?應(yīng)用軟件編譯器數(shù)據(jù)庫(kù)管理系統(tǒng)網(wǎng)絡(luò)系統(tǒng)操作系統(tǒng)硬件Virtual MachineMake real world better with itUsing it betterMake it more powerMake it more easier to UseComputer ScientistSoftware EngineeringWhat is the difference between software engin

32、eering and computer science?Computer ScienceSoftware Engineeringis concerned withComputer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering theory fundamentalsthe practicalities

33、 of developingdelivering useful softwareScientist vs EngineernComputer Scientistq Proves theorems about algorithms, designs languages, defines knowledge representation schemesqHas infinite timenSoftware EngineerqDevelops a solution for an application-specific problem for a clientqUses computers & la

34、nguages, tools, techniques and methodsqWorks in multiple application domainsqHas limited time (maybe only 3 months.)qwhile changes occurs in requirements and available technologyAnother comparison:Software Engineering VS System EngineeringnWhat is a system?qSome part of reality that can be observed

35、to interact with its environmentqSeparated from its environment by a boundaryqA system receives inputs from the environment & send outputs to the environmentqSystems have interesting emergent propertiesAnother comparison:Software Engineering VS System EngineeringnInformation Systems qSoftware intens

36、ive systems exist to support Human ActivitynSystem Engineering qDesigning, implementing, deploying and operating information systems which include hardware, software and peoplenSoftware engineeringnHardware engineeringnPeople engineeringMain Contents1.Introduction2.What is software?3.What is SE (Software Engineering)?4.SE .vs. CS (Computer Science)?5.Contents of SE6.How to learn SE?5. Contents of SEnSoftware technologiesqTechnologies to produce

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論