第一篇:软件工程复习提纲总结
第1部分:软件工程概论
要求掌握:
● 软件的概念,软件的本质特征是什么?
软件:是相对硬件而言的,是计算机系统中的程序、数据,及其相关文档的总称。软件的本质是:对人的意识的反映
软件的特征: 抽象性、智能性、无形性、依附性、复杂性、泛域性、非损性、复制性、演化性 ● 软件工程概念
软件工程是采用工程概念、原理、技术和方法来指导计算机软件开发和维护的工程学科,该学科运用到计算机科学、数学、管理学等原理和方法,遵循系统化的思想,运用工程化方法,指导软件开发和维护工作。
● 软件工程提出的原因,软件危机的主要表现形式
答:
因软件危机提出了软件工程
表现形式:◆ 软件开发不能按照计划进行控制和完成,普遍存在拖延工期的现象;◆ 软件开发生产率满足不了巨大的市场需要;◆ 开发出来的软件满足不了用户的需求;◆ 软件投资严重超出预算;◆ 软件可靠性和可用性差。
● 软件工程学科的发展过程,各阶段的时间范围,以及在每一个发展阶段突出的特征 软件工程学科的发展可以粗略划分为四个时期: 1.软件工程准备期:20世纪40年代中-60年代末
特征: 程序是软件的核心内容; 强调程序的艺术化和个性化;软件概念出现;软件危机出现。2.软件工程形成期:20世纪60年代末-80年代中
特征:软件工程概念出现;没有形成完整软件工程学科体系; 以软件开发方法研究带动整个软件工程的发展,出现了典型的结构化方法,JSD方法等经典软件开发方法;程序设计方法深入研究:程序设计=算法+数据结构;数据结构,操作系统,数据库技术发展 3.软件工程发展期:20世纪80年代末-90年代中
特征:软件需求旺盛,软件产业形成;微机、网络等技术出现并飞速发展;软件开发集成环境; 面向对象方法开始受到重视;文件服务器模式,C/S模式出现。4.软件工程纵深期:20世纪90年代末-今天
特征: WWW技术出现并趋于成熟; 软件体系结构; 软件工程过程 以UML为代表的软件建模语言和软件建模技术出现;云计算和物联网。
● 软件工程学科的基本内容,在什么时间提升为一级学科?
答:内容:软件工程理论,软件工程技术,软件工程管理,软件服务工程,在2011年.● 软件生存期模型,都有哪些形式,每一种模型的特征及优缺点
答:1.瀑布模型 :各阶段明确任务、自上而下、顺序固定、逐级过渡的结构模式,各阶段的联系就象瀑布流水一样自上而下、不可逆返。
特点:软件各阶段之间具有顺序性和依赖性的观点;问题放大效应的观点;推迟实现的观点;质量保障的观点
缺点:开发过程不允许往返,缺乏灵活性;在软件开发出来之前,用户无法知道软件的真实面目。2.演化模型
特点:针对事先不能完整地定义需求; 针对用户的核心需求,开发核心系统;根据用户的反馈,实施活动的迭代。
优点:解决了瀑布模型不允许阶段返回的问题; 适合不能及时确定需求的开发场景;
缺点: 每一个迭代期,仍然以瀑布模型为基础。3.增量模型
优点:每个阶段交付一个可用的产品;减少一个全新产品给客户带来的心理上的影响;分阶段地交 1 付产品不需要大的资金支出;需求经常变化,增量模型的灵活性使其具有更加优越的适用性。
缺点:需要一个开放的结构,方便构件的加入;增量模型本身就是一个矛盾的名词。4.螺旋模型:分步推进、逐步深化的螺旋方式
优点:更符合人们的认知规律;容易确定某个软件产品何时测试完成。
缺点:开发和维护的界限变得不十分清晰;仅适应于大型软件开发。5.喷泉模型
特点:软件生存期需要划分成为多个相对独立的阶段,但各个阶段之间的界限并不是十分明确,相邻阶段之间存在明显的重迭和交叉。6.智能模型
●什么叫软件工程过程,国际标准化组织规定了有哪些过程?RUP的含义是什么?它有哪些典型特征? 答:软件工程过程:是指软件在其生命周期中,一系列相关活动按照确定的次序演绎变化的进程.包括:◆ 获取过程 ◆ 运作过程 ◆ 供应过程 ◆ 维护过程 ◆ 管理过程
◆ 支持过程◆ 开发过程
◆ 裁剪过程
统一软件开发过程RUP
时间维:
初始、细化、构建、移交4个阶段。
工作维:领域分析、需求分析、系统设计、实现和测试等核心工作。第2部分:软件建模技术概论
要求掌握: ● 软件模型的概念
答:软件模型:是指通过软件建模语言,对软件的功能和性能等外特性,软件的要素和结构,以及软件的动态行为特性所给出的抽象和规范描述。
● 软件模型的基本内容
答:1)从软件反映的侧面看软件模型的内容:功能模型、对象模型、数据模型、过程、交互、状态、架构、界面。
2)从软件开发的工作看软件模型的内容:业务、需求、分析、测试、设计。● UML的中文含义是什么?
答:统一建模语言(Unified Modeling Language)● 在2.0版本之后,UML共定义了哪些图? 答:
●用例图、类图、活动图、顺序图、状态图的画法,这些图的作用是什么
答:1.用例图:用例图用来描述软件的功能,作用是: 展现软件功能;展现软件使用者和软件之间的关系;展现软件功能相互之间的关系。
2.类图:作用:描述一组类之间的关系。用于结构和静态建模.3.活动图:作用:描述活动流过程。
4.顺序图:作用:描述一个交互,强调消息之间的时间顺序。
5.状态图:作用:描述一个模型要素所处的状态及其变化。
第3部分:软件策划 ● 软件为什么要进行策划?
答:软件策划的含义:是在开发一个软件之初,所进行的谋划、打算和计划。
工作包括:提出软件开发的问题;定义和描述问题;可行性分析; 软件规划; 软件计划。● 可行性分析的主要内容是什么? 答:经济、技术、社会。● 如何进行软件规划?
答: 软件的背景、环境及性质;软件的基本需求; 软件的目标和范围;软件的框架和构成; 软件建设的长期发展设想;软件开发的近期计划安排。●如何制定软件计划?
答:1.软件项目总述:包括软件项目的名称、项目提出的背景、软件目标、软件的性质、范围、基本需求、基本环境、基础条件和时限要求等.2.软件的工作任务:按工作阶段,工作任务把分解出来的具体任务列出来。3.软件的资源需求(1)人力资源:
(2)环境资源:计算机及相关设备、网络、支撑软件、场地资金等其他资源 进度计划
第4部分:软件需求分析
要求掌握: ● 什么叫软件需求?
答:需求是指明系统能为用户做什么,能够给用户解决什么问题的说明。它描述了系统能够给用户提供什么功能和服务,并且以怎样方式来完成这些功能和服务,以及的系统性质、行为和特性
● 软件需求的基本内容
答:总体需求; 功能需求;非功能需求; 环境性需求
● 结构化方法的基本思想,结构化方法用什么工具进行需求分析? 答:模块化、自顶向下、结构化程序设计的思想
结构化需求模型的主要内容:数据模型:采用E-R图描述; 功能模型:采用数据流图描述; 行为模型:采用状态迁移图描述。● 掌握用例图的画法
泛化关系: 参与者与参与者之间,用例与用例之间存在一般与特殊的泛化关系,例如:
包含关系: 两个用例之间,一个用例(基用例)的行为要用到另外一个用例(包含用例)的行为。包含关系用依赖关系的<
扩展关系:表示基本用例在扩展点要增加新的行为或功能,以扩展到新用例。扩展关系用依赖关系的<
● 能够对一个应用需求采用用例图进行需求分析
第5部分:软件设计
● 软件设计与需求分析有什么区别?
答:软件设计:是根据需求分析的结果,考虑软件实现环境,通过对软件的结构、构件、数据、界面等方面的设计,得到优化的软件设计方案的工作。
需求分析回答软件“做什么”,软件设计回答软件“怎么做”的问题。
● 软件体系结构设计的基本内容是什么?
答:软件体系结构设计:从信息需求中综合出数据结构、程序结构、接口特征和过程细节。
● 如何进行实体类的设计,类优化有哪些方法?
答:经历建立业务对象模型、PIM类模型设计和PSM类模型设计等工作。
类优化方法:利用数据库规范化理论来优化类模型;善用事务模式;根据类的优化准则来优化类模型;去除派生属性;合并性质相同的属性; 属性转化为类;多对多关联的优化。● 掌握用事务模式建立类模型的方法
● 掌握用MVC模式进行功能用例设计的方法 ● 掌握以类图为基础的数据库设计方法 ● 能够对一个应用进行设计工作 第6部分:软件测试 ● 软件测试的概念
答:用人工或自动的方法执行并评价软件产品或其部件的过程,以验证它是否满足规格的要求,或是识别期望结果和实际结果之间有误差别。
● 软件测试的基本方法(黑盒测试,白盒测试)
答:1)黑盒测试2)白盒测试3)静态测试4)动态测试 5)人工测试6)自动测试 ● 软件测试的工作
答:1测试的组织和管理、建立测试队伍、小组,对测试用例、软件缺陷、文档等进行管理; 2 编制测试计划:编制测试计划和说明; 3 设计测试用例: 测试实施:按照测试计划与测试说明的定义对测试对象进行相应的测试,填写测试报告中相应的表格 5 测试报告分析:定性分析,以检查测试工作执行状态; 6 测试评审与报告:提交完整的测试文档。
****************************************************************************** 6 软件是计算机系统中的(程序)、数据及其(文档)的总称。
软件的类型按作用可以分为:(系统软件)、应用软件和(支撑软件)三种类型 软件工程的概念是在(1968)年,在(北大西洋公约组织一次会议)被首次提出来的。下面(B)不是软件的特征:
A 系统性与复制性 B 有形性与可控性 C 抽象性与智能性 D 依附性与泛域性 下面说法正确的是(B)
A 20世纪50年代提出软件工程概念 B 20世纪60年代提出软件工程概念 C 20世纪70年代提出客户机/服务器技术 D 20世纪80年代软件工程学科达到成熟 下面(D)不是系统软件:
A BIOS B Windows C 设备驱动程序 D 办公软件
下面(A)不是软件危机的原因: A:软件生产能力不足 B:对软件内涵认识不够 C:不重视软件工程化 D:软件工具落后
从现实生活中找一个例子来说明硬件、软件和计算机语言的关系。
软件工程生存周期模型有瀑布模型、(喷泉模型)、螺旋模型和(演化模型)等。UML是(Rational)提出来的,他的中文含义是(统一软件建模语言)。下面(B)不是软件生存周期中,某一阶段的工作:
A:问题定义 B:程序安装 C:系统测试 D:软件设计 下面(A)不属于RUP的工作:
A:构建 B:测试 C:需求 D:实现 可行性分析包括(经济)、技术和(社会)几个方面。对可行性分析而言,正确的是(C):
A:可行性分析有可行和不可行两种结果 B:投资也就是软件的开发总成本 C:效益包括经济效益和社会效益 D:社会可行性也就是软件操作的可行性 1.软件需求分析的主要任务是()。
A.给出软件解决方案
B.给出系统模块结构 C.定义模块算法 D.在一个特定的抽象层上建立系统模型
2.为了表达系统的静态结构,可用的图形化工具有()。
A.类图、构件图、部署图
B.类图、状态图、顺序图。
C.协作图、活动图、PAD图
D.交互图、状态图、USE CASE图。
3.主要的项目管理活动包括计划项目、组织项目、()和终止项目。
协调项目
B.风险管理
C.监督项目
D.控制项目
4.若对象A可以给对象B发送消息,那么()。
A.对象B可以看见对象A
B.对象A可看见对象B C.对象A、B相互不可见
D.对象A、B相互可见
5.软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要确定()。A.模块间的操作细节B.模块间的相似性 C.模块间的组成关系D.模块的具体功能 6.随着软硬件环境变化而修改软件的过程是()。
A.校正性维护 B.适应性维护
C.完善性维护
D.预防性维护
7.在系统测试中,()是在一个实际环境中使用真实数据运行系统。
A.验证测试
B.审计测试
C.确认测试
D.模块测试 8.当使用DFD对一个工资系统进行建模时,()可以被认定为外部实体。
A.接收工资单的银行
B.工资系统源代码程序
C.工资单
D.工资数据库的维护 9.在UML提供的图中,()用于描述系统与外部系统及用户之间的交互。
A.用例图
B.类图
C.对象图
D.部署图
10.在面向数据流的设计方法中,一般把数据流图中的数据流划分为()两种
A.数据流和事务流B.变换流和数据流
C.变换流和事务流 D.控制流和事务流
二、填空题:
1.如果一个模块被n个模块调用,其中直接的上级模块的个数是m个(m<=n),那么该模块的扇入数是______个。
2.软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了___________。3._________是一项已经定义得很好的工作,是管理有关项目工作的最小的单元。
4.在设计人机界面时用户技能对用户进行分类,可分为新手用户、平均用户、专家用户和_______。5.一般在程序起始部分,表明程序用途的注释是___________。
三、简答题:
1. 增量模型的主要特点是什么?它有哪些优缺点?
2. 软件设计中,模块之间的数据耦合与特征耦合的有何区别?请举例说明。3. 请简述UML部署图的作用,并举例说明。
4. 简述类的聚集关系,共享聚集和组合聚集有什么区别,请举例说明。
四、设计题:
1.请画出以下系统的分析阶段的类图。一幢有m层楼的大厦中需要一套控制n部电梯的产品,要求n部电梯根据下列约束在楼内移动。C1:每部电梯有m个按钮,每个按钮代表一层,当按下按钮是指示灯亮,电梯驶向相应楼层,当到达楼层时指示灯灭。C2:除最低和最高层外每层楼有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。C3:当电梯无升降动作时,关门并停在当前楼层。
2.设计下列伪码程序的语句覆盖和基本路径测试的测试用例。INPUT(A,B,C)IF A>5 THEN X=10 ELSE X=1 IF B>10 THEN Y=20 ELSE Y=2IF C>50 THEN Z=30 ELSE Z=3 3.用户可以通过电信的计费系统查询话费,用户既可以是个人用户,也可以是集团用户。查询由电信计费人员完成。用户话费查询包括查询通话记录、短消息记录和月租费,集团用户还可以查询集团定制服务费用。请画出用例图。
五、应用题:
为方便储户,银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
请设计出系统的数据流图(画顶层,0层和1层)(10分),软件结构图(10分)。
第二篇:《软件工程》复习提纲
《软件工程》课程要点
每章教学课件中的“本章小结”列出了需要掌握的内容 教学过程中的例题和习题也是课程重点
一、软件工程与软件过程概述
1.概念:
(1)软件的概念(组成成分、作用);
答:计算机软件是程序、数据和相关文档的集合;用于实现计算机系统所需要的逻辑方法和控制过程
(2)软件危机的含义、表现、产生原因(客观、主观)
答:计算机软件开发和维护过程中遇到的一系列严重问题。软件危机的表现:
①对软件开发成本和进度的估计很不准确 ②已完成的软件不能满足用户需求 ③软件质量差 ④软件不可维护
⑤软件没有开发文档
⑥软件成本在计算机系统总成本中所占的比例逐年上升 ⑦软件生产率跟不上硬件的发展和计算机迅速普及的趋势 与软件的特点有关(客观原因):
①软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难
②软件在使用期间不存在机械磨损和老化问题,一旦
发现错误,通常意味着修改原来的设计,因此软件
难维护
③软件规模庞大,程序复杂性增加,需多人分工合作(不
能保证每个人完成的工作合在一起构成一个高质量的大
型软件系统)
与软件开发和维护的方法不正确有关(主观原因): ① 开发无计划
② 忽视软件需求分析的重要性 ③ 轻视软件维护 ④ 无过硬评测手段
⑤ 缺乏有力的开发方法和工具 ⑥ 不重视开发文档等软件配置
(3)软件工程学科包括的内容(三要素)、解决的主要问题 答:(1)软件工程定义:
1)软件工程是指导计算机软件开发和维护的工程学科 2)采用工程化的概念、原理、技术和方法来开发和维护软件3)将经过时间考验而证明正确的管理技术和开发技术结合起来,以较经济的手段开发出高质量的软件并有效维护它
2)软件工程方法学的三要素:
①方法:完成软件开发各项任务的技术方法 ②工具:为方法的高效运用,而提供的自动或半自动的软件支撑环境 ③过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
(4)软件生命周期的含义、组成阶段及各阶段主要任务
答:软件生命周期:
一个软件从定义、开发、运行维护,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。
(1)问题定义阶段:
通过调研,提出关于问题的性质、工程目标和工程规模的书面报告,并且需要得到客户的确认。
●回答“要解决的问题是什么?”
●文档:问题定义报告(2)可行性研究阶段:
用最小的代价在尽可能短的时间内确定问题是否能够解决。① 进一步了解用户需求 ② 提出若干种可能的系统实现方案
③ 分析每种方案的技术、经济、社会可行性 ④ 最终确定这项工程的可行性
●回答“是否有行得通的解决方法?” ●文档:可行性研究报告,项目开发计划
(3)需求分析阶段:
对目标系统提出完整、准确、清晰、具体的要求。① 得出经过用户确认的系统需求
② 用正式文档(需求规格说明)准确表达系统需求 回答 “系统必须做什么?” 文档:需求规格说明书(4)概要设计阶段:
①设计系统实现方案
②设计程序的体系结构,即确定程序由哪些模块
组成以及模块间的关系。概括地回答“怎样实现目标系统?”
文档:概要设计说明书
5)详细设计阶段:设计实现每个模块功能所需要的算
法和数据结构
回答“应该怎样具体地实现这个系统?”
文档:详细设计说明书(6)编码和单元测试:
写出正确的、易理解、易维护的程序模块代码;
测试编写出的每一个模块
文档:经过测试的程序源代码、
程序开发记录(模块开发卷宗)
(7)综合测试阶段:通过各种类型的测试(及相应的调试)使软件达到预定的要求。
①集成测试(组装测试)。
②验收测试 测试文档:
测试计划、详细测试方案、实际测试结果
(8)软件维护阶段:
通过各种必要的维护活动使系统持久地满足
用户的需要。四类维护活动:
改正性维护、适应性维护、完善性维护、预防性维护
文档:软件维护申请、软件修改报告
2.需理解的问题:
(1)软件与程序的区别和联系?
答:计算机软件是程序、数据和相关文档的集合; 程序:能够完成特定功能和性能的可执行的指令序列
(2)开发一个软件项目包括哪些基本的步骤?每一步骤完成哪些工作? 答:
(3)主要的软件过程模型(生命周期模型)有哪些?各自有什么特点?
答:软件生命周期模型也称为软件过程模型,它直观地描述了把软件生命周期划分成哪些阶段及各个阶段 的执行顺序
主要有:瀑布模型、增量模型、螺旋模型、喷泉模型、统一软件过程。
(2)瀑布模型的特点
①阶段间具有顺序性和依赖性
②推迟实现的观点
③阶段质量保证观点(文档驱动)
瀑布模型的优点:强迫采用规范方法开发软件;严格规定了各阶段提交的文档;各阶段结束前必须经过技术审查和管理复审。
瀑布模型缺点:分析和设计阶段只考虑逻辑模型;过分依赖文档,可能导致最终的软件产品不能完全满足用户需求
瀑布模型适用的软件项目:规模小、需求明确、无须维护 2)快速原型模型的优点:
通过原型获得准确的用户需求;通过原型积累了开发经验,软件开发时期的各阶段基本上是线性顺序过程、提高了总开发效率。
快速原型模型适用的软件项目:规模小、需求不够明确、无须维护
3)增量模型的优点:
①便于并行完成开发工作;②逐步提交软件产品;
③软件的可维护性和可扩充性较好
增量模型适用的软件项目:强调开发进度、可维护性要求高、可扩充性要求高
螺旋模型是一个演化的软件过程模型,是在每个阶段之
前都增加了风险分析过程的快速原型模型。
在螺旋模型中,螺旋线的每个周期对应一个软件生命周期的开发阶段。每个阶段包括四个方面的活动:
①制定计划-确定目标,选定方案,设定约束条件 ②风险评估-评估所选方案,识别风险,考虑如何消除风险
③实施工程
④评估工程-评价开发工作,提出修正建议。
使用螺旋模型需要丰富的风险评估经验和专门知识; 螺旋模型适用于内部开发的大型软件项目
1、喷泉模型也称为面向对象的生命周期模型
2、软件开发过程阶段之间是迭代的、无间隙的
对象概念贯穿整个开发过程,只用对象类及其关系表达分析、设计、实现等活动
在分析、设计和编码等开发活动之间并不存在明显的边界,开发各阶段同步进行、可以提高开发效率
3、各开发阶段重叠、可能随时增加新的需求和各种信息,因此喷泉模型要求严格管理文档,审核难度加大,对项目管理要求较高。
RUP首先建立整个项目的不同时间阶段,体现开发过程的动态结构,包括:初始阶段、细化阶段、构造阶段、移交阶段。同时以内容来组织项目的活动,体现开发过程的静态结构。RUP融入了瀑布模型的线性结构和演化模型的增量及迭代思想
(3)有哪些主流的软件工程方法?
答:①传统方法学(生命周期方法、结构化方法):
●从时间角度对软件问题进行分解,将软件开发维护过程划分成若干阶段。②面向对象方法学:
面向对象方法学的出发点和基本原则:尽量模拟人类习惯的思维方式,使开发软件的方法与 过程尽可能接近人类认识世界解决问题的方法与过程,使问题空间与实现空间在结构上尽可能一致。
(4)如何消除软件危机(如何解决软件危机?)
一、概念:软件过程,软件生命周期,软件生命周期模型
6、具体说明:针对不同的软件项目,应该如何选择软件生 命周期模型
7、你如何理解RUP的特点
8、敏捷过程的主要特点和优势 1.什么是软件生命周期,分哪几个阶段、各阶段的任务是 什么? 2.常用的软件生命周期模型有哪些?总结它们的特点。3.谈谈下列三者之间的区别和联系: 软件工程、软件过程、软件生命周期模型
二、结构化分析-面向数据流的分析方法
1.什么是软件需求?需求分析过程(步骤)?
答:软件需求:软件系统必须符合的条件和具备的功能 需求分析的任务(过程):
1.准确了解用户情况和需要解决的问题:
◆与用户沟通的途径:访谈、参考类似系统、快速原型技术 2.对需求反复求精和细化,得出对目标系统完整、准确
和具体的要求
3.需求建模:对获得的需求做出抽象、即进行无歧义描述。
◆模型是为了理解事物而对事物做出的一种抽象,是对事物的一种
无歧义的书面描述。4.编制需求规格说明书 5.进行需求分析的评审
2.需求分析模型:
(1)功能模型(数据流图DFD)的含义、描述符号、画法步骤及规则(2)数据模型(E-R图)的作用
(3)行为模型(状态转换图)的作用(4)数据字典的作用
三、结构化设计
1. 软件设计的任务? 结构化设计与结构化分析的区别和联系? 2. 软件设计遵循的基本原理及规则:
(1)模块化的含义、如何划分模块(降低成本、提高独立性)?(2)抽象与逐步求精的含义、二者间关系如何?(3)信息隐藏的含义
(4)如何完善软件结构(深度、宽度、扇入、扇出、作用域、控制域)? 3. 模块独立性:
(1)模块独立性含义?
(2)模块独立性的度量标准:耦合的分类、含义及应用;内聚的分类、含义及应用。4. 概要设计(面向数据流的设计方法)(1)概要设计的任务?
(2)数据流图的类型及特征(变换型、事务型)(3)变换分析设计方法的应用(步骤)(4)事务分析设计方法的应用(步骤)4.详细设计(过程设计)
(1)详细设计的任务
(2)结构化程序(设计)的特征
(3)详细设计结果的描述工具:程序流程图、N-S图、PAD图、PDL、判定表
一、理解以下问题:
1、什么是软件需求?软件需求如何分类?
2、需求分析的作用和重要性
3、需求分析阶段需要完成的工作
4、结构化分析模型的内容
5、E-R图的内容和作用;数据流图的内容和作用;
状态转换图的内容和作用;数据字典的内容和作用
二、掌握以下建模技术和工具:
1、使用E-R图建立软件系统的数据模型
2、使用分层数据流图建立软件系统的功能模型
3、使用状态转换图建立软件系统的行为模型
4、使用数据字典定义结构化分析模型中的数据对象
1、某高校选课系统的功能包括:教师提交开课申请,系统根据开课计划审核教师的开课申请,审核通过后向教师下发开课通知。学生可以通过系统进行选课,首先提交选课单,系统进行审核通过后,告知学生选课结果。教师可以查询本人任教课程的选课名单。
请使用分层数据流图描述选课系统的功能。
2、某运动会管理系统的功能为:接受来自运动员的报名单,生成运动员号码单发送给运动员,产生参赛人员报表发送给裁判。接受来自裁判的比赛项目及成绩,产生比赛结果发送给发布台。
请用分层数据流图表示上述系统的功能。
四、软件测试
1.软件测试基础
(1)软件测试的含义和目的?
(2)测试用例的内容(输入数据、预期输出结果)?(3)主要测试方法(黑盒测试、白盒测试)的含义?
2.主要的白盒测试技术及应用-------逻辑覆盖法?基本路径测试方法? 3.主要的黑盒测试技术及应用-------等价类法? 边界值分析法? 4.软件测试的过程?
(1)单元测试(采用的测试方法;测试内容)
(2)集成测试(采用的测试方法;测试内容;模块组装策略)(3)确认测试(采用的测试方法;测试内容;α测试与β测试?)(4)辅助模块的含义及作用(驱动模块、存根模块?)
一、理解以下概念:
1、模块、模块化、抽象、信息隐藏;
2、模块独立性、耦合、内聚;
二、理解以下问题:
1、软件设计阶段的任务?
2、概要设计和详细设计的区别和联系?
3、结构化分析为结构化设计提供了哪些信息?
4、指导软件设计的基本原理和启发规则有哪些?理解这些原理的具体含义和作用。
二、理解以下问题:
5、软件设计中,如何合理划分模块才能保证软件的开发成本达到最小?
6、什么是模块独立性?如何度量和设计模块独立性?
7、软件设计中应该如何设计耦合性?如何设计内聚性?
8、表示软件结构的工具有哪些?
能够正确使用以下工具:H图、IPO图、软件结构图
9、理解变换型数据流图和事务型数据流图的特点。
10、使用面向数据流方法设计软件结构的过程是什么?、理解以下问题:
11、结合实例,掌握变换分析设计方法的步骤
12、结合实例,掌握事务分析设计方法的步骤
13、结构化程序的基本特征是什么?
14、表示结构化程序逻辑的工具有哪些?
能够正确使用以下工具 :程序流程图、N-S图、PAD图、PDL、判定表、判定树
1、什么是模块独立性?如何度量和设计模块独立性?
2、根据下面变换型的数据流图,设计出对应的初始软件结构图并简述相应的设计步骤。
五、面向对象方法学基础 1. 基本概念:
(1)对象的含义及特点?
(2)类的含义?类与对象的关系?(3)消息及消息传递的含义及作用?(4)继承的含义?多态性机制?
2.面向对象建模技术中的三种模型及各自作用? 3.对象模型及描述(类图):对象(类)的图形表示;关系(关联、聚集、继承)的图形表示; 4.事件追踪图、状态图、用例图的作用、理解以下概念:
软件测试、测试用例、黑盒测试、白盒测试、单元测试、集成测试、确认测试、系统测试、驱动模块、存根模块、等价类、边界值分析测试、调试
二、理解以下问题:
1、软件测试的含义及目标?
2、软件测试的过程(步骤)?
3、测试方案包含的内容?
4、白盒测试的含义及作用?黑盒测试的含义及作用?
5、各种逻辑覆盖测试的含义及使用?
二、理解以下问题:
6、基本路径测试法的使用?
7、等价划分法的含义、测试步骤?
8、软件测试各阶段与前期的哪些文档相关?
9、软件测试过程如何体现“测试应该从小规模开始,并逐步进行大规模测试”的测试准则?
10、如何进行单元测试、集成测试、确认测试?
各阶段重点测试的内容?
12、测试和调试的区别和联系? ◆第5章习题
1.什么是软件测试?
2.什么是测试用例?设计测试用例时,应该考虑哪些因素? 3.阐述单元测试、集成测试、有效性测试之间的区别。4.下列伪码程序的功能是“输入三角形的三个边长,判断
构成何种三角形”。
(1)使用条件覆盖法,为上述程序设计白盒测试用例。
(2)使用等价类划分法,为上述程序设计黑盒测试用例 START READ(A,B,C)IF(A≤0)OR(B≤0)OR(C≤0)THEN WRITE(“三角形边长不能为零”)
ELSE IF(A+B≤C)OR(A+C≤B)OR(B+C≤A)THEN WRITE(“不能构成三角形”)ELSE IF(A=B)AND(B=C)THEN WRITE(“等边三角形”)
ELSE IF(A=B)OR(B=C)OR(A=C)THEN WRITE(“等腰三角形”)
ELSE WRITE(“一般三角形”)STOP
六、面向对象分析与设计过程
1.面向对象分析(OOA)的任务?OOA的基本过程?
2.面向对象设计(OOD)的主要任务?OOD与OOA的区别和联系? 3.OOD模型的组成(四部分)及内容?
一、理解下列基本概念:
1、对象的含义及特点?
2、类的含义?类与对象的关系?
3、消息及消息传递的含义及作用?
4、继承的含义?多态性机制?
5、面向对象软件开发方法的要点
6、UML的含义及用途?
二、需要掌握的内容:
1、面向对象建模的主要工作?三种面向对象模型(对象模型、动态模型、功能模型)之间的关系?
2、对象模型的含义及其表示(类图);对象之间的关系?
类之间的关系?
3、动态模型的含义及其表示(事件追踪图、状态图)
4、功能模型的含义及其表示(数据流图、用例图)◆第6章习题
1.解释以下概念并通过一个例子加以说明:
对象;类;关联;继承;聚集
2.为什么面向对象方法要从多个侧面(对象模型、动态模型、功能
模型)建立系统模型。
3.建立符合下列陈述的对象模型
某图书馆有许多名职员为之工作,职员又进一步划分为馆长
和管理员两类;馆长可对图书借阅工作进行管理,每名管理员可
管理多本图书,每本图书可由多名管理员管理;图书拥有许多读
者,借书证号惟一地确定一个读者;读者又可分为教师和学生两
类,每名教师或学生可以借阅数本图书,每一种图书可供多名教
师或学生借阅。
七、软件维护
1. 软件维护的含义及类型? 2. 软件维护过程? 3. ◆需要掌握的内容:
4.1、面向对象分析(OOA)的任务?
5.面向对象分析(OOA)过程中包括哪些活动? 6.
2、三种面向对象模型各自表示的内容?
7.3、对象模型的表示工具?动态模型的表示工具?功能模型的表示工具? 8.
4、结合软件开发实例,理解三种面向对象模型之间的关系 9.
以及面向对象分析环节完成的主要工作。10.
11.--------------- 课堂练习题目
一、填空题
1.软件主要包括程序、和 三部分内容。
2.软件可行性研究的任务是从技术、和 三个方面分析软件项目的可行性。3.软件测试的目的是 ;通常把软件测试方法分为 和 两大类。4.结构化分析方法中,功能模型用 描述;数据模型用 描述。
5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的__。
二、选择题
1.产生软件危机的主要原因有(C)。
①软件本身的特点 ②用户使用不当 ③硬件可靠性差 ④程序员水平⑤缺乏好的开发方法和管理手段
A.③④ B.①②④ C.①⑤ D.①③
2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。A.用户能接受的开发费用 B.用户能接受的开发周期 C.用户要让软件做什么 D.软件应具有何种结构 3.数据流图中的每个处理至少有(B)。
A.一个输入流或一个输出流 B.一个输入流和一个输出流 C.一个输入流 D.一个输出流
4.在面向数据流的设计方法中,一般把数据流图划分为(C)两种类型。
A.数据流和事务流 B.变换流和数据流 C.变换流和事务流 D.控制流和事务流 5.数据流图所描述的是实际系统的(A)。
A.逻辑模型 B.物理模型 C.程序流程 D.数据结构 6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。
A.变换模块就是主模块 B.变换模块的功能是将逻辑输入变换为逻辑输出
C.变换模块没有下层模块 D.变换模块只能有一个输入量、一个输出量 7.为了提高软件测试的效率,应该(C)。
A、在完成编码以后制定软件的测试计划 B、取一切可能的数据作为测试数据 C、选择发现错误可能性大的数据作为测试用例 D、随机地选取测试数据
8.有一个计算程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(C)A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法
9.关于单元测试,正确的是(C)。
A.单元测试的依据是概要设计说明书 B.单元测试中不需要使用白盒测试法
C.单元测试包括模块接口测试 D.单元测试时不需要辅助模块 10.有关集成测试的叙述中,(A)是正确的。
A.测试底层模块时不需要桩模块 B.自底向上测试方法有利于提前预计测试结果 C.驱动模块的作用是模拟被调模块 D.自顶向下测试方法易于设计测试用例 11.(D)表示了类之间的“一般__特殊”关系。
A.聚集
B.关联
C.消息传递
D.继承
12.OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。这种协同在模型中是以表明对象通信方式的一组(A)连接来实现的。
A.消息 B.记录 C.数据 D.属性
13.面向对象开发方法定义了三种模型来描述系统,(B)可以用数据流图来表示
A.对象模型
B.功能模型
C.动态模型
D.数据模型 14.面向对象分析(OOA)的主要活动不包括(D)。
A.确定对象 B.确定属性 C.确定关联 D.确定方式 15.软件开发中,阶段评审是非常重要的环节,其主要目的和作用是(B)。A.减少测试工作量 B.避免后期付出高代价 C.保证软件质量 D.缩短软件开发周期
三、概念解释
1.软件危机 2.软件生命周期 3.需求分析 4.概要设计 5.内聚
6、多态性
7、软件测试
8、驱动模块
四、简答题
1.什么是软件危机?如何消除软件危机?
2.作为某软件公司的工程师,你将采用结构化方法开发一套适用于住宅小区的智能家庭保安系统。简述开发步骤和每个步骤完成的主要任务。3.什么是需求分析?简述需求分析的基本任务。4.什么是模块独立性?如何度量和设计模块独立性? 5.简述变换分析设计方法的步骤。6.简述对象和类的概念,二者关系如何?
7.什么是等价类划分测试法?该方法设计测试用例的主要步骤是什么? 8.软件测试要经过哪几个阶段?各阶段完成哪些主要工作?
五、应用题
1..某商品进销存管理系统的部分功能如下:
(1)仓库管理员负责输入商品的入/出库清单、维护商品库存信息;定时统计、打印商品库存的月报表给商品销售经理。
(2)销售员负责输入商品销售、退换信息,并打印购货清单给客户; 商品销售的相关信息要存
入相应文件。
请画出描述上述功能的分层数据流图。(画出顶层、1层和2层数据流图)2.设有下列语句序列: read(x,y);if(x>1)and(y<=5)then z=x*y else z=x+y;if z=12 then z=2*z;write(z).分别使用语句覆盖、判定覆盖、条件覆盖方法设计测试用例
3、使用PAD图描述下列算法逻辑:
4.建立描述下列信息的对象模型:
一所高校包括若干个系和若干名学生;每个系由若干名教师组成;学生分为研究生和本科生两类;每个系开设若干门课程、任何一门课程只能由一个系开出;每个教师可以讲授的课程不超过三门、每门课程允许一到两个教师讲授。
————————————————————————————————————
第三篇:软件工程复习提纲
《软件工程》课程要点
每章教学课件中的“本章小结”列出了需要掌握的内容 教学过程中的例题和习题也是课程重点
一、软件工程与软件过程概述
1.概念:
(1)软件的概念(组成成分、作用);
(2)软件危机的含义、表现、产生原因(客观、主观)(3)软件工程学科包括的内容、解决的主要问题
(4)软件生命周期的含义、组成阶段及各阶段主要任务 2.需理解的问题:
(1)软件与程序的区别和联系?
(2)开发一个软件项目包括哪些基本的步骤?每一步骤完成哪些工作?
(3)主要的软件过程模型(生命周期模型)有哪些?各自有什么特点?
二、结构化分析-面向数据流的分析方法
1.什么是软件需求?需求分析过程(步骤)? 2.需求分析模型:
(1)功能模型(数据流图DFD)的含义、描述符号、画法步骤及规则(2)数据模型(E-R图)的作用
(3)行为模型(状态转换图)的作用(4)数据字典的作用
三、结构化设计
1. 软件设计的任务? 结构化设计与结构化分析的区别和联系? 2. 软件设计遵循的基本原理及规则:
(1)模块化的含义、如何划分模块(降低成本、提高独立性)?(2)抽象与逐步求精的含义、二者间关系如何?(3)信息隐藏的含义
(4)如何完善软件结构(深度、宽度、扇入、扇出、作用域、控制域)? 3. 模块独立性:
(1)模块独立性含义?
(2)模块独立性的度量标准:耦合的分类、含义及应用;内聚的分类、含义及应用。4. 概要设计(面向数据流的设计方法)(1)概要设计的任务?
(2)数据流图的类型及特征(变换型、事务型)(3)变换分析设计方法的应用(步骤)(4)事务分析设计方法的应用(步骤)4.详细设计(过程设计)
(1)详细设计的任务
(2)结构化程序(设计)的特征
(3)详细设计结果的描述工具:程序流程图、N-S图、PAD图、PDL、判定表
四、软件测试
1.软件测试基础
(1)软件测试的含义和目的?(2)测试用例的内容(输入数据、预期输出结果)?(3)主要测试方法(黑盒测试、白盒测试)的含义?
2.主要的白盒测试技术及应用-------逻辑覆盖法?基本路径测试方法? 3.主要的黑盒测试技术及应用-------等价类法? 边界值分析法? 4.软件测试的过程?
(1)单元测试(采用的测试方法;测试内容)
(2)集成测试(采用的测试方法;测试内容;模块组装策略)(3)确认测试(采用的测试方法;测试内容;α测试与β测试?)(4)辅助模块的含义及作用(驱动模块、存根模块?)
五、面向对象方法学基础 1. 基本概念:
(1)对象的含义及特点?
(2)类的含义?类与对象的关系?(3)消息及消息传递的含义及作用?(4)继承的含义?多态性机制?
2.面向对象建模技术中的三种模型及各自作用? 3.对象模型及描述(类图):对象(类)的图形表示;关系(关联、聚集、继承)的图形表示; 4.事件追踪图、状态图、用例图的作用
六、面向对象分析与设计过程
1.面向对象分析(OOA)的任务?OOA的基本过程?
2.面向对象设计(OOD)的主要任务?OOD与OOA的区别和联系? 3.OOD模型的组成(四部分)及内容?
七、软件维护
1. 软件维护的含义及类型? 2. 软件维护过程?
--------------- 课堂练习题目
一、填空题
1.软件主要包括程序、和 三部分内容。
2.软件可行性研究的任务是从技术、和 三个方面分析软件项目的可行性。3.软件测试的目的是 ;通常把软件测试方法分为 和 两大类。4.结构化分析方法中,功能模型用 描述;数据模型用 描述。
5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的__。
二、选择题
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.变换模块就是主模块 B.变换模块的功能是将逻辑输入变换为逻辑输出
C.变换模块没有下层模块 D.变换模块只能有一个输入量、一个输出量 7.为了提高软件测试的效率,应该()。
A、在完成编码以后制定软件的测试计划 B、取一切可能的数据作为测试数据 C、选择发现错误可能性大的数据作为测试用例 D、随机地选取测试数据
8.有一个计算程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法
9.关于单元测试,正确的是()。
A.单元测试的依据是概要设计说明书 B.单元测试中不需要使用白盒测试法
C.单元测试包括模块接口测试 D.单元测试时不需要辅助模块 10.有关集成测试的叙述中,()是正确的。
A.测试底层模块时不需要桩模块 B.自底向上测试方法有利于提前预计测试结果 C.驱动模块的作用是模拟被调模块 D.自顶向下测试方法易于设计测试用例 11.()表示了类之间的“一般__特殊”关系。
A.聚集
B.关联
C.消息传递
D.继承
12.OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。这种协同在模型中是以表明对象通信方式的一组()连接来实现的。
A.消息 B.记录 C.数据 D.属性
13.面向对象开发方法定义了三种模型来描述系统,()可以用数据流图来表示
A.对象模型
B.功能模型
C.动态模型
D.数据模型 14.面向对象分析(OOA)的主要活动不包括()。
A.确定对象 B.确定属性 C.确定关联 D.确定方式 15.软件开发中,阶段评审是非常重要的环节,其主要目的和作用是()。A.减少测试工作量 B.避免后期付出高代价 C.保证软件质量 D.缩短软件开发周期
三、概念解释
1.软件危机 2.软件生命周期 3.需求分析 4.概要设计 5.内聚
6、多态性
7、软件测试
8、驱动模块
四、简答题
1.什么是软件危机?如何消除软件危机?
2.作为某软件公司的工程师,你将采用结构化方法开发一套适用于住宅小区的智能家庭保安系统。简述开发步骤和每个步骤完成的主要任务。3.什么是需求分析?简述需求分析的基本任务。4.什么是模块独立性?如何度量和设计模块独立性? 5.简述变换分析设计方法的步骤。6.简述对象和类的概念,二者关系如何?
7.什么是等价类划分测试法?该方法设计测试用例的主要步骤是什么? 8.软件测试要经过哪几个阶段?各阶段完成哪些主要工作?
五、应用题
1..某商品进销存管理系统的部分功能如下:
(1)仓库管理员负责输入商品的入/出库清单、维护商品库存信息;定时统计、打印商品库存的月报表给商品销售经理。
(2)销售员负责输入商品销售、退换信息,并打印购货清单给客户; 商品销售的相关信息要存
入相应文件。
请画出描述上述功能的分层数据流图。(画出顶层、1层和2层数据流图)2.设有下列语句序列: read(x,y);if(x>1)and(y<=5)then z=x*y else z=x+y;if z=12 then z=2*z;write(z).分别使用语句覆盖、判定覆盖、条件覆盖方法设计测试用例
3、使用PAD图描述下列算法逻辑:
4.建立描述下列信息的对象模型:
一所高校包括若干个系和若干名学生;每个系由若干名教师组成;学生分为研究生和本科生两类;每个系开设若干门课程、任何一门课程只能由一个系开出;每个教师可以讲授的课程不超过三门、每门课程允许一到两个教师讲授。
————————————————————————————————————
第四篇:软件工程总结
软件工程课程总结
摘要:
计算机是20世纪最重大的科学技巧成就之一,使当代社会的经济、军事、科研、教育、服务等方面在概念和技巧上发生了性的变化,对人类社会的进步已经并还将产生极为深刻的影响。目前,计算机是世界各发达国度剧烈竞争的科学技巧领域之一。
电子计算机早期功效主要是计算,后来已远远超越单纯计算的功效,还可模拟、思维、进行自适应反馈处理等等,把它叫做“电脑”更为合实际。由于电子计算机功效的飞跃性发展,应用于生产和生活的各个方面,直接和显著地提高了生产、工作和生活的效率、节奏和水平,在软科学研究和应用中它也起着关键作用,因此它已被公认是现代技巧的神经中枢,是未来信息社会的心脏和录魂。计算机学科分为四个领域,分别是计算机科学,计算机工程,软件工程和信息系统。
正文:
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。包括项目管理,分析,设计,程序的编写,测试和质量控制。它涉及到程序设计语言、数据库、软件开发工具、系统开发平台、标准、设计模式等方面。
学了《软件工程》这门课程和一些有关资料后,感觉一些东西都曾经接触过,但在实际工作中有些理论要完全遵循可能还有些障碍,软件工程只是提供了理论上的一些结论,但对项目的具体可操作性的规范的制定方面却做的很少,《软件工程》发展了几十年,光是开发模型就达到了10多种,对不同的项目采用合适的开发模式,有些项目在不同的开发阶段可能还要转换开发模式,把它们灵活的应用到实际中还是很困难的。
软件技术是信息技术产业的核心之一,软件技术的发展是与信息技术产业的发展互相促进的。当今世界,信息技术正处于新一轮重大技术突破的前夜。预计今后 20~30 年是信息科学技术的变革突破期,可能导致 21 世纪下半叶一场新的信息技术革命。近年来,从 IT 界到一些国家首脑,都高度关注以物联网为标志的新一轮信息技术的发展态势,认为这是继 20 世纪 80 年代 PC 机、90 年代互联网、移动通信网之后,将引发 IT 业突破性发展的第三次 IT 产业化浪潮。每一次重大的技术变革都会引起企业间、产业间甚至国家间竞争格局的重大变化,也促进了软件技术与软件产业的重大变革与发展。
近年来,信息技术、软件技术、软件系统与软件产业的发展备受关注,已有不少论述、分析与判断。近10 年内网络技术经历宽带化、移动化和三网融合将走向基于 Ipv6 的下一代互联网,2010 年 1 月,国家 863 计划信息技术领域办公室和国家 863 计划信息技术领域专家组,在上海举办“信息-物理融合系统 CPS发展战略论坛”,提出“信息-物理融合系统 CPS 是一个综合计算、网络和物理环境的多维复杂系统,是信息和物理世界的深度的融合交互,可实现大型工程系统的实时感知、动态控制和信息服务,使系统更加可靠、高效与实时协同,使得人类物理现实和虚拟逻辑逐步融合,具有重要而广泛的应用前景。业界关于软件工程的代表性观点创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件。应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。与开发、管理及更新软件产品有关的理论、方法及工具。一种知识或学科,目标是生产品质良好、准时交货、符合预算,满足用户所需的软件。实际应用科学知识在设计、建构电脑程序,与相伴而来所产生的文件,以及后续的操作和维护上。
6使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。
7建造由工程师团队所开发之大型软件系统有关的知识学科。对软件分析、设计、实施及维护的一种系统化方法。系统化地应用工具和技术于开发以计算机为主的应用。
10软件工程是关于设计和开发优质软件。
《软件工程》是一门综合性和实践性很强的核心课程,它属于是一门交叉学科,包含有:软件开发技术(软件开发方法学、软件开发过程、软件工具和软件工程环境)、软件工程管理(软件管理学、软件经济学、软件心理学)。主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件测试、项目计划与管理。
本课程是面向准备从事软件开发的毕业生而开设的一门专业课程。针对计算机教学中软件工程这一薄弱环结,结合目前软件开发商对人才的要求,对计算机专业的毕业生进行软件工程强化培训,目的是使毕业生能够了解和掌握软件工程的基本理论和方法,并在实际软件开发中运用这些方法。
我理解,软件工程是按照工程学的管理方式,有组织、有计划的,在一定的质量基础、时间限度和成本范围内,实现功能明确的软件系统。而且,软件工程在企业范围内运行,一定需要企业资源的支持,要与企业的经营、决策、管理体系联系在一起,才能够被踏踏实实的落实下来。
软件工程项目是一个需要一步一步的计算,分析思考而来的,需要不断思考,研究不断进步,软件业作为一个服务业,要想得到发展,首先必须形成一个对软件服务有迫切需要的市场。其次,这个市场中的消费者必须具备足够的购买力。软件的消费群体简单一点,可以分为个体消费和企业消费。中国的企业群体,数量庞大,但是质量不高。上规模的企业极少。国内目前能够形成比较大规模的独立市场的,肯定是小规模的软件系统。
随着信息化时代的到来其地位越来越受到人们的重视,软件工程从一个学科,或是某一个研究方向来说,人员仅仅是过程,方法的执行者,所以人员素质往往被忽略,软件工程是一门实践性很强的学科,所以在实际的软件研究过程中,人员的素质占有很重要的地位。要有出色的软件问世,研发人员的素质至关重要!
作为软件工程的学习者应该不断创新,不断尝试、实践,不断研究和学习,中国的软件工程技术依旧滞后于国外一些软件工程技术,作为新一代的学习者应该担当起振兴起中国软件事业,使中国科技得到高速发展!
现在已经是信息化时代,信息化潮流不断涌现,想要掌握主动权就是掌握信息化的发展方向,这就需要我们不断学习,时间,研究,学习国外的先进技术,转变自己的技术,然后融合,创新。
软件技术不是一成不变的,是随着社会的进步的不断进步,不需要不断的创新,不断的改善的,需要我们不断的学习,不断的研究,不断进步。
第五篇:软件工程总结
1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b
1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b
Chapter 10 Self-Check Quiz
1.In the most general sense a component is a modular building block for computer software.a.True b.False
Answer: a(Section 10.1)
2.In the context of object-oriented software engineering a component contains
a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes
Answer: d(Section 10.1.1)
3.In traditional software engineering modules must serve in which of the following roles?
a.Control component b.Infrastructure component c.Problem domain component d.All of the above
Answer: d(Section 10.1.2)
4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False
Answer: b(Section 10.1.3)
5.Which of the following is not one of the four principles used to guide component-level design?
a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle
Answer: d(Section 10.2.1)
6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False
Answer: a(Section 10.2.2)
7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False
Answer: a(Section 10.2.3)
8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False
Answer: b(Section 10.2.4)
9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False
Answer: b(Section 10.4.1)
10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False
Answer: a(Section 10.4.2)
11.Which of these is a graphical notation for depicting procedural detail?
a.box diagram b.decision table c.ER diagram d.flowchart
Answer: d(Section 10.5.1)
12.A decision table should be used
a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component
Answer: d(Section 10.5.2)
13.A program design language(PDL)is often a
a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture
Answer: a(Section 10.5.3)
14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False
Answer: a(Section 10.6)
15.Which of the following is not one of the major activities of domain engineering?
a.analysis b.construction c.dissemination d.validation
Answer: d(Section 10.6.1)
16.Which of the following factors would not be considered during component qualification?
a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required
Answer: d(Section 10.6.2)
17.Which is the following is a technique used for component wrapping?
a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping
Answer: b(Section 10.6.2)
18.Which of the following is not one of the issues that form a basis for design for reuse?
a.object-oriented programming b.program templates c.standard data d.standard interface protocols
Answer: a(Section 10.6.3)
19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above
Answer: c(Section 10.6.4)
1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)
2.Which of the following is not a characteristic common to all design methods?
a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics
Answer: a(Section 8.2.2)
3.Which of the following can be used to represent the architectural design of a piece of software?
a.Dynamic models b.Functional models c.Structural models d.All of the above
Answer: d(Section 8.3.2)
4.Design patterns are not applicable to the design of object-oriented software?
a.True b.False
Answer: b(Section 8.3.3)
5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False
Answer: b(Section 8.3.5)
6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality
a.True b.False
Answer: a(Section 8.3.6)
7.Cohesion is a qualitative indication of the degree to which a module
a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)
8.Coupling is a qualitative indication of the degree to which a module
a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)
9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False
Answer: b(Section 8.3.8)
10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False
Answer: a(Section 8.3.10)
11.Which of the following is not one of the five design class types
a.Business domain classes b.Entity classes c.Process classes d.User interface classes
Answer: b(Section 8.3.13)
12.Which design model elements are used to depict a model of information represented from the user’s view?
a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements
Answer: c(Section 8.4.1)
13.Which design is equivalent to the floor plan of a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: a(Section 8.4.2)
14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: d(Section 8.4.3)
15.Which design model is equivalent to a set of detailed drawings for each room in a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: b(Section 8.4.4)
16.The deployment design elements specify the build order for the software components.a.True b.False
Answer: b(Section 8.4.5)