版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程第1章軟件工程概論寧夏醫(yī)科大學(xué)理學(xué)院楊德仁
提綱*序論*教學(xué)目的和策略*虛擬項目介紹軟件定義,應(yīng)用、編程語言;軟件的特征軟件開發(fā)與軟件危機(jī)軟件工程重要性本質(zhì),目標(biāo)與方法,內(nèi)容軟件工程的實施及其挑戰(zhàn)軟件工程學(xué)科及其演變軟件工程發(fā)展新方向*相關(guān)概念緒論:教學(xué)參考書楊德仁,軟件工程講義。參考資料<美>Mark,Priestley,PracticalObject-orientedDesignwithUML,清華大學(xué)出版社Craig
Larman
著;李洋
等譯;UML和模式應(yīng)用,機(jī)械工業(yè)出版社,2006<美>stephhen,軟件工程,機(jī)械工業(yè)出版社,2011。潘加宇,軟件方法(上冊),清華大學(xué)出版社,2013年UsecasedrivenobjectmodelingwithUML-Theoryandpractice(電子版)
孫家廣,軟件工程,高教出版社,2005年UML風(fēng)格(第二版),清華大學(xué)出版社,袖珍版。緒論:傳統(tǒng)軟件工程教材中的缺陷某些關(guān)鍵概念混淆不清,如軟件工程框架、軟件過程模型和方法、軟件過程范型、模型;體系結(jié)構(gòu)的邏輯性差,面面俱到,主次不分,邏輯性差,主線不明確,知識及其應(yīng)用之間存在“鴻溝”;一些關(guān)鍵環(huán)節(jié)缺乏理論性研究,如軟件過程范型,達(dá)不到指導(dǎo)實踐的目的。
沒有使用價值,達(dá)不到學(xué)以致用的目的,不適合于培養(yǎng)研究性和應(yīng)用型人才;緒論:課程的目的目的:達(dá)到學(xué)以致用講解一種軟件過程范型(MDA),熟悉一種建模語言(UML)學(xué)會一、兩種工具(EA與starUML),實踐一個虛擬項目(分組),應(yīng)用一種編程語言(JAVA)。
緒論:教學(xué)目的和策略策略:系統(tǒng)地介紹軟件工程理論與實踐技能基于MDA軟件范型采用面向?qū)ο蠓椒ê蚒ML建模語言*以starUML、EA為工具,以虛擬項目為導(dǎo)向;*緒論:虛擬項目(第三周起)分成5組,每組設(shè)1組長:互聯(lián)網(wǎng)+O2O醫(yī)療系統(tǒng)緒論:課程的目的目的:理解、掌握和應(yīng)用理解是什么?為什么?問題是什么?理論與方法是什么?掌握概念、技術(shù)、過程、工具、團(tuán)隊……應(yīng)用在過程中,目的在于成功地開發(fā)軟件高質(zhì)量、低費用、按進(jìn)度……緒論:課程的基礎(chǔ)語言基礎(chǔ)C(C++、C#)/JAVA,HTML5工具基礎(chǔ)編碼Eclipse框架JAVAEE設(shè)計工具Powerdesigner,Erwin,starUML,EA推薦下載starUML,EA數(shù)據(jù)庫理論與應(yīng)用基礎(chǔ)設(shè)計與優(yōu)化數(shù)據(jù)庫表模式SQL10多年前的論文:大型數(shù)據(jù)庫優(yōu)化設(shè)計方案,2001年緒論:課程的基礎(chǔ)計算模式的演變Frame(主機(jī))Client/ServerBrowser/ServerRIA(曇花一現(xiàn)),HTML5App(手機(jī)應(yīng)用軟件)application緒論:課程的安排教學(xué)內(nèi)容與課時安排
56+16第1章軟件工程概述,3課時第2章軟件過程,6課時第3章MDA軟件范型,3(實驗+3)課時第4章業(yè)務(wù)模型,6(+9)課時第5章系統(tǒng)需求模型(CIM),12(6+6)課時第6章魯棒分析模型(PIM),14(8+6)課時第7章設(shè)計模型(PSM),12(6+6)課時(OO原理與模式)*模型優(yōu)化0+2課時第8章系統(tǒng)用例驅(qū)動的軟件測試3課時(1含復(fù)習(xí))*第9章軟件工程新技術(shù)6課時(0)*實施模型與物理組織1課時緒論:課程的安排*實驗教學(xué)內(nèi)容:1虛擬項目安排工具安裝與試用2-3基于虛擬項目的業(yè)務(wù)建模4-5基于虛擬項目的系統(tǒng)需求建模6-7基于虛擬項目的魯棒建模8-9基于虛擬項目的設(shè)計建模10-11模型優(yōu)化緒論:課程的評估與考試期末考試,70%期中考試,0%平時成績,30%*課堂表現(xiàn)(虛擬項目),15%*考勤(與作業(yè)),15%要求不能曠課。緒論:課程的要求聽課與復(fù)習(xí)*作業(yè)*實踐分組虛擬項目閱讀課件簡本與參考資料軟件:定義軟件的重要性軟件與民生軟件與經(jīng)濟(jì)軟件與教育軟件與國防、戰(zhàn)略軟件定義、分類與應(yīng)用語言、特征與開發(fā)與危機(jī)成本與質(zhì)量:問題所在軟件工程學(xué)科的誕生與發(fā)展軟件:定義軟件早期:軟件=代碼!程序、數(shù)據(jù)及相關(guān)文檔的完整集合(《IEEE軟件工程術(shù)語標(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é)計算(Fortran)實時和嵌入處理(控制、監(jiān)視)辦公處理(office)智能處理企、事業(yè)單位的信息處理管理信息系統(tǒng)(MIS)按功能分為系統(tǒng)軟件:OS,DBMS支撐軟件():開發(fā)工具應(yīng)用軟件軟件:分類按規(guī)模分為微型,小型,中型,大型按客戶范圍通用軟件:如操作系統(tǒng)用戶定制的軟件:如電信業(yè)務(wù)支撐系統(tǒng)按工作方式實時系統(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)用軟件是國民經(jīng)濟(jì)發(fā)展的需要,提高管理水平和效率的必備手段,已經(jīng)與民生戚戚相關(guān)數(shù)字化校園問題:那些領(lǐng)域還沒有用到軟件?社會需要及時生產(chǎn)出軟件可靠的有價值的面向未來,按軟件工程(SE)生產(chǎn)的軟件具有經(jīng)濟(jì)性,也便于后期維護(hù)(另一種售后服務(wù))……軟件業(yè)的戰(zhàn)爭與機(jī)遇:微軟軟件:語言編程語言及其發(fā)展與分類機(jī)器語言(因機(jī)器而已):下頁匯編語言高級語言過程語言面向?qū)ο笳Z言腳本語言標(biāo)記語言SQL軟件:語言Atthelowestlevel,executablecodeconsistsofmachinelanguageinstructionsspecifictoanindividual
processor
–typicallya
centralprocessingunit
(CPU).A
machinelanguage
consistsofgroupsofbinaryvaluessignifyingprocessorinstructionsthatchangethestateofthecomputerfromitsprecedingstate.Forexample,aninstructionmaychangethevaluestoredinaparticularstoragelocationinsidethecomputer–aneffectthatisnotdirectlyobservabletotheuser.Aninstructionmayalso(indirectly)causesomethingtoappearonadisplayofthecomputersystem–astatechangewhichshouldbevisibletotheuser.Theprocessorcarriesouttheinstructionsintheordertheyareprovided,unlessitisinstructedto"jump"toadifferentinstruction,orinterrupted.軟件的特征計算機(jī)系統(tǒng)硬件:存儲、計算和顯示軟件:基于硬件,解決各種問題的邏輯產(chǎn)品處理各種信息,或控制硬件操作,或進(jìn)行智能控制軟件的組成程序(代碼)、數(shù)據(jù)設(shè)計文檔(模型):含數(shù)據(jù)模式(庫表模式)如何創(chuàng)建?誰設(shè)計和實施軟件?軟件工程師區(qū)內(nèi)缺口很大,就業(yè)前景樂觀。相關(guān)人員:甲方的業(yè)務(wù)人員軟件的特征軟件的特征抽象,無形(不可見),邏輯產(chǎn)品復(fù)雜復(fù)雜性導(dǎo)致的開發(fā)復(fù)雜性(費用、進(jìn)度和質(zhì)量難以控制)多樣性,高投資,昂貴大多是用戶定制的不怕磨損,使用周期長,維護(hù)問題:不斷變化性改錯、改善、適應(yīng)新環(huán)境維護(hù)成本高(是開發(fā)費的70%)軟件的特征好軟件的基本特征功能:能滿足用戶需求存款、取款、轉(zhuǎn)賬性能:可使用響應(yīng)性、并發(fā)性、可訪問性、安全性等等可維護(hù)使用周期長,要適應(yīng)業(yè)務(wù)的變化和更新,如利率變化可信(把握、牢靠):Dependable杜絕隱患和事故:哥倫比亞航天飛機(jī)爆炸:7宇航員喪生;86年挑戰(zhàn)者號航天飛機(jī)爆炸事故2014年10月29日美國“天鵝座”航天飛船點火后不久發(fā)生爆炸軟件開發(fā)CharacteristicsofSoftwareDevelopmentComplexlogically,
Expensive,
High-risk,容易失敗,成功率底
Maintenanceproblems開發(fā)過程依賴于開發(fā)者的技能和素質(zhì)團(tuán)隊的管理和協(xié)作客戶的配合與參與軟件開發(fā)ComplexExtremelycomplexinlogic,MuchmorecomplexthathardwaresystemsComplexityindevelopment,Toestimatecosts,Tocontrolprogress, Toguaranteequality軟件開發(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%軟件工程問世的直接背景軟件開發(fā):軟件危機(jī)MaintainabilityVarietyofmaintainabilityCorrecterrors,Improvefunctionsand/orperformances,AdapttoenvironmentsCoststomaintainsoftwareareveryhigh,55%to75%,Maintainingsoftwarewillbringnewproblems軟件開發(fā):軟件危機(jī)Symptoms:Unmanageable:Overbudget,Late,PoorqualityCauses:Oneword:Complexity新需求不斷涌現(xiàn),向來被業(yè)界輕視。缺乏應(yīng)對復(fù)雜性的、支持開發(fā)過程的方法、技術(shù)、工具、質(zhì)量控制機(jī)制等Howtoguaranteethequalityofthesoftwaresystems?Howtodevelopsuchsoftwaresystems?Problems?Skills?
Approaches?Technologies?
Stepsandprocesses?軟件開發(fā):軟件危機(jī)解決方案兩種解決方案軟件工程Softwareengineering(SE)isanattempttosolvetheseproblems.開發(fā)不僅僅是編程,按項目來實施形式化方法可信軟件用數(shù)學(xué)語言描述軟件過程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軟件工程起源:國際學(xué)術(shù)會議:軟件工程問世1968NATO(MilitaryallianceofdemocraticstatesinEuropeandNorthAmerica)SoftwareEngineeringConferences,Garmisch,GermanyAim:Tosolvethesoftware
crisis應(yīng)用工程學(xué)原理、技術(shù)和方法,科學(xué)地組織、管理軟件生產(chǎn)和運行軟件危機(jī)表象:低質(zhì)量、超期、超支2003年,第35屆會議持續(xù)9天,舊金山2軟件工程發(fā)展過程程序設(shè)計階段(1946~1955)。特點是:尚無軟件概念,程序設(shè)計主要圍繞硬件進(jìn)行開發(fā),規(guī)模很小,工具簡單,無明確分工(開發(fā)者和用戶),程序設(shè)計追求節(jié)省空間和編程技巧,無文檔資料,主要用于科學(xué)計算。軟件設(shè)計階段(1956~1970)。特點是:硬件環(huán)境相對穩(wěn)定,出現(xiàn)了“軟件作坊”的開發(fā)組織形式。開始廣泛使用產(chǎn)品軟件(可購買),建立了軟件的概念。隨著計算機(jī)技術(shù)的發(fā)展和計算機(jī)應(yīng)用的日益普及,軟件系統(tǒng)的規(guī)模越來越龐大,高級編程語言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確的分工,社會對軟件的需求量劇增。但軟件開發(fā)技術(shù)沒有重大突破,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率底下,從而導(dǎo)致了“軟件危機(jī)”的產(chǎn)生。2軟件工程發(fā)展過程(續(xù))軟件工程階段(1970年~)。硬件已向巨型化、微型化、網(wǎng)絡(luò)化和智能化四個方向發(fā)展,數(shù)據(jù)庫技術(shù)已成熟并廣泛應(yīng)用,第三代、第四代語言出現(xiàn);第一代軟件技術(shù):結(jié)構(gòu)化程序設(shè)計在數(shù)值計算領(lǐng)域取得優(yōu)異成績;(軟件方法學(xué)問世)第二代軟件技術(shù):軟件測試技術(shù)、方法、原理用于軟件生產(chǎn)過程;(軟件測試)第三代軟件技術(shù):處理需求定義技術(shù)用于軟件需求分析和描述。(需求工程的問世)MDA。萬物皆模型2軟件工程定義繁多而不一,涉及面廣,側(cè)重點不同,因?qū)W科發(fā)展程度而異(過度定義!)FritzBauer在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟(jì)手段獲得能在實際機(jī)器上有效運行的可靠軟件的一系列方法。軟件工程是為了經(jīng)濟(jì)地獲得能夠在實際機(jī)器上高效運行的、可靠的軟件而建立和應(yīng)用一系列堅實的軟件工程原則。Softwareengineering(SE)isaprofessiondedicatedtodesigning,implementing,andmodifyingsoftwaresothatitisofhigherquality,moreaffordable,maintainable,andfastertobuild.IEEEdefinesSEastheapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware,andthestudyoftheseapproaches;thatis,theapplicationofengineeringtosoftware.2軟件工程BarryBoehm:運用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計并構(gòu)造計算機(jī)程序,為開發(fā)、運行和維護(hù)這些程序提供必需的文檔。而美國梅隆卡耐基大學(xué)軟件工程研究所(SEI):以工程形式應(yīng)用計算機(jī)科學(xué)和數(shù)學(xué)原理,從而經(jīng)濟(jì)有效地解決軟件問題。計算機(jī)科學(xué)技術(shù)百科全書:軟件工程是應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本:計算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計范型(paradigm)、評估成本及確定權(quán)衡,管理科學(xué)用于計劃、資源、質(zhì)量、成本等管理。目前比較認(rèn)可的定義:軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來。2軟件工程TheIEEEstandard:SoftwareEngineering:(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operationandmaintenanceofsoftware,thatis,theapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).過度定義,無所適從?softwareengineeringisthestudyoftheprocesses,methods,toolsandtechniquesforachievingsuchcontroloverthequalityandoutcomesinsoftwaredevelopment.Softwareengineeringistheestablishmentanduseofsoundengineeringprinciplesinordertoobtaineconomically,softwarethatisreliableandworksefficientlyonrealmachines.哪些原理?2軟件工程Thecontroloverthequalityandtheoutcomesoftheprojectinthedefinitionabovemeansthatsoftwaredevelopersareableto:repeatedlydetermineandachievethedesiredlevelofqualityfortheirproducts;measureandimprovethequalityoftheirsoftwareproducts;andpredict,planandmanagethedevelopmentoftheirsoftwareproducts.2軟件工程軟件工程要素之殤!三要素還是四要素?軟件工程三要素(孫廣家教、國外教材) 過程、方法、工具2軟件工程軟件工程的四要素及其統(tǒng)一性:技術(shù)與方法標(biāo)準(zhǔn)與規(guī)范工具與環(huán)境組織與管理本軟件工程課程的主要研究內(nèi)容(過程中的)技術(shù)、方法與工具2軟件工程軟件工程的特點規(guī)范化有章可循:標(biāo)準(zhǔn)化工程文檔化/敏捷化*描述現(xiàn)狀:業(yè)務(wù)定制產(chǎn)品:需求規(guī)范化設(shè)計:設(shè)計業(yè)界的尷尬局面簡述無章可循,如同無頭蒼蠅2軟件工程TheEssenceofSEPracticeUnderstandtheproblemCommunicationandanalysisPlanasolutionModelingandsoftwaredesignsolution:Answer(s)suggestedorimplementedtotryandsolveaquestionorproblem.Asolutioncanbeeithersimpleorcomplexandmayrequirefewresourcesormanyresources.Forexample,thesolutiontoamathquestionmaybeaddressedquicklywithacalculatorbutthesolutiontopreventingaccountingfraudmaybemorecomplexandrequireagreatdealoftimetofind.Carryouttheplan……CodegenerationExaminetheresultforaccuracyTestingandqualityassurance2軟件工程Why到How(工程)TodevelophighqualitysoftwaresystemsthatsatisfythecustomersrequirementsinthecontrolofschedulesandcostsToestimatecosts,
Tocontrolprogress,
Toguaranteequalitytoovercomecomplexity2軟件工程軟件工程的國際標(biāo)準(zhǔn)ISO9000-1,9001,12207IEEESTD1074.1-1995SW-CMM(SEI)國內(nèi)企業(yè)開始用ITU國標(biāo),滯后!國內(nèi)軟件業(yè)的軟肋實踐中,沒有標(biāo)準(zhǔn)可遵行2軟件工程的本質(zhì)SE面臨的主要挑戰(zhàn)要迎合軟件的多樣性技術(shù),運行平臺急速的上市時間有價值的軟件SE的總體目標(biāo)降低成本、提高速度和質(zhì)量、可用,可維護(hù),可重用3軟件工程的目標(biāo)與原則隨著技術(shù)進(jìn)步,人們對軟件及其運行環(huán)境的要求越來越高軟件工程的目標(biāo)是:在給定成本、進(jìn)度前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產(chǎn)品。追求這些目標(biāo)有助于提高軟件產(chǎn)品的質(zhì)量和開發(fā)效率,減少維護(hù)的困難。因此,軟件工程的目標(biāo)在進(jìn)化著目標(biāo)0:按期在預(yù)算內(nèi)開發(fā)出用戶滿意的高質(zhì)量軟件,目標(biāo)1:可靠性、經(jīng)濟(jì)性、可理解性、可維護(hù)性的軟件目標(biāo)2:自適應(yīng)性、可擴(kuò)展性(維護(hù)性)、可復(fù)用性、可移植性的軟件。要實現(xiàn)目標(biāo),就要基于相應(yīng)的、進(jìn)化著的目標(biāo)、方法和原則3軟件工程的目標(biāo)與原則目標(biāo)0:按期在預(yù)算內(nèi)開發(fā)出用戶滿意的高質(zhì)量軟件,原則0:應(yīng)用基本的軟件工程知識,如軟件過程模型3軟件工程的目標(biāo)與原則目標(biāo)1:可靠性、經(jīng)濟(jì)性、可理解性、可維護(hù)性的軟件原則1:化解復(fù)雜性,把問題域映射到方案域:需求分析、設(shè)計應(yīng)用軟件方法學(xué)3軟件工程的目標(biāo)與原則第二次軟件危機(jī)隨著計算機(jī)技術(shù)不斷發(fā)展,終端設(shè)備、編程語言和技術(shù)平臺呈現(xiàn)多樣化,軟件開發(fā)日趨復(fù)雜化。信息技術(shù)在國民經(jīng)濟(jì)中不可或缺,隨著市場競爭的日趨激烈,用戶對軟件的上市時限和擁有軟件的成本等要求日趨苛刻舊系統(tǒng)的升級與移植、軟件的互操作性等復(fù)雜應(yīng)用需求;軟件開發(fā)企業(yè)面臨著如何迎接用戶上述復(fù)雜需求和提高軟件生產(chǎn)率等嚴(yán)峻技術(shù)和市場挑戰(zhàn)。解決軟件復(fù)雜性的原則、方法和機(jī)制?3軟件工程的目標(biāo)與原則目標(biāo)2:自適應(yīng)性、可擴(kuò)展性、可復(fù)用性、可移植性的軟件。原則2:基于論域和視角的建模,逐步細(xì)化分層化塊3軟件工程的目標(biāo)與原則幾個典型原則:分解與簡化分層(抽象),抽象與封裝大腦瞬間可處理的信息單元為:7加減2先簡化,再逐步細(xì)化可復(fù)用前期(上層)的模型化塊:分而治之,分解(如模塊化)不同視角解決軟件設(shè)計復(fù)雜性的機(jī)制3軟件工程的目標(biāo)與原則*其它原則信息隱藏局部化一致性:工作流程完整性可驗證性有價值簡單性開放性復(fù)用性標(biāo)準(zhǔn)性軟件工程的內(nèi)容軟件開發(fā)技術(shù):方法、過程、模型、模式工具和環(huán)境*管理在軟件生產(chǎn)中,引入:原理、過程、方法、技術(shù)、工具和評估機(jī)制(review)管理機(jī)制建立軟件開發(fā)的基礎(chǔ)長期過程:需要理解、掌握、應(yīng)用和積累經(jīng)驗4軟件工程的實施及其挑戰(zhàn)軟件業(yè)不同于一般制造業(yè)沒有模具缺乏規(guī)范的生產(chǎn)線,甚至沒有統(tǒng)一的規(guī)范從業(yè)人員培養(yǎng)代價高,培訓(xùn)難十年難樹木,百年在樹人(終生學(xué)習(xí)):新技術(shù)不斷涌現(xiàn)工程而非兒戲與用戶溝通與獲取對軟件的需求,逐步設(shè)計軟件,編碼,測試使用與維護(hù)要采用一些原理和分析構(gòu)造的技術(shù)、工具,工件(作品)4軟件工程的實施及其挑戰(zhàn)軟件工程的實施需要建立模型(文檔不夠)建模工具?自動化?抽象方法?映射很復(fù)雜描述語言?實施技術(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ī)科學(xué)、數(shù)學(xué)、工程學(xué)和管理學(xué)等基本原理應(yīng)用于軟件的開發(fā)與維護(hù)中,軟件工程的核心知識(SoftwareEngineeringBodyofKnowledge,SWEBOK)把軟件工程相關(guān)學(xué)科列為知識域:計算機(jī)工程、計算機(jī)科學(xué)、數(shù)學(xué)、管理學(xué)、項目管理、質(zhì)量管理、系統(tǒng)工程學(xué)和軟件人類工程學(xué)八個領(lǐng)域。重點在大型軟件的分析與評價、規(guī)格說明、設(shè)計和演化,還涉及管理、質(zhì)量、創(chuàng)新、標(biāo)準(zhǔn)、個人技能、團(tuán)隊協(xié)作和專業(yè)實踐等。軟件工程可以看作由下列3部分組成。計算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造軟件的模型與算法;工程科學(xué)用于制定規(guī)范、設(shè)計范型、評估成本以及確定權(quán)衡等;管理科學(xué)用于計劃、資源、質(zhì)量、成本等管理。軟件件工程專業(yè)是2002年國家教育部新增專業(yè),目錄外軟件工程碩士專業(yè)5軟件工程:核心知識ACM與IEEEComputerSociety聯(lián)合修定的SWEBOK(SoftwareEngineeringBodyofKnowledge)提到,軟件工程領(lǐng)域中的核心知識包括:*軟件需求(Softwarerequirements)*軟件設(shè)計(Softwaredesign)軟件建構(gòu)(Softwareconstruction)軟件測試(Softwaretest)軟件維護(hù)與更新(Softwaremaintenance)軟件配置管理(SoftwareConfigurationManagement,SCM)軟件工程管理(SoftwareEngineeringManagement)*軟件開發(fā)過程(SoftwareDevelopmentProcess)軟件工程工具與方法(SoftwareEngineeringToolsandmethods)軟件質(zhì)量(SoftwareQuality)5軟件工程學(xué)科:演化過程程序設(shè)計語言程序設(shè)計方法學(xué)軟件工程需求工程信息系統(tǒng)分析與設(shè)計面向?qū)ο笈cUML軟件測試代碼重構(gòu)軟件體系結(jié)構(gòu)軟件生產(chǎn)自動化longwaytogo軟件演化6軟件工程發(fā)展新方向軟件復(fù)用技術(shù)(框架\
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年宜春市事業(yè)單位招聘742人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年宜賓發(fā)展產(chǎn)城投資限公司第三批員工公開招聘管理單位筆試遴選500模擬題附帶答案詳解
- 2025年安徽黃山市徽城投資集團(tuán)限公司下屬子公司招聘6人管理單位筆試遴選500模擬題附帶答案詳解
- 2025-2030年中國木本油料產(chǎn)業(yè)運行狀況及投資前景趨勢分析報告
- 2025-2030年中國變性淀粉市場發(fā)展規(guī)模及前景趨勢分析報告
- 2025-2030年中國人體管腔內(nèi)支架行業(yè)運行狀況及發(fā)展趨勢預(yù)測報告
- 2024-2030年車輪軋機(jī)公司技術(shù)改造及擴(kuò)產(chǎn)項目可行性研究報告
- 2024-2030年組合沖擊試驗機(jī)公司技術(shù)改造及擴(kuò)產(chǎn)項目可行性研究報告
- 2024-2030年激光加工設(shè)備制造公司技術(shù)改造及擴(kuò)產(chǎn)項目可行性研究報告
- 2024-2030年中藥飲片加工搬遷改造項目可行性研究報告
- 2024-2030年中國鋁汽車緊固件行業(yè)銷售規(guī)模與盈利前景預(yù)測報告
- 城市建設(shè)苗木吊裝安全方案
- 中醫(yī)院醫(yī)生作風(fēng)建設(shè)工作方案(6篇)
- DIY手工坊創(chuàng)業(yè)項目計劃書
- (高清版)DB21∕T 1795-2021 污水源熱泵系統(tǒng)工程技術(shù)規(guī)程
- 2024-2025學(xué)年人教版數(shù)學(xué)五年級上冊期末檢測試卷(含答案)
- 【MOOC】犯罪心理學(xué)-中南財經(jīng)政法大學(xué) 中國大學(xué)慕課MOOC答案
- 《外盤期貨常識》課件
- 2024江蘇鹽城港控股集團(tuán)限公司招聘23人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年三支一扶考試基本能力測驗試題及解答參考
- 中華人民共和國統(tǒng)計法
評論
0/150
提交評論