软件技术基础课件7——软件工程概念2.ppt
《软件技术基础课件7——软件工程概念2.ppt》由会员分享,可在线阅读,更多相关《软件技术基础课件7——软件工程概念2.ppt(54页珍藏版)》请在课桌文档上搜索。
1、1,第四部分 软件工程软件设计,软件设计基本概念概要设计:将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式 模块组成与模块功能描述、模块间接口、主要数据对象与对象描述、数据库的组成 模块间调用方式;功能的对应模块组合详细设计:确立每个模块的实现算法、局部数据结构,用适当方法表示算法和数据结构的细节 模块内的部分数据对象;数据对象(类)的实现方法,2,第四部分 软件工程,基本概念(续)软件模块整个软件被划分成若干单独命名和可编址的部分,这些组成部分即为模块,模块基本属性,模块实现什么功能,模块的内部实现逻辑,该模块使用时的环境和条件,3,第四部分 软件工程,基本概念(续)软
2、件模块划分原则:提高模块的独立性。度量模块独立性的两个准则是模块间的内聚性和耦合性,内聚性,耦合性,内聚性是一个模块内部各个元素彼此结合的紧密程度的度量。,耦合性是模块间互相连接的紧密程度的度量。它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。,4,第四部分 软件工程,基本概念(续)软件模块内聚性 耦合性,(1)功能内聚(2)信息内聚(3)通信内聚(4)过程内聚(5)时间内聚(6)逻辑内聚(7)巧合内聚,(1)非直接耦合(2)数据耦合(3)标记耦合(4)控制耦合(5)外部耦合(6)公共耦合(7)内容耦合,5,第四部分 软件工程,概要设计任务,(1)制定规范(2)软件系统结构的总
3、体设计(3)处理方式设计(4)数据结构设计(5)可靠性设计(6)编写概要设计阶段的文档,6,第四部分 软件工程,概要设计目标:把需求转换为软件的体系结构模块结构与数据结构任务,(1)制定规范(2)软件系统结构的总体设计(3)处理方式设计(4)数据结构设计(5)可靠性设计(6)编写概要设计阶段的文档,7,第四部分 软件工程,概要设计模块结构:程序各个部件(模块)的组织情况,是软件的过程表示举例,8,第四部分 软件工程,概要设计模块间关系表示:结构图反映程序中模块间的调用关系和模块间信息的传递结构图的要素包括:(1)模块:模块用矩形框表示,并用模块的名字标记它。(2)模块的调用关系和接口:模块之间
4、用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块,9,第四部分 软件工程,概要设计数据结构设计:主要内容,(1)确定涉及到的文件系统结构;数据库的模式、子模式;进行数据完整性和安全性的设计。(2)确定输入、输出文件的详细的数据结构。(3)结合算法设计,确定算法所必需的逻辑数据结构及其操作。(4)确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。(5)限制和确定各个数据设计决策的影响范围。(6)若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。(7)数据的保护性设计,10,第四部分 软件工程,详细设计需要完成的工作:,(1)确定
5、软件各个组成部分内的算法以及各部分的内部数据组织。(2)选定某种过程的表达形式来描述各种算法。可选用的过程表达形式有:流程图、盒图、PAD图等。(3)编写详细设计说明书。(4)制定单元测试计划。(5)进行详细设计评审。,11,第四部分 软件工程,详细设计表示方法:应采用合适的方式来描述模块内问题解决过程的细节结构化的图形设计表示法是易于使用、易于理解的方式,12,第四部分 软件工程,详细设计流程图:,顺序结构,选择结构,循环结构,13,第四部分 软件工程,详细设计流程图,国家标准(GB1525-89)流程图符号:,14,第四部分 软件工程,详细设计流程图标准流程图举例:,15,第四部分 软件工
6、程,详细设计盒图(N-S图,Chapin图)功能域明确;很容易确定局部和全局数据的作用域;不可能任意转移控制;很容易表示嵌套关系及模块的层次关系,16,第四部分 软件工程,面向对象的设计方法分析与设计步骤面向对象的设计方法 也需要得出软件的体系结构静态建模与动态建模(1)将系统划分为子系统,可以使用包来描述子系统,根据子系统提供的操作来定义它们的接口.然后设计子系统的概念模型。(2)对复杂的子系统,可以继续将其分解,得到更简单的子系统。直到得出子系统内待解决问题域中的类。确定子系统中存在的类及类之间的关系,并定义了子系统的接口及关系后,便完成了系统的静态建模工作。(3)描述待解决问题域中类的动
7、态行为,从而建立问题解决过程的系统动态模型。,17,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的识别为了描述一个软件系统,识别其中的对象并将其抽象为类识别类和对象的一些方法:(1)通过实体-关系模型识别类和对象。(2)基于自然语言信息识别类和对象。(3)基于用例与序列图识别类和对象。,18,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的筛选,依据下列标准,删除不正确或不必要的类或对象:冗余 如果两个类表达了同样的信息,则应该保留在此问题域中最富于描述的类。无关 现实世界中存在许多对象,不能把它们都纳入到系统中去,仅需要把与本问题密切相关的类或对象放进目标系统中。有些类在其
8、他问题中可能很重要,但与当前要解决的问题无关,同样也应该把它们删掉。,19,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的筛选,笼统 在需求陈述中常常使用一些笼统的、泛指的名词,虽然在初步分析时把它们作为候选的类或对象列出来了,但是,要么系统无须记忆有关它们的信息,要么在需求陈述中有更明确更具体的名词对应它们所暗指的事务,因此,通常把这些笼统的或模糊的类去掉。属性 在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类或对象中去掉。但如果某个性质具有很强的独立性,则应把它作为类而不是作为属性。,20,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的筛选,操作
9、 在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,应该慎重考虑它们在本问题中的含义,以便正确地决定把它们作为类还是作为类中定义的操作。实现 在分析阶段不应该过早地考虑怎样实现目标系统。因此,应该去掉仅和实现有关的候选的类/对象。在设计和实现阶段,这些类/对象可能是重要的,但在分析阶段过早地考虑它们反而会分散我们的注意力。,21,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的属性确定,通常包括分析和选择两步:分析 在需求陈述中用名词词组表示属性,例如,“机床的重量”或“导弹的直径”。往往用形容词表示可枚举的具体属性,例如,“红色的”、“打开的”。但不可能在需求陈述中找到所有
10、属性,分析员还必须藉助于领域知识和常识才能分析得出需要的属性。选择 认真考察经初步分析而确定下来的那些属性,从中删除不正确的或不必要的属性。,22,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的描述方式类图通常表示为长方形,长方形又分三个部分,分别用来表示类的名字、属性和操作,23,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的描述方式类图中的关系普通关联导航关联关联中的角色,24,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的描述方式类图中的关系聚合关联普通聚合,共享聚合,复合聚合,25,第四部分 软件工程,面向对象的设计方法分析与设计步骤类的描述方式类图中的关
11、系通用化继承,26,第四部分 软件工程,面向对象的设计方法分析与设计步骤包子系统的描述一种组合机制,把许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。,27,第四部分 软件工程,面向对象的设计方法分析与设计步骤动态建模表示方法:状态图所有对象都具有状态,状态是对象执行了一系列活动的结果当某个事件发生后,对象的状态将发生变化。状态图中定义的状态有:初态、终态、中间状态、复合状态。其中,初态是状态图的起始点,而终态则是状态图的终点。一个状态图只能有一个初态,而终态则可以有多个描述跨越多个用例的单个对象的行为,顺序图,状态图,合作图,其它,第四部分 软件工程,面向对象的设计方法分析
12、与设计步骤动态建模顺序图(单个用例中几个对象的行为)描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,第四部分 软件工程,面向对象的设计方法分析与设计步骤动态建模协作图(合作图)(单个用例中几个对象的行为)用于描述相互合作的对象间的交互关系和链接关系,第四部分 软件工程,编码常用设计语言及特点,第四部分 软件工程,第四部分 软件工程,第四部分 软件工程,编码语言选择原则,为使程序易测试和维护以减少生存周期的总成本,选用高级语言应用理想的模块化机制,以及可读性好的控制结构和数据结构。,为便于调试和提高软件可靠性,应选用编译程序能够尽可能多地发现程序中错误的语言。,为降低软件开发和维护
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件技术 基础 课件 软件工程 概念
链接地址:https://www.desk33.com/p-235753.html