Chapter01
SE的定义、目的、方法及作用
定义:软件工程即用系统科学的工程性方法解决软件开发时遇到的问题,也就是,将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护。 目的:生产出高质量的软件进而找到解决方案,并考虑那些对质量有影响的特性。 方法: 分析---分析问题,调查软件正反两方面 设计---给出解决方案 开发团队---描述在团队中的人员的角色和职责 开发---实现解决方案(实现对象、活动、封装等等) 项目管理---将系统分为小部分,逐步明确过程,控制进度,处理每个改变等 作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。 |
// 开发模式
它表示开发软件时特定的方法或哲学。是软件开发的全部过程,活动和任务的结构框架,它能直观的表达软件开发全过程,明确要完成的主要活动,任务和开发策略。 |
说明错误、缺陷、失败的含义与联系。(举例说明)
错误:是进行软件开发过程中人为出错造成的 例如,设计人员可能误解了某个需求,创建出与需求分析人员和用户的实际意图不相符的设计。这个设计故障是一种错误的编码,可能导致其他故障,如不正确的代码或用户手册中不正确的描述等。 故障/缺陷:方法实现时出现的问题。(静态存在) 失效:是指程序运行中出现的问题(由于故障产生)。(动态存在) 例如,需求文档可能会包含故障,所以即使系统按照需求规格来运行,如果它未进行应有的行为,也称为失效。 联系:单个错误可能产生多个故障。故障是系统的内部视图,这是从开发人员的角度看待系统;而失效是系统的外部视图,它是用户所看到的问题。并非每一个故障都对应于一个失效(不执行故障代码就不会是代码失效)。 |
软件质量应从哪几个方面来衡量?论述之。
产品的质量 用户考虑产品的功能要易于使用和学习 开发人员考虑产品的内部特性。 过程的质量 有很多活动会影响到最终的产品质量。只要活动出了差错,产品的质量就会受到影响。 商业环境背景下的质量 技术价值并不能直接转换为商业价值,软件开发还需要将技术价值和商业价值统一起来 |
// 软件系统的系统组成。
系统 = 实体 + 活动 + 关系 + 边界 |
现代软件工程大致包含的几个阶段及各个阶段文档。
|
//使现代SE实践发生变化的(七个)关键因素是什么?
|
什么是重用、抽象等现代软件工程主要概念?
重用:重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项目中去。 抽象:某种层次归纳水平的问题描述。它使我们将注意力集中在问题的关键方面而非细节。 |
Chapter02
什么是软件过程?软件过程的重要性是什么?软件生命周期?
软件过程: 将一组有序的任务称为过程,它涉及活动、约束和资源使用等一系列步骤,用于产生某种想要的需求。软件过程是软件开发活动中的各种组织及规范方法。 重要性:
软件生命周期:软件开发过程 |
瀑布模型及各阶段文档,优缺点?
瀑布模型:它将开发阶段描述为从一个阶段瀑布般得转换到另外一个阶段。 需求分析 《SRS》软件需求规格说明书 系统设计 系统设计文档《SAD》 程序设计 模块功能算法和数据描述文档 编码 源程序和注释 单元测试和集成测试 单元测试报告 系统测试 系统测试报告 验收测试 验收测试报告 运行与维护 维护报告
优点:
缺点:
----软件是一个创造的过程, 不是一个制造的过程。
|
原型的概念与用途。
原型:一种部分开发的产品,用来让用户和开发者共同研究,提出意见,为最终产品定型。 用途:减少开发中的风险和不确定性 |
论述分阶段开发模型的含义, 其基本分类及特点是什么?
含义:系统被设计成部分提交, 每次用户只能得到部分功能, 而其他部分处于开发过程中。 分类:增量式和迭代式 (对原型化模型的改进) 增量式开发:
迭代式开发:
|
螺旋模型四个象限的任务及四重循环的含义?
任务:计划 目标/可选方案 风险评估 开发和测试 含义:操作概念 软件需求 软件设计 系统实现与部署运行 |