第四讲:
软件危机:软件危机指的是软件开发和维护过程中遇到的一系列严重问题
软件危机的表现:
① 产品不符合用户端的实际需要
② 软件开发生产率提高的速度远远不能满足客观需要软件的生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力
③ 软件产品的质量差
④ 对软件开发成本和进度的估计常常不准确
⑤ 软件的可维护性差
⑥ 软件文档资料通常既不完整也不合格
⑦ 软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升
产生软件危机的原因:
① 软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运之前,很难检验开发的正确性,而且软件开发的也较难评价。软件不同于一般程序,它的一个显著特点是规模庞大
② 虽然软件本身独有的特点确实给开发和维护带来一些客观困难,但是人们在开发和使用计算机系统的长期实践中,也确实积累和总结出了许多成功的经验。
③ 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求
④ 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范
⑤ 在软件的开发与维护关系问题上存在的概念
怎样解决:
① 用分阶段的生存周期计划严格管理
② 坚持进行阶段评审
③ 实行严格的产品控制
④ 采用现代程序设计技术
⑤ 结果应能清楚的审查
⑥ 合理安排软件开发小组的人
⑦ 承认不断改进软件工程实践的必要性
软件工程的原则:
① 分解
② 独立性
③ 一致性
④ 确定性
第二章
问题定义
问题定义为软件需求分析功能与性能的依据
定义内容:
包括:问题背景,开发系统的现状,开发的条件与理由,总体要求;问题的性质,类型转换,什么目标,开发条件,环境要求等
定义的步骤:
系统分析员到问题现场
--听取用户对系统的要求
--调查开发的背景理由
--看用户的报告
--加工整理
--与用户及负责人反复讨论
--改进不正确的地方
--写出双方都满意的问题定义报告文档
--确定双方是否可以进行深入系统可行性研究方向的意向
可行性研究:
① 经济可行性
② 技术可行性
③ 操作可行性
④ 法律可行性
⑤ 时间可行性