软件工程导论ppt课件
合集下载
软件工程导论(PPT 69页)
程序员
程序员
程序员
分工: (1)主程序员:体系结构设计、关键部分详细设计,技术指导。 (2)后备程序员:协助主程序员,必要时接替主程序员。 (3)编程秘书:负责事务性工作。
吉林省精品课程:软件工程导论
CCUTSE 2013
45
12 人员组织
2.主程序员组
编程秘书
主程序员 后备程序员
程序员
程序员
程序员
③Boehm简单模型:
E=3.2×(KLOC)1.05
④ Doty模型(KLOC>9时):E=5.288×(KLOC)1.047
吉林省精品课程:软件工程导论
CCUTSE 2013
32
11.2 工作量估计
1.静态单变量模型
(2)面向FP的估算模型
①Albrecht&Gaffney模型: E=-13.39+0.0545FP
11
导言
软件的配置管理
软件配置项 程序
× 文档
数据
变化管理
标识变化 版本控制 变化控制
配置审计 报告
吉林省精品课程:软件工程导论
CCUTSE 2013
12
导言
能力成熟度模型:评价软件机构的软件过程能力成熟度的模型。
吉林省精品课程:软件工程导论
CCUTSE 2013
13
导言
能力成熟度模型:评价软件机构的软件过程能力成熟度的模型。
缺点: (1)主程序员:是高级程序员和优秀管理者的结合体,难找。 (2)后备程序员:期望与主程序员一样优秀,难找。 (3)编程秘书:专业人员厌烦事务工作,难找。
吉林省精品课程:软件工程导论
CCUTSE 2013
46
软件工程导论(全)张海藩PPT课件
与方法。
张
主要内容包括:软件工程概述、软件生存周期及软件
海 藩
需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开
发的整个过程。为了让学生真正得以实践,结合实际软件
开发项目,让学生从问题定义开始,经过可行性研究、需
求分析、概要设计、详细设计、编码直到最后要对自己开
软制品
张
(软体)
海
藩
软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。
2020/8/1
软
件 工
2、软件特点
程
导
. 软件是一种逻辑实体,而不是具体的物理实体
. 软件的生产与硬件不同
. 在软件的运行和使用期间,没有硬件那样的机械
张
磨损,老化问题
海
藩
失
磨合
修改点 失
实际曲线
张 海 藩
具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些
则不能?为什么有些软件能够在市场上成功
,而有些则受到冷落?由此可见,开发软件
并不一定难,难就难在如何开发有用的软件。
微软凌小宁博士
2020/8/1
支持管理: 标准检验程序 库管理程序
2020/8/1
软
件 工
2、按软件的规模进行划分
程 导
按开发软件所需的 人力、时间以及完成的
源代码行数。
张 海
类别
参加人数
研制期限 产品规模(源代码行数)
藩
微型
1
1-4周
约500行
软件工程导论张海藩PPT课件
A[I]=A[I]+A[T]; A[T]=A[I]-A[T]; A[I]=A[I]-A[T];
WORK=A[T]; A[T]=A[I]; A[I]=WORK;
第22页/共125页
例7:简单直接
for (i=1; i<=n; i++) for (j=1; j<=n; j++) V[i][j]=(i/j)*(j/i)
与机器码一样长
特殊情
C、C++等
数据库查询语言 4GL 程序生成器
图形语言
利用类英语的语句和命令 一条语句相当于5-10条机器码
要规定详细的算法过程
与自然语言接近 一条语句相当于30-50条机器码
非过程化问题定义 运行开销大,效率低
高级
第4页/共125页
选择语言的理想标准: • 为了使程序容易测试和维护以减少软件的总成本,所选用的高级语言应该有理想
的模块化机制,以及可读性好的控制结构和数据结构; • 为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现
程序中的错误; • 为了降低软件开发和维护的成本,选用的高级语言应该有良好的独立编译机制。
第5页/共125页
主要的实用标准: • 系统用户的要求 • 可以使用的编译程序 • 可以得到的软件工具 • 工程规模 • 程序员的知识 • 软件可移植性要求 • 软件的应用领域
例5:一行一条语句
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;
《软件工程导论》PPT课件-第4章-总体设计
软件需求分析阶段:(抽象)
软件的解决方案是使用问题环境中的术语来描述。
总体设计—详细设计阶段:(抽象—具体)
将面向问题的术语与面向实现的术语结合起来来描述 解决方法,直到产生源程序时到达最低抽象层次。
4.2 软件结构设计原理
4.2.2 逐步求精
为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。
4.2 软件结构设计原理
4.2.4 模块独立性
耦合类型
无直接耦合—数据耦合—控制耦合—特征耦合—公共耦合—内 容耦合
低——————————————————————高
4.2 软件结构设计原理
4.2.4 模块独立性
无直接耦合:指两个模块之间没有直接的关系,它们分别从 属于不同模块的控制与调用,它们之间不传递任何信息。
第4章 总体设计
➢ 4.1 总体设计的目标及任务 ➢ 4.2 软件结构设计原理 ➢ 4.3 软件结构设计工具 ➢ 4.4 软件结构设计启发式规则 ➢ 4.5 结构化设计方法
4.1 总体设计的目标及任务
总体设计:
应用各种技术和原理,对设备、过程或系统做 出足够详细的定义,使之能够在物理上得以实现。
4.2 软件结构设计原理
4.2.4 模块独立性
模块独立是模块化、抽象、信息隐藏和局部化概 念的直接结果。
模块独立:每个模块完成一个相对独立的特定子 功能,并且和其他模块之间的关系很简单。
4.2 软件结构设计原理
4.2.4 模块独立性
良好的模块独立性的重要性: 能使开发的软件具有较高的质量。 设计的模块可理解性、可维护性及可测试性好, 必然导致软件的可靠性高。 接口简单、功能独立的模块易开发,且可并行工 作,有效地提高了软件的生产率。
统划分成若干模块的过程。每个模块完成一个特定的子 功能,所有的模块按某种方法组装起来,成为一个整体, 完成整个系统所要求的功能。
软件的解决方案是使用问题环境中的术语来描述。
总体设计—详细设计阶段:(抽象—具体)
将面向问题的术语与面向实现的术语结合起来来描述 解决方法,直到产生源程序时到达最低抽象层次。
4.2 软件结构设计原理
4.2.2 逐步求精
为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。
4.2 软件结构设计原理
4.2.4 模块独立性
耦合类型
无直接耦合—数据耦合—控制耦合—特征耦合—公共耦合—内 容耦合
低——————————————————————高
4.2 软件结构设计原理
4.2.4 模块独立性
无直接耦合:指两个模块之间没有直接的关系,它们分别从 属于不同模块的控制与调用,它们之间不传递任何信息。
第4章 总体设计
➢ 4.1 总体设计的目标及任务 ➢ 4.2 软件结构设计原理 ➢ 4.3 软件结构设计工具 ➢ 4.4 软件结构设计启发式规则 ➢ 4.5 结构化设计方法
4.1 总体设计的目标及任务
总体设计:
应用各种技术和原理,对设备、过程或系统做 出足够详细的定义,使之能够在物理上得以实现。
4.2 软件结构设计原理
4.2.4 模块独立性
模块独立是模块化、抽象、信息隐藏和局部化概 念的直接结果。
模块独立:每个模块完成一个相对独立的特定子 功能,并且和其他模块之间的关系很简单。
4.2 软件结构设计原理
4.2.4 模块独立性
良好的模块独立性的重要性: 能使开发的软件具有较高的质量。 设计的模块可理解性、可维护性及可测试性好, 必然导致软件的可靠性高。 接口简单、功能独立的模块易开发,且可并行工 作,有效地提高了软件的生产率。
统划分成若干模块的过程。每个模块完成一个特定的子 功能,所有的模块按某种方法组装起来,成为一个整体, 完成整个系统所要求的功能。
软件工程导论课件全张海藩
软件性能优化
利用大数据技术分析和监控软件系统的运行状态,发现性能瓶颈并 进行优化,提高软件系统的稳定性和效率。
软件故障预测与预防
通过分析历史故障数据和系统日志,预测可能出现的故障并提前采取 预防措施,降低软件维护成本。
云计算在软件工程中的应用
云计算平台开发
基于云计算平台开发软件应用,实现资源的动态分配、弹性扩展和按需付费,降低软件开发和运 维成本。
和输出。
在瀑布模型中,软件开发过程被划分为需求分析、设 计、编码、测试和维护等阶段,每个阶段都必须在前
一个阶段完成后才能开始。
瀑布模型的优点是易于理解和管理,适用于需求稳定、 变更较少的情况。但是,它缺乏灵活性,难以应对需 求变更和快速变化的市场环境。
螺旋模型
螺旋模型是一种迭代式的软件开发过程 模型,它将开发过程划分为多个循环, 每个循环包括需求分析、设计、编码和 测试等阶段。
在敏捷开发模型中,开发团队会按照短周期(通常是一到四周)进行迭代开发,每个周期都会交付可用 的软件产品。
敏捷开发模型的优点是能够快速响应变化、降低开发风险、提高软件质量。但是,它需要更多的沟通和 协作能力,同时也需要更加灵活的管理方式。
其他过程模型
除了上述三种常见的软件开发过程模 型外,还有其他一些过程模型,如原 型模型、增量模型等。
缺陷分析
对缺陷进行分析,找出根本原因,避免类似缺陷再次出现。
质量评估指标
缺陷密度
衡量软件质量的重要指标,表示每千行代码 中的缺陷数。
回归测试通过率
评估软件修复缺陷后,原有功能是否正常的 重要指标。
测试覆盖率
评估测试用例对软件产品功能的覆盖程度。
用户满意度
反映用户对软件产品质量和服务的满意程度。
利用大数据技术分析和监控软件系统的运行状态,发现性能瓶颈并 进行优化,提高软件系统的稳定性和效率。
软件故障预测与预防
通过分析历史故障数据和系统日志,预测可能出现的故障并提前采取 预防措施,降低软件维护成本。
云计算在软件工程中的应用
云计算平台开发
基于云计算平台开发软件应用,实现资源的动态分配、弹性扩展和按需付费,降低软件开发和运 维成本。
和输出。
在瀑布模型中,软件开发过程被划分为需求分析、设 计、编码、测试和维护等阶段,每个阶段都必须在前
一个阶段完成后才能开始。
瀑布模型的优点是易于理解和管理,适用于需求稳定、 变更较少的情况。但是,它缺乏灵活性,难以应对需 求变更和快速变化的市场环境。
螺旋模型
螺旋模型是一种迭代式的软件开发过程 模型,它将开发过程划分为多个循环, 每个循环包括需求分析、设计、编码和 测试等阶段。
在敏捷开发模型中,开发团队会按照短周期(通常是一到四周)进行迭代开发,每个周期都会交付可用 的软件产品。
敏捷开发模型的优点是能够快速响应变化、降低开发风险、提高软件质量。但是,它需要更多的沟通和 协作能力,同时也需要更加灵活的管理方式。
其他过程模型
除了上述三种常见的软件开发过程模 型外,还有其他一些过程模型,如原 型模型、增量模型等。
缺陷分析
对缺陷进行分析,找出根本原因,避免类似缺陷再次出现。
质量评估指标
缺陷密度
衡量软件质量的重要指标,表示每千行代码 中的缺陷数。
回归测试通过率
评估软件修复缺陷后,原有功能是否正常的 重要指标。
测试覆盖率
评估测试用例对软件产品功能的覆盖程度。
用户满意度
反映用户对软件产品质量和服务的满意程度。
软件工程导论全课件
可通过技术复审检查OOA和OOD的 模型的正确性和一致性。
2 面向对象测试策略 面向对象程序的特点对软件测试的影响:
•信息隐蔽对测试的影响 •封装和继承对测试的影响
•单元和集成测试策略必须有很大的改变 •测试用例的设计必须考虑OO软件的特
征
(1). OO的单元测试
单元概念的变化—封装的类或对象作为最小 的可测试单位
子类继承或重载的父类成员函数的测试问题
•对父类的测试是否能够照搬到子类?
上例中: Base∷Redefined() 和Derived ∷Redefined() 已 是两个不同的成员函数, 照理应对Derived ∷Redefined() 重新进行测试分析, 设计测试用例,但由于它们的相似性,只 需在Base∷Redefined() 的测试要求和测试用例上添加对 Derived ∷Redefined() 的新的测试要求和增补相应的测试
4.对每个消息,确定下一层被调用的操作,并把这些操作 结合进测试序列中.
ATM ATM User Interface verifyStatus depositStatus dispense Case printAccent Stat readCardInfo getCaseAmnt
cardInserted password deposit withdraw accentStatus terminate
在限制 下还是 存在操 作的许 多排列
系统对操作的限制: •必须在应用其它操作之前先打开帐户,在完成了 全部操作之后才能关闭帐户; •……
一个account类实例的最小行为历史包括下列操作: open . setup . deposit . withdraw . close account类的最小测试序列 大量的其它行为可能在下面序列中发生: open . setup . deposit . [deposit | withdraw | balance | summarize | creditLimit] n . withdraw . close
软件工程导论PPT课件-第11章-面向对象的分析
11.2 静态结构建模
一对一的关联。一个类的实例对象只能和另一个类的惟一对象发 生联系。
拥有
一对多关联。一对多关联是指有关联关系的两个类之间,从一个 方向上看是一对多关联,从另一个方向上看则是一对一关联。
拥有
11.2 静态结构建模
多对多关联。多对多关联是指有关联关系的两个类之间,从两个 方向上都是一对多的关联。
象模型、用户界面
系统设计
分析模型 动态模型 用例模型、对象模型
对象设计
面向对象分析过程
11.2 静态结构建模
面向对象的分析分为静态分析和动态分析两种,静态分析 是分析静态模型(类图或对象图);动态分析是分析动态 模型(顺序图或协作图)
静态结构建模确定系统的逻辑或物理部分,以及如何把它 们连接在一起,它描述了如何构建和初始化系统。
第11章 面向对象的分析
➢ 11.1 面向对象分析的任务 ➢ 11.2 静态结构建模 ➢ 11.3 动态结构建模
第11章 面向对象的分析
分析的过程都是提取系统需求、开发分析模型的过程。 这个阶段的工作既需要开发技术人员的参与,又需要 客户、未来软容,这就是理解、表达和验证。 分析过程得出的最重要的文档资料是软件需求规格说
11.2 静态结构建模
(5)完善初始的静态结构模型
- 识别继承关系 检查已经提交的类对象之间是否存在继承关系,如果存在继承,
则利用类之间的继承特征来改进类模型,从而提高类模型的可复用 性。可以从类的属性与操作及问题域中的可复用性两个角度来确定 可能存在的继承关系。 - 分解、合并系统中的类对象
对于系统中已有的类对象认真分析,检查是否有些类可以进一步 地分解为不同的类或者可以将一些类对象进行合并。
明(在面向对象分析中,主要由对象模型、动态模型 和功能模型组成)。
软件工程导论PPT课件
软件(software)是计算机系统中与硬件 (hardware)相互依存的另一部分,
它包括程序(program)、 相关数据(data)及其 说明文档(document)。
软件特指大型复杂的程序
2021
5
软件的发展
早期 •面向批处理 •有限的分布 •自定义软件
第二阶段 •多用户 •实时 •数据库 •软件产品
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
2021
21
围棋与软件工程的感想
围棋
围棋棋谱拿过来的时候, 大师问“后面应该走哪里?”
十个初级爱好者选择的落
点散布在棋盘各处…… 十个职业棋手说的落子点
都差不多,甚至包括后面的几 步……
这就是高手和低手的差
别……
2021
13
软件危机的原因
● 一方面是与软件本身的特点 有关
● 另一方面是由软件开发和维 护的方法不正确有关
2021
14
软件开发工作量分配比例
40% ~ 50%
10% ~ 20%
测试
程序
其它
2021
15
引入同一变化付出的代价随时间变化的趋势
2021
16
费用分配比例
55%~70%
软件维护 其它
2021
25
总之: 软件工程是应用计算机科学、 数学及管理科学等原理开发软 件的工程。它借鉴传统工程的 原则、方法,以提高质量,降 低成本为目的。
2021
26
软件工程是一门交叉学科
软件工程的主要研究内容
软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境
软件工程管理:软件管理学 软件经济学 软件心理学
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统流程图表达的是数据在系统各部件之间流动 的情况,而不是对数据进行加工处理的控制过程, 是物理数据流图而不是程序流程图。
13
2.3.1 系统流程图常用符号
处理 输入∕输出 连接 换页连接 数据流
图2.1 基本符号 15
2.3.2 例子
例1:某装配厂有一座存放零件的仓库,仓库中现 有的各种零件的数量以及每种零件的库存量临界值 等数据记录在库存清单主文件中。当仓库中零件数 量有变化时,应该及时修改库存清单主文件,如果 哪种零件的库存量少于它的库存量临界值,则应该 报告给采购部门以便定货,规定每天向采购部门送 一次定货报告。
该装配厂使用一台小型计算机处理更新库存清单主 文件和产生定货报告的任务。零件库存量的每一次 变化称为一个事务,由放在仓库中的CRT终端输入 到计算机中;系统中的库存清单程序对事务进行处 理,更新存储在磁盘上的库存清单主文件,并且把 必要的定货信息写在磁带上。最后,每天由报告生 成程序读一次磁带,并且打印出定货报告。
户组织内行得通吗? (4)法律、社会效益可行性。
可行性研究的成本占预期工程总成本的5%~10%。
5
2.2 可行性研究过程
1. 复查系统规模和目标 对问题定义阶段书写的关于规模和目
标的报告书进一步确认。 2. 研究目前正在使用的系统
发现旧系统中存在的问题。
6
3. 导出新系统的高层逻辑模型
现
目
目
现
有
标
标
有 的
导出
系 统
设想
系 统
建造
系 统
物
的
的
的
理
逻
逻
物
系
辑
辑
理
统
模
模
系
型
型
统
7
(1) 通过对现实环境的调查, 获得当前系统的物理模型
购
书
购
领
申
书
发
书
学
请
教务科
单
会计室 票
出纳员
单
书 教材科
学
生
生
张
王
李
赵
学生购买教材的实际处理流程—当前系统物理模型
(2) 去掉具体模型中的非本质因素,抽取现 实系统的实质,抽象出当前系统的逻辑模型
学 购书单 审查并 发票
生
开发票
开领 领书单 学
书单
生
改进了的计算机教材管理系统的逻辑模型
4. 进一步定义问题 5. 导出和评价供选择的解法 6. 推荐行动方针 7. 草拟开发计划 8. 书写文档提交审查
12
2.3 系统流程图
系统流程图:是概括地描绘物理系统的传统工具。 基本思想:用图形符号以黑盒子形式描绘组成系统 的每个部件(程序,文档,数据库,人工过程等)。
第2章 可行性研究
2.1 可行性研究的任务 2.2 可行性研究过程 2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本/效益分析 2.7 小结 习题
1
问题定义:计划时期的第一个阶段。
目的是弄清用户需要计算机解决的问题 根本所在,以及项目所需的资源和经费。
主要任务是在向用户调查的基础上,编 写“系统目标与范围说明书”,作为可行 性研究的依据。
系统目标和范围说明书 2010年1月
1、项目:教材销售系统 2、问题:人工发售教材手续繁琐,且易 出错。
3、项目目标:建立一个高效、无差错的 微机销售系统。
4、项目范围:利用现有微型计算机,软 件开发费用不超过5000元。 5、初步想法:建议在系统中增加对缺书 的统计与采购功能。
6、可行性研究:建议进行大约10天的可 行性研究,研究费用不超过1000元。
购
书
购
申
书
发பைடு நூலகம்
学 请 审查 生 有效性
单
票
开发票
开领 书单
领
书
单
书学
发书 生
学生购买教材的逻辑模型
(3) 分析当前系统与目标系统的差别,
建立目标系统的逻辑模型
无效书单
学 购书单审查并 发票
生
开发票
开领 书单
领书单
发书
学 生
计算机教材管理系统的逻辑模型
(4) 对目标系统的逻辑模型做一些补充。
无效书单
24
图2.5 定货系统的基本系统模型
25
图2.6 定货系统的功能级数据流图
26
图2.7 把处理事务的功能进一步分解后的数据流图
27
例2:
无效书单
学 购书单
1 审查
发票
2 开领书
领书单
学
生
开发票
单
生
各班学生用书表 教材存量表
计算机售书系统的数据流图
数据流图的层次
对于大型软件系统,用一张数据流图表示所有数 据流、加工和数据存储过于庞大、复杂,难于理解, 分层数据流图可以有效解决复杂性的问题。
2.1 可行性研究的任务
可行性研究的目的不是解决问题,而 是确定问题是否值得去解决。
Why to do?
4
从四方面研究每种解法的可行性: (1) 技术可行性:使用现有的技术能实现这
个系统吗? (2) 经济可行性:这个系统的经济效益能超
过它的开发成本吗? (3) 操作可行性:系统的操作方式在这个用
1
2
3
2.1
2.2
2.3
3.1 3.2
19
2.4 数据流图(DFD,Data Flow Diagram)
数据流图(DFD):是一种图形化技术,它描绘信息流 和数据从输入移动到输出的过程中所经受的变换。
数据流图是系统逻辑功能的图形表示,即使不是专 业的计算机技术人员也容易理解它,因此是分析员 与用户之间极好的通信工具。
20
2.4.1 数据流图的常用符号 :
或
数据源点/终点
或
数据加工处理
或
数据存储(文件)
(静态数据)
或
数据流(动态数据)
数据流图:基本元素
举例:
客户
条目查 询请求
可用条目 查询结果
1
查询可 用条目
目录 产品条目 库存条目
数据流图:基本元素
源点/终点
数据加工处理
客户
条目查 询请求
可用条目 查询结果
1
查询可 用条目
目录 产品条目 库存条目
数据流
数据存储
2.4.2 例子
一家工厂的采购部每天需要一张定货报表,报表按 零件编号排序,表中列出所有需要再次定货的零件。 对于每个需要再次定货的零件应该列出下述数据: 零件编号,零件名称,定货数量,目前价格,主要 供应者,次要供应者。零件入库或出库称为事务, 通过放在仓库中的CRT终端把事务报告给定货系统。 当某种零件的库存数量少于库存量临界值时应该再 次定货。
16
图2.3 库存清单系统的系统流程图
17
例2:
购书单 终端
审查并 开发票
发票
学生
发书
各班学生 领书单 用书表
教材 存量表
开领书单
收书费 发票收讫
计算机售书系统流程图
2.3.3 分层
复杂的系统:分层次地描绘这个系统。
首先用一张高层次的系统流程图描绘系统总体概 貌,表明系统的关键功能。然后分别把每个关键功 能扩展到适当的详细程度,画在单独的一页纸上。
• 顶层DFD(也称关联图)描述整个系统的作用范围。 • 高层数据流和数据过程通常分解成许多中间层,一
13
2.3.1 系统流程图常用符号
处理 输入∕输出 连接 换页连接 数据流
图2.1 基本符号 15
2.3.2 例子
例1:某装配厂有一座存放零件的仓库,仓库中现 有的各种零件的数量以及每种零件的库存量临界值 等数据记录在库存清单主文件中。当仓库中零件数 量有变化时,应该及时修改库存清单主文件,如果 哪种零件的库存量少于它的库存量临界值,则应该 报告给采购部门以便定货,规定每天向采购部门送 一次定货报告。
该装配厂使用一台小型计算机处理更新库存清单主 文件和产生定货报告的任务。零件库存量的每一次 变化称为一个事务,由放在仓库中的CRT终端输入 到计算机中;系统中的库存清单程序对事务进行处 理,更新存储在磁盘上的库存清单主文件,并且把 必要的定货信息写在磁带上。最后,每天由报告生 成程序读一次磁带,并且打印出定货报告。
户组织内行得通吗? (4)法律、社会效益可行性。
可行性研究的成本占预期工程总成本的5%~10%。
5
2.2 可行性研究过程
1. 复查系统规模和目标 对问题定义阶段书写的关于规模和目
标的报告书进一步确认。 2. 研究目前正在使用的系统
发现旧系统中存在的问题。
6
3. 导出新系统的高层逻辑模型
现
目
目
现
有
标
标
有 的
导出
系 统
设想
系 统
建造
系 统
物
的
的
的
理
逻
逻
物
系
辑
辑
理
统
模
模
系
型
型
统
7
(1) 通过对现实环境的调查, 获得当前系统的物理模型
购
书
购
领
申
书
发
书
学
请
教务科
单
会计室 票
出纳员
单
书 教材科
学
生
生
张
王
李
赵
学生购买教材的实际处理流程—当前系统物理模型
(2) 去掉具体模型中的非本质因素,抽取现 实系统的实质,抽象出当前系统的逻辑模型
学 购书单 审查并 发票
生
开发票
开领 领书单 学
书单
生
改进了的计算机教材管理系统的逻辑模型
4. 进一步定义问题 5. 导出和评价供选择的解法 6. 推荐行动方针 7. 草拟开发计划 8. 书写文档提交审查
12
2.3 系统流程图
系统流程图:是概括地描绘物理系统的传统工具。 基本思想:用图形符号以黑盒子形式描绘组成系统 的每个部件(程序,文档,数据库,人工过程等)。
第2章 可行性研究
2.1 可行性研究的任务 2.2 可行性研究过程 2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本/效益分析 2.7 小结 习题
1
问题定义:计划时期的第一个阶段。
目的是弄清用户需要计算机解决的问题 根本所在,以及项目所需的资源和经费。
主要任务是在向用户调查的基础上,编 写“系统目标与范围说明书”,作为可行 性研究的依据。
系统目标和范围说明书 2010年1月
1、项目:教材销售系统 2、问题:人工发售教材手续繁琐,且易 出错。
3、项目目标:建立一个高效、无差错的 微机销售系统。
4、项目范围:利用现有微型计算机,软 件开发费用不超过5000元。 5、初步想法:建议在系统中增加对缺书 的统计与采购功能。
6、可行性研究:建议进行大约10天的可 行性研究,研究费用不超过1000元。
购
书
购
申
书
发பைடு நூலகம்
学 请 审查 生 有效性
单
票
开发票
开领 书单
领
书
单
书学
发书 生
学生购买教材的逻辑模型
(3) 分析当前系统与目标系统的差别,
建立目标系统的逻辑模型
无效书单
学 购书单审查并 发票
生
开发票
开领 书单
领书单
发书
学 生
计算机教材管理系统的逻辑模型
(4) 对目标系统的逻辑模型做一些补充。
无效书单
24
图2.5 定货系统的基本系统模型
25
图2.6 定货系统的功能级数据流图
26
图2.7 把处理事务的功能进一步分解后的数据流图
27
例2:
无效书单
学 购书单
1 审查
发票
2 开领书
领书单
学
生
开发票
单
生
各班学生用书表 教材存量表
计算机售书系统的数据流图
数据流图的层次
对于大型软件系统,用一张数据流图表示所有数 据流、加工和数据存储过于庞大、复杂,难于理解, 分层数据流图可以有效解决复杂性的问题。
2.1 可行性研究的任务
可行性研究的目的不是解决问题,而 是确定问题是否值得去解决。
Why to do?
4
从四方面研究每种解法的可行性: (1) 技术可行性:使用现有的技术能实现这
个系统吗? (2) 经济可行性:这个系统的经济效益能超
过它的开发成本吗? (3) 操作可行性:系统的操作方式在这个用
1
2
3
2.1
2.2
2.3
3.1 3.2
19
2.4 数据流图(DFD,Data Flow Diagram)
数据流图(DFD):是一种图形化技术,它描绘信息流 和数据从输入移动到输出的过程中所经受的变换。
数据流图是系统逻辑功能的图形表示,即使不是专 业的计算机技术人员也容易理解它,因此是分析员 与用户之间极好的通信工具。
20
2.4.1 数据流图的常用符号 :
或
数据源点/终点
或
数据加工处理
或
数据存储(文件)
(静态数据)
或
数据流(动态数据)
数据流图:基本元素
举例:
客户
条目查 询请求
可用条目 查询结果
1
查询可 用条目
目录 产品条目 库存条目
数据流图:基本元素
源点/终点
数据加工处理
客户
条目查 询请求
可用条目 查询结果
1
查询可 用条目
目录 产品条目 库存条目
数据流
数据存储
2.4.2 例子
一家工厂的采购部每天需要一张定货报表,报表按 零件编号排序,表中列出所有需要再次定货的零件。 对于每个需要再次定货的零件应该列出下述数据: 零件编号,零件名称,定货数量,目前价格,主要 供应者,次要供应者。零件入库或出库称为事务, 通过放在仓库中的CRT终端把事务报告给定货系统。 当某种零件的库存数量少于库存量临界值时应该再 次定货。
16
图2.3 库存清单系统的系统流程图
17
例2:
购书单 终端
审查并 开发票
发票
学生
发书
各班学生 领书单 用书表
教材 存量表
开领书单
收书费 发票收讫
计算机售书系统流程图
2.3.3 分层
复杂的系统:分层次地描绘这个系统。
首先用一张高层次的系统流程图描绘系统总体概 貌,表明系统的关键功能。然后分别把每个关键功 能扩展到适当的详细程度,画在单独的一页纸上。
• 顶层DFD(也称关联图)描述整个系统的作用范围。 • 高层数据流和数据过程通常分解成许多中间层,一