当前位置:文档之家› 软件工程的6个阶段

软件工程的6个阶段

软件工程的6个阶段
软件工程的6个阶段

软件工程的6个阶段

一,项目计划阶段。(也可以说是可行性分析阶段)

确定了一个软件以目前的条件可以完成,主要是经济,技术和社会条件,撰写可行性分析报告。需求方和开发方共同探讨项目中的问题的解决方案;需要的资金,人力,物力;社会方面的影响,例如是否符合法律等;对项目的进度和预期效益进行估计。

二,项目需求分析阶段。

对用户需求进行分析。将用户的需求用逻辑的软件工程语言表达出来,设计好功能和数据库模型,编写成软件需求设计书。这个阶段要注意的是行业的术语以及行业规则,开发的软件难免遇到不同行业,我们不是那个行业里面的人,所以对用户所在行业的需求分析的时候要正确理解他们的术语和规则。当需求得到用户确认后记得让用户签字。最后提醒一点,需求的变更在项目中很频繁,必须做好需求变更计划用以项目正常进行。

三,项目设计阶段。

概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。

详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。

概要设计阶段通常得到软件结构图。

详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等。

四,编码阶段。

为程序员分配好编码任务,将软件的设计具体为软件代码。这里注意的是编码语言,工具,环境和编码规范。统一,标准的编码规范可让程序可读和易维护。

五,软件测试阶段。

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出

现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

测试,目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。

六,维护阶段。

对软件正式交付使用过程中出现的软件的bug进行修复,调整软件以适应正式环境,编写软件的维护报告。

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件工程试题含答案案.docx

软件工程期末试题(1) 一, 判断题(正确的在括号内打上"√",错误的打上"×".每题1.5分,共15分) Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×) PAD图在设置了五种基本控制结构后,还允许递归调用. (×) 你为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×) 当验收测试通过,软件开发就完成了.(×) 完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×) 系统结构图是精确表达程序结构的图形表示法.因此,有时也可以将系统结构图当作系统流程图使用.(×) 在程序调试时,找出错误的位置和性质比改正该错误更难.(√) 以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.(√) 二,单项选择题(每小题2分,共10分) 试判断下列叙述中,哪个(些)是正确的(D) a,软件系统中所有的信息流都可以认为是事务流 b,软件系统中所有的信息流都可以认为是变换流 c,事务分析和变换分析的设计步骤是基本相似的 A,a B,b C,c D,b和c 进行需求分析可使用多种工具,但(B)是不适用的. A,数据流图B,PAD图C,判定表D,数据词典 在详细设计阶段,经常采用的工具有(A).

A,PAD B,SA C,SC D,DFD 详细设计的结果基本决定了最终程序的(C) A,代码的规模B,运行速度C,质量D,可维护性 使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准. A,程序的内部逻辑B,程序的复杂程度 C,该软件的编辑人员D,程序的功能 三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.) (ABCD)可以作为模块. A,子程序B,函数C,过程D,编译文件 下面哪些测试属于黑盒测试(BCD). A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试下列属于度量效益方法的是(ABCD). A,货币的时间价值B,投资回收期C,收入D,投资回报率 软件维护的策略包括(BCD). A,定期检测维护B,改正性维护C,适应性维护D,完善性维护 下列属于软件测试过程的是(ABE). A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试 四,简答题(每题6分,共24分) 1、耦合性和内聚性有几种类型其耦合度,内聚强度的顺序如何答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高

软件工程作业及参考答案(版)

软件危机与软件工程 3. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。 A ?消除软件危机 B ?软件开发工程化 C ?程序设计自动化 D ?实现软件重用 4?软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。 A .工程管理 B .成本核算 C .人员培训 D .工具开发 5?软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。 A ?设计人员和用户 B ?分析人员和用户 C .分析人员和设计人员 D .编码人员和用户 6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成 于( )。 A .开发阶段 B .计划阶段 C .分析阶段 D .设计阶段 7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。 通常,计划时期包括问题定义、可行性研究和 ①,开发时期包括 ②、详细设计、编码以及 ③。 ① A . 需求分析 B . 可行性研究 C . 经费预算 D . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

软件工程试题与答案-(27)

一.单项选择题(每题1分,20题共20分) 1.计算机系统可以划分为软件系统和硬件系统,软件是一种 A.逻辑产品 B.文档资料 C.程序代码D.物理装置 2.可行性分析研究的主要目的是 A.定义项目 B. 项目是否值得开发 C.开发项目 D.规划项目 3.在下列四种模块的耦合性中,信息隐蔽性能最好的是() A.控制耦合 B.内容耦合 C. 数据耦合 D. 特征耦合 4.需求分析是回答系统必须()的问题。 A. 为谁做 B.怎么做 C.何时做 D.做什么 5.在UML中,类是用()表示的 A 矩形框 B 椭圆 C 箭头 D 菱形框 6.编码阶段是位于哪个阶段之后 A. 详细设计 B. 可行性研究 C. 总体设计 D. 需求分析 7.在数据流图中,圆圈符号表示的是 A. 数据源点或终点 B.数据处理 C. 数据存储 D. 数据流 8.内聚是衡量模块内部聚合能力的量度。内聚越高,说明模块内各成分彼此联系的程度 A.越松散B.彼此相等C.越紧密D.没有联系 9.在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于() A、维护时期 B、开发时期 C、运行时期 D、计划时期 10.软件维护有四种,下面哪一个不是的 A. 完善性维护 B. 测试性维护 C. 预防性维护 D. 适应性维护 11.结构化程序设计采用的三种基本控制结构是() A.顺序、选择、重复 B.选择、循环、重复 C.顺序、分支、选择 D.输入、变换、输出 12.软件测试的目的是() A. 为了表明程序没有错误 B.为了发现程序中的错误 C. 为了说明程序能正确地执行 D.为了评价程序的质量 13.在UML的用例图中,人形符号表示的是 A 关联 B 用例C角色 D 系统 14.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试() A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑 15.下面哪些测试属于黑盒测试()。 A、路径测试 B、循环测试 C、等价类划分 D、条件判断 16.()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A封装 B 继承 C 多态性 D 消息 17.在UML中,协作图反映收发消息的对象的结构组织,它与()是同构的 A 用例图B时序图 C 活动图 D 类图 18.需求分析是软件生存周期中的一个重要阶段,它的应该是在()进行。 A、维护阶段 B、软件开发全过程 C、软件定义阶段 D、软件运行阶段

软件工程试题与答案整理版

软件工程试题 一、简述题(4 * 10 = 40) 1 简述生命周期方法学及其特点。 2 什么是软件过程?简述RUP及其特点。 3 简述面向对象的基本思想。 4 简述控制软件复杂性的基本方法。 二、判断题(判断命题正确与否,如错误,请改正)(10 * 2 = 20) 1 ()在建立了设计模型之后,就可以开始制定测试计划。 2 ()耦合是指一个模块内各个元素彼此结合的紧密程度。 3 ()数据流程图是描绘物理系统的传统工具。 4 ()软件工程标准有5个不同的级别层次:国际标准、国家标准、行业标准、企业规范、项目规范。 5 ()软件重用是指在软件开发过程中重复使用相同或相似软件元素的过程。 6 ()模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。 7 ()如果测试数据满足条件覆盖,则必然满足判定覆盖。 8 ()软件开发模型是跨越整个软件生命周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。 9 ()能力成熟度模型是评价程序员程序设计能力的一种全面而客观的评审依据。 10()好的测试具有较高的发现错误的可能性。 三、选择题(将正确的答案代号填入括号中,每小题2分,共20分) 1.需求分析阶段最重要的技术文档是() A.设计说明书 B.需求规格说明书 C.可行性分析报告 D.用户手册 2.所谓软件过程的里程碑,通常是指()。 A.一定的时间间隔 B.每个项目活动 C.基线 D.开发项目月报 3.耦合度最高的是()耦合。 A.环境 B.内容 C.控制 D.数据 4.软件工程学中除重视软件开发的研究外,另一个重要的组成内容是软件的()。 A.成本核算 B.项目管理 C.工具开发 D.人员培训 5.下列不属于软件工程方法学三要素的是()。 A.方法 B.工具 C.过程 D.操作 6.()分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。 A.增量模型 B.喷泉模型 C.变换模型 D.螺旋模型 7.软件测试方法中的()属于静态测试方法。 A.人工检测 B.路径覆盖 C.黑盒法 D.边界值法 8.在数据流程图中,符号“□”用来表示()。 A.处理 B.外部实体 C.数据存储 D.数据源点 9.()是基于形式化规格说明语言及程序变换的软件开发模型。 A.增量模型 B.喷泉模型 C.变换模型 D.螺旋模型 10.对象类之间的归纳关系就是()关系。 A.一般-特殊 B.整体-部分 C.相互依赖 D.层次关系 四、填空题(每小题10分,共20分) 1. 信息系统是一个复杂的人机系统,系统内外环境以及各种人为的、机器的因素都在不断地变化。为了使系统能够适应这种变化,充分发挥软件的作用,产生良好的社会效益和经济效益,就要进行系统的维护工作。系统的维护对于延长系统的生命周期具有决定意义,请列出系统开发中能够提高系统可维护性的要求。 ① ② ③ ④ ⑤ 2. 软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。请列出软件开发过程中软件质量保证的主要措施。 ① ② ③

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程各种图的画法考试必备

1.完成患者监护系统功能级的数据流图、实体联系图、软件结构图。 2.网上书店系统,其外部用户主要有游客、会员和管理员。其中,游客进行注册后,可以成为系统的会员,会员享有订购图书及订单和书籍等信息查询的功能,管理员可对系统的各种信息进行管理和维护。根据上述描述,请画出网上书店系统的:①基本系统模型(第0层);②功能级的数据流图(第1层);③底层的订购图书数据流图。 1.把如下统计空格程序的Jackson图改画为等价的程序流程图和盒图。 2、用Jackson图描述下述的一列火车的构成: 一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车的最后面。火车头既可以是内燃机车也可以是电气机车。车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部 分。此外,在硬卧车厢和软卧车厢之间还有一节餐车。 1.饮用水自动销售系统的工作过程大致如下:如果投入1元硬币,则自动放水5升;如果投入5角硬币,放水2.5升;如果选择1元,投入2个伍角的硬币,也可放水5升。如果饮用水来不及生成,系统会把硬币退出来并亮红灯。收到的硬币由收银员定时回收。试画出该系统的用例图。 2.某寄宿学校需要开发一个信息管理系统,通过该管理系统对学生的日常事务进行管理: 校长助理:管理学生的档案,进行新增、删除、查询、修改等操作;对学生班级进行管理(新增、删除等),进行新学生的编班工作和调班工作,查询班级名册等情况。 财务人员:进行每月的收费和退费工作,每个学生的每月费用包括住宿费,伙食费220,在6-8 月收取空调费20,在11-2 月收取取暖费20,每个学期的开学初(3 月、9 月)收取书本费(不定)。住宿费分三种情况:双职工的子女为60,单职工的子女80 元,父母均不在本单位工作为100 元。每个班的老师在每天要申报本班学生的出勤表,由校长助理完成各班的考勤录入,考勤情况决定上月的伙食退费,以每天10 元计算。 学生家长:在对退费有疑问时,可以查询学生的出勤情况。请画出本系统用例图。 1、汽车和自行车都是交通工具。一辆自行车只能归一个人拥有,但一辆汽车可归一个人或者两个人拥有。一个人可能没有自行车或汽车.也可能拥有多辆自行车或汽车。人分男人和女人两类,每个人都具有年龄和名字。在任何时候,一辆汽车上可能载有0个多个乘客。每辆汽车都有自己的颜色和商标。特别地,每辆汽车都只有两个前灯和一台发动机。请画出类图。 2、用聚集关联表示家用计算机系统的组成。家用计算机系统是由主机箱、键盘、鼠标、显示器、CD—ROM驱动器、一个或多个硬盘驱动器、调制解调器、软盘驱动器、打印机组成,还可能包括几个音箱。而主机箱内除CPU外带着一些驱动设备,例如显示卡、声卡等。 3、建立一个能够反映咨询公司日常业务的类图。为每一个关联起一个名字,并写上重数。该类图可能包括下列的类:顾问、客户、项目、提案、数据和报告。 4、画出打电话操作过程的事件跟踪图(即序列图)。 5、活动图是状态图的一种特殊情况。用于简化描述一个过程或者操作的工作步骤。活动用圆角矩形表示——比状态图更窄,更接近椭圆。一个活动中的处理一旦完成,则自动引起下一个活动的发生。箭头表示从一个活动转移到下一个活动。和状态图类似,活动图中的起点用一个实心圆表示,终点用一个同心圆(内圆为实心圆)表示。在活动图中可以带判定点,即一组条件引发一条执行路径,另一组条件则引发另一条执行路径,并且这两条执行路径是互斥的。判定点常用小的菱形图标表示,同时在相关路径的附近指明引起这条路径被执行的条件,条件用方括号括起来。请用活动图描述打电话过程。

软件工程习题及详细答案

个人收集整理勿做商业用途 软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、工程开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、工程开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程——软件开发过程中用到的各种图

软件工程——软件开发过程中用到的各种图 一、宏观导图 导图说明:我们的软件开发中用到的各种图型工具都是为了辅助我们更好的理解开发的阶段或者过程。上图是根据软件过程中各个阶段所需要用到的各种图的一个小结。下面是各种图的简介和示例。 二、谈细节: 1、问题定义阶段(规划阶段): UC图:( Use Creat 图)它是 BSP( business system planning )法中常用的子系统划分工具。

2、可行性分析 2.1系统流程图:是描述系统物理模型的一种传统工具。它是表达数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,它是物理数据流图而不是程序流程图。系统流程图形象的呈现了软件的功能,即使不懂软件的人也可以轻松的看懂,可以说它是软件设计师与用户之间沟通、交流的有效工具。

3、需求分析: 3.1 DFD图(Data Flow Diagram):从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程.建立系统的功能模型。 3.2 ERD(Entity-Relationship Diagram)图:当数据量很大并且数据间关系复杂时对于数据的分析就得用到它来刻画系统数据模型

3.3 IPO(input process output)图描述了输入数据、处理数据、输出数据之间的关系。 3.4 STD(State Transition Diagram)图:刻画系统响应外部事件的过程。为系统的行为建模。

面向数据结构的几个图形工具: 3.5 层次方框图:用来展示数据的层次结构 3.6 warnier图:和层次方框图一个意思,不过她能描述的手段比层次图更加丰富。

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(X) ?完善性维护是提高或完善软件的性能。(√) ?数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) ?软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) ?软件模块之间的耦合性越弱越好。(√) ?如果通过软件测试没有发现错误,则说明软件是正确的。(X) ?快速原型模型可以有效地适应用户需求的动态变化。(√) ?模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高聚,低耦合度的软件产品。(√) ?集成测试主要由用户来完成。(X) ?确认测试计划应该在可行性研究阶段制定(X) ?白盒测试无需考虑模块部的执行过程和程序结构,只要了解模块的功能即可。(X) ?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) ?软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) ?系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)?模块越多,开发成本越小。(╳) ?软件测试的目的就是证明软件没有错。(╳) ?PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) ?在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) ?SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) ?HIPO 法既是需求分析方法,又是软件设计方法。(√) ?在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) ?加工小说明是对系统流程图中的加工进行说明。(×) ?判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) ?需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) ?分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) ?信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) ?用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) ?PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) ?设计阶段的输出是编码阶段的输入.(√) ?通过软件测试,可以发现软件中所有潜伏的错误.(X) ?非结构化维护用于软件的配置中只有源代码维护.(√) ?系统规格说明是系统分析和定义阶段生成的一种文档.(√) ?数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程各章重点

软件工程各章重点 第1章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么? 答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义? 答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 3. 软件工程研究的主要内容是什么? 答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么? 答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期? 答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?

答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗? 答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些? 答:结构化方法和面向对象方法。 9. 软件标准的层次是如何划分的? 为了提高软件开发的效率,保障软件产品的质量,软件工程领域中公布了许多国际标准、国家标准、行业标准、企业标准、项目规范,通常由低级到高级使用。软件工程的标准关系到许多方面,有规范开发过程的标准,有定义产品的标准,还有管理标准和记法符号的标准等等。 10. 软件工程师职业道德规范的8组关键词是什么? 答:1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 11. 职业化软件工程师要注意的十大问题是什么? 答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第2章本章的题型主要是选择题。

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程各阶段的工作内容及特征

软件工程各阶段的工作内容及特征 软件工程的目标是提高软件质量,质量因素有正确性、性能、可靠性、容错性、易用性、灵活性、可扩充性、可理解性、可维护性等等。开发常用模型有:线性模型、渐增式模型、螺旋模型、快速原型模型、形式化描述模型等等。“套用固定的模型不是程序员的聪明之举”。比如“程序设计”与“测试”之间的关系,习惯上总以为程序设计在先,测试在后,而对于一些复杂的程序,将测试分为同步测试与总测试更有效。软件开发中的三种基本策略:“复用”“分而治之”“优化—折衷”。软件复用是将具有一定集成度并可以重复使用的软件组成单元,称为软构件。分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。软件的优化是指优化软件的各个质量因素,如提高运行速度,提高对内存资源的利用率,使用户界面更加友好等等。优化工作的复杂之处是很多目标之间存在千丝万缕的关系,当不能够使所有的目标都得到优化时,就需要“折衷”策略。软件中的折衷策略是指通过协调各个质量因素,实现整体质量的最优。软件折衷的重要原则是不能使某一方损失关键的职能,更不可以像“舍鱼而取熊掌”那样抛弃一方。下面从需求分析、系统分析、系统实现、测试与改错、维护与再生这五个方面逐一阐述。 2.1 需求分析阶段 需求分析是项目成败与否的第一步,对需求把握得越准确,软件的修修补补就越少。有些需求在一开始时很难确定,在开发过程中要不断地加以改正。软件修改越早代价越少,修改越晚代价越大。需求

分析要关注到每一个最终使用者,避免遗漏使用方的需求。需求分析尽量从多个角度进行。需求分析需要与使用者进行多次反复沟通,开发者做到真正领会使用者的需求。做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。需要分析的工作要点有:1)完成问题整理、收集;2)走访使用部门,进行询问、沟通;3)交流中的心态定位是我们在为编辑、为业务工作;4)我们要为用户考虑。让用户意识到我们的每一句话都是在为他们考虑;5)采用适当的交流语言。勾画出思路清晰用户易懂的流程图,清晰明了的表格,形象美观的图形,必不可少的文字;6)保留交流的记录和整理汇总的文档;7)技术人员自己要提出用户易用性需求、系统功能需求、系统维护需求;8)响应变更需求,拒绝不合理要求;9)业务建模。通过UML绘制的模型来完整、适当地对需求进行描述;10)分析绘制业务流程图和数据流程图,总结出各级操作人员,识别系统中的所有用例和角色;分析各角色和用例之间的联系,使用UML建模工具画出系统的用例图;最后勾画系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。 2.2 系统设计阶段 系统设计阶段完成系统设计。系统设计是把需求转化为软件系统的最重要的环节,决定一套软件系统的健壮性、可扩展性、易开发性等。系统设计的优劣在根本上决定了软件系统的质量。这个阶段要确定系统结构,系统结构的稳定性决定应用软件的使用寿命。有了上一阶段需求的把控和需求建模,系统分析阶段就要完成结构设计、模块

《软件工程》试题及参考答案(第1套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.经济可行性研究的范围包括() A.资源有效性 B.管理制度 C.效益分析 D.开发风险 2.结构化设计方法在软件开发中用于()。 A、概要设计 B、详细设计 C、程序设计 D、测试用例设计3.程序的三种基本控制结构是() A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 4.软件测试中,白盒法是通过分析程序的()来设计测试用例的。 A、应用范围 B、内部逻辑 C、功能 D、输入数据 5.软件维护费用高的主要原因是()。 A、人员少 B、人员多 C、生产率低 D、生产率高 7.确认测试主要涉及的文档是()。 A、需求规格说明书 B、概要设计说明书 C、详细设计说明书 D、源程序 8.模块的内聚性最高的是( ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 9.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( ) A.生存期 B.面向对象设计 C.面向对象程序设计 D.面向对象分析 10.原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。 A.需求不确定性高的 B.需求确定的 C.管理信息D.实时 12、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 13.下列关于瀑布模型的描述正确的是( )。 A.利用瀑布模型,如果发现问题修改的代价很低

软件工程复习资料-完整版

一、选择题: 1、用例图中,用来表示用例的符号为(B)。 A B. C. D. 2、协作图中包含的元素包括(A)。 A. 对象 B. 链 C. 激活 D. 消息 3、在类图中,哪种关系表达整体与部分的关系(D)。 A.泛化 B. 实现 C. 依赖 D. 聚合 4、下列各种图形符号中,用来表示组成关系的符号为(B)。 A. B. C. D. 5、(A)工具在软件的详细设计中不能使用。 A.DFD B. N-S图 C. 流程图 D. PDL 6、“软件危机”是指(C)。 A. 计算机病毒的出现 B. 利用计算机进行经济犯罪活动 C. 软件开发和维护中出现的一系列问题 D. 人们过分迷恋计算机系统 7、快速原型是利用原型辅助软件开发的一种新思想,它是在研究(A)的方法和技术中产生的。

A. 需求阶段 B. 设计阶段 C. 测试阶段 D. 软件开发的各个阶段 8、从严格意义上讲,下列4个选项中属于顺序图的元素是(ABCD)。 A. 对象 B. 参与者 C. 消息 D. 激活 9、下列UML图形中,(ABCD)属于UML的动态视图。 A. 协作图 B. 状态图 C. 活动图 D. 顺序图 10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是(D)。 A. 数据库设计 B. 数据通信 C. 数据关系描述 D. 数据定义 11、详细设计与概要设计衔接的图形工具是(D)。 A. DFD图 B. 程序图 C. PAD图 D. SC图 12、UML中,大多数建模者把节点分为(AC) A. 设备 B. 构件 C. 处理器 D. 显示器 13、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。 A.时间图 B. 流程图 C. 活动图 D. 状态图 14、(A)描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。 A. 状态图 B. 序列图 C. 协作图 D. 活动图 15、下列特点属于描述用例的特点的是(D)。 A. 相对独立:不需要与其他用例交互,即功能是完备的

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件工程(本)阶段练习三

华东理工大学网络教育学院 《软件工程(本)》阶段练习三 一、判断题(每题1分,共10分;正确打“√”,错误打“×”) 1、Jackson结构图只能描述数据结构,不能描述程序结构。( ×) 2、HIPO图是由一张层次图和一组IPO图组成的。( √) 3、源程序的文档化就是软件的文档化。( ×) 4、问题分析图(PAD)是一种常用的详细设计描述工具。( √) 5、Jackson方法是一种面向对象的软件设计方法。( ×) 6、把一个软件系统划分成多个模块的目的是为了降低软件系统的复杂性。( √) 7、耦合性是一个用来衡量模块内部各个元素彼此结合紧密程度的度量指标。( ×) 8、将软件系统划分为模块时,应尽量做到高内聚低耦合,提高模块的独立性。( √) 9、面向数据流的设计以需求分析阶段产生的数据流图为基础,按一定的步骤将其映射为软件结构。( √) 10、软件结构图是软件系统的模块层次图,它反映了整个系统的功能实现。( √) 二、单项选择题(每空1分,本大题共30分) 1、在模块化软件设计中,划分程序模块通常遵循的基本原则是:使各模块间的耦合性 ①;使各模块内部的内聚度②。 A、尽可能强 B、尽可能弱 C、适中 D、视情况而定 2、面向数据流的设计方法把数据流图(DFD)划分为变换型和③两大类,并提出了对应于这两类结构的分解方法。 A、控制型 B、处理型 C、事务型 D、功能型 3、模块化的目的是为了④。 A、增加内聚性 B、提高易读性 C、降低复杂性 D、减少耦合性 4、三种可能的模块耦合是: ⑤:例如一个模块直接引用另一个模块中的数据。 ⑥:例如一个模块把控制另一个模块执行流程的逻辑量作为参数传递给另一个模块。 ⑦:例如一个模块把一个数据量传递给另一个模块。 其中⑧的耦合性最强。

最新软件工程试题库

“软件开发与管理”试题库 第一章:软件开发与管理概述 一、填空题 1.软件是由、、三部分组成。 2.软件作为人工生产的产品,主要是由人进行“开发”而来,与硬件比较起来没有明显的制造过程。 3.软件开发过程复杂,但一般包括、、、 等主要阶段。 4.软件的是软件的生命。 5.在软件团队开发中由于人数的增加、成员间的交互与合作,所以除了技术问题外,还存在问题。 6.软件开发方法学包括和两种开发方法。 7.软件项目进度计划主要包括、、和。 二、思考与简答题 1.举例说明程序、软件、系统的区别和联系。 2.软件有什么特点?软件开发有什么特点? 3.说说程序、软件、系统的设计与应用的不同。 4.软件开发过程主要有哪几个典型任务活动,请说说它们各自的内容。 5.软件开发过程模型是什么含义?一般有哪几种开发过程模型? 6.软件开发方法有哪两类?它们各自的优缺点是什么? 7.请说说管理在软件开发中的重要作用。软件项目管理有哪些内容。 8.软件质量是如何管理的? 第二章:需求分析 一、填空题 1.软件的需求是用户对该软件在、等方面的期望与要求。 即软件的需求、需求和其它需求。

2.需求分析的任务是需求分析师通过与用户的交流、、,得到用户对系统完整、准确、清晰、具体的要求。 3.需求分析过程中建立的模型有:、和。 而传统结构化的需求分析模型包括:图、图、 图。 4.传统的需求分析模型中,的建立是今后数据库设计的基础,而的建立是今后软件功能结构设计的基础。 5.软件的需求最终要通过表达出来。 二、思考与简答题 1.需求分析的任务和作用是什么? 2.需求分析的步骤有哪些? 3.什么是数据模型?实体、属性、联系之间的关系是什么? 4.什么是功能模型?处理的描述包括哪些内容? 5.什么是动态模型?它与功能模型的区别是什么?系统的状态是如何转换的? 6.软件需求规格说明书你认为重点包括哪些方面? 第三章:软件设计 一、填空题 1.软件的需求分析解决了软件应该“做什么”的问题,而软件设计则解决软件应该的问题。 2.软件设计能指导软件的编码实现,没有设计的编码其结果很难预料与保证,所以说软件设计是软件开发的关键,直接影响软件的。 3.软件需求分析、软件设计、软件编码之间既有区别又有联系,它们是软件在不同层次的。从,从 是软件开发两个重要的过程进阶。 4.软件设计内容包括、、等方面。 5.传统结构化软件设计,是从E-R图出发设计,从数据流图出发设计。 6.详细设计是对软件模块的设计,它更接近于编码,所以详细设计又称为过程设计或算法设计。

相关主题
文本预览
相关文档 最新文档