引言:
发现很多的学科概念性的东西总是会忘记,因为没有用到日常的学习项目中,但是很多的东西往往是经常接触却不知道其中的意思,比如,什么叫软件???是不是一脸懵,作为一个计算机专业的人,虽然逻辑的思维很重要,但是也要掌握一些最基本的概念。所以这里我就总结一些软件工程基本的概念。
1、什么叫软件工程?
答:软件工程就是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
2、软件工程有哪些原则?
答:抽象、模块化、信息隐藏、局部化、一致性、完整性和可验证性。
3、什么叫软件?
答:软件的定义是计算机程序及其说明程序的各种文档。
4、什么是软件生命周期?什么是软件的生命周期模型?主要有哪些模型
答: 软件生命周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期(软件分析时期、软件设计时期、编码与测试时期、运行维护时期)。
关于这个重点说一下,我们平时的编写一些程序的时候,其实就有这个时期,你想刚开始可行性研究(当然,我们一般考虑的是自己的能力和时间是否可以去做这个项目),然后我们的脑子里面有一个大概的想法(概要设计),然后有了数据结构算法(详细设计),之后就开始利用编程语言编写(编码),然后运行测试看看是否符合(测试时期),之后小的程序基本就结束了,像一般的网页或者大一点的程序,就还有运行维护阶段。
软件生命周期模型是描述软件开发过程中各种活动如何执行的模型。
瀑布模型、原型模型、增量模型、喷泉模型、基于知识的模型和变换模型。
5、可行性研究的任务是什么?成本效应分析是什么?
答:(1)技术可行性、经济可行性、社会可行性、操作可行性
(2)成本效益分析是通过比较项目的全部成本和效益来评估项目价值的一种方法。
6、什么是数据流图?画数据流图需要哪些步骤?
答:数据流图是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
画系统的输入/输出;画系统内部,即顶层数据流图和0层数据流图。
7、软件总体设计阶段的基本任务是什么?
答:(1)软件系统结构设计(2)数据结构及数据库设计(3)网络系统设计(4)软件总体设计文档(5)评审
8、什么是事务分析设计?事务流的设计步骤是什么?
答:事务分析设计就是从事务数据流图到程序结构的变换。
步骤有:1)确定数据流图中的事务中心和加工路径(2)设计软件结构的顶层和第一层(3)进行事务结构中、下层模块的设计、优化等工作。
9、什么是变换分析设计?变化流的设计步骤有哪些?
答:变换分析设计就是将数据流图转换为程序结构图的设计
步骤有:(1)确定数据流图的变换中心、逻辑输入和逻辑输出(2)设计软件结构的顶层和第一层(3)设计中、下层模块(4)设计的优化。
10、什么是模块?什么是模块化?
答:模块是可组合、分解和更换的单元。模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
11、什么是耦合?什么是内聚?
答:耦合表示软件结构内不同模块彼此之间相互依赖(连接)的紧密程度,是衡量软件模块结构质量好坏的度量,是对模块独立性的直接衡量指标。
内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
这里可以小谈一下耦合和内聚,因为一个好的软件,它是低耦合高内聚的。
12、详细设计的基本原则和主要任务是什么?
答:基本原则:详细设计要完成所有涉及的细节
主要任务:(1)数据结构设计(2)物理设计(3)算法设计(4)界面设计(5)其他设计(6)编写设计说明书(7)评审
所以大家在写项目报告的时候,概要设计和详细设计就有路子可走了,哈哈
13、什么是UML统一建模语言?
答:UML是一种标准的软件建模语言,是用图形符号来表达面向对象设计,它是一种用于对一个软件系统的制品进行可视化描述、详细描述、构造及文档化的语言。
14、简述类图、用例如、状态图、对象图概念。
答:类图就是用一个矩形方框代表类的图标;
用例图是从用户的观点对系统行为的一个描述,它是从用户的观察角度收集系统需求的一项技术。
状态图就是用来说明行为的状态和响应的。
对象图展示类的实例和实例之间的关系。
15、软件实现的任务是什么?
答:软件实现就是在详细设计的基础上,用一种程序设计语言来将设计转换为程序,得到的结果是源程序代码。
16、什么是程序设计风格?良好的编程风格带来的好处是什么?
答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯及逻辑思路等。
一个公认的、良好的编程风格可以减少编码的错误、减少读程序的时间,从而提高软件开发效率。
17、什么是黑盒测试?
答:把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面进行测试,用来证实软件功能的可操作性,检查程序是否满足功能要求,是否能很好地接收数据,并产生正确的输出。
18、什么是白盒测试?
答:把测试对象看做一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期相同。
19、什么是单元测试?
答:单元测试,是指对软件中的最小可测试单元进行检查和验证。
20、什么是集成测试?
答:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试,故也称组装测试或联合测试。
21、什么是验收测试?
答:验收测试是部署软件之前的最后一个测试操作,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
22、什么是系统测试?
答:系统测试,是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方
23、软件的维护包括哪些维护活动?
答:(1)改正性维护(2)适应性维护(3)完善性维护(4)预防性维护
24、什么是主程序员小组?什么是民主程序员小组?
答:主程序员小组:小组的核心由一位主程序员(高级工程师)、2~5位技术技术员、一位后援工程师组成,另外还可以有部分辅助人员(资料员)。主程序员制的开发小组强调主程序员与其他技术人员的直接联系,简化了技术人员之间的横向通信。
民主程序员小组:民主制小组中也设置了一位组长,但是每单遇到问题,组内成员之间可以平等地交换意见,全体成员参与工作目标的制定及做出决定。强调发挥小组每个成员的积极性、主动精神和协作精神。
我们在日常的项目中就经常是这两种结构,比如说一个人很厉害,大家就以他为核心(主程序员小组);又或者每个人都差不多,一起商量,那么就是民主程序员小组。
后记:
那么就那么多,特别是那几个一定要记住呀!不然下次什么是软件又不知道了,你看了就可以很明确的告诉他,就是计算机程序及其说明程序的各种文档。看!多么有格调。建议收藏,哈哈哈。
来源:CSDN
作者:threecat.up
链接:https://blog.csdn.net/qq_43919400/article/details/103697003