山东大学 英文版《软件工程》教学内容回顾

这篇博客详细回顾了山东大学英文版《软件工程》课程的内容,涵盖了软件工程的定义、目的、方法,软件生命周期的各个阶段,包括需求获取、设计、编码、测试和维护。讨论了瀑布模型、螺旋模型、UP、RUP等过程模型,强调了需求的正确性、一致性和完整性。此外,还探讨了软件体系结构、设计模式、面向对象编程、软件质量衡量标准以及测试策略,如黑盒测试、白盒测试和集成测试。
摘要由CSDN通过智能技术生成

Chapter01 

SE的定义、目的、方法及作用

定义:软件工程即用系统科学的工程性方法解决软件开发时遇到的问题,也就是,将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护。

目的:生产出高质量的软件进而找到解决方案,并考虑那些对质量有影响的特性。

方法:

分析---分析问题,调查软件正反两方面

设计---给出解决方案

开发团队---描述在团队中的人员的角色和职责

开发---实现解决方案(实现对象、活动、封装等等)

项目管理---将系统分为小部分,逐步明确过程,控制进度,处理每个改变等

作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。

// 开发模式

它表示开发软件时特定的方法或哲学。是软件开发的全部过程,活动和任务的结构框架,它能直观的表达软件开发全过程,明确要完成的主要活动,任务和开发策略。

说明错误、缺陷、失败的含义与联系。(举例说明)

错误:是进行软件开发过程中人为出错造成的

例如,设计人员可能误解了某个需求,创建出与需求分析人员和用户的实际意图不相符的设计。这个设计故障是一种错误的编码,可能导致其他故障,如不正确的代码或用户手册中不正确的描述等。

故障/缺陷:方法实现时出现的问题。(静态存在)

失效:是指程序运行中出现的问题(由于故障产生)。(动态存在)

例如,需求文档可能会包含故障,所以即使系统按照需求规格来运行,如果它未进行应有的行为,也称为失效。

联系:单个错误可能产生多个故障。故障是系统的内部视图,这是从开发人员的角度看待系统;而失效是系统的外部视图,它是用户所看到的问题。并非每一个故障都对应于一个失效(不执行故障代码就不会是代码失效)。

软件质量应从哪几个方面来衡量?论述之。

产品的质量

用户考虑产品的功能要易于使用和学习

开发人员考虑产品的内部特性。

过程的质量

有很多活动会影响到最终的产品质量。只要活动出了差错,产品的质量就会受到影响。

商业环境背景下的质量

技术价值并不能直接转换为商业价值,软件开发还需要将技术价值和商业价值统一起来

// 软件系统的系统组成。

系统 = 实体 + 活动 + 关系 + 边界

现代软件工程大致包含的几个阶段及各个阶段文档。

  1. 需求分析和定义───《软件需求规格说明书》
  2. 系统设计───《软件系统结构图》
  3. 程序设计─┐
  4. 程序实现─┴─程序文档(设计文档、源代码、注释)
  5. 单元测试─┐
  6. 集成测试─┼─《测试报告》
  7. 系统测试─┘
  8. 系统提交───《用户手册和操作手册》
  9. 维护    ───《维修报告》

//使现代SE实践发生变化的(七个)关键因素是什么?

  1. 商业软件的投放市场时间的紧迫性
  2. 计算经济学的改变
  3. 强力的桌面计算平台的可用性
  4. 局域网和广域网的延伸
  5. 面向对象技术的出现和采用
  6. 使用窗口、图标、菜单和指针的图形用户界面
  7. 瀑布模型用于软件开发的不可预测性

什么是重用、抽象等现代软件工程主要概念?

重用重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项目中去。

抽象某种层次归纳水平的问题描述。它使我们将注意力集中在问题的关键方面而非细节。

Chapter02

什么是软件过程?软件过程的重要性是什么?软件生命周期?

软件过程

将一组有序的任务称为过程,它涉及活动、约束和资源使用等一系列步骤,用于产生某种想要的需求。软件过程是软件开发活动中的各种组织及规范方法。

重要性:

  1. 通用性(一致性/结构性)一致性和结构性可以使我们知道是否已经做好了工作,还能使别人以同样的方式做工作,因而具有相对通用性。
  1. 自我指导性

软件生命周期软件开发过程

瀑布模型及各阶段文档,优缺点?

瀑布模型它将开发阶段描述为从一个阶段瀑布般得转换到另外一个阶段。

需求分析                                        《SRS》软件需求规格说明书

系统设计                                          系统设计文档《SAD》

程序设计                                          模块功能算法和数据描述文档

编码                                                 源程序和注释

单元测试和集成测试                        单元测试报告

系统测试                                          系统测试报告

验收测试                                          验收测试报告

运行与维护                                      维护报告

 

优点:

  1. 每一过程活动有其相关联的里程碑和提交物(经理便于评价)
  2. 简单性(容易对用户解释)
  3. 其他复杂模型的基础(添加反馈循环和额外的活动)

缺点:

  1. 不能反映实际的代码开发方式
  2. 面临软件变动时, 该模型无法处理实际过程中的重复开发问题

----软件是一个创造的过程, 不是一个制造的过程。

  1. 当时的文档转换有困难

原型的概念与用途。

原型一种部分开发的产品,用来让用户和开发者共同研究,提出意见,为最终产品定型。

用途:减少开发中的风险和不确定性

论述分阶段开发模型的含义, 其基本分类及特点是什么?

含义:系统被设计成部分提交, 每次用户只能得到部分功能, 而其他部分处于开发过程中。

分类增量式和迭代式 (对原型化模型的改进)

增量式开发

  1. 系统需求按照功能分成若干子系统,开始建造的版本是规模小的、部分功能的系统,后续版本添加包含新功能的子系统,最后版本是包含全部功能的子系统集。

迭代式开发:

  1. 系统开始就提供了整体功能框架,后续版本陆续增强各个子系统,最后版本使各个子系统的功能达到最强性能。

螺旋模型四个象限的任务及四重循环的含义?

<

任务计划      目标/可选方案     风险评估     开发和测试

含义操作概念  软件需求          软件设计     系统实现与部署运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值