当前位置:文档之家› 软件工程复习提纲(20160615)

软件工程复习提纲(20160615)

软件工程复习提纲(20160615)
软件工程复习提纲(20160615)

软件工程复习提纲

Chapter1

1.开发文档都有哪些?用图来表示它们之间的关系。

2.说明软件工程研究的内容。

3.软件工程的7条基本原理有何现实意义。

4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?

5.怎样理解CMMI,如何用CMMI去管理软件企业?

6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和

ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?

7.软件工程与信息系统工程有何异同?

8.怎样理解元数据?

Chapter2

1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?

2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。

3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?

4.你对“生存周期模型裁剪指南”有什么看法?

5.“图书馆信息系统”的开发选用什么开发模型合适?

Chapter3

1.立项的具体表现形式是什么?

2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?

3.什么叫风险分析,技能风险与技术风险有何区别?

3.合同、任务书、立项建议书三者有何异同?有何关系?

4.对软件项目和产品的“功能、性能、接口”三项指标如何理解?

Chapter4

1.需求分析的目的是什么,需求分析的难点在哪里?

2.需求分析的理论基础有哪几条?

3.为什么说需求分析是面向流程的?

4.解释术语:元数据、实体、中间数据。

5.用户需求报告与需求规格书有何差异?

6.需求描述有哪几种工具?你喜欢哪一种,为什么?

Chapter5

1.简述软件策划的步骤。

2.简述软件策划的方法。

3.简述对软件工作产品规模进行量化估计的方法。

4.软件工作产品和软件产品有何异同?

5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。

6.怎样理解软件中的度量,它有何作用?

Chapter6

1.概要设计说明书和详细设计说明书有何区别?

2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?

3.模块实现设计包括哪些内容?

4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”

的设计原理?

Chapter7

1.简述UML的优缺点。

2.信息系统的业务模型、功能模型、数据模型各是什么?

3.请说明“三个模型”的定义以及三者之间的关系。

Chapter8

1.软件实现要做的工作包括哪几项?

2.界面设计应遵从哪些原则?

3.软件实现管理哪些内容?

Chapter9

9.1 软件测试的目的和目标是什么?

9.4 试阐述软件测试V模型的思想及不足之处和改进办法。

9.6 试说出黑盒测试和白盒的区别和联系。

9.9 软件测试工作中要验证哪些文档?试举例。

Chapter10

10.3 软件项目与软件产品有什么不同?

10.4 软件产品发布的方式有哪几种?

10.5 三类软件产品的发布策略有何差异?

Chapter11

11.6 传统软件维护分哪几大类?

11.8 什么叫结构化维护和非结构化维护?

11.10 软件维护的副作用表现在哪4个方面?

11.13 两层结构和三层结构的软件维护方法有什么不同?

11.15 软件维护与软件产品版本升级有什么关系?

Chapter12

12.1 怎样理解“软件组织、工作产品、软件过程、软件过程源、软件过程财富”的概念?

12.4 SW-CMM的5个级别各有哪些特征?

12.5 CMMI的实施步骤是什么?

Chapter13

13.1 人们为什么越来越重视软件配置管理?

13.4 软件配置管理的目的是什么?

13.6 什么是配置项?什么是配置管理?

13.9 基线、里程碑与检查点各是什么含义?它们之间有什么关系?

13.13 软件配置管理员的职责有哪些?

Chapter14

14.2 针对软件质量保证问题,最有效的办法是什么?

14.5 对软件质量进行“全面综合治理”有哪5种方法,哪一种方法最好,为什么?Chapter15

15.2 为什么说“规范是对过程的约束,标准是对产品的约束,制度是对行为的约束”?

15.3 培训与企业文化有什么关系?

15.4 培训文档与培训管理文档有什么差别?

Chapter16

16.6 “项目管理提供给人们一种解决问题的思路和方法”。请论述其中的思路和方法。

16.16 请说明软件企业的工作流。

第一部分软件工程内容与方法、生存周期及开发模型、立项与合同

(参见补充资料)

本章学习目标:

1.对软件的定义及其特点有比较全面、客观的认识。

2.认真分析计算机软件发展的三个时期的演进过程,提高对软件工程化的认识。

3.简述软件危机产生的原因。

4.阐释软件生存期的六个步骤。

5.针对软件生存期的瀑布模型、演化模型、螺旋模型、喷泉模型、智能模型、线性顺序模型、原型模

型、RAD模型、增量模型的改进过程,指出各个模型的特点与不足,并预测软件工程开发模型的发展趋势。

6.用自己的语言叙述“螺旋模型”、“RAD模型”的实施过程。

7.比较“软件工程”的各种不同的定义,简述软件工程观念的变化。

8.论述软件工程项目的基本目标及其相互之间的关系。

9.阐释组成“基于计算机系统(Computer-based Systems)”的系统各元素及其相互之间的关系,能用

这种组成原则来分析具体问题。

10.理解“计算机系统工程”的实质,认真分析其“分配方案”的评价准则,试在更广泛的学科范

围应用这些准则。

11.比较用“事件流”方式描述的硬件工程过程与软件工程过程的异同,用自己的语言描述出这种

异同。

12.人作为“基于计算机系统”的组成元素,其自己的构成涉及到哪些成分?通过人类工程过程的

描述,加深对“用户友好性”的认识。

13.可行性研究需要考虑的范围有哪些(即可行性研究的方法及可行性研究报告的主要内容),详细

论述这些范围所涉及的情况。

14.用自己的语言综合论述“系统分析”的任务、步骤和方法。

15.通用软件产品开发和定制软件开发之间有什么不同?这在实际应用中对通用软件产品

用户意味着什么?

16.解释为什么软件工程的基本思想适用于所有的软件系统?

一、基本概念

软件,软件的特点,软件生存期,软件生存期模型,瀑布模型,增量模型,迭代模型,原型模型,软件工程的基本目标,基于计算机的系统的基本内容,可行性研究,软件立项,软件策划,

二、简答和练习题

⒈回答下列问题

⑴什么是软件危机?为什么会产生软件危机?怎样消除软件危机?

⑵软件开发与写程序有什么不同?为什么应该有所不同?

⑶软件生存周期为什么要划分成阶段?应该怎样来划分阶段?

2. 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果

是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;

如果是取款,系统计算机利息并印出利息清单给储户。请写出问题定义并分析此系统的可行性。

3. 为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工

作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞的前一天凭取票通知和帐单交款取票,系统校对无误即印出机票给旅客。

请写出问题定义并分析此系统的可行性。

三、基本术语翻译

四、简述题

1.谈谈你对软件工程化开发的认识。

2.软件工程过程有哪几种基本活动?试加以说明。

3.试说明“软件生存周期”的概念。

4.试论述瀑布模型、增量模型、迭代模型、原型模型等软件开发方法的基本过程及优缺点。

5.简述软件工程3种开发方法、4项研究内容以及5个面向理论。

6.软件工程是开发、运行、维护和修复软件的系统化方法,它包括哪些要素?试加以说明。

7.软件工程的基本原则有哪些?试加以说明。

8.有人认为软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。请提出你的观点并解释。

9. 比较ISO 9000、CMM/CMMI以及微软管理体系的差异。

10. 信息系统工程的层次有哪些?阐述软件工程与信息系统工程之间的关系。

11. 比较顾客、客户、用户之间的异同。

12. 一个系统分析员可以是三个来源之一;系统开发者;系统需求者;或某些外部机构。讨论使用每一来源的正反两方面的特点。描述一个“理想的”分析员(即分析员的职责及其应具备的条件)。

13. 人作为“基于计算机系统”的组成元素,其自己的构成涉及到哪些成分?通过人类工程过程的描述,加深对“用户友好性”的认识。

14.解释为什么增量式开发是开发商务软件系统的最有效技术?为什么这种模型不适用于实时系统工程?

15.说明为什么在需求工程过程中区分用户需求开发和系统需求开发是重要的。

16.描述在软件设计过程中的主要活动以及这些活动的输出。使用图来说明在这些活动输出之间可能存在的关系?

17.让一名用户紧密参与到软件开发团队中的一个问题是“本地化”,也就是,团队成员采纳开发团队的观点而忽视用户队员的需求。请写出3个解决建议,并讨论每一个的优点和缺点。

第二部分软件需求分析(参见补充资料)

本章学习目标:

1.简述需求分析的任务、过程以及常用的方法,并用自己的语言叙述图3.3(P41)软件需求分析工作

的流程。

2.掌握软件需求分析的原则。结合图

3.2和图3.6阐述对用户、分析员、程序员的素质要求,他们彼

此之间的关系以及各自对需求分析阶段工作的贡献。

3.理解不同需求分析方法的共性。结合图3.9(P50)阐述快速原型方法的细化过程,并分析在软件开发

周期不同阶段引入快速原型方法后的开发过程。

4.阐述软件复用的概念、范围以及复用技术。

5.掌握结构化分析方法及其所使用的工具以及这些工具的各自特点;并简述进行系统动态分析的几种

方法。

6.理解不同方式的软件需求分析工具的特色,阐述自己对软件需求分析自动化的看法。

7.了解需求规格说明和需求评审的主要内容,并用自己的语言综合论述“软件需求分析”的全部过程。

一、基本概念

原型化方法,软件复用及软件复用的范围,结构化分析方法,

数据流图,数据词典,Warnier图,数据库的基本概念

二、简述题

1. 在软件需求分析时,首先建立当前系统的物理模型,再根据物理模型建立当前系统的逻辑模型。请问什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?

2. 软件需求分析是软件工程过程中交换意见最频繁的步骤。为什么交换意见的途径会经常阻塞?

3. 你认为一个系统分析员的理想训练和基础知识是什么?请说明理由。

4. 信息和信息结构有什么区别?有没有不存在信息流的系统?有没有不存在信息结构的系统?

5. 软件需求分析的操作性原则和需求工程的指导性原则是什么?

6. 描述加工逻辑说明的工具有哪些?各自的特点,试分别举例说明之。

7. 数据流图和数据字典的作用是什么?数据流图的基本成分有哪些?数据字典有哪些词条?

8. 传统的软件开发模型的缺陷是什么?原型化方法的类型有哪些?原型开发模型的主要优点是什么?

9. 软件需求分析说明书主要包括哪些内容?

10. 状态迁移图、时序图和Petri网的用途何在?

11.利用你关于自动取款机的使用知识,设计一组用例,用来作为理解自动取款机系统需求的基础。

三、基本术语翻译

第三部分软件设计、界面设计以及UML建模

(参见补充资料)

本章学习目标:

1.区别设计、程序设计和软件设计等概念,阐述软件设计在软件工程中的地位和作用,并结合图4.1、

4.2和4.3从管理和技术两种角度来理解软件设计。

2.概述软件设计应具备的基础,或从哪些方面来理解和进行软件设计。

3.掌握模块划分的评价准则——模块独立性的判别。

4.结合图(参见RJGC(第6章软件设计)P25页图)阐述模块大小、模块数与成本之间

的关系。

5.试从整个软件生存期角度来理解抽象化的作用,并结合过程抽象、数据抽象和控制抽象来理解软件设

计的抽象过程。

6.阐述模块的属性、特性及独立性。根据模块独立性的度量准则)来理解耦合性和内聚性的分类以及每

种类别的特点。

7.比较变换型分析方法与事物型分析方法的异同,简述设计后处理需要考虑的问题)。

8.理解过程设计的任务、过程,阐述三类详细设计工具的异同及其相互关系。

9.了解软件设计规格说明和设计评审的主要内容

10.综述系统结构设计、数据设计(文件设计)及过程设计的原则、方法和具体实施步骤。

一、基本概念

模块(基本属性、外部特性及内部特性),耦合、内聚及其种类,界面设计,UML

二、简述题

阐述分析模型与设计模型之间的关系。(参见附件PPT)

1.逐步求精、分层过程与抽象等概念之间的相互关系如何?

2.完成良好的软件设计应遵循哪些原则?

3.如何理解模块独立性?用什么指标来衡量模块独立性?

4.模块独立性与信息隐蔽(反映模块化有效程度的属性)有何关系?

5.简述变换型问题的分析方法

6.举例说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗?

7.进行详细设计的工具有哪些?分别说明之

8. 界面设计遵循的认知原则有哪些?

9. Theo Mandel的三条黄金原则是什么?

10. 界面设计的需要考虑的四种模型有哪些?试比较其差异?

11. 用户界面设计过程包括哪四种不同的框架?

12. 简述采用增量迭代开发模型时,UML实际建模步骤。

13.基于你使用银行ATM机的经历,请画一个活动图,当客户从机器中提取现金时,为可能涉及的数据处理过程建模。

三、基本术语翻译

四、练习题

⒈试为每种类型的模块耦合举一个具体例子;

⒉试为每种类型的模块内聚举一个具体例子;

⒊用面向数据流的方法设计下列系统的软件结构:

⑴储蓄系统

⑵机票预定系统

⒋假设只有SEQUENCE(顺序)和DO WHILE两种控制结构,怎样利用它们完成IF THEN ELSE操作?

⒌假设只允许使用SEQUENCE和IF THEN ELSE两种控制结构,怎样利用它们完成DO WHILE操作?

⒍画出下列伪码程序的流程图和N-S图:

START

IF q THEN

WHILE q DO

f

END DO

ELSE

BLOCK

q

n

END BLOCK

END IF

STOP

⒎某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1,000元,则基本手续费为交易金额的8.4%;如果交易总金额超过1,000元到10,000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10,000元,则基本手续费为交易金额的4%加上134元。当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续

费为基本手续费的6%。当每股售价超过25元,如果交易的股数零散(即不是100的倍数),则附加手续费为基本手续费的4%。要求:

⑴用判定表表示手续费的计算方法;

⑵用判定树表示手续费的计算方法。

第四部分程序编码(参见补充资料)

本章学习目标:

1.结合“对源程序的质量要求”和“关于GOTO语句的争论”,正确理解和认识结构化程序设计的原则和实施步骤。

2.综合结构化程序设计方法和面向对象实现技术,阐述程序设计风格的考虑范围以及你对程序设计风格的认识。

3.概述影响程序效率的因素和准则。

4.以你自己的观点,对目前流行的程序设计语言进行比较、分类,并给出选择建议。

5.比较几种程序复杂性度量方法,阐述各自特点和不足。

6.掌握度量程序复杂性的McCabe方法和Halstead方法。

一、基本概念

程序效率,代码行度量法,McCabe度量法,Halstead的软件科学

二、简述题

1. 结构化程序设计有时被错误地称为“无GOTO语句”的程序设计。请说明为什么会出现这样的说法,并讨论环绕着这个问题的一些争论。

2. 从下面关于程序编制的叙述中,选出3条正确的叙述。

①在编制程序之前,首先必须仔细阅读给定的程序说明书。然后,必须如实地依照说明书编写程序。说明书中常会有含糊不清或难以理解的地方。程序员在作业时应该对这些地方做出适当的解释。

②在着手编写程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。

③在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。

④考虑到以后的程序变更,为程序编写完整的说明书是一项很重要的工作。只要有了完整的程序说明书,即使程序的编写形式难以让他人看懂也没有什么关系。

⑤编制程序时不可缺少的条件是,程序的输入和输出数据格式都应确定。其他各项规定都是附带的,无足轻重。

⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等也都是重要的条件。为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规程和单纯的表现方法,注意使整个程序的结构简洁。

3. 用某种软件复杂性度量算法来度量不同类型的程序时,得出的度量值是否真正反映了它们的复杂性?如果对同类型的程序进行度量,其结果是否就比较有价值?

4. 软件复杂性有哪几类?软件复杂性度量模型应遵循哪些基本原则?

第五部分软件测试、维护和发布与实施

(参见补充资料)

本章学习目标:

1. 简述什么是软件测试?软件测试的目的和原则是什么?(从用户的角度出发,从软件开发者的角度出发)

2. 了解软件测试与软件开发过程的关系。

3. 了解软件错误的分类。

4. 简述软件测试的过程与策略。

5. 了解软件测试用例设计的方法,掌握逻辑覆盖、基本路径测试、因果图等测试用例设计方法。

6. 简述白盒测试与黑盒测试的区别及其适用的范围。

7. 了解程序静态测试的方法。

一、基本概念

软件测试,测试用例,白盒测试,驱动模块,桩模块,黑盒测试,等价类,边界值,因果图,α测试,β测试,软件维护,软件发布

二、简述题

1. 从下列关于软件测试的叙述中,选出5条正确的叙述。

①用黑盒法测试时,测试用例是根据程序内部逻辑设计的。

②尽量用公共过程或子程序去代替重复的代码段。

③测试是为了验证该软件已正确地实现了用户的要求。

④对于连锁型分支结构,若有n个判定结构,则有2n条路径。

⑤尽量采用复合的条件测试,以避免嵌套的分支结构。

⑥GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。

⑦发现错误多的程序模块,残留在模块中的错误也多。

⑧黑盒测试方法中最有效的是因果图法。

⑨在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。

⑩程序下率的提高主要应通过选择高效的算法来实现。

2. 对小的程序进行穷举测试是可能的,用穷举测试能否保证程序是百分之百正确呢?

3. 在任何情况下单元测试都是可能的吗?都是需要的吗?

4. 应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?

5. 传统软件维护的种类、工作程序以及副作用?

6. 比较UML、CMM对软件维护的重大影响?

7. 解释在系统交付给用户致歉,为什么对于程序来说没有一点缺陷是没有必要的。

8. 解释回归测试和压力测试。

三、基本术语翻译

第六部分软件管理及能力成熟度模型

(参见补充资料)

本章学习目标:

1.了解软件过程的概念、软件过程框架和软件过程模型。

2.了解软件项目管理的过程

3.了解软件度量的种类、面向规模和面向功能的度量以及质量度量的种类。

4.掌握LOC估算和FP估算的方法方法、分解技术和工作量估算方法。

5.了解软件成本估算的概念,掌握COCOMO成本估算方法。

6.了解软件成本-效益估计方法。

7.了解软件进度安排方法及图形工具。

8.了解软件项目划分的方式、项目组织的模式、人员配备的原则和条件。

9.简述软件配置管理的概念,包括配置项和基线的概念、配置管理的主要工作。

10.了解软件工程标准化的概念,包括软件工程标准化的意义、软件工程标准的制定与推行、软件工程标准的层次、软件工程的国家标准。

11.了解软件文档的概念,包括文档编制的要求、文档的作用、文档的分类、文档的工作。

12.简述软件过程能力评估的CMM模型,包括过程成熟度的概念、软件机构的能力成熟度模型、关键过程区域、关键实践的概念。

13.了解ISO9000国际标准,包括质量管理、质量认证和质量审核的概念,ISO9000系列标准的特点、科学依据、主要内容,以及ISO9000-3标准。

一、基本概念

软件过程,软件项目管理,软件度量,LOC估算,FP估算,IBM估算模型,Putnam估算模型,COCOMO估算模型

软件配置项,基线,CMM模型,关键过程区域,ISO9000

二、填空题

1. 由于软件工程有如下的特点,使软件管理比其他工程的管理更为困难。软件产品是 A 。 B 标准的过程。大型软件项目往往是 C 项目。 D 的作用是为有效地、定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。在制定计划时,应当对人力、项目持续时间、成本做出 E ;风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤。最后,每个软件项目都要制定一个 F ,一旦G 制定出来,就可以开始着手H 。

A~C: ①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在

D~H:①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划

答案:A:②B:⑥C:③D:②E:④F:①G:⑥H:⑤

2. 在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:一是作为一个估算变量,度量软件每个 A 的大小;一是联合使用过去的项目中收集到的 B 和其他估算变量,进行成本和 C 估算。LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的 D 不同。当用 E 作为估算变量时,功能分解是绝对必要的且应达到很详细的程度;而用 F 作为估算变量时,分解程度可以不很详细。 E 是直接估算, F 是间接估算。若计划人员对每个功能分别按最佳的、可能的、悲观的3种情况给出LCO或FP估计值,记作a,m,b,则LCO或FP的期望值E的公式为G ,m是加权的最可能的估计值,遵循H 。

A~C: ①模块②软件项目③分量④持续时间⑤工作量⑥进度

⑦基线数据⑧改进数据

D:①详细程度②分解要求③改进过程④使用方法

E~F: ①FP ②LOC

G:① E=(a+m+b)/3 ② E=(a+4m+b)/6③ E=(2a+3m+4b)/3④ E=(a·4m·b)2/3

H: ①χ概率②γ概率③β概率④泊松

答案:A:③B:⑦C:⑤D:①E:②F:①G:②H:③

3. 按照软件配置管理的原始指导思想,受控制的对象应是 A 。 B 将软件配置管理定义成一门管理学科, C 将软件配置管理定义成一种标识、组织和控制修改的技术, D 指出配置管理过程是在整个软件生存期中实施管理和技术规程的过程。软件配置状态报告如下图所示。

A: ①软件元素②软件项目③软件配置项④软件过程

B~D:①《GB/T11457-1995软件工程术语》②《ISO/IEC12207-1995信息技术-软件生存期过程》

③《ISO9000-3:1997质量管理和质量保证标准第三部分:ISO9001:1994在计算机软件开

发、供应和维护中的使用指南》

④巴比奇(W.Babich)

E~H: ①配置审核②配置标识③配置控制④配置状态报告

⑤版本控制⑥基线与变更控制

答案:A:③B:③C:④D:②E:②F:③G:①H:④

4. CMM提供了一个框架,将软件过程改进的进化步骤组成5个成熟度等级,为过程不断改进奠定了 A 的基础。这5个成熟度等级定义了一个 B 的尺度,用来衡量一个软件机构的 C 并评价其软件过程能力。每个成熟度等级为继续改进过程提供了一个 D 。每个等级包含了一组 E ,通过实施相应的一组 F 达到这一组。5个成熟度等级有其不同的行为特征,通过3个方面来表现,即一个机构为建立或改进软件过程所进行的活动,对每个项目所进行的活动和跨越各项目的过程能力。

A,B:①无序②有序③循环④循序渐进

C~F: ①基本特征②关键实践③关键过程区域④台基

⑤过程目标⑥成熟度框架⑦软件过程成熟度

答案:A:④B:②C:⑦D:④E:⑤F:③

三、基本术语翻译

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程课程设计

第一章概述 1.1系统名称 学生宿舍管理系统 1.2开发及运行环境 CPU Intel? Core(TM)i5-4210M 内存4GB 硬盘空间30M以上 输入设备键盘鼠标 操作系统windows 8.0 数据库windows sql server 2005 1.3软件开发计划 2017.12.01-2017.12.04 软件需求分析 2017.12.05-2017.12.09 系统结构设计 2017.12.10-2017.12.15 软件编码及数据 库设计实现 2017.12.16-2017-12.20 软件测试 2017.12.21 软件交付

第二章需求分析 目前,各学校的宿舍管理主要依赖于人工管理,学生宿舍相关的各种信息可以通过宿舍管理系统来集中统一管理,方便的宿舍管理员对宿舍的管理,更有利于宿舍安全以及同学们的健康成长。 2.1 任务概述 宿舍管理系统为了方便管理,尽可能的实现操作简单,易学易用,主要实现以下功能: 1)系统要求用户必须输入正确的用户名和密码才能进入系统; 2)系统应该提供学生住宿情况的基本登记; 3)系统应提供人员来访登记及结束访问的详细登记; 4)系统应提供学生在校期间物品出入宿舍楼的详细情况登记; 5)系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种条件的查询)及楼房信息的查询; 6)系统应提供增加、删除、修改用户帐户的功能; 7)增加学生离校的物品管理制度 2.2 宿舍管理系统一层数据流图及数据字典 2.2.1 一层数据流图

图1-1 学生宿舍管理系统一层数据流图 2.2.2 数据字典 以下是图1-1数据流图的数据字典本数据字典主要定义数据4方面内容: 名字:数据元素的名字,作为在数据流图中的标识符, 描述:对名字所代表的数据功能和含义加以描述 定义:对名字所代表的实际构成加以解释 位置:表示数据流的来源 名字:管理员 描述:对宿舍管理系统进行操作的人员

软件工程复习提纲

1.什么是软件? 是一系列按照特定顺序组织的计算机数据和指令的集合,包括程序、数据和文档。 附:软件的特征:成本高、风险大、维护困难 2.什么是软件危机,其内容主要是指什么? 原因:1、与软件本身的特点有关;2、与软件开发人员有关; 定义:在计算机软件开发和维护过程中所遇到的一系列严重的问题。 1)对软件开发成本和进度的估计常常不准确。 2)用户对“已完成”系统不满意的现象经常发生。 3)软件产品的质量不可靠。 4)软件的可维护程度非常之低。 5)软件通常没有适当的文档资料。 6)软件的成本不断提高。 7)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。 3.什么是软件工程? 开发、运行和维护软件的系统方法 ?软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。 4.软件工程的目标(PP.41 )及其组成部分。方法、工具和过程。 ?软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。 方法: 是指产生某些结果的形式化过程, ?工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。 ?过程: 生产特定产品的工具和技术的结合 ?软件工程方法学包含3个要素:方法、工具和过程。 5.软件开发方法的定义。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。 比如SASD方法、面向对象的软件开发方法。 6.好的软件的一些主要衡量指标。例如McCall 的质量模型。 (1)质量,它的衡量:产品的质量、过程的质量、商业环境背景下产品的质量。

软件工程课程设计要求

软件工程》课程设计 一、目的、要求 通过该课程设计使学生树立起强烈的工程化意识,用工程化思想和方法开发软件,切实体会用软件工程的方法开发系统与一般程序设计方法的不同之处。学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。 二、主要内容 要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目,题目可参考附录A,也可自行拟定题目,按 照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。分别、选用传统的结构化方法和面向对象的方法,开发环境和工具不限。 三、设计成果要求 1.提交软件系统,根据完成情况给分; 2.提交设计报告文档 设计报告将从以下三个方面给分: (1)报告是否规范,符合要求; (2)报告是否完整、工作量大小; (3)文档逻辑性是否合理、语言是否流畅。 四、进度安排 (1)确定选题,进行可行性分析,开发计划 (2)软件需求分析 (3)软件设计 (4)软件实现,测试计划 (5)软件实现,测试报告 (6)验收

附录A 课程设计题目 题目一:电子商务网站建设 一个集客户购物、下订单、订单处理、销售统计等功能于一体的系统。通过浏览器,创建账户/登陆账户,让客户可以查询货物,把货物放入购物车,创建订单,通过信用卡支付等。系统划分成了多个模块,松耦合的设计架构,允许可以和多个数据源,EIS (企业信息系统)进行交互。功能如下: 1?用户 注册/登陆/忘记密码/管理个人信息 查询货物 购物车管理 提交订单 信用卡支付 查询历史购物记录 2?货物商店 接受/处理订单消息 手工接受/拒绝订单 用E-mail来通知客户 发订单给供应商 销售统计 3.供应商 接受订单 派送货物给用户 提供一个基于web的库存管理 维护库存数据库 题目二:外文图书采购系统 1?问题概述 某图书馆外文采购有两个组--征订组和验收,登记组。分别承担书籍订购和进书验收任务。为了减轻劳动强度和提高工作效率,打算采用计算机进行管理。为此,系统分析员在进行了调查研究,描述出外文采购室现行系流程。 1 )订书组从供书单价收到订书目录,根据各单位的需要选择出要订购的书 目。

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件工程复习资料

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.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。 B.软件质量是由产品的功能、性能、易用性等外在特性决定的。 C.运行正确的软件就是高质量的软件。 D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。 11、可行性研究主要包括哪几项? A.技术可行性、经济可行性和操作可行性 B.技术可行性、经济可行性和道德可行性 C.技术可行性、法律可行性和操作可行性 D.技术可行性、操作可行性和法律可行性 12、成本/效益分析的目的是帮助()正确地作出是否投资于这项开发工程的决定。 A.系统分析员 B.客户组织的负责人 C.项目经理 D.软件开发人员 13、在进行成本/效益分析的时候,需要考虑() A.开发成本 B.运行费用 C.系统带来的经济效益 D.系统使用寿命 14、数据流图和数据字典共同定义了新系统的逻辑模型。 A.错 B.正确 15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。 A. 正确 B.错误 16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。 A.正确 B.错误 17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是 A.功能模型 B.数据模型 C.行为模型 D.动态模型 18、下列叙述中,()不属于数据字典的作用。 A.为用户与开发人员之间统一认识 B.为需求分析阶段定义各类条目

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

一、选择题: 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、“软件”概念: “软件”一词具有三层含义: (1)一为个体含义,即指计算机系统中的程序及其文档; (2)二为整体含义,即指在特定计算机系统中所有上述个体含义下的软件的总称,亦指计算机系统中硬件除外的所有成分; (3)三为学科含义,即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、技术所构成的学科。 2、“软件工程”概念: (1)一方面,软件工程是一类求解软件的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法、创建软件以达到提高质 量,降低成本的目的; (2)另一方面,软件工程也是一门指导计算机软件开发和维护的工程学科。 3、“模型”概念: 模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内各模型元素以及它们之间的语义关系。 重点要求: 1、软件开发的本质:实现问题域中的概念和处理逻辑到运行平台的概念和 处理逻辑的映射。 第二章软件过程 本章围绕软件过程这一主题,讲解了三方面的内容: 一:介绍了软件生存周期过程。按照承担软件开发工作的主体,软件生存周期过程分三类:基本过程、支持过程和组织过程。每类过程又包含一些确定的过程,每一过程又是由一组确定的活动定义的。 二:介绍了几种常用的软件生存模型:瀑布模型、增量模型、演化模型、螺旋模型和喷泉模型等,分析了这些模型的优缺点及它们的适用情况等。 三、讲解了一个软件项目生存周期过程的规划和监控。一个软件项目生 存周期过程规划包括三个阶段:第一阶段的目标是选取一个适合该项目特点

软件工程课程设计报告

软件工程课程设计报告样式 山东建筑大学计算机科学与技术学院 课程设计说明书 题目:学校教材订购系统的分析和设计 课程:软件工程 院(部):计算机科学与技术学院 专业:软件测试 班级:软测143 学生姓名:冯岩 学号:20141113088 指导教师:王宜贵 完成日期:

目录 课程设计任务书 (36) 1. 系统概述 (39) 1.1业务流程描述 (39) 1.2 业务流程图..................................................................................... 错误!未定义书签。2.系统需求分析.......................................................................................... 错误!未定义书签。 2.1 系统用例模型.................................................................................. 错误!未定义书签。 2.2 系统类图模型............................................................................ 错误!未定义书签。 2.3 系统顺序图模型........................................................................ 错误!未定义书签。 3. 系统设计.................................................................................................. 错误!未定义书签。 3.1 系统结构设计................................................................................. 错误!未定义书签。 3.2 数据库概念模型设计..................................................................... 错误!未定义书签。 3.3 数据库物理模型设计..................................................................... 错误!未定义书签。 4. 系统详细设计.......................................................................................... 错误!未定义书签。 4.1学校教材订购系统界面设计.......................................................... 错误!未定义书签。 4.2 销售系统处理............................................................................... 错误!未定义书签。 4.3 输入设计....................................................................................... 错误!未定义书签。 4.4 采购系统处理............................................................................... 错误!未定义书签。 4.5 设计............................................................................................... 错误!未定义书签。 4.6 输出设计....................................................................................... 错误!未定义书签。总结 .. (43) 参考文献 (45) 课程设计指导教师评语 (46)

软件工程考研资料

软件工程复习提纲 第一章软件工程基本概念 1、软件危机的概念:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2、软件危机包含两方面的问题:1)如何开发软件以满足对软件日益增长的需求; 2)如何维护数量不断膨胀的已有软件。 3、软件危机的原因:1)与软件本身的特点有关;2)和软件开发与维护的方法不正确有关。 4、软件危机的消除途径:解决软件危机,既要有技术措施(方法和工具), 又要有必要的组织管理措施。 5、软件工程的概念:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而 建立和使用完善的工程原理。 6、软件工程的基本原理:1)用分阶段的生命周期计划严格管理 2)坚持进行阶段评审 3)实行严格的产品控制 4)采用现代程度设计技术 5)结果应能清楚地审查 6)开发小组的人员应该少而精 7)承认不断改进软件实践的必要性 7、软件工程方法学(3个要素):通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 方法学,也称为范型。三要素:方法、工具和过程。 8、软件生命周期:从软件定义、软件开发和运行维护,直到最终被废弃,要经历一个漫长的时期, 通常把软件经历的这个漫长的时期称为生命周期。 1)软件定义:问题定义、可行性研究和需求分析; 2)软件开发:总体设计、详细设计、编码和单元测试、综合测试; (前两个称系统设计,后两个称系统实现) 3)运行维护:软件维护; 9、软件过程及其特点:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。 1)瀑布模型:a.阶段间具有顺序性和依赖性;①前一阶段的工作完成后,才 能开始后一阶段的工作;②前一阶段的输出文档是后一阶段的 输入文档,前一阶段的输出文档正确,后一阶段的工作才能获 得正确的结果。 b.推迟实现的观点;对于规模较大的软件项目来说,往往编码 开始得越早最终完成开发工作所需要的时间反而越长。 c.质量保证的观点;①每个阶段都必须完成规定的文档。 ②每个阶段结束前都要对所完成的文档进行评审,以便尽早发 现问题,改正错误。 优点:文档驱动。

《软件工程》复习资料

1,什么是软件,软件的性质 软件是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。软件=程序+数据+文档。 软件的内在性质是:软件具有高度的抽象性和严密的逻辑性。 软件的外在性质是:软件是一种逻辑信息产品,是用文字、符号表达的智力产物。 2,什么是工程化工程化的软件开发方法与早期的程序设计方法的不同点在哪里? 将成熟工程领域的方法应用于软件开发。工程化的方法包括如下四个方面: ⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境 ⑶.具备统一的工程规范⑷.管理和控制 3,软件工程研究的内容 软件项目的管理 软件工程的知识体系包括如下内容 过程:软件开发的步骤。方法:软件开发各步骤所用到的技术。管理:控制软件开发按照过程和方法顺利完成的技术和措施。工具:辅助人们贯彻过程和方法,并实施管理 1,可行性分析包含哪些内容,它们的含义是什么? 答:⑴.经济上可行性:论证系统有没有经济效益或社会效益?多长时间能回收成本? ⑵.技术上可行性:实现新系统需要哪些技术,现有技术能否解决,难点?建议采用的技术先进程度怎样?新技术的应用是否存在风险?是否能够找到胜任该系统的熟练的技术人员?等等⑶.操作上可行性:系统的操作方式在用户所在的组织内是否可行,特别是对原有系统扩展会不会引起矛盾。⑷.法律上可行性:会不会引起侵权、会不会引起其他的社会问题。 2,下列哪些工作中需要估算软件成本? I)软件可行性研究II)软件计划III)软件需求分析IV)软件运行和维护 三 1,结构化分析方法的三种描述手段 数据流图,掌握数据流图中的基本符号,大题要求给出一个需求能够画出多层数据流图 数据字典 加工说明的三种描述工具是:结构化语言、判定树和判定表来表示 2,结构化方法的特点:自顶向下,逐层分解,抽象和分解 3,用户需求: ?某学校需要开发一套基于Web的研究生招生管理系统,用户需求如下: –考生可以登录系统提交报名信息,报名信息经过格式确认存入数据库;信息提交成功后能够网上在线支付报名费并记录交费信息;交费成功的考生可以打印 报名表。 –各院系教务员能够查看和审核考生提交的报名信息,确定信息是否准确有效,最后给出审核是否通过的标志。教务员还能够打印报名考生清单。 –招生办公室管理员能够查询有效的报名考生信息和打印统计报表;能够生成报名考生数据文件上报到上级单位(教育部)。 题目要求: ?请用SA方法对它进行分析,画出分层数据流图。(只要求数据流图,不要求数据字典和 报名信息库

软件工程课程设计

软件工程课程设计 题目固定资产管理系统学院数学与信息工程学院专业计算计科学与技术班级计科学051 学号200332225232 学生姓名方明 同组成员李亮 指导教师魏远旺

目录 一、可行性报告┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉1 二、需求说明书┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉3 三、总体设计说明书┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉5 四、详细设计说明书┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉13 五、程序源代码┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉24 六、课程设计体会┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉27 七、参考文献┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉27

第一章可行性报告 1.1 固定资产管理概述 1.1.1 固定资产 财政部颁发的于2002年1月1日起施行的《企业会计准则-固定资产》中,是这样对固定资产下定义的:“固定资产,是指同时具有以下特征的有形资产:为生产商品,提供劳务,出租或经营管理而持有的;使用年限超过一年;单位价值较高。”这应该是固定资产的准确定义。 1.1.2 固定资产的具体标准如何确定 判断固定资产的具体标准,主要有两个方面:一是时间标准,二是价值标准。根据《企业会计准则-固定资产》规定:固定资产,是指企业使用期限超过1年的房屋,建筑物,机器,机械,运输工具以及其他与生产,经营有关的设备,器具,工具等。不属于生产经营主要设备的物品,单位价值在2000元人民币以上,并且使用年限超过2年的,也应当作为固定资产。 1.1.3 固定资产如何分类 按其经济用途分类,可以分为生产经营用固定资产和非生产经营用固定资产; 按其所有权划分,可分为自有固定资产和租入固定资产; 按来源渠道划分,可分为外购的固定资产,自行建造的固定资产,接受投资转入的固定资产,接受捐赠的固定资产,以非货币资金换入的固定资产,改建扩建新增的固定资产,盘赢的固定资产,融资租入固定资产; 按使用情况划分,可以分为使用中的固定资产,未使用的固定资产和不需用的固定资产; 按其经济用途和使用情况综合划分,可分为生产经营用固定资产,非生产经营用固定资产,租出固定资产(指经营性租赁),不需用固定资产,未使用固定资产,土地,融资租入固定资产。 1.2 固定资产管理系统可行性分析及开发计划 本项目主要是根据软件工程课程的实践需要,根据固定资产管理的流程,与软件工程的理论相结合,完成本项目的开发。本项目的设计和开发目标是达到软件工程课程理论和实际相结合的目的。 1.2.1 定义: *数据流图

软件工程(研)复习提纲答案

复习提纲 第一章软件工程概述 1、分析60年代末出现的软件危机的原因。如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高”。 答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成本增加,可靠性降低等。 开发大型软件与编制小程序主要有以下区别: ⑴人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型 软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成。 ⑵文档:小程序很少有书面文档;大型软件则是集体劳动的“产物”,必须有规范化 的文档,便于开发和维护。 ⑶产品。小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大型软 件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级。 大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因。 2、软件复用的概念及两类软件复用技术:合成技术和生成技术。 答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术。 (1)合成技术 利用部件(component,组件,构件)合成软件系统的技术。 部件是可复用的一小段软件(可为二进制形式),可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口。 (2)生成技术 利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例。 可复用的模式有两种:代码模式和规则模式。 ①代码模式 可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体。各种程序生成器。

软件工程(双语)复习提纲

Chapter 1 An Introduction to Software Engineering *What is software? -Computer programs and associated documentation and Data -Two fundamental types of software product: generic products and customized products *What is software engineering? -Software engineering is an engineering discipline which is concerned with all aspects of software production *What is the difference between software engineering and computer science? -Computer science is concerned with theory and fundamentals; -software engineering is concerned with the practicalities of developing and delivering useful software *What is a software process? -A set of activities whose goal is the development or evolution of software -Generic activities in all software processes are: ?Specification 、Development 、Validation 、Evolution Chapter 4 Software Process *Software process -Software processes are the activities involved in producing and evolving a software system. -A structured set of activities required to develop a software system:specification;designand implementation;validation;evolution. -General process activities are specification, design and implementation, validation and evolution. *Software process models -Software process models are abstract representations of these processes. -Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component-based software engineering.

软件工程复习大纲-整理

软件工程复习大纲 题型: 选择题 判断题 简答题 应用题(60分) ①数据流图 ②用例图 ③程序流程+白盒测试 ④顺序图 ⑤黑盒测试(等价类划分和边界值分析) ⑥计算题(第八章软件度量) 选择,判断,简答:重心会适当往第六章之后压 一.概述(无大题、简答题,主要是选择和判断)1.软件的概念和特点(三个要素) 概念: 软件= 程序+数据+文档 ●程序:按事先设计的功能和性能需求执行的指令序列 ●数据:是程序能正常操纵信息的数据结构 ●文档:与程序开发、维护和使用有关的图文材料 特点(选择或判断)

三个要素: 工具 方法:完成软件工程项目的技术手段(分为结构化方法和面向对象方法) 过程:贯穿软件开发所有环节 2.软件危机和现状(不协调现象软硬件矛盾) 软件危机定义: 在计算机软件的开发和维护过程中所遇到的一系列严重问题。(效率下降,质量下降)现状: ●软件成本日益增加 ●软件技术进步落后于需求增长 7个原则:

3.软件工程的定义和发展过程 软件工程定义: 应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即,将工程应用到软件。 发展过程: 第一软件工程传统的软件工程 第二代软件工程对象工程 第三代软件工程过程工程 第四代软件工程构件工程 软件工程知识体系

二.过程模型(无大题) 1.软件的生命周期、软件过程概念 软件过程:(软件开发中所遵循的路线图) 软件过程可以定义软件生产的一系列活动,这些活动贯穿于软件开发的整个过程。

软件过程模型:(软件生存周期模型、软件开发模型) 软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 (定义了若干小的框架活动,为完整的软件开发过程建立了基础。 每一个活动由一组软件工程动作组成 每一个动作都包括一系列相互关联的可考核的任务,并产生一个关键的工作产品。 每一个任务完成一个动作定义的一部分工作。) 过程具有的共同活动: 沟通计划建模构建部署 2.常见的几种软件过程模型 重点三个:瀑布模型、增量模型、原型,优点缺点,应用场合,要会举例子 另外两个,螺旋和敏捷 瀑布模型: 特点: 1. 阶段间具有顺序性和依赖性。 2. 推迟实现的观点。 3. 为了保证质量:①每个阶段必须完成规定的文档; ②每个阶段结束前完成文档审查,及早改正错误 优点: ①提供了一个模板,使得分析、设计、编码、测试与维护工作可以在该模板的指导下有序 地展开,避免了软件开发、维护过程中的随意状态。

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