第1章軟件工程概述_第1頁(yè)
第1章軟件工程概述_第2頁(yè)
第1章軟件工程概述_第3頁(yè)
第1章軟件工程概述_第4頁(yè)
第1章軟件工程概述_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程第1章軟件工程概論寧夏醫(yī)科大學(xué)理學(xué)院楊德仁

提綱*序論*教學(xué)目的和策略*虛擬項(xiàng)目介紹軟件定義,應(yīng)用、編程語(yǔ)言;軟件的特征軟件開(kāi)發(fā)與軟件危機(jī)軟件工程重要性本質(zhì),目標(biāo)與方法,內(nèi)容軟件工程的實(shí)施及其挑戰(zhàn)軟件工程學(xué)科及其演變軟件工程發(fā)展新方向*相關(guān)概念緒論:教學(xué)參考書楊德仁,軟件工程講義。參考資料<美>Mark,Priestley,PracticalObject-orientedDesignwithUML,清華大學(xué)出版社Craig

Larman

著;李洋

等譯;UML和模式應(yīng)用,機(jī)械工業(yè)出版社,2006<美>stephhen,軟件工程,機(jī)械工業(yè)出版社,2011。潘加宇,軟件方法(上冊(cè)),清華大學(xué)出版社,2013年UsecasedrivenobjectmodelingwithUML-Theoryandpractice(電子版)

孫家廣,軟件工程,高教出版社,2005年UML風(fēng)格(第二版),清華大學(xué)出版社,袖珍版。緒論:傳統(tǒng)軟件工程教材中的缺陷某些關(guān)鍵概念混淆不清,如軟件工程框架、軟件過(guò)程模型和方法、軟件過(guò)程范型、模型;體系結(jié)構(gòu)的邏輯性差,面面俱到,主次不分,邏輯性差,主線不明確,知識(shí)及其應(yīng)用之間存在“鴻溝”;一些關(guān)鍵環(huán)節(jié)缺乏理論性研究,如軟件過(guò)程范型,達(dá)不到指導(dǎo)實(shí)踐的目的。

沒(méi)有使用價(jià)值,達(dá)不到學(xué)以致用的目的,不適合于培養(yǎng)研究性和應(yīng)用型人才;緒論:課程的目的目的:達(dá)到學(xué)以致用講解一種軟件過(guò)程范型(MDA),熟悉一種建模語(yǔ)言(UML)學(xué)會(huì)一、兩種工具(EA與starUML),實(shí)踐一個(gè)虛擬項(xiàng)目(分組),應(yīng)用一種編程語(yǔ)言(JAVA)。

緒論:教學(xué)目的和策略策略:系統(tǒng)地介紹軟件工程理論與實(shí)踐技能基于MDA軟件范型采用面向?qū)ο蠓椒ê蚒ML建模語(yǔ)言*以starUML、EA為工具,以虛擬項(xiàng)目為導(dǎo)向;*緒論:虛擬項(xiàng)目(第三周起)分成5組,每組設(shè)1組長(zhǎng):互聯(lián)網(wǎng)+O2O醫(yī)療系統(tǒng)緒論:課程的目的目的:理解、掌握和應(yīng)用理解是什么?為什么?問(wèn)題是什么?理論與方法是什么?掌握概念、技術(shù)、過(guò)程、工具、團(tuán)隊(duì)……應(yīng)用在過(guò)程中,目的在于成功地開(kāi)發(fā)軟件高質(zhì)量、低費(fèi)用、按進(jìn)度……緒論:課程的基礎(chǔ)語(yǔ)言基礎(chǔ)C(C++、C#)/JAVA,HTML5工具基礎(chǔ)編碼Eclipse框架JAVAEE設(shè)計(jì)工具Powerdesigner,Erwin,starUML,EA推薦下載starUML,EA數(shù)據(jù)庫(kù)理論與應(yīng)用基礎(chǔ)設(shè)計(jì)與優(yōu)化數(shù)據(jù)庫(kù)表模式SQL10多年前的論文:大型數(shù)據(jù)庫(kù)優(yōu)化設(shè)計(jì)方案,2001年緒論:課程的基礎(chǔ)計(jì)算模式的演變Frame(主機(jī))Client/ServerBrowser/ServerRIA(曇花一現(xiàn)),HTML5App(手機(jī)應(yīng)用軟件)application緒論:課程的安排教學(xué)內(nèi)容與課時(shí)安排

56+16第1章軟件工程概述,3課時(shí)第2章軟件過(guò)程,6課時(shí)第3章MDA軟件范型,3(實(shí)驗(yàn)+3)課時(shí)第4章業(yè)務(wù)模型,6(+9)課時(shí)第5章系統(tǒng)需求模型(CIM),12(6+6)課時(shí)第6章魯棒分析模型(PIM),14(8+6)課時(shí)第7章設(shè)計(jì)模型(PSM),12(6+6)課時(shí)(OO原理與模式)*模型優(yōu)化0+2課時(shí)第8章系統(tǒng)用例驅(qū)動(dòng)的軟件測(cè)試3課時(shí)(1含復(fù)習(xí))*第9章軟件工程新技術(shù)6課時(shí)(0)*實(shí)施模型與物理組織1課時(shí)緒論:課程的安排*實(shí)驗(yàn)教學(xué)內(nèi)容:1虛擬項(xiàng)目安排工具安裝與試用2-3基于虛擬項(xiàng)目的業(yè)務(wù)建模4-5基于虛擬項(xiàng)目的系統(tǒng)需求建模6-7基于虛擬項(xiàng)目的魯棒建模8-9基于虛擬項(xiàng)目的設(shè)計(jì)建模10-11模型優(yōu)化緒論:課程的評(píng)估與考試期末考試,70%期中考試,0%平時(shí)成績(jī),30%*課堂表現(xiàn)(虛擬項(xiàng)目),15%*考勤(與作業(yè)),15%要求不能曠課。緒論:課程的要求聽(tīng)課與復(fù)習(xí)*作業(yè)*實(shí)踐分組虛擬項(xiàng)目閱讀課件簡(jiǎn)本與參考資料軟件:定義軟件的重要性軟件與民生軟件與經(jīng)濟(jì)軟件與教育軟件與國(guó)防、戰(zhàn)略軟件定義、分類與應(yīng)用語(yǔ)言、特征與開(kāi)發(fā)與危機(jī)成本與質(zhì)量:?jiǎn)栴}所在軟件工程學(xué)科的誕生與發(fā)展軟件:定義軟件早期:軟件=代碼!程序、數(shù)據(jù)及相關(guān)文檔的完整集合(《IEEE軟件工程術(shù)語(yǔ)標(biāo)準(zhǔn)詞匯》)software:Computerprograms,procedures,andpossiblyassociateddocumentationanddatapertainingtotheoperationofacomputersystem.Computersoftware,orsimply

software,isthenon-tangible形狀componentof

computers.Softwareisstoredin

computermemory

andcannotbetouched,justasa3Dmodelshowninanillustrationcannotbetouched.軟件是一種邏輯產(chǎn)品。Computersoftwarecontrastswithcomputerhardware,hardware.Physicalequipmentusedtoprocess,store,ortransmitcomputerprogramsordata.Thephysicalcomponentofcomputers.Computerhardwareandsoftwarerequireeachotherandneithercanberealisticallyusedwithouttheother.軟件:定義Computersoftwareincludesallcomputerprogramsregardlessoftheirarchitecture;forexample,

executablefiles,

libraries

and

scripts

arecomputersoftware.Yet,itsharestheirmutualproperties:softwareconsistsofclearly-definedinstructionsthatuponexecution,instructshardwaretoperformthetasksforwhichitisdesigned.Softwareisusuallywrittenin

high-levelprogramminglanguages

thatareeasierandmoreefficientforhumanstouse(closerto

naturallanguage)thanmachinelanguage.

High-levellanguagesarecompiledorinterpretedintomachinelanguageobjectcode.Softwaremayalsobewritteninalow-level

assemblylanguage,essentially,avaguely

mnemonic

(依稀

記憶)representationofamachinelanguageusinganaturallanguagealphabet.Assemblylanguageisconvertedintoobjectcodeviaanassembler.軟件:分類軟件的用途工程與科學(xué)計(jì)算(Fortran)實(shí)時(shí)和嵌入處理(控制、監(jiān)視)辦公處理(office)智能處理企、事業(yè)單位的信息處理管理信息系統(tǒng)(MIS)按功能分為系統(tǒng)軟件:OS,DBMS支撐軟件():開(kāi)發(fā)工具應(yīng)用軟件軟件:分類按規(guī)模分為微型,小型,中型,大型按客戶范圍通用軟件:如操作系統(tǒng)用戶定制的軟件:如電信業(yè)務(wù)支撐系統(tǒng)按工作方式實(shí)時(shí)系統(tǒng)(工業(yè)控制)交互系統(tǒng)(常用)批處理系統(tǒng)(少)軟件:分類Purpose,ordomainofuseApplicationsoftware

usesthecomputersystemtoperformusefulworkorprovide

entertainmentfunctions

beyondthebasicoperationofthecomputeritself.Systemsoftware

isdesignedtooperatethe

computerhardware,toprovidebasicfunctionality,andtoprovideaplatformforrunningapplicationsoftware.[3]

Systemsoftwareincludes:Operatingsystem,anessentialcollectionofcomputerprogramsthatmanagesresourcesandprovidescommonservicesforothersoftware.

Supervisoryprograms,

bootloaders,

shells

and

windowsystems

arecorepartsofoperatingsystems.Inpractice,anoperatingsystemcomesbundledwithadditionalsoftware(includingapplicationsoftware)sothatausercanpotentiallydosomeworkwithacomputerthatonlyhasanoperatingsystem.Devicedriver,acomputerprogramthatoperatesorcontrolsaparticulartypeofdevicethatisattachedtoacomputer.Eachdeviceneedsatleastonecorrespondingdevicedriver;thusacomputerneedsmorethanonedevicedriver.Utilities,softwaredesignedtoassistusersinmaintenanceandcareoftheircomputers.Malicioussoftware

or

malware,computersoftwaredevelopedtoharmanddisruptcomputers.Assuch,malwareisundesirable.Malwareiscloselyassociatedwithcomputer-relatedcrimes,thoughsomemaliciousprogramsmayhavebeendesignedas

practicaljokes.軟件:分類Nature,ordomainofexecutionDesktopapplications

suchas

webbrowsers

and

MicrosoftOffice,aswellas

apps.ServersoftwareScripts,suchas

JavaScript

scriptsarepiecesofsoftwaretraditionallyembeddedin

webpages

thatarerundirectlyinsidethe

webbrowser

whenawebpageisloaded.Webapplications

usuallyrunonthe

webserver

andoutputdynamically-generatedwebpagestowebbrowsers,usinge.g.

PHP,

Java

or

ASP.NET,orevenJavaScriptthatrunsontheserver.Plugins

andextensionsaresoftwarethatextendsormodifiesthefunctionalityofanotherpieceofsoftware,andrequirethatsoftwarebeusedinordertofunction;Embeddedsoftware

residesasfirmwarewithin

embeddedsystems,devicesdedicatedtoasingleuseorafewusessuchas

cars

and

televisions

.Microcode

isaspecial,relativelyobscuretypeofembeddedsoftwarewhichtellstheprocessor

itself

howtoexecutemachinecode,soitisactuallyalowerlevelthanmachinecode.

軟件的應(yīng)用

軟件:應(yīng)用軟件是國(guó)民經(jīng)濟(jì)發(fā)展的需要,提高管理水平和效率的必備手段,已經(jīng)與民生戚戚相關(guān)數(shù)字化校園問(wèn)題:那些領(lǐng)域還沒(méi)有用到軟件?社會(huì)需要及時(shí)生產(chǎn)出軟件可靠的有價(jià)值的面向未來(lái),按軟件工程(SE)生產(chǎn)的軟件具有經(jīng)濟(jì)性,也便于后期維護(hù)(另一種售后服務(wù))……軟件業(yè)的戰(zhàn)爭(zhēng)與機(jī)遇:微軟軟件:語(yǔ)言編程語(yǔ)言及其發(fā)展與分類機(jī)器語(yǔ)言(因機(jī)器而已):下頁(yè)匯編語(yǔ)言高級(jí)語(yǔ)言過(guò)程語(yǔ)言面向?qū)ο笳Z(yǔ)言腳本語(yǔ)言標(biāo)記語(yǔ)言SQL軟件:語(yǔ)言Atthelowestlevel,executablecodeconsistsofmachinelanguageinstructionsspecifictoanindividual

processor

–typicallya

centralprocessingunit

(CPU).A

machinelanguage

consistsofgroupsofbinaryvaluessignifyingprocessorinstructionsthatchangethestateofthecomputerfromitsprecedingstate.Forexample,aninstructionmaychangethevaluestoredinaparticularstoragelocationinsidethecomputer–aneffectthatisnotdirectlyobservabletotheuser.Aninstructionmayalso(indirectly)causesomethingtoappearonadisplayofthecomputersystem–astatechangewhichshouldbevisibletotheuser.Theprocessorcarriesouttheinstructionsintheordertheyareprovided,unlessitisinstructedto"jump"toadifferentinstruction,orinterrupted.軟件的特征計(jì)算機(jī)系統(tǒng)硬件:存儲(chǔ)、計(jì)算和顯示軟件:基于硬件,解決各種問(wèn)題的邏輯產(chǎn)品處理各種信息,或控制硬件操作,或進(jìn)行智能控制軟件的組成程序(代碼)、數(shù)據(jù)設(shè)計(jì)文檔(模型):含數(shù)據(jù)模式(庫(kù)表模式)如何創(chuàng)建?誰(shuí)設(shè)計(jì)和實(shí)施軟件?軟件工程師區(qū)內(nèi)缺口很大,就業(yè)前景樂(lè)觀。相關(guān)人員:甲方的業(yè)務(wù)人員軟件的特征軟件的特征抽象,無(wú)形(不可見(jiàn)),邏輯產(chǎn)品復(fù)雜復(fù)雜性導(dǎo)致的開(kāi)發(fā)復(fù)雜性(費(fèi)用、進(jìn)度和質(zhì)量難以控制)多樣性,高投資,昂貴大多是用戶定制的不怕磨損,使用周期長(zhǎng),維護(hù)問(wèn)題:不斷變化性改錯(cuò)、改善、適應(yīng)新環(huán)境維護(hù)成本高(是開(kāi)發(fā)費(fèi)的70%)軟件的特征好軟件的基本特征功能:能滿足用戶需求存款、取款、轉(zhuǎn)賬性能:可使用響應(yīng)性、并發(fā)性、可訪問(wèn)性、安全性等等可維護(hù)使用周期長(zhǎng),要適應(yīng)業(yè)務(wù)的變化和更新,如利率變化可信(把握、牢靠):Dependable杜絕隱患和事故:哥倫比亞航天飛機(jī)爆炸:7宇航員喪生;86年挑戰(zhàn)者號(hào)航天飛機(jī)爆炸事故2014年10月29日美國(guó)“天鵝座”航天飛船點(diǎn)火后不久發(fā)生爆炸軟件開(kāi)發(fā)CharacteristicsofSoftwareDevelopmentComplexlogically,

Expensive,

High-risk,容易失敗,成功率底

Maintenanceproblems開(kāi)發(fā)過(guò)程依賴于開(kāi)發(fā)者的技能和素質(zhì)團(tuán)隊(duì)的管理和協(xié)作客戶的配合與參與軟件開(kāi)發(fā)ComplexExtremelycomplexinlogic,MuchmorecomplexthathardwaresystemsComplexityindevelopment,Toestimatecosts,Tocontrolprogress, Toguaranteequality軟件開(kāi)發(fā):軟件危機(jī)HighRisks(RisksMeansPotentialFailures)ReportsfromAmericaStandishCompanyin1995,Untiltoearlyof1990’s,Success:16.2%,F(xiàn)ailure:31%,Challenging:53.8%Recentyears(2006):StandishGroupSuccess:35%,F(xiàn)ailure:19%,Challenging:46%軟件工程問(wèn)世的直接背景軟件開(kāi)發(fā):軟件危機(jī)MaintainabilityVarietyofmaintainabilityCorrecterrors,Improvefunctionsand/orperformances,AdapttoenvironmentsCoststomaintainsoftwareareveryhigh,55%to75%,Maintainingsoftwarewillbringnewproblems軟件開(kāi)發(fā):軟件危機(jī)Symptoms:Unmanageable:Overbudget,Late,PoorqualityCauses:Oneword:Complexity新需求不斷涌現(xiàn),向來(lái)被業(yè)界輕視。缺乏應(yīng)對(duì)復(fù)雜性的、支持開(kāi)發(fā)過(guò)程的方法、技術(shù)、工具、質(zhì)量控制機(jī)制等Howtoguaranteethequalityofthesoftwaresystems?Howtodevelopsuchsoftwaresystems?Problems?Skills?

Approaches?Technologies?

Stepsandprocesses?軟件開(kāi)發(fā):軟件危機(jī)解決方案兩種解決方案軟件工程Softwareengineering(SE)isanattempttosolvetheseproblems.開(kāi)發(fā)不僅僅是編程,按項(xiàng)目來(lái)實(shí)施形式化方法可信軟件用數(shù)學(xué)語(yǔ)言描述軟件過(guò)程FormalmethodsFormalmethodsaremathematicalapproachestosolvingsoftware(andhardware)problemsattherequirements,specification,anddesignlevels.Formalmethodsaremostlikelytobeappliedtosafety-criticalorsecurity-criticalsoftwareandsystems,suchasavionicssoftware.Softwaresafetyassurancestandards,suchasDO-178B,DO-178C,andCommonCriteriademandformalmethodsatthehighestlevelsofcategorization.Forsequentialsoftware,examplesofformalmethodsincludetheB-Method,thespecificationlanguagesusedinautomatedtheoremproving,RAISE,andtheZnotation.Formalizationofsoftwaredevelopmentiscreepingin,inotherplaces,withtheapplicationofObjectConstraintLanguage(andspecializationssuchasJavaModelingLanguage)andespeciallywithmodel-drivenarchitectureallowingexecutionofdesigns,ifnotspecifications.Forconcurrentsoftwareandsystems,Petrinets,processalgebra,andfinitestatemachines(whicharebasedonautomatatheory-seealsovirtualfinitestatemachineoreventdrivenfinitestatemachine)allowexecutablesoftwarespecificationandcanbeusedtobuildupandvalidateapplicationbehavior.Anotheremergingtrendinsoftwaredevelopmentistowriteaspecificationinsomeformoflogic—usuallyavariationoffirst-orderlogic(FOL)—andthentodirectlyexecutethelogicasthoughitwereaprogram.TheOWLlanguage,basedonDescriptionLogic(DL),isanexample.ThereisalsoworkonmappingsomeversionofEnglish(oranothernaturallanguage)automaticallytoandfromlogic,andexecutingthelogicdirectly.ExamplesareAttemptoControlledEnglish,andInternetBusinessLogic,whichdonotseektocontrolthevocabularyorsyntax.AfeatureofsystemsthatsupportbidirectionalEnglish-logicmappinganddirectexecutionofthelogicisthattheycanbemadetoexplaintheirresults,inEnglish,atthebusinessorscientificlevel.SoftwareDevelopmentSoftwareDevelopmentasGoal-directedCooperativeGameofInventionandCommunication[Cockburn].Thecooperativegamemodelprovidesthebenefitsthatthesoftwareengineeringmodelmisses:Itraisestotheproperprioritylevelissuescrucialtosuccessfulsoftwareprojects;itexplainshowteamswithmessy-lookingprocessessometimesoutperformotherswithtidierprocesses;ithelpsbusypractitionersdecidehowtorespondtounexpectedsituations.itisseenthatmuchofengineeringinthegeneralbelongsinthecategoryofresource-limited,cooperativegames.2軟件工程Contemporarysystemdevelopershavesomeseriousproblemstocopewith.Thesystemstheydeveloparebecomingincreasinglycomplexascustomersdemandricherfunctionalitydeliveredinevershortertimescales.Theyareexposedtoahugediversityofimplementationtechnologies,designtechniquesanddevelopmentprocesses,particularlythelatest’silverbullet’designabstraction-ModelDrivenSoftwareDevelopment.2軟件工程起源:國(guó)際學(xué)術(shù)會(huì)議:軟件工程問(wèn)世1968NATO(MilitaryallianceofdemocraticstatesinEuropeandNorthAmerica)SoftwareEngineeringConferences,Garmisch,GermanyAim:Tosolvethesoftware

crisis應(yīng)用工程學(xué)原理、技術(shù)和方法,科學(xué)地組織、管理軟件生產(chǎn)和運(yùn)行軟件危機(jī)表象:低質(zhì)量、超期、超支2003年,第35屆會(huì)議持續(xù)9天,舊金山2軟件工程發(fā)展過(guò)程程序設(shè)計(jì)階段(1946~1955)。特點(diǎn)是:尚無(wú)軟件概念,程序設(shè)計(jì)主要圍繞硬件進(jìn)行開(kāi)發(fā),規(guī)模很小,工具簡(jiǎn)單,無(wú)明確分工(開(kāi)發(fā)者和用戶),程序設(shè)計(jì)追求節(jié)省空間和編程技巧,無(wú)文檔資料,主要用于科學(xué)計(jì)算。軟件設(shè)計(jì)階段(1956~1970)。特點(diǎn)是:硬件環(huán)境相對(duì)穩(wěn)定,出現(xiàn)了“軟件作坊”的開(kāi)發(fā)組織形式。開(kāi)始廣泛使用產(chǎn)品軟件(可購(gòu)買),建立了軟件的概念。隨著計(jì)算機(jī)技術(shù)的發(fā)展和計(jì)算機(jī)應(yīng)用的日益普及,軟件系統(tǒng)的規(guī)模越來(lái)越龐大,高級(jí)編程語(yǔ)言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開(kāi)發(fā)者和用戶有了明確的分工,社會(huì)對(duì)軟件的需求量劇增。但軟件開(kāi)發(fā)技術(shù)沒(méi)有重大突破,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率底下,從而導(dǎo)致了“軟件危機(jī)”的產(chǎn)生。2軟件工程發(fā)展過(guò)程(續(xù))軟件工程階段(1970年~)。硬件已向巨型化、微型化、網(wǎng)絡(luò)化和智能化四個(gè)方向發(fā)展,數(shù)據(jù)庫(kù)技術(shù)已成熟并廣泛應(yīng)用,第三代、第四代語(yǔ)言出現(xiàn);第一代軟件技術(shù):結(jié)構(gòu)化程序設(shè)計(jì)在數(shù)值計(jì)算領(lǐng)域取得優(yōu)異成績(jī);(軟件方法學(xué)問(wèn)世)第二代軟件技術(shù):軟件測(cè)試技術(shù)、方法、原理用于軟件生產(chǎn)過(guò)程;(軟件測(cè)試)第三代軟件技術(shù):處理需求定義技術(shù)用于軟件需求分析和描述。(需求工程的問(wèn)世)MDA。萬(wàn)物皆模型2軟件工程定義繁多而不一,涉及面廣,側(cè)重點(diǎn)不同,因?qū)W科發(fā)展程度而異(過(guò)度定義?。〧ritzBauer在NATO會(huì)議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟(jì)手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上高效運(yùn)行的、可靠的軟件而建立和應(yīng)用一系列堅(jiān)實(shí)的軟件工程原則。Softwareengineering(SE)isaprofessiondedicatedtodesigning,implementing,andmodifyingsoftwaresothatitisofhigherquality,moreaffordable,maintainable,andfastertobuild.IEEEdefinesSEastheapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware,andthestudyoftheseapproaches;thatis,theapplicationofengineeringtosoftware.2軟件工程BarryBoehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來(lái)設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序,為開(kāi)發(fā)、運(yùn)行和維護(hù)這些程序提供必需的文檔。而美國(guó)梅隆卡耐基大學(xué)軟件工程研究所(SEI):以工程形式應(yīng)用計(jì)算機(jī)科學(xué)和數(shù)學(xué)原理,從而經(jīng)濟(jì)有效地解決軟件問(wèn)題。計(jì)算機(jī)科學(xué)技術(shù)百科全書:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開(kāi)發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本:計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型(paradigm)、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。目前比較認(rèn)可的定義:軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過(guò)程化方法去開(kāi)發(fā)和維護(hù)軟件,以及如何把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái)。2軟件工程TheIEEEstandard:SoftwareEngineering:(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operationandmaintenanceofsoftware,thatis,theapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).過(guò)度定義,無(wú)所適從?softwareengineeringisthestudyoftheprocesses,methods,toolsandtechniquesforachievingsuchcontroloverthequalityandoutcomesinsoftwaredevelopment.Softwareengineeringistheestablishmentanduseofsoundengineeringprinciplesinordertoobtaineconomically,softwarethatisreliableandworksefficientlyonrealmachines.哪些原理?2軟件工程Thecontroloverthequalityandtheoutcomesoftheprojectinthedefinitionabovemeansthatsoftwaredevelopersareableto:repeatedlydetermineandachievethedesiredlevelofqualityfortheirproducts;measureandimprovethequalityoftheirsoftwareproducts;andpredict,planandmanagethedevelopmentoftheirsoftwareproducts.2軟件工程軟件工程要素之殤!三要素還是四要素?軟件工程三要素(孫廣家教、國(guó)外教材) 過(guò)程、方法、工具2軟件工程軟件工程的四要素及其統(tǒng)一性:技術(shù)與方法標(biāo)準(zhǔn)與規(guī)范工具與環(huán)境組織與管理本軟件工程課程的主要研究?jī)?nèi)容(過(guò)程中的)技術(shù)、方法與工具2軟件工程軟件工程的特點(diǎn)規(guī)范化有章可循:標(biāo)準(zhǔn)化工程文檔化/敏捷化*描述現(xiàn)狀:業(yè)務(wù)定制產(chǎn)品:需求規(guī)范化設(shè)計(jì):設(shè)計(jì)業(yè)界的尷尬局面簡(jiǎn)述無(wú)章可循,如同無(wú)頭蒼蠅2軟件工程TheEssenceofSEPracticeUnderstandtheproblemCommunicationandanalysisPlanasolutionModelingandsoftwaredesignsolution:Answer(s)suggestedorimplementedtotryandsolveaquestionorproblem.Asolutioncanbeeithersimpleorcomplexandmayrequirefewresourcesormanyresources.Forexample,thesolutiontoamathquestionmaybeaddressedquicklywithacalculatorbutthesolutiontopreventingaccountingfraudmaybemorecomplexandrequireagreatdealoftimetofind.Carryouttheplan……CodegenerationExaminetheresultforaccuracyTestingandqualityassurance2軟件工程Why到How(工程)TodevelophighqualitysoftwaresystemsthatsatisfythecustomersrequirementsinthecontrolofschedulesandcostsToestimatecosts,

Tocontrolprogress,

Toguaranteequalitytoovercomecomplexity2軟件工程軟件工程的國(guó)際標(biāo)準(zhǔn)ISO9000-1,9001,12207IEEESTD1074.1-1995SW-CMM(SEI)國(guó)內(nèi)企業(yè)開(kāi)始用ITU國(guó)標(biāo),滯后!國(guó)內(nèi)軟件業(yè)的軟肋實(shí)踐中,沒(méi)有標(biāo)準(zhǔn)可遵行2軟件工程的本質(zhì)SE面臨的主要挑戰(zhàn)要迎合軟件的多樣性技術(shù),運(yùn)行平臺(tái)急速的上市時(shí)間有價(jià)值的軟件SE的總體目標(biāo)降低成本、提高速度和質(zhì)量、可用,可維護(hù),可重用3軟件工程的目標(biāo)與原則隨著技術(shù)進(jìn)步,人們對(duì)軟件及其運(yùn)行環(huán)境的要求越來(lái)越高軟件工程的目標(biāo)是:在給定成本、進(jìn)度前提下,開(kāi)發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產(chǎn)品。追求這些目標(biāo)有助于提高軟件產(chǎn)品的質(zhì)量和開(kāi)發(fā)效率,減少維護(hù)的困難。因此,軟件工程的目標(biāo)在進(jìn)化著目標(biāo)0:按期在預(yù)算內(nèi)開(kāi)發(fā)出用戶滿意的高質(zhì)量軟件,目標(biāo)1:可靠性、經(jīng)濟(jì)性、可理解性、可維護(hù)性的軟件目標(biāo)2:自適應(yīng)性、可擴(kuò)展性(維護(hù)性)、可復(fù)用性、可移植性的軟件。要實(shí)現(xiàn)目標(biāo),就要基于相應(yīng)的、進(jìn)化著的目標(biāo)、方法和原則3軟件工程的目標(biāo)與原則目標(biāo)0:按期在預(yù)算內(nèi)開(kāi)發(fā)出用戶滿意的高質(zhì)量軟件,原則0:應(yīng)用基本的軟件工程知識(shí),如軟件過(guò)程模型3軟件工程的目標(biāo)與原則目標(biāo)1:可靠性、經(jīng)濟(jì)性、可理解性、可維護(hù)性的軟件原則1:化解復(fù)雜性,把問(wèn)題域映射到方案域:需求分析、設(shè)計(jì)應(yīng)用軟件方法學(xué)3軟件工程的目標(biāo)與原則第二次軟件危機(jī)隨著計(jì)算機(jī)技術(shù)不斷發(fā)展,終端設(shè)備、編程語(yǔ)言和技術(shù)平臺(tái)呈現(xiàn)多樣化,軟件開(kāi)發(fā)日趨復(fù)雜化。信息技術(shù)在國(guó)民經(jīng)濟(jì)中不可或缺,隨著市場(chǎng)競(jìng)爭(zhēng)的日趨激烈,用戶對(duì)軟件的上市時(shí)限和擁有軟件的成本等要求日趨苛刻舊系統(tǒng)的升級(jí)與移植、軟件的互操作性等復(fù)雜應(yīng)用需求;軟件開(kāi)發(fā)企業(yè)面臨著如何迎接用戶上述復(fù)雜需求和提高軟件生產(chǎn)率等嚴(yán)峻技術(shù)和市場(chǎng)挑戰(zhàn)。解決軟件復(fù)雜性的原則、方法和機(jī)制?3軟件工程的目標(biāo)與原則目標(biāo)2:自適應(yīng)性、可擴(kuò)展性、可復(fù)用性、可移植性的軟件。原則2:基于論域和視角的建模,逐步細(xì)化分層化塊3軟件工程的目標(biāo)與原則幾個(gè)典型原則:分解與簡(jiǎn)化分層(抽象),抽象與封裝大腦瞬間可處理的信息單元為:7加減2先簡(jiǎn)化,再逐步細(xì)化可復(fù)用前期(上層)的模型化塊:分而治之,分解(如模塊化)不同視角解決軟件設(shè)計(jì)復(fù)雜性的機(jī)制3軟件工程的目標(biāo)與原則*其它原則信息隱藏局部化一致性:工作流程完整性可驗(yàn)證性有價(jià)值簡(jiǎn)單性開(kāi)放性復(fù)用性標(biāo)準(zhǔn)性軟件工程的內(nèi)容軟件開(kāi)發(fā)技術(shù):方法、過(guò)程、模型、模式工具和環(huán)境*管理在軟件生產(chǎn)中,引入:原理、過(guò)程、方法、技術(shù)、工具和評(píng)估機(jī)制(review)管理機(jī)制建立軟件開(kāi)發(fā)的基礎(chǔ)長(zhǎng)期過(guò)程:需要理解、掌握、應(yīng)用和積累經(jīng)驗(yàn)4軟件工程的實(shí)施及其挑戰(zhàn)軟件業(yè)不同于一般制造業(yè)沒(méi)有模具缺乏規(guī)范的生產(chǎn)線,甚至沒(méi)有統(tǒng)一的規(guī)范從業(yè)人員培養(yǎng)代價(jià)高,培訓(xùn)難十年難樹(shù)木,百年在樹(shù)人(終生學(xué)習(xí)):新技術(shù)不斷涌現(xiàn)工程而非兒戲與用戶溝通與獲取對(duì)軟件的需求,逐步設(shè)計(jì)軟件,編碼,測(cè)試使用與維護(hù)要采用一些原理和分析構(gòu)造的技術(shù)、工具,工件(作品)4軟件工程的實(shí)施及其挑戰(zhàn)軟件工程的實(shí)施需要建立模型(文檔不夠)建模工具?自動(dòng)化?抽象方法?映射很復(fù)雜描述語(yǔ)言?實(shí)施技術(shù)?5軟件工程學(xué)科HistoryofsoftwaredevelopmentasaprofessionalagestartswiththeformulationofSoftwareEngineeringBodyofKnowledge(SWEBOK).In1958,JohnWilderTukey,oneofthemostinfluentialstatisticians,hasintroducedthetermsoftware.ISO/IEC/IEEESystemsandSoftwareEngineeringVocabulary(SEVOCAB)definessoftwareengineeringas“theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware”.5軟件工程學(xué)科Softwareengineeringhasevolvedfromaconferencecatchphrase(thetermsoftwareengineeringwasusedinthetitleofaNATOconferenceheldinGermanyin1968.)intoanmaturedengineeringprofession,characterizedby:aprofessionalsociety(TheIEEEComputerSocietyfirstpublisheditsTransactionsonSoftwareEngineeringin1972);standardsthatspecifygenerallyacceptedprofessionalpractices(AcommitteefordevelopingsoftwareengineeringstandardswasestablishedwithintheIEEEComputerSocietyin1976.Thestandardwascompletedin1995withdesignationISO/IEC12207andgiventhetitleofStandardforSoftwareLifeCycleProcesses.)SoftwareEngineeringBodyofKnowledge(SWEBOK)Thecurrentversionof12207isdesignatedasISO/IEC12207:2008andIEEE12207-2008andprovidesthebasisforSWEBOKV3.conferenceproceedings;textbooks;5軟件工程學(xué)科軟件工程是交叉性工程學(xué)科,將計(jì)算機(jī)科學(xué)、數(shù)學(xué)、工程學(xué)和管理學(xué)等基本原理應(yīng)用于軟件的開(kāi)發(fā)與維護(hù)中,軟件工程的核心知識(shí)(SoftwareEngineeringBodyofKnowledge,SWEBOK)把軟件工程相關(guān)學(xué)科列為知識(shí)域:計(jì)算機(jī)工程、計(jì)算機(jī)科學(xué)、數(shù)學(xué)、管理學(xué)、項(xiàng)目管理、質(zhì)量管理、系統(tǒng)工程學(xué)和軟件人類工程學(xué)八個(gè)領(lǐng)域。重點(diǎn)在大型軟件的分析與評(píng)價(jià)、規(guī)格說(shuō)明、設(shè)計(jì)和演化,還涉及管理、質(zhì)量、創(chuàng)新、標(biāo)準(zhǔn)、個(gè)人技能、團(tuán)隊(duì)協(xié)作和專業(yè)實(shí)踐等。軟件工程可以看作由下列3部分組成。計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造軟件的模型與算法;工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本以及確定權(quán)衡等;管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。軟件件工程專業(yè)是2002年國(guó)家教育部新增專業(yè),目錄外軟件工程碩士專業(yè)5軟件工程:核心知識(shí)ACM與IEEEComputerSociety聯(lián)合修定的SWEBOK(SoftwareEngineeringBodyofKnowledge)提到,軟件工程領(lǐng)域中的核心知識(shí)包括:*軟件需求(Softwarerequirements)*軟件設(shè)計(jì)(Softwaredesign)軟件建構(gòu)(Softwareconstruction)軟件測(cè)試(Softwaretest)軟件維護(hù)與更新(Softwaremaintenance)軟件配置管理(SoftwareConfigurationManagement,SCM)軟件工程管理(SoftwareEngineeringManagement)*軟件開(kāi)發(fā)過(guò)程(SoftwareDevelopmentProcess)軟件工程工具與方法(SoftwareEngineeringToolsandmethods)軟件質(zhì)量(SoftwareQuality)5軟件工程學(xué)科:演化過(guò)程程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)方法學(xué)軟件工程需求工程信息系統(tǒng)分析與設(shè)計(jì)面向?qū)ο笈cUML軟件測(cè)試代碼重構(gòu)軟件體系結(jié)構(gòu)軟件生產(chǎn)自動(dòng)化longwaytogo軟件演化6軟件工程發(fā)展新方向軟件復(fù)用技術(shù)(框架\

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論