高级软件工程课程报告.docx

上传人:b****0 文档编号:326785 上传时间:2022-10-08 格式:DOCX 页数:7 大小:37.76KB
下载 相关 举报
高级软件工程课程报告.docx_第1页
第1页 / 共7页
高级软件工程课程报告.docx_第2页
第2页 / 共7页
高级软件工程课程报告.docx_第3页
第3页 / 共7页
高级软件工程课程报告.docx_第4页
第4页 / 共7页
高级软件工程课程报告.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

高级软件工程课程报告.docx

《高级软件工程课程报告.docx》由会员分享,可在线阅读,更多相关《高级软件工程课程报告.docx(7页珍藏版)》请在冰豆网上搜索。

高级软件工程课程报告.docx

高级软件工程课程报告

大学研究生课程论文

 

题目高级软件工程课程报告成绩

专业软件工程课程名称、代码高级软件工程1412011081206

年级2013级

学号时间2014年7月

任课教师

 

大学研究生答题纸

专业软件工程成绩

课程名称、代码年级2013级

学号时间2014年7月

高级软件工程课程报告

摘要:

本门课程的前几次课是由剑飞老师代课,他主要讲了软件项目的开发流程,重点讲述了软件测试的必要性和重要性。

本门课程的后半部分课时都是由黄哲学老师代课,教学的主要容是数据挖掘相关的知识。

关键词:

软件项目;软件测试;数据挖掘

1软件工程部分

本门课程的前几次课是由剑飞老师代课,他主要讲了软件项目的开发流程,重点讲述了软件测试的必要性和重要性。

1.1软件项目开发流程

软件项目的开发流程包括以下几个部分:

1需求分析2概要设计3详细设计4编码5测试6软件交付7验收8维护。

在需求分析阶段,系统分析员向用户了解需求,并将细化后的需求转化为相对应的功能模块,接着开发者需要对软件系统进行概要设计,即系统设计。

概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

在概要设计的基础上,开发者需要进行软件系统的详细设计。

在详细设计中,需要描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,说明软件系统各个层次中的每一个程序,每个模块或子程序的设计考虑,以便进行编码和测试。

在详细设计之后,编程人员就开始进行编码工作,着手实现软件项目。

在进行各项测试之后,软件项目就到了交付给用户的阶段,之后就由用户进行项目验收。

用户验收完毕并不是软件开发周期的终点,后续还有维护的过程,在这个阶段里,编程人员根据用户需求的变化或环境的变化,对应用程序进行全部或部分的修改。

1.2软件测试方法

随着软件市场的逐渐成熟,人们对软件作用的期望值也越来越高,对软件质量的要求也相应提升,软件测试的目的即是保证软件质量,因此,软件测试这一之前会被忽略的过程现在越来越受到人们的重视。

软件测试领域主要有两种类型的测试方法,白盒测试和黑盒测试。

软件的白盒测试是对软件的过程性细节做细致的检查。

它要求全面了解程序部逻辑结构、对所有逻辑路径进行测试,它是一种穷举路径测试。

在使用这一方案时,测试者必须检查程序部结构,从检查程序的逻辑着手,得出测试数据。

软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:

1对程序模块的所有独立的执行路径至少测试1次;2对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试1次;3在循环的边界和运行界限执行循环体;4测试部数据结构的有效性。

不过即使每条路径都测试了仍然可能有错误:

穷举路径测试决不能查出程序是否违反了设计规,即程序本身可能是个错误的程序;穷举路径测试不可能查出程序中因遗漏路径而出错;穷举路径测试可能发现不了一些与数据相关的错误。

所以白盒测试虽然深入程序部、更具有技术特征但并不是万能的,有些错误反而利用黑盒测试更容易检查出来。

黑盒测试主要是测试功能部分是否符合要求。

它是一种根据软件需求,设计文档,模拟客户场景随系统进行的实际测试。

这种测试技术涵盖了测试的方方面面,它主要是为了发现以下几类错误:

是否有不正确或遗漏的功能;在接口上输入是否能正确的接受及能否输出正确的结果;是否有数据结构错误或外部信息访问方面的错误;性能上是否能够满足要求;是否有初始化或终止性错误。

黑盒测试实际上是检查以下几点是否满足要求:

1计算结果,命名等方面的正确性;2可用性,即程序是否可以满足软件的需求说明;3边界条件,输入部分的边界值,试试最大最小和非法数据等等;4性能问题,如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好或结构不好,因此在产品开发的开始阶段,就要考虑到软件的性能问题;5压力测试,多用户情况可以考虑使用压力测试工具;6错误恢复能力,错误处理,页面数据验证,包括突然间断电、输入脏数据等;7安全性测试,例如防火墙、补丁包、杀毒软件等;8兼容性,不同浏览器,不同应用程序版本在实现功能时,希望有着理想的兼容性。

1.3软件工程课程心得

通过老师的课程,我了解了软件项目开发的完整流程,在学习之前我错误的认为软件项目开发完成交付给用户之后就算得上是软件项目的结束了,学习之后才知道,后续还有维护这一重要的过程,另外老师的课程也让我认识到了软件测试这一过程在软件开发整个环节中的重要作用,它是软件质量的保证,是我们从软件开发刚开始就需要重视的环节。

2数据挖掘部分

本门课程的后半部分课时都是由黄哲学老师代课,教学的主要容是数据挖掘相关的知识。

2.1数据挖掘简介

我们生活在一个被称作是“大数据”的时代,随着计算机网络的迅速发展,手机等移动设备的快速普及,使得信息的传播速度越来越快,信息数据的量呈现出爆炸式的增长,面对海量的信息,我们可以通过分布式的并行运算,来实现快速的检索,查询与统计等常见的数据处理功能,但却很难发现海量数据相互之间存在着的关系,无法根据现在有的数据来预测未来的发展趋势。

在这样的背景下,数据挖掘技术便应运而生了。

所谓数据挖掘,就是从大量无序的数据中发现隐含的,有效的,有价值的,可理解的模式,进而发现有用的知识,并得出时间上的趋向和关联,为用户提供问题求解层次的决策支持能力。

数据挖掘研究出现于20世纪80年代后期,是数据库研究中一个很有应用价值的新领域,是一门交叉性学科,融合了人工智能,数据库技术,模式识别,机器学习,统计学和数据可视化等多个领域的理论和技术。

2.2关联模式

关联模式是反映一个事件和其他事件之间依赖或关联的知识,其目的是为了生成部分数据的概要,寻找数据子集之间的关联关系与数据之间的派生关系,即在同一事件中出现的不同项之间的相关性。

如果两项或者多项属性之间存在关联关系,那么就可以依据已知的属性值预测某一项的属性值。

关联规则的挖掘可以分为两步,首先是通过迭代识别出所有的频繁项目集,然后再从频繁项目集中构造出可信度不低于用户设定的最低值的规则。

识别和挖掘所有频繁项目集是关联规则挖掘算法的核心。

关联规则最典型的应用是购物篮分析,在关联规则的分析中有助于发现交易数据库中,不同商品之间的联系,找出顾客购买的行为模式。

2.3分类算法

分类是通过构造一个分类函数,把具有某些特征的数据项划分到某个给定的类别上。

分类由模型创建和模型使用两步组成,模型创建是指通过对训练数据集的学习来建立分类模型;模型使用是指使用分类模型对测试数据和新的数据进行分类。

训练数据集中的数据带有类标号,通过训练集的训练,使得使用分类函数可以把标号未知的数据正确的分类到其相应的标号中。

2.3.1决策树算法

决策树(DecisionTree)算法是一种以实例为基础的归纳学习算法,在其树型结构中,每个结点表示对一个属性值的测试,其分支表示测试的结果,而树的叶结点表示类别。

它是一种简单但是广泛使用的分类器,通过训练数据构建决策树,可以高效的对未知的数据进行分类。

决策树有两大优点:

1)决策树模型可读性好,具有描述性,有助于人工分析;2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。

通过下面的表1进行举例:

表1决策树举例表

ID

拥有房产(是/否)

婚姻情况(单身,已婚,离婚)

年收入(单位:

千元)

无法偿还债务(是/否)

1

单身

125

2

已婚

100

3

单身

70

4

已婚

120

5

离婚

95

6

已婚

60

7

离婚

220

8

单身

85

9

已婚

75

10

单身

90

上表里的历史数据,记录已有的用户是否可以偿还债务,以及相关的信息。

通过该数据,构建的决策树如图1:

图1决策树

对于一个新用户:

无房产,单身,年收入55K,那么根据上面的决策树,可以预测他无法偿还债务。

从上图的决策树中还可以知道是否拥有房产可以很大程度上决定用户是否有能力偿还债务,对借贷业务具有指导意义。

2.3.2贝叶斯分类算法

贝叶斯分类是一类分类算法的总称,这类算法均以统计学中的贝叶斯定理为理论基础,通过贝叶斯定理得到的后验概率来预测类成员关系的可能性,是一种具有最小错误率的概率分类方法。

在计算过程中,如果假设所有变量都是条件独立的,则可以使用朴素贝叶斯分类方法,但所有变量都是条件独立的情况非常少。

下面举一个例子来说明贝叶斯分类器的应用。

某个医院早上收了六个门诊病人,如下表2:

表2贝叶斯分类表

症状 

职业 

疾病

打喷嚏 

护士

感冒

打喷嚏

农夫

过敏

头痛

建筑工人

脑震荡

头痛

建筑工人

感冒

头痛

教师

脑震荡

打喷嚏

教师

感冒

现在又来了第七个病人,是一个打喷嚏的建筑工人。

请问他患上感冒的概率有多大?

根据贝叶斯定理:

 P(A|B)=P(B|A)P(A)/P(B)

可得

   P(感冒|打喷嚏x建筑工人)

    =P(打喷嚏x建筑工人|感冒)xP(感冒)

    /P(打喷嚏x建筑工人)

假定"打喷嚏"和"建筑工人"这两个特征是独立的,因此,上面的等式就变成

   P(感冒|打喷嚏x建筑工人)

    =P(打喷嚏|感冒)xP(建筑工人|感冒)xP(感冒)

    /P(打喷嚏)xP(建筑工人)

这是可以计算的。

  P(感冒|打喷嚏x建筑工人)

    =0.66x0.33x0.5/0.5x0.33

    =0.66

因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。

同理,可以计算这个病人患上过敏或脑震荡的概率。

比较这几个概率,就可以知道他最可能得什么病,即通过贝叶斯概率进行分类。

2.4聚类算法

聚类就是将数据项分组成多个类或簇,类之间的数据差别应尽可能大,类的数据差别应尽可能小,即为“最小化类间的相似性,最大化类的相似性”原则。

与分类模式不同的是,聚类中要划分的类别是未知的,是一种不依赖于预先定义的类和带类标号的训练数据集的非监督学习,无需背景知识,其中类的数量由系统按照某种性能指标自动确定。

2.4.1k-Means算法

k-Means是一种最经典也是使用最广泛的聚类方法,至今仍然有很多基于其的改进模型提出。

k-Means的思想很简单,对于一个聚类任务,首先随机选择k个簇中心,然后反复计算下面的过程直到所有簇中心不改变(簇集合不改变)为止:

步骤1:

对于每个对象,计算其与每个簇中心的相似度,把其归入与其最相似的那个簇中。

步骤2:

更新簇中心,新的簇中心通过计算所有属于该簇的对象的平均值得到。

k-means算法的工作过程说明如下:

首先从n个数据对象任意选择k个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。

一般都采用均方差作为标准测度函数,k个聚类具有以下特点:

各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

2.5数据挖掘课程心得

数据挖掘是当今计算机学领域研究的一个主要热门课题,在各个领域都有广泛的应用,数据挖掘的算法对数据挖掘技术的实现起到关键的作用,也直接影响到能否把数据挖掘应用到具体的实践中。

通过黄哲学老师的课程,我学习了一些简单的关

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1