- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程基本概念.
?软件工程基本概念
考点1?软件的定义与软件特点
1软件的组成 软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和的文档。软件由两部分组成: (1)机器可执行的程序和数据; (2)与软件开发、运行、维护及使用等有关的文档。 2软件的特点 软件具有如下特点: (1)软件是逻辑产品,而不是物理实体,它具有无形性,通过计算机的执行才能体现它的功能和作用; (2)没有明显的制作过程,其成本主要体现在软件的开发和研制上,可进行大量的复制; (3)不存在磨损和消耗问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)开发和维护成本高; (6)软件开发涉及诸多社会因素。 3软件的分类 结合应用观点,软件可分应用软件、系统软件和支撑软件3类。 (1)应用软件是特定应用领域内专用的软件; (2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件; (3)支撑软件介于系统软件和应用软件之间,是支援其他软件的开发与维护的软件。 4软件的作用 软件是用户与硬件之间的接口,是计算机系统的指挥者,是计算机系统结构设计的重要依据。
考点2?软件危机与软件工程 软件危机 随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了们难以控制软件发展的局面,即所谓的“软件危机”。软件危机主要表现在: (1)软件需求的增长得不到满足; (2)软件开发成本和进度无法控制; (3)软件质量难以保证; (4)软件不可维护或维护程度非常低; (5)软件成本不断提高; (6)软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。 总之,可以将软件危机归结为成本、质量和生产率等问题。 软件工程的产生 国标(GB)中指出软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。考点3?软件工程过程
ISO9000定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 软件工程过程包含4种基本活动: (l)软件规格说明P(Plan):规定软件的功能及其运行机制; (2)软件开发D(Do):产生满足规格说明的软件; (3)软件确认C(Check):确认软件能够满足客户提出的要求; (4)软件演进A(Action):为满足客户的变更要求,软件必须在使用的过程中演进。
考点4?软件生命周期
软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 在国家标准“计算机软件开发规范”中,把软件生命周期划分为个阶段,即可行性研究与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护,对每个阶段,都明确规定了该阶段的任务、实施方法、实施步骤和完成标志,其中特别规定了每个阶段需要产生的文档。考点5?软件工程的目标与原则
1软件工程的目标 软件工程的目标是,在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性巨满足用户需求的产品。 软件工程研究的内容主要包括:软件开发技术和软件工程管理。 (1)软件开发技术。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。 (2) 软件工程管理包括软件管理学、软件工程经济学、软件心理学等内容。 2软件工程的原则 软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 (1)抽象。抽象事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。 (2)信息隐蔽。采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单 (3)模块化。模块是程序中相对独立的成分,一个独立的编程单位,应有良好的接口定义。模块的大小要适中,模块过大会使模块内部的复杂性增加,不利于模块的理解和修改,也不利于模块的调试和重用;模块太小会导致整个系统表示过于复杂,不利于控制系统的复杂性。 (4)局部化。要求在一个物理模块内集中逻辑上相互关联的计算资源,保证模块间具有松散的耦合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。 (5)确定性。软件开发过程中所有概念的表达应是确定的、无歧义的且规范的这有助于入与入的交互,不
文档评论(0)