第二章软件工程
- 格式:doc
- 大小:311.50 KB
- 文档页数:13
《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。
2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。
3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。
4. 教学资源教材、课件、案例分析。
5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。
二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。
2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。
三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。
2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。
四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。
2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。
3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。
4. 教学资源教材、课件、编程环境和测试工具。
5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。
五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。
2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。
软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。
通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。
第二章:软件过程目标:软件工程和软件过程模型的概念;了解3个一般的软件过程模型及何时使用它们;了解软件需求工程,软件开发,测试和进化中所涉及的基本过程活动;理解为什么软件过程要有效地组织以应对软件需求和设计上的变更;了解Rational统一过程是如何集成好的软件过程实践来产生一个可适应的软件过程。
所有的软件过程都必须具有4种对软件工程来说是基本的活动。
它们是:1.软件描述:必须定义软件的功能以及软件操作上的约束。
2.软件设计和实现:必须生产符合描述的软件。
3.软件有效性验证:软件必须得到有效性验证,即确保软件是客户所想要的。
4.软件进化:软件必须进化以满足不断变化的客户需要。
2.1软件过程模型一软件过程模型一般有1.瀑布模型:该模型将基本的过程活动,描述,开发,有效性验证和进化,看成是一些界限分明的独立的过程阶段,例如,需求描述阶段,软件设计阶段,实现阶段,测试阶段,等等。
2.增量式开发:该方法使得描述活动,开发活动和有效性验证活动交织在一起。
系统的开发是建立一系列的版本(增量),每个版本添加部分功能到先前的版本中。
3.面向复用的软件工程:该方法使得描述活动,开发活动和有效性验证活动交织在一起。
系统开发过程着重于集成这些组件到新系统中,而非从头开发。
2.1.1瀑布模型一瀑布模型中的主要阶段直接映射基本的开发活动:1.需求分析和定义2.系统和软件设计3.实现和单元测试4.集成和系统测试5.运行和维护二适合采用瀑布模型的时候瀑布模型是与其他工程过程模型相一致的,在它的每个阶段都要生成文档。
这使得过程是可见的,项目经理能够根据项目计划监控项目的过程。
它的主要问题在于它将项目生硬地分解成这些清晰的阶段。
关于需求的责任和义务一定要在过程的早期阶段清晰界定,而这又意味它对用户需求变更的响应较困难。
所以只有在对需求了解的好,而且在系统开发过程中不太可能发生重大改变的时候,适合采用瀑布模型。
瀑布模型的一个重要变形是形式化系统开发。
软件工程第2章-系统工程软件工程第2章-系统工程2.1 系统工程概述系统工程是一种系统性和综合性的工程方法,旨在设计、开发和维护复杂的软件系统。
系统工程的主要目标是满足用户需求,并确保系统的有效性、可靠性和可维护性。
2.1.1 系统工程定义系统工程是一个跨学科的领域,涉及到多个专业领域的知识和技术。
它集成了工程学、计算机科学、信息技术等多个学科的理论与实践,以解决大规模软件系统开发和维护过程中的各种问题。
2.1.2 系统工程过程系统工程的过程涵盖了软件系统的整个生命周期,包括需求分析、设计、开发、测试、部署和维护等阶段。
每个阶段都有特定的任务和活动,并且需要进行严格的管理和控制。
2.1.2.1 需求分析阶段需求分析阶段是系统工程的起点,通过与用户沟通和交流,收集和整理用户需求,并将其转化为系统的功能和性能要求。
2.1.2.2 设计阶段在设计阶段,系统工程师会根据需求分析阶段的成果,设计整个系统的结构和组件之间的关系。
这包括系统架构设计、模块设计和接口设计等。
2.1.2.3 开发阶段开发阶段是系统工程中最为关键的阶段,主要是根据设计阶段的成果,进行软件编码、集成和测试。
开发人员需要按照设计规范和编码标准进行开发工作,并保证代码的质量和可维护性。
2.1.2.4 测试阶段测试阶段是为了验证系统是否满足用户需求,并发现和修复潜在的缺陷和问题。
测试人员会执行各种测试活动,包括单元测试、集成测试和系统测试等。
2.1.2.5 部署阶段在部署阶段,系统工程师会将已经通过测试的系统部署到目标环境中,并进行安装、配置和调优等工作,确保系统能够正常运行。
2.1.2.6 维护阶段维护阶段是系统工程的最后一个阶段,主要是为了确保系统能够持续地运行和满足用户的需求。
维护人员会定期检查系统的性能和可靠性,并进行必要的修复和优化等工作。
2.2 系统工程的关键技术2.2.1 需求工程需求工程是系统工程中非常重要的一环,它主要涉及到需求获取、需求分析、需求验证和需求管理等方面的内容。
2、假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。
解答:采用瀑布模型。
原因:软件需求明确,不必使用快速原型模型获取用户的真正需求。
软件的功能简单,不必使用增量模型和螺旋模型。
3、假设你要为一家生产和销售长筒靴的公司开发一个软件,该产品将监控该公司的存货:跟踪从购买橡胶开始,到靴子生产,发货到各个连锁店,直至卖给顾客的全过程。
你在为这个项目选择生命周期模型时使用什么准则?解答:采用螺旋模型。
原因:螺旋模型可以降低产品不能满足用户需求的风险,也可以逐步取得明确的需求,逐步的完善。
4、列出在开发上一题所述软件产品的过程中可能遇到的风险。
你打算怎样排除这些风险?解答:1)需求不明确,在明确需求的过程中延误交工期限。
排除:利用快速原型法,选好快速开发工具,对用户的需求变更做出快速反应,及早确定最后需求。
2)需求越提越多,无法按照计划及时定下需求。
排除:帮助用户对需求进行分析,确定下来近期完成的主要功能。
其它附加功能和次要功能可在升级版本中体现。
确保项目的顺利开展。
3)开发人员不熟悉业务。
排除:在和用户确定需求的过程中,及时向用户请教业务相关的知识,同时也可以请用户针对与业务流程或专业术语进行专门的培训。
5、你为靴类连锁店开发的存货监控软件(见第三题)很受用户欢迎,你所在的软件开发公司决定把它重新写成一个通用软件包,以卖给各种生产并通过自己的连锁店销售产品公司。
因此,这个新产品必须是可移植的,并且应该能够很容易地适应新的运行环境(硬件或操作系统),满足不同用户的需求。
你在选择生命周期模型时使用的准则与在第三题中使用的准则有哪些不同?解答:应采用喷泉模型。
原因:喷泉模型是典型的面向对象生命周期模型。
具有较好的可移植性,容易适应各种运行环境,满足不同用户的需求。
第2章软件可行性研究例题分析与解答一、填空题1.可行性研究实质上是进行一次简化、压缩了的___需求分析和设计_____。
2.可行性研究的三个方面是技术可行性、社会可行性和____经济可行性_____。
3.可行性研究的第一个具体步骤是____确定项目的规模和目标______。
4.若年利率为i,不计复利,P元在n年后的价值F是______p*(1+n*i)___。
5.可行性研究中描述系统高层物理模型的工具是__系统流程图_____。
二、选择题1.可行性研究的目的是决定( B )。
A.开发项目B.项目值得开发否C.规划项目D.维护项目2.技术可行性要研究的问题之一是( D )。
A.存在侵权否B.成本效益问题C.运行方式可行否D.技术风险问题3.纯收入是累计效益现在值与投资之( B )。
A.和B.差C.积D.商4.项目开发计划这类文档是一种( B )。
A.技术性文档B.管理性文档C.需求分析文档D.设计文档答案一、填空题1.[答案]需求分析和设计2.[答案]经济可行性3.[答案]确定项目的规模和目标4.[答案]p×(1+n×i)5.[答案]系统流程图二、选择题1.B2.D3.B4.B第二章仿真试题1、在软件的可行性研究中,可以从不同的角度对软件的可行性进行研究,其中是从软件的功能可行性角度考虑的是( B )A、经济可行性B、技术可行性C、操作可行性D、法律可行性2、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D )A、工作阶段间的等待时间B、生产原型的复杂性C、参与人员所需的工作站数D、参与人员之间的通信困难3、制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是( D )A、组织与管理B、分析与估算C、设计与测试D、规划与调度答案1.B2.D3.D第二章1.可行性研究的任务是什么?可行研究的任务:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。
第二章软件工程复习题1.可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否_____,____。
2.成本—效益分析首先是估算将要开发的系统的______,然后与可能的效益进行_____。
3.软件工程有两种效益,它们是______和_______。
4.成本-效益分析的目的是从______评价开发一个新的软件项目是否可行。
5._______就是使累计的经济效益等于最初的投资费用所需的时间。
项目的______是指在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
6.可行性研究的第一个具体步骤是_______。
7.可行性研究实质上进行一次简化、压缩了的_______。
8.研究开发资源的有效性是进行( )可行性研究的一方面。
A.技术B.经济C.社会D.操作9.在软件的可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是( )。
A.经济可行性B.技术可行性C.操作可行性D.法律可行性10.技术可行性要解决( )。
A.存在侵权否B.成本—效益问题C.运行方式可行D.技术风险分析11.研究软硬件资源的有效性是进行( )研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.操作可行性12.在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( )。
A.工作阶段间的等待时间B.生产原型的复杂性C.参与人员所需的工作站数D.参与人员之间的通信困难。
13.制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是( )。
A. 组织与管理B.分析与估算C.设计与测试D.规划与调度14.对每个合理的方案分析员都应该准备( )资料。
A.系统流程B.组成系统的物理元素清单,成本-效益分析C.实现这个系统的进度计划D.以上全部正确15.原型化方法是一类动态定义需求的方法,下列叙述中,( )不具有原型化方法的特征。
A.提供严格定义的文档B.加强用户参与和决策C.简化项目管理D.加快需求的确定。
以下不属于UML模型图组成部分的是()。
5分
A.
事物
B.
关系
C.
图
D.
结构
正确答案:D
我的答案:B
得分:0
2.
在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系()5分
A.
包含
B.
泛化
C.
扩展
D.
关联
正确答案:D
我的答案:D
得分:5
3.
下列关于UML包的描述,错误的是()
5分
A.
大多数面向对象的语言都提供了类似UML包的机制,用于组织及避免类间的名称冲突。
B.
当一个包导入另外一个包时,该包里的元素能够使用被导入包里的元素,而不必在使用时通过包名指定其中的元素。
C.
当使用某个包中的类时如果未将包导入,则需要使用包名加类名的形式引用指定的类。
D.
要在UML中显示导入关系,需要画一条从包连接到目标包的实线,再加上字符import
正确答案:D
我的答案:D
得分:5
4.
下列表述错误的是()
5分
A.
交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。
B.
活动图用来描述事物或对象的活动变化流程,是一种表述业务过程、工作流的技术。
C.
复合活动是可以再分解的复杂活动。
D.
活动流描述活动之间的有向关系,反映一个活动向另外一个活动之间的转移。
用带箭头的虚线表示。
正确答案:D
我的答案:D
得分:5
5.
关于用例与类的对比中()是错误的
5分
A.
都属于模型结构元素
B.
都存在继承关系
C.
类描述系统的部分静态视图,用例描述系统动态的行为视图
D.
类描述的是系统的内部构成,用例也可以描述系统的内部构成
正确答案:D
我的答案:D
得分:5
6.
UML图中,对新开发系统的需求进行建模,规划开发什么功能或测试用例,采用(1)最适合。
而展示交付系统的软件组件和硬件之间的关系的图是(2)。
5分
A.
类图部署图
B.
对象图组件图
C.
用例图部署图
D.
交互图组件图
正确答案:C
我的答案:C
得分:5
7.
以下不属于UML模型图组成部分的是()
5分
A.
事物
B.
关系
C.
图
D.
结构
正确答案:D
我的答案:B
得分:0
8.
在UML模型图的事物中,结构事物主要包括7种,以下不是结构事物的是()
A.
类、接口
B.
协作、用例
C.
对象、图例
D.
活动类、组件和节点
正确答案:C
我的答案:C
得分:5
9.
UML图中,一张交互图显示一个交互。
由一组对象及其之间的关系组成,包含它们之间可能传递的消息。
()不是交互图。
5分
A.
序列图
B.
对象图
C.
D.
时序图
正确答案:B
我的答案:B
得分:5
10.
关于参与者,错误的说法是()
5分
A.
参与者是与所建立的系统交互的人或物。
;
B.
参与者可以是实际的人,也可以其他系统。
C.
参与者是系统的一部分,是用例图的重要组成部分。
D.
参与者之间可以存在泛化关系。
正确答案:C
我的答案:D
得分:0
11.
用例(Use-case)用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系
5分
A.
包含(include)
B.
扩展(extend)
C.
分类(classification)
D.
聚集(aggregation)
正确答案:A
我的答案:A
得分:5
12.
在UML用例图中,参与者表示()。
5分
A.
人、硬件或其他系统可以扮演的角色;
B.
可以完成多种动作的相同用户
C.
不管角色的实际物理用户
D.
带接口的物理系统或者硬件设计
正确答案:A
我的答案:C
得分:0
13.
以下关于UML的关系和图表述错误的是()。
5分
A.
实现关系将一种建模元素(例如类)与另一种建模元素(例如接口)链接起来,一个模型元素只具有行为的定义,而行为的具体实现规则是由另一个建模元素来给出的。
B.
图是用来表达一个视图的内容的,通常,一个视图由多张图组成。
C.
实现关系用虚线加上空心的箭头来表示实现关系
D.
依赖关系是两个事物之间的语义关系。
对于两个事物A、B,如果事物A发生变化,可能会引起对另一个事物B的变化,则称A依赖于B。
正确答案:D
我的答案:A
得分:0
2.多选题(共1题)
1.
在UML中,用例图主要包括以下()基本元素(多选题)
5分
A.
参与者(Actor)
B.
用例(Use Case)
C.
系统
D.
关系
正确答案:A,B,C,D
我的答案:A
得分:0
3.判断题(共6题)
收集用例的方法可以采用交谈。
5分
正确
错误
正确答案:yes
我的答案:yes
得分:5
2.
用例是从用户的观点对系统行为的一个描述。
5分
正确
错误
正确答案:yes
我的答案:yes
得分:5
3.
组织事物是UML模型中负责分组的部分,可以把它看作一个个盒子,每个盒子里面的对象关系相对复杂,而盒子与盒子之间的关系相对简单()。
正确
错误
正确答案:yes
我的答案:yes
得分:5
4.
用例图只能使它的读者快速、大概地了解整个系统的需求,并不能准确、详尽地表达用户场景。
5分
正确
错误
正确答案:yes
我的答案:yes
得分:5
5.
在UML图中,交互的消息通常画成带箭头的直线。
5分
正确
错误
正确答案:yes
我的答案:yes
得分:5
6.
在UML中用带箭头的实线来表示关联的方向。
如果模型中关联不指明方向,则默认关联是双向的。
5分
正确
错误
正确答案:yes
我的答案:yes
得分:5。