软件工程导论课件(全)张海藩

合集下载

软件工程导论(全)张海藩PPT课件

软件工程导论(全)张海藩PPT课件

与方法。

主要内容包括:软件工程概述、软件生存周期及软件
海 藩
需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开
发的整个过程。为了让学生真正得以实践,结合实际软件
开发项目,让学生从问题定义开始,经过可行性研究、需
求分析、概要设计、详细设计、编码直到最后要对自己开
软制品

(软体)


软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。
2020/8/1

件 工
2、软件特点


. 软件是一种逻辑实体,而不是具体的物理实体
. 软件的生产与硬件不同
. 在软件的运行和使用期间,没有硬件那样的机械

磨损,老化问题



磨合
修改点 失
实际曲线
张 海 藩
具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些
则不能?为什么有些软件能够在市场上成功
,而有些则受到冷落?由此可见,开发软件
并不一定难,难就难在如何开发有用的软件。
微软凌小宁博士
2020/8/1
支持管理: 标准检验程序 库管理程序
2020/8/1

件 工
2、按软件的规模进行划分
程 导
按开发软件所需的 人力、时间以及完成的
源代码行数。
张 海
类别
参加人数
研制期限 产品规模(源代码行数)

微型
1
1-4周
约500行

软件工程导论课件全张海藩

软件工程导论课件全张海藩
韩 静
1.3 软件生存周期 (SW life cycle)
把软件从产生、发展到成熟、直至衰亡为止
11/8/2019

哈 尔 滨 工 业 大 学
韩 静
软件生存周期模型(瀑布模型 Waterfall Model)
计划 时期
开发 时期
问题定义
特点:
上一阶段的变换结果
可性行研究
是下一阶段的变换的
输入,相邻两个阶段
文档符号
人工操作
多文档符号
11/8/2019

哈 尔 滨 工 业 大 学
韩 静
流程符号
含义
显示器或终端机
流程符号
含义
控制流符号
磁盘机或数据库
流程开始与结束
11/8/2019

哈 尔 滨 工 业 大 学
韩 静
举例
库存清单系统流程图
事务 库存清单程序
定货信息
零件库
报告生成程序 定货报告 结束
11/8/2019
11/8/2019

哈 尔 滨 工 业 大 学
韩 静
举例:关于开发CAD系统的软件开发成本及效益分析
成本-效益(万元)
60
盈亏平衡点
40 该系统成本 20
该系统节省经费
0 12 3 4 5 年
投资回收期
---------成本及效益分析图
11/8/2019

哈 尔 滨 工 业 大 学
韩 静
2、技术可行性: 对系统的性能、可靠性、可维护性以及生产率
11/8/2019

哈 尔 滨 工 业 大 学
韩 静
各章学时安排
章 学时 章 学时 章 学时 章 学时

《软件工程导论》张海潘_第五版_清华_课后答案PPT课件

《软件工程导论》张海潘_第五版_清华_课后答案PPT课件
答 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) 爱 操作可行性 ——系统的操作方式在这个用户组织内行得通吗?
护士 护士
社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系
统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息
an.c 利息
2.3
打印利息

d清a单 ai
w. 某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别…等)输入进该系统,系统 ww 为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印 网 出机票给旅客。

旅客
取票通知 账单/票款
网 检验信 源息
检验信 息过程
重试信息

SC 图
件 用户执行模块 课

答 读用户命令
命令处理


案系统设置
现用/非现用
密码处理
答 控制器
系统
控制器

读系统 数据
建立配 置文件
读 密码
用文件 比较密码
密码输出 控制器
机票预订系统(参见习题 2 第 3 题)

显示信息 与状态
产生 无效信息
6
更新日志
日志
日志
7 产生病情 要求
报告
课件 事样务
数据 数据

D1 患者日志

6.数据定义 1、顺序 + 2、选择〔 | 〕3、重复
题 – 定货系统 P39 习 – 习题 2 第 5 题 P44 案 2-1 应该从哪些方面研究目标系统的可行性?

软件工程导论第3章需求分析(第五版)(张海藩编著)a.pptx

软件工程导论第3章需求分析(第五版)(张海藩编著)a.pptx
5
软件需求分析的基本任务是准确地回答“系统必须 做什么?”
3.1 需求分析的任务
3.1.1 确定对系统的综合要求
1.功能需求
这方面的需求指定系统必须提供的服务。通过需求分析应该划 分出系统必须完成的所有功能。
2.性能需求
性能需求指定系统必须满足的定时约束或容量约束,通常包括 速度(响应时间)、信息量速率、主存容量、磁盘容量、等方面 的需求。
软件不应该有的功能及性能。
9. 将来可能提出的要求
3.1.2 分析系统的数据要求
这是软件需求分析的一个重要任务。通常采用建立数据流 图、数据字典、数据模型的方法。
常用的图形工具有层次方框图HIPO和Warnier图,在本章 第3.7节中将简要地介绍这两种图形工具。
软件系统经常使用各种长期保存的信息,为减少数据冗余, 避免出现插入异常或删除异常,简化修改数据的过程,通 常需要把数据结构规范化(见3.5节)。
原则 3:考虑用户、分析员和实现者的交流
---对形式化和自然语言之间作出恰当的选择 --- 明确的理解最重要,不存在十全十美的软件规 格说明书
5. 接口需求
接口需求描述应用系统与它的环境通信的格式。常见 的接口需求有:用户接口需求;硬件接口需求;软件接 口需求;通信接口需求。
6. 约束
常见的约束有:精度;工具和语言约束;设计约束; 应该使用的标准;应该使用的硬件平台。
7、用户界面需求,系统环境
软件界面,多少台机器、机型等接口。
8、逆向需求
3.3.1 根据需求分析结果建立模型 模型:用于描述客观事物的图形。 根据需求分析过程中获取的用户需求,建立三种模型: 数据模型:E-R图,层次图,Warnier图 功能模型:数据流图 行为模型:状态转换图

软件工程_张海蕃

软件工程_张海蕃

应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和 方法,尽快消除在计算机系统早期发展阶段形成的 一些错误概念和做法。 应该开发和使用更好的软件工具。正如机械工具可 以“放大”人类的体力一样,软件工具可以“放大” 人类的智力。在软件开发的每个阶段都有许多繁琐 重复的工作需要做,在适当的软件工具辅助下,开 发人员可以把这类工作做得既快又好。如果把各个 阶段使用的软件工具有机地集合成一个整体,支持 软件开发的全过程,则称为软件工程支撑环境。
与软件开发和维护有关的许多错误认识和作法的形 成,可以归因于在计算机系统发展的早期阶段软件 开发的个体化特点。错误的认识和作法主要表现为 忽视软件需求分析的重要性,认为软件开发就是写 程序并设法使之运行,轻视软件维护等。
事实上,对用户要求没有完整准确的认识就匆忙着 手编写程序是许多软件开发工程失败的主要原因之 一。只有用户才真正了解他们自己的需要,但是许 多用户在开始时并不能准确具体地叙述他们的需要, 软件开发人员需要做大量深入细致的调查研究工作, 反复多次地和用户交流信息,才能真正全面、准确、 具体地了解用户的要求。对问题和目标的正确认识 是解决任何问题的前提和出发点,软件开发同样也 不例外。急于求成,仓促上阵,对用户要求没有正 确认识就匆忙着手编写程序,这就如同不打好地基 就盖高楼一样,最终必然垮台。事实上,越早开始 写程序,完成它所需要用的时间往往越长。
另一方面还必须认识到程序只是完整的软件产品的 一个组成部分,在上述软件生命周期的每个阶段都 要得出最终产品的一个或几个组成部分(这些组成 部分通常以文档资料的形式存在)。也就是说,一 个软件产品必须由一个完整的配置组成,软件配置 主要包括程序、文档和数据等成分。必须清除只重 视程序而忽视软件配置其余成分的糊涂观念。 作好软件定义时期的工作,是降低软件成本提高软 件质量的关键。如果软件开发人员在定义时期没有 正确全面地理解用户需求,直到测试阶段或软件交 付使用后才发现“已完成的”软件不完全符合用户 的需要,这时再修改就为时已晚了。

软件工程导论课件全张海藩

软件工程导论课件全张海藩
软件性能优化
利用大数据技术分析和监控软件系统的运行状态,发现性能瓶颈并 进行优化,提高软件系统的稳定性和效率。
软件故障预测与预防
通过分析历史故障数据和系统日志,预测可能出现的故障并提前采取 预防措施,降低软件维护成本。
云计算在软件工程中的应用
云计算平台开发
基于云计算平台开发软件应用,实现资源的动态分配、弹性扩展和按需付费,降低软件开发和运 维成本。
和输出。
在瀑布模型中,软件开发过程被划分为需求分析、设 计、编码、测试和维护等阶段,每个阶段都必须在前
一个阶段完成后才能开始。
瀑布模型的优点是易于理解和管理,适用于需求稳定、 变更较少的情况。但是,它缺乏灵活性,难以应对需 求变更和快速变化的市场环境。
螺旋模型
螺旋模型是一种迭代式的软件开发过程 模型,它将开发过程划分为多个循环, 每个循环包括需求分析、设计、编码和 测试等阶段。
在敏捷开发模型中,开发团队会按照短周期(通常是一到四周)进行迭代开发,每个周期都会交付可用 的软件产品。
敏捷开发模型的优点是能够快速响应变化、降低开发风险、提高软件质量。但是,它需要更多的沟通和 协作能力,同时也需要更加灵活的管理方式。
其他过程模型
除了上述三种常见的软件开发过程模 型外,还有其他一些过程模型,如原 型模型、增量模型等。
缺陷分析
对缺陷进行分析,找出根本原因,避免类似缺陷再次出现。
质量评估指标
缺陷密度
衡量软件质量的重要指标,表示每千行代码 中的缺陷数。
回归测试通过率
评估软件修复缺陷后,原有功能是否正常的 重要指标。
测试覆盖率
评估测试用例对软件产品功能的覆盖程度。
用户满意度
反映用户对软件产品质量和服务的满意程度。

软件工程导论之第3章-需求分析(第五版)(张海藩编著)-b-百度文库PPT课件

软件工程导论之第3章-需求分析(第五版)(张海藩编著)-b-百度文库PPT课件
- 注意分配会议时间,记录所有言论。
55
单击此处编辑2.母需版求标专题题样式讨论会
• 单击此处编辑母版副标题样式
56
单击此处编辑母版3.标问题卷样调式查
• 问卷调查
• 单-击可此用于处确编认假辑设母和收版集副统计标倾题向样数据式
- 问卷需要快速回答,允许匿名方式
• 存在问题
- 相关的问题不能事先决定 -问题背后的假设对答案造成偏颇,如这符合你的期望吗? -- 难以探索一些新领域 - 难以继续用户的模糊响应
• 单需击要此系处统编做辑什么母。版副标题样式
• 用例建模的步骤
- 确定系统的参与者 确定场景 - 确定系统用例 - 确定用例之间的关系 编写用例描述文档
60
青岛科技大学信息学院
3.3 分析建模与规格说明
3.3.1分析建模
-需求分析的步骤
1、问题识别
双方确定对问题的综合需求。基于项目有 关的软件的功能、性能、环境、用户界面、可 靠性、安全性、保密性、可移植性、可维护性、 等方面的需求。
3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
青岛科技大学信息学院
青岛科技大学信息学院
3.2 与用户沟通获取需求的方法
需求获取的关键在于通过与用户的沟通和交流,收集 和理解用户的各项要求。
3.2.(1) 访谈--访问用户和用户领域的专家 (2) 需求讨论会 (3) 问卷调查 (4) 现场考察
3.3.2 软件需求规格说明
青岛科技大学信息学院
3.3.2 软件需求规格说明
软件需求规格说明书,是需求分析阶段得 出的最主要的文档。
补充:需求分析阶段要编写文档:
1)编写“需求规格说明书” 2)编写初步用户手册 3)编写“确认测试计划”(为系统完成后确认验收的依 据). 4) 修改完善软件开发计划

软件工程导论课件之第4章 形式化说明技术(第五版)(张海藩编著)_百度文库

软件工程导论课件之第4章 形式化说明技术(第五版)(张海藩编著)_百度文库
实质上与上面的通俗定义是一样的。
第4章 形式化说明技术
前言 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结
4.1 概述
4.1.1 非形式化方法的缺点
用自然语言(典型的非形式化方法)书写的系统规 格说明书,可能存在矛盾、二义性、含糊性、不完 整性及抽象层次混乱等问题。
矛盾是指一组相互冲突的陈述。
矛盾是指一组相互冲突的陈述。(不同系统分析员定义范围不同) 二义性是指读者可以用不同方式理解的陈述。 含糊性,例如:这样的需求:“系统界面应该是对 用户友好的。”实际上,这样笼统的陈述并没有给 出任何有用的信息。 不完整性可能是在系统规格说明中最常遇到的问题 之一。(如规格中没有考虑登录失败的转向的页面,即考虑问题不全面) 抽象层次混乱是指在非常抽象的陈述中混进了一些 关于细节的低层次陈述。(总体设计中混入了详细设计,分不清他们)
第4章 形式化说明技术
前言 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结
形式化说明技术=形式化方法,概念等同。
软件生命周期包括哪几个阶段?
可行性研究
需求分析 总体设计 详细设计
编码和单元测试 描述“系统规格说明书 ”的方法,有哪些? 需求规格说明书
总体设计规格说明书
状态
事件/输入
图4.1 保险箱的状态转换图
图4.1是一个有穷状态机的状态转换图。状态转换 并不一定要用图形方式描述,表4.1的表格形式也 可以表达同样的信息。
转换函数:当前状态+事件/输入下个状态
从上面这个简单例子可以看出,一个有穷状态机包 括下述5个部分:状态集J、输入集K、由当前状态 和当前输入确定下一个状态(次态)的转换函数T、 初始态S和终态集F。对于保险箱的例子,相应的 有穷状态机的各部分如下。 状态集J:{保险箱锁定,A,B,保险箱解锁,报 警}。 输入集K:{1L,1R,2L,2R,3L,3R}。 转换函数T:如表4.1所示。(当前状态+事件/输入下个状态) 初始态S:保险箱锁定。 终态集F:{保险箱解锁,报警}。

软件工程导论课件之习题课1(第五版)(张海藩编著)

软件工程导论课件之习题课1(第五版)(张海藩编著)

工程项目 M 供应量 供应 N 零件 零件编号 零件名称 颜色 N
供应商 M 定购 定购量
重量
仓库管理系统的ER图
数据流图练习题:习题3.3
业务员
事务 银行储蓄 系统 密码
存单 储户 利息清单
储户
顶层数据流图
存款单 业务员 事务 1 接收 事务 取款单
2 处理 存款
存单 储户
存款信息
储户
密码
3 处理 取款
补充后的工资支付系统数据流图
(4) 细化数据流图
对“加工事务数据”的细化
(5) 书写正式文档 编写软件需求规格说明书。 (6) 技术审查和管理复审


技术审查:外聘审查小组的组长,会计和系统 分析员作为小组成员。 管理复审:财务科长和校长对费用支出和开发 进度,从管理角度进行审查。
结构化分析实例2:出卷系统
D4 报表
D2 工资表
D3 工资明细表
5 更新 分类账
会计
工资支付系统的数据流图
(4) 进一步确定系统规模和目标 (5) 导出供选择的解法

技术可行性 操作可行性 经济可行性


低成本:每两个月发一次工资 高成本:建立中央数据库,为开发完整的管理信息系统 做准备,工资支付系统是第一个要开发的子系统 中等成本:基本上复制现有系统的功能。
作业及解答(第3章)
E1 护士 F4警告信息、病情报告 F1要求报告 E1 护士
E2 病人
F2生理信号
P0 患者监护系统
F6日志
D1患者日志
F5安全范围
D2患者安全范围
E3 时钟
F3日前、时间


从问题陈述可知,本系统数据源点是“病人”和“护 士”,他们分别提供生理信号和要求病情报告的信息 。进一步分析问题陈述,从系统应该“定时记录病人 情况以形成患者日志”这项要求可以想到,还应该有 一个提供日期和时间信息的“时钟”作为数据源点。 从问题陈述容易看出,本系统的数据终点是接收警告 信息和病情报告的护士。 系统对病人生理信号的处理功能主要是“接收信号” 、“分析信号”和“产生警告信息”。 此外,系统还应该具有“定时取样生理信号”、“更 新日志”和“产生病情报告”的功能。 为了分析病人生理信号是否超出了医生规定的安全范 围,应该存储“患者安全范围”信息。此外,定时记 录病人生理信号所形成的“患者日志”,显然也是一 个数据存储。

软件工程_张海蕃

软件工程_张海蕃
普通高校本科计算机专业特色教材精选
张海藩 编著
软件工程导论 (第4版)
总 目 录
第1章 第2章 第3章 第4章 第5章 第6章 第7章 软件工程学概述 可行性研究 需求分析 形式化说明技术 总体设计 详细设计 实现
总 目 录
第8章 维护 第9章 面向对象方法学引论 第10章 面向对象分析 第11章 面向对象设计 第12章 面向对象实现 第13章 软件项目管理
(6) 软件成本在计算机系统总成本中所占的比例逐 年上升。由于微电子学技术的进步和生产自动化程 度不断提高,硬件成本逐年下降,然而软件开发需 要大量人力,软件成本随着通货膨胀以及软件规模 和数量的不断扩大而持续上升。美国在1985年软件 成本大约已占计算机系统总成本的90%。 (7) 软件开发生产率提高的速度,远远跟不上计算 机应用迅速普及深入的趋势。软件产品“供不应求” 的现象使人类不能充分利用现代计算机硬件提供的 巨大潜力。
应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和 方法,尽快消除在计算机系统早期发展阶段形成的 一些错误概念和做法。 应该开发和使用更好的软件工具。正如机械工具可 以“放大”人类的体力一样,软件工具可以“放大” 人类的智力。在软件开发的每个阶段都有许多繁琐 重复的工作需要做,在适当的软件工具辅助下,开 发人员可以把这类工作做得既快又好。如果把各个 阶段使用的软件工具有机地集合成一个整体,支持 软件开发的全过程,则称为软件工程支撑环境。
1983年IEEE为软件下的定义是:计算机程序、方 法、规则、相关的文档资料以及在计算机上运行程 序时所必需的数据。虽然表面上看来在这个定义中 列出了软件的5个配置成分,但是,方法和规则通 常是在文档中说明并在程序中实现的。 更重要的是,必须充分认识到软件开发不是某种个 体劳动的神秘技巧,而应该是一种组织良好、管理 严密、各类人员协同配合、共同完成的工程项目。 必须充分吸取和借鉴人类长期以来从事各种工程项 目所积累的行之有效的原理、概念、技术和方法, 特别要吸取几十年来人类从事计算机硬件研究和开 发的经验教训。

软件工程导论全套精品课件(第六版)(张海潘编著)

软件工程导论全套精品课件(第六版)(张海潘编著)

2
第1章 软件工程学概述
引言
3
主要内容
1.1 软件危机 1.2 软件工程 1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
主要内容
4
主要内容
1.1 软件危机 1.2 软件工程 1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
1.1 软件危机
1.1 软件危机
1.1.1 软件危机的介绍
14
件,把经过时间考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,以经济地开发出高质量的 软件并有效地维护它,这就是软件工程。
第1章 软件工程学概述
1.2.1
软件工程的介绍
软件工程
1968年在第一届NATO会议上曾经给出了软件工程的一个
15
早期定义:“软件工程就是为了经济地获得可靠的且能在 实际机器上有效地运行的软件,而建立和使用完善的工程 原理。” 1993年IEEE进一步给出了一个更全面更具体的定义: “软件工程是: ①把系统的、规范的、可度量的途径应用 于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。
与软件本身特点有关
软件不同于硬件, 1管理和控制软件 开发过程相当困 难。 软件在运行过程 2中不会因为使用 时间过长而被 “用坏 “如果运 行中发现了错误, 很可能是遇到了 一个在开发时期 引入的在测试阶 段没能检测出来 的错误。 软件不同于一般 3程序 ,它的一个 显著特点是规模 庞大 ,而且程序 复杂性将随着程 序规模的增加而 呈指数上升。
9
错误的认识和做法 6主要表现为忽视软 件需求分析的重要 性,认为软件开发 就是写程序并设法 使之运行,轻视软 件维护等

软件工程导论课件之第11章 面向对象设计(第五版)(张海藩编著)精品文档

软件工程导论课件之第11章 面向对象设计(第五版)(张海藩编著)精品文档







任务管理部分
11.1 面向对象设计的准则
所谓优秀设计,就是权衡了各种因素,从而使 得系统在其整个生命周期中的总开销最小的设 计。
对大多数软件系统而言,60%以上的软件费用 都用于软件维护,因此,优秀软件设计的一个 主要特点就是容易维护。
设计准则有6条。
1. 模块化
对象就是模块。它是把数据结构和操作这些数 据的方法紧密地结合在一起所构成的模块。
C
C
采用聚合取消继承
6. 对复杂关联的转化 把多对多关联转化为一对多关联
供货商 1..*
客户 1..*
供货商 1..*
客户 1..*
供货商 1
供需合同
买方 1..* 卖方 1..*
……
客户 1
把多元关联转化为二元关联
项目
语言
人员
项目 1
任务项
项目名 1..* 人员 *
语言 ……
1..*
分析结果重用:重用某个系统的分析模型。这 种重用特别适用于用户需求未改变,但系统体 系结构发生了根本变化的场合。
3. 典型的可重用软件成分 项目计划 成本估计 体系结构 需求模型和规格说明 设计 源代码 用户文档和技术文档 用户界面 数据 测试用例
11.3.2 类构件
层次组织(水平)
把软件系统组织成一个层次系统,每层是一个子系 统。上层在下层的基础上建立,下层为实现上层功 能而提供必要的服务。在上、下层之间存在客户供应商关系。
封闭式
开放式
块状组织(垂直)
把软件系统垂直地分解成若干个相对独立的、弱耦 合的子系统,一个子系统相当于一块,每块提供一 种类型的服务。

软件工程导论张海藩

软件工程导论张海藩

通常把编码和测试统称为实现。
编码就是把软件设计结果翻译成用某种程序设计语 言书写的程序。
软件测试在软件生命周期中横跨两个阶段。
通常在编写出每个模块之后就对它做单元测试。
在这个阶段结束之后,对软件系统还应该进行各 种综合测试,通常由专门的测试人员承担这项工 作。
通过测试发现错误之后还必须诊断并改正错误,这 就是调试的目的。调试是测试阶段最困难的工作。
7.1.2 编码风格
1. 程序内部的文档 恰当的标识符 适当的注解 程序的视觉组织
2. 数据说明 数据说明的次序应该标准化。
当多个变量名在一个语句中说明时,应该按字 母顺序排列这些变量。
如果设计时使用了一个复杂的数据结构,则应 该用注解说明用程序设计语言实现这个数据结 构的方法和特点。
3. 语句构造 不要为了节省空间而把多个语句写在同一行; 尽量避免复杂的条件测试; 尽量减少对“非”条件的测试; 避免大量使用循环嵌套和条件嵌套;
利用括号使逻辑表达式或算术表达式的运算次 序清晰直观。
4. 输入输出 对所有输入数据都进行检验; 检查输入项重要组合的合法性; 保持输入格式简单; 使用数据结束标记,不要要求用户指定数据的数目;
FOR I:=1 TO N-1 DO BEGIN T:=I; FOR J:=I+1 TO N DO IF A[J]<A[T] THEN T:=J; IF T<>I THEN BEGIN WORK:=A[T]; A[T]:=A[I]; A[I]:=WORK; END END;
例6:强调清晰性
A[I]=A[I]+A[T]; A[T]=A[I]-A[T]; A[I]=A[I]-A[T];
(3) 输入输出的效率
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-9
哈 尔 滨 工 业 大 学
课程的性质、目的与任务
软件工程是计算机科学与技术专业的一门专 业核心课程。通过本课程的学习,使学生掌握系 统的软件开发理论、技术和方法,使用正确的工 程方法开发出成本低、可靠性好并在机器上能高 效运行的软件,为今后从事软件开发和维护打下 坚实的基础。
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
韩 静 萍
《软件工程》
Software Engineering
2013-8-9
哈 尔 滨 工 业 大 学
韩 静 萍
在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有了不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。
修改点 失 效 率 磨合 调整 磨损 用坏 失 效 率 实际曲线
韩 静 萍
理想曲线
硬件失效率曲线
时间
软件失效率曲线
时间
2013-8-9
哈 尔 滨 工 业 大 学
. 软件的成本相当昂贵
成本%
软 件 复 杂 性
软件需求 差距 软件技术 时间 1950 1970 硬件 软件 1995 年份
韩 静 萍
1985
定货信息
2013-8-9
哈 尔 滨 工 业 大 学
人工销售教材 流程图
学生 申请购 书 购书证明
结束
到书库 领书 购书单 购书发票
2013-8-9
韩 静 萍
检索教材 帐本是 否有该 教材
开购书发 票和购 书单
哈 尔 滨 工 业 大 学
计算机售书系统流程图
学生 购书单 终端
1---学生各学期用书数据库 2---教材存量数据库
哈 尔 滨 工 业 大 学
微软企业文化宗旨部分内容
Wake up every day with a feeling of passion for the different technology will make in people’s Life. 韩 静 萍
每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。
哈 尔 滨 工 业 大 学
3、按软件开发划分
软 件 项 目 开 发 软 件 产 品 开 发
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
1.2 软件工程的概念及范畴
1、“软件工程” ----Software Engineering
于1968年 NATO 组织在 德国召开的一次会议上提出
韩 静 萍
研制期限
产品规模(源代码行数)
韩 静 萍
微型 小型 中型 大型 甚大型 极大型
1 1 2-5 5-20 100-1000 2000-5000
1-4周 1-6周 1-2年 2-3年 4-5年 5-10年
约500行 约2000行 5000-50000行 5万-10万行 100万行 1000万行
2013-8-9
微软凌小宁博士
2013-8-9
哈 尔 滨 工 业 大 学
韩 静 萍
我最大的心得是,一个产品一定要找到能够 真正适用的场合,不能只是为了技术而从事技术 为了研究而进行研究,却不管用户对你所研究的 技术和产品有没有需求。否则,无论你的技术是 多么优秀,多么先进,恐怕你的产品在市场上都 无法获得成功。
微软张益肇博士
1、系统概述 2、可行性分析 3、拟订开发计划 4、结论意见
2013-8-9
哈 尔 滨 工 业 大 学
2.3 可行性分析所需工具 (系流程图与系统结构图)
1、系统流程图: 是用来描述系统物理模型的一种传统工具。
流程符号 含 义 数据加工符号 输入/输出符号 流程符号 含 义 换页连接 磁带符号 文档符号 多文档符号
2013-8-9
哈 尔 滨 工 业 大 学
3、软件的演变(即从传统软件开发到现代软件开发)
程序
软件
软件产品 现代软件开发
传统软件开发
韩 静 萍
240 80 0.00016 1975
营业额 增长曲线
1989
2000
2013-8-9
哈 尔 滨 工 业 大 学
1.3 软件生存周期 (SW life cycle)
2013-8-9
哈 尔 滨 工 业 大 学
计划时期的工作流程图
开始 问题定义 可性行研究 可行否?
Y N
韩 静 萍
项目实施计划
终止项目的建议
结束
2013-8-9
哈 尔 滨 工 业 大 学
有用的软件
Who What 为谁设计,用户是谁? 要解决哪些问题? 为什么要解决这些问题
3W
韩 静 萍
Why
Win CE1.0
软制品 (软体)
韩 静 萍
软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。
2013-8-9
哈 尔 滨 工 业 大 学
2、软件特点
. 软件是一种逻辑实体,而不是具体的物理实体 . 软件的生产与硬件不同
. 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题
2013-8-9
哈 尔 滨 工 业 大 学
2、系统结构图: 系统工程师用结构摸板开发的系统模型
用户界面处理
输 入 处 理 处理和控制功能 输 出 处 理
软件技术的发展落后于需求
硬、软件成本比例的变化
2013-8-9
哈 尔 滨 工 业 大 学
3、软件的分类
1、按软件的功能进行划分
系 统 软 件 应 用 软 件 支 撑 软 件
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
支撑软件
一般类型: 文本编辑程序 文本格式化程序
支持需求分析: PSL/PSA问题描述语言 关系数据库管理系统
2013-8-9
哈 尔 滨 工 业 大 学
2.2 可行性研究与论证
其论证的焦点是:围绕着对系统开发的价值进行论证
1、经济可行性: 进行成本效益分析,评估项目的开发成本。
1、购置软、硬件及有关设备费用
韩 静 萍
基于计算 机系统的 成本由四 部分组成
2、系统开发费用
3、系统安装和维护费用
4、人员培训费用费用
2013-8-9
韩 静 萍
连接点符号 人工操作
哈 尔 滨 工 业 大 学源自流程符号含 义 显示器或终端机 磁盘机或数据库
流程符号
含 义 控制流符号 流程开始与结束
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
举例
库存清单系统流程图
事务 库存清单程序 零件库 报告生成程序 定货报告 结束
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
2.1 现状调查和问题的定义
目的:弄清楚用户要求计算机解决什么问题 任务:编写系统目标与规范说明书
系统目标与规范说明书
韩 静 萍
1、项目:教材销售系统 2、问题:人工销售教材手续繁琐,容易出错 3、项目目标:建立一个高效率、无差错的计算机教材销售系统 4、项目范围:利用现有的计算机,软件开发费用不得超过2000元 5、初步想法:建议在系统中增加对缺书的统计与采购功能 6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元
详细设计 编 码 测 运 行 时 期 试 运行与维护
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
原型模型(Prototype Model)
原型:是指模拟某种产品的原始模型
快速分析 和设计 加工 原型 原型 客户 评价原型 建造 原型
1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。 2、为了尽快向用户提供原型, 开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。
把软件从产生、发展到成熟、直至衰亡为止
韩 静 萍
2013-8-9
软件生存周期模型(瀑布模型 Waterfall Model)
哈 尔 滨 工 业 大 学
问题定义 计划 时期 可性行研究 需求分析 概要设计 开发 时期
特点: 上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。
2013-8-9
哈 尔 滨 工 业 大 学
课程主要内容
本课程比较全面、系统地介绍软件工程的概念、技术 与方法。 主要内容包括:软件工程概述、软件生存周期及软件 需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开 发的整个过程。为了让学生真正得以实践,结合实际软件 开发项目,让学生从问题定义开始,经过可行性研究、需 求分析、概要设计、详细设计、编码直到最后要对自己开 发的软件还要进行测试,这样一个软件开发过程,从而使 学生掌握软件开发的基本技能。
2013-8-9
韩 静 萍
哈 尔 滨 工 业 大 学
学习本课程的基本要求
本课程是继程序设计课程之后,对提高学生软件 开发能力有重要作用的一门课程。要求学生在学习本 课程前应掌握信息管理系统、数据结构、结构化程序 设计、面向对象程序设计以及程序设计方法论。
韩 静 萍
通过本课程的学习,为学生后期的毕业设计环节 奠定了良好的基础。
韩 静 萍
2013-8-9
哈 尔 滨 工 业 大 学
第二章 问题的定义与可性行研究
韩 静 萍
当我们在着手做任何一件工作以前,必须明确工 作的性质、任务,制定完成任务的计划,这是非常必 要的。同样对于软件产品的开发 ,显然也应该解决好 这样类似的问题,明确该软件产品开发的任务,以及 完成任务的价值从而制定出完成任务的计划。那么问 题的定义和可性行研究就是制定软件系统的计划的第 一步。 所以在软件工程中把这一步称为 计划时期
相关文档
最新文档