软件工程与实践11-2
软件工程第十一章面向对象设计
![软件工程第十一章面向对象设计](https://img.taocdn.com/s3/m/8c33d6dd6aec0975f46527d3240c844769eaa0eb.png)
THANKS
感谢观看
01
抽象类是一种不能被实例化的 类,它只能被其他类继承。
02
抽象类可以包含抽象方法和具 体方法。抽象方法是没有具体 实现的方法,需要在继承抽象 类的子类中实现。
03
通过继承抽象类,子类可以继 承抽象类的属性和方法,并且 可以重写或实现抽象类中的方 法。
接口与抽象类的选择
在设计软件时,选择使用接口还是抽象类取决于具体需求和设计目标。
关系
关系描述了对象之间的交互和联系。 常见的关系包括关联、聚合和继承。
继承与多态的设计
继承
继承是一种实现代码重用的方式,子类可以继承父类的属性和方法,并可以扩展或覆盖它们。通过继承,可以建 立类之间的层次结构,使得代码更加清晰和易于维护。
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。多态可以提高代码的灵活性和可扩展性, 使得程序更加易于维护和修改。
02
类与对象的设计
类的定义与属性
类的定义
类是对象的抽象,它描述了一组具有相同属性和行为的对象。类定义了对象的结构、行为和关系。
属性
属性是类中用于描述对象状态的变量。每个对象都有其自己的属性值,这些属性值决定了对象的状态 。
对象的行为与关系
行为
行为是类中定义的方法,用于描述对 象可以执行的操作。方法定义了对象 的行为和功能。
高层模块不应该依赖于低层模块,它们都应 该依赖于抽象。
面向对象设计的优势
提高代码可重用性
通过类和继承实现代码重用,减少重 复代码。
提高代码可维护性
面向对象设计使得代码结构更加清晰, 易于理解和维护。
提高开发效率
通过快速原型开发,快速构建软件系 统。
《软件工程》教学课件 第11章 软件项目管理
![《软件工程》教学课件 第11章 软件项目管理](https://img.taocdn.com/s3/m/8b2689bbcf84b9d529ea7a2b.png)
下 表 是 根 据 63 个 项 目 的 数 据 统 计 结 果 , 按 照 基 本 的 COCOMO模型估算的工作量和进度。
总体类型 组织型
半独立型 嵌入型
工作量 MM=10.4(KLOG)1.05 MM=3.0(KLOG)1.12 MM=3.6(KLOG)1.20
进度 TDEV=10.5(MM)0.38 TDEV=10.5(MM)0.35 TDEV=10.5(MM)0.32
i1
其中:ai — 估计的最小行数 bi — 估计的最大行数 mi — 最可能的行数
将估算的源代码行数,乘以根据经验推算的每行源代 码所需成本,即为该软件的成本。
IBM 估算模型
1977年由Waiston 和 Felix 总结了IBM联合系统 分部(FSD)负责的60个项目的数据,利用最小二 乘法拟合,得到如下估算公式:
PERT(Program evaluation & review technique)计 划评审技术或CPM(Critical path method)关键路径法, 都是采用网络图来描述项目的进度安排。如图描述了开发 模块A、B、C的任务网络图。各边上所标注的数字为该任 务所持续的时间,数字结点为任务的起点和终点。
70
任务
月份 1 2 3 4 5 6 7 8 9 10 11 12
60
需求分析 ▲ ▲ ▲
50
总体设计
▲ ▲▲
40
详细设计
▲▲
30
编码 软件测试
▲ ▲▲
20
10
▲▲▲
0 一月
二月
三月
四月
五月
六月
进度表
2.甘特图(Gantt Chart)
软件工程导论第11章
![软件工程导论第11章](https://img.taocdn.com/s3/m/1eaee6d1ad51f01dc281f1d4.png)
【还可以把适配接口再进一步细分为转换接口和扩充接口。转换接口, 是为了克服与表示方法、数据结构或硬件特点相关的操作给重用带来 的困难而设计的,这类接口是每个类构件在重用时都必须重新定义的 服务的集合。当使用C++语言编程时,应该在根类(或适当的基类)中, 把属于转换接口的服务定义为纯虚函数。如果某个服务有多种可能的 实现算法,则应该把它当作扩充接口。扩充接口与转换接口不同,并 不需要强迫用户在派生类中重新定义它们,相反,如果在派生类中没 有给出扩充接口的新算法,则将继承父类中的算法。当用C++语言实现 时,在基类中把这类服务定义为普通的虚函数。】
4. 弱耦合 耦合:指一个软件结构内不同模块之间互连的紧 密程度。 在面向对象方法中,对象是最基本的模块,因此, 耦合主要指不同对象之间相互关联的紧密程度。 弱耦合是优秀设计的一个重要标准。
5
对象之间的耦合分为两大类: (1) 交互耦合: 对象之间的耦合通过消息连接来实现。 使交互耦合尽可能松散,应遵守下述准则: 尽量降低消息连接的复杂程度。 应该尽量减少消息中包含的参数个数,降低参数的复 杂程度。 减少对象发送(或接收)的消息数。 (2) 继承耦合 与交互耦合相反,应该提高继承耦合程度。 通过继承关系结合起来的基类和派生类,构成系统中 粒度更大的模块。设计时应该使特殊类尽量多继承并 使用其一般化类的属性和服务,从而更紧密地耦合到 其一般化类。
13
2. 软件成分的重用级别 (1) 代码重用 源代码剪贴:最原始的重用形式。 复制或修改原有代码时可能出错,存在严重的配臵 管理问题,人们几乎无法跟踪原始代码块多次修改 重用的过程。 源代码包含:许多程序设计语言都提供包含库中 源代码的机制。配臵管理问题有所缓解,修改了库 中源代码之后,所有包含它的程序自然都必须重新 编译。 继承:利用继承机制重用类库中的类时,无须修 改已有的代码,就可以扩充或具体化在库中找出的 类,基本上不存在配臵管理问题。
《软件工程》课后习题答案
![《软件工程》课后习题答案](https://img.taocdn.com/s3/m/3aff5fec4afe04a1b071deb1.png)
1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。
2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。
3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。
4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。
6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。
7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。
可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。
8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。
重视用户界面的设计,不断的采用新理论和新技术。
软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。
9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。
10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。
11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。
13、详细描述处理过程常用三种描述工具:图形、表格和语言。
14、数据流图中,每个加工至少有一个输入流和一个输出流。
15、结构化设计以数据流为基础映射成软件结构。
16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。
17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。
18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。
软件工程试题与答案-(11)
![软件工程试题与答案-(11)](https://img.taocdn.com/s3/m/e401a834f121dd36a32d82b5.png)
选择题1、以下哪个不是详细设计中常用的图形描述工具 A 。
A、数据流图B、程序流图C、盒图(N-S图)D、问题分析图(PAD)2、耦合是对软件结构中各个不同模块之间互相关联程度的度量。
一个模块直接访问另一个模块的内部信息应属于 B 方式。
A、控制耦合B、内容耦合C、数据耦合D、外部耦合3、在七种内聚中属于最强的是功能内聚,最弱的是偶然内聚4、软件工程的原则包括:模块化、抽象与逐步求精、信息隐藏与局部化、模块独立。
模块 D ,则说明模块的独立性越强。
A.耦合越强B、扇入数越高C、扇入数越低D、耦合越弱5、软件设计包括 D 两个阶段。
A、接口设计和结构设计B、数据设计和概要设计C、结构设计和过程设计D、概要设计和详细设计6、现有一个计算类型的程序,它的输入只有一个Y,其范围是—50≤Y≤50。
现从输入的角度考虑设计了一组测试用例:—100,100,0。
设计这组测试用例的方法是 D 173页A、条件覆盖法B、边缘值分析法C、错误推测法 D 、等价划分法7、系统设计分为两个阶段分别为设计方案与选择方案 92页。
8、对于变换型的数据流图,按照软件设计思想,要将一个大型复杂的软件进行分解,要确定数据流图的输入边界,输出边界和变换中心。
9、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和宽度优先的策略157页。
10、在用面向对象观点建立起的3种模型中, B 231页基本、最重要、最核心的。
A、动态模型B、对象模型C、功能模型D、状态模型11、在软件结构图的有关术语中,用于表示软件结构中控制的层数的是 C 。
A、扇出B、扇入C、深度D、宽度12、指出PDL是哪种语言过程设计语言128页13、在进行软件测试时,首先应当进行单元测试,然后再进行组装测试,最后再进行有效性测试。
14、结构化设计方法是面向 B 的设计。
A.数据编码 B.数据流 C.数据库 D.数据结构15、软件工程的过程模型中,瀑布模型是经典的传统模型。
软件工程2-11.构件级设计
![软件工程2-11.构件级设计](https://img.taocdn.com/s3/m/2f0796386c175f0e7cd137b6.png)
11.1.3 其他相关观点
二、基本概念的比较
CORBA CORBA的对象模型基本上按OMG所定义的公共对象模型COM(不同于微 软的COM),支持类、封装、继承和多态,是一个功能比较完备的对象模 型。对象或类之间可按客户/服务器方式互相调用。每个对象或类即可以作 为客户,也可以作为服务器,有时还可以兼作客户和服务器。 客户对象和服务器对象只通过消息交互作用。客户对象向服务器对象发出 请求,服务器对象响应客户对象的请求完成一定的操作,并返回操作结果 和必要的信息。它们只通过消息往来,不必了解与请求无关的功能。即使 客户对象或服务对象重新实现,只要接口的语法和语义不变,不影响用户 的使用。 客户和服务器的通信方式一般有两种:常用的是同步方式,即客户提交请 求后,客户要等到服务器放操作执行完毕并返回操作结果或信息后,才继 续运行;另一种方式是异步方式,即客户提交请求后,可继续运行。
1121基本设计原则29依赖正置就是类间的依赖是实实在在的实现类间的依赖也就是面向实现编程这也是正常人的思维方式我要开奔驰车就依赖奔驰车我要使用笔记本电脑就直接依赖某笔记本电脑而编写程序需要的是对现实世界的事物进行抽象抽象的结构就是有了抽象类和接口然后我们根据系统设计的需要产生了抽象间的依赖代替了人们传统思维中的事物间的依赖倒置就是从这里产生的
11.2 设计基于类的构件
构件级设计基于分析模型、体系结构模 型。面向对象方法中构件级设计主要关 注分析类的细化(特定的问题域类)和 基础类的定义和精化。
11.2.1 基本设计原则
四个基本设计原则:
开关原则 Liskov替换原则 依赖倒置原则 接口分离原则
11.2.1 基本设计原则 开关原则
11.2.1 基本设计原则 Liskov替换原则
软件工程大三上学期课程表
![软件工程大三上学期课程表](https://img.taocdn.com/s3/m/3f33ae1c6edb6f1aff001f0a.png)
星期三
软件工程 曹耀钦 2-16双周
1301
计算机网络 梁兰华 2-16双周 操作系统 曹耀钦 1-15单周
1401 1401
操作系统课程设计
刘亮
T603
第17周
星期四
操作系统
曹耀钦
2101
1-16周
计算机组成原理
郑先锋
2502
1-16周
操作系统课程设计
刘亮
T603
第17周
操作系统课程设计
刘亮
T603
一二节 三四节 五六节
星期一
计算机网络课程设计
8:00--9:40 孙权
T605
第16周
计算机网络课程设计
10:05--11:45 孙权
T605
第16周
计算机组成原理
郑先锋 2502
14:00--15:45 1-16周
星期二
软件工程
曹耀钦
1209
1-15,17周
职场关键能力
杨华琼
4301
2-17周
七八节 16:05--17:45
第17周
计算机网络课程设计
孙权
T714
第16周
星期五
算法分析与设计
张华 1-16周 科技英语
2301
蔡婷
2301
1-16周
操作系统课程设计
刘亮
T603
第17周
计算机网络课程设计
孙权 第16周
T714
操作系统课程设计
刘亮
T603
第17周
计算机网络课程设计
孙权
T714
第16周
星期六
第16周
操作系统课程设计
计算机网络 梁兰华 1-16周
软件工程理论与实践课后习题
![软件工程理论与实践课后习题](https://img.taocdn.com/s3/m/3167ae3c0622192e453610661ed9ad51f01d54dd.png)
软件工程理论与实践课后习题1、下列要素中,不属于DFD的是()。
[单选题] *A、加工B、数据流C、数据存储D、联系(正确答案)2、当使用DFD对一个工资系统进行建模时,()可以被认定为外部实体。
[单选题] *A、接收工资单的银行(正确答案)B、工资系统源代码程序C、工资单D、工资数据库的维护3、采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。
以下关于产生这些文档的描述中,正确的是() [单选题] *A、外部设计评审报告在概要设计阶段产生B、集成测试计划在程序设计阶段产生C、系统计划和需求说明在详细设计阶段产生D、在进行编码的同时,独立的设计单位测试计划(正确答案)4、在UML提供的图中,()用于描述系统与外部系统及用户之间的交互。
[单选题] *A、用例图(正确答案)B、类图C、对象图D、部署图5、在UML提供的图中,()用于按时间顺序描述对象间的交互。
[单选题] *A、网络图B、状态图C、协助图D、序列图(正确答案)6、在开发一个系统时,如果用户对系统的目标不是很清楚,难以定义需求,这时最好使用()。
[单选题] *A、原型法(正确答案)B、瀑布模型C、V-模型D、螺旋模型7、应该在()阶段制定系统测试计划。
[单选题] *A、需求分析(正确答案)B、概要设计C、详细设计D、系统测试8、在软件项目管理中可以使用各种图形工具来辅助决策,下面对Gantt图的描述不正确的是()。
[单选题] *A、Gantt图表现各个活动的顺序和它们之间的因果关系(正确答案)B、Gantt图表现哪些活动可以并行进行C、Gantt图表现了各个活动的起始时间D、Gantt图表现了各个活动完成的进度9、以下内容中,()应写入操作手册。
[单选题] *A、描述系统对各种输入数据的处理方法B、说明系统升级时厂商提供的服务C、描述系统处理过程的各个界面(正确答案)D、说明系统各部分之间的接口关系10、耦合度描述了()。
15秋北交《软件工程与实践》在线作业二满分答案
![15秋北交《软件工程与实践》在线作业二满分答案](https://img.taocdn.com/s3/m/ee2e619183d049649b665856.png)
2. 完善性维护是提高或完善软件的性能. A. 错误 B. 正确
正确答案 :B
3. 开发一个软件项目总存在某些不确定性,即存在风险.有些风险如果控制得不好, 可能导致灾难性的后果. A. 错误 B. 正确
正确答案 :B
4. 软件维护中最困难的问题是软件配置不全。 A. 错误 B. 正确
正确答案 :A
5. 软件工程使用的软件工具能够自动或半自动地支持软件的开发,管理和文档的生 成. A. 错误 B. 正确
正确答案 :B
6. 软件开发人员对用户需求的理解有偏差,这将导致软件产品与用户的需求不一致, 是产生软件危机的唯一原因. A. 错误 B. 正确
正确答案 :A
7. 用穷举测试是较现实的测试方法. A. 错误 B. 正确
正确答案
:D
3. 一个模块的( )是指能直接控制该模块的模块数. A. 扇出数 B. 扇入数 C. 宽度 D. 深度
正确答案 :B
4. 当模块中包含复杂的条件组合,只有( )能够清晰地表. 盒图 C. 流程图 D. 关系图
正确答案 :A
5. 如果一个C类网络用掩码255.255.255.224划分子网,那么会产生( )个可用的子网。 A. 16 B. 6 C. 2 D. 4
正确答案 :A
15. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好 的人际关系,善于听取别人的意见. A. 错误 B. 正确
正确答案 :B
16. 文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅读. A. 错误 B. 正确
正确答案 :B
17. 通过软件测试,可以发现软件中所有潜伏的错误. A. 错误 B. 正确
15. 软件的发展经历了( )个发展阶段 A. 1 B. 2 C. 3 D. 4
软件工程 第4版 第11章 软件工程管理
![软件工程 第4版 第11章 软件工程管理](https://img.taocdn.com/s3/m/33258d37f08583d049649b6648d7c1c708a10b69.png)
本章内容
11.1 软件工程管理概述 11.2 软件开发成本估算 11.3 软件工程人员组织 11.4 软件配置管理 11.5 软件质量保证 11.6 软件开发风险管理 11.7 软件工程标准与软件工程文档
这种估算方法的优点是,由于各个任务单元的成本 可交给该任务的开发人员去估计,因此估计结果比较准 确。缺点在于,由于具体工作人员往往只注意到自己职 责范围内的工作,而对涉及全局的成本。
11.2.3 COCOMO2 模型
COCOMO2 模型分为如下3 个模型,在估算软件开发工作量时,对软件细节问题考虑的详 尽程度逐渐增加。
OPTION
软件开发人员一般分为项目负责人、系统分析员、高级程序员、程序员、初级程序员、资 料员和其他辅助人员。
项目负责人需要对项目的需求和团队人员有全面的了解
系统分析员需要有概括能力、分析能力和社交活动能力
程序员需要有熟练的编程能力等 资料员和其他辅助人员负责及时登记软件工程每个阶段的文档等资料
11.3 软件工程人员组织
11.1 软件工程管理概述
02 软件工程管理的重要性
OPTION
基于软件本身的复杂性,软件工 程将软件开发划分为若干个阶段,每 个阶段完成不同的任务、采取不同的 方法。
如果软件开发管理不善,造成的 后果会很严重。因此软件工程管理非 常重要。
11.1 软件工程管理概述
03 软件工程管理的内容
OPTION
02 组织机构
OPTION
软件开发团队不能只是一个简单的集合,要求具有良好的组织机构,要具有合理的人员分 工和有效的通信,共同高效率地完成任务。
按项目划分的模式
按职能划分的模式
矩阵型模式
11.3 软件工程人员组织
软件工程导论(第11章)
![软件工程导论(第11章)](https://img.taocdn.com/s3/m/9f0fd225dd36a32d737581b1.png)
3. 信息隐蔽
在面向对象方法中,信息隐蔽通过对象的封
装性实现:类结构分离了类的接口与类的实
现,从而支持了信息隐蔽。
4. 弱耦合
弱的耦合可以提高软件模块的独立性,避免 某一部分模块发生变化对其它模块有较大的影 响。
一般来说,对象间的耦合有两大类:
A.交互耦合:对象间的耦合通过信息连接来
实现。应使交互耦合尽量松散。
2. 一般—特殊结构的深度应适当
中等规模的系统中,类等级层次数应保持 为7±2。不是必要情况,不应该随意创建派生类;
3. 设计简单的类:设计小而简单的类,便于
开发和管理;
1)避免包含过多的属性; 2)有明确的定义; 3)尽量简化对象之间的合作关系; 4)不要提供太多服务。
4. 使用简单的协议:设计简单的类接口,发送 的消息中参数要少。 5. 使用简单的服务:编写实现每一个服务时, 避免复杂的语句和结构; 6. 把设计变动减至最小。
2.
两个方向的关联都用属性实现,这种方法能 实现快速访问。
3.
用独立的关联对象实现双向关联。关联对象 不属于相互关联的任何一个类,它是独立的 关联类的实例 。
40
41
4、关联对象的实现
关联对象的实现方法取决于关联的阶数:
一对一关联:
• 关联对象可以与参与关联的任一个对象合并。
一对多关联:
• 关联对象可以与“多”端对象合并。
11.9 设计类中的服务 11.9.1 确定类中应有的服务 11.9.2 设计实现服务的方法
1. 设计实现服务的算法
1)算法复杂度;
2)容易理解、容易实现;
3)容易修改;
2. 选择数据结构 3. 定义内部类和内部操作
软件工程专业培养计划(080611W)
![软件工程专业培养计划(080611W)](https://img.taocdn.com/s3/m/1765b0e667ec102de3bd8908.png)
软件工程专业培养计划( 080611W )Software Engineering一、培养目标本专业培养能适应 21 世纪社会主义现代化建设需要的,德智体美全面发展的,掌握软件工程专业的 基础知识,具有从事计算机软件分析、设计和开发所必备的相关知识,具备一定的系统软件和应用软件的 分析、设计和开发的基本能力,能在科研、教育、企事业、行政管理等方面从事科学研究、软件开发、计 算机教学、 应用计算机技术进行管理等工作的, 具有创新精神和较强实践能力的应用型高级工程技术人才。
b5E2RGbCAP二、培养要求1、思想品德素质要求:热爱社会主义祖国,拥护中国共产党领导,掌握马列主义、毛泽东思想、邓 小平理论和三个代表重要思想的基本原理,树立正确的世界观、人生观、价值观,具有为国家昌盛繁荣、 为现代化建设奋斗的志向和责任感;具有扎根基层、踏实肯干、爱岗敬业、团结协作,遵纪守法的良好素 养和道德品质;具有理论联系实际,实事求是的科学态度和严谨作风;具有积极进取、勇于探索的新时代 大学生风貌。
p1EanqFDPw2、业务培养要求:本专业学生主要学习自然科学基础、技术科学基础和本专业领域及相关专业的基 本理论和基本知识,受到现代工程师的基本训练,具有分析和解决实际问题及开发计算机软件等方面的基 本能力。
DXDiTa9E3d 毕业生应获得以下几方面的知识和能力: 掌握软件工程专业的基础理论和基础知识,受到良好的科学思维方法的训练; 运用软件工程专业的基本理论和基本方法分析和解决实际问题,具有研究和开发计算机软件系 了解计算机科学与技术学科的发展方向; 具有较强的英语应用能力,能顺利地阅读本专业的英文资料,掌握资料检索查询的基本方法;3、达到国家规定的大学生体育合格标准,具有一定的基本体育知识,掌握科学的体育锻炼方法和技 能,积极参加体育活动,有意识地增强体魄,提高心理素质、审美情操,保证身心健康。
RTCrpUDGiT三、主干学科计算机科学与技术 四、学制 四年 五、授予学位 工学学士六、学位课程(共 100.0 学分)马克思主义基本原理,毛泽东思想、邓小平理论及三个代表重要思想概论,大学外语,高等数学,线 性代数,概率论与数理统计, C++ 程序设计,离散数学,数据结构,操作系统,计算机原理,计算机网络, 软件工程概论, UML 系统建模与设计,数据库原理,设计模式,编译技术,算法设计与分析 5PCzVD7HxA 实践环节:毕业设计(论文)七、课程和环节的总体框架图(1) (2) 统的能力; (3) (4)教学校长:教学质量处处长:教学工作负责人: 执笔人:课程教学体系(图表)实践教学体系(图表)代码学时48 授课实验学时-一- -二二 三四五、. 八七八公 共- 基 础 课〈1130012 思想道德修养与法律 3.0 301811人文 社科部〈1130051基础克思主义基本原理3.0 48 30182〈1130131中国近现代史纲要 2.0 32 2482〈1130071 *毛泽东思想、邓小平 理论和三个代表”重要 6.0 96 60364〈1110024 体育8.0128 96322 2 2 2体育部 X1100184 *大学外语 16.0 256 2564444外语学院 x1100141外语技能训练 2.0 3216161外语学院x1080332 *高等数学 11.0 176 1601655理学院公共基础课小计 51.0 816 672144 12 12 8742专, 业基 础: 课: x2080011 *线性代数2.0 32 322理学院x2080021 *概率论与数理统计 3.0 48 483理学院 x2160241 *C++程序设计 6.0 96 70 266软件学院x2050651 数字逻辑 2.0 32 2662软件学院 x2160031 *离散数学 4.0 64 644软件学院〈2050661 *数据结构5.0 80 60 205软件学院x2050751 汇编语言 3.0 48 38 103软件学院x2050131*计算机原理 4.0 64 56 84软件学院 x2050121 *算法设计与分析3.0 48 32 163软件学院x2050041 *计算机网络 4.0 64 5684软件学院 x2050741 *软件工程概论3.0 48 483软件学院专业基础课小计39.0 624 530 946 11 8 104专-业: 课.x3050021 *数据库原理 4.0 64 48164软件学院x3050101 *操作系统 4.0 64 644软件学院 x3050541 *编译技术4.0 64 48 164软件学院x3050551 *UML 系统建模与设计2.0 32 24 82-9软件学院 x3050561 web 基础应用2.0 32 24 82软件学院x3050571*设计模式 2.0 32 24 82-9软件学院x3050581 人机交互技术2.0 32 24812-19软件学院x3050591 软件体系结构 2.0 32 3211-18软件学院x3050601软件测试 2.0 32 24 811-18软件学院x3050611 ORACLE 数据库设计3.0 4832162-9软件学院专业课小计 27.0 432 344 88 0 0 0 8 6 5 80 0必修课合计117.01872 1546182 144 18 23 24 23 13 10必 修课表一软件工程专业课程设置及学时分配表备注:科研促进教学课程GCC高级应用;MFC高级应用C#.Net高级应用;ASP .NET高级应用;J2EE高级应用jLBHrnAlLg健康教育课按照课内0.5学分、课外0.5学分执行。
软件工程实验(四个实验)
![软件工程实验(四个实验)](https://img.taocdn.com/s3/m/03ca375a90c69ec3d5bb75d2.png)
武汉轻工大学软件工程实验报告院系:数学和计算机学院班级:软件工程1504姓名:赵佳璐学号:1508100065实验一结构化分析实验1实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。
2.实验内容:假设你在一所职业高中工作,负责该校信息系统的建设和维护。
财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。
3.实验要求:1.问题定义:请在这个阶段描述你需要解决的问题。
包括用户面临的问题和预期的项目规模。
最后生成一份问题定义报告书。
2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。
3.对此系统进行成本效益分析。
4.实验步骤:4.1问题定义报告书1.项目名称:工资支付2.问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。
目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。
今后学校规模将进一步扩大,人工计算工资的成本还会进一步提高。
3.项目目标:1)研究开发费用较低的新工资支付系统的可能性。
4项目规模:1)开发成本应该不超过7.2万元5.初步设想:1)用学校自己的计算机系统生成工资明细表和财务报表6.可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。
这个研究的成本不超过4000元。
4.2可行性研究:1.处理工资事务的大致过程:1)每月月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科,职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。
2)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。
然后,把记有每名教职工工资总额的工资表报送银行。
3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。
2高层逻辑模型:3.数据流图:4.数据字典:1)名字:授课情况登记表别名:描述:记录每个教师的当月完成的课时及任务。
《软件工程》教学大纲
![《软件工程》教学大纲](https://img.taocdn.com/s3/m/726e72bd998fcc22bcd10da6.png)
《软件工程》教学大纲一、课程概述本课程向学生介绍与大型软件相关的规划. 分析. 设计. 实现. 测试. 维护等概念. 原理. 技术与工具,同时向学生讲述传统的结构化开发方法与当前流行的面向对象开发方法。
要求学生牢固掌握软件生命周期. 软件质量. 软件成本等基本概念以及传统的结构化分析. 设计与实现方法;掌握面向对象软件工程的基本概念与表示技术,基本掌握软件开发中的管理技术。
通过本课程的学习,让学生对软件工程学有一个全貌的了解,对其所涉及的基本概念. 原理. 方法和有关技术逐步领会并进行运用。
要求学生能够在已有的程序设计. 数据结构. 数据库等理论基础上,为今后进行实际的软件开发奠定一个良好的基础。
本课程应强调实际运用,最好在教学中安排学生参予系统开发的策划. 分析. 设计. 编码. 测试等阶段工作的环节,积极引导学生从个人的单纯编程活动转移到进行系统分析与设计方面上来。
如果受条件所限,可让学生在毕业设计中将这一环节补上。
本课程的先修课程为“面向对象程序设计”. “数据结构与算法”与“数据库”。
本课程的后续课程可以为“程序设计方法学”与“算法分析与设计”。
二、课程目标1.知道《软件工程》这门学科的性质. 地位. 独立价值. 研究范围. 基本框架. 研究方法. 学科进展和未来方向等。
2.理解该门学科的主要概念. 基本原理和策略等。
3.学会运用一些具体的策略或技术等,如软件测试过程中所用到的黑盒测试法和白盒测试法。
4.能够把所学的原理应用到具体的实践中去,如对于具体系统开发过程中所遇到的问题能够自行进行处理,培养学生发现. 分析和解决问题的能力等。
三、课程内容和教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。
《软件工程》各章课后习题答案
![《软件工程》各章课后习题答案](https://img.taocdn.com/s3/m/cebd171c03d8ce2f00662357.png)
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组装测试和确认测试。
• 系统测试的目标是: • (1)确保系统测试的活动是按计划进行的; • (2)验证软件产品是否与系统需求用例不相符
合或与之矛盾;
• (3)建立完善的系统测试缺陷记录跟踪库; • (4)确保软件系统测试活动及其结果及时通知
相关小组和个人。
几种常见的系统测试方法
• (1)恢复测试 • (2)安全测试 • (3)强度测试 • (4)性能测试 • (5) 容量测试 • (6) 正确性测试 • (7)可靠性测试 • (8)兼容性测试
基于Web的网站测试
• 链接测试 • 表单测试。 • Cookies测试 。 • 设计语言测试 。 • 数据库测试。 • 连接速度测试 • 负载测试 • 导航测试
图形测试, 整体界面测试 。
11.8 验收测试
•
验收测试的目的是确保软件准备就
绪,并且可以让最终用户将其用于执行软
件的既定功能和任务。验收测试是检验软
通过验收,给出测试结果。
再见!!!
软件工程与实践
11.4 确认测试
•
确认测试最简明、最严格的解释是检验所
开发的软件是否能按用户提出的要求运行。若
能达到这一要求,则认为开发的软件是合格的
。因而有的软件开发部门把确认测试称为合格 性测试(Qualification Testing)。
•
确认测试又称为有效性测试。它的任务是
验证软件的功能和性能及其特性是否与客户的
件产品质量的最后一道工序。验收测试通
常更突出客户的作用,同时软件开发人员
也有一定的参与。
• 验收测试应完成的工作内容如下: • (1)要明确验收项目,规定验收测试通过的标准; • (2)确定测试方法; • (3)决定验收测试的组织机构和可利用的资源; • (4)选定测试结果分析方法; • (5)指定验收测试计划并进行评审; • (6)设计验收测试所用的测试用例; • (7)审查验收测试的准备工作;执行验收测试; • (8)分析测试结果;做出验收结论,明确通过验收或不
要求一致。对软件的功能和性能要求在软件需 求规格说明中已经明确规定。
• 确认测试阶段工作如图13-11所示:
11.6 系统测试
•
系统测试是将已经集成好的软件系统
,作为整个计算机系统的一个元素,与计
算机硬件ห้องสมุดไป่ตู้外设、某些支持软件、数据和
人员等其他系统元素结合在一起,在实际
运行环境下,对计算机系统进行一系列的