




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、爱第一章 软件工程与软件设计1.1 软件工程软件分类:1. 系统软件2. 实时软件3. 嵌入式软件4. 科学和工程计算软件5. 事务处理软件6. 人工智能软件7. 个人计算机软件软件工程由方法、工具和过程三个要素组成。1.3软件开发过程模型1.3.1瀑布模型:是既自顶向下结构化开发模型1.3.2 快速原型模型1.3.3螺旋模型 由四部分组成:1. 需求定义;2. 风险分析;3. 工程实现;4. 评审;特点:1. 瀑布模型+快速原型+风险分析2. 迭代过程1.4软件设计软件设计的概念:对软件如何被开发出来的一种描述1.5软件体系结构软件体系结构的定义(较有影响力的定义):1. 软件体系结构是软件
2、系统的结构,包括软件元素,软件元素外部可见的属性以及这些软件元素之间的关系;2. 软件体系结构是软件系统的基本组织,包括构件,构件之间,构件与环境之间的关系,以及相关的设计和演化原则。第二章2.1 UML 概述2.1.3 UML 2.0的建模机制建模机制中包含的13种视图模型可以划分为结构视图和行为视图两种类型。建模机制包括:结构建模,行为建模结构建模包含:类图,包图,对象图,构件图,组合结构图,部署图行为建模包含:活动图,交互图(顺序图,通信图,交互概览图,时序图),状态图,用例图2.2 面向对象开发方法2.3 UML 2.0结构建模2.3.1 类图(作用):类图是UML中最基本、也是最重要
3、的一种视图,它用来刻画软件中类等元素的静态机构关系。依赖关系:两个类之间存在依赖关系,表明一个类使用或需要知道另一个类中包含的信息。ProductCatalogCustomer关联关系:两个类之间存在关联关系,表明这两个类的实例之间存在语义上的联系。PersonCompany +Employee +Employee * 1聚集关系:聚集关系表明两个类的实例之间存在一种拥有或属于关系,可以看做是一种比较弱的整体的一部分关系,或是一种逻辑上的隶属关系。(图上菱形是空的)PersonPerson * 12.4 UML 2.0 行为建模2.4.1 顺序图:(给出用例画出顺序图)【课本 41页】2.4.
4、7 用例图:(作用,参与者,用例)【课本 50页】n 作用:用例图通常被用来描述系统的需求,从用户的角度对系统的功能视点进行建模。n 用例:一个用例代表系统执行的一组动作,这些动作完成特定的任务,并产生对用户或外部实体可观察的结果。用例用来描述系统对外可见的需求或功能。n 参与者:参与者是与用例发生交互的系统外部角色,必须是被开发的系统范围之外的角色(不必在本开发系统中实现),它们只与系统发生某种形式的交互。第三章 软件设计基础3.1 软件设计的基本概念3.1.1抽象与逐步求精(概念)【课本 55页】n 抽象:“抽象”是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层
5、次的细节。是管理、控制复杂性的基本策略。n 逐步求精:“逐步求精” 可视为一种早期的自顶向下设计策略,其主要思想是,针对某个功能的宏观描述用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能用程序语言描述的算法实现为止。 3.1.2 模块化与信息隐藏(概念、好处)【课本 57页】模块化:即把软件划分为可独立命名和访问的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的一个解。信息隐藏:即一个模块的开发者不必看到其它模块的内部,只需知道其接口即可,这使得每个模块的开发人员所要处理的复杂性显著降低。未来达到信息隐藏的目的,模板应该被设计为其所含信息(过程和数据)对于那些不
6、必要的信息模块不可访问。3.1.3 内聚与耦合(不同内聚概念、判断、举例)【课本 58页】1.内聚n 偶然性内聚:一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散(内聚程度最低)例1:一个程序员写完一个程序后发现有一组语句多处出现,于是为了节省内存便将这组语句单独组成一个模块。例2:工具模块n 逻辑性内聚:模块完成的诸任务逻辑上相关n 时序内聚:一个模块包含的任务必须在同一时间内执行例:系统的初始化n 过程性内聚:模块内成分彼此相关,并且必须按特定的次序执行n 通信内聚:模块中各成分都 将对数据结构的同一区域进行操作例如:从同一磁带上读取不相干的数据 可能破坏独立性
7、。n 顺序性内聚:各成分均与同一功能相关,且处理按序执行n 功能性内聚:所有成分形成一个整体,完成单个功能(内聚程度最高)2.耦合n 非直接耦合:两个模块中的任一个都不依赖对方能独立工作。(耦合度最低)例1:A访问C的内部数据或不通过正常入口而转入C的内部。例2:部分代码重叠(常出现在汇编程序中)例3:一个模块有多个入口(功能)n 数据耦合:两模块间通过参数交换信息,数据仅限于数据。n 控制耦合:模块间传递的信息含有控制信息。n 特征耦合:介于数据耦合和控制耦合之间。n 外部耦合:若干模块均与同一外部环境关联。n 公共耦合:若干模块通过全局的数据环境相互作用。n 内容耦合:一个模块使用另一模块
8、内部的数据或控制信息,或一个模块直接转移到另一模块内部。(最高耦合度)1. 2.3.3 软件设计的质量1.结构良好2.充分性3.可行性4.简单性5.实用性6.灵活性7.健壮性8.可移植性9.可复用性10.标准化灵活性(如何提高灵活性,可靠性)【课本 67页】举例:网站成员注册class WebsiteMember members;/ or maybe:vector members;void register(Member aMember).怎样才能使设计更灵活以注册新类型的成员?解决方案:引入一个基类,将基类抽象化,根据需要产生继承类我们之所以进行灵活的设计,因为变化和重用是经常出现的2.健壮
9、性1.防止错误输入o 用户输入o 不是用户的输入 数据通信 其他应用 方法调用2.防止开发错误 错误的设计 错误的实现n 检查输入 在继续进行处理之前,可以检查应用程序的所有输入的方法。 检查类型(例如:整形); 检查与前置条件和不变式的输入n 为提高健壮性而初始化 提供静态方法,用来为类产生标准的默认值n 提高健壮性的参数传递技术保证方法正确调用 引入一个捕获参数的类并将约束条件合并n 强化意图通过防止设计和实现中的错误来提高健壮性 强化计划,按计划使用相应功能3.4软件体系结构设计【课本 68页】“4+1”模型:每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的
10、全部内容。1.逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。2.进程视图:该视图捕获设计中关于并发和同步的内容,重视一些非功能性需求。3.开发视图:该视图主要描述软件在开发环境中的静态结构,该视图的构建和连接件分别映射到子系统或模块,关注于在软件开发环境中软件模块的组织。软件可以被打包为子系统,并按层次进行组织。4.物理视图:该视图描述软件到硬件的映射关系,反应了软件的分布特征。把不同的软件元素,例如进程和任务等,映射到不同的物理节点上,并关注物理环境的拓扑结构以及节点间的通信。5.场景
11、:场景通常是最重要的需求,一方面作为设计中发现体系结构元素的驱动器,另一方面在设计完成后,充当确认和验证的证据。3.5 高可信软件设计 在等待外部信号的程序段中,不允许无限制地等待。正确的做法应是,或采用循环等待次数控制,或使用定时器,使得规定时间内(无论成功或失败)必须保证退出等待外部信号的程序段。 不允许的设计方法 建议采用的设计方法握手标志置写不上的可能可靠的设计方法 3.5.2 容错设计n 1.避错:避错设计是使软件产品在设计过程中,不发生错误或少发生错误的一种设计方法。避错的设计原则是控制和减少程序的复杂性。 从开发方法、工具等多处着手n 避免需求错误n 深入研究用户的需求(用户申明
12、的和未申明的)n 用户早期介入,如采用原型技术n 选择好的开发方法n 结构化方法:包括分析、设计、实现n 面向对象的方法:包括分析、设计、实现n 基于部件的开发方法(COMPONENT BASED)n 快速原型法n 2.查错:软件查错设计是指在设计中赋予程序某些特殊的功能,使程序在运行中自动查找存在错误的一种设计方法。被动式错误检测在程序的若干部位设置检测点,等待错误征兆的出现 主动式错误检测对程序状态主动进行检查n 检测原则 相互怀疑原则:在设计任何一个单元、模块时,假设其它单元、模块存在着错误; 立即检测原则:当错误征兆出现后,要尽快查明,以限制错误的损害并降低排错的难度。n 负效应 所设
13、置的“接收判据”不可能与预期的正确结果完全吻合,导致错判 或漏判; 软件增加了冗余可能降低可靠性 n 3.改错:改错设计是指在设计中,赋予程序自我改正错误、减少错误危害程度的能力的一种设计方法。n 改正错误的前提是已经准确地找出软件错误的起因和部位(故障检测与故障定位合称故障诊断),程序又有能力修改、剔除有错误的语句。n 现阶段仅限于减少软件错误造成的有害影响,或将有害影响限制在一个较小的范围。常采用故障隔离技术。第四章4.2用例分析与设计4.2.3 用例设计描述【课本 105页】n 案例:银行ATM自动柜员机的需求简述(本案例将要开发的ATM系统能够为顾客提供以下基本服务,它们统一称为交易)
14、: 取款服务。顾客可以用银行卡从对应的账户中支取现金,现金必须是100元的整数倍,且每次取款不能超过2000元。 存款服务。顾客可以把现金存入与银行卡对应的账户中。 转帐服务。顾客可以把一个银行卡对应的账户中的款项转帐到另一个银行账户中。 查询服务。顾客能够查询一个银行卡对应的账户中的余额。n 该ATM系统包括以下组成部分: 读卡器 交互的控制台,键盘及显示器 送出现金的装置,取款器 存款的插槽,存款器 打印机 启动和关闭ATM系统的开关键盘 ATM系统与银行服务通过特定的网络连接进行通信n ATM系统在提供以上服务的过程中,必须满足以下要求 一个顾客可以在最终确认前放弃一项交易 ATM在执行
15、交易过程中将与银行系统进行通信,对是否允许交易进行验证 ATM为每次成功的交易提供一个打印回执 ATM需要维护一个内部日志,对每次交易进行记录参与者:与系统交互的人、设备、其他系统n “顾客”(Customer)n “操作管理人员”(Operator)n “银行服务器”(Bank System)n “读卡器”(Card Reader)n “存款器”(Cash Acceptor)n “取款器”(Cash Dispenser)n “打印机”(Printer)用例描述:n 用例名称:Withdrawaln 参与者:Customer,Bank System,Card Reader,Cash Dispe
16、nser,Printern 前置条件:顾客已插入银行卡,密码验证正确,顾客按下“取款”按钮n 主事件流:() 顾客输入取款金额,并确认。 系统认可取款金额,并发送指令给取款器。 取款器把相应金额的现金送出。 打印机打印回执。n 辅事件流: 如果取款金额不是100的整数倍,则显示信息“输入金额必须是100的整数倍,请重新输入”,并返回主事件流中步骤(1)。 如果取款金额超过2000元,则显示信息“输入金额不能超过2000元,请重新输入” ,并返回主事件流中步骤(1)。 如果账户余额小于取款金额,则显示信息“账户余额不足,请重新输入” ,并返回主事件流中步骤(1)。 顾客在确认取款金额前可以选择取
17、消交易。n 后置条件:如果取款成功,系统从账户余额中减去相应数额,并返回等待状态;如果顾客取消交易,则返回等待状态。4.3概念模型和顶层架构设计() 4.3.1 概念模型设计 从分析类所负责的主要功能需求看,系统可以包含三种分析类:1.边界类:负责目标软件系统与参与者之间的交互,构造型为。通常情况下,参与者与用例之间的一种通信连接对应一个边界类。其职责包括:2.控制类:作为完成用例任务的责任承担者,负责协调、控制其它类共同完成用例规定的功能或行为。构造型为。用例通常对应控制类。3.实体类:负责保存目标软件系统中具有持久意义的信息项并向其它类提供读、写信息项内容的必要操作接口,一般不涉及业务逻辑
18、处理。构造型为 。4.3.2顶层架构设计(目的)顶层架构的主要目的是为后续的分析和设计活动建立一种结构和划分,以便开发人员在不同的开发阶段,以及同一开发阶段的不同开发人员,能够聚焦于系统的不同部分。 4.6.2 调整软件构成类 对类进行调整和优化主要包括:1.增加辅助类; 2.合并相互通信频繁的类; 3.分拆规模过大的类;第五章 面向数据流的软件设计方法5.2 实体关系图数据对象有属性描述,通常,属性包括:1.命名性属性 :对数据对象的实例命名,其中必含有一个或一组关键属性,以便唯一地标识数据对象的实例。2.描述性属性 :对数据对象实例的性质进行描述。3.引用性属性:将自身与其他数据对象的实例
19、关联起来。规范化规则:1.数据对象的任何实例对每个属性必须有且仅有一个属性值;2.属性是原子数据项,不能包含内部数据结构;3.如果数据对象的关键属性多于一个,那么其他非关键属性必须表示整个数据对象而不是部.分关键属性的特征;5.所有的非关键属性必须表示整个对象而不是部分属性的特征。5.4 面向数据流的设计过程()5.4.1 变换流与事务流面向数据流的方法能方便地将数据流图转换为软件结构,其过程分为五部: 1.确定信息流的类型; 2.划分流界; 3.将数据流图映射为程序结构; 4.提取层次控制结构; 5.通过设计复审和使用启发式策略进一步精化所得到的机构。5.4.2变换分析步骤1:复审基本系统模
20、型步骤2:复审和精化软件数据流图步骤3:确定数据流图的特性,判定它为变换流还是事务流 步骤4:通过划定输入流和输出流的边界来孤立变换中心,即把DFD划分成逻辑输入、主加工和逻辑输出三个部分。步骤5:执行“一级分解”步骤6:执行“二级分解” ,即设计中下层模块步骤7:采用启发式设计策略,精化所得程序结构雏形,以求改良软件质量 5.4.3 事务分析步骤一:复审基本系统模型步骤二:复审并精化软件数据流图步骤三:确定数据流图的特性,判定它为变换流还是事务流步骤四:指出事务中心,确定由事务中心发出的每一动作路径的数据流特性步骤五:把数据流图映射为事务处理型的程序结构 步骤六:分解并精化事务结构以及每条动
21、作路径所对应的结构 步骤七:使用启发式设计策略,精化所得程序结构雏形,改良软件质量 例:针对图所示的DFD,采用事务分析法导出程序结构,因其主体数据流为事务流(c为事务中心)。显然,区域为变换流;区域为事务流,但其各个子流为变换流;区域为变换流。在你所设计的程序结构中,除了每个变换对应一个模块外,可能还需增加若干控制模块。组合得程序结构的雏形,精化雏形,如下图:针对如下的DFD图,导出程序结构图。其中n为事务中心。针对如下的DFD图,分步骤导出程序结构图。其中d为事务中心。第六章 用户界面设计6.1界面设计的基本原则原则描述用户熟悉程度界面应该采用经常使用系统的用户所熟悉的术语和概念一致性界面
22、必须一致,在任何可能的情况下相同的操作应该以同样的方式被激活使惊讶最小化尽量避免使用户对系统的行为感到惊讶可恢复性界面应该为用户提供错误恢复机制用户帮助界面应该在错误发生时提供有意义的反馈,并且提供上下文敏感的用户帮助系统用户多样性界面应该为不同类型的用户提供恰当的交互方式6.2设计良好界面的主要途径用户界面设计中有三条“黄金规则”(如何理解)1.使系统处于用户控制之中2.减少用户记忆负担3.保持界面一致性6.3.2 界面分析和设计模型在用户界面的分析和设计过程中,有四种模型能够起作用:1.用户模型2. 设计模型3. 心智模型或系统感知模型4. 实现模型 6.4 用户界面分析用户分析技术:任务
23、分析用户采访和问卷调查群体文化学6.5.2 界面设计需考虑的问题1.响应时间系统响应时间有两个重要特征:长度和变化性;变化方式是指与平均响应时间的偏差;2.用户帮助消息措辞中的设计因素第七章 软件体系结构风格和设计模式7.1 基本概念软件设计模式:可解决一类问题并能重复使用的解决方案软件体系结构风格:它是软件设计人员在长期的软件设计过程中总结出来的一些规律性的东西,经过提炼总结而成。7.2.1Wright ADL调用实例的Wright体系结构描述调用实例的GADL体系结构描述构件图调用实例的GADL体系结构描述类图实例剖析: 统计a.txt中单词的个数并打印出来:shell命令:“cat a.
24、txt | wc -w | lpr”1、cat命令输出a.txt的内容2、通过管道传给命令wc,统计输入流中单词的 个数并输出3、输出的单词数通过管道传给命令lpr,lpr将其打印出来一个“管道/过滤”系统实例: 系统功能:读取一个字符流,并输出把每隔一个的字符转换成大写字母的字符流。1.管道/过滤器风格特征:系统中构件之间通过数据流松散耦合。也就是说,构件之间的依赖仅仅是数据流,而不是通常的接口函数调用或消息传递。2.分层风格特征:从向外提供服务的构件出发,沿着连接关系递次搜索各构件和连接件,如果形成的拓扑结构是一个有向无圈图(典型情况下是一个线性结构),那么这个系统的体系结构风格就是层次式的。这种设计风格便于将复杂的系统进行分解;同时也便于构件替换:只要保持接口一致,就可以将某一层的软件替换掉,而不会影响到系统的其他部分。7.4 设计模式设计模式,并将它们分为三种类型:创建型设计模式、结构型设计模式和行为型设计模式。1.Factory Method 例:“龙珠”游戏-设计1适用场合:有一些实体(各种魔力管道),它们的结构和行为是相似的,且都包含一些相似的更小实体(各类球),但一个大实体内部的这些小实体都是同一类的(一种魔力管道内只有一种球)。核心思想归纳:在父类中,将创建对象的操作包装为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络工程师考试政策变化的分析试题及答案
- 计算机软件测试环境设置试题及答案
- 安全工程概括试题及答案
- 西方国家的政治话语权争夺试题及答案
- 西方平权运动历史试题及答案
- 安全法律试题及答案
- 安全道路交通试题及答案
- 城市更新中历史文化街区保护与社区文化教育研究报告
- 硬件故障排查及修复试题及答案
- 宠物食品市场细分需求分析:2025年宠物营养品与产品创新报告
- 2020-2025年中国果蔬保鲜行业投资潜力分析及行业发展趋势报告
- TSG21-2025固定式压力容器安全技术(送审稿)
- DB2107-T 0011-2023 多旋翼无人机道路巡查疏导作业规范
- LY/T 3398-2024草原等级评定技术规程
- 广西河池市(2024年-2025年小学六年级语文)部编版期中考试(下学期)试卷及答案
- 2025年日历(日程安排-可直接打印)
- 【MOOC】心理学-华南师范大学 中国大学慕课MOOC答案
- 针灸治疗之蛇串疮课件
- 介绍圆明园课件
- 《英语翻译》教案全套 陈霞 第1-8章 中西方翻译史 - 文体翻译
- DB11∕T 2115-2023 机械式停车设备使用管理和维护保养安全技术规范
评论
0/150
提交评论