大连理工大学城市学院软件工程导论期末考试复习重点
- 格式:docx
- 大小:120.70 KB
- 文档页数:6
2016-2017年第一学期《软件工程》期末复习答疑一、怎样进行课程的总复习?将在16周最后的课程总复习课(串讲):第一、各章的复习重点;第二、适当讲解期末考试复习题。
下面给同学们提几点建议,供大家参考:(1)在进行课程的总复习前,应该完成课程的上机练习作业;(2)要进行全面地系统的复习,决不能靠猜题和押题等侥幸心理进行复习,因为结业考试的题量很大,内容覆盖非常广,所以必须进行全面地系统的复习;(3)在全面地系统复习基础上,掌握的课堂讲授的知识点。
尤其要抓住各章的重点和难点问题深入复习(我将会在最后一次复习课中强调的)。
(4)在全面复习的基础上,认真练习或阅读期末考试复习题(与考试题型一致)。
(5)所给的复习资料上未提到内容,只要求作一般性的掌握,可以不必去深究,但不代表一点不考,因为需要掌握《软件工程》中的一些常识。
二、课程理论考试试卷题型本课程理论考试是闭卷考试,题型包括:名词解释5题15分;单项选择题15题15分,填空题10题20分,判断题20题10分,问答与简述题5题20分。
综合题两题20分。
一、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2、需求分析答:需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
3、Alpha测试答:用户在开发者的场所进行测试,并且在开发者的指导下进行,测试在受控环境中进行,开发者记录发现的错误和问题4、Beta测试答:用户在一个或多个客户场所进行测试,不受开发者控制,测试者记录发现的问题和错误,定期将问题报告发送给开发者。
2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。
参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。
参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。
参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。
参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。
软件工程导论期末复习和答案1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、预防性维护5.一般说来,投入运行的软件系统中有错误(A )。
A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
软件工程导论期末复习题及答案正确答案:C.研究软件系统的开发过程和方法软件工程的主要目标是提高软件的质量,包括可靠性、可用性、可维护性和可重用性等。
同时,软件工程也致力于降低软件开发和维护的成本,提高软件的生产率。
因此,以上选项都是正确的。
A.人员B.方法C.工具D.程序正确答案:D.程序软件工程的三个基本要素是人员、方法和工具。
其中,人员是指参与软件开发和维护的人员,包括项目经理、系统分析师、程序员、测试人员等;方法是开发软件所采用的方法,包括面向对象方法、面向过程方法等;工具是指支持软件开发和维护的工具,包括编译器、调试器、测试工具等。
程序是软件开发的结果之一,不属于软件工程的三个基本要素。
D.软件从测试到发布的整个过程正确答案:A.软件从开发到维护的整个过程软件生命周期是指软件从开发到维护的整个过程,包括需求分析、设计、编码、测试、发布、维护和退役等阶段。
因此,选项A是正确的答案。
选项B、C、D都只描述了软件生命周期的部分阶段,不完整。
A.需求分析B.编码C.测试D.维护正确答案:D.维护软件开发过程中的活动包括需求分析、设计、编码、测试等阶段,而维护是软件使用过程中的一个阶段,不属于软件开发过程中的活动。
因此,选项D是正确的答案。
在软件工程中,以下哪个选项最接近于“用户故事”的定义?答案:A.一种用于描述用户需求的文档。
用户故事是软件开发中的一种重要工具,它用于收集、整理和描述用户需求,以便更好地理解和满足用户的需求。
以下哪个选项是面向对象编程(OOP)中的基本概念?答案:B.类。
在面向对象编程中,类是一种抽象数据类型,它定义了一个对象的结构,包括属性(状态)和方法(行为)。
在软件开发中,以下哪个阶段最可能涉及到代码重构?答案:C.编码阶段。
代码重构是在编码阶段进行的一项活动,它通常涉及到修改和优化代码的结构和实现方式,以提高代码的可读性、可维护性和效率。
答案:A. Git。
版本控制是软件开发中的一项重要工具,用于跟踪和管理代码的变更。
大连理工大学22春“计算机科学与技术”《软件工程》期末考试高频考点版(带答案)一.综合考核(共50题)1.软件工具的唯一作用是为了延长软件产品的寿命。
()T.对F.错参考答案:F2.软件工程方法学的要素之一过程是指软件开发应该以软件维护为中心,关键是编写程序。
()A.正确B.错误参考答案:B3.如果对象之间的耦合通过消息连接来实现,则这种耦合就是继承耦合。
()A.正确B.错误参考答案:B4.“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
”这句话是结构程序设计的经典定义。
()A.正确B.错误参考答案:A5.系统响应时间指从用户完成某个控制动作,到软件给出预期的响应之间的这段时间。
()参考答案:T6.软件工程方法学的要素之一过程是指软件开发应该以软件维护为中心,关键是编写程序。
() T.对F.错参考答案:F7.包含风险分析的软件工程模型是()。
A.螺旋模型B.瀑布模型C.增量模型D.喷泉模型参考答案:A8.一般说来,数据字典由4类元素的定义组成:数据流、数据流分量、数据存储、处理。
() T.对F.错参考答案:T9.在以下白盒技术测试用例的设计中()是最弱的覆盖标准。
A.语句B.条件C.条件组合D.判定参考答案:AA.计算机病毒的出现B.利用计算机进行经济犯罪活动C.软件开发和维护中出现的一系列问题D.人们过分迷恋计算机系统参考答案:C11.在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是()。
A.数据流图B.状态图C.系统结构图D.用例图参考答案:B12.给DFD中的数据流命名时,能反映出数据流成分的名字(如“数据”、“信息”之类)是最好的命名方式。
()A.正确B.错误参考答案:B13.如果一种方法仅使用对象和消息,则这种方法称为基于类的方法,或者称为面向对象的方法。
软件工程导论期末考试考点软件工程导论期末考试考点1. 软件的定义:软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构,文档是开发、使用和维护程序所需要的图文资料。
2. 软件危机的定义,表现、原因是什么?a )软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
b )软件危机的表现:对软件开发成本和进度的估计常常很不准确。
经常出现用户对“已完成的”软件系统功能不满意的现象。
软件产品的质量往往达不到要求。
软件通常不可维护。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
c )软件危机的原因:客观原因:与软件本身的特点有关软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
软件缺乏“可见性”。
软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。
软件缺乏“可插拔性”。
如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,必须有严格而科学的管理。
主观原因:与软件开发与维护的方法不正确也有关目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,这可能是使软件问题发展成软件危机的主要原因。
忽视需求分析只重视编码与运行。
编写程序所需的工作量只占软件开发全部工作量的 10%~ 20% 在后期引入一个变动比在早期引入相同变动所需付出的代价高 2~3个数量级。
图1.1定性地描绘了在不同时期引入一个变动需要付出的代价的变化趋势。
忽视文档只重视程序必须认识到一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。
必须清除只重视程序而忽视软件配置其余成分的糊涂观念。
轻视维护是一个最大的错误。
统计数据表明,实际上用于软件维护的费用占软件总费用的 55%~70% 3.软件工程的定义、软件工程方法学三要素是什么?软件工程定义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,用于经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程导论期末复习重点选择、判断略一、名词解释1、软件危机 2 、软件工程 3 、数据字典 4 、模块化 5 、黑盒测试6、软件维护7 、软件过程8 、快速原型9 、白盒测试二、简答题1、可行性研究目的和任务?2、可行性研究包括哪几方面的内容?3、简述需求分析的描述工具和基本任务?4、什么是模块化?模块设计的准则?5、详细设计阶段的根本目标和任务?6、比较面向数据流和面向数据结构两类设计方法的异同?7、测试与调试的主要区别?8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
9、比较层次方框图与结构图的异同?10、结构化程序设计的基本原则?11、提高软件编码效率的3 条原则?、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
2、软件工程答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
3、数据字典答:数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
4、模块化答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
5、黑盒测试答:黑盒测试也称为功能测试, 它着眼于程序的外部特征, 而不考虑程序的内部逻辑结构。
测试者把被测程序看成一个黑盒, 不用关心程序的内部结构。
黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
第一章绪论软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
软件工程:是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是两个问题:1. 如何开发软件,怎样满足对软件的日益增长的需求。
2. 如何维护数量不断膨胀的已有软件。
主要表现:1. 对软件开发成本和进度的估计不准确2. 用户不满意3. 软件质量不高、可靠性差4. 软件常常不可维护、错误难以改正5. 缺乏适当的文档资料6. 软件成本占系统总成本的比例逐年上升7. 软件开发速度跟不上计算机发展速度产生软件危机的原因1. 与软件本身的特点有关:软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。
在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。
因此,管理和控制软件开发过程相当困难。
2. 软件不易于维护:(1软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。
(2软件不同于一般程序,它的规模大,不易于维护。
3. 在软件开发过程中,或多或少地采用了错误的方法和技术。
4. 对用户需求没有完整准确的认识,就匆忙着手编写程序。
解决软件危机的途径:⑴研制新一代体系结构的智能计算机,以改变软件的实现方式,降低软件的复杂性。
目前尚未研制成功。
⑵采用工程化、规范化的开发方法来指导软件的开发:这就是产生“软件工程学”的背景,并在70年代形成了结构化分析、设计方法。
⑶在求解方法上采用面向对象的软件设计方法。
即在软件开发中,以客观世界的问题空间入手进行软件设计,以减少求解方法空间与客观世界问题空间存在的“鸿沟”。
“生命周期法”的起源:软件工程采用的“生命周期法”,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶段的任务.生命周期划分的原则:任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。
软件工程导论期末复习重点软件工程期末复习一、软件工程学概述1.软件危机:计算机开发和维护的过程中所遇到的一系列问题名词解释(需要加上软件危机产生的原因)对用户的要求没有完整准确的认识就匆忙着手编写程序论述题(需要加上软件危机的典型表现)01.对软件开发成本和嫉妒的估计常常不准确02.用户对已完成软件系统的不满意情况经常发生03.软件的质量靠不住2.软件工程:指导计算机开发和维护的一门工程学科?名词解释3.软件工程方法学的三要素:方法、工具、过程4.软件生命周期的三个时期:软件定义、软件开发、运行维护01.软件定义时期的三个阶段:问题定义、可行性研究、需求分析02.软件开发时期的四个阶段:总体设计、详细设计、编码、单元测试,综合测试,前两个称系统设计,后两个称系统实现03.软件维护时期:只要任务是使软件持久的满足用户的需要,具体的说,当软件在使用过程中发现错误时应该加以纠正,当环境改变时应修改软件以适应新的环境,当用户有新的需要时,应该及时改进软件以满足用户新的需求,本时期不在划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程5.可行性研究的结果是客户做出是否继续这项工程的决定的重要依据,只有投资取得较大收益的的那些工程项目才是值得继续进行下去的6.需求分析的目标是:确定出系统必须具备哪些功能,和用户密切配合,充分交流信息,以得出经过系统确认的系统逻辑模型7.软件维护的四类维护活动:01.改正性维护:改正和诊断在使用过程中发生的软件错误02.适应性维护:修改软件以适应新的环境变化03.完善性维护:根据用户的需求改善和扩充软件使它更完善04.预防性维护:为将来的维护活动事先做准备8.瀑布模型: ?论述题01.传统的瀑布模型开发软件的特点A.阶段间具有顺序性和依赖性B.推迟实现的观点C.质量保证的观点02.软件配置:程序、文档、数据03.注释有什么用:提高代码的可读性(有待补充)二、可行性研究1.可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.从三个方面研究每种解法的可读性;01.技术可行性:使用现在的技术能实现这个系统吗?02.经济可行性:这个系统的经济效益能超过它的开发成本吗?03.操作可行性:系统的操作方式在这个用户组织内能行得通吗?3.系统流程图:是概括的描绘物理系统的传统工具。
第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
2.产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.软件配置的主要包括程序、文文件和数据等成分。
4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
(ppt上定义)5.所谓基准配置又称基线配置。
6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型7.软件工程方法学包含三个要素:方法、工具和过程。
8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学9.传统方法学也称为生命周期方法学或结构化范型10.面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
4.对象彼此间仅能通过发送消息互相联系。
11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和验收测试。
13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。
14.所谓构件就是功能清晰的模块或子系统15.RUP(Rational统一过程)软件开发的生命周期是一个二维的生命周期模型16.”极限”二字的含义是指把好的开发实践运用到极致17.微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。
大连理工大学22春“计算机科学与技术”《软件工程》期末考试高频考点版(带答案)一.综合考核(共50题)1.C++和Eiffel是强类型语言,即语法规定每个变量或属性必须准确属于某个特定的类。
()T.对F.错参考答案:T2.人们把客观世界中的实体抽象为问题域中的对象(object),比如一家由多名雇员组成的公司,这个公司就是唯一的对象,因此对象是固定的。
()A.正确B.错误参考答案:B3.层次图是用来描绘软件的层次结构,其中一个矩形框代表一个模块,若矩形框之间有直线连接,表示它们之间存在()。
A.调用关系B.组成关系C.链接关系D.顺序执行关系参考答案:A4.需求分析阶段的任务是确定()。
A.软件测试的具体方法B.软件开发工具C.软件开发费用D.软件系统的功能参考答案:D结构化方法的工作模型是使用螺旋模型或喷泉模型进行开发。
()A.正确B.错误参考答案:B6.面向对象方法的工作模型只能使用螺旋模型进行开发。
()A.正确B.错误参考答案:B7.面向对象实现主要包括两项工作:把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;测试并调试面向对象的程序。
()A.正确B.错误参考答案:A8.模块内聚度越高,说明模块内各成分彼此结合的程度越()。
A.松散B.紧密C.无法判断D.相等参考答案:B9.给DFD中的数据流命名时,能反映出数据流成分的名字(如“数据”、“信息”之类)是最好的命名方式。
()A.正确B.错误10.在用户界面层次上(不考虑程序的内部结构和处理过程)对软件进行测试属于哪种测试方法?()A.黑盒测试B.白盒测试C.逻辑覆盖测试D.控制结构测试参考答案:A11.软件维护阶段是软件生命周期的第一个阶段。
()T.对F.错参考答案:F12.面向对象方法的工作模型只能使用螺旋模型进行开发。
()T.对F.错参考答案:F13.数据流图有4种基本符号,其中正方形(或立方体)表示数据的源点或终点。
()A.正确B.错误参考答案:A14.以下不属于静态单变量模型的是()。
1.软件是程序、数据及相关文档的完整集合。
2.软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
3.软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求。
如何维护数量不断膨胀的已有软件。
4.软件危机的典型表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件产品的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
5.产生软件件危机的原因:一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
6.消除软件危机的途径:首先应该对计算机软件有一个正确的认识。
其次必须充分吸取和借鉴人类从事计算机硬件研究和开发的经验教训。
还要在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。
软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。
7.软件工程师指导计算机软件开发和维护的一门工程学科。
8.把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
9.软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎么做”的问题。
工具是为运用方法而提供的自动的伙伴自动的软件工程支撑环境。
过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
10.目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。
传统方法学(也称生命周期方法学额或结构化范型)。
前一阶段任务的完成是开始进行后一阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的揭发更进一步具体化,加进了更多的实现细节。
审查的主要标准就是每个阶段都应该提交“最新式的”高质量的文档资料,从而保证在软件开发工程结束时有一个完整准确的软件配置交付使用。
软件工程导论重点
第一章重点:
软件的概念:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
软件危机概念:软件危机暴发于上个世纪六十年代末。
主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。
软件开发周期长、成本高、质量差、维护困难。
软件工程概念:
概括地说,软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程的目标:
软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。
基本目标:
付出较低的开发成本
达到要求的软件功能
取得较好的软件性能
开发的软件易于移植
需要较低的维护费用
能按时完成开发工作,及时交付使用
软件生存期概念和包含内容:
软件也有一个孕育、诞生、成长、成熟和衰亡的生存过程,我们称这个过程为软件生命周期或软件生存期。
软件生存期分为三个时期
软件定义
软件开发
运行维护
软件工程的方法:
软件工程包含技术和管理两方面的内容,是技术和管理紧密结合所形成的工程学科。
通常将软件开发全过程中使用的一整套技术方法的集合称为方法学(methedology),也称为范型(paradigm)。
目前使用最广泛的软件工程方法学:传统方法学(结构化方法学),面向对象方法学。
软件工程三要素:
三要素:方法、工具和过程。
第二章重点:
生存期模型有哪些:
•瀑布模型
•快速原型模型
•增量模型
•螺旋模型
•喷泉模型
•统一过程
•基于构件的开发模型
•敏捷过程
前四种面向过程后四种面向对象
给一个模型,判断出是哪一模型的
第三章重点:
结构化分析方法的概念:
传统的分析建模方法称为结构化分析(structured analysis,SA)方法。
三大建模:(未完待续!!!)
功能建模:
功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。
功能模型
用数据流图来描述。
数据建模:
在结构化分析方法中,使用实体—关系建模技术来建立数据模型。
这种技术是在较高的抽象层次(概念层)上对数据库结构进行建模的流行技术。
实体—关系模型表示为可视化的实体—关系图(entity-relationship diagram,ERD),也称为ER图。
ER图中仅包含3种相互关联的元素:数据对象(实体)、描述数据对象的属性及数据对象彼此间相互连接的关系。
行为建模对应的概念,设计和图
状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态图中使用的主要符号如图所示。
第四章重点:
结构化设计的概念:
如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
建议从高级语言中取消GOTO语句;嵌套;子模块
自顶向下(Top-Down)、逐步细化(Stepwise Refinement)
第九章重点:
软件工程的观点:
(1)详细设计应能直接地容易地翻译成代码程序。
(2)源程序应具有可移植性。
(3)编译程序应具有较高的效率。
(4)尽可能应用代码生成的自动工具。
(5)可维护性。
程序设计语言的选择:
在选择编程语言时,可以考虑以下因素。
(1)应用领域:目标系统的应用领域不同,需要采取的系统开发范型也不同,
所以要考虑支持相应范型的编程语言。
(2)系统用户的要求。
(3)编程语言自身的功能。
(4)编码和维护成本及开发环境。
(5)编程人员的技能。
(6)软件可移植性。
第十章重点:
软件测试的概念:
软件测试是为了发现错误而执行程序的过程。
或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
白盒测试:
白盒测试主要是对程序模块进行检查:
对程序模块的所有独立的执行路径至少测试一次;
对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次;
在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。
黑盒测试:
黑盒测试方法主要是为了发现以下错误:
是否有不正确或遗漏了的功能?
输入能否正确地接收?
能否输出正确的结果?
是否有数据结构错误或外部信息(例如数据文件)访问错误?
性能上是否能够满足要求?
是否有初始化或终止性错误?
调试:(在书上P261)
调试(debug)也称排错或纠错,它是紧跟在测试之后要做的工作。
但与测试不同之处在于,测试着重于发现软件中有错,发现异常或软件运行的可疑之处;而调试的任务在于为错误确切地定位,找到出错的根源,并且通过修改程序将其排除。
测试用例:
选择测试用例原则
(1)为每一个等价类规定一个唯一的编号。
(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被
覆盖的有效等价类,重复这一步,直到所有的有效等
价类都被覆盖为止。
(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖
的无效等价类,重复这一步,直到所有的无效等价类
都被覆盖为止。
软件测试的策略(图):
通常软件测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。
第十一章重点:
都是选择和判断,背PPT和看书
第十二章重点:
软件过程的概念:(在书上P277-278)
能力成熟度模型:
CMM是能力成熟度模型Capability Maturity Model三个英文单词第一个字母组成的。
事实上,该模型最早提出时,它指的是软件过程能力成熟度模型。
该模型按软件过程的不同成熟度划分了5个等级,1级被认为成熟度最低,5级则成熟度最高。
软件过程改进的概念:(在书上)
第十三章重点:
项目管理包含的内容:
软件项目管理涉及的几个主要方面是人员、产品、过程和项目,即所谓4P (People、Product、Process、Project)。
(1)人员管理
(2)产品管理
(3)过程管理
(4)项目管理
项目管理要开展的主要工作可分为3类。
①计划及计划管理。
包括项目策划及计划制定、项目估
算、风险分析及风险管理、进度管理、计划跟踪与监督。
②资源管理。
包括人员管理(人员安排、使用)、成本管
理、信息管理。
③成果要求管理。
包括需求管理、配置管理、质量管理。
软件工程书上大题重点:
45页 3.1和后面48页接着的er图
48页 3-18图和上面的解释
103页求100以内的素数
109页 4.13 4.14
白盒测试黑盒测试从中出一个,明白测试原理:
黑盒测试:已知产品的功能设计规格,可以通过测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。