软件工程导论 西南交大机械考点

合集下载

软件工程概论(高起专)学习指南 西交大考试题库及答案

软件工程概论(高起专)学习指南  西交大考试题库及答案

软件工程概论(高起专)学习指南一、填空题1、软件是一种(B)产品。

A、有形B、逻辑C、物质D、消耗2、软件工程学的目的应该是最终解决软件生产的(B)问题。

A、提高软件的开发效率B、使软件生产工程化C、消除软件的生产危机D、加强软件的质量保证3、与计算机科学的理论研究不同,软件工程是一门(B)学科。

A、理论性B、工程性C、原理性D、心理性4、在计算机软件开发和维护中所产生的一系列严重的问题通常称为软件危机,这些问题中相对次要的因素是(D)。

A、文档质量B、开发效率C、软件功能D、软件性能5、软件工程学科出现的主要原因是(C)。

A、计算机的发展B、其他工程科学的影响C、软件危机的出现D、程序设计方法学的影响6、软件工程是一种(A)分阶段实现的软件程序开发方法。

A、自顶向下B、自底向上C、逐步求精D、面向数据流7、有关计算机程序功能、设计、编制、使用的文字或图形资料称为(B)。

A、软件B、文档C、程序D、数据8、(A)是计算机程序及其说明程序的各种文档。

A、软件B、文档C、数据D、程序9、软件开发环境支持一定的(C)或按照一定的软件开发模型组织而成。

A、软件生存周期B、软件过程C、软件开发方法D、软件开发模型10、软件开发环境中最主要的组成部分是(C)。

A、软件工具B、项目管理工具C、软件工具D、需求分析工具11、在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是(D)工具。

A、文档分析B、项目管理C、成本估算D、版本控制12、数据集成指不同软件工程能相互(B)。

A、合作B、交换数据C、交流D、通信13、一个CASE工作台是一组(B),支持设计、实现或测试等特定的软件开发阶段。

A、工具集B、软件包C、平台集D、程序包14、控制集成是指工具激活后能控制其他(A)的操作。

A、工具B、系统C、软件D、应用15、(D)是指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。

软件工程导论知识点总结

软件工程导论知识点总结

软件工程导论知识点总结软件工程导论知识点总结1. 软件工程概述1.1 什么是软件工程软件工程是一门研究如何有效地开发、维护和管理软件系统的学科。

它基于工程原理和方法,将系统化的、规范化的方法应用于软件开发过程中,以提高软件的质量、可靠性和可维护性。

1.2 软件工程的重要性在当今日益发展的信息技术领域,软件已经成为各个行业和领域中不可或缺的核心组成部分。

软件工程的实践使得软件开发更加可控,能够满足用户需求,提高软件质量,降低开发和维护成本。

1.3 软件工程的原则软件工程有一些核心原则,包括适应性、可理解性、一致性、可复用性和可维护性。

这些原则帮助开发人员创建高质量的软件,并确保软件在不同环境下的可靠性和安全性。

2. 软件开发过程2.1 软件开发生命周期软件开发生命周期是指从软件概念形成到软件退役的整个过程。

常见的软件开发生命周期模型包括瀑布模型、迭代模型和敏捷模型。

2.2 瀑布模型瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护五个阶段。

每个阶段都有明确的输入和输出,下一个阶段在前一个阶段完成后开始。

2.3 迭代模型迭代模型是一种循序渐进的软件开发过程模型,将软件开发分为多个迭代周期。

每个迭代周期包括需求分析、设计、编码、测试和评审阶段。

每个迭代周期都会产生一个可执行的软件版本。

2.4 敏捷模型敏捷模型强调迭代和反馈,在软件开发过程中更加注重灵活性和适应性。

常用的敏捷开发方法包括Scrum和XP(极限编程)等。

3. 软件开发方法与工具3.1 需求工程需求工程是软件工程的关键环节,用于确定用户需求并转化为可行的软件规格说明。

需求工程包括需求获取、需求分析、需求建模和需求验证等阶段。

3.2 架构设计架构设计为软件系统提供了一个稳定的基础,确定系统各个组件之间的关系和交互方式。

常用的架构设计模式包括模块化、层次化、客户端-服务器和MVC等。

3.3 编程与测试编程是将设计转化为可执行代码的过程,而测试是验证代码是否达到预期功能的过程。

软件工程导论重点

软件工程导论重点

第一章软件工程学概述软件工程:指导软件开发和维护的工程学科把系统的、规范的、可度量的途径应用与软件开发、运行和维护的过程,研究这一途径软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题表现:对软件开发成本的不准确用户对完成的系统不满意软件产品质量靠不住软件不可维护软件没有适当的文档资料软件成本逐年上升软件开发生产率跟不上发展产生原因:与软件本身特点和软件开发与维护的方法不正确有关软件开发过程中修改需要付出的代价趋势代价时间软件工程七条基本原理:如何解决软件微机1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚的审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的重要性软件工程方法学3要素:方法、工具、过程1传统方法学(结构化范型):把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。

2面向对象方法学:软件生命周期:软件过程:描述为了开发出客户需要的软件,什么人,在什么时候做什么事以及怎样做这些事以实现某一个特定的具体目标。

软件工程方法学三要素之一瀑布模型:阶段间具有顺序性和依赖性、推迟实现、质量保证、文档驱动快速原型模型:软件产品开发基本上是线性顺序进行的增量模型:短时间内向用户提交可完成部分工作的产品、用户有充裕时间学习和适应新产品螺旋模型:保障软件开发的可靠性和可控性喷泉模型:第二章可行性研究可行性研究目的:在最小的代价在尽可能短的时间内确定问题是否值得去解决可行性研究三方面:技术可行性、经济可行性、操作可行性一集法律、社会效益等等数据流图:数据字典:四类元素定义组成:数据流数据流分量(数据元素)数据存储处理由数据元素组成数据的方式:顺序选择重复可选符号:= 等价于/定义为+ 和(连接两个分量)[ ] 或(从方括弧内列出的若干分量中选择一个,用|隔开){ } 重复( ) 可选第三章需求分析需求分析基本任务:准确定义系统必须做什么有哪些需求?1.功能需求2.性能需求3.可靠性和可用性需求4.出错处理需求5.借口需求6.约束7.逆向需求(不该做什么)8.将来可能提出的要求9.数据需求状态转换图1、状态状态图中状态主要有:初态、终态、中间状态一张状态图中只能有一个初态,终态可以有0个或多个2、事件引起系统动作或转换状态的控制信息3、符号活动表的语法格式:事件名/动作表达式事件表达式语法:事件说明【守卫条件】/动作表达式P 67其他:层次方框图Warnier图IPO图(输入、处理、输出图)验证软件需求:一致性、完整性、现实性、有效性第五章总体设计总体设计(概要设计)过程(任务):1)设想供选择的方案2)选取合理的方案3)推荐最佳方案4)功能分解5)设计软件结构6)设计数据库7)制定测试计划8)书写文档9)审查和复审设计原理模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定功能满足用户需求信息隐藏:设计和确定模块使得一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的局部化:把一些关系密切的软件元素物理地放得彼此靠近模块独立:模块化、抽象、信息隐藏和局部化的直接结果模块独立程度两个定性标准度量:一、耦合:对一个软件结构内不同模块之间连接程度的度量数据耦合:两个模块彼此间通过参数交换信息,交换的信息仅为数据控制耦合:传递的信息中有控制信息(有时以数据形式出现)公共环境耦合:两个或多个模块通过一个公共数据环境相互作用时特征耦合:整个数据结构作为参数传递而被调用模块只需要一部分数据时内容耦合:1一个模块访问另一个模块内部数据2一个模块不通过正常入口转到另一个模块内部3两个模块有一部分程序代码重叠4一个模块有多个入口二、内聚:标志一个模块内各个元素彼此结合的紧密程度耦合性越强,模块独立性越弱内聚性越强,模块独立性越强第六章详细设计详细设计阶段根本目标:确定怎么样具体实现所要求的系统结构程序设计概念:经典:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行链接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

软件工程导论知识点

软件工程导论知识点

软件生存期的阶段划分:(1)可行性研究与计划;(2)需求分析;(3)总体设计;(4)详细设计(5)实现(6)集成测试(7)确认测试(8)使用和维护软件=程序+文档+数据产生软件危机的原因:软件本身特点(客观):逻辑部件:管理和控制软件开发过程相当困难,较难维护;规模庞大:代码长度不正比程序复杂程度;软件开发与维护的方法不正确(主观):没有认识到软件的生命周期;软件开发不同阶段进行修改需要付出的代价差别很大;软件产品=程序+每个阶段的文档资料。

消除软件危机的途径:对计算机软件有一个正确的认识(软件≠程序);技术措施:推广使用在实践中总结出来的开发软件的成功技术和方法;开发和使用更好的软件工具等;管理措施:必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

软件发展的4大趋势:流水线生产、网络化、服务化与全球化。

软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

”软件工程具有下述的本质特性:1.软件工程关注于大型程序的构造2. 软件工程的中心课题是控制复杂性3. 软件经常变化4. 开发软件的效率非常重要5. 和谐地合作是开发软件的关键6. 软件必须有效地支持它的用户7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人。

软件工程的基本原理;1用分阶段的生命周期计划严格管理:2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应少而精7承认不断改进软件工程实践的必要性软件工程三个要素:方法、工具、过程软件工程方法学,分别是传统方法学和面向对象方法学。

传统方法学:把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务面向对象方法:是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法面向对象方法学具有下述4个要点:(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。

软件工程导论知识点

软件工程导论知识点

软件工程导论知识点软件是程序、数据及相关文档的完整集合。

其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

开发软件时,对于提高软件开发人员工作效率至关重要的是开发程序人员数量。

软件工程中描述软件生存周期的瀑布类型一般包括计划、需求分析、设计、编码、测试、维护等几个阶段。

其中,设计阶段在治理上可以依次分成概要设计和详细设计两个步骤。

在结构化的分析方法中,用以表达系统内数据的运行情况的工具有数据流图。

在结构化的分析方法中,用实体关系图表达系统中的对象及其进展,在实体关系图中,表达对象和实体关系之间的关联有三种类型:一对一联系,一对多联系,多对多联系。

软件需求分析的任务,不应包括结构化程序设计,进行需求分析可使用多种工具,但判定表是不适用的,在需求分析中,分析员要从用户那里解决的最重要的问题是要让软件做什么。

规格说明书的内容不应当包括对算法详细功能性描述,该文档在开发中具有重要的作用,但其作用不应包括软件可行性分析的依据。

原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统,它从用户界面的开发入手,首先形成系统界面原型,用户运行用户界面原型,并就同意什么和不同意什么提出意见。

一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。

一组语句在程序中多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚性是偶然内聚的。

将几个逻辑上相似的成份,放在同一个模块中,通过模块入口的一个推断决定执行哪一个功能,该模块的内聚性是逻辑内聚的。

模块中所有成份引用共同的数据,该模块的内聚性是通信内聚的。

模块内的某成份的输出是另一些成份的输入,该模块的内聚性是顺序内聚的。

模块中所有成份结合起来完成一项任务,该模块的内聚是功能内聚。

模块化程序设计:1.便于由多人分工编制大型程序。

2.软件功能易于扩充。

软件工程导论第五版复习重点(必考题)

软件工程导论第五版复习重点(必考题)

最后部分为每年必考题)第一章1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量,降低成本为目的.2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。

3. 产生软件危机的原因:(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

4. 面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。

4.对象彼此间仅能通过发送消息互相联系。

5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。

7. 微软过程把软件生命周期划分为成5 个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。

第二章1. 可行性包括:技术可行性,经济可行性,操作可行性。

2. 系统流程图是概括地描绘物理系统的传统工具。

它的基本思想是用图形符号以黑盒子形势描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。

系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。

输送软件【机械工程】导论期末考试考点

输送软件【机械工程】导论期末考试考点

1.软件的定义:软件是程序、数据及相关文档的完整集合。

其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构,文档是开发、使用和维护程序所需要的图文资料。

2.软件危机的定义,表现、原因是什么?a)软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

b)软件危机的表现:●对软件开发成本和进度的估计常常很不准确。

●经常出现用户对“已完成的”软件系统功能不满意的现象。

●软件产品的质量往往达不到要求。

●软件通常不可维护。

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

●软件成本在计算机系统总成本中所占的比例逐年上升。

●软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

c)软件危机的原因:i.客观原因:与软件本身的特点有关●软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。

软件缺乏“可见性”。

●软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。

软件缺乏“可插拔性”。

●如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,必须有严格而科学的管理。

ii.主观原因:与软件开发与维护的方法不正确也有关●目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,这可能是使软件问题发展成软件危机的主要原因。

●忽视需求分析只重视编码与运行。

•编写程序所需的工作量只占软件开发全部工作量的10%~20%。

•在后期引入一个变动比在早期引入相同变动所需付出的代价高2~3个数量级。

•图1.1定性地描绘了在不同时期引入一个变动需要付出的代价的变化趋势。

●忽视文档只重视程序必须认识到一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。

必须清除只重视程序而忽视软件配置其余成分的糊涂观念。

●轻视维护是一个最大的错误。

统计数据表明,实际上用于软件维护的费用占软件总费用的55%~70%。

软件工程导论知识点总结

软件工程导论知识点总结

软件工程导论知识点总结一、软件工程概述软件工程是将系统化、规范化、可度量化的方法应用于软件的开发、运行和维护的过程。

软件工程包括软件开发过程、软件工具和方法以及软件质量管理等方面。

二、软件生命周期模型1. 瀑布模型:依次完成需求分析、设计、编码、测试和维护等阶段。

2. 增量模型:将整个项目分为多个增量,逐步完成。

3. 螺旋模型:在瀑布模型基础上增加风险评估环节,不断迭代。

4. 原型模型:快速构建原型,反复修改完善。

5. 敏捷开发:注重快速响应变化,通过迭代交付高质量的软件。

三、需求分析需求分析是指对用户需求进行详细的调查和分析,并将其转换为可实现的系统规格说明。

主要包括功能性需求和非功能性需求两个方面。

四、设计1. 结构设计:确定系统各个组成部分之间的关系。

2. 数据设计:确定数据结构及其组织方式。

3. 接口设计:定义各个组成部分之间的接口。

4. 过程设计:定义系统中各个过程的执行方式。

五、编码编码是将设计好的系统规格说明转换为计算机可执行的程序代码,主要包括选择编程语言、编写代码、调试和测试等环节。

六、测试测试是对软件进行验证和确认,主要包括单元测试、集成测试、系统测试和验收测试等环节。

七、维护维护是指在软件交付后,对软件进行修改和更新以满足用户需求或修复缺陷。

维护包括预防性维护、适应性维护和完善性维护等方面。

八、软件质量管理软件质量管理是指通过各种手段确保软件产品满足用户需求,并具有可靠性、可用性、安全性等特点。

主要包括质量计划制定、质量保证控制和质量评估等环节。

九、常见开发模式1. 面向对象开发模式:采用面向对象的思想进行开发。

2. 组件化开发模式:将系统划分为多个组件进行开发。

3. 服务化开发模式:将系统划分为多个服务进行开发。

4. 微服务架构:将系统划分为多个微服务进行独立部署和运行。

十、常用工具和技术1. UML:统一建模语言,用于软件建模和设计。

2. IDE:集成开发环境,用于编码、调试和测试等环节。

《软件工程导论》考试重点

《软件工程导论》考试重点

软件工程复习1.重点1-9章2.掌握基本概念软件危机的典型表现,解决途径软件过程的主要模型数据流图的用途验证软件需求模块独立程度度量最基本的控制结构盒图黑、白盒测试软件维护的代价面向对象方法需求陈述软件工程学可行性研究的任务事件、状态转换获取需求的典型方法详细设计的具体任务测试、调试、维护性质类的关联软件生命周期系统的逻辑模型软件结构的层次系统细化流图内聚与耦合用面向对象方法开发软件,三大模型的功能软件项目管理的周期良好的软件设计原则3. 有穷状态机4. 三个主要作业5. MTTF6. 根据数据流图类型,映射出对应的软件模块结构图7. 流图,并计算它的环形复杂度8. 程序流程图设计测试用例7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。

要求:(1) 根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。

在画这条曲线时做了什么假设?(2) 为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?解:(1)假设MTTF与时间存在线性关系(2)设MTTF = a + bt10 = a + b15 = a + 2b得: a = 5, b = 5所以: 100 = 5 + 5tt = 19(月)由:))((t E E K I MTTF c T T -=有: )15(1000010-=T E K )25(1000015-=T E K 求得:E T = 45, K=33.33))19(45(33.3310000100Ec -= 求得:Ec(19) = 42还有 45 - 42 = 37-9 如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据:(a) 7月1日:集成测试开始,没有发现错误。

软件工程导论知识点概要

软件工程导论知识点概要

软件工程导论知识点概要1.1软件危机软件危机的表现软件危机是指在计算机软件的开发、使用和维护过程中遇到的一系列严重问题。

1)成本难以估计、成本高。

2)软件开发进度估计不准确,项目延期比比皆是。

3)软件质量得不到保证(功能和性能)。

4)用户对“已完成的”软件系统不满意的现象经常发生。

5)维护非常困难(多样性、复杂性、副作用)。

6)软件通常没有适当的文档。

7)软件产品供不应求,跟不上计算机普及速度。

产生软件危机的原因(1)与软件本身的特点有关(逻辑复杂,成本高,风险大,难于维护)。

(2)与软件开发与维护的方法不正确有关:软件≠程序(软件是程序、数据及相关文档的完整集合)急于求成=拔苗助长(软件从定义、开发、使用和维护、废弃要经历一个漫长的生命周期)各自为阵无方法学(应要组织良好、管理严密、各类人员协作共同完成的工程项目)1.2软件工程定义软件工程是应用计算机科学、数学、心理学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量、降低成本和提高效率为目的。

软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

软件工程的特性:1. 软件工程关注于大型程序的构造(传统的程序设计技术和工具是支持小型程序设计的)2. 软件工程的中心课题是控制复杂性(问题分解)3. 软件经常变化(考虑将来要发生的变化)4. 开发软件的效率非常重要(寻求更好、更有效的工具)5. 和谐地合作是开发软件的关键(运用标准和规程)6. 软件必须有效地支持它的用户(软件要服务于用户)7. 在软件工程领域中通常是由具有一种文化背景的人替具有另一种文化背景的人创造产品软件工程的7条基本原理1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性软件工程方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。

软件工程导论重要知识点

软件工程导论重要知识点

软件工程导论重要知识点《软件工程导论重要知识点:开启代码魔法之旅》嘿,大家好呀!今天咱来聊聊软件工程导论那些重要知识点,这可真是一门充满神奇魔力的学问啊!首先呢,需求分析就像是给软件盖房子打地基,可重要了呢!你得搞清楚用户到底想要啥,就像搞清楚他们到底想要个豪华别墅还是温馨小窝。

这要是搞错了,那可就南辕北辙,盖出个四不像喽!所以咱得瞪大双眼,仔细倾听用户的每个需求,一个字都不能落下。

然后说说设计这一块,那简直就是软件的蓝图啊!我们得像个大师级的建筑师一样,精心规划每个模块,让它们各司其职,又能紧密合作。

这就跟搭积木似的,得找到最合适的组合方式,不然到时候一推就倒,那可就丢大人啦!接着是编码,哈哈,这可是我们软件魔法师展示真正技术的时候啦!各种编程语言就像我们的魔法咒语,通过巧妙组合,就能创造出神奇的软件世界。

但可别小瞧了这个过程,一个不小心写错个符号,可能就会引发一场代码大灾难,让整个软件陷入瘫痪。

所以咱得小心翼翼,全神贯注地敲好每一行代码。

测试呢,就像是给软件做体检。

我们得找出那些隐藏的小毛病、小漏洞,让软件健健康康地去面对用户。

不然等用户发现一堆问题,那我们的脸可就没地方放喽!所以测试人员就像是软件的医生,要严格把关,不放过任何一个蛛丝马迹。

文档也不能小瞧呀,它就像是软件的说明书。

没有它,用户可能连怎么用软件都不知道。

而且这文档得写得通俗易懂,可别整一堆高深莫测的术语,不然用户看得云里雾里,那可就白瞎了咱的辛苦努力啦!最后说说项目管理,这可是统领全局的大角色。

要合理安排时间、人力、资源,让整个项目有条不紊地进行。

就像个指挥家一样,协调好各个声部,才能演奏出美妙的乐章。

总之呢,软件工程导论的重要知识点就像是一把钥匙,能打开软件世界的大门。

只有掌握了这些知识点,我们才能在代码的海洋中畅游无阻,创造出令人惊叹的软件作品。

所以小伙伴们,让我们一起加油,努力学习这些知识,成为厉害的软件魔法师吧!。

软件工程导论西南交大机械考点

软件工程导论西南交大机械考点

软件工程导论西南交大机械考点Final approval draft on November 22, 20201、软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。

软件=程序+数据+文档,程序=算法+数据结构.2、软件工程是:(1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,也就是把工程应用于软件;(2) 上述方法的研究。

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

3、软件生命周期是指软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。

软件定义包括问题定义、可行性研究、和需求分析;软件开发包括总体设计、详细设计、编码和单元测试、综合测试。

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

主要表现为:硬件发展超过软件,硬件潜能没有充分发挥;软件产业的发展长期滞后,与硬件发展不协调;软件开发成本过高;软件质量得不到保证;软件开发效率低;难以控制开发进度,工作量估计困难。

产生的主要原因是:软件的规模加大、复杂性提高、性能增强;软件是逻辑产品, 尚未完全认识其本质和特点;缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法。

5、软件工程目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性、并满足用户需求的软件产品。

6、软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

软件需求分析阶段的任务,通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。

需求分析三阶段:问题分析,需求描述,需求评审验证软件需求:1、一致性:所有需求必须是一致的,任何一条需求都不能和其他需求相互矛盾;2、完整性:需求必须是完整的,软件需求规格说明书应该包含用户对软件产品的每一项要求;3、现实性:指定的需求应该是用现实有的硬件技术和软件技术可以实现的;4、有效性:需求必须是有效的,确定能解决用户所面临的问题,可以达到开发该软件的目的。

西南交大机械复试机械工程概论重点整合

西南交大机械复试机械工程概论重点整合

机械设计及现代设计方法1.机械设计技术发展五个阶段:直觉设计经验设计半经验设计半自动设计自动化设计2.机械设计满足基本要求:功能性要求可靠性要求经济型要求劳动保护要求其他特殊要求3.机械设计零件满足基本要求:强度刚度寿命结构工艺性可靠性经济性质量小4.强度:衡量零件抵抗破坏的能力刚度:零件抵抗弹性变形的能力寿命:零件正常工作期限5.机械设计方法:理论设计经验设计模型试验设计6.机械设计步骤:动向预测方案设计技术设计施工设计试生产7.有限元分析方法基本思想:有限元分析是一种以计算机为手段,通过离散化将研究对象变成一个结构近似的数学模型,再经过一系列的规范化步骤,求解应力,位移,应变等参数的数值计算方法。

8.离散化概念:将连续体分割成若干节点相连接的单元,将这样一个有无限自由度的结构变成一个有限自由度结构,该过程还包括对单元和节点进行编码,以及局部坐标和整体坐标的确定。

9.有限元法主要计算步骤:连续体离散化单元分析整体分析10.优化设计:在一定技术和物质条件下,取得一个技术经济指标为最佳的方案11.最优化技术:优化设计全过程各种方法的技术总称,包括优化设计的建模问题以及优化设计的问题求解。

12.机械优化设计:将工程设计问题按优化设计的规定格式建立数学模型,选择合适的优化设计方法以及编制出计算机程序,然后再通过电子计算机自动获得最优结果。

13.优化设计的基本术语:目标函数设计变量约束条件14.我国机电产品设计原则:可靠性适应性经济性15.可靠性设计概念:是将概率论数理统计失效物理和机械学相互结合的方法,主要是将传统中视为单值的设计变量而实际具有多值的设计变量看成是某种分布规律的随机变量,用概率论与数理统计的方法设计出符合机械产品可靠性指标和整机参数。

16.可靠性设计主要内容:可靠度设计可靠性预测可靠性分配17.可靠性设计指标:可靠度失效率平均寿命18.CAD计算机辅助设计概念:设计过程中,利用计算机作为工具,帮助技术人员进行设计一切技术的总和。

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

1、软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。

软件=程序+数据+文档,程序=算法+数据结构.2、软件工程是:(1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,也就是把工程应用于软件;(2) 上述方法的研究。

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

3、软件生命周期是指软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。

软件定义包括问题定义、可行性研究、和需求分析;软件开发包括总体设计、详细设计、编码和单元测试、综合测试。

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

主要表现为:硬件发展超过软件,硬件潜能没有充分发挥;软件产业的发展长期滞后,与硬件发展不协调;软件开发成本过高;软件质量得不到保证;软件开发效率低;难以控制开发进度,工作量估计困难。

产生的主要原因是:软件的规模加大、复杂性提高、性能增强;软件是逻辑产品, 尚未完全认识其本质和特点;缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法。

5、软件工程目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性、并满足用户需求的软件产品。

6、软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

软件需求分析阶段的任务,通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。

需求分析三阶段:问题分析,需求描述,需求评审验证软件需求:1、一致性:所有需求必须是一致的,任何一条需求都不能和其他需求相互矛盾;2、完整性:需求必须是完整的,软件需求规格说明书应该包含用户对软件产品的每一项要求;3、现实性:指定的需求应该是用现实有的硬件技术和软件技术可以实现的;4、有效性:需求必须是有效的,确定能解决用户所面临的问题,可以达到开发该软件的目的。

需求分析内容:功能,信息,行为,约束。

需求分析技术和方法:常见的方法有结构化分析方法(面向数据流)和面向对象分析方法。

7、模块化是指把软件划分为可独立命名和编址的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的一个解。

模块化是软件唯一能使程序获得智能化管理的一个属性。

“模块”,又称“组件”。

它一般具有如下三个基本属性:1功能:描述该模块实现什么功能;2逻辑:描述模块内部怎么做;3状态:该模块使用时的环境和条件。

模块独立是指:1、模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问;2、每个模块只完成一个相对独立的特定功能;3、模块之间仅仅交换那些为完成系统功能必须交换的信息,即模块应该独立。

采用信息隐藏原理指导模块设计优点:支持模块的并行开发;减少软件测试和软件维护的工作量。

模块独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。

一般采用两个准则度量模块独立性,即模块间耦合和模块内聚。

8、事务流数据流在很多软件应用中,存在某种作业数据流,它可以引发一个或者多个处理,这些处理能够完成作业要求的功能,这种数据流叫做事务流数据流。

面向数据流的设计方法:交换流和事务流。

事务流由于基本系统模型呈变换流,故任意系统中的信息均可用变换流刻画。

单个数据项称为事务沿传入路径(接受通道)进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续执行。

软件设计的基本原理和原则:模块化,抽象,逐步求精,信息隐蔽和局部化,模块独立。

9、内聚度是指模块内部各成分彼此结合的紧密程度。

内聚度按其高低程度可分为七级,内聚度越高越好。

低级内聚度:1偶然性内聚,模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。

2逻辑性内聚,模块完成的诸任务逻辑上相关,如,一个模块产生所有与类型无关的输出。

3时间性内聚,模块包含的诸任务必须在同一时间段内执行,如一个初始化模块。

中级内聚度:1过程性内聚,模块具有过程性内聚度指,模块内成分彼此相关,并且必须按特定的次序执行; 2通信性内聚,模块中各成份都将对数据结构的同一区域进行操作,以达到通信的目的。

高级内聚度:1顺序性内聚,模块内的各处理成份均与同一功能相关,且这些处理必须顺序执行,则称顺序内聚。

2功能性内聚,模块内所有成分形成一个整体,完成单个功能。

设计软件时应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。

10、黑盒测试是指一种方法是已知产品应该具有的功能,通过测试检验每个功能是否都能正常使用。

黑盒测试完全不考虑程序的内部结构和处理过程。

测试仅在程序界面上进行。

设计测试用例旨在说明:①软件的功能是否可操作;②程序能否适当地接收输入数据并产生正确的输出结果或在可能的场景中事件驱动的效果是否尽如人意;③能否保持外部信息(如数据文件)的完整性。

黑盒测试旨在测试软件是否满足功能要求,它主要诊断下列几类错误:1不正确或遗漏的功能;2界面错误;3数据结构或外部数据库访问错误;4性能错误;5初始化和终止条件错误。

白盒测试是指是已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行。

白盒测试法密切关注处理细节,针对程序的每一条逻辑路径都要分别设计测试用例,检查分枝和循环的情况。

穷举测试不可取,一般选用少量“最有效”,即最有可能暴露错误的路径进行测试。

白盒测试的目的是为了找出错误,所以无论采用黑盒法还是白盒法,设计测试用例时总是期望用尽可能少的时间和代价发现尽可能多的错误。

白盒测试应该根据程序的控制结构设计测试用例,原则是:①保证模块中每一独立的路径至少执行一次;②保证所有判断的每一分枝至少执行一次;③保证每一循环都在边界条件和一般条件下至少各执行一次;④验证所有内部数据结构的有效性。

11、测试类型:1、单元测试:对象是软件设计的最小单位—模块,依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。

单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试(白)。

2、组装测试:组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误(白和黑)。

3、确认测试:检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准(黑)。

12、边界值分析法:经验表明,大多数错误都发生在输入的边界值上。

为此,专门引入边界值分析(BV A)技术,旨在选择测试用例,强迫程序在边界值上执行。

BV A技术是对等价分类技术的补充,即在一个等价类中不是任选一个元素作为此等价类的代表进行测试,而是选择此等价类边界上的值。

13、维护活动根据起因可分为改正性维护、适应性维护、改善性维护和预防性维护四类:1改正性维护是为诊断和改正软件系统中潜藏的错误而进行的活动。

2适应性维护是为适应环境的变化而修改软件的活动。

3改善性维护是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。

4预防性维护是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

14、变换分析由一系列设计步骤组成,经过这些步骤就能把具有变换流特点的数据流图,按预先确定的模式映射成软件结构。

步骤一复审基本系统模型--基本系统模型指顶级DFD和所有由外部提供的信息。

这一设计步骤是对系统规格说明书和软件需求规格说明书进行评估。

步骤二复审和精化软件数据流图--精化软件需求规格说明书中的分析模型,直至获得足够详细的DFD。

步骤三确定DFD为变换流还是事务流--系统内部的信息流总可以用变换流表示,倘若具有明显的事务特性,还应该采用针对事务流的映射方法。

设计人员首先要判定DFD中占主导地位的信息流,并确定其特性,然后孤立出具有变换特性或事务特性的支流,这些支流将用于精化由主导数据流推出的程序结构。

步骤四划定输入流和输出流边界孤立变换中心--输入、输出流边界的划分可能因人而异,不同的设计人员可能把边界沿着数据通道向前推进或后退一个处理框,这对最后的软件结构影响不大。

步骤五执行“一级分解”导出具有三个层次的程序结构。

步骤六执行“二级分解”--把数据流图中每个处理框映射成程序结构中一个适当的模块,二级分解过程是从变换中心的边界开始沿输入、输出通道向外移动,把遇到的每个处理框映射为程序结构中的一个模块。

步骤七采用启发式设计策略,精化所得程序结构雏形,改良软件质量。

事务流分析方法和交换分析基本相同,仅在由数据流图到软件结构的映射方法不同。

15、事务分析法可分为七个步骤,前三步与变换分析法相同,步骤四、找出数条动作路径的公共源头,即为事务中心,确定由事务中心发出的每一动作路径的数据流特性。

步骤五、把数据流图映射为事务处理型的程序结构--事务处理型的程序结构由“输入”和“散转”两部分组成,输入部分的构成方法如变换分析法,即从事务处理中心开始,沿输入通路向外推进,每个处理框映射为一个模块。

“散转”部分顶层为一“散转”模块,它总控所有对应于每一动作路径的控制模块,每条动作路径都根据它的信息流特征映射为一个程序子结构。

步骤六、分解并精化事务结构以及每条动作路径所对应的结构。

步骤七、使用启发式设计策略,精化所得程序结构雏形,改良软件质量。

16、UML(统一建模语言)是面向对象技术发展的一个重要里程碑。

UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了能力丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。

UML主要以Booch方法、OMT方法和OOSE 方法为基础,同时也吸收了其他面向对象建模方法的优点,形成了一种概念清晰、表达能力丰富、适用范围广泛的面向对象的标准建模语言。

UML 通过图形化的表示机制从多个侧面刻画系统的分析和设计模型。

UML共定义十种视图,可分四类:1用例图--从外部用户的角度描述系统的功能,并指出功能的执行者。

2静态图--类图,类图描述系统的静态结构;对象图,对象图是类图的一个实例。

它描述在某种状态下,或者在某一时间段系统中活跃的对象及其关系;包图,包图描述系统的分解,表示包以及包之间的关系,包由子包及类组成,包之间的关系包括继承、构成与依赖关系。

3行为图--交互图、状态图、活动图,它们从不同的侧面刻画系统的动态行为。

交互图描述对象之间的消息传递。

它又可分为顺序图与合作图两种形式。

顺序图强调对象之间消息发送的时间序。

合作图更强调对象间的动态协作关系。

合作图也可通过消息序号来表示消息传递的时间序。

相关文档
最新文档