软件工程导论资料

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

•软件工程是:①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究

软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等

CMM(Capability Maturity Model)即能力成熟度模型,是美国卡内基梅隆大学软件工程研究所(SEI)在美国国防部资助下于二十世纪八十年代末建立的,用于评价软件机构的软件过程能力成熟度的模型。

•典型的软件过程模型有:

–瀑布模型(waterfall model)

–演化模型(evolutionary model)

–增量模型(incremental model)

–原型模型(prototyping model)

–螺旋模型(spiral model)

–喷泉模型(water fountain model)

–基于构件的开发模型(component-based development model)

–形式方法模型(formal methods model)

•是瀑布模型和演化模型的结合,并增加了风险分析

•螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:

–制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件

–风险分析:评价所选的方案,识别风险,消除风险

–工程实施:实施软件开发,验证工作产品

–客户评估:评价开发工作,提出修正建议

•喷泉模型是一种支持面向对象开发的模型

•体现迭代和无间隙特征

–迭代:各开发活动常常重复工作多次,相关的功能在每次迭代中随之加入演进的系统

–无间隙:开发活动之间不存在明显的边界

•所谓基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合

•组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程•本书将软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理六个阶段。

•常用的分析方法:

–面向数据流的结构化分析方法(SA)

–面向数据结构的分析方法

–面向对象的分析方法(OOA)

•需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动

•需求跟踪有两种方式,正向跟踪与逆向跟踪

–正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都能

在后继工作产品中找到对应点

–逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处

•软件设计是把软件需求变换成软件表示的过程,它主要包含两个阶段:软件体系结构设计阶段和部件级设计

•使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计

软件设计的原则:

抽象化与逐步求精;

•软件设计中主要抽象手段有:过程抽象和数据抽象

模块化;

信息隐藏;

功能独立;

•功能独立性可以由两项指标来衡量:内聚度与耦合度

软件体系结构关注系统的一个或多个结构,包含软件构件、这些构件的对外可见的性质以及它们之间的关系

•常见的软件体系结构

–单主机结构

–C/S(Client/Server)结构

–B/S(Browser/Server)结构

常用体系结构风格:

数据为中心的体系结构

数据流风格的体系结构

调用和返回风格的体系结构

面向对象风格的体系结构

层次式风格的体系结构

在这里要了解几个概念:

–程序结构的深度:程序结构的层次数称为结构的深度。结构的深度在一定意义上反映了程序结构的规模和复杂程度。

–程序结构的宽度:层次结构中同一层模块的最大模块个数称为结构的宽度。

–模块的扇入和扇出:扇出表示一个模块直接调用(或控制)的其它模块数目。

扇入则定义为调用(或控制)一个给定模块的模块个数。多扇出意味着需要

控制和协调许多下属模块。而多扇入的模块通常是公用模块。

部件级设计阶段,主要完成如下工作:

(1)为每个部件确定采用的算法,选择某种适当的工具表达算法的过程,编写部

件的详细过程性描述;

(2)确定每一部件内部使用的数据结构;

(3)在部件级设计结束时,应该把上述结果写入部件级设计说明书,并且通过复

审形成正式文档,作为下一阶段(编码阶段)的工作依据。

图形表示法:

•程序流程图

•N-S图

•PAD

设计评审:

•软件设计的最终目标是要取得最佳方案

•“最佳”是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案

设计评审的内容:

1. 可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。

2.接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义。部件是否满足高内聚和低耦合的要求。部件作用范围是否在其控制范围之内。3.风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现。

4.实用性:即确认该软件设计对于需求的解决方案是否实用。

5.技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达。

6.可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护。7.质量:即确认该软件设计是否表现出良好的质量特征。

8.各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准是什么。

9.限制:评估对该软件的限制是否现实,是否与需求一致。

10.其它具体问题:对于文档、可测试性、设计过程等等进行评估。

•评审分正式评审和非正式评审两种

•正式评审除软件开发人员外,还邀请用户代表和领域专家参加,通常采用答辩形式

相关文档
最新文档