软件工程复习资料

合集下载

软件工程复习资料精选全文完整版

软件工程复习资料精选全文完整版

可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。

(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。

(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。

(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。

(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。

(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。

(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。

软件工程综合复习题连答案

软件工程综合复习题连答案

《软件工程》综合复习资料第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。

A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。

A、SAB、SDC、SCD、CASE3、以下判断正确的是()。

A、所谓软件开发就是编写程序。

B、利用软件工程的思想,已成功的解决了软件危机。

C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。

D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。

4、_____是以提高软件质量为目的的技术活动。

A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。

A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。

B.CPU,存储器,控制器,I/O接口及设备。

C.计算机硬件系统和软件系统。

D.计算机及其应用系统。

8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。

C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。

D.软件很难理解,硬件也很复杂。

9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。

B.问题定义,可行性研究,需求分析。

C.可行性研究,需求分析,问题定义。

D.以上顺序都不对。

10、下列选项中()是软件开发中存在不正确的观念、方法。

A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。

2、一般软件应该有三部分组成:()、()和()。

3、按软件的功能可将软件分成()、()和()等三类。

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

软件工程复习资料

软件工程复习资料

第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。

什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。

软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。

软件工程复习资料

软件工程复习资料

软件工程1、软件的概念:软件是计算机系统中与硬件相依存的另一部分,包括程序、数据、以及相关的文档。

2、软件的组成:程序、数据、文档。

3、软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

4、软件危机消除的办法:P51、必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。

2、应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早起发展阶段形成的一些错误概念和做法3、应该开发和使用更好的软件工具。

总之,解决软件危机,既要有技术措施,又要有必要的组织管理措施。

5、软件工程的含义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

6、软件生命周期的过程以及任务。

(1)问题定义(2)可行性研究(3)需求分析(4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护****************************以上为第一章******************第二章●数据流图有四种成分:源点或终点,处理,数据存储,数据流●画DFD(数据流图)的指导原则:1.符号要使用标准符号2.恰当的命名3.流入流出的数据流的条数一致4.名字要保值一致(平衡)5.遵守加工编号规则6.处理必须既有输入流又有输出流(注意:源点和终点可以相同也可以不同)●数据字典的作用:数据字典(DD)的作用也正是在软件分析和设计过程中给人提供关于数据的描述信息。

●数据字典的内容:(1)、数据流(2)、数据流分量即数据元素(3)、数据存储(4)、处理*********************** *******以上为第二章************************************第三章●实体-联系图(ER)图的概念:ER图中包含了实体、联系和属性3中基本成分,通常用矩形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。

软件工程复习资料

软件工程复习资料

软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。

程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。

它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。

开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。

五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。

瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。

“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。

在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。

实际的项⽬很少按照顺序模型进⾏。

⽤户必须有耐⼼,等到系统开发完成。

缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。

反馈信息慢,开发周期长。

虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。

快速原型模型增量模型增量模型是迭代和演进的过程。

增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。

每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。

软件工程复习资料

软件工程复习资料

一、单选题1. 为了提高测试的效率,应该( D )A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是( D ) A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以( B )为基础、自顶向下、逐步求精和模块化的过程A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份( A ) A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出( B )A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( D )A、1/6 B、1/5 C、1/4 D、1/37. PAD(Problem Analysis Diagram)图是一种( B )工具。

A、系统描述B、详细设计C、测试D、编程辅助8. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的( A )。

A、95%B、5%C、50%D、20%9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( A ) 。

A、总貌B、细节C、抽象D、软件的作者10. 分析员是( B )。

A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导11.在软件开发中,有利于发挥集体智慧的一种做法是( A )。

A、设计评审B、模块化C、主程序员制D、进度控制12.在开发软件时,( A )可用来提高程序员的工作效率。

A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机二、多选题1. 数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。

软件工程 复习资料

软件工程 复习资料

软件工程复习大纲考试主要章节:第一章软件与软件工程第二章软件项目管理第三章计算机系统工程第3.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、需求分析的主要目的是(BC)。

A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”7、SA法的主要描述手段有(B)。

A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明8、画分层DFD图的基本原则有(ACD)。

A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则9、在E-R模型中,包含以下基本成分(C)。

A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系10、画DFD图的主要目的是(A D)。

A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具11、数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。

软件工程复习资料

软件工程复习资料

1.什么是软件工程?他的基本原理是什么?1)软件工程是指导计算机软件开发和维护的工程学科。

采用工程的槪念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。

2)用分阶段的生命周期汁划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设讣技术、结果应能淸楚的审査、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。

2.是什么导致了软件工程?主要是软件危机的出现导致了软件工程3.通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。

21.软件危机的现象:1)经费超出预算,项目一再拖延。

02 )不重视需求,开发的软件不能满足用户的要求,项目成功率低。

3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。

3圄)开发工具落后,手工方式,开发效率低。

2 2 .软件工程的三要素1)"过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质疑开发出软件。

2)"方法”为软件开发提供"如何做”的技术。

它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。

3) "工具"可为过程和方法提供自动的或半自动的支持。

这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。

通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为汁算机辅助软件工程,即CASE。

C ASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

23.简述软件工程的目标,过程和原则佢)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。

软件工程的目标:降低成本,及时交付髙质量的软件产品。

m实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约朿,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。

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

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

一、选择题:1、用例图中,用来表示用例的符号为( B ) 。

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. PDL6 、 “软件危机”是指 (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 ) 。

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

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

复习整理一、绪论1.软件的定义软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。

(软件=程序+文档)2.软件工程的定义●是指导计算机软件开发和维护的一门工程学科;●采用工程化的原理与方法对软件进行计划、开发和维护;●把证明正确的管理技术和最好技术综合运用到软件开发中;●研究经济地开发出高质量的软件方法和技术;●研究有效维护软件的方法和技术。

3.软件危机的概念,及出现的原因软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂⑵软件开发管理困难而复杂。

⑶软件开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4.三种编程范型的特点(1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小(2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对象,粒度比较大(3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大二、软件生存周期与软件过程1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动●定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期●目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。

●主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护(P19)2、软件生命周期划分为哪几个阶段软件生命周期分为三个时期八个阶段:●软件定义:问题定义、可行性研究;●软件开发:需求分析、概要设计、详细设计、编码、测试;●软件运行:软件维护3、瀑布模型的特点和缺陷特点:线性模型,每一阶段必须完成规定的文档(阶段间的顺序性和依赖性)优点:●可强迫开发人员采用规范化的方法。

软件工程复习提纲

软件工程复习提纲

软件工程复习提纲第一章软件与软件工程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)瀑布模型(又称为生命周期模型)。

(3)增量过程模型:包括增量模型,RAD模型。

(4)烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。

(5)专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。

2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。

包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

具体表现如下:(1)软件是逻辑部件而不是物理部件。

(2)软件的规模越来越大,复杂性越来越大。

(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。

3、软件开发的各阶段的任务是什么?定义阶段:问题定义——任务:关于规模和目标的报告书,可行性研究——任务:系统的高层逻辑模型:数据流图,成本/效益分析:需求分析——任务:系统的逻辑模型:数据流图,数据字典,算法描述。

开发阶段:总体设计——任务:系统流程图,成本/效益分析,推荐的系统结构:层次图结构图,详细设计-任务: HIPO图或PDL图;编码和单元测试——任务:源程序清单,单元测试方案和结果,综合测试——任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。

维护阶段:软件维护——任务:维护记录以及改正性维护,适应性维护,完整性维护和预防性维护4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。

常用的开发模型有:瀑布模型( 需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合6、UML中的事物有哪些?结构事物UML中的名词,它是模型的静态部分,描述概念或物理元素。

软件工程复习资料(整理)

软件工程复习资料(整理)

什么是软件?什么叫软件工程?它的目标是什么?软件:程序与文档。

定义一:应用于计算机软件的定义,开发和维护的一整套方法、工具、文档、实践标准和工序。

定义二:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。

软件工程目标:用较少的投资获得高质量的软件。

什么是软件危机?主要表现?软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。

表现在:⑴对软件开发成本和进度的估计常常很不准确。

⑵用户易对“已完成的”软件系统产生不满。

⑶软件质量不可靠。

⑷软件常常是不可维护的。

⑸软件通常没有适当的文档资料。

⑹软件成本越来越高。

⑺软件开发生产率提高速度慢,跟不上发展。

可行性研究的目的是什么?用最小的代价在尽可能短的时间内确定问题是否能够解决。

若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)数据流图的基本要点是什么?描绘“做什么”,而不考虑“怎样做”。

软件生成期分几个阶段?几阶段的主要工作是?生命周期各阶段的基本任务:1、问题定义:要解决的问题是什么?2、可行性研究:问题是否有行得通的解决办法?3、需求分析:确定目标系统必须具备哪些功能。

4、总体设计:应如何解决这个问题。

5、详细设计:如何具体实现这个系统?6、编码和单元测试:写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。

7、综合测试:通过各种类型的测试使软件达到预定的要求。

8、软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。

何为功能模块?设计模块?功能模块:在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。

设计模块:在后面设计阶段对如何实现这些功能进行描述的模块。

HIPO PSL PAD SADT 中文意思SADT:结构分析设计方法。

PSL:问题说明。

PSA:问题说明分析器。

HIPO:H图加IPO,即层次图加输入/处理/输出图。

软件工程复习纲要

软件工程复习纲要

软件工程复习纲要第一章、概述1、软件危机的概念与主要原因(1)软件危机是指在计算机软件开发与维护时所遇到的一系列问题。

(2)软件危机产生的原因:软件规模、方法、技术、软件开发人员;客观:规模,环境,需求变化;主观:开发技术,管理。

✓软件产品规模庞大,开发与维护带来客观困难✓软件使用同期相对较长,期间可能出现开发没料到的问题,需要与时维护✓软件开发技术落后,生产方式与开发工具落后✓软件开发人员忽视软件需求分析的重要性,轻视软件维护2、软件、软件工程、软件工程学的概念(1)软件是指计算机程序与其有关的数据与文档。

(2)软件工程(software engineering)是计算机软件开发、运行、维护与隐退的系统方法;是指导计算机软件开发与维护的工程学科;软件工程的目标是在规定的时间、开发费用内,开发满足用户需求的高质量的软件。

(3)软件工程学的主要内容是软件开发技术(包含软件工程方法学、软件工具与软件开发环境)与软件工程管理(包含软件工程经济学与软件管理学)。

更多内容请见P.4;3、软件生命周期与生命周期各阶段的任务(1)软件生命周期指从设计软件产品开始到产品不能使用为止的时间周期。

包括:定义,开发,使用,维护,淘汰。

(2)软件生命周期各阶段的任务✧软件计划、软件开发与软件运行维护三个时期。

✧软件计划时期:问题定义、可行性研究、需求分析✧软件开发时期:软件概要设计、软件详细设计、软件实现、综合测试等阶段。

✧软件运行维护时期:需要不断地进行维护,使软件持久满足用户需要4、软件开发模型的几种模型与各模型的特征(1)瀑布模型(Waterfall Model) :(规范的、文档驱动方法。

开发阶段按顺序进行,适合需求分析较明确、开发技术较成熟的情况。

)特点:阶段间具有顺序性与依赖性;推迟实现编码;质量保证。

(2)快速原型模型:(快速原型系统让用户试用并收集用户意见。

获取用户真实需求。

)特点:软件产品的开发基本上是线性顺序进行的;能减少软件的总成本,缩短开发周期。

软件工程师复习资料推荐

软件工程师复习资料推荐

软件工程师复习资料推荐在成为一名合格的软件工程师的道路上,学习和复习是非常重要的环节。

而选用适合的复习资料,可以帮助我们更加高效地掌握知识点,提升自己的技能。

本文将推荐一些优质的复习资料,供软件工程师们参考。

一、编程语言学习资料1.《Java核心技术》:由SUN公司的两位工程师编写,系统全面地介绍了Java语言的基础知识和进阶技巧,是Java程序员的必备参考书。

2.《Python编程:从入门到实践》:一本适合初学者的Python编程入门书籍,通过实际案例的演示和习题的训练,帮助读者快速入门Python编程。

3.《C++ Primer》:这是一本C++领域的经典教材,可以帮助读者全面掌握C++语言的基本概念和高级特性。

二、系统设计和架构学习资料1.《大型网站技术架构》:由阿里巴巴集团首席架构师李智慧所著,内容详尽介绍了大型网站的设计原理和重要技术,对于理解和掌握系统设计和架构非常有帮助。

2.《设计模式:可复用面向对象软件的基础》:这本书介绍了23种常用的设计模式,对于应用程序的设计和可维护性有着重要的指导作用。

三、数据库学习资料1.《SQL必知必会》:适合初学者的SQL学习资料,通过简单明了的语言和大量实例,帮助读者快速掌握SQL的基本知识和操作技巧。

2.《MongoDB权威指南》:对于学习和使用MongoDB的人来说,这本书是一本非常有价值的参考书,它详细介绍了MongoDB的各种特性和使用方法。

四、软件开发工具学习资料1.《Git权威指南》:介绍了Git版本控制工具的基本概念和使用方法,对于团队协作开发和代码管理非常有帮助。

2.《Maven实战》:Maven是Java项目构建和管理的重要工具,这本书详细介绍了Maven的使用和配置,对于软件工程师来说是一本不可或缺的参考资料。

以上是我为软件工程师们推荐的一些复习资料,希望能够对大家的学习有所帮助。

当然,选择适合自己的学习资料也需要根据自身的实际情况和学习需求来确定。

软件工程复习资料

软件工程复习资料

一.概述1.什么是软件?什么是软件工程?--软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。

软件具有不可见性,是抽象的、形式化和逻辑化的。

--软件会逐渐退化而不会磨损的原因是不断地变更使组件接口之间引起错误。

--软件工程要素:过程、方法、工具。

--软件工程的基本目标是开发高质量的软件。

2.现代软件工程师关注的问题开发过程中遇到的各种困扰。

3.软件生存周期模型--软件生存期由软件定义、软件开发和运行维护3个时期组成,每个时期又可划分若干阶段,即可行性研究、需求分析、概要设计、详细设计、编码、测试、使用与维护。

--软件生存周期模型包括瀑布模型、原型模型、增量模型、螺旋模型。

4.软件开发的各种模型(瀑布、快速原型等)的特点--瀑布模型:1)阶段间具有顺序性和依赖性。

2)推迟实现的观点。

3)质量保证的观点。

瀑布模型适用于需求被清晰定义的情况。

--快速原型模型:适用于客户需求难以清楚定义的情况。

--增量模型:适用于一种需要快速构造可运行程序的方法。

--螺旋模型:螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。

螺旋模型只适合于大规模的软件项目。

--喷泉模型:喷泉模型是典型的面向对象生命周期模型。

二.需求分析1.需求分析的目的--需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。

需求分析是软件工程中的一个关键过程。

--需求分析中开发人员从用户那里了解软件做什么。

--可行性研究要进行一次“简化的、压缩的”需求分析。

2.主要任务--获取并理解用户的需求是软件工程师所面对的最困难的任务之一--发现和分析问题,并分析问题的原因/结果关系;与用户进行各种方式的交流,并使用调查研究方法收集信息;按照三个成分观察问题的不同侧面,即数据、过程、接口;将获取的需求文档化,形式有用例、决策表、需求表等。

3.功能性需求和非功能性需求--功能性需求:系统需要提供的服务或功能:如图书检索;系统对特定输入的处理方式:如对非法输入的提示;系统在特定环境下的行为:如长时间无操作时的屏保。

软件工程复习资料

软件工程复习资料

第一章概论1.软件工程的主要内容:为了有限的资金、资源和时间条件下开发满足客户要求的高质量软件,就需要研究与软件开发和管理相关的模型、方法、技术、过程、工具和环境等。

2.计算机软件:指的是计算机系统中的程序及其文档,3.程序:指的是计算任务的处理对象和处理规则的描述.4.计算任务:任何以计算机为处理工具的任务都是计算任务。

5.处理对象:是数据(如数字、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及相关的含义)。

6.处理规则:一般指处理的动作和步骤.7.文档:是为了便于了解程序所需的阐述性资料.8.软件工程:是应用计算机科学,数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法、以提高质量、降低成本为目的。

其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

9.杨芙清院士指出软件工程的框架可概括为:目标、过程和原则。

10.软件工程目标:只生产具有正确性、可用性和开销合宜的产品。

正确性:指软件产品达到预期功能的程度。

可用性:只软件基本结构、实现及文档为用户可用的程度。

开销合宜:只软件开发,运行的整个开销满足用户要求的程度。

11.软件工程原则包括围绕工程设计、工程支持和工程管理所提出的4条基本原则:(1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑(4)重视软件工程的管理。

12.软件的生存周期:软件孕育、诞生、成长、衰亡的生存过程。

软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。

软件生存周期大致可以分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。

13.软件过程:是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。

过程是活动的集合,活动是任务的集合。

14.软件过程有3层含义:(1)、个体含义:指软件产品或系统存在生存周期中的某一类活动的集合,如软件开发过程、软件管理过程等。

《软件工程》复习材料(有答案)

《软件工程》复习材料(有答案)

一、写出下列缩写英文的中文涵义[30T]CFD DFD OOASA SD SP CMM CMMI UMLCASE XPC/S B/SA TAM PDL SQA MVC CRC MBSCBSD GUISQLMTTR MTTF MTBF FTR PERT SCM CPMRMMP【参考答案】计算流体动力学(CFD)Computational Fluid Dynamics数据流图(DFD)Data FlowDiagram面向对象分析方法(OOA)Object—Oriented Analysis结构化分析方法(SA) Structured Analysis结构化设计(SD)Structureddevise结构化编程(SP)Structured Programming成熟度模型(CMM)CapabilityMaturity Model能力成熟度模型集成(CMMI) Capability Maturity Model Integration统一建模语言(UML)Unified Modeling Language计算机辅助软件工程(CASE) Computer Aided Software Engineering极限编程(XP)ExtremeProgramming客户机/服务器网(C/S) Client/Server浏览器和服务器结构(B/S)Browser/Server构架权衡分析方法(ATAM)Architecture Tradeoff AnalysisMethod页描述语言(PDL)Program DesignLanguage软件质量保证(SQA)SoftwareQualityAssurance模型—视图-控制器(MVC)ModelView Controller循环冗余码校验(CRC)Cyclical RedundancyCheck相互广播系统(MBS)Mutual BroadcastingSystem基于构件的软件开发(CBSD)Component—Based SoftwareDevelopment图形用户界面(GUI)Graphical User Interface结构化查询语言(SQL)Structured Query Language平均恢复前时间(MTTR)Mean TimeTo Restoration平均失效前时间(MTTF)MeanTimeTo Failure平均无故障时间(MTBF)Mean Time Between Failure正式技术复审(FTR)Formal Technical Review计划评审技术(PERT) Program EvaluationAnd Review Technique软件配置管理(SCM)Software Configuration Management关键路径方法(CPM)Critical Path Method二、概念[34][1]在《计算机科学技术百科全书中》,对计算机软件作出如下定义:计算机软件指计算机系统中的程序和文档,前者是计算任务的处理对象和处理规则的描述;后者是为了便于了解程序所需的阐述性资料。

软件工程师复习资料整理清单

软件工程师复习资料整理清单

软件工程师复习资料整理清单一、引言在软件工程师的职业道路上,复习是非常重要的一环。

复习资料的整理不仅有利于知识的巩固,还可以提高复习效率。

本文将为大家提供一份软件工程师复习资料整理清单,帮助大家系统地准备复习内容。

二、基础知识1. 编程语言:包括但不限于Java、C++、Python、JavaScript等常用编程语言的语法、特性、面向对象思想等方面的知识。

2. 数据结构与算法:复习线性表、树、图等常用数据结构,并了解各种排序算法、查找算法、常见算法思想等。

3. 计算机网络:了解计算机网络的基本概念、协议、网络层次结构以及常见的网络攻击与防范措施等。

三、软件开发1. 软件设计原理:掌握面向对象设计原则、设计模式等,了解软件设计的思路和方法。

2. 软件测试与调试:了解常用的测试方法和工具,并掌握如何进行软件调试和故障排查等技巧。

3. 软件质量与维护:了解软件质量管理的基本概念和方法,了解软件维护的流程和技巧。

四、数据库1. 关系型数据库:了解关系型数据库的基本概念、SQL语言以及常用的关系型数据库管理系统(如MySQL、Oracle等)的使用。

2. 非关系型数据库:了解非关系型数据库的特点、分类和应用场景,并了解一些常见的非关系型数据库(如MongoDB、Redis等)。

3. 数据库设计与优化:了解数据库的设计原则、范式理论以及常见的数据库优化策略等。

五、项目管理与团队协作1. 软件开发流程:了解软件开发过程中的需求分析、设计、编码、测试等各个环节,并掌握常用的软件开发模型(如瀑布模型、敏捷开发等)。

2. 版本控制工具:学习使用常见的版本控制工具(如Git、SVN 等),了解分支管理、代码合并等基本操作。

3. 团队协作与沟通:了解团队协作的重要性,学习有效的沟通技巧和团队合作方法。

六、实践项目1. 实践项目经验:通过参与实际开发项目,积累项目经验,掌握项目管理的流程和技巧。

2. 开源项目参与:参与开源项目的开发,学习优秀的代码风格和设计思想,并与其他开发者进行交流与合作。

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

Chapter 4 –Requirements EngineeringRequirements engineeringThe process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process.What is a requirement?It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification.This is inevitable as requirements may serve a dual functionMay be the basis for a bid for a contract - therefore must be open to interpretation; May be the basis for the contract itself - therefore must be defined in detail;Both these statements may be called requirements.Types of requirementUser requirementsStatements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.System requirementsA structured document setting out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.Functional requirementsStatements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.May state what the system should not do.Describe functionality or system services.Depend on the type of software, expected users and the type of system where the software is used.Functional user requirements may be high-level statements of what the system should do.Functional system requirements should describe the system services in detail. Problems of requirements analysis1、Stakeholders don’t know what they really want.2、Stakeholders express requirements in their own terms.3、Different stakeholders may have conflicting requirements.4、Organizational and political(政策的)factors may influence the system requirements.5、The requirements change during the analysis process. New stakeholders may emerge and the business environment may change.Use cases1、Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself.2、A set of use cases should describe all possible interactions with the system.3、High-level graphical model supplemented by more detailed tabular description (see4、Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.Requirements validation1、Concerned with demonstrating(证明)that the requirements define the system that the customer really wants.2、Requirements error costs are high so validation is very important Requirements management1、Requirements management is the process of managing changing requirements during the requirements engineering process and system development.2、New requirements emerge as a system is being developed and after it has gone into use.3、You need to keep track of individual requirements and maintain links between dependent requirements so that you can assess the impact of requirements changes. You need to establish a formal process for making change proposals and linking these to system requirements.Chapter 5 –System ModelingSystem modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.System perspectivesAn external perspective, where you model the context or environment of the system. An interaction perspective, where you model the interactions between a system and its environment, or between the components of a system.A structural perspective, where you model the organization of a system or the structure of the data that is processed by the system.A behavioral perspective, where you model the dynamic behavior of the system and how it responds to events.UML diagram typesActivity diagrams, which show the activities involved in a process or in data processing .Use case diagrams, which show the interactions between a system and its environment.Sequence diagrams, which show interactions between actors and the system and between system components.Class diagrams, which show the object classes in the system and the associations between these classes.State diagrams, which show how the system reacts to internal and external events. Context modelsContext models are used to illustrate the operational context of a system - they show what lies outside the system boundaries.Interaction modelsModeling user interaction is important as it helps to identify user requirements. Modeling system-to-system interaction highlights the communication problems thatModeling component interaction helps us understand if a proposed system structure is likely to deliver the required system performance and dependability.Use case diagrams and sequence diagrams may be used for interaction modeling. Behavioral modelsBehavioral models are models of the dynamic behavior of a system as it is executing. They show what happens or what is supposed to happen when a system responds to a stimulus from its environment.You can think of these stimuli as being of two types:Data Some data arrives that has to be processed by the system.Events Some event happens that triggers system processing. Events may have associated data, although this is not always the case.Modeling 概念?Chapter 22 –Project ManagementSoftware project managementConcerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software.Success criteriaDeliver the software to the customer at the agreed time.Keep overall costs within budget.Deliver software that meets the customer’s expectations.Maintain a happy and well-functioning development team.Software management distinctionsThe product is intangible.Many software projects are 'one-off' projects.Software processes are variable and organization specific.Management activitiesProject planningReportingRisk managementPeople managementProposal writingRisk typesProject risks affect schedule or resources;Product risks affect the quality or performance of the software being developed; Business risks affect the organisation developing or procuring the software.Risk analysisAssess probability and seriousness of each risk.Probability may be very low, low, moderate, high or very high.Risk consequences might be catastrophic, serious, tolerable or insignificant.Managing(管理的)people1、People are an organization’s most important assets.2、The tasks of a manager are essentially(本质的)people-oriented(以人为方向的). Unless there is some understanding of people, management will be unsuccessful.3、Poor people management is an important contributor to project failure.People management factorsConsistencyRespectInclusionHonestyPeople managementProject managers are responsible for managing a team of people. They have to choose people for their team and establish ways of working that lead to effective team performance.CH24Software quality managementSQM is concerned with ensuring that the required level of quality is achieved in a software product.Three principal concerns:1、At the organizational level, quality management is concerned with establishing a framework of organizational processes and standards that will lead to high-quality software.2、At the project level, quality management involves the application of specific quality processes and checking that these planned processes have been followed.3、At the project level, quality management is also concerned with establishing a quality plan for a project. The quality plan should set out the quality goals for the project and define what processes and standards are to be used.质量管理小组独立于开发小组的原因:The quality team should be independent from the development team so that they can take an objective view of the software. This allows them to report on software quality without being influenced by software development issues.CH1Software engineering is concerned with theories, methods and tools for professional software development.Expenditure(支出)on software represents a significant fraction of GNP gross national product 国民生产总值in all developed countries.The economies of ALL developed nations are dependent on software.FAQS:What is software?Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software?Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.What is software engineering?Software engineering is an engineering discipline that is concerned with all aspects of software production.What are the fundamental software engineering activities?Software specification, software development, software validation and software evolution.What is the difference between software engineering and computer science?Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering?System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.What are the key challenges facing software engineering?Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software.What are the costs of software engineering?Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.What are the best software engineering techniques and methods?While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed. You can’t, therefore, say that one method is better than another.What differences has the web made to software engineering?The web has led to the availability of software services and the possibility of developing highly distributed service-based systems. Web-based systems development has led to important advances in programming languages and software reuse.Software process activitiesSoftware specificationSoftware developmentSoftware validationSoftware evolutionCH8Program testing goals1、To demonstrate to the developer and the customer that the software meets its requirements.2、To discover situations in which the behavior of the software is incorrect, undesirable or does not conform to its specification.Verification: The software should conform to its specification.Validation: The software should do what the user really requires.System testing1、System testing during development involves integrating components to createa version of the system and then testing the integrated system.2、The focus in system testing is testing the interactions between components.3、System testing checks that components are compatible, interact correctly and transfer the right data at the right time across their interfaces.4、System testing tests the emergent behaviour of a system.Stages in the acceptance testing processDefine acceptance criteriaPlan acceptance testingDerive acceptance testsRun acceptance testsNegotiate test resultsReject/accept systemTestingTesting is intended to show that a program does what it is intended to do and to discover program defects before it is put into use.When you test software, you execute a program using artificial data.You check the results of the test run for errors, anomalies or information about the program’s non-functional attributes.Can reveal the presence of errors NOT their absence.Testing is part of a more general verification and validation process, which also includes static validation techniques.。

相关文档
最新文档