- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)