一、软件工程概述
1、软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。
(1)能够完成预定功能和性能的可执行指令(program)
(2)使得程序能够适当地操作信息的数据结构(data)
(3)描述程序的操作和使用的文档(document)
2、软件特点
• 软件是一种逻辑实体,而不是具体的物理实体。
• 软件的生产与硬件不同。
• 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,但它存在退化问题,开发人员必须维护软件。
• 大多数软件是自定的,而不是通过已有构件组装而成的。
• 软件成本相当昂贵。
• 软件本身是复杂的。
3、软件危机 :软件在开发和维护过程中遇到的一系列严重问题。
软件危机包含两层含义:
如何开发软件。
如何维护数量不断膨胀的已有软件。
4、软件危机的表现:
(1)软件开发的进度难以控制,经常出现经费超预算、完成期限拖延的现象。
(2)软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而对整个开发过程带来灾难性的后果。
(3)软件文档资料不完整、不合格。由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下。
(4)软件的可维护性差,程序错误难以改正,程序不能适应硬件环境的改变。
(5)软件价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。
5、软件危机的原因:
(1)客户对软件需求的描述不精确,可能有遗漏、有二义性、有错误,在软件开发过程中,用户提出修改软件功能、界面、支撑环境等方面的要求。
(2)软件开发人员对用户需求的理解与用户的本来愿望有差异。不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。
(3)管理人员、软件开发人员等各类人员的信息交流不及时、不准确、有时还会产生误解。
(4)缺乏有力的方法和工具方面的支持,过分地依靠程序人员在软件开发过
程中的技巧和创造性,加剧软件产品的个性化。
1、软件工程
软件工程学的存在价值:促进软件项目成功
1、“软件工程” ----Software Engineering是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。
•1968年,“软件工程”这个术语第一次使用,作为一个会议标题,该项目由北约(NATO)赞助;该会议确认了要用定义最佳实践的方式帮助改善软件开发;
软件工程学研究的目标 :
• 软件开发成本较低;
• 软件功能能够满足用户的需求;
• 软件性能较好;
• 软件可靠性高;
• 软件易于使用、维护和移植;
• 能按时完成开发任务,并及时交付使用。
采用先进的软件工程方法,使质量、成本和生产率三者之间的关系,达到最优的平衡状态。
软件生存周期:
是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
注意:
在实践