软件工程复习笔记

上传人:汽*** 文档编号:509260344 上传时间:2023-12-31 格式:DOCX 页数:34 大小:248.26KB
返回 下载 相关 举报
软件工程复习笔记_第1页
第1页 / 共34页
软件工程复习笔记_第2页
第2页 / 共34页
软件工程复习笔记_第3页
第3页 / 共34页
软件工程复习笔记_第4页
第4页 / 共34页
软件工程复习笔记_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《软件工程复习笔记》由会员分享,可在线阅读,更多相关《软件工程复习笔记(34页珍藏版)》请在金锄头文库上搜索。

1、CHO概论本章重点:?软件工程的定义?什么是软件退化?软件与程序的区别?软件工程的组成?客户和用户的定义?常见的软件神话,他们错在何处??软件工程的目标有哪些??软件工程的目标中最重要的是哪个??软件过程是一种层次化的技术,其层次结构是什么样的??软件是想改就能改的吗??软件开发时是不是越早开始写代码越好i为什么需要软件工程:个人、企业和政府在日常活动、管理和战略战术决策时越来越依赖于软件,因此 必须确保软件的质量;鉴于软件开发成本巨大,因此必须确保开发出来的软件能够满足目标用户的真 要求;随着软件越来越复杂,其开发和实际也越来越复杂,必须确保开发活动的有序、有效;随着软件用户数量和寿命的增加

2、,对其适应性、可扩展性的要求也在增加。必须 确保软件具备良好的可维护性。2. 软件工程定义最经典的定义:软件工程是对合理工程原则的建立和使用, 其目的是为了经济地 获得可靠的、可以在实际机器上高效运行的软件。IEEE合出的定义:将系统化的、规范的、可量化的方法应用于软件的开发、运行 和维护。即将工程化方法应用于软件。课程给出的定义:软件工程是 为了经济的开发出高质量的软件,并有效的维护它,将工程、管理手段与技术手段相结合 应用于软件的方法的集合 目的:经济的开发出高质量的软件,并有效的维护它方法:将工程、管理手段与技术手段相结合3. 软件工程要实现多个目标,这些目标之间的重要性不一样一一 价值

3、观问题 软件工程的目标如下:又好又快?保证软件质量?提升开发效率、降低开发成本?提高维护效率、降低维护成本4. 软件的定义:计算机系统中与硬件相互依存的另一部分,是程序、数据及其相关文档的完整集合。软件是逻辑的而非物理的系统元素5. 软件的特点:? 没有物理实体? 设计开发成本高昂,生产复制则几乎是零成本的? 软件不会磨损、老化,但是也会退化软件退化:随着软件的维护升级,软件结构逐渐偏离原有设计并导致了软件 质量的下降,称为软件退化。? 软件发展的速度落后于硬件和实际需求? 软件占计算机系统成本的比重越来越大? 软件开发尚未真正实现标准化6. |软件与程序的区别:软件不仅仅只是计算机程序7.

4、软件工程组成:软件工程是一种层次化的技术? 质量优先是整个软件工程的核心价值观(以质量为中心)? (软件)过程:由为建造、维护高质量软件所需要完成的一系列相互关联的 活动组成的框架,即形成软件产品的一系列步骤。过程是软件工程管理和实 施的基础。? 方法 页件开发和维护过程中一些具体问题的最佳解决手段。方法是软件工 程的核心手段? 工具:为实现软件工程中各种过程和方法的自动化和半自动化而开发的程序 系统。工具是软件工程的效率倍增器。8. 软件工程必须重视人员的培训。9. 软件工程中的相关人员:? 用户User:软件使用者。目的是使用软件解决问题或提高工作效率。? 客户Customer:为软件付钱

5、的人。他们的目标是增加利润,或只是使业务运 作更为有效。? 软件开发人员Developer :开发并维护软件的人。? 开发管理人员Man age:管理软件开发过程的人员。其目标是花最少的钱满 足客户要求10. 软件神话:关于软件及其开发过程的一些错误说法。? 神话一:因为软件是由弹性的,因此可以很容易的适应需求变化。(修改软 件要付出成本)? 神话二:如果我们无法按时完成计划,可以通过增加电脑和程序员人数赶上 速度。? 神话三:软件过程就是严格按照完成的软件开发标准和规程来开发软件。(错在把手段当成了目的,应该根据项目实际需要,灵活安排实际的软件过程活 动)? 神话四:当程序编写完成并交付给客

6、户后,任务就完成了,因此应该尽快开 始编写代码。? 神话五:软件工程会导致我们产生大量无用的文档,因此降低了效率。(创 建文档的目的是保证开发软件的质量)文档最重要的作用是(1)促使开发者认真思考和(2)促进交流。CH1软件过程与方法本章重点:?过程管理的任务?过程的定义?五个核心软件活动?几种软件过程模型,其活动间的顺序关系是怎样的(顺序、迭代、演化还 是并行?)?原型及其作用?敏捷开发的价值观?敏捷开发的基本推动力1. 过程管理:辨识出一连串的商业活动,并针对这些活动的作业流程进行管理。2. 过程管理的目标:? 确保企业中各种商业活动的执行成果能具有一定的水平和精确度。? 确保能持续改善活

7、动的进行方式,串连活动的作业流程? 让企业能保持市场上的竞争力3. 过程管理的任务:?寻找、发现企业中有价值的业务过程(过程识别)?发现、去除非增值活动,简化过程;通过合理安排活动顺序提高过 程效率(过程梳理和优化)?对过程各个活动进行规范,形成标准(过程固化)?对过程执行情况加以监控(过程监控)?寻找过程中的错误、薄弱、低效环节并加予以纠正(过程改进)4. 过程 也称业务过程,指为客户 创造价值的一系列相互关联、有组织的活动或 任务的集合。?管理学意义上的过程是有明确目的性的:为客户(或企业)创造价值5. (业务)过程的特点:?可确定性:有明确的输入、输出和边界;?顺序:构成过程的活动,必须

8、在时间和空间里具有确定的顺序;?客户:过程的结果必须有接收者一一客户。?增值:在过程中发生的转换必须为接收者增加价值,无论接收者是在过程的上游还是下游。6. 软件过程:构建、维护软件产品时所执行的一系列步骤(活动、动作和任务)的集合。?活动:组成软件过程的最主要的宏观步骤。?例如:需求分析、设计、编码、发布等。?动作:对活动进一步细分的得到的步骤。?例如设计活动,可以细分分为总体设计、模块设计等多个动作。 ?任务:具体的工作步骤7. 核心软件活动:所有合理的软件过程都包含一些共同的必要的活动(步骤) 这些活动我们称为核心软件活动。8. 软件过程通常包括下列五个核心软件活动:?需求分析:通过与客

9、户的沟通协作,了解客户的真实需要,决定软 件特性和功能,制定项目目标。?建模(设计):通过构造软件模型(通常是图形形式的模型)的方法 来研究、理解具体问题,(向客户和其他开发人员)展现具体解决? 编码与测试:实际编写代码、验证代码的正确性?运行与部署:将软件交付用户使用。通常用户会对软件进行一段时 间的试用,并给出反馈意见?维护:修复用户使用过程中发现的软件缺陷, 或者根据用户使用意 见对软件进行改进9. 在实际软件过程中往往还存在一些贯穿整个过程的 普适性活动,以帮助软件团 队管理和控制项目进度、质量、变化和风险。项目管理的角度说,这些“普适性活动”实质上是项目管理活动。常见普适性活动包括:

10、?策划:创建软件项目的“地图”,以指导团队的项目旅程。通常包 括:需要执行的具体任务、每个任务需要的资源分配,每个任务的 具体产品,以及工作计划等?项目跟踪和控制:定期评估项目进度情况,采取必要措施确保项目 按期完成?风险管理:对可能影响项目进度和产品质量的风险进行评估,并采取必要措施来降低风险?测量:定义和采集关于过程、项目和产品的度量数据,以帮助管理 和改进其他活动。例如:开发人员的生产率等?软件质量保证:确保软件质量的措施和活动?软件配置管理:管理软件(代码、配置信息及其文档)的版本变化 历史?可复用管理:建立产品(代码等)复用的机制和标准(如公用函数 库等)?人员培训:对相关人员进行必

11、要的培训,使其具备必要的知识和技 能,掌握相关工具的使用方法10. 软件过程模型是从一特定角度提出的软件过程的简化描述。过程流(模型)是最主要的一类软件过程模型。过程流描述了如何在执行顺序和执行时间这一层面上,组织软件过程中(除维护 之外的)的活动。11. 几种主要的过程流及典型过程模型:?线性过程流:瀑布模型?迭代过程流:原型开发模型?演化过程流:螺旋模型?并行过程流?混合过程流:增量模型12. 瀑布模型:又称软件生存周期模型,瀑布模型严格按照软件生存周期各个阶 段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。 每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)

12、进行评审,通过 后才能开始下一阶段的工作。是一种以文档作为驱动的模型?软件生存周期:软件从定义开始,经过开发、使用和维护,直到最终退役 的全过程称为软件生存周期。瀑布模型将软件生命周期分成软件定义、 软 件开发、运行、维护及退役五个时期组成。?优点:可强迫开发人员采用的规范方法;严格规定了每一阶段必须提交的文档;要求每一阶段交付之产品都必须经过质量保证小组的仔细审查 清晰区分了逻辑设计与物理设计,尽可能推迟程序的物理实现; 提供了软件开发的基本框架,有利于大型软件开发过程中人员的组 织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程 中占有重要的地位。?缺点:要求在项目开始的需求

13、分析阶段就能够完整的得到客户的所有需 求,现实中很难实现客户要到项目接近尾声的验收阶段才能够看到实际的程序执行效 果。如果这时才发现程序和客户实际要求有重大偏差, 就可能会造成重大 的损失13. 原型开发模型:原型,就是软件的一个 模拟的可执行界面。用户可在原型上进行操作,直观的感 受软件的执行效果。原型开发就是软件开发人员根据用户提出的软件基本需求快速开发一个原型,向用户展示软件界面和功能。在征求用户对原型的评价意见后,进一步改进、完善 原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达成一致的 理解为止。优点:? 原型的开发和评审时系统分析员和用户/客户共同参与的迭代过程,有利

14、 于双方充分理解和沟通。? 比瀑布模型更符合人们认识事物的过程和规律,项目成员能够更清晰的 理解用户实际需求。? 如果原型的开发语言和实际软件相同,那么它的若干高质量的程序片段 和开发工具也可被用于工作程序的开发。快速原型的开发途径:原型仅仅是需求分析的一部分,因此必须尽可能快速的开发原型。建造原型应尽量采用相应的软件工具和环境,并尽量采用软件重用技术, 在运行效率方面可做出让步,以便尽快提供。同时,原型应充分展示软件系统的可见部分,如人机界面、数据的输入方式和输出格式等。缺缺点:?原型开发模型要求开发者和用户在一段时间内紧密配合、共同参与完成原型系统的开发,特别是需要用户的及时反馈。如果用户

15、对此不够重视, 那么原型开发的意义也就大打折扣了。?原型的快速构造容易 让用户误以为实际软件的开发也是可以很容易、 很快 就完成的,或者要求开发者直接将原型稍加修改使之成为实际运行的产 品。?而实际上,为了快速开发原型,开发者往往会牺牲软件质量和可维护性而 采取了最快速的开发手段,因此实际的高质量软件产品需要抛弃原型从头 开发。?如果不能够充分的向客户解释这一点的话, 就容易导致软件开发人员和用 户之间产生矛盾。?原型开发模型最大的缺点在于,它仍然 没有解决需求变化的问题。14螺旋模型:一种演化式的软件过程模型。结合了原型开发模型的迭代性和瀑 布模型的系统性和可控性特点。螺旋模型的每一个迭代周期都包括计划(需求定义)|、|风险分析、工程实现和町 审14个阶段。螺旋模型是一个风险驱动的模型,每个迭代周期都不应该太长(一般是2-8周左右)螺旋模型优点:?支持用户需求的动态变化?原型可看作形式的可执行的需求规格说明,易于为双方共同理解;开发者和用户共同参与软件开发,可 尽早发现软 件中的错误。?螺旋模型特别强调原型的可扩充性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号