0501《软件工程》2018年6月期末考试指导
发布时间:2023-11-20 08:11:59浏览次数:490501《软件工程》2018 年 6 月期末考试指导一、考试说明(一)说明满分为 100 分,考试时间为 90 分钟, 考试形式为闭卷。(二)题型及各题型所占分数和相应的答题技巧1.多项选择(每题 5 分,共 6 题,总计 30 分)答题技巧:首先要注意是多项选择,每个选项都要读到,以判断是否正确。复习时可以注意一下出现三、四、五个/点/步骤等字样的课程内容。2.简答题(每题 10 分,共 4 题,总计 40 分)答题技巧:需要答出与问题相关的重要知识点(即讲义或课件中的知识要点),如需要 ,可对相关内容展开简要阐述。3.综合论述题(每项 30 分,共 1 题,总计 30 分)答题技巧:除了结合题目给出重要的知识点外,还要在此基础上对知识点加以扩展阐述 。抓住重点,言之有据,论之有理。二、复习重点内容第一章 软件工程的内容与方法1. 计算机的组成计算机(Computer)由硬件(Hardware)和软件(Soware)组成;硬件是看得见、摸得着的电子机械设备块,如机箱、主板、硬盘、光盘、软盘、电源、显示器、键盘、鼠标、打印机、电缆等等;软件是依附在硬件上面的程序、数据和文档的集合,是指挥控制计算机系统(包括硬件和软件)工作的神经中枢。如果将硬件比做人的身体,那么软件就相当于人的神经中枢和知识才能。2. 程序的复杂性度量方法:程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发成本、开发周期的长短和软件内部潜伏错误的多少:其度量方法有: Halstead 的软件科学、代码行度量法、McCabe 度量法。3. 软件工程的 5 个面向实施理论:面向流程分析,就是面向流程进行需求分析。面向数据设计,就是面向元数据进行概要设计。面向对象实现,就是面向对象进行详细设计和编程实现。面向功能测试,就是面向功能进行单元测试、集成测试、Alpha 测试和 Beta 测试。面向过程管理,就是面向过程对软件生存周期各个阶段进行管理和控制。4. 信息系统的 7 层结构依次是用户层、业务层、功能层、数据层、工具层、OS 层、物理层。第二章 软件生存周期及开发模型1.生存周期模型裁剪指南生命周期模型裁剪指南:在一个成熟的 IT 企业或软件组织内部,根据上述通用的 4 个软件开发模型的普遍原则,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本单位的“生存周期模型裁剪指南”,有针对性地对选定的软件开发模型中定义的生存周期,进行恰当的裁剪,使它完全适合于本单位的需求。所谓裁剪,就是对原模型中定义的内容进
差异:(1)《用户需求报告》是对外的,《需求规格说明书》是对内的 ;(2)《用户需求报告》是合同的产物,《需求规格说明书》是立项建议书的产物; (3) 由《用户需求报告》可产生《需求规格说明书》; (4) 需要注意的问题国内有的软件公司,不仅将用户需求报告和需求规格说明书不加区分地合二而一,而且还将概要设计说明书和详细设计说明书也不加区分地合二而一。这种做法对小而熟悉的项目可以,对大而生疏的项目不合适。在软件开发的总工作量中,需求的工作量一般占 30%,设计的工作量一般占 30%,编码和单元测试的工作量一般占 30%,Alpha 测试的工作量一般占 5%,返工返修的工作量一般占5%。那种认为需求不重要、设计可不做、一上来就写程序的观点和做法是完全错误的。4.风险分析、软件工程实施过程中主要会遇到哪些风险,对这些风险进行风险分析所谓风险分析实际上就是一系列风险管理步骤。其中包括风险识别、风险估计、风险优化、风险管理策略、风险解决和风险监督。这些步骤贯穿在软件工程过程中。软件一般存在五种风险,分别是:政策风险、技术风险、技能风险、资源风险、其他风险;1)政策风险:IT 企业外部和 IT 企业内部两个方面的政策及政策的变化,将会给项目带来什么风险2)技术风险:新技术的成熟程度及难度系数,将会给项目带来什么风险3)技能风险:项目组成员学习、领会、掌握、运用新技术的能力,将会给项目带来什么风险4) 资源风险:保证项目正常进行所需的各种资源的供应程度,将会给项目带来什么风险5) 其他风险:目前意想不到的风险,即不可预测的风险,如天灾人祸技能风险与技术风险区别在于:技能风险指项目组成员学习、领会、掌握、运用新技术的能力,将会给项目带来什么风险;技术风险指新技术的成熟程度及难度系数,将会给项目带来什么风险。三、重点习题(一)多项选择1. 习惯上,把软件工程的 称为软件工程三要素。① 方法 ② 模型 ③ 过程 ④ 工具 ⑤ 数据2. 软件建模的三个模型不完全是并列关系,而应以 为中心,以 为两个基本点。尤其是在企业信息系统的分析、设计和实现中,因为关系型数据 库管理系统RDBMS 仍然是其支撑平台,所以应该这样去理解三个模型的建模思想。① 业务模型 ② 结构模型 ③ 功能模型 ④ 数据模型3. 不管按照什么模型进行软件测试,根据“五个面向”的实施理论,在本质上说,所有的测试都是面向功能的,即测试软件产品是否满足客户的功能需求,这里的功能需求是广义的,它包括 等需求。① 过程 ② 接口 ③ 界面④ 功能 ⑤ 性能 ⑥ 需求4. 软件工程中主要存在 3 类过程管理模型: 。① ISO9000 质量管理和质量保证体系;② CMM 过程能力成熟度模型;
③ CASE 工具④ 企业文化(微软企业文化、敏捷文化现象等)。5. 从宏观上讲,软件实现包括 。从微观上讲,软件实现是指 。① 详细设计 ② 编程实现 ③ 单元测试 ④ 集成测试 ⑤ 编程实现6. 在如何认识软件质量方面,Garvin(1984)描述了不同的人的 5 种不同视角,它们分别是: 。①基于价值的视角②基于需求的视角③制造业的视角 ④面向对象的视角 ⑤先验论的视角 ⑥产品的视角⑦用户的视角⑧基于流程的视角(二)简答题1. 软件的四种开发方法:面向过程的方法、面向对象的方法、面向数据的方法和形式化的方法对比有什么优缺点?各自适合的场合是什么?2. 面向过程详细设计中描述工具流程图的表示元数有哪些?并对每种元数进行说明。3. 画出 SW-CMM 的体系结构(或内部结构),请简述你对它的理解。4. 立项的具体表现形式是什么?立项建议书的编译者为什么主要是软件公司的市场销售人员,而不是开发人员?(三)综合论述题画出下列问题的顶层和 0 层数据流图。某运动会管理系统接收来自运动员的报名单、裁判的比赛项目和项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次、团体名次发送给发布台。该系统有两部分功能:1、登记报名单:接收报名单、比赛项目,产生运动员号码单、项目参加者,形成运动员名单及团体成绩表两种数据存储。2、统计成绩:接收项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。四、重点习题参考答案(答案仅供参考)(一)多项选择1. ① 、③、④ 2. ④ ① 、③ 3. ② 、③、④、⑤ 4. ① 、 ② 、④ 5. ① 、②、③、④ ③ 、 ⑤ 6. ⑤ 、 ⑦ 、③、 ⑥ 、① (二)简答题1. 软件的四种开发方法:面向过程的方法、面向对象的方法、面向数据的方法和形式化的方法对比有什么优缺点?各自适合的场合是什么?【答题要点】方法名称 优点 缺点 适合的场所面向过程的方法 简单好学不适应窗口界面,维护困难大型工程计算,实时数据跟踪处理,各种自动化控制系统,以及系统软件实现等领域
面向对象的方法 功能强大,易于维护 不易掌握互联网时代,完全由用户交互控制程序执行过程的应用软件和系统软件的开发面向数据的方法 通俗易懂 不适应窗口界面以关系数据库管理系统为支撑环境的信息系统建设形式化方法 准确、严谨 难于上手和应用对安全性要求极高,不容许出错的软件系统,如军事、医药、交通等领域2. 面向过程详细设计中描述工具流程图的表示元数有哪些?并对每种元数进行说明。【答题要点】名称 图例 说明终结符 表示流程的开始和结束处理 表示程序的计算步骤或处理过程,在方框内填写处理的名称或程序语句判断 表示逻辑判断或分支,用于决定执行后续的路径,在菱形框内填写判断的条件输入/输出 获取待处理的信息(输入),记录或显示已处理的信息(输出)连线 连接其它的符号,表示执行顺序或数据流向3. 画出 SW-CMM 的体系结构(或内部结构),请简述你对它的理解。【答题要点】SW-CMM 模型的体系结构包括五个成熟度级别,较为全面地描述和分析软件过程能力的发展程度,建立了一个描述一个组织的软件过程成熟度的分级标准。这五个级别主要特征为:①初始级②可重复级③确定级④管理级⑤优化级对以上五个特点加以说明。4.立项的具体表现形式是什么?立项建议书的编译者为什么主要是软件公司的市场销售人员,而不是开发人员?【答题要点】
立项的具体表现形式就是在市场调研的基础上,分析立项的必要性(是否有市场前景)和可能性(是否有能力实现),并具体列出系统的功能、性能、接口和运行环境等方面的需求、当前客户群和潜在客户群的情况,以及投入产出分析。然后按照编写参考指南书写立项建议书,并对它进行评审,评审通过后才算正式立项。立项建议书的编制者一般不是软件开发人员,而是软件公司的市场销售人员,因为他们对市场行情及客户需求熟悉,所以在此给出它的编写参考指南,对市场销售人员和软件策划人员都会有帮助。(三)综合论述题画出下列问题的顶层和 0 层数据流图。某运动会管理系统接收来自运动员的报名单、裁判的比赛项目和项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次、团体名次发送给发布台。该系统有两部分功能:1、登记报名单:接收报名单、比赛项目,产生运动员号码单、项目参加者,形成运动员名单及团体成绩表两种数据存储。2、统计成绩:接收项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。【答题要点】说明:本考试指导只适用于 201803 学期 6 月期末考试使用,包括正考和重修。指导中的章节知识点涵盖考试所有内容,给出的习题为考试类型题,习题答案要点只作为参考,详见课程讲义或课程 ppt。在复习中有任何问题请到课程答疑区咨询。祝大家考试顺利!
行增、改、删,去掉对本单位不适合的部分,增加对本单位适用的内容,同时进一步细化,从而构成了完全适合本单位的“生存周期模型裁剪指南”。该“指南”在软件组织内部,专供高层经理和项目经理在软件策划中选取软件开发模型时使用。2. 增量模型增量模型(Incremental Model)是遵循递增方式来进行软件开发的。软件产品被作为一组增量构件(模块),每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。这一过程就像小孩子搭积木盖房子一样.增量模型的本意是:要开发一个大的软件系统,先开发其中的一个核心模块(或子系统),然后再开发其他模块(或子系统),这样一个个模块(或子系统)地增加上去,就象搭积木一样,直至整个系统开发完毕为止。当然,在每增加一个模块前,先要对该模块进行模块测试。通过后再将此模块加入到系统中,然后还要进行系统集成测试(联调)。系统集成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。增量模型的特点:增量模型的软件系统本身应该是模块化的,每个模块应该是高内聚(模块内部的数据与信息关系紧密)、低耦合(模块之间的数据与信息联系松散)、信息隐蔽的,这样的模块当然也是可组装的、可拆卸。任务或功能模块驱动,可以分阶段提交产品;有多个任务单,这些多个任务单的集合,构成项目的一个总任务书,或总用户需求报告/需求规格说明书选择条件:不是任何软件都可以采用增量模型的,软件项目或产品选择增量模型,必须满足下列条件:在整个项目开发过程中,需求都可能发生变化,客户接受分阶段交付;分析设计人员对应用领域不熟悉,难以一步到位;中等或高风险项目(工期过紧且可分阶段提交的系统或目标、环境不熟悉);用户可参与到整个软件开发过程中;使用面向对象的语言或第四代语言;软件公司自己有较好的类库、构件库。3. 软件开发模型也称软件过程模型,从一特定角度提出的软件过程的简化描述,是对被描述 的实际过程的抽象,它包括构成软件过程的各种活动、软件产品以及软件工程参与人员的不同角色。软件过程模型体现的是开发策略,并覆盖过程、方法和工具三个层次,代表了一种将本质上无序的活动有序化的企图,包括瀑布模型、增量模型、迭代模型和原型模型等多种模型。4. 软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。开发模型与生存周期有彼此对应关系。5. 生命周期模型裁剪指南:在一个成熟的 IT 企业或软件组织内部,根据上述通用的 4个软件开发模型的普遍原则,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本单位的“生存周期模型裁剪指南”,有针对性地对选定的软件开发模型中定义的生存周期,进行恰当的裁剪,使它完全适合于本单位的需求。所谓裁剪,就是对原模型中定义的内容进行增、改、删,去掉对本单位不适合的部分,增加对本单位适用的内容,同时进一步细化,从而构成了完全适合本单位的“生存周期模型裁剪指南”。该“指南”在软件组织内部 ,专供高层经理和项目经理在软件策划中选取软件开发模型时使用。6. 瀑布模型的本意是:软件生命周期是由立项、需求分析、策划、概要设计、详细设计、编程、测试、发布、维护等阶段所组成的,把每个阶段当作瀑布中的一个台阶(阶梯),把
软件生存过程比喻成瀑布中的流水,软件生存过程在这些台阶中由上向下地奔流。瀑布模型规定了各项关键软件工程活动,自上而下、相互衔接、逐级下落,如同瀑布的固定次序。当发现某阶段的上游存在缺陷时,可以通过追溯,予以消除或改进,但要付出很大代价,因为水要在瀑布台阶上倒过来向上流动,需要消耗很多能源或动力。第三章 软件立项与合同1.软件立项的具体表现形式立项的具体表现形式就是在市场调研的基础上,分析立项的必要性(是否有市场前景)和可能性(是否有能力实现),并具体列出系统的功能、性能、接口和运行环境等方面的需求、当前客户群和潜在客户群的情况,以及投入产出分析。然后按照编写参考指南书写立项建议书,并对它进行评审,评审通过后才算正式立项。第四章 软件需求1. 顾客、客户和用户之间的区别以及与需求分析之间的关系客户是软件企业合同的签约方,是软件产品的销售对象,客户是顾客的一部分;“顾客”比“客户”的范围更广泛一些,它包括潜在的客户;用户是软件产品的最终使用者,用户是客户的一部分。需求分析就是首先应满足用户的需求,其次要满足客户的需求,再次要满足顾客的需求;即需求分析有层次之分。2. 需求的描述工具需求分析的一个重要的工作,就是建立问题域的概念模型。需求分析描述工具包括实体关系图、 数据流图、用例图、算法流程图、活动图。(1)实体-联系模型实体联系模型是用户对数据和加工的需求用实体联系模型(即 E-R 图)表达出来,明确描述应用系统的概念结构数据模型,为建立数据库设计打好基础。 对于较复杂的系统,通常要先画出单个用户的分 E-R 图,然后将各分 E-R 图集合成总 E-R 图,并对总 E-R 图进行优化,如去掉冗余的属性和联系等,以得到整个应用系统的概念结构模型。 实体关系图:简记 E-R 图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。描述数据对象间的关系,ERD 是用来进行数据建模活动的记号,在 ERD 中出现的每个数据对象的属性可以使用“数据对象描述”来描述。E-R 图将系统中所有的元数据按照其内部规律组织在一起,通过它们再将所有原始数据组织在一起,有了这些原始数据,再经过各种算法分析,就能派生出系统中的一些输入数据 ,从而满足人们对信息系统的各种需求。数据字典是系统中所有元数据的集合,或者说是系统中所有的表名、字段名、关系名的集合。由此可见,E-R 图及其数据字典是信息系统的数据模型。(2)数据流图面向过程的分析方法也称结构化分析,采用“自顶向下,由外到内,逐层分解”的分析思想,即将一个复杂的系统逐层分解成许多简单的基本加工,当信息“流”过系统时,被系统加工变换。先画出的顶层数据流图,它高度抽象地反映了系统的全貌,准确地描述了系统与外界的数据联系和系统的范围。再逐层画出的底层数据流图,具体地描述上层系统的细节。此外还需要使用加工说明来具体描述每个加工的处理过程和方法;用数据字典说明每个数据流的组成、每个数据文件的内容以及每个数据项的定义等。加工说明、数据字典作为辅助手段,共同给出了数据流图中每个元素的精确定义。数据流图的描述符号主要只有四种,即:数据源或数据潭、数据流动的连线、数据加工
或处理泡、输入或输出文件。(3)用例图在统一建模语言 UML 中,用例图又叫做用况图,有时又称为 Use Case 图。它用于定义系统的行为,展示角色(系统的外部实体,即参入者)与用例(系统执行的服务)之间的相互作用。用例图是需求和系统行为设计的高层模型,它以图形化的方式描述外部实体对系统功能的感知。(4)活动图在统一建模语言 UML 中,活动图用于描述系统行为,在需求阶段,可以配合用例图说明复杂的交互过程。活动图由开始点、活动、转换和结束点组成。一个活动图只能包含一个开始点,可以有多个结束点。开始点、活动、结束点之间通过转换连接。通俗地讲,数据库是表的集合,表由字段组成,表中存放着记录。由于记录的数据可以是原始数据、信息代码数据、统计数据和临时数据 4 种,所以对应的又可将表划分为基本表、代码表、中间表、临时表 4 种。3. 需求管理的任务与内容需求管理的中心任务,是保证软件项目或产品满足客户在软件功能、性能、接口三个方面的需求。在开发过程中,经常会碰到客户不明确的需求及频繁的需求变更,正确地对待并处理这种情况,可以保证软件产品在预计的进度和成本范围内提交。需求管理过程的目标,是管理和控制需求,维护软件计划、产品和活动与需求的一致性,并保证需求在软件项目中得到实现。按照“五个面向理论”,软件管理是面向过程的。需求管理是面向需求过程的,需求管理过程主要包括需求确认、需求评审、需求跟踪和需求变更活动。站在“五个面向理论”角度,即站在“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”的角度上,来划分软件维护的方法。也就是说,对需求分析的维护,要采取面向业务流程的方法。对实现的维护,要采取面向对象的方法。对测试的维护,要采取面向功能的方法。对管理的维护,要采取面向过程管理的方法。对设计的维护,要采取面向元数据的方法。软件开发始于需求确认。需求管理过程要求指定明确的负责人,负责与客户协商并确认需求。协商与确认客户的需求,包括确认非技术需求、技术需求及编制需求跟踪矩阵。(1)非技术需求,一般在协议、条件和合同条款中描述,包括提交的产品、提交的日期和里程碑等内容。(2)技术需求,描述系统的软件功能、性能、接口、设计约束、编程语言和界面需求等多方面内容。(3)需求跟踪矩阵,是在充分了解技术需求的基础上编制的。需求跟踪矩阵的建立,使项目经理能够跟踪每一项需求的实现状态。第五章 软件策划1. 对软件工作产品的规模,进行量化估计的方法:序号 估计方法 估计单位 方法说明1功能点个数 N 个功能点/人月一 个 人 月 的 工 作量,能完成的功能点个数2性能点个数 N 个性能点/人月 一 个 人 月 的 工 作
量,能完成的性能点个数3代码行数 N 行代码/人月一 个 人 月 的 工 作量,能完成的代码行数4实体个数 N 个实体/人月一 个 人 月 的 工 作量,能完成的实体个数5需求个 数 ( 用 况Use case 个数)N 个需求数/人月一 个 人 月 的 工 作量,能完成的 Use case 个数6文档页数 N 页文档/人月一 个 人 月 的 工 作量,能完成的文档页数2. 软件策划和软件项目策划是一个意思。它的输入是软件《合同》/《立项建议书》、《任务书》、《用户需求报告》,输出是《软件开发计划》(包括质量保证计划、软件配置管理计划、测试计划、评审计划)。3. 用于估算软件项目规模的方法有 Line Of Code(LOC)、Function Point(FP);用于估算软件开发成本的模型有 IBM、Putnam、COCOMO 。第六章 软件设计1.分析模型的结构 模型的核心是“数据字典”包括软件使用或生产的所有数据对象描述的中心库。围绕这个核心有三种图:“实体-关系图”(ERD):描述数据对象间的关系,ERD 是用来进行数据建模活动的记号,在 ERD 中出现的每个数据对象的属性可以使用“数据对象描述”来描述;“数据流图”(DFD)服务于两个目的:指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能(和子功能)。DFD 提供了附加的信息,它们可以被用于信息域的分析,并作为功能建模的基础。在DFD 中出现的每个功能的描述包含在“加工规约”(PSPEC)中。“状态-变迁图”(STD)指明作为外部事件的结果,系统将如何动作,为此,STD 表示了系统的各种行为模式(称为“状态”)以及在状态间进行变迁的方式。STD 是行为建模的基础,关于软件控制方面的附加信息包含在“控制规约”(CSPEC)中。2. 软件详细设计工具可分为 3 类,即图形工具、语言工具和表格工具。图形工具中,
流程图简单而应用广泛;NS 图表示法中,每个处理过程用一个盒子表示,盒子可以嵌套;PAD 图可以纵横延伸,图形的空间效果好;PDL 是一种设计和描述程序的语言,它是一种面向机器的语言。第七章 软件建模1.三个模型建模思想软件建模中的三个模型是指业务模型、功能模型和数据模型。【定义 7-1】 功能模型 FM(Function Model)是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。【定义 7-2】 业务模型 OM(Operation Model)是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。【定义 7-3】 数据模型 DM(Data Model)是描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。三个模型建模思想总结:三个模型建模思想的优点:(1)符合中国人的心理: (2)符合客观事物的发展规律。因为做任何事情,都必须回答三个问题: (3)符合将复杂问题简单化的哲学思想。 (4)符合“简单、方便、直观”的原则。 (5)符合节省成本降低费用的经济效益目标。 (6)三个模型的建模思想既适合应用软件建模,又适合系统软件建模。 三个模型建模思想的缺点:(1)功能模型表述不规范:目前,功能模型还只能用“功能点列表、性能点列表、接口列表”这三个列表来表示,或者用 UML 的用例图和用况规约来描述,其他还没有找到更好的方法。 (2)业务模型表述不规范:目前,业务模型还只能从“业务操作步骤、业务流程图、用户操作手册”这三个方面来表示。在 UML 中,完整的业务模型由用例图、时序图、交互图、状态图、活动图来表述,其他还没有找到更好的办法。 (3)只能覆盖需求分析和设计两个阶段,不能覆盖整个软件生存周期。业务模型和功能模型主要适合在软件需求阶段建模,数据模型主要适合在软件设计阶段建模。当然,这三个模型对软件实现、软件测试两个阶段,也具有重要指导意义。 值得思考的问题:(1)业务模型和功能模型描述方法的改进和提高,是三个模型建模思想的发展方向。既然UML 的作者申明,UML 只是一种建模语言,不是一种方法论,它独立于过程,不包括过程中的方法与步骤,利用它建模时,可遵循任何类型的建模过程。由此可见,方法论与语言工具是不同的,三个模型的建模思想属于方法论,UML 属语言工具。 (2)数据模型能否可以用类图来创建呢?回答是不行。那该怎么办?为了解决这个问题,UML 中新增加了数据模型的语法,其实现工具 Rose 2002 也支持这一功能。在 Rose 2002的逻辑视图中,可以创建表以及表中的字段、约束、主键、外键、关系、索引、触发器和存储过程。这样,就将 Rose 的建模方式与三个模型的建模思想结合在一起了。 (3)三个模型不完全是并列关系,而应以数据模型为中心,以业务模型和功能模型为两个基本点。尤其是在企业信息系统的分析、设计和实现中,因为关系型数据库管理系统
RDBMS 仍然是其支撑平台,所以应该这样去理解三个模型的建模思想。 (4)“三个模型”的思想,加上“五个面向”的实施理论,就构成了一个完整的方法论,该方法论不仅适合信息系统建设,而且也适合其他应用软件和系统软件的建设。 2. 功能模型描述系统能做什么,是系统所有功能的集合,具体表现在系统的功能、性能、接口、界面这些功能上。第八章 软件实现1. 人机交互的黄金三原则Theo Mandel 创造了三条黄金原则:置用户于控制之下;减少用户的记忆负担;保持界面一致。1) 置用户于控制之下。以不强迫用户进入不需要的或不但愿的动作的体例来界说交互体例,许可用户交互可以被间断和裁撤,当手艺级别增添时可以使交互流水化并许可定制交互使用户隔离内部手艺细节,设计应许可用户和呈此刻屏幕上的对象直接交互。2) 减少用户的记忆负担。减少用户对短期记忆的要求,成立有意义的缺省,界说直觉性的捷径,快捷体例,界面的视觉结构应该基于真实世界的隐喻3) 保持界面一致。用户应以一致的方式展示和获取信息,所有可视信息的组织均按照均按照贯穿所有屏幕显示所保持的设计标准。输入机制被约束到有限的集合 ,在整个应用中被一致地使用。从任务到任务的导航机制被一致地定义和实现。2. 软件实现的输入/输出,原则软件实现的输入是《详细设计说明书》,输出是源程序、目标程序及用户指南。软件的实现原则:尽可能地简单。在软件实现过程中,应创建简单、易读的代码。相同功能的代码只写一次。易于验证。无论是在编码、测试还是实际操作中,软件工程师应很容易地发现其中的错误。自动化的单元测试可帮助产生易于验证的代码。适应变化。外部环境、软件需求和软件设计,在整个开发过程中可能会随时变化,因此要求软件实现时考虑适应这些变化。遵守某一编程规范。选择项目组成员最熟悉的工具或语言。第九章 软件测试1.软件测试的分类软件测试分类的实质,是软件测试技术的分类。 (1)动态测试:通过运行程序开展测试工作,即软件测试人员通过使用软件来找出问题。(2)静态测试:不通过运行程序来开展测试工作。这里并不局限于直接阅读、检测代码,还包括阅读和检测文档。(3)黑盒测试:又叫功能测试。盒子指的是被测试的软件,“黑盒”就是只知道被测软件的外部情况,主要是界面和接口,被测软件的内部逻辑结构和数据结构,对测试人员是不可见的。(4)白盒测试:可以理解为对程序执行路径的测试。诸如玻璃盒测试、透明盒测试、开放盒测试、结构化测试、基于代码的测试、逻辑驱动测试等。2.进行软件测试的原因
软件质量问题迫在眉睫客户对投放市场的软件产品质量不满意,从测试角度考虑原因有两种可能: 一是软件开发商采用了非正规的测试方法和测试过程,对软件进行测试,或者根本就没有按照正规要求进行软件测试。 二是软件开发商按照现有的正规做法,对软件进行了测试,但是,软件质量仍不能达到客户的满意度,这说明现有的软件测试标准、方法和过程有待改进。软件的缺陷难以根除,但软件的质量是可以改进的。加强软件测试是控制和提高软件质量的一个行之有效的办法。第十章 软件发布与实施1.三类软件产品发布策略与宣传方式的差异第一类不需要客户化的软件产品,在软件产品发布时只需要一份广告,它为客户准备的文档资料只是一份用户指南,而且这份用户指南不是随意赠送的,必须与产品打包一起销售。第二类只需要少量客户化工作的软件产品,在软件产品发布时除了一份广告之外,还准备了一份赠送给客户的文档资料,它是一份软件产品客户化的宣传方案。第三类需要重新做业务流程规范和需求规格定义的软件产品,在软件产品发布时除了一份广告之外,还有一份准备赠送给客户的资料是行业应用软件框架,或是行业应用软件解决方案,该份资料不大详细,不会暴露软件企业的技术机密。第十一章 软件维护1.UML 对软件维护的影响 UML 把软件生命周期定义为四个主要阶段:初始、细化、构造、移交。经过这四个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而生成一个软件产品。首次经历这四个阶段称为该产品的初始开发周期,除非该产品的生命终止,否则它将重复初始、细化、构造、移交这四个阶段,从而演化为下一代产品,这就是旧产品的修理维护 ,这就是新产品的升级换代,这就是开发周期的演化,这就是 UML 对软件维护工作的影响。2. 传统的软件维护一般分为纠错性维护、适应性维护、完善性维护、预防性维护四类,比较新的分类包括面向缺陷的程序级维护和面向功能的设计级维护两类。第十二章 软件过程管理1.SW-CMM 模型的体系结构SW-CMM 模型的体系结构包括五个成熟度级别,较为全面地描述和分析软件过程能力的发展程度,建立了一个描述一个组织的软件过程成熟度的分级标准。这五个级别主要特征为:初始级。软件过程的特点是杂乱无章,有时甚至混乱,几乎没有明确定义的步骤,成功完全依赖于个人努力和英雄式核心人物。可重复级。建立了基本的项目管理过程来跟踪成本、进度和机能。有必要的过程准则来重复以前在同类项目的成功。确定级。管理和工程的软件过程已文件化、标准化,并综合成整个软件开发组织的标准软件过程。所有的项目都采用根据实际情况修改后得到的标准软件过程来发展和维护软件。管理级。制定了软件过程和产品质量的详细的度量标准。软件过程和产品的质量都被开发组织的成员所理解和控制。优化级。加强了定量分析,通过来自过程质量反馈和来自新观念、新科技的反馈使过程能不断持续地改进。2. 软件工程中主要存在 3 类过程管理模型:ISO9000 质量管理和质量保证体系、CMM过程能力成熟度模型、企业文化(微软企业文化、敏捷文化现象等)。第十三章 软件配置管理
1.配置管理员的职责配置管理员是一个工作岗位。 对于不同的配置管理工具,配置管理员的具体操作内容可能有所不同,但是配置管理思路和职责是相同的,至少是相近的。 下面介绍一下他们的工作职责: (1) 与项目经理一起,识别出项目的所有基线,并标识出这些基线及其所属的配置项,再根据有关规范和规程制定配置管理计划;(2) 在配置管理服务器上建立配置管理库,作为配置管理的工作仓库,并对仓库进行管理和维护。该仓库由软件开发库、软件基线库和软件产品库组成。再根据项目经理确认的权限清单,进行授权分配,以实现项目组内和相关组间的配置项归档、保密、传输或共享; (3) 配置项变更控制。它包括变更申请、评审和批准、实行变更、测试变更对其他配置项的影响、变更验证和入库;(4) 基线变更控制。工作程序与配置项变更控制相同;(5) 最终软件版本产品生成的控制。最终软件版本产品由软件基线库中的配置项组装而成,在配置组装之前,必须冻结该产品的所有配置项。生成之后,将此产品入库到软件产品库,并对其实行冻结;(6) 对配置项、基线、软件版本产品进行跟踪和审计,并编制配置管理活动报告,供相关组和个人阅读;(7) 定期或事件驱动,对软件开发人员进行配置管理知识培训;(8) 配置管理工具的安装,配置管理服务器的日常维护。2. 配置管理作为软件开发活动中的一项重要工作,其工作范围主要包括以下四个方面:标识软件工作产品(又称标识配置项);进行配置控制;执行配置控制;执行配置审计。第十五章 软件培训1、规范是对过程的约束,标准是对产品的约束,制度是对行为的约束。第十六章 软件项目管理1.开发文档和管理文档:软件文档分开发文档和管理文档两大类:开发文档主要由项目组书写,用于指导软件开发:管理文档主要由软件工程管理部门书写,用于指导软件管理和决策。各种文档之间的覆盖关系如下: 《目标程序》覆盖《源程序》; 《源程序》覆盖《详细设计说明书》; 《详细设计说明书》覆盖《概要设计说明书》; 《概要设计说明书》覆盖《需求规格说明书》; 《需求规格说明书》覆盖《用户需求报告》; 《用户需求报告》覆盖《软件合同》或《软件任务书》。 里程碑是阶段性的产物,是工作产品;可交付的文档可以是工作制品。2.里程碑与可交付的文档的区别:里程碑是阶段性的产物,是工作产品;可交付的文档可以是工作制品。3. 软件需求、用户需求报告与需求规格说明书的差异软件需求就是为了解决现实世界中的特定问题必须展现的属性。这里的问题可能是用户的任务自动化,或由软件来完成一个组织的业务处理,或控制一个设备等等。