2016武汉大学软件工程重点(计算机学院)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ch1

1.文档

分类:开发文档、维护文档、用户文档、管理文档

作用:记录软件开发过程的标准描述,解决不可视性;通信和交流;管理和维护;用户服务文档是影响软件可维护性的决定性因素,所以维护期间文档比程序代码重要

用户文档描述系统功能和使用方法,不关心具体如何实现

系统文档描述系统设计、实现和测试等各方面的内容。

2.软件特点

更依赖人;开发成本、进度难估计;正确性难保证;维护困难;不磨损不老化

3.软件定义

软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。

4.软件生产过程模型:

瀑布模型优点:规范管理开发过程;文档驱动缺点:初期系统的需求难以完全确定;文档驱动;周期长特点:需求固定;周期长;文档驱动适用范围:需求固定,技术成熟原型模型、快速原型法针对:软件开发初期需求难以确定优点:用户参与;快速缺点:快速;对开发环境要求高适用范围:已有产品;简单而熟悉的领域;有快速原型开发工具;进行产品移植或升级

螺旋模型降低风险优点:风险驱动;质量保证;利于维护缺点:对开发人员要求高;用户接受“演化”方法难适用范围:庞大、复杂、高风险的系统;内部开发的大规模软件项目

增量模型特点:开放式(利于维护),对开发人员水平要求高优点:任务或功能模块驱动,可以分阶段提交产品缺点:条件比较苛刻(精心的设计)适用范围:需求可能发生变化,分阶段交付给用户;分析设计人员对应用领域不熟悉;中高等风险项目;用户可参与到整个软件开发过程中;使用面向对象或第四代编程语言;软件公司有较好的类库、构件库喷泉模型面向对象生命周期模型特点:迭代、无缝

组合模型

5.软件生产仍面临三大问题。是哪三大问题?造成问题的根本原因?有哪些解决问题的方法?

三大问题:软件质量、成本与开发进度

典型表现:软件开发成本和质量难以准确估计、用户常常不满意“已完成的软件”、软件质量不可靠、软件维护困难、软件缺乏文档、软件成本上升

产生原因:软件本身的特点(缺乏可见性、规模庞大等)、软件开发和维护的方法不正确

解决途径:正确认识(软件=程序+数据+文档)、工程化方法和技术、开发和使用好的工具软件

CH2

1.可行性研究

包括:经济可行性(成本效益分析)、技术可行性(风险、资源的有效性、技术方案)、操作可行性(用户组织内的管理制度、人员素质、操作方式)、法律及社会可行性主要步骤:复查系统规模和目标的描述;研究正在使用的系统的系统流程;导出新系统的高层逻辑模型,数据流图+数据字典;重新定义问题;导出解法;推荐方针;草拟开发计划

2.数据流图用途

建立新系统逻辑模型的工具;作为与用户与开发人员交流信息的工具;作为分析、设计乃至维护的依据

3.数据字典组成

名字、别名、描述、定义、位置

4.痛苦曲线

差的项目计划最终会付出进度拖延、质量低劣、不能满足期望的的代价。制定项目计划的确是痛苦的,但会减少在项目后期的痛苦,不做计划则将痛苦留在了项目开始以后。

5.工作分解结构

将整个项目划分为子元素的程序,逐层对项目进行分解。作用:项目的认知、协同环境层次、控制层次。

6.项目进度安排成本和工作量估算

代码行:(a+4m+b)/6 甘特图

CH3

1.需求分析作用

充分理解现实中的业务问题,作为软件设计的基础;为软件项目的成本、时间、风险估计提供准确的依据;减少开发工作量,避免将时间与资源浪费在设计与实现错误的需求上;通过提供需求文档有效的管理系统演化与变更;作为合同的一部分;为最终的验收测试提供标准和依据。

2.需求的分类

业务需求(客户对系统高层次目标要求,项目的远景和范畴)、用户需求(用户角度描述系统功能需求与非功能需求,只涉及系统的外部行为)、系统需求(系统应该提供的功能和服务,涉及交互)

3.系统性需求

功能性需求(完整性、一致性、准确性);非功能性需求(可用性、可靠性、性能、可支持性)采用可度量的特性进行描述

4.需求获取技术

用户访谈、用户调查、现场调查、文档分析、原型、模型驱动的方法、头脑风暴

5.结构化分析SA

核心思想:面向数据流的分解和抽象;模块化;自顶向下逐步求精DFD(数据流图)、DD (数据字典,描述数据的具体格式)、STD(状态转换图)、E-R图

数据模型:实体关系图(描述数据之间的关系)

功能模型:数据流图(数据在功能模块之间的流动)

行为模型:状态转换图(描述了数据的状态以及状态的转换)

6.面对对象分析方法OOA

CH4 总体设计

1.总体设计

必须将用户需求转化为对计算机系统的逻辑定义。分为系统设计阶段(系统的具体实现方案)、结构设计阶段(软件结构、确定每个程序由哪些模块组成,以及模块之间的相互关系)

2.软件质量评价标准

有效可靠;结构清晰,具有层次性,无回路调用,模块独立性好(良结构、易测试、易维护、可移植;达到需求、界面友好、简单易学);文档齐全;重用性、开放性;尽量简单3.模块

三个基本属性:功能,逻辑(内部怎么做),状态(使用时的环境和条件)

特征:抽象what抽出事物的本质特征和各类问题的共性,找出联系和相似性,加以概括和提取;处理复杂系统的方法是用层次的方法构造和分析它;分层理解问题,自顶向下层层细化。

信息隐藏数据隐藏,细节隐藏。增加可理解性,修改副作用小,错误副作用小。

局部化把关系密切的模块物理地放的彼此靠近

模块化将系统分成若干模块容易设计,使软件结构清晰,易于理解;使软件易于测试和调试,提高可靠性;提高可修改性;有助于软件开发工程的组织管理;可重用;易维护接口成本与块成本

模块独立性耦合软件结构内不同模块之间互连程度的度量:零耦合;数据耦合;特征耦合;控制耦合;公共环境耦合;内容耦合(goto)

内聚一个模块内各个元素彼此结合的紧密程度(比耦合重要):偶然内聚;逻辑内聚;时间内聚;过程内聚(与DFD有关);通信内聚;顺序内聚;功能内聚

4.软件设计的启发规则

改进软件结构,提高模块独立性;模块规模适中;深度、宽度、扇入、扇出适当梭形;作用域在控制域内;降低接口的复杂程度模块独立性强、可理解性好;单出单入避免内容耦合;模块功能可预测

5.基于数据流结构化设计SD

利用映射把数据流图变换成软件结构

层次图表示模块调用关系

6.SA\SD方法的特点

优点:自顶向下逐步精华;各模块可单独设计、编码、测试、修改

缺点:纸上设计,长时间偏离软件实体;开发周期长;剥离了数据与功能之间的关系

CH5 详细设计

1.结构程序设计

程序代码仅使用顺序、选择、循环这三种基本的控制结构进行连接,且每个代码块只有

相关文档
最新文档