软件工程
- 这一章的内容其实还是蛮多的,大概一共有10个章节,分别是下面的一些内容,但是呢,这一章的内容其实是比较偏向文科类的,也就是说,记忆的内容其实占有很大的篇幅,在该考试科目当中呢,其实也是主要影响上午题部分的选择题的考察,基本的分值呢,在10分左右,分值占比其实还是比较大的,对于下午的内容呢,其实一般是不会太涉及的,所以这一部分的内容还是要认真看一下的
软件工程的概述
- 软件工程指的是应用计算机科学,数学以及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产率,提高软件质量,降低软件成本,因为其实在很早期的时候,我们在去做软件的时候,我们其实是各做各的,人很人之间的交流不多,就会导致软件的生产率低,问题多,所以要用工程化去解决早期在软件开发中所遇到的问题,从而,提高软件生产率和质量,降低软件成本
计算机软件
- 计算机软件指的是计算机系统中的程序和文档,注意一下,软件不止是代码,不只是程序,还包括有和程序相关的文档,比如说需求文档,设计文档,测试文档,维护文档之类的,这些其实都是软件的一部分
- 软件的分类:按照软件的应用领域,将计算机的软件分为以下的10类,分别是,系统软件,应用软件,工程/科学软件(比如说我们常见的matlab),嵌入式软件(微波炉按键的控制),产品线软件,Web应用软件,人工智能软件,开放计算,网络资源,开源软件
软件工程的基本原理
- 我们软件的整个的一个开发的过程,我们要去分一些阶段,比如说需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,测试阶段之类的,把这些阶段分开,每一个阶段都有自己的生命周期和计划,单独管理,这样我们的软件效率其实就会更高
- 评审阶段,其实也是进一步查看一下我们的这个系统是否有一些缺陷之类的
- 产品控制其实就是需要对产品的质量进行一个把关的操作
- 现代程序技术,其实就是利用一些高级程序设计语言,一些面向对象的语言之类的
- 审查其实就是一个输入对应唯一的输出,不能说每一次的输出结果是不一致的,这个显然是不可以的
软件的生存周期
- 一个软件或者产品系统要经历:孕育,诞生,成长,成熟,衰亡等阶段,一般就称为软件生存周期,软件生存周期一般包括以下七个方面:可行性分析与项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护
- 可行性分析与项目开发计划:这一个阶段主要就是确定软件的开发目标和可行性(技术上是否可行,成本上是否可行,时间上是否可行),产生的文档有可行性分析报告,项目开发计划
- 需求分析:确定软件系统要做什么,确定系统的功能,性能,数据和界面,从而确定逻辑模型,产物:数据流图,数据字典,需求说明书
- 概要设计也称为总体设计,要去设计软件的结构,明确每一个模块的功能都是什么
- 概要设计完成了之后,我们就要进行详细的设计了,具体模块的功能就要在这个阶段进行描述了,比如说具体的算法该怎么做之类的
- 编码,就是写代码,翻译的过程
- 最后是测试和维护
- 测试是交给别人来进行测试的,产生测试用例和测试报告
- 软件维护是软件生存周期中时间最长的阶段
软件的过程
- 软件过程的能力成熟度模型
- 能力成熟度模型CMM:初始级:项目的完成仅仅依赖于个人;可重复级:建立了一个基本的项目管理过程,这个过程用来跟踪项目的费用,进度和功能特性;已定义级,就是说相关的过程已经文档化和标准化了;已管理级:制定了详细的度量标准;最高级别:优化级
- 能力成熟度模型集成CMMI
- 过程不可预测且缺乏控制 ,其实就是比较乱
- 一般来说是会给描述,让选阶段,这个其实是比较好选的,因为其实都是有对应的关键字的
软件过程模型
- 软件过程模型习惯上也被称为软件开发模型,是软件开发全过程,活动和任务的结构框架
- 典型的软件过程模型有:瀑布模型,增量模型,演化模型(原型模型,螺旋模型),喷泉模型,基于构件的开发模型,形式化放