任教科目:软件工程
任课教师:张洪志
任课教师Email:[email protected]
任课教师推荐资料:软件工程 张海藩;软件工程技术概论 朱三元;实用软件工程 郑人杰;现代软件工程 周之英;软件工程实践者的研究方法
有了一个总体的指导那接下来就是对具体内容的学习了。整理了一下第一章的思维导图
· 软件的特点:抽象性,没有明显的制造过程,不存在老化问题,对计算机系统有不同程度的依赖性,尚未摆脱手工艺的开发方式,软件本身是复杂的,成本昂贵,相当多的软件工作涉及到社会因素
·
2.1 问题定义
一、定义内容:包括问题背景,开发系统的现状,开发的条件与理由,总体要求,问题的性质,类型转换,什么目标,开发条件,环境要求等
二、定义的步骤:系统分析员到问题现场(听取用户要求,调查开发的背景,看用户报告,加工整理,与用户及负责人员反复讨论,写出双方都满意的问题定义报告文档,确定双方是否可以进行深入系统可行性研究方向的意向)
问题定义报告要解决的问题:(1)确定开发软件的总体要求和适用范围
(2)描述开发软件与外界接口的关系
(3)描述硬件软件
(4)开发进度,成本的初步运算
(5)分析系统可行性
(6)考虑兼容性
2.2 可行性研究
一、1、经济可行性 2、技术可行性 3、操作可行性 4、法律可行性 5、实践可行性
将校技术:降低成本或者降低技术
二、可行性研究
问题的初步认识:对问题的提出
市场调查:了解待开发软件的需求
分析准备:确立分析计划
环境分析:
2.3 可行性研究的步骤
1、复查系统规模和目标
2、研究正在使用的系统
3、导出新系统高层逻辑结构
4、向用户推荐建议法
5、推荐行动方针作出关键性的决定
6、草拟开发计划,写出可行性论证报告
7、提交上机和专家审查
2.4软件计划内容
一、软件范围:
内容:软件功能规模,它能力对硬件的要求。接口界面性质和复杂性
二、环境资源:
包括:人力资源,不同阶段不同要求,硬件,机器,软件,制定进度表(交付日期,组织分配力量)软件成本,资源性能描述
2.5 软件价格估计
一、可用模型经验
1、参数化算法 软件价格C=f(vi)(vi是所选的影响软件危机的独立参数)
2、代码(LOC)价格估算:有关参数:① 源代码行(不包括注释,作业命令) ②劳动量(每人每年)③软件生产率:单位时间完成软件的数量 ④LOC算法:首先功能分析 然后根据历史经验选择软件功能块LOC价格
3、任务分解法
4、自动估计成本法:良好的数据库系统支撑
2.6成本/收益分析
效益分析的目的:是否开发
二有关的几个概念
1、货币时间法
几个有关概念
1、货比的时间价值
2、纯收入
3、投资回收期
4、投资回收率
Eg:某软件,投资额3000元每年效益每年均为1000元,求5年的效益。按年利率百分之十二计算求每年的当前值,五年的纯收入,投资回收期,五年的投资率
项目开发计划
形成文档的格式
引言:编写目的项目背景 定义(报告中英文缩写) 参考资料(合同上机批文 文档引用的资、规范等)
项目概述:
工作内容:简要说明项目主要工作
条件与限制:开发单位已具备的条件
产品:
程序文档 运行环境 服务 验收标准 进度 预算 关键问题 人员组织及分工 交付期限(阶段交付期限)
专题计划要点:测试计划质量保证计划配置管理计划人员培训计划等
总结:
学习要点 可行性研究任务和步骤、系统流程图,可行性研究的任务,可行性研究的步骤,成本效益分析
1、成本估计,费用估计
代码行技术
任务
几中度量效益的方法
1、货币的时间价值
2、投资回收期
3、纯收入
包括:软件需求分析的任务和过程
结构化分析方法
原型化方法
动态分析方法
·软件需求分析的任务
1、 深入描述软件的功能和性能
2、 确定软件设计的约束和软件同其它系统元素的接口细节
3、 定义软件的其他有效性需求
·需求分析的任务:就是借助于当前系统的逻辑模型导出目标系统的逻辑模型。解决目标系统“做什么”的问题
·需求分析的过程
(1)问题识别
·软件的需求包括:功能需求 性能需求 环境需求 可靠性需求 安全保密要求 用户界面需求 资源使用需求 成本消耗需求 开发进度需求 预先估计以后系统可能达到的目标
·问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析
(2)分析与综合
·从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。常用的分析方法
面向数据流的结构分析方法(SA)
面向数据结构的Jackson方法(JSD)
结构化数据系统开发方法(DSSD)
面向对象的分析方法(OOA)
(3)编写需求分析阶段的文档
软件需求说明书
数据要求说明书
初步的用户手册
修改、完善与确定软件开发实施计划
(4)需求分析评审
系统定义的目标是否与用户的要求一致
系统需求分析阶段提供的文档资料是否齐全
文档中的所有描述是否完整、清晰、准确反映用户要求
与所有其它系统成分的重要接口是否都已经描述
5)技术风险
对技术进行风险评估,设定用户变换,或者员工跳槽影响进度,该如何规避风险。
· 软件需求分析原则
1、 需要能够表达和理解问题的信息域和功能域
2、 要能以层次化的方式对问题进行分解和不短细化
指导性原则:①在开始建立分析模型前先理解
②开发原型是的用户能了解将如何发生人机交互
③ 记录每个需求起源和原因
④使用多个需求视图
⑤给需求赋予优先级
⑥努力删除含糊性
软件需求分析的原则:横向分解和纵向分解
软件需求规格说明的原则
1、从现实中分离功能即描述还要”做什么“而不是”怎样实现“
2、系统定义语言:使用面向处理的规格说明语言
开始建立分析模型前先理解问题
· 软件需求方法
需求分析方法由对软件问题的信息域和功能域的系统分析过程及其表示方法组成
大多数的需求分析方法是由信息驱动的
·结构化分析方法
面向数据流进行需求分析的方法
结构化分析方法适合于数据处理类型软件的需求分析
数据流图只考虑基本功能不考虑实现
·检查和修改数据流图的原则
按层给加工框编号
必须与它上一层的一个加工对应
两者输入数据流和输出数据流必须一致
不允许出现文件-à文件,不允许文件à汇点,注意流向,不画控制流
自顶向下,不能价差重叠
图上每个元素都有名字
·数据字典
与数据流图配合,能清楚地表达数据处理的要求
词条描述----对于在数据流图中每一个被命名的图形元素,均加以定义,内容有名字,别名或编号,分类,描述,定义,位置,其他等·用于书写加工逻辑说明的工具
结构化英语
判定表
判定树
· 软件原型的分类探索型;实验型;进化型
·软件使用策略
废弃策略;追加策略
最常用的动态分析方法
状态迁移图;时序图;Petri网
· 需求分析的任务:需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。需求分析所需要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它胸膛元素的接口细节。定义软件的其他有效性需求。·需求分析阶段的任务包括:
1、确定对系统的综合要求
2、分析系统的数据需求
3、导出系统的逻辑模型
4、修正系统开发计划
5、开发原型系统
结构化分析方法(SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法
·需求分析的原则:
1、必须能够表达和理解问题的数据域和功能域
2、按自顶向下,逐层分解问题
3、要给出系统的逻辑视图和物理视图
·需求分析方法具有以下的共性
1、支持数据域分析的机制
2、功能表示的方法
3、接口的定义
4、问题分解的机制以及对抽象的支持
5、逻辑视图的物理视图
6、系统抽象模型
·需求规格说明书
1、编写目的,项目背景,定义,参考资料
2、任务概述:目标,运行环境条件与限制
3、数据描述:静态数据,动态数据,数据库介绍,数据词典,数据采集
4、功能需求:功能划分,功能描述
5、性能描述:数据精确度,时间特性,适应性
6、运行需求:用户界面,软硬件接口,故障处理
7、其他需求
· 数据流图的用途
· 数据流图的画法
·数据流图的优缺点
总结:以上就是前三章的所有内容了。这样整理了一遍好像脑海中的知识更加清晰了。