第13章_软件程与程序设计基础知识.doc

第13章_软件程与程序设计基础知识.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程基础 软件工程(Software Engineering,简称SE)是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。对于软件工程,本章主要介绍一下内容: 1. 软件工程基本概念,软件生命周概念,软件工具与软件开发环境。 2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。3. 结构化设计方法,总体设计与详细设计。 . 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 . 程序的调试,静态调试与动态调试。)))图81所示的软件定义、软件开发及软件运行维护三个阶段。 图81软件生命周期 图81所示的软件生命周期的主要活动阶段是: (1)可行性研究与计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。 (2)需求分析。对待开发软件提出的需求进行分析并给出详细定义。编写软件规格说明书及初步的用户手册,提交评审。 (3)软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。如果系统比较复杂,则可将设计阶段分为概要设计和详细设计两个阶段。 (4)软件实现。把软件设计转换成计算机可以接受的程序代码。 (5)软件测试。在设计测试用例的基础上,检验软件的各个组成部分。 (6)运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。 8.1.4软件工程的目标与原则 1.软件工程的目标 软件工程的目标是,在给定成本与进度的前提下,开发出满足用户需求且其有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性较好的产品。 软件工程需要达到的基本目标应是:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。 为了达到软件工程的目标,软件工程研究的内容主要包括:软件开发技术和软件工程管理。 (1)软件开发技术 软件开发技术包括:软件开发方法学、软件开发过程、软件开发工具和软件工程环境,其主体内容是软件开发方法学。软件开发方法学是根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料都做出规定,从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工方法生产中的随意性和非规范性做法。 (2)软件工程管理 软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。 软件工程管理是软件按工程化生产时的重要环节,它要求按照预先制定的计划、进度和预算执行,以实现预期的经济效益和社会效益。软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。 软件工程经济学是研究软件开发中成本的估算、成本效益分析的方法和技术,用经济学的基本原理来研究软件工程开发中的经济效益问题。 软件心理学是从个体心理、人类行为、组织行为和企业文化等角度来研究软件管理和软件工程的。 2.软件工程的原则 为了达到上述的软件工程目标,在软件开发过程中,必须遵循软件工程的基本原则。这些基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 (1)抽象。抽取事物最基本的特性和行为,忽略非本质细节。在实施过程中,采用分层次抽象,自顶向下,逐层细化的方法来化解软件开发过程的复杂性。 (2)信息隐蔽。用封装技术,将程序模块的实现细节隐藏起来,并提供尽可能简单的模块接口,以便于和其他模块连接在一起。 (3)模块化。模块是程序中相对独立的成分,一个模块是一个独立的编程单位。模块应具有良好的接口定义。模块的大小要适当。 (4)局部化。要求在一个物理模块内集中逻辑上相互关联的计算资源,保证模块间具有松散的耦合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。 (5)确定性。软件开发过程中所有概念的表达应是确定的、无歧义的和规范的。这有助于人与人之间的交流,不会产生误解和遗漏,从而保证整个开发工作的协调一致。 (6)一致性。在程序、数据和文档的整个软件系统的各模块中,应使用已知的概念、符号和术语;程序内部和外部接口应保持一致,系统规格说明与系统行为应保持一致。 (7)完备性。软件系统不丢失任何重要成分,完全实现系统所需的功能。 (8)可验证性。开发大型软件系统需要对系统自顶向下,逐层分解。系统分解应遵循容易检查、测评、评审的原则,以确保系统的正确性。 8.1.5软件开发工具与软件开发环境 现代软件工程方法之所以得以实施,依赖于相应的软件开发工具和环境的支持,使软件在开发效率、工程质量等多

文档评论(0)

yi593pu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档