软件工程导论复习资料

合集下载

软件工程导论复习(期末_考研用)

软件工程导论复习(期末_考研用)

第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。

2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。

软件工程的基本目标是:优质、高产。

3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。

方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。

4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。

瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。

瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。

瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。

《软件工程导论》期末复习材料

《软件工程导论》期末复习材料

《软件工程导论》期末复习材料1、什么是软件危机?产生的主要原因有哪些?(1页)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

主要原因:1)用户对软件需求的描述不精确。

2)软件开发人员对用户需求的理解有偏差。

3)缺乏处理大型软件项目的经验。

4)开发大型软件易产生疏漏和错误。

5)缺乏有力的方法学的指导和有效的开发工具的支持。

6)面对日益增长的软件需求,人们显得力不从心。

2、什么是瀑布模型,瀑布模型的缺点主要有哪些?(15页)瀑布模型将软件开发分成:需求分析、规格说明、设计、编码、综合测试和维护阶段,每个阶段必须完成规定的文档,必须等前一个阶段完成之后才开始下一个阶段的工作,前一个阶段输出的文档是下一个阶段的输入文档。

缺点主要包括:1)在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。

2)在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。

3)不支持产品的演化,缺乏灵活性,使软件产品难以维护。

3、什么是数据流图,数据流图由哪些基本符号组成?(40页)数据流图:简称DFD, ,主要用于SA(结构化分析)方法,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,是一种功能模型. 基本符号有四种: ->,箭头,表示数据流; =,开口矩形或者两条平行线,表示数据存储; 正方形或者立方形,表示数据的源点或终点,圆角矩形或圆形,表示加工,也就是数据的处理;数据流图中每一个加工至少有一个输入流和一个输出流。

4、数据字典有哪几种元素组成?(47页)1)数据流,2)数据元素,3)数据存储,4)处理或者加工5、需求分析阶段的基本任务是什么(56页)1).问题识别,确定系统的综合需求和数据需求,包括a.功能需求b.性能需求c.环境需求d.用户界面需求e.出错处理的需求f.接口需求2).分析与综合,导出软件的逻辑模型.3).修正开发计划4).编写文档6、模块的内聚有哪几种?(99页)功能内聚(模块就是一个单一功能)、顺序内聚(模块中的处理必须顺序执行)、通信内聚(模块中所有任务都是对同一批数据操作)、过程内聚(模块中的处理必须按特定次序执行)、时间内聚(模块的任务要在同一时间段完成)、逻辑内聚(模块的任务在逻辑上属于一类)、偶然内聚(模块中的任务有很松散的关系)。

软件工程导论复习资料

软件工程导论复习资料

软件工程导论复习资料填空题1.在信息处理和运算机范畴内,一样认为软件是_法度榜样____、_文档____ 和_数据____ 。

2.数据流图的全然构成部分有_数据的源点与终点____、数据流_____、加工_____、数据文件_____。

3.数据流图和数据字典合营构成了体系的_逻辑____模型,是需求规格说明书的重要构成部分。

4.划分模块时尽量做到__高内聚、低耦合______,保持模块的自力性,尽量应用公共模块。

5.类的实例化是_对象_______。

6.人们常用硬件靠得住性的定量度量方法来度量软件的靠得住性和可用性,常用的度量软件可7.靠性的两个指标是_成功地运行的概率_______和_平均故障时刻_______。

8.将待开创的软件细化,分别估算每一个子义务所须要的开创工作量,然后将它们加起来,9.将获得软件的总开创量。

这种成本估算方法称为_自底向上_______。

10.假如一个模块被n 个模块调用,个中直截了当的上级模块的个数是m 个(m<=n )那么该模块的扇入数是____N_______ 个。

11.构造化设计以__数据流图_________ 为差不多,按必定的步调映射成软件构造。

12.软件的风险分析可包含风险辨认、风险推测和风险驾驭(或风险治理)等3项活动。

13.软件著作权挂号的3种重要类型:(1)著作权挂号;(2)著作权连续挂号;(3)权力转移立案挂号。

14.软件工程治理的重要内容有:项目经费治理,软件质量治理,项目进度治理和人员治理。

15.面向对象分析的目标是对客不雅世界的体系进行___建模_______________ 。

16.软件爱护工作的临盆性活动包含分析评判、修改设计和____编写法度榜样代码_______等。

17.为了使应用软件适应运算机情形的变更而___修改软件_______________ 的过程称为适应性爱护。

18.一个进行学生成就统计的模块其功能是先对学生的成就进行累加,然后求平均值,则该模块的内聚性是__________次序内聚________ 。

软件工程导论复习题含答案

软件工程导论复习题含答案

软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。

A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2. 软件是一种( B )性工业产品。

A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。

A. 用户B. 用户和分析设计人员之间C. 开发人员内部D. 使用和维护人员间4. 软件的主要结构和功能是在( A )阶段决定的。

A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。

A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。

A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。

A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。

A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。

①软件需要增长难以满足。

②软件开发成本提高。

③软件开发进度难以控制。

④软件质量不易保证。

A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。

A. 程序设计方法学的影响B. 其他工程科学影响C. 软件危机的出现D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。

软件工程导论复习资料_自整理

软件工程导论复习资料_自整理

第一章各类软件过程模型:1、瀑布模型(特点:1、阶段间具有顺序性和依赖性2、推迟实现的观点3、质量保证的观点)2、快速原型模型3、增量模型4、螺旋模型5、喷泉模型敏捷过程(1)个体和交互胜过过程和工具(2)可以工作的软件胜过面面俱到的文档(3)客户合作胜过合同谈判(4)响应变化胜过遵循计划极限编程(XP过程)(1)极限编程的有效实践(2)极限编程的整体开发过程(3)极限编程的迭代过程第二章可行性研究的任务(1)技术可行性(2)经济可行性(3)操作可行性可行性研究的任务:对以后的行动方针提出建议数据流图(DFD)见P40数据流图有4种基本符号:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。

(注意:数据流与程序流程图中用箭头表示的控制流有本质不同,千万不要混淆。

)数据流图有四种基本成分:数据流、加工(又称为数据处理)、文件、数据的源点或终点数据字典P47数据字典的内容:由对下列4类元素的定义组成。

(1)数据流;(2)数据流分量(即数据元素);(3)数据存储;(4)处理。

数据字典有以下四类条目:数据流、数据项、文件、基本加工。

数据项是组成数据流和数据存储的最小元素。

由数据元素组成数据的方式只有下述3种基本类型:(1)顺序(2)选择(3)重复(4)可选第三章有关用例文档的书写基本路径1、只书写“可观测”的2、使用主动语句3、句子必须以执行者或系统作为主语4、每一句都要朝目标迈进5、分支和循环6、不要涉及界面细节需求分析的任务1、确定对系统的综合要求2、分析系统的数据要求3、导出系统的逻辑模型4、修正系统开发计划如何识别执行者,如何识别用例识别用例的三条原则:1、用例是否包含步骤。

2、有无输入输出(业务价值)。

3、是否在业务价值上具有独立性。

用例描述:前置:取款后置:取款成功涉众利益:客户:安全柜员:方便银行:安全,合法法律:保护客户、银行利益基本路径:1、柜员提交取款请求2、系统显示取款页面3、柜员填写取款信息4、系统检测信息是否充分5、系统显示取款信息6、柜员确认取款信息7、系统显示账户信息输入界面8、柜员刷卡输入帐户9、取款人输入密码10、系统验证帐户、密码是否合法,扣款金额11、系统显示交易信息12、系统打印交易单13、柜员确认交易信息14、系统扣除扣款金额15、系统显示交易成功4a、显示取款不充分4a1、返回重写4a2、放弃4b、小于最小取款金额,或大于最大取款金额4b1、返回重写4b2、放弃6a、柜员不确认6a1、返回重写6a2、放弃第五章模块独立耦合程度:(高—低)内容耦合公共环境耦合特征耦合控制耦合数据耦合PS:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

软件工程导论复习

软件工程导论复习

软件⼯程导论复习第1章软件⼯程概述1.软件危机定义:111软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题产⽣原因:软件本⾝特点、软件开发与维护的⽅法不正确2.什么是软件⼯程?111软件⼯程是:软件⼯程是指导计算机软件开发和维护的⼀门⼯程学科。

采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,把经过时间考验⽽证明正确的管理技术和当前能够得到的最好的技术⽅法结合起来,以经济地、⾼效的开发出⾼质量的软件并有效地维护它,这就是软件⼯程。

3.软件⼯程基本原理111:1)⽤分阶段的⽣存周期严格管理。

(2)坚持进⾏阶段评审。

(3)实⾏严格的产品控制。

(4)采⽤现代程序设计技术。

(5)结果应能清楚地审查。

(6)开发⼩组⼈员应该少⽽精。

(7)承认不断改进软件⼯程实践的必要性2、软件⼯程的主要⽬标是什么?基本⽬标是什么?软件⼯程的⽬标:从管理和技术两个⽅⾯开发和维护计算机软件,⽤低成本,开发出达标、⾼性能、易于移植、可靠性⾼的软件。

软件⼯程的基本⽬标是:优质、⾼产。

3. 软件⼯程⽅法学111通常把在软件⽣命周期全过程中使⽤的⼀整套技术⽅法的集合称为⽅法学也称为“范性”。

在软件⼯程领域中这两个术语的含义基本相同。

软件⼯程⽅法学包括3个要素⽅法、⼯具和过程。

⽅法完成软件开发的各项任务的技术⽅法⼯具运⽤⽅法提供的⾃动的或半⾃动的软件⼯程⽀撑环境过程为了获得⾼质量的软件所要完成的⼀系列任务框架规定了完成各项任务的⼯作步骤⽬前使⽤得最⼴泛的软件⼯程⽅法学分别是传统⽅法学和⾯向对象⽅法学1 传统⽅法学传统⽅法学⼜称⽣命周期⽅法学或结构化范型。

软件⼯程采⽤的⽣命周期⽅法学就是从时间⾓度对软件开发和维护的复杂问题进⾏分解把软件⽣命的很长周期依次划分为若⼲个阶段每个阶段有相对独⽴的任务然后逐步完成每个阶段的任务。

对于任何两个相邻的阶段⽽⾔前⼀阶段的结束标准就是后⼀阶段的开始标准。

在每⼀个阶段结束之前都必须进⾏正式严格的技术审查和管理复审从技术和管理两⽅⾯对这个阶段的开发成果进⾏检查通过之后这个阶段才算结束如果检查迈不过则必须进⾏必要的返⼯并且返⼯后还要再经过审查。

软件工程导论复习题及答案详解

第一章一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与________。

2.程序设计时代的生产方式是________。

3.软件工程涉及到几个学科,它是一门_____学科。

4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能________。

5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是________模型。

6.喷泉模型是一种以用户需求为动力,以_______为驱动的模型。

7.结构化方法是一种面向数据流的开发方法。

由结构化分析、_______、结构化程序设计构成。

8.软件工程研究的主要内容是软件开发管理和_______两个方面。

9.软件工具是支持软件开发人员的开发和维护活动而使用的________。

10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种________,使用相应的工具来进行。

三、选择题1.软件是一种( )产品。

A.物质B.逻辑C.有形D.消耗2.软件产品的开发主要是( )。

A.复制B.再生产C.拷贝D.研制3.个体手工劳动生产方式的时代是( )。

A.程序设计B.软件生产自动化C.程序系统D.软件工程4.与计算机科学的理论研究不同,软件工程是一门( )学科。

A.理论性B.原理性C.工程性D.心理性5.软件重用的单位是( )。

A.软件模块B.性能C.系统D.功能6.软件开发费用只占整个软件系统费用的( )。

A.1/2B.1/3C.1/4D.2/37.软件开发中大约要付出( )%的工作量进行测试和排错。

A.20B.30C.40D.508.准确地解决“软件系统必须做什么”是( )阶段的任务。

A.可行性研究B.需求分析C.详细设计D.编码9.软件生存周期中最长的是( )阶段。

A.需求分析B.概要设计C.测试D.维护四、简答题1.软件产品的特性是什么?2.软件生产有几个阶段?各有何特征?3.什么是软件危机?产生的原因是什么?4.软件工程的性质、目标和内容是什么?5.软件工程面临的问题是什么?6.软件工程过程有哪些过程?7.软件生存周期有哪几个阶段?8.软件生存周期模型有哪些主要模型?9.有哪些主要软件开发方法?参考答案二填空题1.软件 2.个体手工劳动3.综合性交叉 4.相同5.瀑布 6.对象7.结构化设计8.软件开发技术9.软件10.开发方法三、选择题1.B 2.D 3.A 4.C5.A 6.B 7.C 8.B 9.D第二章一、名称解释1.可行性研究2.技术可行性3.经济可行性4.社会可行性5.货币时间价值6.投资回收期7.纯收入8.系统流程图二、填空题1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定________。

《软件工程导论》期末复习题知识点

《软件工程导论》期末复习知识点第一章填空题1、软件是、及其说明程序的。

答案:数据、计算机程序、各种文档2、软件工程包括软件开发技术和两大部分内容。

答案:软件工程管理选择题1、软件危机出现于,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。

A50年代末B60年代初 C 60年代末 D 70年代初A运筹学 B 工程学C软件学D软件学答案:C B2、开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。

A 软件投机B软件危机C软件工程D软件产生答案:B3、产生软件危机的原因有如下几点,除了______。

A 软件开发过程未经审查B 软件开发不分阶段,开发人员没有明确的分工C 所开发的软件,除了程序清单外,没有其他文档D 采用工程设计的方法开发软件,不符合软件本身的特点答案:D4、软件产品的开发主要是( )。

A 复制B 再生产C 拷贝D 研制答案: D判断题1、文档是软件产品的一部分,没有文档的软件就不称其为软件。

()答案:√2、一个成功的项目唯一提交的就是运行程序。

()答案:×3、瀑布模型不适用于需求不确定的情况。

()答案:√名词解释1、软件工程答案:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

2、软件生存周期答案:软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。

简答题1、简述软件危机发生的原因。

答案:(1)软件的规模加大、复杂性提高、性能增强;(2)软件是逻辑产品,尚未完全认识其本质和特点;(3)缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法;(4)用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应;(5)软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足。

软件工程导论复习题

1.软件工程学概述一、填空题1.软件=()+()。

2.软件生存周期一般可分为系统工程、()、()、()、测试、运行与维护阶段。

3.在瀑布模型中,将软件开发划分为若干个时期,软件项目的可行性研究一般被归属于()。

4.根据软件工程学的七项基本原则,DOS中把标准输入、输出设备视为文件,这一思想体现了软件工程学的()原则。

二、判断题1.软件是一种逻辑实体,而不是具体的物理实体。

()2.软件工程是开发、运行、维护和修复软件的系统方法。

()3.螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示,()4.在软件开发中,采用原型系统策略的主要困难是时间问题。

()三、选择题1.软件工程的概念是哪年提出的()。

A.1988B.1968C.1948D.19282.软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据而且也影响软件的()。

A.可维护性B.可靠性C.可移植性D.安全性3.就软件产品的特点,以下说法错误的是()。

A.软件具有高度抽象性,软件及软件生产过程具有不可见性B.同一功能软件的多样性,软件生产过程中的易错性C.软件在开发和维护过程中的不变性D.不同开发者之间思维碰撞的易发性4.瀑布模型的关键不足在于()。

A.过于简单B.各个阶段需要进行评审C.过于灵活D.不能适应需求的动态变更5.以下哪一项不是软件危机的表现形式()。

A.开发的软件不满足用户需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差6.以下说法错误的是()。

A.文档仅仅描述和规定了软件的使用范围及相关的操作命令B.文档也是软件产品的一部分,没有文档的软件就不成软件C.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量D.高质量文档对于发挥软件产品的效益有着重要的意义7.下列哪个阶段不是软件生存期三个阶段的内容()。

A.计划阶段B.开发阶段C.编码阶段D.维护阶段8.软件是一种()。

软件工程导论最全复习总结

1、软件危机是指在计算机开发过程中旳开发和维护过程中所碰到旳一系列旳严重问题。

2、软件是程序、数据及有关文档旳完整集合,程序是可以完毕预定功能和性能旳可执行旳程序序列;数据是是使程序可以合适旳处理信息旳数据构造;文档是开发、使用和维护程序所需要旳图文资料。

3、软件工程学包括3个要素:措施、工具、过程。

4、目前使用最广泛旳软件工程措施学是老式措施学和面向对象措施学。

5、软件工程措施学旳软件过程基本上可以用瀑布模型来描述。

6、瀑布模型、迅速原型模型、增量模型、螺旋模型、喷泉模型。

7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。

8、可行性研究旳三方面:技术可行性、经济可行性、操作可行性。

9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出旳过程中所经受旳变化。

10、数据字典是有关数据信息旳集合,也就是对数据流程图中所包括旳所有元素旳定义旳集合。

11、数据流图和数据字典共同构成系统旳逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应当写出软件需求规格阐明书,以书面形式准确旳描述软件需求。

13、9、构造化分析措施就是面向数据流自顶向下逐渐求精进行需求分析旳措施。

14、ER图中包括了实体、关系和属性,矩形代表实体,菱形表达关系,椭圆或圆角矩形表达属性,用直线把实体和其属性连接。

15、验证软件需求旳对旳性:一致性、完整性、现实性、有效性。

16、总体设计旳基本目旳是回答“概括地说,系统应当怎样实现?”,总体设计又称为概要设或初步设计。

17、模块旳独立程度可以有两个定性标量度量:内聚和耦合。

18、软件测试旳目旳:(1测试是为了发现程序中旳错误而执行程序旳过程;(2好旳测试方案是极也许发现迄今为止尚未发现旳错误旳测试方案;(3成功旳测试是发现可至今为止尚未发现旳错误旳测试。

19、软件测试环节:模块测试、子系统测试、系统测试、验收测试、平行运行。

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

第一章,软件工程导论 一、软件工程是指导计算机软件开发和维护的一门工程学科 二、件工程的七条基本原则: 1. 用分阶段的生命周期计划严格管理 2. 坚持进行阶段评审 3. 实行严格的产品控制 4. 采用现代程序设计技术 5. 结果应能清楚地审查 6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性 三、软件工程方法学包含3个要素:方法、工具和过程。 方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 四、软件一程方法学: 传统方法学、面向对象方法学 五、软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成 1软件定义主要任务:问题定义、可行性研究和需求分析 2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试 3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备 //①问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”②可行性研究~:对于上一个阶段所确定的问题有行得能的解决办法吗?③需求分析:确定目标系统必须具备哪些工能 ④总体设计:概括地说,应该怎样实现目标系统?⑤详细设计:应该怎样具体地实现这个系统呢?⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块 ⑦综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收 六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型 第二章 可行性研究 一、可行性研究的任务 分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度 二、可行性 (1) 技术可行性 使用现有的技术能实现这个系统吗?(2) 经济可行性 这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性 系统的操作方式在这个用户组织内行得通吗? 三、可行性研究过程 1. 复查系统规模和目标、2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型、4. 进一步定义问题5. 导出和评价供选择的解法、6. 推荐行动方针7. 草拟开发计划、8. 书写文档提交审查 四、系统流程图:是概括地描绘物理系统的传统工具。 数据流图:描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图是系统逻辑功能的图形表示 数据字典:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 一般说来,数据字典应该由对下列3类元素的定义组成: (1) 数据流 (2) 数据流分量(即数据元素) (3) 数据存储

第3章 需求分析 一、 需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 二、 确定对系统的综合要求 1. 功能需求2. 性能需求、3. 可靠性和可用性需求4. 出错处理需求、5. 接口需求、6. 约束7. 逆向需求、8. 将来可能提出的要求 三、分析系统的数据要求 分析系统的数据要求通常采用建立数据模型的方法 3.1.3 导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。 四、获取需求的方法 3.2.1 访谈 3.2.2 面向数据流自顶向下求精 3.2.3 简易的应用规格说明技术 3.2.4 快速建立软件原型 五、3.3.1 分析建模 需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。 3.4节将介绍的实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。 2.4节讲过的数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。 3.6节将介绍的状态转换图(简称为状态图),指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。 3.4 实体-联系图(数据对象、属性、联系) 3.6 状态转换图(状态、事件、符号) 3.7 其他图形工具、3.7.1 层次方框图 3.7.2 Warnier图、3.7.3 IPO图 六、验证软件需求 (1) 一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。 (2) 完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。 (3) 现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。 (4) 有效性 必须证明需求是正确有效的,确实能解决用户面对的问题。 第5章 总体设计 划分出组成系统的物理元素(黑盒子级)——程序、文件、数据库、人工过程和文档等 2、设计软件的结构 1、确定系统中每个程序是由哪些模块组成 2、这些模块相互间的关系 二、典型设计过程 设想供选择的方案、选取合理的方案、推荐最佳方案、功能分解、设计软件结构、 设计数据库、 制定测试计划、书写文档、审查和复审 三、设计原理:模块化、 抽象、逐步求精、信息隐藏和局部化、模块独立 四、模块独立性的度量: 两个定性标准度量:内聚和耦合 耦合:模块间互相依赖(连接)的紧密程度 内聚:模块内部各个元素彼此结合的紧密程度 五、耦合 数据耦合 (Data Coupling)、特征耦合 控制耦合 (Control Coupling) 公共环境耦合(Common Coupling) 内容耦合 (Content Coupling) 六、设计原则 耦合是影响软件复杂程度的一个重要因素。 尽量使用数据耦合、少用控制耦合和特征耦合,限制公共环境耦合的范围、完全不用内容耦合。 七、模块内聚 八、设计原则,如果给上述7种内聚的优劣评分,将得到如下结果: 功能内聚10分 顺序内聚9分 通信内聚7分 过程内聚5分 时间内聚3分 逻辑内聚1分 偶然内聚 0分 力争做到高内聚、识别提高低内聚的模块 九、启发规则: 1. 改进软件结构提高模块独立性2. 模块规模应该适中3. 深度、宽度、扇出和扇入都应适当4. 模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应该可以预测 十、描绘软件结构的图形工具 层次图 HIPO图 结构图 面向数据流的设计方法:信息流的类型:变换流 、事务流 分析步骤: 第1步 复查基本系统模型、第2步 复查并精化数据流图 第3步 确定数据流图具有变换特性还是事务特性。 第4步 确定输入流和输出流的边界,从而孤立出变换中心。 第5步 完成“第一级分解”。变换型数据流图被映射成一个输入、变换和输出的信息处理过程。 第6步 完成“第二级分解”。把数据流图中的每个处理映射成软件结构中一个适当的模块。 第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。 第6章 详细设计 目标:系统的具体实现。 应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 1、结构程序设计的经典定义如下所述:“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。” 2、如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,则称为经典的结构程序设计; 3、如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构程序设计; 4、如果再加上允许使用LEAVE(或BREAK)结构,则称为修正的结构程序设计。 人机界面设计: 1. 系统响应时间、 2. 用户帮助设施3. 出错信息处理、4. 命令交互 过程设计的工具: 程序流程图、盒图(N-S图)、 PAD图、判定表、判定树、过程设计语言 面向数据结构的设计方法: 1 Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法. 2 使用面向数据结构的设计方法,当然首先需要分析确定数据结构,并且用适当的工具清晰地描绘数据结构。 3 Jackson方法: (1) 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。 (2) 找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。 (3) 用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意,如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应); 第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框; 第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。 在导出程序结构图的过程中,由于改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框 (4) 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。 (5) 用伪码表示程序 程序复杂程度的定量度量: McCabe方法、Halstead方法 第7章 实现 通常把编码和测试统称为实现。 所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。 测试的目的就是在软件投入生产性运行之

相关文档
最新文档