《天津理工大学-软件工程期末考试考点(14页).doc》由会员分享,可在线阅读,更多相关《天津理工大学-软件工程期末考试考点(14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,找好自己的方向,不要被这个专业误导了啊,理工的学妹,学弟们,你说呢,哈哈哈哈,嘿嘿联系填空10个, 选择10个,名词解释5个,简答题2个,画图题2个第一章一、 FAQs about software engineering软件工程中常见的问题1、 software: Computer programs and associated documentation 软件是计算机程序和所有使程序正确运行所需要的相关文档和配置信息Software products软件产品分为:Generic通用、Bespoke (custom)定制2、So
2、ftware engineering is an engineering discipline that is concerned with all aspects of software production.软件工程是一门工程学科,涉及软件生产的各个方面Software engineers should adopt a systematic and organised approach 软件工程人员运用的是系统的、有组织的工作方法。3、difference between software engineering and computer science:系统工程和计算机科学的区别:Sof
3、tware engineering is an engineering discipline that is concerned with all aspects of software production.计算机科学侧重于理论和基础,而软件工程侧重于软件开发和交付的实际活动。4、 the difference between software engineering and system engineering:软件工程和系统工程的区别:System engineering is concerned with all aspects of computer-based systems de
4、velopment including hardware, software and process engineering. Software engineering is part of this process系统工程侧重基于计算机系统开发的所有方面,包括硬件、软件和处理工程。软件工程只是它的一部分。5、 software process :A set of activities whose goal is the development or evolution of software. 软件工程是以软件开发和进化为目的的一系列活动Generic activities in all s
5、oftware processes:软件过程的基本活动a) Specification 软件描述b) Development 软件开发c) Validation软件有效性验证d) Evolution 软件进化6、software process model:软件过程模型A simplified representation of a software process, presented from a specific perspective.从特定角度提出的软件过程的简化表示形式Examples of process perspectives are Workflow perspective
6、 工作流模型 Data-flow perspective 数据流或活动模型 Role/action perspective角色/动作模型Generic process models通用过程模型 Waterfall瀑布型开发方法 Iterative development迭代式开发方法 Component-based software engineering(CBSE)基于组件的软件工程7、the costs of software engineering软件工程的成本Roughly 60% of costs are development costs, 40% are testing cost
7、s. For custom software, evolution costs often exceed development costs. 软件开发成本约占60%,测试成本占40%。对于定制软件而言,进化成本常常高于开发成本。8、software engineering methods软件工程方法:Structured approaches to software development which include system models, notations, rules, design advice and process guidance.软件开发的结构化研究方法,包括:系统模型
8、、标记法、规划、设计忠告和过程指南9、CASE (Computer-Aided Software Engineering)计算机辅助软件工程:are intended to provide automated support for software process activities. CASE systems are often used for method support. 旨在使软件过程活动自动化的软件系统。CASE常用作方法支持10、the attributes of good software优良软件的特点:The software should deliver the req
9、uired functionality and performance to the user and should be maintainable, dependable and acceptable.软件应具有用户所需的功能与性能,而且应该可维护、可靠、可用11、key challenges facing software engineering软件工程面临的主要挑战:Legacy遗留 Heterogeneity多样性挑战 delivery交付上的挑战 trust信任的挑战第二章一、system engineering process系统工程过程(填空)二、 System modellin
10、g系统建模在系统需求和设计活动中,系统被建模成一系列组件和组件间的关系。通常是以图的形式描述在系统结构模中,以便给读者一个系统组织的总体概念。Usually presented as a block diagram以方块图来描述,展现一些主要的子系统以及子系统之间的关联。三、System evolution系统进化Large systems have a long lifetime. They must evolve to meet changing requirements.大型和复杂的系统都会有一个非常长的生存期。在整个生存期内,必须改进原有的系统需求中的错误进而满足出现的新需求。四、 s
11、ystem procurement process系统采购过程:(考填空)以最佳方式获得系统做出决策并决定系统的最佳供应商。第四章一、软件工程模型software process model:is an abstract representation of a process. It presents a description of a process from some particular perspective.二、(1)waterfall model瀑布模型:Separate and distinct phases of specification and development.
12、One phase has to be complete before moving onto the next phase.直到上一阶段完成,下一阶段才能启动劣势:The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing c
13、ustomer requirements(2)Evolutionary development进化式开发:Specification, development and validation are interleaved.优势:描述可以不断补充完善劣势:a) Lack of process visibility;过程不可见b) Systems are often poorly structured;系统结构通常较差Applicability适用于:a) For small or medium-size interactive systems;b) For parts of large syst
14、ems (e.g. the user interface);c) For short-lifetime systems.进化式开发的两种基本类型:Exploratory development 探索式开发、Throw-away prototyping抛弃式原型(3)Component-based software engineering基于组件的软件工程(Reuse-oriented development面向复用的软件开发方法)其过程模型如下图:三、Spiral development螺旋式开发1、Process is represented as a spiral rather than
15、as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process.它不是将软件过程用一系列活动和活动间的回溯来表示,而是将过程用螺旋线表示。每个回路表示软件过程的一个阶段。No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.Risks are explicitly assessed a
16、nd resolved throughout the process.2、四部分:Objective setting目标设置、Risk assessment and reduction风险评估和规避、Development and validation开发和有效性验证、Planning规划.四、Software validation软件有效性验证:is intended to show that a system conforms to its specification and meets the requirements of the system customer.是要看系统是否符合它的
17、描述以及系统是否符合客观的预测目标。Involves checking and review processes and system testing.System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system6、 测试过程的阶段:Component or unit testing组件测试、System testing系统、Acceptance testing接
18、收测试五、Activities in CASE (Computer-aided software engineering) Graphical editors for system model development; Data dictionary to manage design entities; Graphical UI builder for user interface construction; Debuggers to support program fault finding; Automated translators to generate new versions of
19、 a program.六、CASE classification分类:Functional perspective从功能角度看; Process perspective从过程角度看;Integration perspective从集成角度看Fuggetta提出的分类:Tools,工具, workbenches工作平台, environments环境第五章一、 Management activities管理活动(6)Proposal writing.提出书面建议Project planning and scheduling.项目规划和调度Project costing.项目成本Project m
20、onitoring and reviews.项目监督和审评Personnel selection and evaluation.人员选择和评价Report writing and presentations.写作并称述工作报告二、 Types of planning计划的类型Quality plan质量计划、validation plan有效性验证计划、configuration management plan配置管理计划、maintenance plan维护计划、staff development人员开发计划三、 Milestones in the requirements process需
21、求过程里程碑:Milestones are the end-point of a process activity.四、 Project scheduling process项目调度五、 three main project management:Project risks 项目风险Product risks产品风险Business risks 业务风险六、 types of risk in project management:Technology risks.技术风险、People risks人员风险、Organisational risks机构风险、Requirements risks需
22、求、Estimation risks估算.七、 Risk factors in risk monitoring 【p68表5-7】第六章一、functional requirements and examples 功能需求和例子l Functional requirements:Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.2 例
23、子:图书馆系统p73二、Non-functional requirements and examples非功能需求:constraints on the services or functions offered by the system such 。例子:图书馆系统实例:1、Product requirement产品需求:The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets.2、Organisational requirement机构需求;The sy
24、stem development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN-95.3 External requirement外部需求:The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system. 三、
25、types of Non-functional requirement四、metrics in Non-functional requirement Requirements measures非功能需求度量【p76】性质度量方法速度每秒处理的事务用户/事件响应时间屏幕刷新时间规模K字节RAM芯片数易用性培训时间帮助画面数可靠性失败平均时间无效的概率失败发生率有效性鲁棒性失败之后的重启次数事件引起失败的百分比失败中数据崩溃的可能性可移植性依赖于目标的语句百分比目标系统数五、The requirements document需求文档: is the official statement of wh
26、at is required of the system developers. Should include both a definition of user requirements and a specification of the system requirements.第七章一、The requirements engineering process需求工程过程二、the main content of feasibility studies可行性研究主要内容:A feasibility study decides whether or not the proposed syst
27、em is worthwhile.A short focused study that checksIf the system contributes to organisational objectives;If the system can be engineered using current technology and within budget;If the system can be integrated with other systems that are used.三、Process activities in requirements Elicitation and an
28、alysis需求导出和分析的过程活动 Requirements discoveryRequirements classification and organisationPrioritisation and negotiationRequirements documentation四、Requirements validation techniques需求有效性验证的技术(考填空):Requirements reviews需求评审 、Prototyping原型建立、Test-case generation测试用例生成五、Requirements Change management需求变更管理第
29、八章一、principle system models二、example of system models系统模型实例:Data processing model .数据流模型、Composition model 组成模型、Architectural model 体系结构模型Classification model 分类模型、Stimulus/response model 激励-响应模型 三、definition of data-flow model数据流模型的定义:show how data is processed as it moves through the system;用来描述系统
30、中的数据处理过程。第十一章一、content of Architectural models体系结构模型的内容Static structural model静态结构模型、Dynamic process model 动态结构模型、Interface model 接口模型、Relationships model 关系模型、Distribution model 分布模型 二、Major component of Client-server model客户机/服务器模型的主要组成部分:1、Set of stand-alone servers which provide specific service
31、s 一组给其他子系统提供服务的单机服务器;2、Set of clients which call on these services.一组向服务器请求服务的客户机;3、Network which allows clients to access servers.一个连接客户机和服务器的网站第十七章一、 describe incremental development and prototyping by figure用图形描述增量式开发和原型构造【p242 图17-2】二、 tools included in a rapid application development快速应用开发的工具:数
32、据库编程语言、界面生成器、与办公应用的连接、报告生成器第二十三章一、 model if the software testing process软件测试过程的模型【p331图23-2】(考填空)二、structural testing结构化测试:是根据软件的结构知识和实现知识导出测试的测试用例设计方法,又称“白盒测试”。【p342图23-11】课件重点知识点一、软件需求分析1、需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。2、结构化分析方法(填空)l 面向数据流进行需求分析的方法l 结构化分析方法适合于数据处理类型软件的需求分析l 具体来
33、说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止3数据流图(考画图)数据流图中的主要图形元素: 数据加工(数据交换) 数据源点或终点(外部实体) 数据流 数据存储文件描述银行取款过程的数据流图:4、结构花英语(大题):是一种介于自然语言和形式化语言之间的语言,语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:while_do 或repeat_until 结构。判定结构:if_then_else 或case_of 结构;例子:商店业务
34、处理系统中“检查发货单”:if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发批准书,发货单及赊欠报告 else (欠款未超期) 发批准书,发货单 5、判定表(大题):如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。 例子:以“检查发货单”为例 二、软件设计方法1、 软件设计的目标和方法根据用信息域表示的软件需求,以及功能和性能需求,进行数据设计、系统结构设计、过程设计。软件设计任务:从工程管理角度来看,软件
35、设计分两步完成l 概要设计,将软件需求转化为数据结构和软件的系统结构。l 详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法2、 软件设计过程l 制定规范l 软件系统结构的总体设计l 处理方式设计l 数据结构设计l 可靠性设计l 编写概要设计阶段的文档l 概要设计评审3、 信息隐藏:是指每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。4、 模块独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的 例如, 若一个模块只具有单一的功能且与其它模块没
36、有太多的联系, 则称此模块具有模块独立性一般采用两个准则度量模块独立性。即模块间耦合和模块内聚耦合是模块之间的互相连接的紧密程度的度量。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。 模块独立性比较强的模块应是高内聚低耦合的模块。5、 变换型系统结构:变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。6、 事务性系统结构:它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。在事务型系统结构图中,事务中心模块按所接受的事务的类型,
37、选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。7、 变换分析方法由以下四步组成:l 重画数据流图;l 区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分;l 进行一级分解,设计上层模块;l 进行二级分解,设计输入、输出和中心变换部分的中、下层模块。8、 文件设计(只考类型,不考具体解释)文件设计过程主要分为两个阶段。第一个阶段是文件的逻辑设计,主要在概要设计阶段实施。一般要根据文件的特性,来确定文件的组织方式。顺序文件:连续文件、串联文件。 直接存取文件:无关键字直接存取文件、带关键字直接存取文件、桶式直接存取文件
38、。索引顺序文件:其基本数据记录按顺序文件组织,记录排列顺序必须按关键字值升序或降序安排,且具有索引部分,也按同一关键字进行索引。 分区文件:这类文件主要用于存放程序。它由若干称为成员的顺序组织的记录组和索引组成。9、 (大题)程序流程图:使用五种基本控制结构是:程序流程图的标准符号10、N-S图也叫做盒图。五种基本控制结构由五种图形构件表示。实例 11、问题分析图(PAD)的种基本控制结构的图式,并允许递归使用 PAD描述的示例三、 程序编码1、 结构化程序设计结构化程序设计主要包括两方面:l 在编写程序时,强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。尽可能避免使用GOTO语句
39、。l 在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。2、程序设计风格:程序实际上也是一种供人阅读的文章,有一个文章的风格问题。应该使程序具有良好的风格。 源程序文档化、 数据说明、 语句结构、 输入输出方法3、程序复杂性度量程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。四、 软件测试1、 软件测试目的:基于不同的立场,存在着两种完全不同的测试目的:从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错
40、误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。测试的目的是l 想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。l 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。l 实施测试收集到的测试结果数据为可靠性分析提供了依据。l 测试不能表明软件中不存在错误,它只能说明软件中存在错误2、 测试与软件工程各阶段的关系n 软件开发过程是一个自顶向下,逐步细化的过程n 软件计划阶段定义软件作用域n 软件需求分析
41、建立软件信息域、功能和性能需求、约束等n 软件设计n 把设计用某种程序设计语言转换成程序代码3、 黑盒测试(考概念)这种方法是把测试对象看作个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。n 黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:u 是否有不正确或遗漏了的功能?u 在接口上,输入能否正确地接受? 能否输出正确的结果?u 是否有数据结构错误或外部信息(例如数据文件)访问错误?u 性能上是否能够满足要求?u 是否有初始化或终止性错误?n 用黑盒测试发现程序中的错误,
42、必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。4、 白盒测试(写测试路径,简答题):此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:u 对程序模块的所有独立的执行路径至少测试一次;u 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;u 在循环的边界和运行界限内执行循环体;u 测试内部数据结构的有效性
43、,等。5、 逻辑覆盖:逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。语句覆盖、 判定覆盖、条件覆盖判定条件覆盖、 条件组合覆盖、 路径覆盖。L1 ( a c e )= (A1) and (B=0) and (A=2) or (X/A1)= (A1) and (B=0) and (A=2) or (A1) and (B=0) and (X/A1)= (A=2) and (B=0) or (A1) and (B=0) and (X/A1) L2 ( a b d )= not(A1) and (B=0) and not(A=2) or (X1) = not (A1) or
44、not (B=0) and not (A=2) and not (X1) = not (A1) and not (A=2) and not (X1) or not (B=0) and not (A=2) and not (X1) L3 ( a b e) = not (A1) and (B=0) and (A=2) or (X1) = not (A1) or not (B=0) and (A=2) or (X1) = not (A1) and (A=2) or not (A1) and (X1) or not (B=0) and (A=2) or not (B=0) and (X1) L4 (
45、a c d ) = (A1) and (B=0) and not (A=2) or (X/A1) = (A1) and (B=0) and not (A=2) and not (X/A1) 6、 软件测试策略测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。l 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能l 组装测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。l 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。l 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。-第 14 页-