2011新版本软件开发复习提纲

合集下载

2011年软考系统架构设计师知识要点第五章

2011年软考系统架构设计师知识要点第五章

5.1.1 软件架构设计与生命周期1、需求分析阶段需求和 SA设计面临的是不同的对象:一个是问题空间;另一个是解空间。

保持二者的可跟踪性和转换。

2、设计阶段1.传统的设计概念只包括构件,随着研究的深入,构件间的互联机制逐渐独立出来,成为与构件同等级别的实体,称为连接子。

2.体系结构描述语言(Architecture Description Language ADL)对连接子的重视成为区分 ADL和其他建模语言的重要特征之一。

3.不同的视角得到多个视图,组织起来以描述整体的SA模型;不同侧面的视图反映所关注的系统的特定方面,体现了关注点分离的思想。

3、实现阶段团队的结构应该和体系结构模型有一定的对应关系,提高软件开发效率和质量。

分析和记录不同版本构件和连接子之间的演化。

填补高层 SA模型和底层实现之间的鸿沟,典型的方法如下:1.引入实现阶段的概念。

2.SA模型逐步精化。

3.封装底层称为较大粒度构件。

4、构件组装阶段可复用构件组装可以在较高层次上实现系统,研究内容包括:1.如何互联。

2.如何检测并消除体系结构失配问题。

中间件跨平台交互。

产品化的中间件更好地保证最终系统的质量,中间件导向的体系结构风格。

失配是指复用过程中,待复用构件对最终系统的体系结构和环境的架设(Assumption)与实际状况下不同而导致的冲突。

5、部署阶段软件构件的互联性、硬件的拓扑结构、硬件资源占用。

6、后开发阶段实现中的软件往往具有动态性,一类是软件内部执行所导致的体系结构改变,另一类变化是软件系统外部的请求对软件进行的重配置。

升级或进行其他修改时不能停机。

SA重建是指从已实现的系统中获取体系结构的过程。

5.2 基于架构的软件开发方法5.2.1 体系结构的设计方法概述基于体系结构的软件设计(Architecture-Based Software Design ABSD)方法。

体系结构驱动,指构成体系结构的商业、质量、功能需求的组合驱动。

软件工程复习提纲

软件工程复习提纲

软件工程复习提纲1.软件危机、软件工程;比较瀑布模型、快速原形模型、螺旋模型、增量模型 2.软件周期各阶段主要任务3.黑盒测试方法、白盒测试包括那些测试?调试,软件维护内容、软件配置管理 4.ISO9000-3,CMM 等级特征、甘特图、工程网络图主题层类与对象层 结构层 属性层服务层5.类、封装、继承6.程序流程图、PAD图,PDL语言7.数据流图→软件结构图某培训中心要研制一个计算机管理系统。

它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。

1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件.课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。

2)如果是想注销原来已选修的课程,则由注销人员在课程文件.学生文件和账目文件上做相应的修改,并给学生注销单。

3)如果是付款的,则由财务人员在账目文件上登记,也给学生一张收费收据。

要求:1. 对以上问题画出数据流程图。

2. 画出该培训管理的软件结构图的主图。

用SA方法画出下列问题的顶层和0层数据流图。

某运动会管理系统接受来自运动员的报名单.裁判的比赛项目及项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次.团体名次发送给发布台。

该系统有两部分功能:(1)登记报名单:接受报名单.比赛项目,产生运动员号码单.项目参加者,形成运动员名单及团体成绩表两种数据存储。

(2)统计成绩:接受项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。

某图书馆借阅系统有以下功能:(1)借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案),超过规定数量者不予借阅。

对于第一次借阅者则直接办理借阅手续。

(2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。

请对以上问题,画出分层数据流图。

软件工程复习要点

软件工程复习要点

软件工程复习要点软件工程是一门研究如何高效地开发、维护和管理软件的学科。

对于学习软件工程的同学来说,熟练掌握复习要点是非常重要的。

本文将为大家总结并分享软件工程的复习要点,希望能够帮助大家更好地掌握和应用软件工程知识。

一、软件开发过程软件开发过程是指从需求分析到交付软件产品的整个过程。

常用的软件开发过程模型有瀑布模型、迭代模型、敏捷模型等。

要理解和掌握软件开发过程,需要熟悉各个阶段的任务和活动,包括需求分析、设计、编码、测试、交付等环节。

1. 需求分析:确定用户需求,明确软件系统的功能和性能要求。

2. 设计:根据需求分析的结果,进行软件系统的整体设计和详细设计。

3. 编码:将设计好的软件系统转化为具体的实现代码。

4. 测试:对编码完成的软件系统进行测试,发现和纠正其中的问题。

5. 交付:经过测试合格的软件系统交付给用户使用。

二、软件工程方法与工具为了提高软件开发的效率和质量,软件工程使用了一系列方法与工具。

掌握软件工程方法与工具的使用对于软件开发人员来说是非常重要的。

1. 需求管理工具:用于帮助开发团队和用户共同管理和追踪需求,常用的有JIRA、TFS等。

2. 设计工具:用于辅助进行软件系统的设计,常用的有UML工具、Axure等。

3. 编码工具:用于提高编码效率和质量,常用的有IDE集成开发环境、代码托管平台等。

4. 测试工具:用于自动化测试和代码覆盖率分析,常用的有Junit、Selenium等。

5. 配置管理工具:用于管理和控制软件系统的配置,常用的有Git、SVN等。

三、软件质量保证软件质量保证是指通过一系列的措施和活动来确保软件产品的质量。

在软件工程中,软件质量保证是一个非常重要的环节,它直接关系到软件系统能否满足用户的需求。

1. 静态质量保证:通过代码审查、代码规范等手段来预防和发现问题。

2. 动态质量保证:通过测试等手段来发现和解决软件系统中的问题。

3. 配置管理:通过配置管理工具来确保软件系统配置的正确性和一致性。

软件工程复习大纲.pptx

软件工程复习大纲.pptx

投资回收期仅仅是一项经济指标;为了衡量一 项开发工程的价值,还应该考虑其他经济指标。
8
(3)纯收入
衡量工程价值的另一项经济指标是工程的纯收 入,也就是在整个生命周期之内系统的累计经济效 益(折合成现在值)与投资之差。这相当于比较投资 开发一个软件系统和把钱存在银行中(或贷给其他 企业)这两种方案的优劣。如果纯收入为零,则工 程的预期效益和在银行存款一样,但是开发一个系 统要冒风险,因此从经济观点看这项工程可能是不 值得投资的。如果纯收入小于零,那么这项工程显 然不值得投资。
输入 1
输出 1
加工
系统
数据存储/文件 基本系统模型
输入 2
输出 2
11 下图是一个飞机机票预定系统的基本系统模型
订票单
机票预定 系统
机票 帐单
12 下图是机票预定系统的DFD
订票单 旅行社
预定机 票
航班
费用
航班目录
记帐
机票准 备
机票
帐单
旅客
记帐文件
13
DFD图各成分的作用和注意事项: 数据流 由一组数据项组成
进一步分析和澄清问题定义 探索若干种可能的解法 Operational feasibility,操作可行性
系统的操作方式在这个用户组织内行得通? Technical feasibility,技术可行性
使用现有的技术能实现这个系统吗? Economic feasibility,经济可行性
这个系修改一个已有的库存清单系统,使它能在每天送 给采购员一份定货报表。修改已有的库存清单程序并且编 写产生报表的程序,估计共需5000元;系统修改后能及 时定货将消除零件短缺问题,估计因此每年可以节省 2500元,五年共可节省12500元。但是,不能简单地把 5000元和12500元相比较,因为前者是现在投资的钱, 后者是若干年以后节省的钱。假定年利率为12%,利用上 面计算货币现在价值的公式可以算出修改库存清单系统后 每年预计节省的钱的现在价值,如表所示。

软件工程复习提纲PPT

软件工程复习提纲PPT

第三章 需求分析
1、需求分析的任务是什么? 确定对系统的综合要求(功能需求,性能需求,可靠性和可 用性需求,出错处理需求,接口需求,约束,逆向需求,将 来可能提出的要求);分析系统的数据要求(通过建立数据 模型来分析,如数据字典,层次方框图、Warnier图,并将 数据结构规范化);导出系统的逻辑模型(完善数据流图、 实体-联系图、状态转换图、数据字典、主要的处理算法 (IPO图));修正系统开发计划(根据在分析过程中获得 的对系统的更深入更具体的了解,可以比较准确地估计系统 的成本和进度,修订前期制定的开发进度计划)。
第一章 软件工程学概述
3、软件生命周期有哪些3个时期?再细分的话,可分为哪 些阶段? 软件生命周期由软件定义、软件开发和软件维护3个时期 组成,再细分的话,分为问题定义、可行性研究、需求分 析、总体设计、详细设计、编码和单元测试、综合测试、 软件维护8个阶段。其中软件维护阶段工作量最大。
第二章 可行性研究
第三章 需求分析
例子: 银行计算机储蓄系统的工作过程大致如下:储户填 写的存款单或取款单由业务员键入系统,如果是存款则系 统记录存款人姓名、住址(或电话号码)、身份证号码、 存款类型、存款日期、到期日期、利率及密码(可选)等 信息,并打印出存款存单给储户;如果是取款而且存款时 留有密码,则系统首先核对储户密码,若密码正确或存款 时未留密码,则系统计算利息并打印出利息清单给储户。
第五章 总体设计
2、什么模块独立?模块独立如何度量? 模块独立是指开发具有独立功能且和其他模块没有过多 的相互作用的模块。模块独立的概念是模块化,抽象、 信息隐藏和局部化概念的直接结果。模块的独立程度可 以由两个定性标准度量:(1)耦合,指不同模块彼此 间互相依赖(连接)的紧密程度;(2)内聚:指在一 个模块内部各个元素彼此结合的紧密程度。模块独立性 比较强的模块应该是具有高内聚性和的低耦合度。

软件需求复习提纲(1)

软件需求复习提纲(1)

软件需求复习提纲第I部分什么是软件需求?为什么要实现软件需求?哪些人应参与软件需求?一、软件或系统项目涉众:客户: 为达到其公司的业务目标而投资项目或购买产品。

用户:直接或间接与产品打交道,是客户的一部分。

需求分析员:负责编写需求并传达给开发团队。

开发人员:设计、实现和维护产品。

测试人员:确定产品的行为是否与预计的相一致。

文档编制人员:负责编写用户手册、培训资料和系统帮助。

项目经理:制定项目计划并带领开发人员获得成功。

法律人员:确保产品符合所有相关法规。

生产人员:制造包含该软件的产品。

市场营销人员:技术支持及其他与产品和客户打交道的人员。

常见的几种关于需求的定义说法:⑴需求是“任何促成设计决策的因素”;⑵用户为解决某个问题或达到某个目标而需具备的条件或能力。

系统或系统组件为符合合同、标准、规范或其他正式文档而必须满足的条件或必须具备的能力。

上述第一项或第二项中定义的条件和能力的文档表达。

⑶需求是对应该实现什么功能的说明——可以是对系统运行方式或系统特征与属性的描述;还可能是对系统开发过程的约束。

软件需求包括3个不同的层次——业务需求(表示组织或客户高层次的目标)、用户需求(用户的目标,或用户要求系统必须能完成的任务)和功能需求(规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求)。

除此之外,每个系统还有各种非功能需求。

软件需求工程分为需求开发和需求管理两部分需求开发的任务可进一步细分为获取、分析、规格说明和确认。

需求管理的任务是“与客户就软件项目的需求达成并保持一致”需求管理包括下列活动:定义需求基线(某一时刻,对特定版本中已达成一致的需求内容的描述)。

审查需求变更请求,评估其可能产生的影响以决定是否批准。

以可控的方式将批准的需求变更融入项目中。

保持项目计划与需求的同步。

估计需求变更的影响,在此基础上协商新的需求约定。

跟踪每项需求,找到与其对应的设计、源代码和测试用例(test case)。

软件工程期末复习提纲

《软件工程》复习提纲1 软件与软件工程1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,软件的两种普遍定义:①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。

②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。

程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。

数据:使程序能正常操纵信息的数据结构。

文档:描述程序、数据和系统开发以及使用的各种图文资料。

它具有永久性并能供人或机器阅读。

软件的基本特点:·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。

·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。

·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。

而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。

·④软件不存在磨损,物理上不会老化,但存在软件退化问题。

·⑤软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。

1.2软件危机的概念软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。

【由于软件的规模越来越大,复杂度不断增加,软件需求量增大。

而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。

致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。

】“软件危机”主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折;(2)软件生产率低,不能满足需要。

1.3软件工程学的概念(定义)、研究的内容(三要素)1993年IEEE定义:(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。

软件开发工具复习

软件开发⼯具复习软件开发⼯具复习第⼀章绪论1?在计算机技术中,归⼊系统软件的操作系统、汇编程序、编译系统⽆疑也是软件开发必不可少的⼯具,但是,⼀般来说不把它们归⼊软件开发⼯具的范围。

2?理解:软件开发⼯具的范围⼤致可以描述为:在⾼级程序设计语⾔(第三代语⾔)的基础上,为提⾼软件开发质量和效率,从规划、分析、设计、测试、⽂档和管理等各⽅⾯,对软件开发者提供不同程度的帮助的⼀类软件。

注:软件开发⼯具本⾝是⼀种软件,它是开发软件的⼀种软件,是在第三代语⾔的基础上发展起来的。

(第三代语⾔在这⾥指:已经形成的软件开发技术。

第⼀代语⾔:机器语⾔。

第⼆代语⾔:汇编语⾔。

第三代语⾔:⾼级程序设计语⾔(过程化语⾔)。

第四代语⾔:⾮过程化语⾔。

3、⼆⼗世纪六⼗年代初,FORTRAN,ALGOL,COBOL等⾼级程序设计语⾔的成熟与普及,标志着计算机真正⾛出难以应⽤的困窘局⾯。

这就是第三代语⾔的时代。

4、⾼级程序设计语⾔实现了对机器的独⽴性,即它不依赖特定的硬件系统,抽象的逻辑的描述处理和算法,在第三代语⾔的应⽤中,⼈们发现的新的瓶颈——处理过程的描述。

20世纪60年代末期开始,⼈们对软件⼯作的认识⼤⼤深⼊,在认识到软件⼯作重要性的同时,也认识到其⼯作的困难性,这就是所谓软件危机问题。

5、硬件是计算机的躯体,软件是计算机的灵魂。

6、⼈类社会客观世界的复杂性决定了软件本⾝的复杂性。

⼈类知识的丰富多彩决定了软件的极⼤的多样性。

客观世界的动态性决定了软件对可维护性、可重⽤性越来越⾼的要求。

7、⾯对⽇益扩⼤规模的软件,如何保证它的正确性、可靠性,如何控制软件开发的进度与成本,从结构化程序设计、软件⼯程、⾯向对象的程序设计⽅法、即插即⽤的程序设计⽅法,直到⾯向开源软件和互联⽹的程序设计,许多专家进⾏了⼤量的研究⼯作。

8、70年代末到80年代初,很多软件开发⼈员已经想到了⽤软件来⽀持软件开发⼯作,诸如:利⽤⽂字处理软件编写代码,利⽤绘图软件画图等,这个阶段称为利⽤通⽤软件作为辅助⼯具的阶段,或称为没⽤专⽤的软件开发⼯具阶段。

软件工程复习知识点

1.软件危机的概念,内容,原因及消除的途径;软件危机的概念:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题;概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件;软件危机产生的原因:软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确;消除软件危机的途径:1对计算机软件应当有一个正确的认识;2应当有组织、有计划、通过严格的管理手段进行软件的开发;3及时总结软件开发的成功技术和方法并加以推广;4开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施;2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科;基本原理:软件工程的7条基本原理:1用分阶段的生命周期计划严格管理2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应该少而精7承认不断改进软件工程实践的必要性3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型;软件工程方法学包含3个要素:方法、工具和过程;内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学;传统方法学也称为生命周期方法学或结构化范型;4.软件生命周期的具体内容,每一个阶段的任务是什么结合具体的工程例子来理解做软件项目主要分那几个个阶段;①问题定义:确定要求解决的问题是什么②可行性研究:决定该问题是否存在一个可行的解决办法③需求分析:深入了解用户的要求,在要开发的目标系统必须做什么问题和用户取得完全一致的看法;④概要设计:概括回答怎样实现目标系统;概要设计又叫逻辑设计、总体设计、高层设计;⑤详细设计:把解法具体化,设计出程序的详细规格说明;详细设计也叫模块设计、底层设计;⑥编码和单元测试:编写程序的工作量只占软件开发全部工作量的10%-20%;⑦综合测试:软件测试的工作量通常占软件开发全部工作量的40%-50%;⑧软件维护:软件维护的费用通常占软件总费用的55%-70%;①②③为软件定义时期,④⑤⑥⑦为软件开发阶段;④⑤为系统设计,⑥⑦为系统实现;5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的;优点:1可强迫开发人员采用的规范的方法结构化技术;2严格地规定了每个阶段必须提交的文档;3要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;缺点:瀑布模型是由文档驱动的;1开发过程一般不可逆,否则代价太大;2实际的项目开发过程很难严格按照模型进行;3客户往往很难清楚地给出所有需求,而该模型却要求如此;4软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心;快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集;不带反馈环优点:软件产品的开发基本上是线性顺序进行的;1可以得到比较良好的需求定义,容易适应需求的变化;2有利于开发与培训的同步;3开发费用低、开发周期短且对用户更友好;缺点:1客户与开发者对原型理解不同;2准确的原型设计比较困难;3不利于开发人员的创新;增量模型也称为渐增模型;使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试;优点:在较短时间内可以向用户提交可完成部分工作的产品,逐步增加产品功能可以使用户有比较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击;1人员分配灵活,刚开始不用投入大量资源;2如果核心产品很受欢迎,则可增加人力实现下一增量;3可先发布部分功能给客户,对客户起到镇定剂的作用;缺点:1并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构2增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程失去整体性;螺旋模型的基本思想是使用原型及其他方法来尽量降低风险;理解这种模型的一种简便方法是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型;优点:1设计上的灵活性,可以在项目的每个阶段进行变更;2以笑得分段来构建大型系统,使成本计算变得简单容易;3客户始终参与每个阶段的开发,保证项目不偏离正确的方向一击项目的可控性;4随着项目的推进,客户始终掌握项目的最新信息,从而他能够和管理层有效地交互;缺点:1采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标示风险,势必造成重大损失;2过多的迭代次数会增加开发成本,延迟提交时间;喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各阶段可以相互重叠和多次反复,而且项目的整个生存期中还可以嵌入子生存期;就像水喷上去又可以落下来,可以落在中间,还可以落在底部;6.了解可行性研究中的任务和过程;用最小的代价在尽可能短的时间内确定问题是否能够解决;不是解决问题,而是确定问题是否值得去解决;可行性研究的根本任务:对以后的行动方案提出建议;实质:一次大大压缩简化了的系统分析和设计;任务:1.初步确定项目的规模,目标,约束和限制;2.在澄清了问题定义之后,分析员应该导出系统的逻辑模型;3.从系统逻辑模型出发,探索若干种可供选择的主要解法即系统实现方案;4.对每种解决方法都要研究它的可行性;技术可行性、经济可行性、操作可行性过程:1.复查系统规模和目标访问关键人员,描述目标系统的限制和约束;2.研究目前正在使用的系统:现有系统的问题;3.导出新系统的高层逻辑模型;4.进一步定义问题;5.导出和评价供选择的解法;6.推荐行动方针;7.草拟开发计划;8.书写文档提交审查;7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图p388.掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图P409.掌握数据字典的内容、方法、用户和实现p47内容:数据字典由4类元素定义组成;1数据流;2数据流分量即数据元素;3数据存储;4处理;定义数据的方法:数据字典中的定义就是对数据自顶向下的分解;由数据元素组成数据的方式只有下述3种基本类型:顺序选择重复用途:作为分析阶段的工具;实现:P4910.了解成本/效益分析方法p50货币的时间价值投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间纯收入:整个生存周期之内的累计经济效益折成现在值-投资;投资回收率:现在的投资额P和估算出的将来每年的收益Fn,假设系统的使用寿命为n年;11.了解需求分析过程中任务是什么.p471.确定对系统的综合要求功能需求;指定系统必须提供的服务性能需求;指定系统必须满足的定时约束或容量约束可靠性和可用性需求;应定量指定出错处理需求;指环境错误,非系统本身的错误;2.分析系统的数据要求接口需求;常见的接口需求有:用户接口需求、硬件接口需求、软件接口需求、通信接口需求; 约束;常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台;逆向需求;说明软件系统不应该做什么;将来可能提出的要求;3.导出系统的逻辑模型;用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型;4.修正系统开发计划;用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型;12.理解面向数据流自顶向下逐步求精的方法和意义;p59结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法;通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级;方法:为了达到这个目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素;意义:1对数据流图细化之后得到一组新的数据流图,不同的系统元素之间的关系变得更清楚了; 2对这组新数据流图的分析追踪可能产生新的问题,这些问题的答案可能又在数据字典中增加一些新条目,并且可能导致新的或精化的算法描述;3随着分析过程的进展,经过提问和解答的反复循环,分析员越来越深入具体地定义目标系统,最终得到对系统数据和功能要求的满意了解;13.理解分析及建模的意义,需求分析中应该建立哪三种模型有哪些工具来帮助建立这些模型14.需求分析需要建立三种模型:1.数据模型:实体-联系图E-R数据对象即实体之间的关系2.功能模型:数据流图DFD系统对数据进行变换的功能3.行为模型:状态转换图系统的各种状态行为模式及状态之间的转换15.掌握实体关系E-R图的概念,内容和实现方法,能结合具体实例建立实体关系图;P6216.掌握状态图的概念,内容,实现方法和作用;p6517.掌握层次方框图、warnier图、IPO图的概念,内容和作用p6818.有穷状态机的概念和内容;Petri的概念;P77有穷状态机:状态集、输入集、转换函数、初始态、终态集Petri:P8219.总体设计是做什么总体设计的过程是怎样的P9120.总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求;总体设计通常由两个过程组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构;典型的设计过程包括:1.设想选择的方案2.选取理想的方案3.推荐最佳方案4.功能分解5.设计软件结构6.设计数据库7.制定测试计划8.书写文档9.省查和复审21.掌握软件设计的几个设计原理,理解他们的内容和意义;p941模块化就是把程序划分成独立命名且可独立访问的;2抽象;3逐步求精;4信息隐藏和局部化;5模块独立;它有两个定性标准度量:内聚和耦合;22.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;耦合:耦合是对一个软件结构内不同模块之间互连程度;内聚:内聚标志着一个模块内各个元素彼此结合的紧密;耦合是影响软件复杂程度的一个重要因素;设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性;23.耦合包含了哪些类型每个类型的具体内容是什么由低到高24.1非直接耦合:就是没有耦合;2数据耦合:就是参数传递耦合,它属于低级别耦合;3标记耦合:标记耦合指两个模块之间传递的是数据结构;4控制耦合:它属于中级别耦合,比如调度程序与进程之间的耦合,就是控制耦合;5外部耦合:属于高级别耦合6公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合;7内容耦合:属于最高级别耦合,例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合;25.启发性规则的内容及部分概念;1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测26.层次图、HIPO图和结构图的内容;p10227.掌握面向数据流的设计方法,怎样用变换分析法基于数据流图设计出软件总体结构了解其中涉及到的概念,结合例子理解具体是怎么做的;p104概念:面向数据流的设计方法把信息流映射成软件结构,信息流决定了映射的方法,信息流有两种类型:1、信息沿输入通路进入系统,同时由外部形式变换成内部,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统;当数据流图具有这些特征时,这种信息流就叫做变换流;2、数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行;这类数据流应该划为一类特殊的数据流,称为事务流;28.详细设计是做什么p117详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,即经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某些程序设计语言书写的程序;29.什么是结构程序设计p117结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句;30.人机界面设计问题包含哪些p1221、系统响应时间;2、用户帮助设施;3、出错信息处理;4、命令交互31.掌握设计过程中用到的工具:程序流程图的概念,内容和方法;盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD图的概念和内容;掌握判定表的概念和内容;要结合实例来掌握它们;P12432.结合Jackson图来掌握面向数据结构的设计方法;p13033.如何度量程序算法的复杂性p13634.掌握几种测试:单元测试、集成测试、确认测试、白盒测试技术和黑盒测试技术;掌握它们的概念,内容和方法;P14635.理解软件维护的定义、特点和维护过程;P189定义:在软件已交付使用之后,为了改正错误或满足新的需要而修改软件的过程;特点:1结构化维护与非结构化维护差别巨大2维护的代价高昂3维护的问题很多维护过程:1、维护组织2、维护报告3、维护的事件流4、保存维护记录5、评价维护活动;36.掌握面向对象方法学的要点,理解面向对象方法学的优点;P203四个要点:对象、类、继承、消息优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好6、掌握面向对象的概念;37.掌握面向对象的概念;P209对象对象的形象表示,对象的定义,对象的特点其他概念类,实例,消息,方法,属性,封装,继承,多态性,重载38.面向对象建模是建立哪三个模型它们的具体内容是什么P21539.1、描述系统数据结构的对象模型类图:表示静态的、结构化的系统的“数据”性质;它是对模拟客观世界实体的对象彼此间的关系的映射,描述了系统的静态结构;2、描述系统控制结构的动态模型状态转换图:动态模型表示瞬时的,行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;3、描述系统功能的功能模型用例图,数据流图:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求;40.建立对象模型的内容是什么P235建立对象模型,需要定义一组图形符号,并且规定一组组织这些符号以表示特定语义的规则;也就是说,需要用适当的建模语言来表达模型,建模语言由记号即模型中使用的符号和使用记号的规则语义、语法和语用组成;41.掌握用UML提供的类图来建立对象模型的方法;理解类图的定义、基本符号和具体内容;类图建立对象模型的方法:1、定义类2、定义属性3、定义服务4、定义类与类之间的各种关系关联、泛化、依赖和细化;类图的定义:类图描述类与类之间的静态关系;类图是一种静态模型,它是创建其他UML图的基础;基本符号:UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域下面两个区域可省略3个区域分别放类的名字、属性和服务;42.能结合实例掌握类图中类与类之间的关系:关联、泛化继承、依赖和细化;能根据实例情况正确判断出类与类之间的具体关系类型;关联:关联表示两个类的对象之间存在某种语义上的联系;泛化继承:UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系;具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息;泛化关系指出类与类之间存在“一般-特殊”关系;泛化可进一步分成普通泛化和受限泛化;依赖:描述两个模型元素类、用例等之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它是依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素;细化:当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系;43.动态模型的概念、内容;P223概念:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;内容:动态模型是基于事件共享而互相关联的一组状态图的集合;44.功能模型的概念、内容和建立功能模型的方法;P224概念:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此直接地反应用户对目标系统的需求;内容:功能模型由一组数据流图组成;用例图也是进行需求分析和建立功能模型的强有力工具;方法:创建用例模型的工作包括:定义系统,寻找行为者和用例、描述用例,定义用例之间的关系,确认模型;其中,寻找行为者和用例是关键;45.掌握用例图的概念、内容和方法;P224概念:用例图包括模型元素有系统、行为者、用例和用例之间的关系;内容:系统、用例、行为者、用例之间的关系;方法:创建用例模型的工作包括:定义系统,寻找行为者和用例、描述用例,定义用例之间的关系,确认模型;其中,寻找行为者和用例是关键;46.掌握面向对象分析的基本过程:三个子模型与5个层次;P232三个子模型:静态结构对象模型交互次序动态模型数据变换功能模型复杂问题大型系统的对象模型通常由5个层次组成:主题层、类与对象层、结构层、属性层和服务层;47.结合实例来掌握面向对象分析过程中建立对象模型的方法包含哪些步骤;P231 1.首先,系统分析员要对需求文档进行分析;发现和改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准确;2.然后,是需求建模;系统分析员根据提取的用户需求,即用面向对象观点建立对象模型、动态模型和功能模型;3.最后,是需求评审;通过用户、领域专家、系统分析员和系统设计人员的评审,并进行反复修改后,确定需求规格说明;48.结合实例来掌握面向对象分析过程中建立动态模型的方法包含哪些步骤;P24749.结合实例来掌握面向对象分析过程中建立功能模型的方法包含哪些步骤;P25350.能结合实例画事件跟踪图P24951.能结合实例画类的状态图P25052.能结合实例画出0层数据流图与功能级数据流图;P42。

软件工程复习提纲

软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。

3. 归纳总结CASE工具的核心思想。

4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。

5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。

3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。

4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。

部分、章和节都具有标题和序号属性。

第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件开发工具--背诵内容 1

名词解释 1.软件配置(集成) 答:设立一个有效的总控部分,它能够在各个具体工具之上,实现信息的正确传递与转换,帮助人们完成上述协调与配合的工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。 2.项目管理(Project Mangement) 答:项目管理指与固定的生产线上的日常生产管理不同的,具有更大变动性、时间性的一类管理任 3.数据字典(DataDictionary) 答:数据字典是一种描述数据内容的概念模式。(1)它用表格形式列出数据的基本属性以及相互关系。(2)它的雏型是编写软件时的变量说明或标识符清单。(3)它也常常与其他描述工具互相补充、配合使用。 4.实体关系图 答:实体关系图是一种用于描述静态数据的概念模式。它以实体、关系、属性三个基本概念概括数据的基本结构。它广泛应用于数据库的设计中,常常和数据流程图、结构图等互相配合使用。 5.数据流程图(DataFlowDiagram) 答:数据流程图描述某一业务处理系统的信息来源、存储、处理、去向的全面情况,简明扼要地勾画全局。或:数据流程图的基本元素是外部实体(系统外的信息来源或去向),数据处理与存储,用箭头表示信息在它们之间的流动情况。 6.项目管理 答:项目管理是与固定的生产线上的日常生产管理不同的,具有更大的变动性、时间性的一类管理任务。 7.项目数据库 答:项目数据库实际上是信息库的一个组成部分。它记录的是项目本身进展的各种有关信息。项目负责人应当随时掌握这些情况,一方面把住验收质量关,使每一步都扎扎实实,同时掌握全局,及时发现瓶颈环节,从组织上加以解决。 8.信息库 答:信息库是一个包罗万象的,随着项目进度不断修改与补充的数据集合。它在规模上不一定像数据仓库那么大,分析提炼的要求也与数据仓库不同。然而,作为软件开发全过程的信息管理总框纽,它的数据结构是相当复杂的,而且会随时间不断变化,因此,保持一致性的任务变得十分复杂和艰巨。 9.模块的藕合性 答:模块之间的联系及互相影响应尽可能地少,对于必需的联系都应当加以明确的说明。而且一般来说,尽量避免传递控制信号,而仅限于传递处理对象。这种联系及相互影响称为藕合性。 10.面向对象的程序设计 面向对象的特别高设计是人们为模仿现实世界模型而建立的程序设计方法,这种思想源于对现实世界自然结构的认识。人们为了应付现实世界的复杂性,逐渐形成了很好的概括、分类和抽象的能力,并在此基础上应用于程序设计就形成了面向对象的概念。 11.遗传性 答:抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以说明或规定。这就是所谓的“遗传性”。 12.文档 答:功能说明书、总体设计、各模块的设计任务书、每个部分的研制报告、测试报告,直到最终的验收报告和给使用者的用户手册等通称为文档。 13.黑箱检验 答:输入一些信息,通过观察是否能得出预期输出来判断软件是否正确的一种软件测试方法。 14.封装性 答:客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作。作为一个整体,这些对象对外不必公开这些属性与操作。这就是所谓的“封装性”。 15.模块的凝聚性 答:模块的功能在逻辑上尽可能地单一化、明确化,最好做到一一对应。即每一个模块实现一项明确的任务,反之每一项任务仅由一个模块来完成。此即为模块的凝聚性。 17.软件工程 答:为了从根本上提高软件开发的效率和质量,人们吸取在各种传统产业中的成功经验,从组织和管理的角度加强力量,使软件生产从程序员的个人劳动提高成为有组织的、可控制的工程,这种开发软件的方法就是软件工程方法。简言之,软件工程方法就是以工程化的观点来指导软件开发的方法。 18.软件开发工具 答:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。其要点是:(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;(2)它的目的是在人们开发软件中给予各种不同方面、不同程度的支持或帮助;(3)它支持软件开发的全过程,而不是仅限于编码或其他稳定的工作阶段。 19.第四代语言(4GL) 答:第四代语言的原意是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使得用户可以只说明要求做什么,而把具体的执行步骤的安排交由软件自动处理。 软件开发工具--背诵内容 2

20.可视化编程 答:可视化编程:以“所见即所得”的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。 21.总体测试 答:由于设计不可能是百分之百地完美的,即使每个模块都达到了设计任务书的要求,整个系统能否达到预期的目标还需要进行测试,另外,完成的软件与编写的文档是否一致也是必须认真检查的。这一测试称为总体测试。 22.所见即所得 答:在程序设计时,对于界面上的设计只需要用键盘或鼠标在屏幕上直接设计,不用手写代码。设计人员在屏幕上看到的界面,就是所生成程序的运行界面。 23.设计工具 答:设计工具是指在实现阶段对人们提供帮助的工具。例如各种代码生成器,一般所说的第四代语言,帮助人们进行测试的工具(包括提供测试环境或测试数据)等,都属于设计工具之列;它是最直接地帮助人们编写与调试软件的工具。 24.分析工具 答:分析工具主要是指用于支持需求分析的工具。它们虽不是直接帮助人写程序,但是它们帮助人们认识与表述信息需求与信息流程,从逻辑上明确软件的功能与要求。 25.计划工具 答:计划工具是从宏观角度去看待软件开发的软件开发工具。它不仅从项目管理的角度,帮助人们组织与实施项目,并且把有关进度、资源、质量、验收情况等信息有条不紊地管理起来,而且考虑到了项目的反复循环、版本更新。实现了“跨生命周期”的信息管理与共享,为信息以至软件的重用创造了条件。 26.模块测试 答:模块测试是根据总体设计时制定的各个模块的设计任务书,对于程序员完成模块进行验收,看它们是否实现了所要求的功能,是否达到了所要求的性能指标。 27.需求分析 答:软件开发人员从用户的初始要求出发,经过大量的调查研究工作,抽象出应用领域中的实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定出软件系统的功能与性能要求。这一过程称为需求分析。 28.程序? 答:程序是指一套事先编好并存人机器的指令。一台存人了某种程序的计算机与一台没有存入这种程序的计算机,在外表是看不出区别的。然而前者在接到一个启动命令之后,就可以自己执行某项任务,而后者却做不到这点。

简答与论述 1.简述软件发展的几个阶段。 答:(1)机器语言阶段;使用0、1代码进行编程。(2)汇编语言阶段;使用助记符来编写程序,由汇编程序汇编成机器码,编程工作量大大降低,但仍未摆脱对硬件的依赖。与此同时,操作系统的出现从另一方面改善了人们应用计算机的条件。(3)高级语言阶段、高级语言突破了与机器指令一一对应的限制,从而大大提高了程序的可移植性。(4)第四代语言阶段,人们希望机器能够自动地完成更多的工作,包括自动安排某些工作的顺序,而做到只要给机器下达做什么的命令,由机器自己去安排执行的顺序。(5)利用通用软件作为辅助工具的阶段利用文字处理软件来编写文档,利用绘图软件来绘制流程图等。(6)专用软件开发工具阶段支持软件开发的某一个阶段或某一个环节。(7)集成的软件开发工具阶段零散的、分散地支持各个工作阶段、各项具体工作的专用工具之间没有有机地联系起来,从而必然造成冲突与矛盾,以致抵消了使用工具带来的益处。这种情况导致了集成的软件开发工具的产生。 2.试论述软件开发方法发展的新阶段的特点。 答:要点:(1)自动化程度的提高。(2)明确地把需求分析包括进了软件工作的范围之内。(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限。(4)在这一阶段的研究中,吸收了许多管理科学的内容与方法,如程序员的组织、质量的控制等。 3.软件开发工具概念的要点是什么? 答:(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;(2)它的目的是在人们开发软件中给予各种不同方面、不同程度的支持或帮助;(3)它支持软件开发的全过程,而不是仅限于编码或其它稳定的工作阶段。 4.试述软件开发的过程。 答:(1)需求分析阶段:根据初始要求形成严格的、明确的、可供实际开发使用的软件功能说明书。(2)总体设计阶段:根据软件功能说明书的要求,完成软件的总体设计,这包括整个软件的结构设计,公用的数据文件或数据库的设计,各部分的连接方式及信息交换的标准等几个主要内容。(3)实现阶段:完成程序的编写与文档的编写。(4)调试阶段:进行模块的调试与整个软件的联调。 5.学习软件开发工具的目的是什么? 答:了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率之目标。这就是学习软件开发工具的目的。 6.试述软件开发工具的类别。 答:(1)按支持的工作阶段划分:设计工具:是最具体的工具,在实现阶段对人们提供帮助。 分析工具:主要用于软件开发工具--背诵内容 3

支持需求分析。计划工具:从更宏观的角度去看待软件开发。(2)按集成程度划分:单向工具:专用的、面对某一工作阶段或某一工作任务的工具。集成工具:集成化的、面对软件开发的全过程的工具。(3)按与硬件、软件的关系划分:依赖于特定机器或软件的工具。独立于机器与软件的工具。 7.试述现阶段软件技术的特点 答:(1)自动化程度的提高。由于代码生成等技术的应用,在一些特定的条件下,可以较容易地自动生成第三代语言(或更低级的语言)的代码,从而大大节省人力和时间。(2)明确地把需求分析包括进了软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸,离用户更近了。这是软件技术向前迈进的重要一步。(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。(4)在这一阶段的研究中,吸收了许多管理科学的内容与方法,如程序员的组织、质量的控制等。 8.软件开发工具的范围是什么? 答:软件开发工具的范围大致可以描述为:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。对于本概念可以从以下几个方面去理解。首先,它是一类软件,是开发软件用的软件。其次,它是在第三代语言的基础上发展起来的。第三,这里强调对软件开发全过程中各个阶段的支持。 9.软件开发工作的发展过程是什么? 答:软件开发工作的发展过程可以归纳为四个不同的阶段。(1)用机器语言开发软件把用户已经明确表述出来的算法,用机器语言写成一系列机器指令,供硬件运行使用。这是人们对软件开发工作的最初的认识。(2)用汇编语言开发软件,由汇编程序完成转换。汇编语言产生之后,编程工作改为用汇编语言进行,编好的汇编指令由汇编程序转化为机器指令,再交硬件执行。软件开发工作离硬件远了,离用户近了。(3)用高级语言开发软件,由编译程序完成转换高级程序设计语言不再与机器指令一一对应,而且更加接近人类习惯的自然语言。软件开发离机器更远了,离用户更近了。(4)在各种软件开发工具的帮助下开发软件,由编译程序完成转换。这是软件开发工作发展的新阶段,也使软件开发工作的概念从一次性的、具体的编程,扩大到了长期的、不断更新的过程。 10.试述用通用软件帮助软件开发的弱点 答:用通用软件来帮助软件开发人员编写文档或画图可以减少不少工作量,但是这种帮助实在是太表面、太初步了。用通用软件帮助软件开发有三个主要的弱点。第一,有许多工作是通用软件所无法完成的。第二,用通用软件完成某些工作,只能表现出其表面的形式,而不能反映其逻辑内涵。第三,用通用软件来帮助人们完成软件开发工作时,常常遇到难于保持一致性的困难。 11.软件开发分为那几个阶段,各阶段的文档是什么? 答:(1)需求分析。根据初始要求形成严格的、明确的、可供实际开发使用的功能说明书。(2)总体设计。根据软件功能说明书的要求,完成软件的总体设计,这包括整个软件的结构设计用的数据文件或数据库的设计,各部分的连接方式及信息交换的标准等几个主要内容。(3)实现阶段。完成程序的编写与文档的编写。(4)测试或调试阶段。包括模块的调试与整个软件的联调。 12.简述软件开发工具的功能要求 答:(1)认识与描述客观系统。主要是用在软件开发工作的第一个阶段——需求分析阶段。需求分析工作不确定程度高,更需要经验,更难形成规范化,因而人们希望软件开发工具能在这方面给予更多的帮助。(2)存储及管理开发过程中的信息在软件开发的各阶段都要产生及使用许多信息。有些信息到了其它阶段还要使用,故信息保存与管理问题显得非常突出。 (3)代码的编写或生成在整个软件开发工作过程,程序编写工作占了相当比例的人力物力和时间,提高代码的编制速度与效率显然是改进软件工作的一个重要方面。(4)文档的编制或生成文档编写工作也是软件开发工作中十分繁重的一项工作,不但费时费力,而且很难保持一致。在这方面,计算机辅助的作用可以得到充分的发挥。(5)软件项目的管理这方面的功能更明确地是为项目管理人员提供支持,而不是为程序员提供支持。 13.简述软件开发工具的项目管理功能。 答:项目管理功能明确地是为项目管理人员提供支持,而不是为程序员提供支持。一般来说,项目管理包括进度管理,资源与费用管理,质量管理三个基本内容,在这方面项目管理已有不少成功的经验、方法与软件工具。对于软件项目来说,还有两个比较特殊的问题。首先是测试工作方面的支持,由于软件的质量比较难以测定,所以不仅需要根据设计任务书提出测试方案,而且还需要提供相应的测试环境与测试数据。人们很自然地希望软件开发工具能够在这些方面提供帮助。另一个问题是版本管理问题。当软件规模比较大的时候,版本的更新,各模块之间以及模块与使用说明之间的一致性,向外提供的版本的控制等,都带来一系列十分复杂的版本管理问题。如果软件开发工具能够在这些方面给予支持或帮助,无疑将有利于软件开发工作的进步。 14.为什么说高级语言出现后计算机才真正获得了应用? 答:第三代语言突破了与机器指令一一对应的限制,用尽可能接近自然语言的表达方式描述人们设想的处理过程,而把这种表达方式向机器指令的转化工作,交给专门的“工具”——编译系统去完成。另一个重要的变化是高级设计语言实现了对机器的独立性,即它不依赖特定的硬件系统,抽象地逻辑地描述处理和算法,而把硬件系统之间的区别交给不同的编译系统去处理,从而大大提高了程序的可移植性。这一进步的影响非常巨大、非常深远。从六十年代以来,面向各个领域的,面向各种应用的程序设计语言如雨后春笋般涌现出来,至今势头不减。也正因为有了这些语言,在短短的二、三十年中,计算机技术才真正地获得了应用。 15.何谓第四代语言的非过程化思想?

相关文档
最新文档