1、1第第1章章n软件角色的演化软件角色的演化n软件的概念软件的概念q软件的定义软件的定义 P4q软件与硬件的区别?软件与硬件的区别? P4-5n逻辑的与物理的逻辑的与物理的n遗留软件遗留软件q要求理解要求理解n软件神话软件神话2第第2章章n软件工程软件工程qIEEE的定义?的定义?P17q软件工程三个要素?软件工程三个要素?P17n方法、工具、过程方法、工具、过程n根基:质量关注点(软件工程的目标)根基:质量关注点(软件工程的目标)n过程框架过程框架q框架活动(框架活动(5个)个)和普适性活动(和普适性活动(8个)个) ? P1821q共利益者?共利益者?n能力成熟度模型集成能力成熟度模型集成q
2、过程元模型过程元模型q成熟度级别?成熟度级别?P22233第第2章章n过程模式过程模式n过程技术过程技术n产品与过程产品与过程4第第3章章n惯例过程模型惯例过程模型q过程:活动集合过程:活动集合q软件生命周期软件生命周期n瀑布模型瀑布模型q特点特点n文档驱动文档驱动q优点优点n(1)消除非结构化软件;)消除非结构化软件;n(2)降低软件的复杂度,促进软件开发工程化。)降低软件的复杂度,促进软件开发工程化。q缺点?缺点?P345第第3章章n增量过程模型增量过程模型q增量模型增量模型n迭代地运用瀑布模型迭代地运用瀑布模型qRAD模型模型n缺点?缺点?P36n演化过程模型演化过程模型q原型开发:需求
3、不明确原型开发:需求不明确q螺旋模型螺旋模型n特点:风险驱动特点:风险驱动 q协同开发模型协同开发模型6第第3章章n专用过程模型专用过程模型q基于构件的开发基于构件的开发n步骤?步骤?P43q形式化方法模型形式化方法模型q面向方面的软件开发面向方面的软件开发n统一过程统一过程7第第4章章n敏捷敏捷q理解理解q原则(原则(12条)条)q实现要点?实现要点?n敏捷过程敏捷过程q敏捷团队的成员特点?敏捷团队的成员特点?P55568第第4章章n敏捷过程模型敏捷过程模型q极限编程极限编程n4个框架活动:策划、设计、编码和测试个框架活动:策划、设计、编码和测试n设计原则:设计原则:KISn结对编程?优点?
4、结对编程?优点?P59q自适应的软件开发自适应的软件开发q动态系统开发方法动态系统开发方法qScrumn原则原则P6263qCrystalq敏捷建模敏捷建模9第第5章章n基于计算机的系统基于计算机的系统q系统系统q基于计算机的系统的系统要素基于计算机的系统的系统要素n软件、硬件、人员、数据库、文档、规程软件、硬件、人员、数据库、文档、规程n宏要素宏要素n系统工程的层次结构系统工程的层次结构q全局视图、领域视图、要素视图、详细视图全局视图、领域视图、要素视图、详细视图n业务过程工程:目标业务过程工程:目标n产品工程:目标产品工程:目标n系统建模系统建模q系统工程的不同层次结构上,建模细节和手段不
5、同系统工程的不同层次结构上,建模细节和手段不同10第第6章章n设计和构造的桥梁设计和构造的桥梁n需求工程的任务需求工程的任务q任务?任务?P88q活动活动n起始:起始:1)手段:询问问题;)手段:询问问题;2)目的:?)目的:?P89n导出:导出需求遇到的问题?导出:导出需求遇到的问题?P89n精化:形成分析模型,定义问题的信息域、功能域和行为域精化:形成分析模型,定义问题的信息域、功能域和行为域q由用户场景精炼分析类:属性、服务、和类间的关联和协作由用户场景精炼分析类:属性、服务、和类间的关联和协作n协商协商n规格说明:文档、模型、形式化的数学模型、场景、原型规格说明:文档、模型、形式化的数
6、学模型、场景、原型n确认和管理确认和管理11第第6章章n启动需求工程启动需求工程q步骤:确认共利益者;识别多种观点;协同合作;首次提问。步骤:确认共利益者;识别多种观点;协同合作;首次提问。n导出需求导出需求q步骤步骤n协同需求收集协同需求收集q协同需求收集会议的基本原则?协同需求收集会议的基本原则?P95n质量功能部署质量功能部署n用户场景用户场景n导出工作产品导出工作产品q工作产品类别?工作产品类别?P100n开发用例开发用例12第第7章章n需求分析:明确需求分析:明确What,为不是为不是How?q分析目标?分析目标?P108q经验原则?经验原则?P109q域分析的输入和输出?域分析的输
7、入和输出?P110n分析建模的方法分析建模的方法q结构化方法结构化方法n核心:算法和数据结构核心:算法和数据结构n数据对象建模,操作数据对象的处理建模数据对象建模,操作数据对象的处理建模qOO方法方法n核心:核心:objects + classes + inheritance + communication with messagesn补充课件补充课件13第第7章章n数据建模概念数据建模概念qER图:数据库相关图:数据库相关q数据对象和数据对象和OO类?类?P112n面向对象分析面向对象分析q目的:定义与问题相关的所有类目的:定义与问题相关的所有类q工作:工作:P114115n基于场景建模基于
8、场景建模q场景、用例、用户故事场景、用例、用户故事q用例图用例图q活动图活动图q泳道图泳道图14第第7章章n用例图示例用例图示例q学生选课系统用例图学生选课系统用例图q电信计费用例图电信计费用例图15第第7章章n面向流的建模面向流的建模q数据流图数据流图(数据流、控制流)(数据流、控制流)q控制规格说明和处理规格说明控制规格说明和处理规格说明qEg:库存管理系统、超市订货与销售、医院药品订购与销售库存管理系统、超市订货与销售、医院药品订购与销售 16第第7章章n基于类的建模基于类的建模q识别分析类识别分析类n潜在的分析类的外在表现?潜在的分析类的外在表现?P128n分析模型中类的特征?分析模型
9、中类的特征?P129(潜在类是否转化为分析类?潜在类是否转化为分析类?)q描述属性、定义操作描述属性、定义操作qCRC建模:明确类的职责建模:明确类的职责n实体类、边界类、控制类?实体类、边界类、控制类?P133n类分配职责的指导原则?类分配职责的指导原则?P134q关联和依赖关联和依赖q类图类图qEg:电梯的分类组成、交通工具概念体系、计算机系统组成电梯的分类组成、交通工具概念体系、计算机系统组成17第第7章章n生成行为模型生成行为模型q行为模型:表现系统的动态行为行为模型:表现系统的动态行为q步骤?步骤?P139q手段手段n状态图状态图q系统执行其功能时,每个类对象的状态系统执行其功能时,
10、每个类对象的状态qEg:电水壶、计算机、打印机、复印机的工作电水壶、计算机、打印机、复印机的工作n顺序图顺序图q系统执行其功能时,从外部观察到的系统状态系统执行其功能时,从外部观察到的系统状态q一组类对象的交互一组类对象的交互qEg:饮料自动销售系统、饮料自动销售系统、ATM机取款等等机取款等等18Anal ysi s M odeluse-cases - text use-case di agram s acti vi ty di agram s swi m l ane di agram sdata fl ow di agram s control -fl ow di agram s proc
11、essi ng narrati vesf fl lo o w w - -o o r ri ie e n n t te e d d e e l le e m m e e n n t ts sb b e e h h a a v v i io o r ra a l le e l le e m m e e n n t ts sc c l la a s ss s- -b b a a s se e d de e l le e m m e e n n t ts ss sc c e e n n a a r ri io o - -b b a a s se e d de e l le e m m e e n n
12、t ts scl ass di agram s anal ysi s packages CRC m odel s col l aborati on di agram s state di agram s sequence di agram sD D a a t ta a / / C C l la a s ss s D D e e s si ig g n nA A r rc c h h i it te e c c t tu u r ra a l l D D e e s si ig g n nI In n t te e r rf fa a c c e e D D e e s si ig g n n
13、C C o o m m p p o o n n e e n n t t- - L L e e v v e e l l D D e e s si ig g n nDesi gn M odel第第8章章n软件工程中的设计软件工程中的设计q分析模型到设计模型的转化分析模型到设计模型的转化qHow:给出解决方案给出解决方案n设计工程和设计质量设计工程和设计质量q评价优秀设计演化的评价优秀设计演化的3个特征?个特征?P148q设计质量的指导原则?设计质量的指导原则?P149n评估优秀设计的指导原则?评估优秀设计的指导原则?q软件设计的目标?软件设计的目标?P150nFURPS19第第8章章n设计概念(重
14、要)设计概念(重要)q抽象抽象q体系结构(扇入、扇出、宽度、深度:腰鼓形)体系结构(扇入、扇出、宽度、深度:腰鼓形)q模式(设计模式)模式(设计模式)q模块化:分而治之的策略(高内聚低耦合)模块化:分而治之的策略(高内聚低耦合)q信息隐蔽信息隐蔽n原则:每个模块都对其他模块隐藏自己的设计决策原则:每个模块都对其他模块隐藏自己的设计决策q功能独立:两个标准(内聚和耦合,其概念)功能独立:两个标准(内聚和耦合,其概念)q求精求精q重构重构q设计类:分类(设计类:分类(5个)和特征(个)和特征(4个)?个)?P15620第第8章章n设计模型设计模型q图图8-4 设计模型的维度设计模型的维度q数据设计
15、数据设计q体系结构设计元素体系结构设计元素q接口设计接口设计q构件级设计元素构件级设计元素q部署级设计元素部署级设计元素n基于模式的软件设计基于模式的软件设计21第第9章章n软件体系结构软件体系结构q体系结构的重要性?体系结构的重要性?P169n数据设计数据设计q构件级数据规格说明原则?构件级数据规格说明原则?P170171n体系结构的风格和模式体系结构的风格和模式q体系结构风格的评估?体系结构风格的评估?P171q体系结构风格的分类?体系结构风格的分类?P171173q体系结构模式的分类?体系结构模式的分类?P175n体系结构设计体系结构设计q目标系统交互的系统?目标系统交互的系统?P176
16、22第第9章章n评估可选的体系结构设计评估可选的体系结构设计q权衡分析方法?权衡分析方法?P180n迭代的分析活动迭代的分析活动n映射数据流到软件体系结构映射数据流到软件体系结构q数据流类型数据流类型n变换流变换流n事务流事务流q数据流类型决定映射方法数据流类型决定映射方法n变换映射变换映射n事务映射事务映射data flow modelTransform mappingabcdefghijx1x2x3x4bcadefgihjdata flow modelabtdefghijklmnMappingbax1tx2defx3ghx3.1ijkx4lmn23第第10章章n构件构件n设计基于类的构件设
17、计基于类的构件q基于类的构件设计基本原则?基于类的构件设计基本原则?P201204q构件级设计的指导方针?构件级设计的指导方针?P204q内聚的分类、概念、排序内聚的分类、概念、排序n要求会判断要求会判断n功能内聚功能内聚,分层内聚,通信内聚,顺序内聚,过程内聚,暂,分层内聚,通信内聚,顺序内聚,过程内聚,暂时内聚,实用内聚时内聚,实用内聚q耦合的分类、概念、排序耦合的分类、概念、排序n要求会判断要求会判断n数据耦合数据耦合、24第第10章章n实施构件级设计实施构件级设计q设计步骤设计步骤?P208212n对象约束语言对象约束语言q以形式化的语法和文法描述设计模型元素以形式化的语法和文法描述设
18、计模型元素q模型元素:类、对象、事件、消息、接口模型元素:类、对象、事件、消息、接口qOCL语句:语境、特性、操作、关键字语句:语境、特性、操作、关键字n设计传统构件设计传统构件q图形化设计:流程图图形化设计:流程图q表格化设计:决策表表格化设计:决策表q语言:伪码语言:伪码25第第11章章n黄金规则黄金规则qP222n用户界面的分析和设计用户界面的分析和设计q用户界面设计时需要了解哪些用户环境?用户界面设计时需要了解哪些用户环境?P227n界面分析界面分析n界面设计步骤界面设计步骤q用户界面设计时,常遇到的问题?用户界面设计时,常遇到的问题?P237n设计评估设计评估26第第12章章n软件测
19、试的策略性方法软件测试的策略性方法n策略问题策略问题n传统测试策略和传统测试策略和OO测试策略:测试策略:q单元测试单元测试n常见错误?常见错误?P251q集成测试集成测试n自顶向下(桩模块)自顶向下(桩模块)n自底向上(驱动程序模块)自底向上(驱动程序模块)n回归测试和冒烟测试回归测试和冒烟测试q确认测试:确认测试:测试、测试、测试测试q系统测试:恢复测试、安全测试、压力测试、性能测试系统测试:恢复测试、安全测试、压力测试、性能测试n调试技巧调试技巧 相关文档、发现相关文档、发现哪个阶段错误?哪个阶段错误?27第第13章章n软件测试基础软件测试基础q测试的目的:发现错误测试的目的:发现错误n
20、黑盒测试与方法黑盒测试与方法q概念?概念?P271q侧重于软件功能的测试:接口测试侧重于软件功能的测试:接口测试q试图发现的错误类型?试图发现的错误类型?P279q测试用例的组织测试用例的组织n等价划分法等价划分法n边界值分析边界值分析28第第13章章n白盒测试与方法白盒测试与方法q概念?概念?P271272q侧重于侧重于内部逻辑内部逻辑的测试的测试q原则?原则?P272q语句覆盖和路径覆盖语句覆盖和路径覆盖n面向对象的测试方法面向对象的测试方法n类级可应用的测试方法类级可应用的测试方法n类间测试用例设计类间测试用例设计29第第13章章n白盒测试示例白盒测试示例q设计下面给出伪码的语句覆盖和路
21、径覆盖的测试用例,要求给设计下面给出伪码的语句覆盖和路径覆盖的测试用例,要求给出输入的(出输入的(A,B,C)值和相应的预期输出(值和相应的预期输出(X,Y,Z)值。值。qSTARTnINPUT (A,B,C)nIF A 6 THEN X 15 ELSE X 1 END IFnIF B 12 THEN Y 30 ELSE Y 2 END IFnIF C 18 THEN Z 45 ELSE Z 3 END IFnPRINT (X,Y,Z)qSTOP30第第13章章n白盒测试示例白盒测试示例q1、语句覆盖的测试用例、语句覆盖的测试用例n因为每个判定表达式为真或为假时均有赋值语句,为了使每因为每个判
22、定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取指为真或为假各一次。每个判定表达式取指为真或为假各一次。n1) 使使3个判定表达式之值全为假个判定表达式之值全为假q输入:输入:A1,B1,C1;q预期输出:预期输出:X1,Y2,Z3n2) 使使3个判定表达式之值全为真个判定表达式之值全为真q输入:输入:A20,B40,C60;q预期输出:预期输出:X15,Y30,Z4531第第13章章n白盒测试示例白盒测试示例q2、路径覆盖的测试用例:本程序共有、路径覆盖的测试用例:本程序共有8条
23、可能的执行通路,为条可能的执行通路,为做到路径覆盖需要做到路径覆盖需要8组测试数据。组测试数据。n1) 3个判定表达式之值全为假个判定表达式之值全为假q输入:输入:A1,B1,C1; q预期输出:预期输出:X1,Y2,Z3n2) 3个判定表达式之值依次为假、假、真个判定表达式之值依次为假、假、真q输入:输入:A1,B1,C60;q预期输出:预期输出:X1,Y2,Z45n3) 3个判定表达式之值依次为假、真、假个判定表达式之值依次为假、真、假q输入:输入:A1,B40,C1;q预期输出:预期输出:X1,Y30,Z332第第13章章n白盒测试示例白盒测试示例q2、路径覆盖的测试用例:本程序共有、路
24、径覆盖的测试用例:本程序共有8条可能的执行通路,为条可能的执行通路,为做到路径覆盖需要做到路径覆盖需要8组测试数据。组测试数据。n4) 3个判定表达式之值依次为假、真、真个判定表达式之值依次为假、真、真q输入:输入:A1,B40,C60;q预期输出:预期输出:X1,Y20,Z45n5) 3个判定表达式之值依次为真、假、假个判定表达式之值依次为真、假、假q输入:输入:A20,B1,C1;q预期输出:预期输出:X15,Y2,Z3n6) 3个判定表达式之值依次为真、假、真个判定表达式之值依次为真、假、真q输入:输入:A20,B1,C60;q预期输出:预期输出:X15,Y2,Z4533第第13章章n白
25、盒测试示例白盒测试示例q2、路径覆盖的测试用例:本程序共有、路径覆盖的测试用例:本程序共有8条可能的执行通路,为条可能的执行通路,为做到路径覆盖需要做到路径覆盖需要8组测试数据。组测试数据。n7) 3个判定表达式之值依次为真、真、假个判定表达式之值依次为真、真、假q输入:输入:A20,B40,C1;q预期输出:预期输出:X15,Y30,Z3n8) 3个判定表达式之值全为真个判定表达式之值全为真q输入:输入:A20,B40,C60;q预期输出:预期输出:X15,Y30,Z4534考试题型考试题型n一、单项选择题(一、单项选择题(1分分15)n二、判断(二、判断(1分分15)n三、简答题(三、简答题(5分分6)n四、设计和分析(四、设计和分析(10分分4)