大连理工大学软件工程课件06。

合集下载

《软件工程》PPT课件

《软件工程》PPT课件
第四课时
第一章第四课时
喷泉模型 软件工程的任务与研究范围 软件开发的原则与开发方法
返回
喷泉模型
瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多 情况下往往是做不到的.螺旋模型试图克服瀑布模型的这一不足.SM 把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期, 系统就细化和完善一些.SM每—螺旋周期由六个步骤组成: <1> 确定任务目标: 根据初始需求分析项目计划,确定任务目标、可选 方案和限制.<2>选择对象:对各种软硬件设备、开发方法、技术、 开发工具、人员、开发管理等对象进行选择:并决定软件是进行研 制、购买还是利用现有的.<3>分析约束条件:软件开发的时间、经 费等限制条件.<4>风险分析:评估目标、对象、约束条件三者之间 的联系,列出可能出.现的问题及问题的严重程度等,把最重要的问 题作为尚未解决的关键问题的风险.<5>制定消除风险的方法:应有 详尽的说明和周密的计划,并估计可能产生的后果.依此来开发软件, 为制订下一周期的计划打下基础.<6>制定下一周期的工作计划:在 第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制 订消除风险的方法,初步开发原型1,制定系统生存周期计划.
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
软件开发的原则与方法
•软件开发的原则 • 自顶向下与模块结构 •软件开发的方法 •1.非自动形式的系统开发方法 •〔1〕系统流程图〔2〕结构分析法〔3〕结构化设计法 •〔4〕数据结构法〔5〕层次输入——处理——输出方法<HIPO法> • 2.半自动形式的系统开发方法 •〔1〕软件需求工程法〔2〕问题说明语言与分析法 • 3. 自动形式的系统开发方法 〔HOS方法〕:由计算机自动确定规 范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资 源分配工具RTA为工具.能自动进行分析、设计,工作量少、设计规范, 也能自动进行修改和维护.该方法适用于系统分析和设计.

大连理工软件学院软件工程课件

大连理工软件学院软件工程课件
软件工程
大连理工大学软件学院
第1章 软件工程学概述
• 1.1 软件危机 • 1.2 软件工程 • 1.3 软件生命周期 • 1.4 软件过程 • 1.5 小结
2019/10/28
大连理工大学软件学院
2
软件及软件工程
• 为什么要讲软件和软件工程
– 只有对软件和软件的开发过程有充分的认识, 才能更好的开发出过程受控、质量受控的软件 产品。
– 对于软件和软件开发过程的认识是困难的,存 在很多困惑,需要对此有深刻的认识。
2019/10/28
大连理工大学软件学院
3
一些对软件的偏见或误解
• 软件就是程序,软件开发就是编写程序。编完了 程序,就一切OK了。
• 掌握了最新的语言和工具,就能写程序了。 • 软件是灵活的,软件的修改很容易。 • 只要会编程,就能写软件,就是程序员;一个公
2019/10/28
大连理工大学软件学院
16
• 软件工程方法学
– 把在软件生命周期全过程中使用的一整套技术的集合称为 方法学(methodology),也称范型(paradigm)。
– 软件工程方法学三个要素:方法、工具和过程。
• 方法是完成软件开发各项任务的技术,回答“如何做”; • 工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什
18% 1955年
60% 1970年
72% 1975年
80% 1980年
85% 1985年
• 什么是软件危机
– 软件危机是指在计算 机软件的开发和维护 过程中所遇到的一系 列严重问题。
2019/10/28
大连理工大学软件学院
9
软件危机
• 软件危机的表现
– 软件成本日益增长 – 开发进度难以控制 – 软件质量差 – 软件维护困难 – 软件开发速度跟不上计算机发展速度

大连理工大学软件工程导论复习ppt课件

大连理工大学软件工程导论复习ppt课件
3
• 什么是软件危机
– 软件危机是指在计算机软件的开发和维护过程中所遇 到的一系列严重问题。
• 软件工程(IEEE)
– 1993年,提出软件工程 – 1) 将系统化、规范化、可量化的工程原则和方法,
应用于软件的开发、运行和维护。 – 2) 对1)中方法的理论研究。
4
• 软件工程基本原理 (开发与维护的指导)
• 数据字典的用途是供人查阅不了解的条目的解释。 提供分析设计过程中关于数据的描述。
• 数据字典与DFD相辅相成。 • 只有DFD和对应的元素的精确定义放在一起,才
能构成系统的规格说明。
26
定义数据的方法
• = 意思是等价于(或定义为) • + 意思是和(即,连接两个分量) • [ ]意思是或(即,从方括弧内列出的若干个分
仓库管理员
处理事务
数据流
数据存储
定货报表
定货信息
零件编号 零件名称
(见定货报表) 库存清单
定货数量
零件编号
目前价格
库存量
主要供应者
库存量临界值
次要供应者 事务
零件编号* 事务类型
数量*
24
把处理事务的功能进一步分解后的数据流图
25
• 数据字典是关于数据的信息的集合,即对DFD图 中包含的元素的定义的集合。
含义
由数据A和B共同变换为数据C
由数据A变换为数据B和数据C 由数据A或B,或者数据A和B共同变换为数据 C 由数据A变换为数据B或C,或者同时变换为数 据B和C 由数据A或B其中之一变换为数据C
由数据A变换为数据B或C其中之一
23
组成数据流图的元素可以从描述问题的信息中提取
源点/终点
处理

2024版《软件工程介绍》PPT课件

2024版《软件工程介绍》PPT课件

《软件工程介绍》PPT课件CONTENTS •软件工程概述•软件开发过程模型•需求分析与管理•系统设计与实现•测试与质量保证•项目管理与团队协作•案例分析与实践经验分享软件工程概述01定义软件工程是指导计算机软件开发和维护的工程学科,采用工程化的概念、原理、技术和方法来开发与维护软件。

发展历史从20世纪60年代的软件危机开始,软件工程逐渐受到重视并发展成为一个独立学科。

主要里程碑包括瀑布模型、螺旋模型、敏捷开发等方法和理念的出现,以及CMMI等评估标准的制定。

目标在给定成本、进度的前提下,开发出具有有效性、可用性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。

原则模块化、抽象化、信息隐藏、局部化、一致性、完整性、可验证性等。

关注点关注软件开发过程中的需求分析、设计、编码、测试和维护等各个阶段。

软件工程重要性提高软件质量通过规范化的开发流程和管理方法,减少软件缺陷,提高软件质量。

降低开发成本通过复用已有的软件组件和开发经验,减少开发时间和成本。

增强软件可维护性通过模块化设计和良好的文档支持,方便软件的后期维护和升级。

适应需求变化通过灵活的开发方法和工具支持,快速响应和适应需求变化。

软件开发过程模型02线性顺序瀑布模型按照线性顺序进行软件开发,包括需求分析、设计、编码、测试和部署等阶段。

严格阶段划分每个阶段都有明确的输入和输出,以及相应的评审和验证活动,确保阶段间的正确过渡。

易于管理瀑布模型提供了清晰的开发计划和进度安排,便于项目管理和资源分配。

瀑布模型030201螺旋模型采用迭代方式进行软件开发,每个迭代周期包括需求分析、设计、编码和测试等活动。

螺旋模型强调风险管理,通过不断评估和调整项目计划来降低风险。

螺旋模型允许在开发过程中根据实际情况调整项目需求和目标,提高了项目的适应性。

迭代开发风险驱动灵活性强螺旋模型03快速响应变化敏捷开发能够迅速响应需求变化,及时调整项目计划和开发策略。

软件工程课件(全)

软件工程课件(全)

03
识别项目中的关键路径,确保项目按计划进 行
04
及时调整项目计划,应对项目变更和不确定 性
风险管理策略制定
识别项目中的潜在风险, 包括技术风险、市场风险、 资源风险等
制定相应的风险应对策略 和措施,如风险规避、减 轻、转移和接受等
评估风险的概率和影响程 度,制定风险优先级列表
监控风险状态,及时调整 风险管理计划
质量改进
根据质量评估结果,制定相应的改进措施, 如优化性能、增强安全性等。
经验教训总结
对测试过程中遇到的问题进行总结,形成经 验教训,为后续项目提供参考。
06
项目管理与团队协作
项目计划制定与监控
01 制定详细的项目计划,包括项目目标、范围 、时间表、资源需求、成本估算等
02 设立项目里程碑,对项目进度进行阶段性监 控
开发方向。
持续集成和测试
03
迭代增量模型强调持续集成和测试的重要性,以确保每个迭代
周期都能交付高质量的软件产品。
03
需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领 域专家等进行沟通,收集原始
需求。
需求分类
将收集到的需求按照功能、性 能、安全、易用性等方面进行 分类。
需求筛选
去除重复、模糊、不切实际的 需求,确保需求的准确性和可 行性。
处理变更请求
根据实际情况,决定是否接受变更请求,并 制定相应的实施计划。
跟踪和验证变更
对实施的变更进行跟踪和验证,确保变更的 正确性和完整性。
04
系统设计与实现
系统架构设计
分层架构
将系统划分为表示层、业务逻辑层和数据访问层,实现高内聚、 低耦合的设计。

大连理工大学软件工程课件06综述

大连理工大学软件工程课件06综述

2019/1/23
大连理工大学软件学院
11
6.2.1 设计问题


在设计用户界面的过程中,几乎总会遇到下述 四个问题:
系统响应时间


用户帮助设施
出错信息处理

命令交互
2019/1/23
大连理工大学软件学院
12
6.2.1 设计问题
1. 系统响应时间
• 系统响应时间指从用户完成某个控制动作(例如, 按回车键或点击鼠标)到软件给出预期的响应(输
2019/1/23
大连理工大学软件学院
26
6.2.3 人机界面设计指南
• 让用户控制交互流。用户应该能够跳过不必要的动作,改变 所需做的动作的顺序(在应用环境允许的前提下),以及在不 退出程序的情况下从错误状态中恢复正常。 • 对所有输入动作都提供帮助(参见6.2.1节)。 • 消除冗余的输入。除非可能发生误解,否则不要要求用户指 定工程输入的单位;不要要求用户在整钱数后面键入00;尽
– 信息描述易于理解 – 提供恢复错误的建设性意见
– 指出错误可能导致的负面结果
– 多感官提示
2019/1/23
– 不能责怪用户大连理工大学软件学院
15
6.2.1 设计问题
面向用户的错误信息
面向系统的错误信息
2019/1/23
大连理工大学软件学院
16
6.2.1 设计问题
4. 命令交互


命令行曾经是用户和系统软件交互的最常用方式,而且也曾 经广泛地用于各种应用软件中。

• 用户界面设计是一个迭代的过程,也就是说,通常先创建设 计模型,再用原型实现这个设计模型,并由用户试用和评估, 然后根据用户的意见进行修改。

软件工程课程ppt课件

软件工程课程ppt课件
项目管理工具
如Microsoft Project、JIRA等,用于项目计划制定、 任务跟踪和团队协作。
团队协作与沟通
团队协作的重要性
建立高效协作机制,提 高团队整体效能。
沟通技巧
倾听、表达清晰、及时 反馈等,促进团队成员 之间的有效沟通。
协作工具
如Git、GitHub、 Confluence等,支持版 本控制、代码托管和团 队协作。
软件工程课程ppt课 件
目录
• 软件工程概述 • 软件需求分析 • 软件设计 • 软件开发 • 软件测试与质量保证 • 软件维护与演化 • 软件工程管理与实践
01
软件工程概述
软件工程的定义与发展
定义
软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
发展历程
从20世纪60年代的软件危机开始,软件工程逐渐发展成为一个独立的学科领域,经历了瀑布模 型、螺旋模型、敏捷开发等不同的开发模式和方法。
阐述持续集成和持续交付的概念、原 理和实践,以及如何通过持续集成和 持续交付来加速软件的演化过程并提 高软件的质量。
07
软件工程管理与实践
项目管理方法与工具
传统项目管理方法
包括瀑布模型、螺旋模型等,强调项目计划、进度控 制和风险管理。
敏捷项目管理方法
如Scrum、Kanban等,注重快速响应变化、持续集 成和交付。
兼容性测试
测试软件在不同硬件、操 作系统、浏览器等环境下 的兼容性。
自动化测试
使用自动化工具进行软件 测试,提高测试效率和准 确性。
缺陷管理与跟踪
缺陷记录
详细记录缺陷信息,包括缺陷描述、重现 步骤、严重程度等。
缺陷分析
对缺陷进行统计分析,找出缺陷产生的原 因和规律。

《软件工程全》课件

《软件工程全》课件
软件质量的标准
软件质量的标准包括ISO 9126、 McCall等,它们从不同角度对软 件质量进行了描述和评价。
单元测试
单元测试的概念
单元测试是对软件中的最小可测试单 元进行检查和验证。在面向对象编程 中,单元测试通常是对类的方法进行 测试。
单元测试的方法
单元测试的方法包括白盒测试和黑盒 测试。白盒测试需要了解内部实现细 节,而黑盒测试只需要关注输入和输 出结果。
软件工程的定义
详细描述
软件工程是一门研究软件开发和维护的学科,它采用工程化的方法和技术,将 系统化的开发过程、先进的开发技术和高效的开发管理结合起来,以高效地开 发高质量的软件产品。
软件工程的历史与发展
总结词:软件工程的历史与发展
详细描述:软件工程的历史可以追溯到20世纪60年代 。最初,软件开发主要依靠程序员的手动编程,随着软 件规模的扩大和复杂性的增加,软件开发过程中的问题 逐渐显现。为了解决这些问题,软件工程的概念和方法 逐渐形成和发展。随着时间的推移,软件工程不断演进 和完善,形成了许多经典的软件开发模型和方法论,如 瀑布模型、螺旋模型、迭代模型等。同时,随着技术的 不断发展,软件工程也在不断引入新的技术和方法,如 敏捷开发、持续集成和持续交付等。
系统测试与验收测试
系统测试的概念
系统测试是对整个系统的功能、性能 和其他方面进行全面的测试,以确保 系统能够满足用户需求。
验收测试的概念
验收测试是用户对系统的最终验收过 程,其目的是确认系统是否符合合同 或需求规格说明中的要求。
PART 06
软件维护与演化
软件维护的定义与分类
定义
软件维护是在软件运行过程中,为了改正错误、满足新的需求、改进性能等目的,对软件进行的修改和调整。

软件工程学教程PPT课件

软件工程学教程PPT课件
(CI/CD)、监控与日志分析等。
04
DevOps实践案例
分享一些成功实施DevOps的案例 ,并分析其成功因素和经验教训

THANKS
感谢观看
持续集成与持续交付的实践
自动化构建、自动化测试、自动化部署等。
06
软件工程实践与方法论
软件开发团队组建与管理
团队角色与职责
明确项目经理、开发人员、测试 人员、文档编写人员等角色及其
职责。
团队沟通与协作
建立有效的沟通机制和协作流程, 确保团队成员之间的信息交流畅通。
团队培训与成长
提供必要的培训和发展机会,促进 团队成员的技能提升和职业发展。
编写详细的测试报告,包括测试覆盖 率、缺陷统计、性能分析等,为软件 质量评估提供依据。
05
软件维护与演化
软件维护概述
1 2
软件维护的定义
在软件已经交付使用之后,为了改正错误、改进 性能或其他属性、适应新的环境等而进行的修改 活动。
软件维护的分类
改正性维护、适应性维护、完善性维护和预防性 维护。
3
利用自动化测试工具编写和执行测试用例, 提高测试效率和准确性。
测试用例设计与执行
用例设计
根据需求文档和设计文档设计测试用 例,包括正常场景和异常场景的测试。
用例执行
按照测试用例的步骤执行测试,记录 测试结果并与预期结果进行对比。
缺陷管理
发现缺陷后提交缺陷报告,并跟踪缺 陷的修复过程和结果验证。
测试报告
软件工程学教程ppt课件
• 软件工程学概述 • 软件开发过程与模型 • 需求分析与设计 • 编码与测试 • 软件维护与演化 • 软件工程实践与方法论
01
软件工程学概述

2024年度软件工程ppt课件完整版

2024年度软件工程ppt课件完整版

2024/3/24
40
遗留系统现代化改造
遗留系统分析
分析遗留系统的结构、功能和性能等问题。
现代化改造策略
制定针对遗留系统的现代化改造策略,如重 构、替换或集成等。
改造实施与测试
实施改造策略,并对改造后的系统进行测试 以确保其正确性。
2024/3/24
版本迁移与数据迁移
将旧版本的数据迁移到新版本,确保数据的 完整性和一致性。

评审测试用例
组织相关人员对测试用例进行 评审,确保测试用例的准确性
和完整性。
执行测试用例
按照测试用例的步骤和预期结 果,执行测试用例并记录测试
结果。
缺陷管理
对发现的缺陷进行记录、跟踪 和修复,确保软件质量。
2024/3/24
25
缺陷跟踪与修复
缺陷记录
详细记录缺陷的描述、重现步 骤、严重程度等信息。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
2024/3/24
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
11
控。
2024/3/24
评估变更影响
对变更请求进行评估, 分析变更对系统范围、 进度和成本等方面的影
响。
处理变更请求
根据评估结果决定是否 接受变更请求,并与相
关干系人进行沟通。
17
更新文档和计划
将批准的变更请求更新 到需求规格说明书中, 并调整项目计划和资源
安排。
04 系统设计与实现

软件工程讲义软件工程电子书ppt课件

软件工程讲义软件工程电子书ppt课件
– 软件开发过程,是把用户要求转化为软件需 求,把软件需求转化为设计,用代码实现设 计并对代码进行测试,完成文档编制并确认 软件可以投入运行使用的过程。
12/360
1.2 软件工程学
• 为什么要引入软件过程?(1/2)
– 软件工作的范围
扩展到
只考虑 编写程序
涉及整个软件生存周期
– 软件的开发风险(规模、周期、复杂度)
36/360
2.2 需求分析的任务
• What(1/3)
– 需求:主要是在产品构建之前确定的系统必 须符合的条件或具备的功能,它们是关于系 统将要完成什么工作的一段描述语句,它们 必须经过所有相关人员的认可,其目的是彻 底地解决客户的问题。
– 需求文档
• 一组需求的集合 • 用户需求文档、系统需求文档和软件规约文档
户和维护用户信息等功能 – 管理购物车 – 实现结帐处理 – 查询订货情况 – 统计销售记录
26/360
案例-在线宠物商店(2/3)
• 问题(1/2):
– 从何开始? – 采用什么技术? – 需要多少时间? – 需要多少人?哪些角色?能否并行、协作地开发?
人力应该如何高效率的投入? – 开发计划? – 直接编码? – 需求? – 设计方案和模型? – 人机交互的界面? – 功能优先级?
27/360
案例-在线宠物商店(3/3)
• 问题(2/2):
– 开发风险? – 可扩展性? – 复用? – 设计模式? – 编码规范? – 需求变更? – 测试? – 开发过程? – 软件度量? – 最后期限?
28/360
Chapter 2 软件计划
• 2.1 软件问题定义及可行性研究 • 2.2 需求分析的任务 • 2.3 需求分析步骤 • 2.4 实体-关系图 • 2.5 数据流图 • 2.6 状态转换图 • 2.7 数据字典 • 2.8 需求分析的其他图形工具 • 2.9软件计划阶段文档

《软件工程》PPT课件

《软件工程》PPT课件

设计方法
E-R图、范式化、反范式化等
优化策略
索引优化、查询优化、存储优化等
04
软件测试与质量保证
测试策略与计划制定
确定测试目标
明确测试的目的和范围,确保测试工作有针对 性。
制定测试计划
根据测试目标,制定详细的测试计划,包括测 试资源、时间表、风险管理等。
选择测试方法
根据软件特点和测试需求,选择合适的测试方法,如黑盒测试、白盒测试、灰 盒测试等。
《软件工程》PPT课件
目录
• 引言 • 软件需求分析 • 软件设计与开发 • 软件测试与质量保证 • 软件维护与演化 • 软件工程管理与实践
01
引言
软件工程概述
软件工程定义
软件工程是一门研究计算机软件开发、 维护和管理的科学,旨在通过系统方 法、工具和技术来提高软件开发的效 率和质量。
软件工程的目标
B
C
D
持续改进与优化
在项目执行过程中,不断总结经验教训, 持续改进和优化项目管理流程和方法。
迭代开发与交付
通过短周期的迭代开发和交付,不断收集 用户反馈,及时调整产品方向和开发计划。
THANKS
感谢观看
回归测试
02
03
缺陷分析
在修复缺陷后,进行回归测试以 验证修复效果,确保软件质量得 到提升。
对缺陷进行统计分析,找出缺陷 产生的原因和规律,为改进软件 开发过程提供依据。
质量保证措施
代码审查 通过代码审查,检查代码是否符合编码
规范和设计要求,提高代码质量。
质量度量与监控 建立质量度量体系,对软件质量进行 度量和监控,及时发现和解决问题。
在给定成本和时间内,设计、实现和 维护软件系统。同时,软件工程也致 力于开发高质量、高可靠性和易于维 护的软件产品。

软件工程全ppt课件知识课件

软件工程全ppt课件知识课件

结束
2020/7/22




有用的软件



Who 为谁设计,用户是谁?
What 要解决哪些问题?
3W

Why 为什么要解决这些问题


Win CE1.0
2020/7/22

2.1 现状调查和问题的定义




目的:弄清楚用户要求计算机解决什么问题

任务:编写系统目标与规范说明书

系统目标与规范说明书
营业额

240
增长曲线


80
0.00016 1975
1989
2000
2020/7/22

1.3 软件生存周期 (SW life cycle)


工 业
把软件从产生、发展到成熟、直至衰亡为止


韩 静 萍
2020/7/22
软件生存周期模型(瀑布模型 Waterfall Model)



问题定义

程的成绩,并统计出每个考生三门课程的总成绩。按准考证号

的顺序打印出考生考试成绩单,分发给每个考生。各专业分别
将考生按成绩总分从高到低的次序排序,以便决定录取名单。
2020/7/22




2、系统结构图: 系统工程师用结构摸板开发的系统模型



用户界面处理
输 处理和控制功能 输


韩 萍



分配站 操作员

大 学
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 结构程序设计是尽可能少用GO TO语句的程序设计方法。最好 仅在检测出错误时才使用GO TO语句,而且应该总是使用前向 GO TO语句。
2019/11/10
大连理工大学软件学院
ห้องสมุดไป่ตู้
8
图6.2 其他常用的控制结构 (a) DO-UNTIL型循环结构;(b)多分支结构
2019/11/10
大连理工大学软件学院
• 常见的帮助设施有:
– 集成的:对用户工作内容敏感 – 附加的:联机用户手册 普遍认为:集成的优于附加的。
2019/11/10
大连理工大学软件学院
14
6.2.1 设计问题
3.
• 出错信息和警告信息,是出现问题时交互式系统 给出的“坏消息”。出错信息设计得不好,将向 用户提供无用的或误导的信息,反而增加了用户 的挫折感。
• 系统响应时间有两个重要属性:
– 长度:过长或过短都不好 – 易变性:系统响应时间相对于平均响应时间的偏差 稳定在1s的响应时间比从0.1s到2.5s变化的响应时间要好
2019/11/10
大连理工大学软件学院
13
6.2.1 设计问题
2.
• 几乎交互式系统的每个用户都需要帮助,当遇到 复杂问题时甚至需要查看用户手册以寻找答案。 大多数现代软件都提供联机帮助设施,这使得用
2019/11/10
大连理工大学软件学院
7
6.1 结构程序设计
• 这个经典定义过于狭隘,结构程序设计本质上并不是无GO TO 语句的编程方法,而是一种使程序代码容易阅读、容易理解的 编程方法。
• 大多数情况下,无GO TO的代码确实是容易阅读、容易理解, 但在某些情况下,为达到容易阅读和容易理解的目的,需要使 用GO TO语句。
用顺序+循环构成选择
if (exp) A;
else B;
flag=T
exp && flag
F
exp
F
T A
T A
flag=F
!(exp)
flag
F
T B
flag=F
大连理工大学软件学院
6
6.1 结构程序设计
• 结构程序设计 如果一个程序的代码块仅仅通过顺序、选择和循环 这三种控制结构进行连接,并且每个代码块只有一 个入口和一个出口,则称这个程序是结构化的。
– 设计模型中包含的动作、命令和系统状态的数量,预示了用户学习使 用该系统需要记忆的内容的多少。
• 属性
– 信息描述易于理解
– 提供恢复错误的建设性意见
– 指出错误可能导致的负面结果
– 多感官提示
2019/11/10 – 不能责怪用户大连理工大学软件学院
15
6.2.1 设计问题
面向系统的错误信息
面向用户的错误信息
2019/11/10
大连理工大学软件学院
16
6.2.1 设计问题
4.
• 命令行曾经是用户和系统软件交互的最常用方式,而且也曾 经广泛地用于各种应用软件中。
9
6.1 结构程序设计
• 经典的结构程序设计:只允许使用顺序、IF-THENELSE型分支和DO-WHILE型循环这三种基本控制结构。
• 扩展的结构程序设计:除了上述三种基本控制结构之外, 还允许使用DO-CASE型多分支结构和DO-UNTIL型循环 结构。
• 修正的结构程序设计:再加上允许使用LEAVE(或 BREAK)结构。(BREAK语句实际上是受限制的前向 GOTO语句)
比”
• Bohm和Jacopini——
– 只用三种基本的控制结构就能实现任何单入口、单出口的 程序
– “顺序”、“选择”、“循环”
2019/11/10
大连理工大学软件学院
4
图6.1 三种基本的控制结构
选择可以通过顺序和循环实现
2019/11/10
大连理工大学软件学院
5
if (exp) A;
2019/11/10
17
6.2.2 设计过程
• 用户界面设计是一个迭代的过程,也就是说,通常先创建设 计模型,再用原型实现这个设计模型,并由用户试用和评估, 然后根据用户的意见进行修改。
• 对用户界面设计模型的评估标准
– 系统及其界面的规格说明书的长度和复杂程度,预示了用户学习使用 该系统所需要的工作量。
– 命令或动作的数量、命令的平均参数个数或动作中单个操作的个数, 预示了系统的交互时间和总体效率。
• 现在,面向窗口的、点击和拾取方式的界面已经减少了用户 对命令行的依赖,但是,许多高级用户仍然偏爱面向命令的 交互方式。
• 在多数情况下,用户既可以从菜单中选择软件功能也可以通 过键盘命令序列调用软件功能。
• 命令形式:控制序列(Ctrl+P),功能键和输入命令
2019/11/10
大连理工大学软件学院
2019/11/10
大连理工大学软件学院
10
6.2 人机界面设计
• 人机界面设计是接口设计的一个组成部分。
–对于交互式系统来说,人机界面设计和数据设计、体系结 构设计、过程设计一样重要。
–近年来,人机界面在系统中所占的比例越来越大,在个别 系统中人机界面的设计工作量甚至占设计总量的一半以上。
• 人机界面的设计质量,直接影响用户对软件产品的 评价,从而影响软件产品的竞争力和寿命,因此, 必须对人机界面设计给以足够重视。
2019/11/10
大连理工大学软件学院
11
6.2.1 设计问题
• 在设计用户界面的过程中,几乎总会遇到下述 四个问题:
– 系统响应时间 – 用户帮助设施 – 出错信息处理 – 命令交互
2019/11/10
大连理工大学软件学院
12
6.2.1 设计问题
1.
• 系统响应时间指从用户完成某个控制动作(例如, 按回车键或点击鼠标)到软件给出预期的响应(输 出或做动作)之间的这段时间。
软件工程
大连理工大学软件学院
第6章 详细设计
• 目标——怎样具体地实现所要求的系统
– 目标系统的精确描述 – 设计代码的“蓝图”
• 决定代码质量
– 程序的读者——计算机和人 – 衡量程序质量:逻辑是否正确、性能是否满足
要求、是否容易阅读和理解
2019/11/10
大连理工大学软件学院
2
第6章 详细设计
• 6.1 结构程序设计 • 6.2 人机界面设计 • 6.3 过程设计的工具 • 6.4 面向数据结构的设计方法 • 6.5 程序复杂程度的定量度量
2019/11/10
大连理工大学软件学院
3
6.1 结构程序设计
• E.W Dijkstra——
– “可以从高级语言中取消GO TO语句” – “程序的质量与程序中所包含的GO TO语句的数量成反
相关文档
最新文档