软件工程问题整理版

合集下载

软件工程问答题答案(仅供参考)(精品)

软件工程问答题答案(仅供参考)(精品)

软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。

在软件工程领域,存在着许多关键问题和常见的问答题。

本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。

1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。

软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。

2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。

它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。

3. 请介绍软件测试的目的和重要性。

软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。

软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。

4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。

它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。

软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。

5. 请解释敏捷开发方法。

敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。

它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。

6. 请介绍软件项目管理的过程和技术。

软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。

它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。

7. 请解释软件工程中的代码重构。

代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。

软工软件工程问题

软工软件工程问题

软工软件工程问题软件工程是指通过系统化、规范化和可量化的方法来开发、操作和维护软件的工程学科。

在软件工程中,会遇到各种问题,包括但不限于项目管理、需求分析、设计、编码、测试和维护等方面的问题。

本文将针对软工软件工程中常见的问题进行探讨和解决。

一、项目管理问题1. 沟通与协作:软件开发项目通常涉及多个团队成员和多个部门的合作。

沟通不畅、协作不够高效会导致项目延期、质量下降或者产生冲突。

为了解决这个问题,应该建立一个有效的沟通机制,确保各方有效交流,并且利用协同工具促进团队之间的协作。

2. 项目计划和进度控制:软件项目往往面临时间紧迫和资源有限的情况,因此合理的项目计划和进度控制非常重要。

在项目启动之前,应该进行充分的需求分析和任务估算,并确保项目进度的合理安排和可控制性。

二、需求分析问题1. 需求收集不完整或不准确:需求分析是软件工程的基石,不准确的需求分析会导致软件开发过程中的问题。

为了避免这个问题,需要与用户充分沟通,收集用户的需求,并及时完善和澄清需求文档。

2. 需求变更管理:在软件开发的过程中,用户往往会对需求进行变更。

这种需求变更必须经过合适的管理,以确保变更的合理性和对项目进度的影响能够控制在可接受的范围内。

1. 架构设计:合理的软件架构设计是确保软件质量和可维护性的关键。

设计阶段需要考虑模块化、组件化和可扩展性,以及合适的设计模式和架构风格。

2. 接口设计:良好的接口设计可以提高软件的灵活性和可重用性。

接口设计应该清晰明确,合理划分模块之间的职责和依赖关系。

四、编码问题1. 代码质量:编码阶段的质量问题直接决定了软件的功能和可维护性。

为了保证代码质量,应该遵循编码规范,进行代码审查和单元测试,确保代码的质量和健壮性。

2. 不断学习和提升:软件工程领域的前沿技术和工具不断发展,软件工程师应该不断学习和提升自己的技术水平,以适应快速变化的软件开发环境。

五、测试问题1. 测试策略和方法:测试是软件工程中至关重要的一环。

软件工程导论简答题整理版

软件工程导论简答题整理版

第一章4.什么是软件工程?它与软件工程方法学有何关系?软件过程是为了开发高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。

软件过程是软件工程方法学的3个重要组成部分之一。

7.假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。

一旦实现并测试完之后,该产品将被抛弃。

你打算选用哪种软件生命周期模型?请说明你作出选择的理由。

答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。

此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。

第三章一列火车最多有两个火车头。

只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。

火车头既可能是内燃机车也可能是电器机车。

车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。

硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部分。

此外,在硬卧车厢和软卧车厢之间还有一节餐车。

答:jackson图善于描绘复杂事物的组成。

用jackson图描绘一列火车的构成的方法至少有两种,一种方法是把火车分为一个车头和两个车头两类,另一种方法是把后车头作为可选的。

图3.29给出了描绘一列火车的构成的jackson图。

用Jackson 图描绘一列火车的构成第四章3.假设有一个由5000行FORTRAN语句构成的程序(经编译后大约有25000条机器指令),你估计在对它进行测试期间将发生多少个错误?为什么?答:经验表明,在类似的程序中,单位长度里的错误数Er/Ir近似为常数。

美国的一些统计数字告诉我们,通常0.5ⅹ10-2 <= Er/Ir <= 2ⅹ10-2也就是说,在测试之前每1000条指令中大约有5-20个错误.假设在该程序的每1000条指令中大约有10个错误,则估计在对它进行测试期间将发现的错误数为25000ⅹ10/1000=250第五章3、某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。

(完整版)软件工程导论试题(整理)

(完整版)软件工程导论试题(整理)

单项选择题(每小题1分,共10分)1、在结构性的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )(A)需求分析阶段(B)详细设计阶段(C)概要设计阶段(D)可行性2、研究阶段软件工程方法中普遍定义的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( C )A 严格定义需求B 划分开发阶段C 规范文档格式D 分析控制流程3、软件结构中两个模块之间有调用关系,传递简单数据值,相当于高级语言中的值传递,这两个模块之间的耦合是( D )(A)公共耦合(B)控制耦合(C)标记耦合(D)数据耦合4、软件维护的四类维护活动是( A )(A)改正性维护,适应性维护,完善性维护和预防性维护。

(B)适应性维护,完善性维护,抢救性维护和辅助性维护。

(C)改正性维护,适应性维护,完善性维护和辅助性维护。

(D)适应性维护,完善性维护,抢救性维护和预防性维护。

5、主要从( A )几个方面进行系统可行性研究。

(A)技术可行性,经济可行性,操作可行性。

(B)技术可行性,经济可行性,系统可行性。

(C)经济可行性,系统可行性,操作可行性。

(D)经济可行性,系统可行性,时间可行性。

6、进行需求分析可使用多种工具,但( C )是不适用的。

(A)数据流图(B)判定表(C)PAD图(D)数据字典7、软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( B )(A)软件的总结(B)需求分析评审(C)阶段性报告(D)以上答案都不对8、OMT(Object Modelling Technique)方法的第一步是从问题的陈述入手,构造系统模型。

系统模型由对象模型、( C )组成。

A静态模型和功能模型 B动态模型和过程模型C动态模型和功能模型 D静态模型和操作模型9、为了表示项目管理功能工作中各项任务之间的进度衔接关系,常用的计划管理工具是( D )(A)程序结构图(B)数据流图(C) E-R图(D)甘特(Gantt)图①软件生命周期中所花费用最多的阶段是(D)A.详细设计B.软件编码C.软件测试D.软件维护②可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。

软件工程习题整理

软件工程习题整理

软件工程习题整理一、软件需求分析与建模1.软件需求分析的要求?答:了解软件需求的目标和任务;了解软件需求分析的基本过程;掌握功能建模;掌握行为建模;掌握数据建模;了解结构化需求分析的若干技术;了解需求规格说明和需求评审的主要内容。

2.需求分析的基本任务是什么?答:要准确地定义新系统的目标,为了满足用户需求,回答系统必须―做什么‖的问题。

获得需求规格说明书。

3.软件需求分析的原则?答:能够表达和理解问题的信息域和功能域;能够对问题进行分解和不断细化,建立问题的层次结构;需要给出系统的逻辑视图和物理视图。

4.什么是需求分析?需求分析阶段的基本任务是什么?答:需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

需求分析阶段的基本任务是:(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.(2) 分析与综合,导出软件的逻辑模型.(3) 编写文档5.什么是结构化分析方法?该方法使用什么描述工具?答:结构化分析方法:是面向数据汉进行需求分析的方法。

描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。

6.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?答:数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。

作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.基本符号有四种:→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.7.简述SA方法的优缺点。

答:优点:1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合于开发数据处理类型软件的需求分析。

2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利条件。

软工易错题总结

软工易错题总结

软工易错题总结近年来,软件工程专业已成为越来越多学生的选择。

然而,软件工程的学习和应用并不容易,常常会遇到各种难题和易错点。

本文总结了软件工程中的一些常见易错题,以供大家参考。

一、需求工程1. 需求获取阶段是软件开发的第一步,也是最重要的一步。

在进行需求获取时,我们应该注重以下哪个方面的工作?- 确定用户需求的可行性。

- 确定开发团队的技术实力。

- 确定项目进度的安排。

2. 面向对象的分析方法是软件开发的常用方法之一。

以下哪种方法不属于面向对象的分析方法?- DFD(数据流图)方法。

- OOA(面向对象分析)方法。

- OMT(面向对象建模技术)方法。

二、设计与实现1. 在软件设计中,我们常常会用到设计原则。

以下哪个不是常见的设计原则?- DRY原则(Don't Repeat Yourself)。

- SOLID原则。

- KISS原则(Keep It Simple and Stupid)。

2. 在面向对象的编程中,继承是一种常见的代码复用方式。

但是,滥用继承可能导致以下哪个问题?- 代码重用性下降。

- 耦合度过高。

- 可维护性降低。

三、测试与维护1. 在软件测试中,黑盒测试和白盒测试是两种常见的测试方法。

以下哪种描述最符合白盒测试的特点?- 只测试软件功能的正确性,不关心内部实现。

- 对软件的内部结构进行充分测试。

- 从用户的角度出发,测试软件回归性能。

2. 在软件维护过程中,以下哪个环节最容易被忽视?- Bug修复。

- 代码重构。

- 用户培训。

结语本文总结了软件工程中的一些常见易错题,涵盖了需求工程、设计与实现、测试与维护等方面的知识点。

通过学习和掌握这些易错点,我们可以提高软件工程的学习效果,更好地应对实际工作中的挑战。

希望本文对大家有所帮助,祝愿大家在软件工程领域取得更好的成果!。

软件工程问题整理版

1、软件危机定义、发生原因、常见表现,如避免软件危机?(1)软件危机定义:课本Page 8(开发和维护过程)(2)发生原因、常见表现:课本Page 8-9,练习册Page 1(3)如避免:Page 10 (采用软件工程的法)答案(由于大部分答案参考ppt,故仅供参考,下同)软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列重问题。

表现在:(1)对于软件开发的成本和进度的估计很不准确。

(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。

(3)开发的软件可靠性差。

(4)软件通常没有适当的文档。

(5)软件的可维护性差。

(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

原因:(1)软件的规模愈发庞大;(2)软件开发的管理困难。

(3)成功的软件开发经验没被很好地应用。

(4)软件开发和维护中千金错误认识和法的形成可以归结与计算机发展早期软件开发的个体化特点。

(5)软件开发技术落后。

(6)生产式落后。

(7)开发工具落后,生产率提高缓慢。

如避免(参考,可以自己总结):从软件开发的工程化法入手,即用现代工程的概念原理、技术和法去指导软件的开发、管理和维护,这就是软件工程思想和法。

具体措施:(1)使用好的软件开发技术和法;(2)要有良好的组织、密的管理,各类人员协同配合,共同完成任务;(3)使用好的软件开发工具,提高软件生产率;(4)建立格的文档资料,重视软件开发过程的阶段评审。

2、软件生命期模型(软件生命期?)的组成,每个阶段的容?(1)组成:Page 21 (2)容:Page 22—25)答案:软件生存期定义:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存期。

软件生存期一般可分为以下阶段:(1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计)(5)详细设计(6)编码(7)测试(8)维护也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护(1)软件分析时期;任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准。

软件工程常考简答题

绪论1、什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是以计算机科学理论及其他有关学科旳理论为指导,采用工程化旳概念、原理、技术和措施进行软件旳开发和维护,把通过时间证明是对旳旳管理措施和目前可以得到旳最佳旳技术、措施相结合,以期用较少旳代价获取高质量旳软件。

计算机科学侧重于理论研究,其成果可应用于软件工程,而软件工程则强调怎样有效旳建造一种软件系统。

2、什么是软件?答:计算机软件是与计算机系统操作有关旳程序、规程、规则及任何与之有关旳文档及数据;3、什么是软件危机?分析其产生旳原因与挣脱危机旳措施,你认为目前已经挣脱软件危机了吗?请阐明理由。

软件危机是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

重要是两个问题:(1)怎样开发软件,怎样满足对软件旳日益增长旳需求;(2怎样维护数量不停膨胀旳已经有软件;软件危机旳出现,究其原因,首先是由软件自身旳特点引起旳,如软件越来越复杂,软件故障难于检测,工作量难以估计;另首先则是由于软件开发和维护措施不妥所导致旳,如软件旳个体化特性太强等。

为了挣脱软件危机所导致旳困境,提出软件工程旳概念,其重要思绪是:要把人类长期以来从事多种工程项目所积累起来旳行之有效旳原理,概念,技术和措施,尤其是人类从事计算机硬件研究和开发旳经验教训,应用到软件旳开发和维护中来。

我认为我国目前尚未完全挣脱软件危机,由于伴随经济发展,各行各业对软件人才旳需求不停扩大,由于我国旳软件人才缺口仍旧很大,导致了某些行业内软件开发进度难以预测,软件开发成本难以控制,顾客对产品功能难以满足,软件产品质量无法保证,软件产品难以维护,软件缺乏合适旳文档资料。

4、软件产品旳特性是什么?软件是一种逻辑产品,具有无形性;软件产品旳生产重要是研制;软件不存在磨损和老化问题,但存在退化问题;软件产品旳生产重要是脑力劳动;软件产品生产成本昂贵,目前生产方式尚未挣脱手工生产方式;软件具有“复杂性”,其开发和运行常受到计算机系统旳限制。

软件工程简答题整理

什么是软件危机,有哪些具体表现形式?其原因?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

主要有以下表现形式:1、对软件开发成本和进度的估计常常很不准确 2、用户对“已完成的”软件系统不满意的现象经常发生 3、软件产品的质量往往靠不住 4、软件常常是不可维护的 5、软件通常没有合适的文档资料 6、软件成本在计算机系统总成本中所占的比例逐年上升 7、软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势原因:1、与软件本身特点有关2、与软件开发与维护的方法不正确有关什么是软件生存周期,有哪几个活动?比较模型软件生存周期是指一个软件该软件报废为止的整个时期。

软件生命周期由软件定义、软件开发和软件维护3个时期组成。

1问题定义,解决的问题是是什么;2可行性研究,问题是否有可行的解决办法;3需求分析,确定目标系统必须具备的功能;4总体设计,总体上解决问题,设计软件出层次结构图、5详细设计,具体实现,设计算法;6编码和单元测试,编程和单元测试;7综合测试,系统地设计测试用例;软件维护,修改软件满足用户需要。

瀑布模型:自上而下,相互衔接的固定次序,像瀑布逐级下落,有顺序性和依赖性,推迟实施,质量保证,严格要求输出文档,缺乏灵活性。

快速原型模型:能快速建立。

它所完成的功能往往是最终产品能完成的功能的一个子集,适合中小型,短周期的交互式系统。

增量模型:把软件产品作为一系列增量构件来设计、编码、集成和测试,能在较短的时间完成,有充裕的时间学习。

适合开发需求不明确设计方案有一定风险的软件项目。

螺旋模型:它是风险驱动的。

适合大型系统及软件的开发。

将瀑布模型与增量模型结合起来,喷泉模型:迭代和无缝连接简述软件测试的任务、目的与类型。

答:软件测试是一个为了寻找软件错误而运行程序的过程。

目的就是为了发现软件中的错误。

一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。

一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

软件工程的100道问答题

1、什么是软件危机?产生软件危机的原因?怎样消除?2、什么是软件工程?包括哪些内容?3、软件生存周期包含哪些内容?4、软件开发模型有几种?各有什么特点?7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?8、一个软件开发系统的可行性研究报告应如何编写?9、数据流图有哪几种基本符号?10、画数据流图原则是什么?11、数据流图在软件分析中的作用是什么?12、数据字典的作用?13、什么是数据字典?有几个定义?各自特点是什么?14、有几种效益的分析方法?15、需求分析的任务是什么?16、需求分析通常采用哪些分析技术?17、什么是结构化分析?他的结构化体现在哪里?18、简述面向对象分析技术的主要步骤?19、原型开发技术的目的,特点是什么?20、简述总体设计的一般过程?21、什么叫软件结构?什么叫软件工程?二者之间关系?22、解释深度、宽度、扇出、扇入对软件的影响。

23、什么叫模块化?M代表的含义是什么?24、模块化的三个重要特征是什么?阐明各自的作用。

25、举例说明各种耦合情况和各种内聚情况。

26、简述设计准则的内容。

27、简述层次方框图与软件结构图的异同点。

28、事物型软件结构图有什么特点?原因是什么?29、详细设计的任务是什么?30、什么是结构化程序设计?用N-S图表示三种基本结构。

31、简述Jackson程序设计方法的主要内容。

32、简述Wariner程序设计方法的主要内容。

35、 C语言属于第几代语言?第四代语言特点是什么?36、简述高级语言的应用特点和内在特点。

37、试分析程序设计语言特点及软件可*性、可理解性、可修改性、可测试性及成本的关系。

38、选择一种语言的实用标准是什么?39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。

40、程序的编码风格主要体现在哪几个方面?41、软件测试的基本任务是什么?测试与调试区别是什么?42、软件测试的目标是什么?43、软件测试分几个步骤进行?每个步骤解决什么问题?44、软件测试有几种方法?每种方法的特点是什么?45、软件出错有几种类型?验证其程序正确性有几种方法?46、什么是单元测试和集成测试?他们各有什么特点?47、简述渐增式测试方法与非渐增式测试方法的优劣。

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

1、软件危机定义、发生原因、常见表现,如避免软件危机?(1)软件危机定义:课本Page 8(开发和维护过程)(2)发生原因、常见表现:课本Page 8-9,练习册Page 1(3)如避免:Page 10 (采用软件工程的法)答案(由于大部分答案参考ppt,故仅供参考,下同)软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列重问题。

表现在:(1)对于软件开发的成本和进度的估计很不准确。

(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。

(3)开发的软件可靠性差。

(4)软件通常没有适当的文档。

(5)软件的可维护性差。

(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

原因:(1)软件的规模愈发庞大;(2)软件开发的管理困难。

(3)成功的软件开发经验没被很好地应用。

(4)软件开发和维护中千金错误认识和法的形成可以归结与计算机发展早期软件开发的个体化特点。

(5)软件开发技术落后。

(6)生产式落后。

(7)开发工具落后,生产率提高缓慢。

如避免(参考,可以自己总结):从软件开发的工程化法入手,即用现代工程的概念原理、技术和法去指导软件的开发、管理和维护,这就是软件工程思想和法。

具体措施:(1)使用好的软件开发技术和法;(2)要有良好的组织、密的管理,各类人员协同配合,共同完成任务;(3)使用好的软件开发工具,提高软件生产率;(4)建立格的文档资料,重视软件开发过程的阶段评审。

2、软件生命期模型(软件生命期?)的组成,每个阶段的容?(1)组成:Page 21 (2)容:Page 22—25)答案:软件生存期定义:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存期。

软件生存期一般可分为以下阶段:(1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计)(5)详细设计(6)编码(7)测试(8)维护也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护(1)软件分析时期;任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准。

在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排。

进行可行性研究和项目开发计划,需求分析。

(2)软件设计时期;任务:a.设计软件的总体结构;b.设计软件具体模块的实现算法;c.软件设计结束之前,也要进行有关评审,评审通过后才能进入编码时期。

(3)编码与测试时期;任务:组织程序员将高驻地的软件“翻译”成计算机可以正确运行的程序;并且要经过按照软件分析中提出需求要求和验收标准进行格的测试和审查。

根据具体软件的特点,决定是否划分成一些阶段,如编码、单元测试、集成测试、验收测试等等。

(4)运行与维护时期。

任务:软件运行过程中可能由于各面的原因,需要对它进行修改。

3、瀑布模型、原型模型、增量模型的特点,如选择这些模型?(1)瀑布模型:Page 25-27(特点:Page 28第二点;使用场合:特点的最后一点)(2)原型模型:Page 27-28(特点:Page 27;场合:Page 28三点)(3)增量模型:Page 28)参考答案:瀑布模型:(1)定义:是将软件生命期各活动规定为依线性顺序联接的若干阶段的模型,是一种整体开发模型。

里程碑或基线驱动或者说文档驱动。

过程逆转性很差,或者说不可逆转。

(2)优点:格按照生命期的各个阶段来进行开发,强调了每一阶段的格性。

这样就能解决在开发阶段后期修正不完善的需求说明将花费巨大的费用的问题。

在消除非结构化软件、降低软件的复杂性、促进软件开发工程化面起了很大作用。

(3)缺点:它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。

故适用于功能明确、完整、无重大变化的软件开发。

如:编译系统、数据库管理系统和操作系统。

(4)适用场合:●在开发时间需求没有或很少变化。

●分析设计人员对应用领域很熟悉。

●低风险项目(对目标、环境很熟悉)。

●用户使用环境很稳定。

●用户除提出需求以外,很少参与开发。

原型模型:(1)定义:以某个软件原型为参照模型的开发法,叫做原型法。

(原型驱动)(2)原理:在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环几次,直到客户确认为止。

(3)适用场合:●已有产品/产品原型,只需客户化的项目。

●简单而熟悉的行业或领域。

●有快速原型开发工具。

●进行产品移植或升级。

增量模型:(1)定义:增量模型将软件产品看作一组增量构件,每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。

(2)特点:●任务或功能模块驱动,可以分阶段提交产品;●有多个任务单,这些多个任务单的集合,构成项目的一个总任务书(总用户需求报告)。

(3)适用场合:●在开发过程中,客户接受分阶段交付。

●开发人员对应用领域不熟悉,难以一步到位。

●工期过紧的中等或高风险项目。

●用户可参与到整个软件开发过程中。

●使用面向对象语言或第四代语言。

●软件公司自己有较好的类库、构件库。

4、需求的特点?获取的法?为什么需求获取很困难?如解决需求获取困难的难题?(1)需求的特点:●可验证性:可验证性是软件需求的基本属性。

软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据。

但在某些情况下,很难对某些软件需求进行验证或需要的代价很高。

软件需求人员和测试人员应以合理的代价实现需求的验证。

●优先级:软件需求应具有优先级,可以在有限的资源情况下进行取舍。

●唯一性:软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命期中进行管理。

(2)获取法:1、面谈和问卷调查;2、小组讨论;3、情景串联;4、参与、观察业务流程;5、现有产品和竞争对手的描述文档;6、市场资料(3)需求获取困难原因:PPT答案:●用户需求具有动态性,即需求的不稳定性。

在整个软件生存期,应用软件的需求会随着时间的进展而有所变化。

个别用户,甚至是朝三暮四地变化。

●用户需求具有模糊性,即需求不准确性。

由于用户的素质不是很高,业务流程不很规,所以需求表达不很清楚也不够明确。

●开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任。

●需求复杂并且庞大。

现代的软件,规模越来越大,导致需求越来越复杂。

课本上答案(Page 62):●需求易变性。

用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求。

以后随着理解的深入而不断提出新的需求。

用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一对待性和不完备性。

●问题的复杂性;●交流障碍。

进行需求分析的人员具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。

●不完备性和不一致性。

用户各类人员对于系统的要求所处的角度不一样,对问题的述往往是不完备的,其各面的需求还可能存在着矛盾。

(4)解决需求获取困难的法:把一个复杂问题按功能进行分解并可逐层细化;能够表达和理解问题的数据域和功能域;建立模型5、DFD的画法及如将DFD图转换成功能结构图?(1)DFD图的画法(课本Page 71)(第四章PPT)●数据流图DFD的描述符号主要只有四种,即:a. 数据源或数据潭b. 数据流动的连线c. 数据加工或处理泡d. 输入或输出文件●图例●法:采用的是”自顶向下“逐层画法。

即先画出的顶层数据流图,再逐层画出的底层数据流图,具体地描述上层系统的细节。

●注意事项:加工和处理框上至少有一个输出数据流和一个输入数据流;注意父/子图的平衡(父图中某个加工的输入输出数据流同相应的子图的输入输出相同,也就是说子图中所有输入数据流必须是父图中相应加工的输入)。

(2)DFD图转换成功能结构图(课本Page 111-116)(PPT 第七章)具体法看第七章PPT。

变换型系统结构图:通过变换分析技术,将中心变换型的DFD图转换而得的SC图,称为变换型系统结构图。

事务型系统结构图:通过事务分析技术,将事务处理型的DFD图转换为的SC图,称为事务型的系统结构图。

两类图的区别:变换型系统结构图明显分为输入、中心变化和输出3部分;事务型系统结构图则是某个变换将它的输入分离成若干个发散的输出数据流。

变换分析技术(将DFD图转换成变换型系统结构图的法,DFD图中含有变换流的情况)事务分析技术(将DFD图转换成事务型系统结构图的法,DFD图中含有事务流的情况)而实际的DFD图往往是既包含变换流又包含事务流(称为混合DFD图)。

PPT上的M代表中心加工模块,I代表输入模块,T代表处理加工模块,O代表输出模块。

对于变化型系统结构图而言,一个M应该包含一个I、一个T、一个O,属于包含关系,因此箭头应从M分别指向I、T、O(容易出错)。

一个功能模块的输入可能是来源于另一个功能模块的输出。

6、面向对象的基本特征,并能用实际的例子说明这些特征?面向对象的基本概念: 面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如进行系统构造的软件法学。

而面向对象法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发法。

面向对象法的基本思想是,从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维式。

面向对象核心概念: (1)对象(2)类(3)继承(4)聚集(5)消息。

面向对象= 对象+ 类+ 继承+ 聚集+ 消息面向对象法的基本特征:①从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。

②事物的静态特征(即可以用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务(或操作)表示。

③对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其部细节(称作封装)。

④对事物进行分类。

把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。

⑤通过在不同程度上运用抽象的原则(较多或较少地忽略事物之间的差异),可以得到较一般的类和较特殊的类。

特殊类继承一般类的属性与服务,面向对象法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。

⑥复杂的对象可以用简单的对象作为其构成部分,称作聚合。

⑦对象之间通过消息进行通信,以实现对象之间的动态联系。

⑧通过关联表达对象之间的静态关系。

7、白盒测试、黑盒测试的定义以及白盒测试具体的法?练习册Page 318-320;课本Page 457-461;第十章PPT(1)定义:白盒测试:把测试对象看作一个透明的盒子,测试人员能了解程序的容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验部控制结构和数据结构是否和预期相同。

相关文档
最新文档