




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程第1章軟件工程概論寧夏醫科大學理學院楊德仁
提綱*序論*教學目的和策略*虛擬項目介紹軟件定義,應用、編程語言;軟件的特征軟件開發與軟件危機軟件工程重要性本質,目標與方法,內容軟件工程的實施及其挑戰軟件工程學科及其演變軟件工程發展新方向*相關概念緒論:教學參考書楊德仁,軟件工程講義。參考資料<美>Mark,Priestley,PracticalObject-orientedDesignwithUML,清華大學出版社Craig
Larman
著;李洋
等譯;UML和模式應用,機械工業出版社,2006<美>stephhen,軟件工程,機械工業出版社,2011。潘加宇,軟件方法(上冊),清華大學出版社,2013年UsecasedrivenobjectmodelingwithUML-Theoryandpractice(電子版)
孫家廣,軟件工程,高教出版社,2005年UML風格(第二版),清華大學出版社,袖珍版。緒論:傳統軟件工程教材中的缺陷某些關鍵概念混淆不清,如軟件工程框架、軟件過程模型和方法、軟件過程范型、模型;體系結構的邏輯性差,面面俱到,主次不分,邏輯性差,主線不明確,知識及其應用之間存在“鴻溝”;一些關鍵環節缺乏理論性研究,如軟件過程范型,達不到指導實踐的目的。
沒有使用價值,達不到學以致用的目的,不適合于培養研究性和應用型人才;緒論:課程的目的目的:達到學以致用講解一種軟件過程范型(MDA),熟悉一種建模語言(UML)學會一、兩種工具(EA與starUML),實踐一個虛擬項目(分組),應用一種編程語言(JAVA)。
緒論:教學目的和策略策略:系統地介紹軟件工程理論與實踐技能基于MDA軟件范型采用面向對象方法和UML建模語言*以starUML、EA為工具,以虛擬項目為導向;*緒論:虛擬項目(第三周起)分成5組,每組設1組長:互聯網+O2O醫療系統緒論:課程的目的目的:理解、掌握和應用理解是什么?為什么?問題是什么?理論與方法是什么?掌握概念、技術、過程、工具、團隊……應用在過程中,目的在于成功地開發軟件高質量、低費用、按進度……緒論:課程的基礎語言基礎C(C++、C#)/JAVA,HTML5工具基礎編碼Eclipse框架JAVAEE設計工具Powerdesigner,Erwin,starUML,EA推薦下載starUML,EA數據庫理論與應用基礎設計與優化數據庫表模式SQL10多年前的論文:大型數據庫優化設計方案,2001年緒論:課程的基礎計算模式的演變Frame(主機)Client/ServerBrowser/ServerRIA(曇花一現),HTML5App(手機應用軟件)application緒論:課程的安排教學內容與課時安排
56+16第1章軟件工程概述,3課時第2章軟件過程,6課時第3章MDA軟件范型,3(實驗+3)課時第4章業務模型,6(+9)課時第5章系統需求模型(CIM),12(6+6)課時第6章魯棒分析模型(PIM),14(8+6)課時第7章設計模型(PSM),12(6+6)課時(OO原理與模式)*模型優化0+2課時第8章系統用例驅動的軟件測試3課時(1含復習)*第9章軟件工程新技術6課時(0)*實施模型與物理組織1課時緒論:課程的安排*實驗教學內容:1虛擬項目安排工具安裝與試用2-3基于虛擬項目的業務建模4-5基于虛擬項目的系統需求建模6-7基于虛擬項目的魯棒建模8-9基于虛擬項目的設計建模10-11模型優化緒論:課程的評估與考試期末考試,70%期中考試,0%平時成績,30%*課堂表現(虛擬項目),15%*考勤(與作業),15%要求不能曠課。緒論:課程的要求聽課與復習*作業*實踐分組虛擬項目閱讀課件簡本與參考資料軟件:定義軟件的重要性軟件與民生軟件與經濟軟件與教育軟件與國防、戰略軟件定義、分類與應用語言、特征與開發與危機成本與質量:問題所在軟件工程學科的誕生與發展軟件:定義軟件早期:軟件=代碼!程序、數據及相關文檔的完整集合(《IEEE軟件工程術語標準詞匯》)software:Computerprograms,procedures,andpossiblyassociateddocumentationanddatapertainingtotheoperationofacomputersystem.Computersoftware,orsimply
software,isthenon-tangible形狀componentof
computers.Softwareisstoredin
computermemory
andcannotbetouched,justasa3Dmodelshowninanillustrationcannotbetouched.軟件是一種邏輯產品。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.軟件:分類軟件的用途工程與科學計算(Fortran)實時和嵌入處理(控制、監視)辦公處理(office)智能處理企、事業單位的信息處理管理信息系統(MIS)按功能分為系統軟件:OS,DBMS支撐軟件():開發工具應用軟件軟件:分類按規模分為微型,小型,中型,大型按客戶范圍通用軟件:如操作系統用戶定制的軟件:如電信業務支撐系統按工作方式實時系統(工業控制)交互系統(常用)批處理系統(少)軟件:分類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.
軟件的應用
軟件:應用軟件是國民經濟發展的需要,提高管理水平和效率的必備手段,已經與民生戚戚相關數字化校園問題:那些領域還沒有用到軟件?社會需要及時生產出軟件可靠的有價值的面向未來,按軟件工程(SE)生產的軟件具有經濟性,也便于后期維護(另一種售后服務)……軟件業的戰爭與機遇:微軟軟件:語言編程語言及其發展與分類機器語言(因機器而已):下頁匯編語言高級語言過程語言面向對象語言腳本語言標記語言SQL軟件:語言Atthelowestlevel,executablecodeconsistsofmachinelanguageinstructionsspecifictoanindividual
processor
–typicallya
centralprocessingunit
(CPU).A
machinelanguage
consistsofgroupsofbinaryvaluessignifyingprocessorinstructionsthatchangethestateofthecomputerfromitsprecedingstate.Forexample,aninstructionmaychangethevaluestoredinaparticularstoragelocationinsidethecomputer–aneffectthatisnotdirectlyobservabletotheuser.Aninstructionmayalso(indirectly)causesomethingtoappearonadisplayofthecomputersystem–astatechangewhichshouldbevisibletotheuser.Theprocessorcarriesouttheinstructionsintheordertheyareprovided,unlessitisinstructedto"jump"toadifferentinstruction,orinterrupted.軟件的特征計算機系統硬件:存儲、計算和顯示軟件:基于硬件,解決各種問題的邏輯產品處理各種信息,或控制硬件操作,或進行智能控制軟件的組成程序(代碼)、數據設計文檔(模型):含數據模式(庫表模式)如何創建?誰設計和實施軟件?軟件工程師區內缺口很大,就業前景樂觀。相關人員:甲方的業務人員軟件的特征軟件的特征抽象,無形(不可見),邏輯產品復雜復雜性導致的開發復雜性(費用、進度和質量難以控制)多樣性,高投資,昂貴大多是用戶定制的不怕磨損,使用周期長,維護問題:不斷變化性改錯、改善、適應新環境維護成本高(是開發費的70%)軟件的特征好軟件的基本特征功能:能滿足用戶需求存款、取款、轉賬性能:可使用響應性、并發性、可訪問性、安全性等等可維護使用周期長,要適應業務的變化和更新,如利率變化可信(把握、牢靠):Dependable杜絕隱患和事故:哥倫比亞航天飛機爆炸:7宇航員喪生;86年挑戰者號航天飛機爆炸事故2014年10月29日美國“天鵝座”航天飛船點火后不久發生爆炸軟件開發CharacteristicsofSoftwareDevelopmentComplexlogically,
Expensive,
High-risk,容易失敗,成功率底
Maintenanceproblems開發過程依賴于開發者的技能和素質團隊的管理和協作客戶的配合與參與軟件開發ComplexExtremelycomplexinlogic,MuchmorecomplexthathardwaresystemsComplexityindevelopment,Toestimatecosts,Tocontrolprogress, Toguaranteequality軟件開發:軟件危機HighRisks(RisksMeansPotentialFailures)ReportsfromAmericaStandishCompanyin1995,Untiltoearlyof1990’s,Success:16.2%,Failure:31%,Challenging:53.8%Recentyears(2006):StandishGroupSuccess:35%,Failure:19%,Challenging:46%軟件工程問世的直接背景軟件開發:軟件危機MaintainabilityVarietyofmaintainabilityCorrecterrors,Improvefunctionsand/orperformances,AdapttoenvironmentsCoststomaintainsoftwareareveryhigh,55%to75%,Maintainingsoftwarewillbringnewproblems軟件開發:軟件危機Symptoms:Unmanageable:Overbudget,Late,PoorqualityCauses:Oneword:Complexity新需求不斷涌現,向來被業界輕視。缺乏應對復雜性的、支持開發過程的方法、技術、工具、質量控制機制等Howtoguaranteethequalityofthesoftwaresystems?Howtodevelopsuchsoftwaresystems?Problems?Skills?
Approaches?Technologies?
Stepsandprocesses?軟件開發:軟件危機解決方案兩種解決方案軟件工程Softwareengineering(SE)isanattempttosolvetheseproblems.開發不僅僅是編程,按項目來實施形式化方法可信軟件用數學語言描述軟件過程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軟件工程起源:國際學術會議:軟件工程問世1968NATO(MilitaryallianceofdemocraticstatesinEuropeandNorthAmerica)SoftwareEngineeringConferences,Garmisch,GermanyAim:Tosolvethesoftware
crisis應用工程學原理、技術和方法,科學地組織、管理軟件生產和運行軟件危機表象:低質量、超期、超支2003年,第35屆會議持續9天,舊金山2軟件工程發展過程程序設計階段(1946~1955)。特點是:尚無軟件概念,程序設計主要圍繞硬件進行開發,規模很小,工具簡單,無明確分工(開發者和用戶),程序設計追求節省空間和編程技巧,無文檔資料,主要用于科學計算。軟件設計階段(1956~1970)。特點是:硬件環境相對穩定,出現了“軟件作坊”的開發組織形式。開始廣泛使用產品軟件(可購買),建立了軟件的概念。隨著計算機技術的發展和計算機應用的日益普及,軟件系統的規模越來越龐大,高級編程語言層出不窮,應用領域不斷拓寬,開發者和用戶有了明確的分工,社會對軟件的需求量劇增。但軟件開發技術沒有重大突破,軟件產品的質量不高,生產效率底下,從而導致了“軟件危機”的產生。2軟件工程發展過程(續)軟件工程階段(1970年~)。硬件已向巨型化、微型化、網絡化和智能化四個方向發展,數據庫技術已成熟并廣泛應用,第三代、第四代語言出現;第一代軟件技術:結構化程序設計在數值計算領域取得優異成績;(軟件方法學問世)第二代軟件技術:軟件測試技術、方法、原理用于軟件生產過程;(軟件測試)第三代軟件技術:處理需求定義技術用于軟件需求分析和描述。(需求工程的問世)MDA。萬物皆模型2軟件工程定義繁多而不一,涉及面廣,側重點不同,因學科發展程度而異(過度定義?。〧ritzBauer在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經濟手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。軟件工程是為了經濟地獲得能夠在實際機器上高效運行的、可靠的軟件而建立和應用一系列堅實的軟件工程原則。Softwareengineering(SE)isaprofessiondedicatedtodesigning,implementing,andmodifyingsoftwaresothatitisofhigherquality,moreaffordable,maintainable,andfastertobuild.IEEEdefinesSEastheapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware,andthestudyoftheseapproaches;thatis,theapplicationofengineeringtosoftware.2軟件工程BarryBoehm:運用現代科學技術知識來設計并構造計算機程序,為開發、運行和維護這些程序提供必需的文檔。而美國梅隆卡耐基大學軟件工程研究所(SEI):以工程形式應用計算機科學和數學原理,從而經濟有效地解決軟件問題。計算機科學技術百科全書:軟件工程是應用計算機科學、數學及管理科學等原理,開發軟件的工程。軟件工程借鑒傳統工程的原則、方法,以提高質量、降低成本:計算機科學、數學用于構建模型與算法,工程科學用于制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用于計劃、資源、質量、成本等管理。目前比較認可的定義:軟件工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。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軟件工程軟件工程的四要素及其統一性:技術與方法標準與規范工具與環境組織與管理本軟件工程課程的主要研究內容(過程中的)技術、方法與工具2軟件工程軟件工程的特點規范化有章可循:標準化工程文檔化/敏捷化*描述現狀:業務定制產品:需求規范化設計:設計業界的尷尬局面簡述無章可循,如同無頭蒼蠅2軟件工程TheEssenceofSEPracticeUnderstandtheproblemCommunicationandanalysisPlanasolutionModelingandsoftwaredesignsolution:Answer(s)suggestedorimplementedtotryandsolveaquestionorproblem.Asolutioncanbeeithersimpleorcomplexandmayrequirefewresourcesormanyresources.Forexample,thesolutiontoamathquestionmaybeaddressedquicklywithacalculatorbutthesolutiontopreventingaccountingfraudmaybemorecomplexandrequireagreatdealoftimetofind.Carryouttheplan……CodegenerationExaminetheresultforaccuracyTestingandqualityassurance2軟件工程Why到How(工程)TodevelophighqualitysoftwaresystemsthatsatisfythecustomersrequirementsinthecontrolofschedulesandcostsToestimatecosts,
Tocontrolprogress,
Toguaranteequalitytoovercomecomplexity2軟件工程軟件工程的國際標準ISO9000-1,9001,12207IEEESTD1074.1-1995SW-CMM(SEI)國內企業開始用ITU國標,滯后!國內軟件業的軟肋實踐中,沒有標準可遵行2軟件工程的本質SE面臨的主要挑戰要迎合軟件的多樣性技術,運行平臺急速的上市時間有價值的軟件SE的總體目標降低成本、提高速度和質量、可用,可維護,可重用3軟件工程的目標與原則隨著技術進步,人們對軟件及其運行環境的要求越來越高軟件工程的目標是:在給定成本、進度前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。追求這些目標有助于提高軟件產品的質量和開發效率,減少維護的困難。因此,軟件工程的目標在進化著目標0:按期在預算內開發出用戶滿意的高質量軟件,目標1:可靠性、經濟性、可理解性、可維護性的軟件目標2:自適應性、可擴展性(維護性)、可復用性、可移植性的軟件。要實現目標,就要基于相應的、進化著的目標、方法和原則3軟件工程的目標與原則目標0:按期在預算內開發出用戶滿意的高質量軟件,原則0:應用基本的軟件工程知識,如軟件過程模型3軟件工程的目標與原則目標1:可靠性、經濟性、可理解性、可維護性的軟件原則1:化解復雜性,把問題域映射到方案域:需求分析、設計應用軟件方法學3軟件工程的目標與原則第二次軟件危機隨著計算機技術不斷發展,終端設備、編程語言和技術平臺呈現多樣化,軟件開發日趨復雜化。信息技術在國民經濟中不可或缺,隨著市場競爭的日趨激烈,用戶對軟件的上市時限和擁有軟件的成本等要求日趨苛刻舊系統的升級與移植、軟件的互操作性等復雜應用需求;軟件開發企業面臨著如何迎接用戶上述復雜需求和提高軟件生產率等嚴峻技術和市場挑戰。解決軟件復雜性的原則、方法和機制?3軟件工程的目標與原則目標2:自適應性、可擴展性、可復用性、可移植性的軟件。原則2:基于論域和視角的建模,逐步細化分層化塊3軟件工程的目標與原則幾個典型原則:分解與簡化分層(抽象),抽象與封裝大腦瞬間可處理的信息單元為:7加減2先簡化,再逐步細化可復用前期(上層)的模型化塊:分而治之,分解(如模塊化)不同視角解決軟件設計復雜性的機制3軟件工程的目標與原則*其它原則信息隱藏局部化一致性:工作流程完整性可驗證性有價值簡單性開放性復用性標準性軟件工程的內容軟件開發技術:方法、過程、模型、模式工具和環境*管理在軟件生產中,引入:原理、過程、方法、技術、工具和評估機制(review)管理機制建立軟件開發的基礎長期過程:需要理解、掌握、應用和積累經驗4軟件工程的實施及其挑戰軟件業不同于一般制造業沒有模具缺乏規范的生產線,甚至沒有統一的規范從業人員培養代價高,培訓難十年難樹木,百年在樹人(終生學習):新技術不斷涌現工程而非兒戲與用戶溝通與獲取對軟件的需求,逐步設計軟件,編碼,測試使用與維護要采用一些原理和分析構造的技術、工具,工件(作品)4軟件工程的實施及其挑戰軟件工程的實施需要建立模型(文檔不夠)建模工具?自動化?抽象方法?映射很復雜描述語言?實施技術?5軟件工程學科HistoryofsoftwaredevelopmentasaprofessionalagestartswiththeformulationofSoftwareEngineeringBodyofKnowledge(SWEBOK).In1958,JohnWilderTukey,oneofthemostinfluentialstatisticians,hasintroducedthetermsoftware.ISO/IEC/IEEESystemsandSoftwareEngineeringVocabulary(SEVOCAB)definessoftwareengineeringas“theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware”.5軟件工程學科Softwareengineeringhasevolvedfromaconferencecatchphrase(thetermsoftwareengineeringwasusedinthetitleofaNATOconferenceheldinGermanyin1968.)intoanmaturedengineeringprofession,characterizedby:aprofessionalsociety(TheIEEEComputerSocietyfirstpublisheditsTransactionsonSoftwareEngineeringin1972);standardsthatspecifygenerallyacceptedprofessionalpractices(AcommitteefordevelopingsoftwareengineeringstandardswasestablishedwithintheIEEEComputerSocietyin1976.Thestandardwascompletedin1995withdesignationISO/IEC12207andgiventhetitleofStandardforSoftwareLifeCycleProcesses.)SoftwareEngineeringBodyofKnowledge(SWEBOK)Thecurrentversionof12207isdesignatedasISO/IEC12207:2008andIEEE12207-2008andprovidesthebasisforSWEBOKV3.conferenceproceedings;textbooks;5軟件工程學科軟件工程是交叉性工程學科,將計算機科學、數學、工程學和管理學等基本原理應用于軟件的開發與維護中,軟件工程的核心知識(SoftwareEngineeringBodyofKnowledge,SWEBOK)把軟件工程相關學科列為知識域:計算機工程、計算機科學、數學、管理學、項目管理、質量管理、系統工程學和軟件人類工程學八個領域。重點在大型軟件的分析與評價、規格說明、設計和演化,還涉及管理、質量、創新、標準、個人技能、團隊協作和專業實踐等。軟件工程可以看作由下列3部分組成。計算機科學和數學用于構造軟件的模型與算法;工程科學用于制定規范、設計范型、評估成本以及確定權衡等;管理科學用于計劃、資源、質量、成本等管理。軟件件工程專業是2002年國家教育部新增專業,目錄外軟件工程碩士專業5軟件工程:核心知識ACM與IEEEComputerSociety聯合修定的SWEBOK(SoftwareEngineeringBodyofKnowledge)提到,軟件工程領域中的核心知識包括:*軟件需求(Softwarerequirements)*軟件設計(Softwaredesign)軟件建構(Softwareconstruction)軟件測試(Softwaretest)軟件維護與更新(Softwaremaintenance)軟件配置管理(SoftwareConfigurationManagement,SCM)軟件工程管理(SoftwareEngineeringManagement)*軟件開發過程(SoftwareDevelopmentProcess)軟件工程工具與方法(SoftwareEngineeringToolsandmethods)軟件質量(SoftwareQuality)5軟件工程學科:演化過程程序設計語言程序設計方法學軟件工程需求工程信息系統分析與設計面向對象與UML軟件測試代碼重構軟件體系結構軟件生產自動化longwaytogo軟件演化6軟件工程發展新方向軟件復用技術(框架\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瑜伽呼吸教學核心方法與實踐
- 2025許昌陶瓷職業學院輔導員考試試題及答案
- 2025西安理工大學輔導員考試試題及答案
- 2025遼寧科技大學輔導員考試試題及答案
- 2025鹽城工學院輔導員考試試題及答案
- 2025福建師范大學輔導員考試試題及答案
- 機械創新設計說明
- 幼兒疾病預防教案
- 南昌高新企業管理服務有限公司招聘筆試題庫2025
- 上海楊浦區同元敦商貿有限公司招聘筆試題庫2025
- 2024年甘肅省臨夏州永靖縣部分學校中考物理一模試卷+
- 傳染病孕婦的管理與預防
- 國家中長期科技發展規劃(2021-2035)
- 機織產品工藝設計與計算改樣本
- 梅隴鎮永聯村未來規劃方案
- 社區停車位規劃方案設計
- 脂肪肝護理查房
- 基于無人機的公路裂縫自動檢測與分類識別
- 《計量經濟學》各章數據
- 房屋建筑勘察設計投標方案(技術標)
- T-SDJSXH 02-2021 建筑施工安全生產責任保險事故預防服務導則
評論
0/150
提交評論