软件工程导论期末复习(二)

本文用书:《软件工程导论》 第六版 清华大学出版社

1.可行性研究的目的是什么?

2.应从哪些方面研究可行性?

3.如何画系统流程图?

4.如何画数据流图?

5.了解数据字典及成本效益分析。 

第二章 可行性研究

2.1可行性研究的任务

1.可行性研究的目的:

用最小的代价在尽可能短的时期内确定问题能否解决。

2.应从哪些方面研究可行性?

(1)技术可行性:现有技术能实现这个系统吗?

(2)经济可行性:系统所产生的经济效益能高于它的开发按成本吗?

(3)操作可行性:系统的操作方式的在这个用户组织内行得通吗?

2.2可行性研究过程

1.复查系统规模和目标;

2.研究目前正在使用的系统;

3.导出新系统的高层逻辑模型;

4.进一步定义问题;

5.导出和评价供选择的解法;

6.推荐行动方针;

7.草拟开发计划;

8.书写文档提交审查。

2.3 系统流程图(不太重要)

1.符号

 

 

2.例子

       某工厂有一个库房, 存放该厂生产需要的物品, 库房中的各种物品的数量及各种物品库存量临界值等数据记录在库存文件上,当库房中物品数量有变化时,应更新库存文件。若某种物品的库存量少于库存临界值,则报告采购部门以便其订货, 每天向采购部门送一份采购报告。

        库房可使用一台微机处理更新库存文件和产生订货报告的任务。物品的发放和接受称为变更记录,由键盘录入到微机中。 系统中的库存管理模块对变更记录进行处理,更新存储在磁盘上的库存文件,并把订货信息记录到联机存储中。每天由报告生成模块读一次订货信息,并打印出订货报告。下图给出了该系统的系统流程图。

 

2.4 数据流图(DFD图)

1.符号

 

2.例子 

2.5 数据字典

1.数据字典元素:

(1)数据流;

(2)数据流分量(数据元素);

数据元素组成数据的方式只有下述基本类型:

1.顺序:以确定的次序连接两个或多个分量;

2.选择:即从两个或多个可能的元素中选取一个;

3.重复:即把制定的分量重复零次或多次;

4.可选:即一个分量是可有可无的(重复零次或一次)

(3)数据存储;

(4)处理。

2.数据字典中的基本符号及其含义

 

2.6 成本效益分析

1.估算技术:

(1)代码行技术:把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来

(2)任务分解技术:通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。

(3)自动估计成本技术:必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。

2.成本效益分析的方法:

(1)货币的时间价值

假设年利率为i,现在投入P元,则n年后能够得到F:   

F=P*(1+i)^n

 例:假设购置一套应用软件投资20万元,预计可使用5年,每年直接经济效益9.6万元,年利率为5%,试计算投入/产出比。  

 解:考虑到货币的时间价值,5年的总体收入应当逐年按照上式计算,并非为恒定的9.6万元。1~5年中,每年的收入折算到当前的数据如下表所示。

 根据上表所列数据,本软件投入/产出比为     41.5630/20 = 2.0785

(2) 投资回收期:

根据上例,两年后收入17.8513万元,尚欠2.15万元没有收回成本,在第三年还需要:2.15/8.2928 = 0.259(年),故投资回收期为2.259年。

(3) 纯收入:

根据上面的计算结果,5年纯收入为     41.5630-20 = 21.5630 万元 这相当于比较一个待投入的软件项目可能获取的利润和将20万元存入银行所取得的效益。只有当纯收入大于0时,开发软件才有真正的效益。

### 软件工程导论期末复习要点总结 #### 1. 定义与基本概念 软件工程是指应用计算机科学理论和技术以及工程管理原则来开发和维护软件系统的学科[^2]。 #### 2. 开发过程模型 常见的几种主要生命周期模型包括瀑布模型、迭代增量模型、螺旋模型等。每种模型都有其特点,在不同场景下适用不同的项目需求[^3]。 #### 3. 需求分析 此阶段的任务是从客户那里收集关于目标系统的需求信息,并将其转化为精确的形式化描述文档,即软件需求规格说明书(SRS)[^4]。 #### 4. 设计方法学 结构化设计基于模块化的思想;面向对象的设计则强调类的概念及其之间的关系建模。UML统一建模语言作为一种可视化工具被广泛应用于表达这些抽象层次上的逻辑架构[^5]。 #### 5. 编码实现 编码之前应该先制定详细的编程计划书,规定好使用的程序设计语言和其他技术细节。编写高质量源代码的同时也要注重可读性和易于维护性[^6]。 #### 6. 测试策略 测试活动贯穿于整个开发生命周期之中,分为单元测试、集成测试、确认测试等多个级别。自动化测试脚本可以提高效率并减少人为错误的发生概率[^7]。 #### 7. 维护工作 当产品发布之后进入运行期,则需持续关注用户的反馈意见并对现有功能做出必要的调整优化,甚至有时还要考虑版本升级的问题[^8]。 ```mermaid mindmap root((软件工程)) 基础知识 定义 发展历程 过程模型 瀑布型 敏捷开发 工具支持 版本控制系统 CI/CD平台 方法论 结构化分析 面向对象设计 实践技能 文档撰写能力 团队协作技巧 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值