MSE考研--961--第二部分 软件工程

考纲:

一、软件过程

软件过程的概念;经典软件过程模型的特点(瀑布模型、增量模型、演化模型、统一过程模型);过程评估与CMM/CMMI的基本概念;敏捷宣言与敏捷过程的特点。

二、软件需求

软件需求的概念;需求工程的基本过程;分层数据流模型;用例和场景建模及其UML表达(用例图、活动图、泳道图、顺序图);数据模型建模及其UML表达(类图);行为模型建模及其UML表达(状态机图)。

三、软件设计与构造

软件体系结构及体系结构风格的概念;设计模式的概念;模块化设计的基本思想及概念(抽象、分解、模块化、封装、信息隐藏、功能独立);软件重构的概念;软件体系结构的UML建模(包图、类图、构件图、顺序图、部署图);接口的概念;面向对象设计原则(开闭原则、Liskov替换原则、依赖转置原则、接口隔离原则);内聚与耦合的概念、常见的内聚和耦合类型。

四、软件测试

软件测试及测试用例的概念;单元测试、集成测试、确认测试、系统测试、回归测试的概念;调试的概念、调试与测试的关系;测试覆盖度的概念;白盒测试、黑盒测试的概念;代码圈复杂度的计算方法;白盒测试中的基本路径测试方法;黑盒测试中的等价类划分方法。

 

个人积累:

一、软件过程

1. 软件过程的概念:简单说,软件过程就是贯穿了整个软件生命周期的路线图。它包含了从需求定义与分析,软件设计实现,测试,交互和最后维护的一系列过程,为这些过程指定规范与准则。具体会涉及到开发模型,技术框架和自动化工具。

https://wikipedia.hk.wjbk.site/baike-%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%BF%87%E7%A8%8B

2. 经典软件过程模型的特点(瀑布模型、增量模型、演化模型和统一过程模型)

1)瀑布模型:核心特点是将开发过程化简,变为一个线性开发的过程。把软件生命周期分为了六个部分:制定计划,需求分析,软件设计,程序编写,软件测试和运行维护。

优点:强制制定了开发的规范,保证了充分的文档

缺点:阶段固定,产生大量中间文档,增加工作量;不适应需求变动,用户只能到开发末期才能见到软件成果;开发风险大,难以发现前期存在的问题,后期需要花费大量成本去解决。

2)增量模型:核心特点是将整个开发系统模块化和组件化。

优点:可以分批次提交软件产品,使得用户能够清楚地了解到整个项目的进度;以模块为开发单位降低了程序错误的风险,一个模块内的错误不至于影响到整个软件系统;模块化开发灵活性较高,可根据用户或项目需求调整模块开发优先级。

缺点:系统本身能够被模块化设计;模块化设计时要额外注意能够可持续集成,以及模块间的可兼容性。

3)演化模型:核心特点是可以根据用户需求快速分析构造出一个初始可运行版本,称为原型。再根据用户的的意见和反馈进行改进,得到新版本,重复如此,得到最终满意版本。(是一种迭代开发)

优点:适合需求不是很清晰的项目,有利于引导出真正的需求;降低风险,可以在早期发现可能存在的问题,以较小的成本解决或进行调整;提升效率,可以复用之前的开发经验以及及时获得反馈。

缺点:开始的需求不清晰,可能会给后面的开发带来持续的麻烦,影响项目的设计和可维护性;管理不到位的化,会造成软件过程的混乱,进入不断试错的漫无计划的模式。

4)统一过程模型:这是种较为现代化的模型,以用例为驱动,以体系结构为核心,采取了迭代以及增量的软件过程模型,并且支持UML相关的方法和工具,广泛适用于面向对象项目。

3. 过程评估与CMM/CMMI的基本概念

CMM(Capability Maturity Model)能力成熟度模型,CMMI(Capability Maturity Model Integeration)能力成熟度模型集成,是CMM的最新版本。CMM是一种用于评估软件承接能力并帮助改善软件质量的方法,侧重于软件开发过程中的管理能力和工程能力,主要分为5个等级:初始级,可重复级,已定义级,已管理级,优化级。

/*

CMM/CMMI将软件过程的成熟度分为5个等级,以下是5个等级的基本特征:

(1)初始级(initial)。工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。

(2)可重复级(Repeatable)。管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。

(3)已定义级(Defined)。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。

(4)已管理级(Managed)。产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。

(5)优化级(Optimizing)。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。

*/

4. 敏捷宣言与敏捷过程的特点

敏捷宣言:四个核心价值:1)个体和互动高于过程和工具;2)工作的软件高于详尽的文档;3)客户合作高于合同谈判;4)响应变化高于遵循计划。

敏捷过程的特点:12条原则:1)最优先的是通过尽早地和不断地提交有价值的软件使客户满意;2)欢迎变化的需求,即使该变化出现在开发的后期,为了提升对客户的竞争优势,Agile过程利用变化作为动力;3)以几周到几个月为周期,尽快、不断地发布可运行软件;4)在整个项目过程中,业务人员和开发人员必须天天一起工作;5)以积极向上的员工为中心建立项目组,给予他们所需的环境和支持,对他们的工作予以充分的信任;6)项目组内效率最高、最有效的信息传递方式是面对面的交流;7)测量项目进展的首要依据是可运行的软件;8)敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度;9) 应时刻关注技术上的精益求精和好的设计,以增强敏捷性;10)简单化是必不可少的,这是尽可能减少不必要工作的艺术;11)最好的构架、需求和设计出自于自我组织的团队;12)团队要定期反思怎样才能更有效,并据此调整自己的行为

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值