软件工程复习比较完善

上传人:无*** 文档编号:185110829 上传时间:2023-02-02 格式:PPT 页数:144 大小:696.52KB
收藏 版权申诉 举报 下载
软件工程复习比较完善_第1页
第1页 / 共144页
软件工程复习比较完善_第2页
第2页 / 共144页
软件工程复习比较完善_第3页
第3页 / 共144页
资源描述:

《软件工程复习比较完善》由会员分享,可在线阅读,更多相关《软件工程复习比较完善(144页珍藏版)》请在装配图网上搜索。

1、软件工程软件工程-原理、方法与应用原理、方法与应用课程安排课程安排n理论理论n内容:基本原理、方法和技术内容:基本原理、方法和技术n形式:讲授、自学、讨论形式:讲授、自学、讨论n实践实践n内容:构造一个应用系统(包括分析、设计、内容:构造一个应用系统(包括分析、设计、编码、测试)编码、测试)n形式:分组、分阶段文档、编码、集成形式:分组、分阶段文档、编码、集成软件工程的主要内容软件工程的主要内容n软件工程的基本概念软件工程的基本概念n软件开发模型软件开发模型n软件开发各阶段的任务、技术、方法软件开发各阶段的任务、技术、方法n传统方法、面向对象方法传统方法、面向对象方法n软件工程管理软件工程管理

2、n软件质量保证软件质量保证n软件工程环境软件工程环境第一章第一章 绪论绪论n软件与软件危机软件与软件危机n软件工程学软件工程学n传统软件工程和面向对象软件工程传统软件工程和面向对象软件工程n软件工程的应用软件工程的应用n=n1-1 1-1 什么是软件危机什么是软件危机?它有哪些典型表现它有哪些典型表现?为什为什么会出现软件危机么会出现软件危机?1-2 1-2 什么是软件工程什么是软件工程?它有哪些本质特性它有哪些本质特性?怎样怎样用软件工程消除软件危机用软件工程消除软件危机?1-3 1-3 简述结构化范型和面向对象范型的要点,简述结构化范型和面向对象范型的要点,并分析它们的优缺点。并分析它们的

3、优缺点。1-4 1-4 什么是软件过程什么是软件过程?它与软件工程方法学有它与软件工程方法学有何关系何关系?软件软件n程序、软件与软件产品程序、软件与软件产品独唱独唱-小合唱小合唱-合唱合唱-万人大合唱万人大合唱|简单程序简单程序 较复杂程序较复杂程序 软件软件n软件定义:软件定义:软件软件=程序程序+数据数据+文档文档程序:按事先设计的功能和性能需求执行的指令程序:按事先设计的功能和性能需求执行的指令序列序列数据:是程序能正常操纵信息的数据结构数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料文档:与程序开发、维护和使用有关的图文材料 软件的特征软件的特征n软件是

4、逻辑的,而不是物理的软件是逻辑的,而不是物理的n软件开发与人关系密切软件开发与人关系密切n软件开发成本大软件开发成本大n软件生产是简单的拷贝软件生产是简单的拷贝n软件不会磨损和老化软件不会磨损和老化n软件受环境影响大软件受环境影响大n软件维护易产生新的问题软件维护易产生新的问题软件开发的发展过程软件开发的发展过程计算机应用发展计算机应用发展软件数量多软件数量多规模大规模大软件成本高软件成本高质量低质量低个体化软件开发方法个体化软件开发方法软件维护困难软件维护困难软件危机软件危机软件工程软件工程软件危机软件危机n定义定义计算机软件的开发和维护过程所遇到的一系列严重问计算机软件的开发和维护过程所遇

5、到的一系列严重问题题 n表现表现n对软件开发成本和进度的估算很不准确对软件开发成本和进度的估算很不准确n用户很不满意用户很不满意n质量很不可靠质量很不可靠n没有适当的文档没有适当的文档n软件成本比重上升软件成本比重上升n供不应求:软件开发生产率跟不上计算机应用迅速供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势深入的趋势 硬件硬件/软件成本变化趋势软件成本变化趋势硬件软件100%0%195519701985软件技术进步落后于需求增长软件技术进步落后于需求增长软件危机软件危机n原因原因n客观:软件本身特点客观:软件本身特点n逻辑部件逻辑部件n规模庞大规模庞大n主观:不正确的开发方法主观:不

6、正确的开发方法n忽视需求分析忽视需求分析n错误认为:软件开发错误认为:软件开发=程序编写程序编写n轻视软件维护轻视软件维护软件危机软件危机n解决途径解决途径n组织管理组织管理n工程项目管理方法工程项目管理方法n技术措施技术措施n软件开发技术与方法软件开发技术与方法n软件工具软件工具软件工程学的范畴软件工程学的范畴n软件工程学软件工程学n指导计算机软件开发和维护的工程学科指导计算机软件开发和维护的工程学科 n工程管理工程管理+开发技术开发技术n软件开发技术软件开发技术n软件开发方法学软件开发方法学n软件工具软件工具n软件工程环境软件工程环境n软件工程管理软件工程管理n软件管理学软件管理学n软件经

7、济学软件经济学n软件度量学软件度量学两种程序设计方法两种程序设计方法n程序设计的两次飞跃程序设计的两次飞跃n结构化程序设计结构化程序设计n程序程序=数据结构数据结构+算法算法n面向对象程序设计面向对象程序设计n程序程序 =对象对象 +消息消息 面向过程和面向对象的编码面向过程和面向对象的编码存款取款利 息 结算帐 户 余额帐 户 余额利 息 结算存 款取 款两类软件工程方法两类软件工程方法n传统软件工程传统软件工程n软件分析软件分析 总体设计总体设计 详细设计详细设计 面面向过程的编码向过程的编码 测试测试 n面向对象软件工程面向对象软件工程n软件分析与对象抽取软件分析与对象抽取 对象详细设计

8、对象详细设计 面向对象的编码面向对象的编码 测试测试 软件工程的应用软件工程的应用n软件工程指导中小型软件软件工程指导中小型软件n软件工程指导大型软件软件工程指导大型软件n软件工程的成就软件工程的成就n软件工程的局限软件工程的局限第二章第二章 软件开发模型软件开发模型n2-1 2-1 什么是软件生命周期模型什么是软件生命周期模型?试比较瀑布模试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。缺点,说明每种模型的适用范围。n2-2 2-2 什么是面向对象方法学?它有哪些优点?什么是面向对象方法学?它有哪些优点?2-32-3什

9、么是什么是“对象对象”?它与传统的数据有何异?它与传统的数据有何异同?同?2-4 2-4 什么是什么是“类类”?2-5 2-5 什么是什么是“继承继承”?2-62-6什么是模型什么是模型?开发软件为何要建模开发软件为何要建模?第二章第二章 软件开发模型软件开发模型n传统开发模型传统开发模型n瀑布模型(瀑布模型(waterfall modelwaterfall model)n快速原型模型(快速原型模型(rapid prototype modelrapid prototype model)n演化开发模型演化开发模型n增量模型(增量模型(incremental modelincremental mo

10、del)n螺旋模型(螺旋模型(spiral modelspiral model)n面向对象开发模型面向对象开发模型n构件集成模型(构件集成模型(component integration modelcomponent integration model)n形式化开发模型形式化开发模型n转换模型(转换模型(transformational modeltransformational model)n净室模型(净室模型(cleanroommodelcleanroommodel)软件生存周期软件生存周期n计划时期计划时期n问题定义问题定义n可行性分析可行性分析n开发时期开发时期n需求分析需求分析n软件

11、设计软件设计n编码编码n测试测试n运行时期运行时期n软件维护软件维护瀑布模型瀑布模型问题定义问题定义可行性研究可行性研究需求分析需求分析软件设计软件设计编码编码测试测试维护维护计划时期计划时期开发时期开发时期运行时期运行时期瀑布模型瀑布模型n特点特点n阶段的顺序性和依赖性阶段的顺序性和依赖性n推迟实现的观点推迟实现的观点n质量保证质量保证n存在问题存在问题n不适合需求模糊的系统不适合需求模糊的系统快速原型模型快速原型模型需求分析需求分析原型开发原型开发最终系统设计最终系统设计原型评价原型评价最终系统实现最终系统实现用户用户反馈反馈快速原型模型快速原型模型n特点特点n快速开发工具快速开发工具n循

12、环循环n低成本低成本n种类种类n渐进型渐进型n抛弃型抛弃型增量模型增量模型规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量1增量增量2 2增量增量3 3增量增量n n增量模型增量模型n增量增量n小而可用的软件小而可用的软件n特点特点n在前面增量的基础上开发后面的增量在前面增量的基础上开发后面的增量n每个增量的开发可用瀑布或快速原型模型每个增量的开发可用瀑布或快速原型模型n迭代的思路迭代的思路螺旋模型螺

13、旋模型螺旋模型螺旋模型n特点特点n瀑布模型瀑布模型+快速原型快速原型+风险分析风险分析n迭代过程迭代过程n一个螺旋一个螺旋式周期式周期 n确定目标,选择方案,选定完成目标的策略确定目标,选择方案,选定完成目标的策略 n风险角度分析该策略风险角度分析该策略 n启动一个开发阶段启动一个开发阶段 n评价前一步的结果评价前一步的结果,计划下一轮的工作计划下一轮的工作 构件集成模型构件集成模型构件集成模型构件集成模型n特点特点n面向对象面向对象n基于构件库基于构件库n融合螺旋模型特征融合螺旋模型特征n支持软件开发的迭代方法支持软件开发的迭代方法 n软件重用软件重用面向对象的基本概念面向对象的基本概念n对

14、象对象ObjectObjectn类类ClassClassn继承继承InheritanceInheritancen消息消息Message Message n面向对象面向对象n对象对象+类类+继承继承+消息通信消息通信对象对象ObjectObjectn客观世界中的实体客观世界中的实体n状态(静态属性状态(静态属性 AttributesAttributes)n操作(动态行为操作(动态行为 MethodsMethods)n对象对象:=:=nIdentifierIdentifiernMethod SetMethod SetnData StructureData StructurenMessage Int

15、erfaceMessage Interface对象的特点对象的特点n以数据为中心以数据为中心n对象是主动的对象是主动的n实现数据封装实现数据封装n本质上有并行性本质上有并行性n模块独立性好模块独立性好类类ClassClass和实例和实例InstanceInstancen类类n相同属性和行为的对象的抽象相同属性和行为的对象的抽象n实例实例n特定类所描述的一个具体对象特定类所描述的一个具体对象n子类直接继承父类的数据和操作子类直接继承父类的数据和操作n继承的传递性,单继承、多重继承继承的传递性,单继承、多重继承继承(继承(InheritanceInheritance)家具桌子椅子衣柜床椅子的实例多

16、态性多态性PolymorphismPolymorphismn概念概念n不同类层次共享一个方法名不同类层次共享一个方法名n相同的参数特征和返回值类型相同的参数特征和返回值类型n多种不同实现多种不同实现nC+C+中虚函数实现中虚函数实现n动态联编动态联编重载重载OverloadingOverloadingn函数重载函数重载n同一作用域同一作用域n多个名字相同的函数多个名字相同的函数n参数特征不同参数特征不同n静态联编静态联编n运算符重载运算符重载消息消息MessageMessagen对象间的交互手段对象间的交互手段n形式:形式:nMessage:dest,op,paraMessage:dest,o

17、p,paranDestination ObjectDestination ObjectnOperationOperationnParametersParameters转换模型转换模型形式化规格说明与 需 求比 较 后修正变换2变换1变换n测试形式化开发记录系统需求目标系统转换模型转换模型n特点特点n形式化软件开发方法形式化软件开发方法 n形式化需求规格说明形式化需求规格说明 n变换技术变换技术n程序自动生成技术程序自动生成技术 n确保正确确保正确净室模型净室模型需求需求收集收集盒结构盒结构规约规约形式化形式化设计设计统计性使统计性使用测试用测试正确性正确性证明证明代码生成代码生成与检查与检查测

18、试计划测试计划认证认证需求需求收集收集盒结构盒结构规约规约形式化形式化设计设计统计性使统计性使用测试用测试正确性正确性证明证明代码生成代码生成与检查与检查测试计划测试计划认证认证需求需求收集收集盒结构盒结构规约规约形式化形式化设计设计统计性使统计性使用测试用测试正确性正确性证明证明代码生成代码生成与检查与检查测试计划测试计划认证认证增量增量1增量增量2增量增量n净室模型净室模型n净室思想净室思想n在分析和设计阶段消除错误在分析和设计阶段消除错误n在在“洁净洁净”状态下实现软件制作状态下实现软件制作n形式化形式化n盒结构表示分析和设计盒结构表示分析和设计n正确性验证正确性验证n增量模型增量模型小

19、结小结n软件开发模型是不断发展的软件开发模型是不断发展的n各种软件开发模型各有优缺点各种软件开发模型各有优缺点n选用时不必拘泥与某种模型选用时不必拘泥与某种模型n可组合多种模型可组合多种模型n也可根据实际创建新的模型也可根据实际创建新的模型第三章第三章 软件需求分析软件需求分析n3-1 3-1 为什么要进行需求分析为什么要进行需求分析?通常对软件系统通常对软件系统有哪些需求有哪些需求?3-2 3-2 怎样与用户有效地沟通以获取用户的真怎样与用户有效地沟通以获取用户的真实需求实需求?第三章第三章 软件需求分析软件需求分析n3-3 3-3 银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的

20、工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址如果是存款则系统记录存款人姓名、住址(或电或电话号码话号码)、身份证号码、存款类型、存款日期、身份证号码、存款类型、存款日期、到期日期、利率及密码到期日期、利率及密码(可选可选)等信息,并印出等信息,并印出存单给储户;如果是取款而且存款时留有密码,存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单时未留密码,则系统计算利息并印出利息清单给储户。给储

21、户。请用数据流图描绘本系统的功能,并用实体请用数据流图描绘本系统的功能,并用实体-联联系图描绘系统中的数据对象。系图描绘系统中的数据对象。第三章第三章 软件需求分析软件需求分析n3-4 3-4 分析习题分析习题2 2第第3 3题所述的机票预订系统。请题所述的机票预订系统。请用实体用实体-联系图描绘本系统中的数据对象并用数联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能。据流图描绘本系统的功能。需求分析的任务和步骤需求分析的任务和步骤n需求分析的任务需求分析的任务n建立分析模型建立分析模型 n编写需求说明编写需求说明 n需求分析的步骤需求分析的步骤n需求获取需求获取 n需求提炼需求提炼

22、n需求描述需求描述 n需求验证需求验证 需求获取的常用方法需求获取的常用方法n联合分析小组联合分析小组 n用户代表、领域专家和系统分析员用户代表、领域专家和系统分析员n客户访谈客户访谈 n充分准备,寻找共同语言充分准备,寻找共同语言 n循循序渐进、逐步逼近循循序渐进、逐步逼近 n问题分析与确认问题分析与确认 n多个来回多个来回分析建模分析建模n结构化分析模型结构化分析模型n面向对象分析模型面向对象分析模型n分析模型描述工具分析模型描述工具nDFDDFD、DDDD和和PSPEC PSPEC nCFDCFD、CSPECCSPEC和和STD STD nE-RE-R图图 n用例图,对象用例图,对象-关

23、系图,对象关系图,对象-行为图行为图 结构化分析模型结构化分析模型加工说明加工说明数 据 对 象数 据 对 象说明说明CFD,STD图图DFD图图E-R图图DD控制说明控制说明面向对象分析模型面向对象分析模型属性、操作、协作者对象-行为模型对象-关系模型类/对象模型使用实例n第第3 3章章 需求分析需求分析 3-1 3-1 为什么要进行需求分析为什么要进行需求分析?通常对软件通常对软件系统有哪些需求系统有哪些需求?3-2 3-2 怎样与用户有效地沟通以获取用户怎样与用户有效地沟通以获取用户的真实需求的真实需求?3-3 3-3 银行计算机储蓄系统的工作过程大银行计算机储蓄系统的工作过程大致如下:

24、储户填写的存款单或取款单由致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记业务员键入系统,如果是存款则系统记录存款人姓名、住址录存款人姓名、住址(或电话号码或电话号码)、身、身份证号码、存款类型、存款日期、到期份证号码、存款类型、存款日期、到期日期、利率及密码日期、利率及密码(可选可选)等信息,并印等信息,并印出存单给储户;如果是取款而且存款时出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。计算利息并印出利息清单给储户。请用

25、数据流图描绘本系统的功能,并用请用数据流图描绘本系统的功能,并用实体实体-联系图描绘系统中的数据对象。联系图描绘系统中的数据对象。3-4 3-4 分析习题分析习题2 2第第3 3题所述的机票预订系题所述的机票预订系统。请用实体统。请用实体-联系图描绘本系统中的数联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能据对象并用数据流图描绘本系统的功能。分析模型描述工具分析模型描述工具n结构化分析工具结构化分析工具nDFDDFD、DDDD和和PSPEC PSPEC nCFDCFD、CSPECCSPEC和和STD STD nE-RE-R图图 n面向对象分析工具面向对象分析工具n用例图,类对象图用例

26、图,类对象图n对象对象-关系图关系图n对象对象-行为图行为图数据流图数据流图DFDDFDn描述系统逻辑模型描述系统逻辑模型n信息在系统中的流动和处理信息在系统中的流动和处理n用途用途n交流信息的工具交流信息的工具n结构化分析和设计的工具结构化分析和设计的工具 数据流图数据流图DFDDFDn组成符号组成符号n圆框代表加工圆框代表加工n箭头代表数据流向箭头代表数据流向n方框代表源点和终点方框代表源点和终点n双杠表示数据文件或数据库双杠表示数据文件或数据库n分层分层n从高层到低层从高层到低层n分解前后的数据流必须一致分解前后的数据流必须一致n命名命名n数据流数据流n处理处理领书单 进书通知 购书单

27、缺书单 DFDDFD练习练习售书系统售书系统学生教材购销系统书 库保 管员领书单 进书通知 进书通知 购书单缺书单 DFDDFD练习练习售书系统售书系统 1销售 2采购书库保管员学生F1教材存量表 F2缺书登记表 数据字典数据字典DDDDnDFDDFD中所有元素的定义的集合中所有元素的定义的集合n内容内容n数据流数据流n数据流分量数据流分量n数据存储数据存储n处理(一般不用处理(一般不用DDDD描述)描述)数据字典数据字典DDDDn定义数据的方法定义数据的方法n自顶向下分解数据自顶向下分解数据n数据元素的组合方式数据元素的组合方式n顺序:顺序:A+BA+Bn选择:选择:A|BA|Bn重复:重复

28、:1A51A5n可选可选:(A A)数据字典数据字典DDDDnDDDD的用途的用途n分析阶段的交流工具分析阶段的交流工具n包含控制信息包含控制信息n数据库设计的基础数据库设计的基础n例子例子nP41P41例例3.63.6加工说明加工说明n加工说明加工说明PSPECPSPECn说明说明DFDDFD中的每个加工中的每个加工n描述工具描述工具n结构化语言结构化语言n判定表判定表n判定树判定树加工说明加工说明例子例子n结构化语言结构化语言nP42-43,P42-43,例例3.7,3.83.7,3.8n判定树判定树nP44,P44,例例3.93.9n判定表判定表nP44,P44,例例3.93.9CFDC

29、FD和和CSPECCSPECn适合实时系统的分析适合实时系统的分析n与与DFDDFD和和PSPECPSPEC类似类似n和和DFDDFD与与PSPECPSPEC配合使用配合使用n表示控制流和控制加工表示控制流和控制加工CFDCFD和和DFDDFD的关系的关系 数据条件控制输入加工激活信号控制输出输入数据加工模型PSPEC控制模型CSPEC输出数据 CFD 控制输入 DFD CFDCFD的符号表示的符号表示控制信息或事件引用控制说明DFDDFD和和CFDCFD例子例子-DFD-DFD信号半分钟数据光电管采集计数传送工控机处理实时数据显示班数据处理半小时数据班数据DFDDFD和和CFDCFD例子例子

30、-CFD-CFD翻屏人工驱动信息时钟半小时半分钟某型号累加物品经过信号半分钟数据光电管采集计数传送工控机处理实时数据显示班数据处理半小时数据班数据STDSTDn描述软件状态变迁描述软件状态变迁n符号表示符号表示n矩形矩形-系统状态系统状态n箭头箭头-状态转变方向状态转变方向n规则表达式规则表达式-事件事件/触发行为触发行为状 态1状 态2事件/触发行为STDSTD例子例子20秒到/翻屏生成最新数据/翻屏半小时到/工控处理半分钟到/传送空闲/采集物品经过/计数采集PLC计数传送工控处理实时翻屏E-RE-R图图n用于对复杂数据的用作数据分析和建模用于对复杂数据的用作数据分析和建模n实体、属性和关系

31、实体、属性和关系n组成符号组成符号0:11:10:m1:mE-RE-R图例子图例子电话机生产厂商经销商用户生产购买使用经销用例图用例图n用例:系统和外部角色的交互用例:系统和外部角色的交互n符号表示:符号表示:系统名称系统用例名用例角色关联Use CaseUse Case图例子图例子保险商务系统签定保险单销售统计客户统计客户保险销售员用例之间的关系用例之间的关系n扩展关系扩展关系n使用关系使用关系n组合关系组合关系扩展签保险单签汽车购买契约使用使用签保险单签汽车保险单签房屋保险单对象对象-关系图关系图n从从E-RE-R图演变而来图演变而来n描述对象间关系描述对象间关系学生书出版商购买来自 1:

32、1 0:m 1:1 1:1 对象对象-行为图行为图n描述对象的动态行为描述对象的动态行为n对象状态转换图对象状态转换图n事件轨迹图事件轨迹图n事件流图事件流图对象状态转换图例子对象状态转换图例子加纸纸用完故障修复打印故障打印完成接到打印命令就绪打印缺纸故障事件轨迹图例子事件轨迹图例子打印机忙保存文件打印机就绪打印文件打印文件打印文件计算机打印服务器打印队列打印机事件流图例子事件流图例子打印机忙保存文件打印机就绪打印文件打印文件计算机打印队列打印服务器打印机软件需求说明(软件需求说明(SRSSRS)n引言引言n信息描述信息描述n功能描述功能描述n行为描述行为描述n质量保证质量保证n接口描述接口描

33、述n其它其它结构化分析方法结构化分析方法n基本步骤基本步骤n自顶向下,功能分解自顶向下,功能分解n分层分层DFDDFDn由后向前,定义数据和加工由后向前,定义数据和加工nDD,PSPECDD,PSPECn根据需要,分析复杂数据和动态模型根据需要,分析复杂数据和动态模型nE-RE-R图,图,CFD,CSPEC,STDCFD,CSPEC,STDn编写编写SRSSRSDFDDFD的复审的复审n父图和子图不平衡父图和子图不平衡n未区分局部文件和局部外部项未区分局部文件和局部外部项n分解的速度太快分解的速度太快n不遵守加工编号规则不遵守加工编号规则面向对象分析方法面向对象分析方法n基本步骤基本步骤n定义

34、系统的用例定义系统的用例n领域分析,建立类对象模型领域分析,建立类对象模型n建立对象建立对象-关系模型关系模型n建立对象建立对象-行为模型行为模型n编写编写SRSSRS定义用例定义用例n回答问题回答问题发现角色发现角色n使用系统主要功能的人是谁?使用系统主要功能的人是谁?n需要借助于系统完成日常工作的人是谁?需要借助于系统完成日常工作的人是谁?n谁来维护、管理系统,保证系统正常工作?谁来维护、管理系统,保证系统正常工作?n系统控制的硬件设备有哪些?系统控制的硬件设备有哪些?n系统需要和哪些其它系统接口?系统需要和哪些其它系统接口?n对系统产生的结果感兴趣的人和事是哪些?对系统产生的结果感兴趣的

35、人和事是哪些?定义用例定义用例n回答问题回答问题发现用例发现用例n角色需要从系统中获得哪种功能?需要角色做什么?角色需要从系统中获得哪种功能?需要角色做什么?n角色需要读取、产生、删除、修改或存储系统中的角色需要读取、产生、删除、修改或存储系统中的某种信息吗?某种信息吗?n系统中发生的事件需要通知角色吗?角色需要通知系统中发生的事件需要通知角色吗?角色需要通知系统某件事吗?这些事件能干什么?系统某件事吗?这些事件能干什么?n系统需要输入系统需要输入/输出的是什么信息?这些输入输出的是什么信息?这些输入/输出输出信息从哪儿来信息从哪儿来?到哪儿去?到哪儿去?n系统当前的实现要解决的问题是什么?系

36、统当前的实现要解决的问题是什么?领域分析领域分析 n目的目的n发现或创建可广泛应用的类,以便复用发现或创建可广泛应用的类,以便复用 n分析特定的应用领域分析特定的应用领域 n形式形式n公共对象、类、子集合和框架等公共对象、类、子集合和框架等类对象建模(一)类对象建模(一)n确定分析模型中的类对象确定分析模型中的类对象n考察系统用例考察系统用例n汇总名词、名词短语汇总名词、名词短语n得到候选对象得到候选对象n确定类对象确定类对象n必要的信息、需求、服务必要的信息、需求、服务n多个属性、公共操作多个属性、公共操作类对象建模(二)类对象建模(二)n定义类结构与层次定义类结构与层次n一般一般-特殊特殊

37、n整体整体-部分部分n定义主题和子系统定义主题和子系统n高层抽象高层抽象例子例子电话话筒按键连接线话机人电话人教师大学生小学生学生中学生建立对象建立对象关系模型关系模型n步骤步骤n复审需求描述和用例陈述复审需求描述和用例陈述n找出表示关系的动词或动词短语找出表示关系的动词或动词短语n用线连接起来,箭头表示方向用线连接起来,箭头表示方向n给连接命名,标上基数给连接命名,标上基数对象对象-关系图例子关系图例子:0::0:1:m0::0:部门流水线工序材料在制品:不良品指标数据:规格实时数据建立对象行为模型建立对象行为模型n基本过程基本过程n评估用例,理解系统中的交互序列评估用例,理解系统中的交互序

38、列n找出驱动交互序列的事件找出驱动交互序列的事件n为每个用例创建事件轨迹为每个用例创建事件轨迹n为对象创建状态转换图为对象创建状态转换图第四章第四章 软件设计概述软件设计概述n软件设计的任务软件设计的任务n软件设计的基本概念软件设计的基本概念n模块化设计模块化设计n设计需要处理的问题设计需要处理的问题n设计文档及其复审设计文档及其复审软件设计的任务软件设计的任务n分析模型分析模型 设计模型设计模型 设计文档设计文档n回答回答How to do?How to do?n可以分为概要设计、详细设计可以分为概要设计、详细设计n软件设计包括软件设计包括n数据设计数据设计n体系结构设计体系结构设计n接口设

39、计接口设计n过程设计过程设计软件设计的任务软件设计的任务n数据设计数据设计n信息模型信息模型 软件数据结构软件数据结构n体系结构设计体系结构设计n定义软件部件间的关系定义软件部件间的关系n接口设计接口设计n软件内部、外部及与人之间的通信软件内部、外部及与人之间的通信n过程设计过程设计n软件组件的过程性描述软件组件的过程性描述软件设计的基本概念软件设计的基本概念n模块(模块(modulemodule)与构件)与构件(component)(component)n模块:定义输入、输出和特性的程序实体模块:定义输入、输出和特性的程序实体n构件:可重复使用的软件组件构件:可重复使用的软件组件n抽象(抽象

40、(abstractabstract)与细化)与细化(refinement)(refinement)n抽象:分层次考虑和处理问题抽象:分层次考虑和处理问题(数据和过程数据和过程)n细化:从高到低的逐步分解过程细化:从高到低的逐步分解过程n信息隐藏信息隐藏n对其它模块隐藏模块内部的数据和过程对其它模块隐藏模块内部的数据和过程n软件复用软件复用nDesign with reuse,design for reuse Design with reuse,design for reuse 模块化设计模块化设计(modular design)(modular design)n分解(分解(decomposit

41、iondecomposition)n模块独立性(模块独立性(module independencemodule independence)n自顶向下(自顶向下(toptopdown designdown design)n自底向上(自底向上(bottombottomup designup design)分解(分解(decompositiondecomposition)C(PC(P1 1+P+P2 2)C(P)C(P1 1)+C(P)+C(P2 2)E(P1+PE(P1+P2 2)E(P)E(P1 1)+E(P)+E(P2 2)C C为问题的复杂度,为问题的复杂度,E E为解题需要的工作量为解题需

42、要的工作量 模块数接口成本最小成本区M软件开发工作量总成本模块成本模块独立性(模块独立性(module independencemodule independence)n内聚(内聚(cohesioncohesion)n模块内部各成分之间模块内部各成分之间n耦合(耦合(couplingcoupling)n一个模块与其它模块之间一个模块与其它模块之间n模块的独立性高模块的独立性高 n块内联系强块内联系强 n块间联系弱块间联系弱 内聚内聚 弱 强低内聚中内聚高内聚 内聚内聚 cohesioncohesionn.偶然性内聚偶然性内聚 coincidental cohesioncoincidental

43、cohesionn.逻辑性内聚逻辑性内聚 logical cohesionlogical cohesionn.时间性内聚时间性内聚 temporal cohesiontemporal cohesionn.过程性内聚过程性内聚 procedural cohesionprocedural cohesionn.通讯性内聚通讯性内聚 communicational cohesioncommunicational cohesionn.顺序性内聚顺序性内聚 sequential cohesionsequential cohesionn.功能性内聚功能性内聚 functional cohesionfunct

44、ional cohesion逻辑性模块逻辑性模块 读入分数平均/最高?计算平均分计算最高分输出结果耦合耦合 couplingcoupling1.非直接耦合非直接耦合no direct couplingno direct coupling2.数据耦合数据耦合data couplingata coupling3.特征耦合特征耦合 stamp couplingstamp coupling4.控制耦合控制耦合control couplingcontrol coupling 5.外部耦合外部耦合 external couplingexternal coupling6.公共耦合公共耦合 common co

45、uplingcommon coupling7.内容耦合内容耦合 content couplingcontent coupling弱耦合弱耦合数据耦合非直接耦合模块2模块1模块4模块3特征耦合(参数表传递数据结构)公共耦合公共耦合自定向下和自底向上设计自定向下和自底向上设计自顶向下顶层开始逐步分解由底向上选择关键部分先设计扩展到整个系统设计需要处理的问题设计需要处理的问题n协同设计协同设计n谁最合适设计系统的某一方面?谁最合适设计系统的某一方面?n如何使组内成员相互了解别人的设计?如何使组内成员相互了解别人的设计?n如何协调设计组件使整个系统统一?如何协调设计组件使整个系统统一?n用户界面设计用

46、户界面设计n让用户驾驭软件,不是软件驾驭用户让用户驾驭软件,不是软件驾驭用户 n减少用户的记忆减少用户的记忆 n保持界面的一致性保持界面的一致性 n并发系统设计并发系统设计n怎样确保同时执行的组件间对共享数据的一致性怎样确保同时执行的组件间对共享数据的一致性 并发处理(顺序执行)并发处理(顺序执行)1 1、组件组件1 1查询查询X X是否为空。是否为空。2 2、组件组件1 1被告知被告知X X不为空。不为空。3 3、组件组件2 2查询查询X X是否为空。是否为空。4 4、组件组件2 2被告知被告知X X不为空。不为空。5 5、组件组件1 1出栈,删除最后一个元素。出栈,删除最后一个元素。6 6

47、、组件组件2 2想出栈,但想出栈,但X X已为空,系统已为空,系统进入非法状态。进入非法状态。并发处理并发处理1、组件1询问栈X是否为空。2、组件1被告知栈X不为空。3、组件2询问栈X是否为空。4、组件2被告知栈X不为空。5、组件1出栈,删去最后一个元素,并锁住栈X。6、组件2想出栈,但被告知X已上锁。7、另一个组件加了一个元素到栈X中。8、组件2被告知X已开锁(由于外部进程或者因为组件2 再次尝试)9、组件2出栈。软件设计文档软件设计文档n软件设计说明书软件设计说明书n1 1)范围范围 n2 2)数据设计数据设计 n3 3)体系结构设计体系结构设计n4 4)接口设计接口设计 n5 5)模块的

48、过程设计模块的过程设计 n6)其他其他 包括测试的考虑,确保设计满足包括测试的考虑,确保设计满足所有需求,设计约束和一些特殊注解等内容。所有需求,设计约束和一些特殊注解等内容。设计复审(设计复审(design reviewdesign review)n及早发现设计中的缺陷及早发现设计中的缺陷n差错的传播差错的传播n复审的内容复审的内容n概要设计复审概要设计复审 n系统的总体结构,模块划分,内外接口系统的总体结构,模块划分,内外接口 n详细设计复审详细设计复审 n各个模块的具体设计各个模块的具体设计 设计复审(设计复审(design reviewdesign review)n复审的方式复审的方式

49、nFormal reviewFormal reviewnDesign review meetingDesign review meetingnInformal reviewInformal reviewnWalk-throughWalk-through第五章第五章 传统的设计方法传统的设计方法n结构化设计模型结构化设计模型n结构化设计方法结构化设计方法n过程设计过程设计nJacksonJackson方法方法PSPEC结构化设计的内容结构化设计的内容数据对象描述CFDDFDE-RDDCSPEC过程设计 接口设计体系结构设计数据设计结构化设计的内容结构化设计的内容n结构设计结构设计概要设计概要设计

50、n体系结构设计体系结构设计nSCSC图图n接口设计接口设计nSCSC图图n数据库设计数据库设计n物理数据模型物理数据模型n过程设计过程设计详细设计详细设计n模块的处理过程模块的处理过程nN-SN-S图,图,PADPAD,PDLPDL等等描述工具描述工具SCSC图图nSCSC图的组成符号图的组成符号 (P88P88)n矩形框来表示模块矩形框来表示模块 n带箭头的连线表示模块间的调用关系带箭头的连线表示模块间的调用关系n传入和传出模块的数据流传入和传出模块的数据流 nSCSC图中的模块符号图中的模块符号n传入传入n传出传出n变换变换n源源n漏漏n控制控制 SCSC图中的模块调用图中的模块调用n简单

51、调用简单调用 n选择调用选择调用 n循环调用循环调用ABCDABC面向数据流的设计方法面向数据流的设计方法nDFD图的类型图的类型 n变换型结构变换型结构 n事务型结构事务型结构 n从从DFDDFD图到图到SCSC图的映射图的映射 n复审复审DFDDFD图,必要时可再次进行修改或细化图,必要时可再次进行修改或细化n鉴别鉴别DFD图的结构特征图的结构特征:事务?变换?事务?变换?n按照规则,把按照规则,把DFD图为初始的图为初始的SC图图 n改进初始的改进初始的SC图图 变换结构的变换结构的DFDDFD变换中心传入传出信息传入流传出流 变换流时间事务型结构事务型结构DFDDFD事务中心接受路径动

52、作路径同时存在两类结构同时存在两类结构T传入变换传出事务中心变换分析变换分析n划分划分DFDDFD图的边界图的边界 n建立初始建立初始SCSC图的框架图的框架n顶层都只含一个用于控制的主模块顶层都只含一个用于控制的主模块 n第一层包括传入、传出和中心变换三个模块第一层包括传入、传出和中心变换三个模块 n分解分解SCSC图的各个分支图的各个分支 n分解实质上是分解实质上是“映射映射”例子例子划分划分DFDDFDPEDCBAWRUVQabcdeprwuv传入部分变换中心传出部分第一级分解第一级分解MEMTMCMAc,ec,eu,wu,w传入分支的分解传入分支的分解GetEAtoBReadDDtoE

53、ReadABtoCGetBGetC MAc,ecebbcaabddb传出分支的分解传出分支的分解 WriteW UtoV Write V PutU MEw,uwuuvv变换中心的分解变换中心的分解 MT R P Qepc,prrw,u初始初始SCSC图图 MC MT Q P R MEWriteW PutU Uto VWriteV A toBReadA GetB DtoER e a d D BtoC GetC Get E MA事务分析事务分析n在在DFDDFD图上确定边界图上确定边界n事务中心事务中心n接受部分(包括接受路径)接受部分(包括接受路径)n发送部分(包括全部动作路径)发送部分(包括全

54、部动作路径)n画出画出SCSC图框架图框架 nDFDDFD图的三个部分分别映射为事务控制模块,图的三个部分分别映射为事务控制模块,接受模块和动作发送模块接受模块和动作发送模块 n分解和细化接受分支和发送分支分解和细化接受分支和发送分支 例子例子划分划分DFDDFD传入 T变换传出接受部分事务中心动作部分Example-firstExample-firstlevel level factoringfactoring发送事务控制接收顶层第一层混合结构混合结构C1AC3BC2DLFGEKJabb1b2b3c1c2c3defghjklm优化结构设计的指导规则优化结构设计的指导规则 n对模块分割、合并和

55、变动调用关系的指导规则对模块分割、合并和变动调用关系的指导规则 n提高内聚,降低耦合后提高内聚,降低耦合后n简化模块接口简化模块接口n少用全局性数据和控制型信息少用全局性数据和控制型信息n保持高扇入保持高扇入/低扇出的原则低扇出的原则 n作用域作用域/控制域规则控制域规则 n作用域不要超出控制域的范围作用域不要超出控制域的范围 n位置离受它控制的模块越近越好位置离受它控制的模块越近越好 扇入和扇出扇入和扇出MM M的扇入M的扇出例子:扇出例子:扇出计算实发工资取得工资数据编外人员扣款编外人员工资编外人员税收薪金制工资额计时制工资额常规扣款税收扣款煎饼形结构不可取!例子:扇出例子:扇出常规扣款编

56、外人员实发工资 计算实发工资取得工资数据计时工人实发工资计薪工人实发工资编外人员扣款编外人员税收编外人员工资税收扣款计时制工资额薪金制工资额塔型结构过程设计过程设计 n目的目的n确定模块采用的算法和块内数据结构确定模块采用的算法和块内数据结构 n任务:任务:编写软件的编写软件的“过程设计说明书过程设计说明书”n为每个模块确定采用的算法为每个模块确定采用的算法 n确定每一模块使用的数据结构确定每一模块使用的数据结构 n确定模块接口的细节确定模块接口的细节 过程设计的原则过程设计的原则n清晰第一的设计风格清晰第一的设计风格n结构化的控制结构结构化的控制结构n逐步细化的实现方法逐步细化的实现方法过程

57、设计工具过程设计工具n流程图流程图nN-SN-S图图n伪代码伪代码nPDLPDL语言语言N-SN-S图图 S1 S2顺序 C T FS1 S2 选择While C S S Until C 循环Jackson Jackson 方法方法n实体动作实体动作n实体结构实体结构n初始建模初始建模n系统功能系统功能n系统时间系统时间n系统实现系统实现JacksonJackson表示法表示法nJacksonJackson图图nJacksonJackson伪代码伪代码ABCAB0C0AB*顺序选择重复A seq A select cond1 A iter until 或while cond B B C or cond2 Bend A C end A end A (a)顺序 (b)选择 (c)重复JacksonJackson方法和方法和SDSD方法方法Jackson方法数据结构 映射 程序结构 程序的过程性表示(Jackson图)(Jackson图)(Jackson伪代码)程序分析 程序设计 SD 方法 问题结构 映射 软件结构 各模块的过程描述(DFD图)(SC图)(PDL等工具)概要设计 过程设计

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!