下载后可任意编辑第8章第9章软件工程基础软件工程(Software Engineering,简称 SE)是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。对于软件工程,本章主要介绍一下内容:1. 软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。3. 结构化设计方法,总体设计与详细设计。4.程序设计方法与风格,结构化程序设计,面对对象程序设计。5. 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。6. 程序的调试,静态调试与动态调试。8.1 软件工程的基本概念8.1.1 软件及其特点计算机系统由硬件和软件两部分组成。计算机软件是包括程序、数据及其相关文档资料的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。数据是使程序能够正常操纵信息的数据结构。文档是与程序开发、维护和使用的图文资料。由此可见,软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护和使用有关的文档。 软件与硬件不同,它有以下特点:(1)软件是一种逻辑实体,而不是物理实体,具有抽象性。这使得软件与其他工程对象有着明显的差异。可以将软件记录在纸上或其他存储介质上,但却无法看到软件本身的形态,必须通过观察、分析、思考、推断,才能了解它的功能、性能等。(2)软件的生产没有明显的制作过程。在软件研制开发成功之后,可以大量拷贝同一内容的副本。所以对软件的质量控制,必须着重在软件开发方面下功夫。(3)软件在运行、使用期间不存在磨损、老化问题,但为了适应硬件、环境以及需求的变化要进行修改,而这些修改又会不可避开的引入错误,导致软件失效率升高,下载后可任意编辑从而使得软件退化。(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题。(5)软件复杂性高,成本昂贵。软件是人类有史以来生产的复杂度最高的工业产品。软件涉及人类社会的各行各业、方方面面,软件开发常常涉及其他领域的专门知识。软件开发需要投入大量、高强度的脑力劳动,这其中蕴含着成本高,风险大的问题。(6)软件开发涉及诸多的社会因素。许多软件的开发和运行涉及软件用户的机构设置,体制问题以及管理方式等,甚...