整理软件工程最基本的几个概念
引言:
发现很多的学科概念性的东西总是会忘记,因为没有用到日常的学习项目中,但是很多的东西往往是经常接触却不知道其中的意思,比如,什么叫软件???是不是一脸懵,作为一个计算机专业的人,虽然逻辑的思维很重要,但是也要掌握一些最基本的概念。所以这里我就总结一些软件工程基本的概念。
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位技术技术员、一位后援工程师组成,另外还可以有部分辅助人员(资料员)。主程序员制的开发小组强调主程序员与其他技术人员的直接联系,简化了技术人员之间的横向通信。
民主程序员小组:民主制小组中也设置了一位组长,但是每单遇到问题,组内成员之间可以平等地交换意见,全体成员参与工作目标的制定及做出决定。强调发挥小组每个成员的积极性、主动精神和协作精神。
我们在日常的项目中就经常是这两种结构,比如说一个人很厉害,大家就以他为核心(主程序员小组);又或者每个人都差不多,一起商量,那么就是民主程序员小组。
后记:
那么就那么多,特别是那几个一定要记住呀!不然下次什么是软件又不知道了,你看了就可以很明确的告诉他,就是计算机程序及其说明程序的各种文档。看!多么有格调。建议收藏,哈哈哈。
整理软件工程最基本的几个概念相关推荐
- 软件工程经验总结系列之二 - 概念阶段控制
本文为软件工程经验总结系列文章的第二篇,按照总论文章所设立的范围划分,本阶段重点讲述概念阶段的控制过程以及控制思路,笔者所站在的角度是乙方角度来进行表述整个阶段的推动过程,但对于甲方公司其基本思路完全 ...
- 软件工程习题,耦合性的概念如何与软件可移植性相关联?举例支持你的论述,应用逐步求精法为下列程序开发三种不同级别的过程抽象
软件工程习题 11.9.耦合性的概念如何与软件可移植性相关联?举例支持你的论述 11.10.应用逐步求精法为下列程序开发三种不同级别的过程抽象,开发一个支票打印程序,给出输出金额,并按支票常规要求给出 ...
- 吐血整理:机器学习的30个基本概念,都在这里了(手绘图解)
01 空间表征 在学习深奥的机器学习理论之前,首先来介绍一些机器学习中最基本的概念. 特征(Feature):一个具体事物的属性描述,由属性向量表示.第j个记录xj的属性向量可以表示为: xj=(xj ...
- 计算机考研复试之软件工程三十问
/*前言:不知道学习软工的小伙伴有没有这种疑问,软工为何这么难学进去?为何这么繁琐?为何这么难背?本小白在初学软工的时候,基本就是长期走神发呆的状态,因为完全不知道软在讲啥,要考啥. 本次二刷软工,我 ...
- 面向对象软件工程方法学与传统方法学的异同
面向对象软件工程方法学与传统方法学的异同 名称 面向对象软件工程方法学 传统方法学 基本概念 面向对象方法学是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在"对象 ...
- nat端口限制_Cisco ASA 防火墙 NAT - 基本概念
Cisco 的 NAT 从来都是谜之难用,无论是 IOS 还是 ASA.在这里专门集中整理了一下 ASA NAT 的一些概念和基础配置案例,仅限于基础部分,实在是没有精力去深究.( ASA versi ...
- [2019BUAA软件工程]第1次阅读作业
[2019BUAA软件工程]第1次阅读作业 Tips Link 作业连接 [2019BUAA软件工程]第1次阅读作业 读<构建之法>的疑惑 个人开发流程(Personal Software ...
- 【软件工程】数据流图初探
软件工程之数据流图初探 数据流图基本概念 1 数据流 2 加工 3 数据存储 4 外部实体 数据字典 数据流图基本概念 数据流图也称数据流程图(Data Flow Diagram,DFD),是一种便于 ...
- 嵌入式指针embedded pointer的概念以及用法
目录 前言 概念 用法 参考 前言 在针对一个class写出它的内存管理池以及总结出allocator类(三个版本)中内存管理池的第二个版本中涉及到了一个非常重要的概念:嵌入式指针.同时嵌入式指针也在 ...
最新文章
- 【 MATLAB 】常用的离散时间序列的 Matlab 产生
- openshift_通过OpenShift超越云炒作
- 利用Inception-V3训练的权重微调,实现猫狗分类(基于keras)
- [原创].NET 业务框架开发实战之六 DAL的重构
- java 自动下载自动搜索_360搜索彩蛋自动化开发实践
- 在Mind+下使用Easy loT实现mqtt消息消息的通讯
- 上传本地项目到码云仓库【图文详解】
- IntelliJ IDEA 自定义注释作者名字
- 优秀的程序员是不用过圣诞节的
- 为什么编c语言总有一个错误,为什么程序最后总会显示有1个错误
- 魔兽对战平台官网地图《小兵合成》 最强攻略+合成表+隐藏合成+隐藏英雄+
- yahoo,hotmail邮箱无法收到邮件
- 技术管理规划-如何设定团队的目标
- R语言中的matrix(矩阵),list(列表),data.frame(数据框)总结
- 3896. 【NOIP2014模拟10.26】战争游戏
- [Sdoi2010]地精部落
- Ubuntu环境下下载pulp遇到的问题解决
- 天猫tmall入驻规则
- 播客的20个最佳WordPress主题
- opencv两张图片上下简单拼接
热门文章
- laravel五、关于laravel使用宝塔面板连接云数据库(mysql)的问题
- 美化桌面第二步:两个好用的小插件
- 哪个是Mac上最好,最私有和最安全的浏览器?
- EasyExcel通过模板导出数据
- FTP安装部署及光闸配置
- Dreamweaver 概述
- P6352 [COCI2007-2008#3] CETIRI
- [转帖]amzon最新的产品outposts
- Python xpath 入门使用
- linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?