软件工程.docx
- 文档编号:9647932
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:104
- 大小:2.37MB
软件工程.docx
《软件工程.docx》由会员分享,可在线阅读,更多相关《软件工程.docx(104页珍藏版)》请在冰豆网上搜索。
软件工程
《软件工程(双语)》
参考教材:
《Softwareengineering》8thEditionIanSommervile,PearsonEducation,机械工业出版社,2006
参考书目:
1、SoftwareEngineeringTheoryandPractice(SecondEdition影印版),ShariLawrencePfleeger,PearsonEducation,2001
2、《软件工程》第四版张海藩清华大学出版社,2007
3、软件工程,王立福等,北京大学出版社1996
说明:
斜体部分是可选讲授内容,带星号的习题为可选。
Chapter1
(1)Introduction
●Gettingstartedwithsoftwareengineering
1.1Objectives
1.Tointroducesoftwareengineeringandtoexplainitsimportance
2.Tosetouttheanswerstokeyquestionsaboutsoftwareengineering
3.Tointroduceethicalandprofessionalissuesandtoexplainwhytheyareofconcerntosoftwareengineers
1.2Topicscovered
1.FAQsaboutsoftwareengineering
2.Professionalandethicalresponsibility
1.3ImportanceofSoftwareengineering
●TheeconomiesofALLdevelopednationsaredependentonsoftware.
●Moreandmoresystemsaresoftwarecontrolled
●ExpenditureonsoftwarerepresentsasignificantfractionofGNP(grossNationalproduct)inalldevelopedcountries.(GNP与GDP的关系是:
GNP等于GDP加上本国投在国外的资本和劳务的收入再减去外国投在本国的资本和劳务的收入。
)
●Softwarecostsoftendominatecomputersystemcosts.ThecostsofsoftwareonaPCareoftengreaterthanthehardwarecost.
●Softwareengineeringisconcernedwithcost-effectivesoftwaredevelopment
1.4FAQsaboutsoftwareengineering
A.1Whatissoftware?
Computerprogramsandassociateddocumentation
B.1Softwareproductsmaybedevelopedforaparticularcustomerormaybedevelopedforageneralmarket
B.2Softwareproductsmaybe
●Generic-developedtobesoldtoarangeofdifferentcustomers
●Bespoke(custom)-developedforasinglecustomeraccordingtotheirspecification
A.2Whatissoftwareengineering?
●Softwareengineeringisanengineeringdisciplinewhichisconcernedwithallaspectsofsoftwareproduction
●Softwareengineersshouldadoptasystematicandorganisedapproachtotheirworkanduseappropriatetoolsandtechniquesdependingontheproblemtobesolved,thedevelopmentconstraintsandtheresourcesavailable
A.3Whatisthedifferencebetweensoftwareengineeringandcomputerscience?
●Computerscienceisconcernedwiththeoryandfundamentals;softwareengineeringisconcernedwiththepracticalitiesofdevelopinganddeliveringusefulsoftware
●Computersciencetheoriesarecurrentlyinsufficienttoactasacompleteunderpinningforsoftwareengineering
A.4Whatisthedifferencebetweensoftwareengineeringandsystemengineering?
●Systemengineeringisconcernedwithallaspectsofcomputer-basedsystemsdevelopmentincludinghardware,softwareandprocessengineering.Softwareengineeringispartofthisprocess
A.5Whatisasoftwareprocess?
Asetofactivitieswhosegoalisthedevelopmentorevolutionofsoftware
B.1Genericactivitiesinallsoftwareprocessesare:
●Specification-whatthesystemshoulddoanditsdevelopmentconstraints
●Development-productionofthesoftwaresystem
●Validation-checkingthatthesoftwareiswhatthecustomerwants
●Evolution-changingthesoftwareinresponsetochangingdemands
A.6Whatisasoftwareprocessmodel?
Asimplifiedrepresentationofasoftwareprocess,presentedfromaspecificperspective
B.1Examplesofprocessperspectivesare
●Workflowperspective-sequenceofactivities;
●Data-flowperspective-informationflow;
●Role/actionperspective-whodoeswhat.
B.2Genericprocessmodels:
●Waterfall
●Evolutionarydevelopment
●Formaltransformation
●Integrationfromreusablecomponents
A.7Whatarethecostsofsoftwareengineering?
●Roughly60%ofcostsaredevelopmentcosts,40%aretestingcosts.Forcustomsoftware,evolutioncostsoftenexceeddevelopmentcosts
●Costsvarydependingonthetypeofsystembeingdevelopedandtherequirementsofsystemattributessuchasperformanceandsystemreliability
●Distributionofcostsdependsonthedevelopmentmodelthatisused
A.8Whataresoftwareengineeringmethods?
Structuredapproachestosoftwaredevelopmentwhichincludesystemmodels,notations,rules,designadviceandprocessguidance.
B.1Modeldescriptions
Descriptionsofgraphicalmodelswhichshouldbeproduced;
B.2Rules
Constraintsappliedtosystemmodels;
B.3Recommendations
Adviceongooddesignpractice;
B.4Processguidance
Whatactivitiestofollow.
A.9WhatisCASE(Computer-AidedSoftwareEngineering)
Softwaresystemswhichareintendedtoprovideautomatedsupportforsoftwareprocessactivities.CASEsystemsareoftenusedformethodsupport
B.1Upper-CASE
Toolstosupporttheearlyprocessactivitiesofrequirementsanddesign
B.2Lower-CASE
Toolstosupportlateractivitiessuchasprogramming,debuggingandtesting
A.10Whataretheattributesofgoodsoftware?
Thesoftwareshoulddelivertherequiredfunctionalityandperformancetotheuserandshouldbemaintainable,dependableandusable
B.1Maintainability
Softwaremustevolvetomeetchangingneeds
B.2Dependability
Softwaremustbetrustworthy
B.3Efficiency
Softwareshouldnotmakewastefuluseofsystemresources
B.4Acceptability
Softwaremustacceptedbytheusersforwhichitwasdesigned.Thismeansitmustbeunderstandable,usableandcompatiblewithothersystems.
A.11Whatarethekeychallengesfacingsoftwareengineering?
B.1Heterogeneity
•Developingtechniquesforbuildingsoftwarethatcancopewithheterogeneousplatformsandexecutionenvironments;
B.2Delivery
•Developingtechniquesthatleadtofasterdeliveryofsoftware;
B.3Trust
•Developingtechniquesthatdemonstratethatsoftwarecanbetrustedbyitsusers
1.5Professionalandethicalresponsibility
1.5.1Concept
●Softwareengineeringinvolveswiderresponsibilitiesthansimplytheapplicationoftechnicalskills
●Softwareengineersmustbehaveinanhonestandethicallyresponsiblewayiftheyaretoberespectedasprofessionals
●Ethicalbehaviourismorethansimplyupholdingthelaw.
1.5.2Issuesofprofessionalresponsibility
A.1Confidentiality
Engineersshouldnormallyrespecttheconfidentialityoftheiremployersorclientsirrespectiveofwhetherornotaformalconfidentialityagreementhasbeensigned.
A.2Competence
Engineersshouldnotmisrepresenttheirlevelofcompetence.Theyshouldnotknowinglyacceptworkwhichisoutwiththeircompetence.
A.3Intellectualpropertyrights
Engineersshouldbeawareoflocallawsgoverningtheuseofintellectualpropertysuchaspatents,copyright,etc.Theyshouldbecarefultoensurethattheintellectualpropertyofemployersandclientsisprotected.
A.4Computermisuse
Softwareengineersshouldnotusetheirtechnicalskillstomisuseotherpeople’scomputers.Computermisuserangesfromrelativelytrivial(gameplayingonanemployer’smachine,say)toextremelyserious(disseminationofviruses).
1.5.3ACM/IEEECodeofEthics
(AssociationforComputingMachinery/InstituteofElectricalandElectronicsEngineers)
A.1Concept
●TheprofessionalsocietiesintheUShavecooperatedtoproduceacodeofethicalpractice.
●Membersoftheseorganisationssignuptothecodeofpracticewhentheyjoin.
●TheCodecontainseightPrinciplesrelatedtothebehaviourofanddecisionsmadebyprofessionalsoftwareengineers,includingpractitioners,educators,managers,supervisorsandpolicymakers,aswellastraineesandstudentsoftheprofession.
A.2Codeofethics-principles
C.1PUBLIC
Softwareengineersshallactconsistentlywiththepublicinterest.
C.2CLIENTANDEMPLOYER
Softwareengineersshallactinamannerthatisinthebestinterestsoftheirclientandemployerconsistentwiththepublicinterest.
C.3PRODUCT
Softwareengineersshallensurethattheirproductsandrelatedmodificationsmeetthehighestprofessionalstandardspossible.
C.4JUDGMENT
Softwareengineersshallmaintainintegrityandindependenceintheirprofessionaljudgment.
C.5MANAGEMENT
Softwareengineeringmanagersandleadersshallsubscribetoandpromoteanethicalapproachtothemanagementofsoftwaredevelopmentandmaintenance.
C.6PROFESSION
Softwareengineersshalladvancetheintegrityandreputationoftheprofessionconsistentwiththepublicinterest.
C.7COLLEAGUES
Softwareengineersshallbefairtoandsupportiveoftheircolleagues.
C.8SELF
Softwareengineersshallparticipateinlifelonglearningregardingthepracticeoftheirprofessionandshallpromoteanethicalapproachtothepracticeoftheprofession.
1.5.4Ethicaldilemmas
●Disagreementinprinciplewiththepoliciesofseniormanagement
●Youremployeractsinanunethicalwayandreleasesasafety-criticalsystemwithoutfinishingthetestingofthesystem
●Participationinthedevelopmentofmilitaryweaponssystemsornuclearsystems
1.6Keypoints
1.Softwareengineeringisanengineeringdisciplinewhichisconcernedwithallaspectsofsoftwareproduction.
2.Softwareproductsconsistofdevelopedprogramsandassociateddocumentation.Essentialproductattributesaremaintainability,dependability,efficiencyandusability.
3.Thesoftwareprocessconsistsofactivitieswhichareinvolvedindevelopingsoftwareproducts.Basicactivitiesaresoftwarespecification,development,validationandevolution.
4.Methodsareorganisedwaysofproducingsoftware.Theyincludesuggestionsfortheprocesstobefollowed,thenotationstobeused,rulesgoverningthesystemdescriptionswhichareproducedanddesignguidelines.
5.CASEtoolsaresoftwaresystemswhicharedesignedtosupportroutineactivitiesinthesoftwareprocesssuchaseditingdesigndiagrams,checkingdiagramconsistencyandkeepingtrackofprogramtestswhichhavebeenrun.
6.Softwareengineershaveresponsibilitiestotheengineeringprofessionandsociety.Theyshouldnotsimplybeconcernedwithtechnicalissues.
7.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程