软件工程整理.doc_第1页
软件工程整理.doc_第2页
软件工程整理.doc_第3页
软件工程整理.doc_第4页
软件工程整理.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 基本概念。(一)、软件 1、软件的基本概念软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。可以写作为:软件=程序+数据+文档。程序:程序是按事先设计好的功能和性能要求执行的指令序列。数据:数据是指程序能正常处理信息的数据和数据结构。文档:文档是与程序运行和维护有关的图文资料。 2、软件的特点 (1)、抽象性:软件是一种逻辑实体,具有抽象性。 (2)、软件不会磨损,不过它会退化 (3)、不能像硬件维修中直接更换磨损的零件,软件维护要复杂得多 (4)、软件开发性质如成本、进度等难以估计 (5)、软件的开发更加依赖于开发人员的业务素质、智力、人员的合作、组织和管理。人们可以使用软件,但是无法看到软件本身的形态 。必须通过观察、分析、思考、判断,才能了解其功能、性能等特性。 3、软件种类的划分根据软件的用途进行划分,软件大致可以分为以下类型:(1)、系统软件。系统软件是为其他软件服务的软件。(2)、实时软件:管理、分析、控制现实世界中所发生的事件的软件称为实时软件。(3)、商业管理软件:常规的数据处理软件和一些交互式的计算处理(如POS软件)软件。(4)、工程与科学计算软件:此类软件的特征是要实现特定的“数值分析”算法。 (5)、嵌入式软件:驻留在专用智能产品的内存中,用于控制这些产品进行正常工作,完成很有限、很专业的功能的软件。(6)、人工智能软件:利用非数值算法去解决复杂问题的软件。(7)、个人计算机软件:文字处理系统、电子表格、游戏娱乐软件等等。 (二)、软件工程 1、软件工程基本概念软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。软件工程应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。计算机科学、数学用于构建模型与算法;工程科学用于制定规范、设计规范、评估成本及确定权衡;管理科学用于计划、资源、质量、成本等管理。软件工程学是一门指导计算机软件开发和维护的科学。软件工程包括:软件开发技术和软件项目管理。(1)、软件开发技术包括软件开发方法学、软件工具和软件工程环境。(2)、软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。 2、软件危机 所谓软件危机, 就是指在软件开发和软件维护过程中所存在的一系列严重问题。具体地说,软件危机具有如下一些表现:(1)、软件开发没有真正的计划性,对软件开发进度和软件开发成本的估计常常很不准确,计划的制定带有很大的盲目因素,因此工期超出、成本失控的现象经常困扰着软件开发者。 (2)、对于软件需求信息的获取常常不充分,软件产品往往不能真正地满足用户的实际需求。 (3)、缺乏良好的软件质量评测手段,从而导致软件产品的质量常常得不到保证。(4)、对于软件的可理解性、可维护性认识不够;软件的可复用性、可维护性不高。 (5)、软件开发过程没有实现“规范化”,缺乏必要的文档资料或者文档资料不合格、不准确,难以进行专业维护。 (6)、软件开发的人力成本持续上升。(7)、缺乏自动化的软件开发技术。二、 软件工程七项基本原则 (一)、用分阶段的生命周期计划严格管理 (二)、坚持进行阶段评审 (三)、实行严格的产品控制 (四)、采纳现代程序设计技术 (五)、结果应能清楚地审查 (六)、开发小组的人员应少而精 (七)、承认不断改进软件工程实践的必要性三、 软件工程三要素 软件工程的方法、工具、过程构成了软件工程的三要素。(一)、软件工程方法:是整个软件工程的方法。为软件开发提供了“如何做某项工作”的技术指南。使得整个开发过程的每一种阶段任务都能够“有章可循”。 (二)、软件工程工具:为软件工程方法提供了自动的或半自动的软件支撑环境。 (三)、软件工程中的过程:是整个软件工程的管理部分。将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。四、 软件生命周期 软件生命周期由软件定义、软件开发和运行维护(也称为软件维护) 3个时期组成,每个时期又进一步划分成若干个阶段。在软件定义阶段中,主要进行问题定义、可行性研究和需求分析。软件被定义之后,进入软件开发阶段,主要对软件的体系架构、数据结构和主要算法进行设计和编码实现。软件的运行与维护阶段在软件生命周期中占据的比例最大。针对不同的需求,维护工作一般可以分为纠错性维护、适应性维护、扩充性维护和预防性维护等不同类型。(一)、问题定义 通过问题定义,确定要解决的问题。通过调研,写出关于问题性质、工程目标和工程规模的书面报告,并得到客户的确认。(二)、可行性研究 可行性研究是对问题定义的一个具体,确定问题是否可行,通过什么方式解决问题。研究并论证软件系统的可行性,对方案进行选择并形成可行性分析报告。 可行性包括经济上的可行性,技术上的可行性,实施上的可行性。(三)、需求分析 需求分析阶段的主要任务是确定目标系统必须具备哪些功能。要求能够建立逻辑模型,准确的体现用户的要求,可以建立以下模型:数据模型(实体-联系图),功能模型(数据流图),行为模型(状态转换图) 需求分析阶段,要书写需求规格说明书。(四)、概要设计概要设计也叫总体设计,它确定了系统应该实现的总体目标。概要设计部分主要完成:建立软件系统的总体结构,定义功能模块的接口,设计全局数据库或数据结构,规定设计约束,编制概要设计文档。(五)、详细设计 详细设计也称模块设计,概要设计将模块具体化。这个部分主要完成:模块详细设计和详细设计规格说明书。模块的详细设计包括模块的详细功能、算法、数据结构、模块间的接口等设计,拟定模块测试方案。编制模块的详细规格说明,汇总模块详细设计的结果,形成模块详细规格说明书。(六)、编码和单元测试本单元主要是写出正确的容易理解、容易维护的程序模块。编码:根据模块详细规格说明书,把详细设计的结果翻译成用选定的语言书写的程单元测试:对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告。(七)、综合测试综合测试是通过各种类型的测试(及相应的调试)使软件达到预定的要求。主要有集成测试、验收测试和平行运行三种。集成测试:根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。验收测试:按照规格说明书的规定,由用户对目标系统进行验收。现场测试或平行运行:平行运行就是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。 在本测试阶段,要求能够用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,作为软件配置的一个组成部分。(八)、运行与维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。每一项维护活动都应该经过提出维护要求(或报告问题),分析维护要求,提出维护方案,审批维护方案,确定维护计划,修改软件设计,修改程序,测试程序,复查验收等一系列步骤。维护只要分为:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护,诊断和改正在使用过程中发现的软件错误;适应性维护,修改软件以适应环境的变化;完善性维护,根据用户的要求改进或扩充软件使它更完善;预防性维护,修改软件为将来的维护活动预先做准备。五、 软件工程开发模型 常用的软件生存期模型有:瀑布模型、演化模型、螺旋模型、增量模型、喷泉模型、智能模型。(一)、瀑布模型各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。每项活动均处于一个质量环(输入-处理-输出-评审)中。如图1所示: 图1 瀑布模型(二)、演化模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。如图2所示: 图2 演化模型(三)、螺旋模型螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析。如图3所示: 图 3 螺旋模型(四)、增量模型 把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。如图4所示: 图 4 增量开发模型(五)、喷泉模型喷泉模型是对象驱动的过程。体现了迭代和无间隙的特性,所谓无间隙,是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。如图5所示: 图 5 喷泉模式(六)、智能模型智能模型是基于知识的软件开发模型,它把瀑布模型和专家系统综合在一起。该模型在各个开发阶段都利用了相应的专家系统来帮助软件人员完成开发工作。为此,建立了各个阶段的知识库,将模型、相应领域知识和软件工程知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与包含应用领域知识规则的其他专家系统相结合,构成该应用领域的开发系统。 如图6所示: 图 6 智能模型六、 软件工程标准化过程决定了一个软件开发的质量。软件危机的出路在于软件开发的工程化和标准化。主要包括程序设计语言的标准化和软件过程的标准化。程序设计语言的标准化:为某一程序设计语言规定若干个标准子集,对于语言的实现者和用户都带来了很大方便。软件过程的标准化:软件生存期各个阶段的工作建立标准或规范。(一)、软件工程标准化的作用1、可提高软件的可靠性、可维护性和可移植性;2、可提高软件人员的技术水平,减少差错和误解;3、可提高软件人员之间的通信效率,提高软件的生产率;4、有利于软件管理;有利于降低软件产品的成本和运行维护成本;5、有利于缩短软件开发周期。(二)、软件工程标准1、国家标准:国际标准化组织 ISO。ISO建立了“计算机与信息处理技术委员会”, 简称ISOTC97,专门负责与计算机有关的标准化工作。编号格式:ISO+标准号+斜杠+分标准号+冒号+发布年份2、国家标准:由政府或国家级的机构制定或批准,适用于全国范围的标准。 GB 中华人民共和国国家技术监督局公布实施的标准,简称“国标”。ANSI (American National Standards Institute) 美国国家标准协会。BS (British Standard) 英国国家标准。 DIN (Deutsches Institut fr Nor- mung ) 德国标准协会。 JIS (Japanese Industrial Standard) 日本工业标准。3、行业标准:由行业机构、学术团体或国防机构制定,适用于某个业务领域的标准。 GJB中华人民共和国国家军用标准。这是由中国国防科工委批准,适合于国防部门和军队使用的标准。MIL_S ( MILitary_Standard)美国军用标准,适用于美军内部。4、企业规范:一些大型企业或公司,由于软件工程工作的需要,制定适用于本部门的规范。5、项目规范:由某一科研生产项目组织制定,为该项任务专用的软件工程规范。七、 软件项目管理 (一)、项目基本知识 项目是在一定的资源约束下完成的既定目标的一次性任务。项目具有以下特点:目的性、有生命周期、独特性、有固有客户、组织开放性、较强冲突性和风险性。项目管理是通过项目经理和项目组织机构运用系统理论和方法。对项目及其资源进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法体系。项目管理中的三要素 :目标、成本、进度。目标、成本、进度三者在项目管理过程中是互相制约的,其关系如图7所示: 图 7 项目三要素(二)、项目管理的基本特征 1、项目管理是一项复杂系统工程。主要体现在:(1)、项目需要多种学科知识来解决实际问题;(2)、项目执行中的未知因决定项目的不确定性;(3)、项目的临时性给组织管理带来难度;(4)、项目建设是在严格的约束条件下进行的;2、项目管理具有创造性,充满着权衡.主要体现在:(1)、创造带有探索性,有较高的失败率;(2)、项目建设中对进度、费用与质量三者之间的权衡。3、项目负责人在项目管理中起着非常重要的作用。其主要体现在:(1)、项目管理的主要原理之一是项目经理负责制;(2)、项目经理有权独立进行计划、资源分配、协凋和控制;(3)、项目经理应有多学科知识、综合管理能力及现场处理能力;(4)、项目经理应有迅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论