软件工程课件第六章共31页文档

合集下载

软件工程第六章软件详细设计PPT课件

软件工程第六章软件详细设计PPT课件
一种类自然语言。结构化语言语法结构包括内外两层。 内部语法则比较灵活,可以使用数据字典中定义过的 词汇、易于理解的一些名词、运算符和关系符;外层 语法具有较固定的格式,设定一组符号如IF、THEN、 ELSE、DO WHILE…ENDWHILE、DO CASE…ENDCASE等,用于描述顺序、选择和重复 的控制结构。
3
6.1详细设计任务
6.1.1 详细设计的基本任务 1.数据结构设计 前面的需求分析、总体设计阶段,确定的 概念性的数据类型,要进行确切的定义。这一 部分的设计内容一般比较多,所以大多数采用 小型数据库辅助的方法。
4
2.物理设计 对数据库进行物理设计,即确定数据库的
物理结构。物理结构主要指数据库的存储记录 格式、存储记录安排和存储方法,这些都依赖 于具体所使用的数据库系统。
要评审。
10
6.1.2 详细设计方法
1.采用自顶向下、逐步求精的程序设计方法 在详细设计中,虽然处于“具体”设计阶段,但
在设计某个复杂的模块内部处理过程时,仍可以采用 逐步求精的方法。可以将其分解为若干个模块来实现, 降低处理细节的复杂度。
11
2.使用三种基本控制结构构造程序 设计时,如果对一个模块处理过程细化中,开始是模 糊的,可以用下面三种方式以模糊过程进行分解:
5
3.算法设计 在总体设计的结构完成后,结构各个环节
的实现是多解的。着就需要用系统设计与分析 的技术来描述。可以用某种图形、表格、语言 等工具将每个模块处理过程的详细算法描述出 来。
6
4.界面设计 用户界面的设计现在显得比较重要,可以
采用字符用户界面设计,图形用户界面和多媒 体人机界面设计。这就要结合具体的系统来处 理。
以上三种逻辑表达工具各有所长和不足,归纳 起来可以得出下列结论:

软件工程课件第六章

软件工程课件第六章

根据上面的讨论,需要命名的数据有:
20.09.2020
结构化程序设计的核心内容
2、三种基本结构的共同点是单入口、单出口。
单入口单出口的控制理 解,也容易保证程序的正确性。
20前.0一9.页2020
国家软件开发工程规范的规定
国家软件开发工程规范规定“程序单元必须只有唯一的 入口,唯一的出口”有两个不同的概念:
1972年,IBM公司的Mills进一步提出,程 序应该只有一个入口和一个出口。
20.09.2020
结构化程序设计
结构程序设计是按照一组能提高程序 的可读性和易维护性的规则而进行的程序 设计方法,目的是为了使程序具有一种合 理的结构,以使程序易理解和维护,便于 保证和验证程序的正确性。
20.09.2020
扩展的结构程序设计:还允许使用DO_CASE型多分支结 构和DO_UNTIL型循环结构。
修正的结构程序设计:再允许使用BREAK(LEAVE)结构。
20.09.2020
逐步求精算法实例
空气污染物含量数据的统计处理程序
假定某工厂烟囱附近,在24小时中每分钟测量1次空气中
污染物含量。得到的数据以每100单位中所含污染物成分的值
3、自顶向下的程序验证。
20.09.2020
结构化程序设计的核心内容
二、使用三种基本控制结构来构造程序 1、任何程序都由顺序、选择和重复三种基本控制结构构造。
顺序实现了任何算法规约中的核心处理步骤; 条件允许根据逻辑情况选择处理方式; 重复提供了循环。 这些逻辑元素是结构化程序设计的基础。 根据逐步求精的思想,可用三种方式对模块过程进行分解: ①用顺序方式对过程分解,确定各部分的执行顺序; ②用选择方式对过程分解,确定各部分的执行条件; ③用循环方式对过程分解,确定某个部分进行重复的开始和 结束的条件。 对处理过程仍然模糊的部分反复使用以上分解,直到所有细 节确定下来。

软件工程第6章UML课件

软件工程第6章UML课件

UML 图 2-1
UML 借助图形符号展示和表达系统的概观 ,据此 可以开发出表示系统各个方面的不同图示。 有助于理解系统的行为和状态的典型图有:
用例图
用例为一系列事务,其中的每个事务是从系统外部调用的,需要 类图 与内部对象合作,以便在对象与系统周围之间创建关联 此图是系统的静态结构,也是类以及这些类表示的关系的集合 时序图 时序图是通过展示系统与其环境之间的交互,描述系统行为的简 单而直观的方法
用例举例
自动售货机系统
售货
顾客
供货
取货款
供货人
收银员
用例举例
用例之间的关系 4-1
用例之间的常见关系 泛化关系 扩展关系 包含关系
用例图的元素 4-1
系统
用例
参与者
用例图的元素 4-2
系统 系统是用例图的一个组成部分,它代 表的是一个活动范围,而不是一个真正的 软件系统。系统的边界用来说明构建的用 例的应用范围。系统边界框定义系统的边 界或限制,所以,系统的所有功能或过程 会被限制在系统内,即此边界将系统的所 有过程/功能与外界环境分隔。
UML 和 OOP
统一建模语言是对描述面向对象的系统分析和设 计工作所用符号进行标准化尝试的一种语言 其目的是建立一套不依赖于完成设计所用方法的 符号 UML 的开发意图是用于所有面向对象的开发方 法、生命循环阶段、应用程序域
UML 应用的领域
信息系统:与数据库有关的系统 技术系统:处理和控制技术设备 嵌入式系统:控制像移动电话这样的设备以及家 用设备 分布式系统:使用面向对象机制分布在不同系统 上的数据库系统 系统软件:用于操作系统和编写系统实用程序 业务系统:与工作流有关的系统
用例符号

软件工程ppt课件完整版

软件工程ppt课件完整版
缺陷跟踪
使用缺陷管理工具对缺陷进行 跟踪,确保每个缺陷都得到处 理。
缺陷修复
开发人员对缺陷进行分析并修 复,然后提交给测试人员进行 验证。
回归测试
对修复后的缺陷进行回归测试 ,确保修复没有引入新的缺陷

质量评估与改进
质量评估
定期对软件产品的质量进行评估,包括功能 、性能、安全等方面。
过程改进
对软件开发过程进行持续改进,提高开发效 率和软件质量。
,提高代码的可读性和可维护性。
模块化开发
02
采用模块化开发方式,将系统划分为不同的模块进行开发,提
高开发效率和质量。
错误处理
03
对可能出现的错误进行充分的考虑和处理,包括异常捕获、日
志记录和错误提示等,确保系统的稳定性和可靠性。
05 测试与质量保证
测试类型及方法
功能测试对软件产品的各项功 进行验证,确保符 合需求和设计。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
敏捷开发模型
敏捷开发的主要实践包括:短周期迭代开发、 持续集成、持续交付和自动化测试等。
水平。
04
迭代增量模型的优点在于其能够逐步增加系统功能和 性能,降低项目风险,同时也能够及时发现并解决问 题。
03 需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领域 专家等进行沟通,明确需求背景
和范围。

最新版《软件技术基础》精品课件第六章 软件工程

最新版《软件技术基础》精品课件第六章 软件工程

6.2.1 结构化方法的体系结构
结构化方法的体系结构是: –结构化分析
(SA—Structured Analysis)
–结构化设计
(SD—Structured Design)
–结构化程序设计
(SP—Structured Programming)
一、结构化分析SA
SA方法是建立在自顶向下、逐步求精思想基础上的 分析方法,
一般分为三个阶段: 软件定义期
问题定义
软件开发期
软件维护期
可行性 研究
需求 分析
系统设计 详细设计 编码 测试
运行维 护
1.软件定义期 (1)问题定义
(1)这一阶段的主要目的是确定问题的性质、工 程目标以及规模。
(2)应力求使软件开发人员、用户以及使用部门
负责人对问题的性质、工程目标与规模取得完全一
致的看法。
(2)可行性研究
(1)可行性研究的目的是进一步研究问题定义 段所定义的问题是否可解。 ( 2 )通过复查系统的目标和规模,并研究现在正使 用的系统,从而导出试探性的解。 阶
(3)从各方面分析物理系统的可行性, 推荐一个可行
方案,供有关部门审批。
(3)需求分析
任务:根据可行性研究阶段提交的文档,
年。
简述:SD是一种用于概要设计的方法,与SA方法
配合使用。(SD是用于概要设计的方法)
目标:建立一个结构良好的软件系统。
SD方法的基础:是数据流程图,因此也称为面向
数据流的设计方法。
三、结构化程序设计SP
SP 的 思 想 最 早 是 由 著 名 计 算 机 科 学 家
E.W.Dijkstra提出的。
特别是从数据流图,对目标系统提出清晰、

精品课件-软件工程 -第6章

精品课件-软件工程 -第6章
第6章 软 件 设 计
第6章 软 件 设 计
6.1 软件设计过程 6.2 软件设计原则 6.3 体系结构设计 6.4 控制模型 6.5 模块分解 6.6 体系结构设计案例 本章小结 习题
1
第6章 软 件 设 计
6.1 软件设计过程 软件设计活动主要涉及体系结构设计、数据设计、接口设计 和组件(过程)设计等内容,是将需求分析模型转换为设计模型的 过程,如图6.1所示。
4
第6章 软 件 设 计
6.2.1 模块化和信息隐蔽 一个软件系统通常是一个能完成多种需求的复杂系统,例如
一个图书管理系统,需要能处理图书的分类登记、定购、借阅等 多种服务,而仅用一个模块来实现复杂系统是不现实的。经验表 明人类求解问题过程的复杂性和工作量与单个问题的规模密切相 关。
5
第6章 软 件 设 计
7
第6章 软 件 设 计
图6.2 模块与软件消耗
8
第6章 软 件 设 计
一个复杂的系统可以按层次分解为子系统(Subsystem),组 件/服务(Components/Services),类(Class)和函数(function), 它们构成了不同层次的系统模块,如图6.3所示。
9
第6章 软 件 设 计
设待求解的问题为X,则C(X) 和E(X) 分别为X相应的复杂性
和解决问题所需要的工作量。
设对于问题P1、P2,若有C(P1) > C(P2),则有E(P1) > E(P2)。 而另一方面,人类实践表明:
因此
C(P1 + P2) > C(P1) + C(P2)
E(P1 + P2) > E(P1) + E(P2)16来自第6章 软 件 设 计

软件工程第62章ppt课件

软件工程第62章ppt课件
告信息和动作确认的定制命令。 (4)交互方式应符合用户要求
交互方式既要灵活,又要与用户的输入要求符合。 不同类型的用户有不同的输入习惯,选择交互方式时 要考虑到这一点。 (5)屏蔽掉在当前动作的上下文中不适用的命令
这条准则可防止用户试图使用可能导致错误的动作。
xdu 10
第六章 详细设计
(6)让用户控制交互的流程 用户应可以跳过不必要的操作,改变动作次序或
西安电子科技大学课程
第六章 详细设计
(第二部分)
(主讲 刘志镜教授)
2004年7月6日 西安
xdu 1
第六章 详细设计
6.8 界面设计的一般准则
人--机界面设计离不开设计者的经验以及文献中 介绍的经验。下面分别从三个方面介绍由这些经验 形成的一般准则。
6.8.1 一般交互
(1)注意一致性 用固定的格式来构造菜单选项、命令输入、
xdu 20
第六章 详细设计
色彩的ቤተ መጻሕፍቲ ባይዱ征
各种色彩的象征:
红色: 热情、活泼、热闹、革命、温暖、幸福、吉祥、危险...…; 橙色:光明、华丽、兴奋、甜蜜、快乐...…; 黄色:明朗、愉快、高贵、希望、发展、注...…; 绿色: 新鲜、平静、安逸、和平、柔和、青春、安全、理想...…; 蓝色:深远、永恒、沉静、理智、诚实、寒冷..…; 紫色: 优雅、高贵、魅力、自傲、轻率......; 白色: 纯洁、纯真、朴素、神圣、明快、柔弱、虚无...... 灰色: 谦虚、平凡、沉默、中庸、寂寞、忧郁、消极...... 黑色: 崇高、严肃、刚健、坚实、粗莽、沉默、黑暗、罪恶、恐怖、
(1)尽量减少用户的输入动作可采用鼠标选取预先定义 的输入;用“滑动刻度”指定某一范围的输入数据,用 “宏”来代表复杂的输入数据集合。 (2)保证信息显示与数据输入的一致性

软件工程课件第6章

软件工程课件第6章

第6章 编码
二、存储器效率
采用结构化程序设计,将程序功能合理 分块,使每个模块或一组密切相关模块的程 序体积大小与每页的容量相匹配,可减少页 面调度、减少内外存交换,提高存储器效率。
在微型计算机系统中,存储器的容量对 软件设计和编码的制约比较大。因此要选择 可生成较短目标代码且存储压缩性能优良的 编译程序,有时需要采用汇编语言编程。
第6章 编码
三、程序设计语言的选择
程序设计语言的选择常从以下几个方面考虑:
(1)项目的应用领域 (2)算法与计算的复杂性 (3)数据结构的复杂性 (4)效率 (5)可移植性 (6)程序设计人员的水平 (7)构造系统的模式
第6章 编码
6.2 编码风格
编码风格实际上是一种编码原则。从 20世纪70年代以来,编码的目标从强调效 率转变到强调清晰。与此相应,编码风格 也从追求“聪明”和“技巧”,变为提倡 “简明”和“直接”。人们逐渐认识到, 良好的编码风格能在一定程度上弥补程序 设计语言存在的缺点。反之,如果不注意 编码风格,即使使用了结构化的现代语言, 也很难写出高质量的程序。
(2)好的设计可以提高效率。
(3)代码效率与代码的简单性相关。
第6章 编码
一、代码效率
(1)应先简化算术和逻辑的表达式。 (2)仔细研究嵌套的循环,以确定是否有语 句可以从内层往外移。 (3)尽量避免使用多维数组。 (4)尽量避免使用指针和复杂的列表。 (5)使用执行时间短的算术运算。 (6)即使语言允许,一般也不要采用混合数 据类型。 (7)尽量使用整数表达式和布尔表达式。
第6章 编码
一、代码文档化:指织形式。
二、数据说明:程序或模块在其可执行部分的前面 都集中了一些说明语句 ,出于阅读理解和维护的 要求,最好使其规范化,使说明的先后次序固定 。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

29.04.2020
西南交通大学信息科学与技术学院
结构化程序设计的核心内容
2、三种基本结构的共同点是单入口、单出口。
单入口单出口的控制结构,使得程序的静态结构和 它的动态执行情况一致。这样,使得程序容易阅读和理 解,也容易保证程序的正确性。
29前.0一4.页2020
西南交通大学信息科学与技术学院
国家软件开发工程规范的规定
BEGIN
1. 设置初值;
2. 处理24小时数据;
END
求精步骤1:设置初值。开始时一般不明确为哪些变量赋初值。
求精步骤2:计算结果是以小时为统计单位输出,它是重复执行24次的
循环结构。
局部数据结构设计:数据输入的方案选择:
1、处理前读入所有24小时数据,共1440个,需要大一个大的数组。
2、每次计算输入一个数据,这要保证对先前输入的数据不再使用。
国家软件开发工程规范规定“程序单元必须只有唯一的 入口,唯一的出口”有两个不同的概念:
1、以模块为对象,每个模块只有一个入口(通过模块名进 行调用),唯一的出口指通过模块的返回语句返回到调用语 句的下一个语句(对函数是返回到调用的位置)。
2、以五种语句的控制结构为对象,每种控制结构,以其 语句标志的第一个语句为入口语句,以语句控制范围的下一 个语句为出口到的语句。
3、自顶向下的程序验证。
29.04.2020的核心内容
二、使用三种基本控制结构来构造程序 1、任何程序都由顺序、选择和重复三种基本控制结构构造。
顺序实现了任何算法规约中的核心处理步骤; 条件允许根据逻辑情况选择处理方式; 重复提供了循环。 这些逻辑元素是结构化程序设计的基础。 根据逐步求精的思想,可用三种方式对模块过程进行分解: ①用顺序方式对过程分解,确定各部分的执行顺序; ②用选择方式对过程分解,确定各部分的执行条件; ③用循环方式对过程分解,确定某个部分进行重复的开始和 结束的条件。 对处理过程仍然模糊的部分反复使用以上分解,直到所有细 节确定下来。
29.04.2020
西南交通大学信息科学与技术学院
结构化程序设计的核心内容
一、自顶向下、逐步求精的设计方法。
1、软件结构设计的自顶向下、逐步求精的设计方法
把待开发的软件系统看作一个实体。首先把这个实体分解成 相互独立的几大功能,每个功能又可分解成逻辑上独立的子功 能,子功能又可再分解成更小的子功能。直到每个子功能都能 非常明确地用什么算法去实现为止。
空气污染物含量数据的统计处理程序
假定某工厂烟囱附近,在24小时中每分钟测量1次空气中
污染物含量。得到的数据以每100单位中所含污染物成分的值
给出。约定测量数据的正常值在1.00与9.00之间。
统计程序完成以下功能:
1、计算24小时内每小时平均污染物含量值。
2、记录每小时违章次数,污染物连续5次超过10.0为1次违
详细设计
根本目标:确定应该怎样具体地实现所要求的目标,即对 目标系统的精确描述。
根本任务:为软件结构中的每个模块选择算法和块内数据 结构,并用选定的某种表达工具给出清晰的描述。
详细设计结果基本上决定了最终的程序代码的质量。 衡量程序的质量,不仅要看其逻辑上是否正确,性能是否 满足要求,更主要的是看其是否容易阅读和测试。 详细设计的目标不仅仅是逻辑上正确地实现每个模块的功 能,更重要的是设计出的处理过程应该尽可能简明易懂。
章。当一次违章分布在两相邻小时之间时间段上时,这次违
章记数在后一小时上。
3、按以下形式列出污染物含量统计表。
小时 每小时平均值 违章次数
1
6.00
1
2
6.40
2
……
……
……
24
5.50
0
根据程序要求,算法主要处理24小时数据。
29.04.2020
西南交通大学信息科学与技术学院
算法:统计污染物含量数据
29.04.2020
西南交通大学信息科学与技术学院
结构化程序设计
1965年最早由E.W.Dijkstra提出:“可以从 高级语言中取消goto语句,程序的质量与程序中 所包含的goto语句的数量成反比”。
1966年,Bohm和Jacopini证明了,只用 “顺序”(Sequence)、“选择”(Condition Select) 和“循环”(Repetition)三种基本的控制结构就能 实现任何单入口单出口的程序。
1972年,IBM公司的Mills进一步提出,程 序应该只有一个入口和一个出口。
29.04.2020
西南交通大学信息科学与技术学院
结构化程序设计
结构程序设计是按照一组能提高程序 的可读性和易维护性的规则而进行的程序 设计方法,目的是为了使程序具有一种合 理的结构,以使程序易理解和维护,便于 保证和验证程序的正确性。
29.04.2020
西南交通大学信息科学与技术学院
结构化程序设计追求的目标
可理解性:程序正确性证明的关键是可理解性。程序
正确性证明并非指从公理出发的形式推导,而是指任何一种 有足够说服力的证明(形式的或非形式的),其实是一种理 解。
易维护性:测试只能证明错误存在,而不能证明错误不
存在。因此测试后投入运行的软件很可能还有错误。在运行 阶段要不断发现并改正错误。此外,用户还会不断提出新的 要求,系统的操作系统也可能发生变化。故投入运行的软件 需要不断修改、扩充,即需要维护。软件的易维护性一般包 括易阅读、易发现和改正错误、易修改扩充等含义。
经典的结构程序设计:使用顺序、IF_THEN_ELSE型分支 结构、DO_WHILE型循环结构。
扩展的结构程序设计:还允许使用DO_CASE型多分支结 构和DO_UNTIL型循环结构。
修正的结构程序设计:再允许使用BREAK(LEAVE)结构。
29.04.2020
西南交通大学信息科学与技术学院
逐步求精算法实例
2、模块算法设计的自顶向下、逐步求精方法。
把模块解决问题的求解方案分解为若干步抽象的计算操作, 并用一种描述工具按控制结构把这些抽象的计算操作描述出来。 对算法包含的抽象计算操作又可进一步精细化,如此循序渐进, 每一次的求精,使抽象的计算操作得到更进一步精细,计算操 作越来越明确,逐步向程序形式靠近。如此下去,直到算法中 包含的主要计算操作都能用伪代码表达为止。
相关文档
最新文档