软件工程(导论)

成秀秀、杨玲、戚爱斌、苗世迪、温东新

目录

  • 1 软件与软件工程
    • 1.1 软件
    • 1.2 软件危机
    • 1.3 软件工程
    • 1.4 软件生命周期
    • 1.5 软件过程模型
    • 1.6 学生成果分享
  • 2 可行性研究与项目开发计划
    • 2.1 可行性研究的任务
    • 2.2 可行性研究过程
    • 2.3 进度计划
    • 2.4 学生成果分享
  • 3 需求分析
    • 3.1 需求分析的任务
    • 3.2 与用户沟通获取需求的方法
    • 3.3 分析建模与规格说明
    • 3.4 实体-联系图
    • 3.5 数据规范化
    • 3.6 状态转换图
    • 3.7 其它图形工具
    • 3.8 验证软件需求
  • 4 总体设计
    • 4.1 系统流程图
    • 4.2 数据流图
    • 4.3 数据字典
    • 4.4 设计过程
    • 4.5 设计原理
    • 4.6 启发规则
    • 4.7 描绘软件结构的图形工具
    • 4.8 面向数据流的设计方法
  • 5 详细设计
    • 5.1 结构程序设计
    • 5.2 人机界面设计
    • 5.3 过程设计的工具
    • 5.4 面向数据结构的设计方法
    • 5.5 程序复杂程度的定量度量
  • 6 软件编码
    • 6.1 程序设计语言
    • 6.2 编码风格
  • 7 软件测试
    • 7.1 软件测试基础
    • 7.2 单元测试
    • 7.3 集成测试
    • 7.4 确认测试
    • 7.5 白盒测试技术
    • 7.6 黑盒测试技术
    • 7.7 调试
    • 7.8 软件可靠性
  • 8 软件项目管理
    • 8.1 估算软件规模
    • 8.2 工作量估算
    • 8.3 人员组织
    • 8.4 质量保证
    • 8.5 软件配置管理
    • 8.6 能力成熟度模型
可行性研究的任务

导入:可行性研究

问题定义阶段

目的:弄清用户需要计算机解决的问题根本所在,以及项目所需的资源和经费。

任务:在向用户调查的基础上,编写《关于系统规模和目标的报告书》。


可行性研究要做什么:

1、回答“对于上一个阶段所确定的问题有行得通的解决办法吗?”

2、系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程。

3、研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。



可行性研究的任务

可行性研究的目的:

不是解决问题,而是确定问题是否值得去解决。


可行性研究的实质:

进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 


可行性研究的内容:

1、首先进一步分析和澄清问题定义,导出系统的逻辑模型;

2、然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案);

3、对每种解法都研究它的可行性,至少应该从三方面研究每种解法的可行性 。


主要方面:

1、技术可行性,使用现有的技术能实现这个系统吗?

2、经济可行性,这个系统的经济效益能超过它的开发成本吗?

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


其他方面:

1、运行可行性,系统的运行方式是否可行?

2、法律可行性,系统是否侵犯他人、集体或国家的利益,是否违反法律? 

3、分析员应该为每个可行的解法制定一个粗略的实现进度。

4、如果问题没有可行的解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。

5、可行性研究需要的时间长短取决于工程的规模。一般说来,可行性研究的成本只是预期的工程总成本的5%~10%。