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


文档评论(0)