第5章 软件系统静态结构分析与设计
《系统分析与设计》课程教学大纲
《系统分析与设计》课程教学大纲课程英文名称:System analysis and design课程代码:R0902635 学时数:56 学分数:3.5课程类型:专业基础课程适用学科专业:软件工程先修课程:《面向对象程序设计》,《软件工程基础》,《数据库原理及应用》执笔者:编写日期:审核人:一、课程简介《系统分析与设计》是软件工程专业的专业基础课程。
学生通过该课程的学习,可掌握面向对象软件系统分析与设计的基本原理、方法与技术,培养软件系统建模分析、系统分析与设计、软件模块设计、软件界面设计等专业能力。
Software system architecture design is a professional basic course of software engineering. Through the study of this course, students can master the basic principles, methods and technologies of object-oriented software system analysis and design, and cultivate the professional abilities of software system modeling analysis, software system architecture design, software module design, software interface design, etc.二、课程目标课程达成度评价指标点达成度评价三、教学计划(一)教学内容、要求及教学方法本课程共56学时,课堂讲授40学时,课内实验16学时。
教学内容由如下章节组成:第1章系统分析与设计概述(CM1) 4学时教学方法:课堂面授。
采用课堂知识点讲授的教学方法,让学生理解课程内容的概念、原理和相关技术。
软件体系结构课件第5章统一建模语言
2:GetPrefSet()
10:PrefSet(date_mg)
1:GetPrefSet()
:MeetingInitiator
第5章 统一建模语言 直接使用UML建模 – 会议安排系统的类图
Person
StronglyConflicts With
Conflicts With
Important Attendee
0..* 0..*
0..* Profers
Attendee
1..* 1..* 0..* 0..*
11 1 1
1
Meeting Initiator
Find.exe
Query .dll
部署图 定义系 统中软 硬件的 物理体
系结构
第5章 统一建模语言 部署图
客户端:个人PC QueryClient.exe
服务器
《TCP/IP》 查询
QueryServer.exe 部署图
定义系
统中软
Find.exe
硬件的
物理体
Query.dll系结构
第5章 统一建模语言
第5章 统一建模语言
直接使用UML建模 – UML中的通用表示
➢ 字符串:表示有关模型的信息; ➢ 名字:表示模型元素; ➢ 标号:不同于编程语言中的标号,是用于表示或说明图形符号的字
符串; ➢ 特殊字符串:表示某一模型元素的特性; ➢ 类型表达式:声明属性、变量及参数,含义同编程语言中的类型表
0
10
20
30s 时间刻度
第5章 统一建模语言 状态图
提交订单 已审核 印前处理
客户付钱
已付款
已处理
进行冲印
冲印中 冲印完成
描述满足 用例要求 所要进行 的活动以 及活动间 的完约成束关 系,有利 于识别并 行活动
【软件构造】第五章第二节设计可复用的软件
【软件构造】第五章第⼆节设计可复⽤的软件⽬录第五章第⼆节设计可复⽤的软件5-1节学习了可复⽤的层次、形态、表现;本节从类、API、框架三个层⾯学习如何设计可复⽤软件实体的具体技术。
设计可复⽤的类——LSP⾏为⼦结构协变与逆变Liskov替换原则(LSP)各种应⽤中的LSP数组是协变的泛型中的LSP为了解决类型擦除的问题-----Wildcards(通配符)设计可复⽤的类——委派与组合设计可复⽤库与框架⽩盒框架⿊盒框架## 设计可复⽤的类在OOP之中设计可复⽤的类封装和信息隐藏继承和重写多态、⼦类和重载泛型编程LSP原则委派和组合(Composition)【⾏为⼦结构】⼦类型多态( Subtype polymorphism):客户端可⽤统⼀的⽅式处理不同类型的对象。
栗⼦:Animal a = new Animal();Animal c1 = new Cat();Cat c2 = new Cat();在可以使⽤a的场景,都可以⽤c1和c2代替⽽不会有任何问题。
在java的静态类型检查之中,编译器强调了⼏条规则:⼦类型可以增加⽅法,但不可删⼦类型需要实现抽象类型中的所有未实现⽅法⼦类型中重写的⽅法必须有相同或⼦类型的返回值⼦类型中重写的⽅法必须使⽤同样类型的参数⼦类型中重写的⽅法不能抛出额外的异常⾏为⼦结构也适⽤于指定的⽅法:更强的不变量更弱的前置条件更强的后置条件⾏为⼦结构的⽰例⼀:⼦类满⾜相同的不变量(同时附加了⼀个)重写的⽅法有相同的前置条件和后置条件故该结构满⾜LSP⾏为⼦结构的⽰例⼆:⼦类满⾜相同的不变量(同时附加了⼀个)重写的⽅法 start 的前置条件更弱重写的⽅法 brake 的后置条件更强故该结构满⾜LSP⾏为⼦结构的⽰例三:⼦类满⾜不变量条件更强,故满⾜LSP【逆变与协变】逆变与协变综述:如果A、B表⽰类型,f(⋅)表⽰类型转换,≤表⽰继承关系(⽐如,A≤B表⽰A是由B派⽣出来的⼦类):f(⋅)是逆变(contravariant)的,当A≤B时有f(B)≤f(A)成⽴;f(⋅)是协变(covariant)的,当A≤B时有f(A)≤f(B)成⽴;f(⋅)是不变(invariant)的,当A≤B时上述两个式⼦均不成⽴,即f(A)与f(B)相互之间没有继承关系。
第五章 类图和对象图(UML)
+
size
:integer
=(100)
9
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
3、属性还有取值范围。类型表示该属性的种类。 它可以是基本数据类型,例如整数、实数、布尔 型和枚举型等,也可以是用户自定义的类型。一 般它由所涉及的程序设计语言确定必须为其指定 数据类型。当一个类的属性被完整定义后,它的 任何一个对象的状态都由这些属性的特性值所决 定。
20
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联是一种结构关系,它指明一个事物的对象与 另一个事物的对象间的联系 例如,一个人为一家公司工作,一家公司有许多办 公室。我们就认为人和公司、公司和办公室之间 存在某种语义上的联系。在分析设计的类图模型 中,则在对应人类和公司类、公司类和办公室类 之间建立关联关系
改变的因素:1.一个类向另一个类发送消息。 2.一个类是另一个类的数据成员类型 3.一个类是另一个类的操作的参数类型 注:如果两个类之间有关联,那么这两个类就有依赖关 系,但是我们一般不标出依赖关系。
37
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
3、泛化(generalization)关系
泛化关系:定义了一般元素和特殊元素之间的分类关系。 也就是一种继承关系。继承是在现有类的基础上定义和 实现一个新类的技术,刻画了类的一般性和特殊性。被 继承的类称为父类或超类,继承的类称为子类。 表示形式:用空心三角箭头实心线表示
25
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
角色:当一个类处于关联的某一端时,该类就在 这个关系中扮演着一个特定的角色。角色就是关 联关系中一个类对另一个类所表现的职责
南京工程学院软件工程复习题答案
复习题第一章选择题:1,2,3,4,6,7,8,9 判断题:1,2,3,4,5第二章选择题:1,2,3,4,5,7,8 判断题:1,2,3,4,5,6第三章选择题:1,2,3, 5,6 ,7 判断题:1,2,3,4,5第四章选择题:5,6,7 ,8,9 判断题:5,6,7,8, 9,10第五章选择题:4,5,6,7,8,9,10 判断题:1,2,3,4,5,6,7,8第八章选择题:1,2,3,4,5第九章选择题:1,2,3,4第十二章选择题:1,2,3简答题:1.什么是软件危机其产生的主要原因是什么2.结构化程序设计的指导原则是什么它有哪三种基本控制结构红色为没有答案的3.什么是软件生存周期模型软件生命周期分为哪六个阶段并对每个阶段作简要说明.4.如何画分层数据流图5.简述UML.实际建模过程.6.在UML中的状态图、协作图、活动图、序列图在系统分析中各起到了什么作用7.什么是软件复用8.单元测试的功能是什么主要采用什么方法列举一个常用单元测试的工具. 9.什么是α测试和β测试10.自顶而下增值与自底而上增值各有何优、缺点11.请简单的谈一下安全测试12.为什么要进行软件维护13.提高软件可维护性的方法有哪些14.影响软件质量的因素有哪些15.什么是CMMCMM将软件过程的成熟度分为哪几个级别案例分析题1.画出给定实例的数据流图.并能给出其数据流条目,及对其中某一文件给出文件条目,对某数据项给出数据项条目,对某加工加工给出加工条目.2.画出某系统的用例图,及子用例图,对用例图作简要说明;用UML状态图说明状态的变迁情况及说明.习题答案习题一答案一、选择题1. 软件的主要特性是A B C.A 无形B 高成本C 包括程序和文档D 可独立构成计算机系统2. 软件工程三要素是B.A 技术、方法和工具B 方法、工具和过程C 方法、对象和类D 过程、模型、方法3. 包含风险分析的软件工程模型是A.A 螺旋模型B 瀑布模型C 增量模型D 喷泉模型4. 软件工程的主要目标是C.A 软件需求B 软件设计C 风险分析D 软件实现5. 下列属于面向对象开发方法的是A B C D.A BoochB UMLC CoadD OMT6. 软件危机的主要表现是B D.A 软件成本太高B 软件产品的质量低劣C 软件开发人员明显不足D 软件生产率低下7. 软件开发方法的主要工作模型有A B CA 螺旋模型B 循环模型C 瀑布模型D 专家模型8. 软件工程的目标有A B C.A 易于维护B 低的开发成本C 高性能D 短的开发期9. 软件工程学的目的和意义是A D.A 应用科学的方法和工程化的规范管理来指导软件开发B 克服软件危机C 作好软件开发的培训工作D 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序.×2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰.×3. 结构化方法的工作模型是使用螺旋模型进行开发.×4. 结构化方法和OO方法都是一种面向过程的软件开发方法.×5. 原型化开发方法包括生成原型和实现原型两个步骤.×习题二答案一、选择题1. 需求分析的主要目的是B C.A 系统开发的具体方案B 进一步确定用户的需求C 解决系统是“做什么”的问题D 解决系统是“如何做”的问题2. 需求分析的主要方法有C D.A 形式化分析方法B PAD图描述C 结构化分析SA方法D OOA法3. 面向对象的分析方法主要是建立三类模型,即D.A 系统模型、E-R模型、应用模型B 对象模型、动态模型、应用模型C E-R模型、对象模型、功能模型D 对象模型、动态模型、功能模型4. SA法的主要描述手段有B.A)系统流程图和模块图B DFD图、数据词典、加工说明C 软件结构图、加工说明D 功能结构图、加工说明5. 画分层DFD图的基本原则有A C D.A 数据守恒原则B 分解的可靠性原则C 子、父图平衡的原则D 数据流封闭的原则7. 画DFD图的主要目的是A D.A 作为需求分析阶段用户与开发者之间交流信息的工具B 对系统的数据结构进行描述C 对目标系统的层次结构进行描述D 作为分析和设计的工具8. 数据字典是数据流图中所有元素的定义的集合,一般由 C 四类条目组成.A 数据说明条目、控制流条目、加工条目、数据存储条目B)数据流条目、数据项条目、文件条目、加工条目C 数据源条目、数据流条目、数据处理条目、数据文件条目D 数据流条目、数据文件条目、数据池条目、加工条目二、判断题1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案.×2. SA法是面向数据流,建立在数据封闭原则上的需求分析方法.√3. 需求管理主要是对需求变化的管理,即如何有效控制和适应需求的变化.√4. 在面向对象的需求分析方法中,建立动态模型是最主要的任务.×5. 加工小说明是对系统流程图中的加工进行说明.×6. 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件.×习题三答案一、选择题1. 模块的基本特征是A C.A 外部特征输入/输出、功能B 内部特征输入/输出、功能C 内部特征局部数据、代码D 外部特征局部数据、代码2. SD方法的设计总则是C D.A 程序简洁、操作方便B 结构清晰、合理C 模块内聚性强D 模块之间耦合度低3. 软件设计的主要任务是A B D.A 将分析阶段获得的需求说明转换为计算机中可实现的系统;B 完成系统的数据结构和程序结构设计C 完成模块的编码和测试D 对模块内部的过程进行设计5. 从工程管理的角度来看,软件设计分D两步完成.A 系统分析、模块设计B 详细设计、总体设计C 模块设计、详细设计D 总体设计、详细设计6. 模块独立性准则定性指标B D来衡量.A 分解度B 耦合度C 屏蔽性D 内聚性7. 用户界面设计的任务包括A B C.A 确定用户界面类型B 建立任务模型C 建立用户模型D 建立功能模型二、判断题1. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好.×2. 在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用.×3. 信息隐蔽原则有利于提高模块的内聚性.√4. 中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图.×5. SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应. ×习题四答案一、选择题5. 一个类属性依其特征划分,其类型有ABCD.A 描述型B 定义型C 派生型D 参考型6. 在进行面向对象分析时,所采用的模型有ABC.A 对象模型B 动态模型C 静态模型D 功能模型7. 状态是对象属性的值的一种抽象,它的性质有AB.A 时间性B 持续性C 有序性D 有穷性8. 数据流图中的处理必须用对象中的操作来实现,常见的操作有ABCD.A 查询B 动作C 活动D 访问9. 建立继承关系时所采用的方式有AC.A 自顶向下B 从内到外C 自底向上D 从复杂到简单二、判断题5. 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程.√6. 面向对象设计的主要目标是提高生产效率,提高质量和提高可维护性.√7. 对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系.√8. 面向对象的分析是用面向对象的方法对目标系统的问题域空间进行理解、分析和反映.通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构.√9. 类的设计过程包括:确定类,确定关联类,确定属性,识别继承关系.√10. 复用也叫重用或再用,面向对象技术中的“类”是比较理想的可重用软构件,它有三种重用方式:实例重用、继承重用、多态重用.√习题五答案一、选择题4. 下列各种图可用于动态建模的有ACD.A 状态图B 类图C 序列图D 活动图5. 下列属于状态的组成部分的有AB.A 名称B 活动C 条件D 事件6. UML中包括的事件有ABCD.A 条件为真B 收到另一对象的信号C 收到操作调用D 时间表达式7. 属性的可见性有ABD.A 公有的B 私有的C 私有保护的D 保护的8. 用例之间的关系有BCD.A 友元B 扩展C 使用D 组合9. 应用于通用化约束的方式有ABCD.A 完整B 不相交C 不完整D 覆盖10. 消息的类型有ABCA 同步B 异步C 简单D 复杂二、判断题1. UML建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的. √2. UML是一种建模语言,是一种标准的表示,是一种方法. ×3. 泳道是一种分组机制,它描述了状态图中对象所执行的活动. ×4. 同步消息和异步消息的主要区别是:同步消息的发送对象在消息发送后,不必等待消息处理,可立即继续执行,而异步消息则发送对象必须等待接收对象完成消息处理后,才能继续执行.×5. 类图中的角色是用于描述该类在关联中所扮演的角色和职责的. √6. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述.×7. 用例模型的基本组成部件是用例、角色和用例之间的联系. √8. 用例之间有扩展、使用、组合等几种关系. √习题七答案5.什么是软件复用答:软件复用是指重复使用已有的软件产品来开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的.在软件复用中重复使用的软件产品不仅仅局限于程序代码,而是包含了在软件生产的各个阶段所得到的各种软件产品,这些软件产品包括:领域知识、体系结构、需求分析、设计文档、程序代码、测试用例和测试数据等.将这些已有的软件产品在软件系统开发的各个阶段重复使用,这就是软件复用的原理.习题八答案一、选择题1. 软件测试的主要特点是A C.A 软件测试的开销大B 软件测试要依靠工具C 软件不能进行“穷举”测试D 软件测试要依靠人工2. 整体测试又称为组装测试,其主要内容包括C D.A 对整体的性能进行测试B 用白盒法设计测试用例进行测试C 确定组装策略和次序D 对组装过程进行测试3. 渐增式是将模块一个一个地连入系统,每连入一个模块C.A 只需要对新连入的模块进行测试B 都不需要再进行测试C 要对新子系统进行测试D 都要进行回归测试4. 静态测试是以人工的、非形式化的方法对程序进行分析和测试.常用的静态测试方法有 B C D.A 运行程序并分析运行结果B 桌前检查与代码会审C 数据流分析图D 调用图5. 集成过程的原则是B C.A 按照模块的大小集成B 尽早测试包含I/O的模块C 尽早测试关键模块D 按照“输入—处理—输出”的次序进行集成习题九答案一、选择题1. 软件维护的类型有A B C D.A 完善性维护B 纠错性维护C 适应性维护D 预防性维护2. 各种软件维护的类型中最重要的是A B.A 完善性维护B 纠错性维护C 适应性维护D 预防性维护3. 以下属于完善性维护的有B D.A 解决开发时未能测试各种可能条件带来的问题B 增加联机求助命令C 缩短系统的应答时间,使其达到特定要求D 为软件的运行增加监控设施4. 进行系统修改时可能会产生维护的副作用,它们可能有A B C.A 修改数据的副作用B 修改错误后,又引入了新的错误C 修改代码的副作用D 文档资料的副作用习题十二答案一、选择题1. CMM表示 A .A 软件能力成熟度模型B 软件过程工业化控制C 国际软件质量认证D 软件统一性标准2. 软件过程和产品质量有详细的度量标准,并且得到了定量的认识和控制.以下具有上述特征.A 可重复级B 已定义级C 已管理级D 优化级3. CMM是开发高效率、高质量和低成本软件时,普遍采用的软件生产过程标准,它的主要用途不包括 C .A 软件过程评估B 软件过程改进C 软件过程控制D 软件能力评价简答题1.什么是软件危机其产生的原因是什么答:“软件危机”Software Crisis的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大.而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要.致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折.软件危机主要表现在两个方面:1 软件产品质量低劣,甚至开发过程就夭折.2 软件生产率低,不能满足需要.2. 如何画分层数据流图有哪些基本原则答:总的原则是:至顶而下,逐层分解画分层数据流图.逐层分解的画法可以控制每一层的复杂度.顶层:将整个系统作为一个加工,描述系统边界输入与输出.中间层:将某个加工分解为一组子加工,其中的子加工还需进一步分解.底层:由不再进行分解的基本加工组成.画分层数据流图的基本原则有:①数据守恒与数据封闭原则.②加工分解的原则.③子图与父图“平衡”的原则.④合理使用文件的原则.3. 简述UML实际建模过程.答:UML建模过程是一个迭代过程.每次迭代都建立相应的模型.分为以下几个阶段:①分析阶段.建模的目的是捕捉系统的功能需求,分析、提取所开发系统的“客观世界”领域的类以及描述它们的合作关系.常以用例图为首选模型.②设计阶段.建模的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案.常建立以类图为主的静态模型,及包括状态模型、顺序模型、活动模型和合作模型等动态模型.③实现阶段.主要工作就是进行编码,同时对已构造的模型作相应的修正.④配置阶段.通过模型描述所开发系统的软硬件配置情况建立配置模型.⑤测试阶段.使用前几个阶段所构造的模型来指导和协助测试工作.4. 在UML中,状态图、协作图、活动图、顺序图在系统分析中各起到了什么作用答:状态图State Diagram用来描述一个特定对象在其生存周期或在某段时间内的所有可能的状态及其引起状态转移的事件.一个状态图包括一系列的状态以及状态之间的改变.例如订单的状态变化等,在实时系统中用得较多,还可以用于辅助设计用户界面.顺序图Sequence Diagram 清晰地描述一组对象之间动态的交互关系、时间的约束关系,着重描述对象间消息传递的时间顺序,所以顺序图在实时系统中被大量使用.当参与交互的对象数目增加,交互关系复杂时用顺序图描述会显得杂乱,协作图Collaboration Diagram从另一个角度来更好地描述相互协作的对象间的交互关系和链接Link关系.着重体现交互对象间的静态链接关系和协作关系.协作图也可以从顺序图生成.活动图Activity Diagram是由状态图变化而来的,从系统任务的观点来看,系统的执行过程是由一系列有序活动组成的.活动图可以有效地描述整个系统的流程,描述了系统的全局的动态行为,且只有活动图是唯一能够描述并发活动的UML 图.5. 什么是软件复用答:软件复用是指重复使用已有的软件产品来开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的.在软件复用中重复使用的软件产品不仅仅局限于程序代码,而是包含了在软件生产的各个阶段所得到的各种软件产品,这些软件产品包括:领域知识、体系结构、需求分析、设计文档、程序代码、测试用例和测试数据等.将这些已有的软件产品在软件系统开发的各个阶段重复使用,这就是软件复用的原理.6. 什么是α测试和β测试答:α测试是在开发机构的监督下,在确认测试阶段后期由个别用户对软件进行测试,目的是评价软件的FLURPS功能、局域化、可使用性、可靠性、性能和支持性,注重界面和特色.β测试是在进行了α测试的基础上,由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性,是在软件产品正式发布前的测试.7.单元测试的功能是什么主要采取什么方法例举一个常用单元测试的工具单元测试.完成每个模块的测试,尽可能发现模块内部的错误.单元测试主要采用白盒测试法.工具:自己看下书呢8. 为什么要进行软件维护答:软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程.一个中等规模的软件,如果其开发过程需要一两年时间,则它投入使用以后,其运行时间可能持续5~10年之久.在这个维护阶段中,人们需要着手解决开发阶段尚未解决的问题,同时,还解决维护工作本身所产生的问题.做好软件的维护工作不仅能够排除软件中存在的错误,使它能够正常工作,而且还可以使它扩充功能,提高性能,为用户带来新的效益.维护阶段的花费约占整个软件生存周期花费的67%.因此,应充分认识到维护现有软件的重要意义.9. . 提高可维护性的方法有哪些答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审.在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明.在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面.在软件设计的复审中,应从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备.在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素.在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示.在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审.为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件 ,同时也在大力发展软件重用技术.10. 影响软件质量的因素有哪些答:影响软件质量的因素如下表所示.11.什么是CMMCMM将软件过程的成熟度分为哪几个级别答:1看下书.2初始级、可重复级、已定义级、已管理级和优化级.12. 自顶向下渐增与自底而上渐增各有何优、缺点答:①自顶向下渐增优点:能够尽早发现系统主控方面的问题,并尽早测试系统结构的问题.缺点:需要编写桩模块,由于下属模块往往不止一个,也不止一层,加之模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系,也无法验证桩模块是否完全模拟了下属模块的功能.因此很难尽早查出底层容易出错的复杂模块中的错误,所以导致过多的回归测试.②自底向上渐增优点:需要编写驱动模块.驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需模拟向被测模块传递数据,接收或打印从被测模块返回的数据等功能,比编写桩模块容易.还能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误.缺点:只有当系统所有模块全部组装完成,才能看到系统完整的结构,才能测试系统的主控功能.。
课件—UML系统建模与分析设计(5)
系统设计与对象动态交互模型
动态模型主要描述系统的动态行为和控制结构。动态行 为包括系统中对象生存期内可能的状态以及事件发生时状态 的转移,对象之间动态合作关系,显示对象之间的交互过程 以及交互顺序,同时描述了为满足用例要求所进行的活动以 及活动间的约束关系。 在动态模型中,对象间的交互是通过对象间消息的传递来 完成的。对象通过相互间的通信(消息传递)进行合作,并在其 生命周期中根据通信的结果不断改变自身的状态。
16
5.2.1 一个简单的顺序图例子
17
顺序图有两个坐标: 垂直坐标--时间(从上到下),水平坐标—对象。
对象
生存线
时间
18
激活期
消息
顺序图和用例图、类图的关系
19
5.2.2顺序图的主要元素:
(1)对象:顺序图中所包含的每个对象用一个 对象框(短式)表示,对象名需带下划线。
对象图
(2)生存线:对象框下画的一条垂直虚线,称 为该对象的生存线,表示对象的生存时间。 (3)激活期:对象生存线上的一个细长方形框, 表示该对象的激活时间段,即活动期间。一 个激活的对象要么正在执行自己的代码,要 么等待另一个对象的返回。 (4)消息:对象之间消息的发送和接收用两个 对象生存线(激活期)之间的消息箭头线。
28
5.3
对象之间的同步与异步操作
1.对象之间的同步操作
同步消息的发送者把进程控制传递给消息 的接收者,然后暂停活动,等待消息的接收者 放弃或返回控制; 同步消息的接收者执行所请求的操作,如 果需要的话,可以把控制传递给另一个对象角 色,请求做某个操作,并且当该操作完成后把 控制返回给原来的同步消息的发送者; 同步消息的接收者也可以直接返回或发送 信息给原来的消息发送者。
软件工程 第5章--RUP统一开发过程
(3) 制品(Artifact)
制品是过程生产、修改或使用的一种信息。制 品可分为输入制品和输出制品。
在面向对象设计中,制品被当作活动的参数。 制品有多种可能的形式,如:
模型 : 如用例模型或设计模型; 模型元素 : 如类、用例或子系统; 文档 : 如一个业务用例或体系结构文档; 源代码; 可执行文件。
13
a) 核心工作流
在 RUP 中共有 9 个核心过程工作流。它们将 所有工作人员和活动进行逻辑分组。
核心过程工作流分为 6 个核心工程工作流和 3 个核心支持工作流。
核心工程工作流有:业务建模工作流、需求 工作流、分析和设计工作流、实现工作流、 测试工作流、实施工作流。
核心支持工作流有:项目管理工作流、配置 和变更管理工作流、环境工作流。
11
Iteration Plan Storyboard
Use Case Model Project Measurements User-Interface Prototype
Developer Test
Iteration Assessment
Business Goal Test Environment Configuration
场景的系统大致轮廓; 估计整个项目需要的成本和时间; 评估风险,即分析不确定性的原因;
31
制品
a) 构想文档:有关项目核心需求、关键特 性和主要限制的构想。
b) 用例模型调查:包括所有在此阶段可确 定的用例和参与者。
c) 初期的项目术语。 d) 初始的业务用例:包括业务环境、是否
成功的评价标准、经济预测。 e) 早期的风险评估。 f) 项目计划:表明阶段和迭代。
内部发布 小里程碑
第1个外部发布 (如Beta版本)
ANSYS有限元分析——课程PPT课件
文档仅供参考,如有不当之处,请联系本人改正。
12.ANSYS/DesignSpace:该模块是ANSYS的低端产品, 适用与设计工程师在产品概念设计初期对产品进行基 本分析,以检验设计的合理性。其分析功能包括:线 性静力分析、模态分析、基本热分析、基本热力耦合 分析、拓扑优化。其他功能有:CAD模型读取器、自 动生成分析报告、自动生成ANSYS数据库文件、自动 生成ANSYS分析模板。产品详细分类: DesignSpace for MDT DesignSpace for SolidWorks Standalone DesignSpace : ( 支 持 的 CAD 模 型 有 : Pro/E 、 UG 、 SAT、Parasoild)
文档仅供参考,如有不当之处,请联系本人改正。
8. ANSYS/ED:该模块是一个功能完整的设计模拟程序, 它拥有ANSYS隐式产品的全部功能,只是解题规模受 到了限制(目前节点数1000)。该软件可独立运行, 是理想的培训教学软件。
9. ANSYS/LS-DYNA:该程序是一个显示求解软件,可 解决高度非线性结构动力问题。该程序可模拟板料成 形、碰撞分析、涉及大变形的冲击、非线性材料性能 以及多物体接触分析,它可以加入第一类软件包中运 行,也可以单独运行。
有限元分析的基本步骤如下: • 建立求解域并将其离散化有限单元,即将连续问题分
解成节点和单元等个体问题; • 假设代表单元物理行为的形函数,即假设代表单元解
的近似连续函数; • 建立单元方程; • 构造单元整体刚度矩阵; • 施加边界条件、初始条件和载荷; • 求解线性或非线性的微分方程组,得到节点求解结果;
文档仅供参考,如有不当之处,请联系本人改正。
6. 声学分析 ●定常分析 ●模态分析 ●动力响应分析
软件工程 第5章--UML
UML的定义
UML定义有两个主要组成部分:语义和表示法。 语义用自然语言描述,表示法定义了UML的可 视化标准表示符号,这决定了UML是一种可视 化的建模语言。 在语义上,模型是元模型的实例。UML定义给 出了语法结构的精确定义。 使用UML时,要从不同的角度观察系统,为此 定义了概念“视图(View)‖。视图是对系统的模 型在某方面的投影,注重于系统的某个方面。
独立于过程
系统建模语言,独立于开发过程。
9
容易掌握使用 概念明确,建模表示法简洁明了,图形结 构清晰,容易掌握使用。 着重学习三个方面的主要内容: (1) UML的基本模型元素 (2) 组织模型元素的规则 (3) UML语言的公共机制 与程序设计语言的关系 用Java,C++ 等编程语言可实现一个系统。 一些CASE工具可以根据 UML所建立的系 统模型来产生Java、C++ 等代码框架。
31
UML事物 — 注释事物
11) Note(注释)
依附于一个元素或一组元素之上,对其进
行约束或解释的简单符号。没有语义影响。
See policy8-5-96.doc for details about these algorithms.
CashAccount presentValue()
32
15
UML定义 9 种图,表达UML中的 5 种视图,各 视图在静态和动态方面表示系统模型。
结构 视图 静态 方面
动态 方面
行为 视图 同左
实现 视图 构件图
环境 视图 部署图
同左
用例 视图 用例图
同左
类图 对象图
顺序图 同左 顺序图 合作图 (注重 合作图 状态图 进程、 状态图 活动图 线程) 活动图
(完整版)软件工程 第五章 面向对象的需求分析
第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。
它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。
面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。
20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。
20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。
UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。
本章首先介绍面向对象的主要概念和思想。
在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。
第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。
Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。
如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。
一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。
1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。
可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。
对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。
例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。
图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。
第5章习题
一. 填空题1. 在面向对象的设计方法中,和分别是表现事物及事物间相互联系的概念。
2. 面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的方式。
3. 对象是对现实世界实体的,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作,封装在一起所构成的统一体。
4. 对象之间通过互相联系,以模拟现实世界中不同事物彼此之间的联系。
5. 面向对象方法学的基本原则是按照人类习惯的思维方法建立的模型,开发出尽可能直观、自然地表现求解方法的软件系统。
6. 对象具有性、性、性、性、__________性等。
7. 类的定义是具有相同__________和__________的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。
8. 一个类的上层可以有__________,下层可以有__________,形成一种层次结构。
9. 一个类可以直接继承多个类,这种继承方式称为__________。
如果限制一个类至多只能有一个超类,则一个类至多只能直接继承一个类,这种继承方式称为__________。
10. 如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A 叫做B 的__________,B 叫做A 的__________。
11. 在面向对象的系统中,每个对象都属于一个类,属于某个类的对象称为该类的一个__________。
12. 消息就是向对象发出的__________,它应含有提供服务的对象标识、服务标识、输入信息和回答信息。
13. __________性是面向对象程序设计语言不同于其他语言的最主要特点,是其他语言所没有的。
14. 在收到消息时对象要予以响应,不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做__________。
15. 面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用,它包括面向__________、__________、__________、__________和面向对象的维护等主要内容。
东北大学《计算机基础》课件-第5章(张老师)
C++保持了C语言的简洁、高效和接近汇编语言等优点,同时又对C语言的 不足和问题作了很多重要改进。
①增加了新的运算符,使C++应用起来更加方便;②改进了类型系统,增 加了安全性;③使用“引用”作函数参数为用户编程带来了很大方便;④允
许
函数重载,允许设置缺省参数,提高了编程的灵活性,减少了冗余返;回⑤本对章目
1. C++的特点
1抽象:是对具有特定属性及行为特征的对象进行概括,从中 提炼 出这一类对象的共性,并从通用性的角度描述其共有的属性及 行 为特征。抽象又分为数据抽象和代码抽象,前者描述某类对象的 公共属性,后者描述某类对象共有的行为特征。 2封装和数据隐藏:在面向对象程序设计中,通过封装可以将 一部分 属性和数据的操作隐藏起来,另一部分作为类的外部接口, 使用者 可以访问。这样可以对属性和操作的访问权限进行合理控制, 减少 程序之间的相互影响,降低出错的可能性。
3 确定数据结构和算法:数据结构 + 算法 = 程序
4 编写程序5 调试程序6 Fra bibliotek理资料,交付使用
返回本节目录
5.1.3 程序设计语言
程序设计语言是人们根据描述问题的需要而设计的,是计算机能 够直接识别的语言,有一套固定的符号和语法规则,是人与计算机交 流所使用的“语言”。
程序设计语言可分成机器语言、汇编语言和高级语言。前两类依 赖于计算机硬件,因机器而异,又称为低级语言,而高级语言与计算 机硬件基本无关,是目前使用非常广泛的程序设计语言。
程序设计语言就是计算机能够理解和执行的特殊语言。
5.1.2 程序设计的一般过程
概括地说,程序设计就是分析问题、编写程序、调试程序的过 程。用计算机解决实际问题的基本过程如下图所示。
系统静态模型分析
服务 员1
会员档案
2.2 顾客 会员信息变更 登记表 会员信息 变更处理
3、卡作业处理详细需求调查
服务 员2 会员卡 业务 员1 卡提交凭证 3.1 发放新卡 服务 员1 会员登记表 会员卡 顾客
会员持卡记录 3.2 顾客 挂失申请 卡挂失 处理 服务 员3
对象 属性
类名称 属性定义
对象 操作 (b)类描述
方法
§
2.3.1 对象图、类图
一、类图 类图中,描述了每个类的属性与操作以及 类与类之间的关系。
Consignee -address -name -moblieNumber 1..* Order Customer -name -address +getCreditRating() -orderDate -destArea -price 1 0..* -paymentType +dispatch() +close() 1 1..* OrderItem -productId -quatity -price -deliverState +stateChange() DeliverOrder -delliverOrderld +Close() 0..* 1 Peddllery -peddlerld -destArea 1 0..* Product -productId -productName -producType -price
对象类
对象类是对象的集合,这些对象具有共同的结 构特征、行为特征、联系和语义。 对象类的图标(Icon)用实线矩形框表示,矩 形框中含有若干分隔框,分别包含类的名字、属 性、操作、约束以及其他成分等。 类名可以是简单名,也可以是路径名。 属性框中包含对象类的属性。属性是类的命名 的性质,它描述类性质的实例所能具有的值。 操作框中包含对象类的操作。操作实现类的服 务功能,它可以被本类的对象请求执行,从而发 生某种行为。 其他的框可以包含责任、联系、约束、业务规 则、事件、例外情况等内容的说明。
软件设计与体系结构课后习题答案(秦航)
牡丹江师范学院--软件工程--朱有富 2015 年 6 月整理
第一章 1.什么是软件?软件的特点是什么?软件有那些分类? 计算机软件是由专业人员开发并长期维护的软件产品; 特点:
1)软件不是在传统意义上生产制造的,而是由设计开发的; 2)软件不会像硬件那样磨损和老化; 3)随着构件构造模式的发展,软件需要根据实际需求定制; 分类:计算机软件分为 7 个大类: ①系统软件②应用软件③嵌入式软件④科学和工程计 算软件⑤产品线软件⑥人工智能软件⑦Web 应用软件 2.软件设计应该包括哪些要素?软件设计在软件工程中所处的位置和重要性如何? 元素:①分析模型②数据/类设计③体系结构设计④接口设计⑤构件级设计 位置:软件需求分析->需求规格说明->软件设计->设计文档->软件编码…… 重要性: 软件设计是软件工程中形成质量的地方,设计为我们提供了质量评估的软件表示,设 计是我们能够将用户需求准确地转化为软件产品或系统的唯一方法。是所有软件工程 活动和随后的软件支持活动的基础。没有设计,就会有构造不稳定系统的风险。 3.请用自己的话说明软件体系结构。传统的建筑体系结构科学和软件体系结构有何相 似之处?有何不同之处? 软件体系结构是软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系 ,以及相关的设计与演化原则等。 相似之处: 都是所构建系统的计划,都具有确保得到期望的特性,也是所构建系统的描述。 不同之处: 建筑师创建的是相对静止的静态描述而软件体系结构师创建的体系结构描述、代码在 以后将被执行多次,靠许多组件的交互来得到期望结果。
2垂直型设计是指运用面向体系结构的专用建模设计工具及其表达模型所进行的软件体系结构的设计一般来说这种专用工具针对软件体系结构的描述首先定义一种表达模型然后围绕该模型通过提供相应的设计工具来支持软件体系结构的设计
2024年学习笔记信息系统项目管理师(第四版)第五章-信息系统工程
第五章-信息系统⼯程1-软件⼯程1.1-架构设计1.软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述,构件的相互作用(连接体)、指导构件集成的模式以及这些模式的约束组成。
2.软件架构主要研究内容涉及软件架构描述、软件架构风格。
软件架构评估和软件架构的形式化方法等。
3.研究软件架构的根本目的是解决好软件的复用、质量和维护问题。
4.软件架构设计的一个核心问题是能否达到架构级的软件复用,也就是说,能否在不同的系统中使用同一个架构软件。
软件架构风格是描述某一个特定应用领域找那个系统组织方式的惯用模式。
5.通用软件架构:数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。
6.数据流风格:包括批处理序列和管道/过滤器两种风格。
7.调用/返回风格包括主程序/子程序、数据抽象和面向对象,以及层次结构。
8.独立构件风格包括进程通信和事件驱动的系统9.虚拟机⻛格包括解释器和基于规则的系统。
10.仓库⻛格包括数据库系统、⿊板系统和超⽂本系统。
11.在架构评估过程中,评估⼈员所关注的是系统的质量属性。
1.2-需求分析1.虚拟机⻛格包括解释器和基于规则的系统。
需求是多层次的,包括业务需求、⽤户需求和系统需求,这三个不同层次从⽬标到具体,从整体到局部,从概念到细节。
2.业务需求:指反映企业或客户对系统⾼层次的⼀个⽬标追求,通常来⾃项⽬投资⼈、购买产品的客户、客户单位的管理⼈员、市场营销部⻔或产品策划部⻔等。
3.⽤户需求:描述的是⽤户的具体⽬标,或者⽤户要求系统能完成的任务,⽤户需求描述了⽤户能让系统来做什么。
4.系统需求:是指从系统的⻆度来说明软件的需求,包括功能需求,⾮功能需求和设计约束。
5.质量功能部署QFD是⼀种将⽤户要求转化成软件需求的技术,其⽬的是最⼤限度地提升软件⼯程过程中⽤户的满意度。
为了达到这个⽬标,QFD将需求分为三类,分别是常规需求、期望需求和意外需求。
6.需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等。
《软件工程》第5章 软件构造
5.5 软件代码审查
为保证代码开发的质量,在编码完成后,进行 代码审查或称Review。
审查内容: 1. 程序的版式 2. 文件结构 3. 命名规则 4. 表达式与基本语句
5.6 软件复用
软件复用就是将已有的软件成分用于构造新的 软件系统,以达到提高软件系统的开发质量与效率, 降低开发成本的目的。
在面向对象语言中,类功能支持这种层次机制。 除了根结点外,每个类都有它的基类(base class)。 除 了 叶结 点 外 , 每 个类 都 有它 的 派生 类 (derived class)。一个派生类可以从它的基类那里继承所有 的数据和操作,并扩充自己的特殊数据和操作。
3. 多态性
所谓多态,是指一个名字(或符号)具有 多种含义。即相同的操作的消息发送给不同的 对象时,每个对象将根据自己所属类中定义的 操作去执行,产生不同的结果。
5
第五章
软件构造
软件的详细设计,完成了软件的过程性的描述, 接下来进入程序编码阶段。
软件构造(Software Construction)指通过 编码、验证、单元测试、集成测试和排错的组合, 创建一个可以工作的、有意义的软件。在本章中, 我们将聚焦在该领域当中的程序设计语言、设计、 编码和复用这几个话题,其余的将在后续章节中讨 论。
类型的能力选取 。 6. 软件开发人员的知识水平以及心理因素。要特别注
意选择语言时,尽量避免受外界的影响,盲目追求 高、新的语言。
5.2 程序设计方法
5.2.1 结构化程序设计 结构程序设计的概念最早是由E.W.Dijkstra提出来的。
结构化程序设计方法 (Structured Program), 即SP法是结构化开发方法的重要组成部分。
5.3.1 源程序文件 符号的命名。尽量用与实际意义相同或接近的标识 符命名。 源程序中的注释 注释可分为序言性注释和解释性注释。错误的注释 宁可不要。 源程序的书写格式
软件系统分析与设计
1.3.1软件质量模型 和使用质量性、依从性 、安全性 复性 操作性 、稳定性、 可测试性 一致性、可 替换性1.3.2软件质量管理第 1 章 软件工程基础知识1.1 软件工程知识体系软件需求( Software 软件设计( Software 软件构造( Software 软件测试( Software 软件维护( SoftwareRequirements ) Design )Construction ) Testing ) Maintenance )软件配置管理( Software Configuration Management ) 软件工程管理( Software EngineeringManagement ) 软件工程过程( Software Engineering Process )软件工程工具和方法 软件质量( Software( Software Engineering Tools and Methods ) Quality )1.2 软件生存周期与软件开发模型1.2.1 软件生存周期Boehm 定义的软件生存周期模型GB 8566-1988 定义的软件 生存周期 模型GB/T 8566-1995 定义的 软件生存周期过程模型 GB/T 8566-2001 定义的 软件生存周期过程模型 UP 定义的软件生存周期模型1.2.2软件开发模型 瀑布模 型( waterfallmodel )快速原 型模型( rapid prototype model ) 演化模 型( evolutionary model )增量模 型( incremental model )螺旋模 型( spiralmodel )喷泉模 型( water fountain model )1.3 软件质量模型与软件质量管理 软件产 品的内部质量、外部质量 质量特 性、质量子特性和度量 功能性 :适宜性、准确性、互用 可靠性 :成熟性、容错性、可恢 可用性 :可理解性、易学性、可 效率: 时间特性、资源特性 可维护 性:可分析性、可修改性 可移植 性:适应性、易安装性、质量需 求分析质量计 划 质量保 证 质量控 制 质量改 进 软件质 量管理体系1.5.3 软件过程改进 目前状态 ”,找出所有差距 始下一轮改 进1. 6 小 节软件工程学是研究如 软件产品所要经历勺 O至被淘汰这样一个全过 程被称为软件生存周 期。
ABAQUS6 14中文版有限元分析与实例详解
3.1部件模块和草图模块 3.2属性模块 3.3装配模块 3.4分析步模块 3.5载荷模块 3.6相互作用模块 3.7格模块 3.8分析作业模块 3.9后处理与可视化模块
4.1输入文件的组成和结构 4.2 INPUT文件的书写规则和外部导入 4.3文件的类型介绍和常用指令 4.4单元介绍 4.5本章小结
ABAQUS6.14中文版有限元分析与实 例详解
读书笔记模板
01 思维导图
03 目录分析 05 精彩摘录
目录
02 内容摘要 04 读书笔记 06 作者介绍
思维导图
本书关键字分析思维导图
工程
模块
实例
软件
有限元
结构
概述
有限元
实例
分析 分析
文件
中文版
实例
屈曲
ห้องสมุดไป่ตู้
小结
单元
第章
有限元
内容摘要
《ABAQUS 6.14中文版有限元分析与实例详解》全面系统地介绍了ABAQUS 6.14软件的使用,包括静力学分 析、动力学分析、接触分析、结构热分析、模态分析、屈曲分析、拓扑优化及形状优化等常见的工程领域实例中 的建模、分析及后处理等内容。《ABAQUS 6.14中文版有限元分析与实例详解》从实际应用出发,侧重于ABAQUS 的实际操作和工程问题求解,针对各个相关的知识点进行了详尽的讲解,与相应的案例紧密结合,使读者能够快 速、深入地掌握ABAQUS 6.14的相应功能,每个实例都以图文并茂的形式详细介绍了ABAQUS 6.14软件的操作流 程。
12.1用户子程序接口概述 12.2 ABAQUS中调用用户子程序 12.3单向压缩试验有限元分析实例 12.4本章小结
读书笔记
这是《ABAQUS6.14中文版有限元分析与实例详解》的读书笔记模板,可以替换为自己的心得。
《软件设计与体系结构》教学大纲
《软件设计与体系结构》教学大纲01.课程的性质、目的与任务《软件设计与体系结构》课程是为软件工程专业开设的必修课,也是计算机科学与技术软件开发方向课程。
本课程运用工程的思想、原理、技术、工具,来对软件设计以及软件体系结构的相关思想、理论与方法进行系统介绍,包括软件模型和描述、软件体系结构建模和UML、软件设计过程、软件体系结构风格、面向对象的软件设计方法、面向数据流的软件设计方法、用户界面设计、设计模式、Web服务体系结构、基于分布构件的体系结构、软件体系结构评估、软件设计的进化、云计算的体系结构等内容。
本课程的具体任务包括:1.让学生建立构建软件系统架构一般方法的感性认识,理解并掌握软件系统架构分析、体系结构建模与架构设计的相关理论知识,培养学生软件架构设计的基本能力,能从内部模块规划设计、系统层次结构的构建开始,了解构建系统结构的一般技术和方法。
2.在构建软件系统的过程中,理解软件系统构建的一些关键问题,学习应对不同需求的系统对策和设计实现技术,使学生初步具备一定的系统架构分析与设计能力,同时,深入理解各种典型框架技术及原理,并初步具备运用模式设计思想开展软件详细设计的能力。
3.一方面,让学生理解并掌握软件体系结构的重要概念、术语和系统化方法,建立软件架构设计的理念,了解当前流行的框架技术,并理解其原理。
另一方面,以加深知识理解和培养初步架构设计能力为目的,并在项目开发中加以实践;在实践环节中重点培养运用典型框架进行项目构建的能力和使用设计模式进行细化设计的能力。
02.课程教学基本要求及基本内容第1章引言(一)基本教学内容1.1 软件1.2 软件工程1.3 软件设计1.4 软件体系结构(二)基本要求教学目的:理解软件的本质、软件神话、软件工程,了解软件过程和软件工程实践的相关内容,了解网络环境带来的各类问题。
教学重点:软件工程中的设计、设计过程和设计质量、软件设计原则。
教学难点:什么是软件体系结构、软件体系结构的内容、设计阶段的软件体系结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/4/19
5.1 类和对象
当模型是基于它们在现实世界中的对应物的 真实外观,以及基于问题域内的概念而建造 的时候,使用面向对象技术就非常合适。
面向对象分析与设计的基础是类、对象,以
及它们之间的关系。
2020/4/19
2020/4/19
5.11 网上求职招聘系统
2020/4/19
2020/4/19
5.4 关联
聚合关联
Navy
Warship
*
contains
2020/4/19
5.4 关联
共享聚合关联
Team
*
*
Person
Members
2020/4/19
5.4 关联
组合聚合关联
*
Text
Window
*
ListBox
*
Button
2020/4/19
5.4 关联
限定关联
Canvas
2020/4/19
5.4 关联
一个关联表示两个类的对象之间存在一个链 接。即它们“相互知道”、“被连接在一 起”、“对于每一个X,都有一个Y与之对应。
2020/4/19
5.4 关联
标准关联
Person
Owns
Owned by
1..*
0..*
Car
2020/4/19
5.4 关联
标准关联
use used by
figure id
*
Figure
限定符
2020/4/19
5.4 关联
或关联
1
保险公司
1..*
人
0..* 保险合同
0..* 0..*
1..*
公司
2020/4/19
5.4 关联
或关联
1
保险公司
1..*
人
0..* 保险合同
0..* {or} 0..* 1..*
公司
2020/4/19
5.4 关联
关联类
+drive()
2020/4/19
5.5 泛化
标准泛化关系
drives
2020/4/19
5.5 泛化
受约束的泛化关系 ➢重叠 overlapping ➢互斥 disjoint ➢完全 complete ➢不完全 incomplete
2020/4/19
5.5 泛化
重叠与互斥泛化关系
Vehicle
电梯控制器
队列 4 电梯
* 按钮
2020/4/19
5.4 关联
三元联类
保险公司 1
0..* 保险合同
0..*
保险契约 0..1 1..*
人
2020/4/19
5.5 泛化
标准泛化关系
交通工具
汽车
船
火车
2020/4/19
5.5 泛化
标准泛化关系
Vehicle +drive()
Car
Boat
+drive()
<<子系统>> 子系统C
<<子系统>> 子系统A
2020/4/19
<<子系统>> 子系统B
5.9 模板
T, n:int Array
<<bind>> <Color,50>
ColorArray
2020/4/19
5.10 模型质量
➢实用性 ➢易于交流和维护 ➢一致性 ➢完整性 ➢集成性
2020/4/19
5.6 依赖和精化关系
精化关系
分析类
<<refines>>
设计类
2020/4/19
5.7 接口
<<接口>> Runnable +run()
<<接口>> Storable
+load() +save()
2020/4/19
5.7 接口
2020/4/19
5.8 包
子系统 一个模型元素不能被一个以上的包拥有。
2020/4/19
5.2 类图
名称部分: 类的名称应该来自系统的问题域,并且应
该尽可能地明确,不会造成歧义。 类的名称应该是一个名词。
2020/4/19
5.2 类图
属性部分: 类属性捕获了描述和识别该类的一个特定实 例的信息。 类只应该包括当前正建模的系统感兴趣的属 性。
2020/4/19
5.2 类图
5.11 网上求职招聘系统
2020/4/19
5.11 网上求职招聘系统
2020/4/19
5.11 网上求职招聘系统
2020/4/19
5.11 网上求职招聘系统
2020/4/19
5.11 网上求职招聘系统
2020/4/19
5.11 网上求职招聘系统
• UserBean(用户实体) • PersonBean(求职者实体) • CompanyBean(企业实体) • AdminBean(管理员实体) • ApplyInfoBean(求职信息实体) • NewsBean(新闻实体) • JobInfoBean(招聘信息实体)
软件开发与实践
第5章 软件系统静态结构分析与设计
2020/4/19
第5章 软件系统静态结构分析与设计
5.1 类和对象 5.2 类图 5.3 关系 5.4 关联 5.5 泛化 5.6 依赖和精化关系 5.7 接口 5.8 包 5.9 模板 5.10 模型质量
2020/4/19
5.1 类和对象
对象就是我们可以谈论和操纵的一个事物, 它总是以某种方式与我们对现实世界的理 解相关联。
+drive()
{overlapping}
Car
Boat
+drive()
+drive()
Amphibian +drive()
2020/4/19
5.5 泛化
完全与不完全泛化关系
Person
Man
{complete} Woman
2020/4/19
5.6 依赖和精化关系
依赖关系
类A
<<友元>>
类B
2020/4/19
操作部分:
Figure +size : Size +pos : Position #figcounter : int +draw() +getCounter() : int
2020/4/19Fra bibliotek 5.3 关系
常用的关系: 关联(Association) 泛化(Generation) 依赖(Dependency) 精化(Refinement)
5.1 类和对象
保险业务简单模型
保险公司 1
保险合同
0..*
0..*
1..* 客户
2020/4/19
5.2 类图
类图的一个目的是为其它图定义一个基础, 例如在动态图中显示对象的状态以及对象之 间的协作。
2020/4/19
5.2 类图
发现类: 发现类的任务应该由系统问题域专家来完成。 可以通过提问的方式: ➢我们有需要存储或分析的信息吗? ➢我们有外部系统吗? ➢我们有任何模式、类库、组件等诸如此类的 东西吗? ➢存在系统必须处理的设备吗? ➢我们有组织机构部分吗? ➢参与者在业务中扮演哪些角色?