本书是系统介绍软件工程理论的经典教材。自1982年初版以来,本书随着软件工程学科的发展不断更新,培养了一代又一代软件工程人才,对学科本身也产生了重大影响。全书共分7篇,涵盖了整个软件开发过程各个阶段的内容,从初始的需求导出到设计和开发,再到软件项目管理。本书适合作为本科生和研究生教材,同时也可供软件工程人员参考。
本书主要特点
包括了软件工程理论与实践的最新进展,并讨论了系统工程的相关主题。
详述了敏捷方法与复用的相关知识。
涵盖了系统安全性、保险性与可靠性,解释了在开发关键系统时的最佳实践。
通过一个信息系统和一个控制系统的案例分析,阐述了软件生命周期的步骤。
与以前的版本相比,第8版更新了部分内容,并增加了有关最新主题的三章:
信息安全工程,介绍了有关安全软件的描述和设计中所需要考虑的诸多问题。
面向服务的软件工程,解释了如何将可复用的Web服务用子开发新的应用。
面向方面的软件开发,描述了基于关注点分离的新技术。
目录
- arttoverview
- chapter1introduction
- 1.1faqsaboutsoftwareengineering
- 1.2professionalandethicalresponsibility
- keypoints
- furtherreading
- exercises
- chapter2socio-technicalsystems
- 2.1emergentsystemproperties
- 2.2systemsengineering
- 2.3organisations,peopleandcomputersystems
- 2.4legacysystems
- keypoints
- furtherreading
- exercises
- chapter3criticalsystems
- 3.1asimplesafety-criticalsystem
- 3.2systemdependability
- 3.3availabilityandreliability
- 3.4safety
- 3.5security
- keypoints
- furtherreading
- exercises
- chapter4softwareprocesses
- 4.1softwareprocessmodels
- 4.2processiteration
- 4.3processactivities
- 4.4therationalunifiedprocess
- 4.5computer-aidedsoftwareengineering
- keypoints
- furtherreading
- exercises
- chapter5projectmanagement
- 5.1managementactivities
- 5.2projectplanning
- 5.3projectscheduling
- 5.4riskmanagement
- keypoints
- furtherreading
- exercises
- part2requirements
- chapter6softwarerequirements
- 6.1functionalandnon-functionalrequirements
- 6.2userrequirements
- 6.3systemrequirements
- 6.4interfacespecification
- 6.5thesoftwarerequirementsdocument
- keypoints
- furtherreading
- exercises
- chapter7requirementsengineeringprocesses
- 7.1feasibilitystudies
- 7.2requirementselicitationandanalysis
- 7.3requirementsvalidation
- 7.4requirementsmanagement
- keypoints
- furtherreading
- exercises
- chapter8systemmodels
- 8.1contextmodels
- 8.2behaviouralmodels
- 8.3datamodels
- 8.4objectmodels
- 8.5structuredmethods
- keypoints
- furtherreading
- exercises
- chapter9criticalsystemsspecification
- 9.1risk-drivenspecification
- 9.2safetyspecification
- 9.3securityspecification
- 9.4softwarereliabilityspecification
- keypoints
- furtherreading
- exercises
- chapter10formalspecification
- 10.1formalspecificationinthesoftwareprocess
- 10.2sub-systeminterfacespecification
- 10.3behaviouralspecification
- keypoints
- furtherreading
- exercises
- part3design
- chapter11architecturaldesign
- 11.1architecturaldesigndecisions
- i1.2systemorganisation
- 11.3modulardecompositionstyles
- 11.4controlstyles
- 11.5referencearchitectures
- keypoints
- furtherreading
- exercises
- chapter12distributedsystemsarchitectures
- 12.1multiprocessorarchitectures
- 12.2client-serverarchitectures
- 12.3distributedobjectarchitectures
- 12.4inter-organisationaldistributedcomputing
- keypoints
- furtherreading
- exercises
- chapter13applicationarchitectures
- 13.1dataprocessingsystems
- 13.2transactionprocessingsystems
- 13.3eventprocessingsystems
- 13.4languageprocessingsystems
- keypoints
- furtherreading
- exercises
- chapter14object-orienteddesign
- 14.1objectsandobjectclasses
- 14.2anobject-orienteddesignprocess
- 14.3designevolution
- keypoints
- furtherreading
- exercises
- chapter15real-timesoftwaredesign
- 15.1systemdesign
- 15.2real-timeoperatingsystems
- 15.5monitoringandcontrolsystems
- 15.4dataacquisitionsystems
- keypoints
- furtherreading
- exercises
- chapter16userinterfacedesign
- 16.1designissues
- 16.2theuidesignprocess
- 16.3useranalysis
- 16.4userinterfaceprototyping
- 16.5interfaceevaluation
- keypoints
- furtherreading
- exercises
- part4development
- chapter17rapidsoftwaredevelopment
- 17.1agilemethods
- 17.2extremeprogramming
- 17.3rapidapplicationdevelopment
- 17.4softwareprototyping
- keypoints
- furtherreading
- exercises
- chapter18softwarereuse
- 18.1thereuselandscape
- 18.2designpatterns
- 18.3generator-basedreuse
- 18.4applicationframeworks
- 18.5applicationsystemreuse
- keypoints
- furtherreading
- exercises
- chapter19component-basedsoftwareengineering
- 19.1componentsandcomponentmodels
- 19.2thecbseprocess
- 19.3componentcomposition
- keypoints
- furtherreading
- exercises
- chapter20criticalsystemsdevelopment
- 20.1dependableprocesses
- 20.2dependableprogramming
- 20.3faulttolerance
- 20.4fault-tolerantarchitectures
- keypoints
- furtherreading
- exercises
- chapter21softwareevolution
- 21.1programevolutiondynamics
- 21.2softwaremaintenance
- 21.3evolutionprocesses
- 21.4legacysystemevolution
- keypoints
- furtherreading
- exercises
- part5verificationandvalidation
- chapter22verificationandvalidation
- 22.1planningverificationandvalidation
- 22.2softwareinspections
- 22.3automatedstaticanalysis
- 22.4verificationandformalmethods
- keypoints
- furtherreading
- exercises
- chapter23softwaretesting
- 23.1systemtesting
- 23.2componenttesting
- 23.3testcasedesign
- 23.4testautomation
- keypoints
- furtherreading
- exercises
- chapter24criticalsystemsvalidation
- 24.1reliabilityvalidation
- 24.2safetyassurance
- 24.3securityassessment
- 24.4safetyanddependabilitycases
- keypoints
- furtherreading
- exercises
- part6management
- chapter25managingpeople
- 25.1selectingstaff
- 25.2motivatingpeople
- 25.3managinggroups
- 25.4thepeoplecapabilitymaturitymodel
- keypoints
- furtherreading
- exercises
- chapter26softwarecostestimation
- 26.1softwareproductivity
- 26.2estimationtechniques
- 26.3algorithmiccostmodelling
- 26.4projectdurationandstaffing
- keypoints
- furtherreading
- exercises
- chapter27qualitymanagement
- 27.1processandproductquality
- 27.2qualityassuranceandstandards
- 27.3qualityplanning
- 27.4qualitycontrol
- 27.5softwaremeasurementandmetrics
- keypoints
- furtherreading
- exercises
- chapter28processimprovement
- 28.1processandproductquality
- 28.2processclassification
- 28.3processmeasurement
- 28.4processanalysisandmodelling
- 28.5processchange
- 28.6thecmmiprocessimprovementframework
- keypoints
- furtherreading
- exercises
- chapter29configurationmanagement
- 29.1configurationmanagementplanning
- 29.2changemanagement
- 29.3versionandreleasemanagement
- 29.4systembuilding
- 29.5casetoolsforconfigurationmanagement
- keypoints
- furtherreading
- exercises
- part7emergingtechno&ogles
- chapter30securityengineering
- 30.1securityconcepts
- 30.2securityriskmanagement
- 30.3designforsecurity
- 30.4systemsurvivability
- keypoints
- furtherreading
- exercises
- chapter31service-orientedsoftwareengineering
- 31.1servicesasreusablecomponents
- 31.2serviceengineering
- 31.3softwaredevelopmentwithservices
- keypoints
- furtherreading
- exercises
- chapter32aspect-orientedsoftwaredevelopment
- 32.1theseparationofconcerns
- 32.2aspects,joinpointsandpointcuts
- 32.3softwareengineeringwithaspects
- keypoints
- furtherreading
- exercises
- glossary
- references
- index