软件系统结构与及开发方法教案.docx
- 文档编号:27001086
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:145
- 大小:108.62KB
软件系统结构与及开发方法教案.docx
《软件系统结构与及开发方法教案.docx》由会员分享,可在线阅读,更多相关《软件系统结构与及开发方法教案.docx(145页珍藏版)》请在冰豆网上搜索。
软件系统结构与及开发方法教案
《软件系统结构与开发方法》教案
主讲:
前言
自从老师于2008年在仰恩大学开办计算机专业试点班以来,断断续续到今年2012级已经是试点班第三届的最后一个学年。
对照国务院发出的指示,我认为《软件系统结构与开发方法》这门课程对于计算机专业学生的能力培养是非常重要的。
根据赵老师的安排,这门课程包含了二门课程的知识:
《计算机监控系统开发技术》课程和《软件工程》课程的知识。
把《软件工程》的理论,和《计算机监控系统》的开发方法结合讲解。
一方面,学生通过学习了计算机监控系统软件的开发技术,培养了利用实际的元器件构建一个真实的计算机监控系统的能力。
另一方面,学生结合计算机监控系统软件的制作,把《软件工程》的理论与软件的制作的实践结合起来,应该能够更好地理解和掌握软件工程必须遵守的规范。
从而达到培养学生能力的目的。
所以,该课程的教案实际上包括这二门课程的教案,课程的名称仍然保留原来的名称。
以下是教案:
《计算机监控技术教案》教案
计算机监控技术与系统开发
教材:
《计算机监控系统的仿真开发》,国防工业出版社,马玉春著
参考书:
①《计算机监控系统开发与实战》,机械工业出版社,马玉春等编著
②《计算机监控技术与系统开发》,清华大学出版社,马玉春编著
③《VisualStudio2005高级编程》,清华大学出版社,AndrewParsons,
NickRandolph著,吴雷译
《VisualBasic2010从入门到精通》,电子工业出版社,邱仲藩,宋智军编著
前言:
近年来一度受到广泛关注的物联网技术,其核心技术包含两个基本的层面和相关技术。
第一个层面是基于多传感器的计算机监控系统,包括多传感器网络与数据采集、实时数据传输和数据存储等技术;第二层面是计算机网络监控系统,包括计算机网络与实时通信、计算机远程监控技术等,是一个软硬件相结合,有着广阔应用前景和产品市场的领域,成为许多学校计算机专业教育培养应用型人才时优先考虑的一个方向。
本课程就是介绍计算机监控系统有关知识,通过本课程的学习,学生应该能够利用实际的原器件构建一个真实的计算机监控系统。
一、课程概况
计算机监控技术综合应用了C语言、.NET程序、计算机接口、计算机网络、数据库系统等技术,在计算机和电子信息相关专业的高年级开设此选修课程,可以提高学生知识的综合应用能力,培养学生从事工程项目研发的经验,可以为学生的毕业设计和就业做好铺垫。
本课程是一门实训课程,采用边学边练的教学方法,以更好地提高学生的实践能力。
本课程的任务是:
使学生了解计算机监控系统的基本概念和原理,掌握计算机监控系统的基本研发和测试方法,并可以对I-7065D或I-7013D模块进行监控,研发出相应的主控软件。
本课程的先修课程主要有《C语言程序设计》、《.NET程序设计》、《计算机接口》、《计算机网络》、《数据库技术》等。
二、教学基本要求
1.重点掌握通用多功能计算机监控系统测试软件(TestPort)的应用,了解通信协议的基本概念,对I-7065D和I-7013D模块进行测试,进一步完成计算机监控系统的初步开发。
在技术上要能熟练调用数据编码与处理和数据包的校验技术及串口操作技术所涉及的常用函数。
2.本课程实践性很强,既是一门引导性课程,也是一门实训课程。
任课教师主要通过软件演示来讲解系统原理、测试方法,并在开发环境下演示核心代码的调用方法。
鼓励学生一边看书,一边实践,学会通过调试手段自行排除编程中出现的错误,从而有效提高自己的实战能力。
第一讲概述
1.1计算机监控系统的概念
1.2计算机监控系统的主要特点
1.3计算机监控系统的分类
1.4计算机监控系统的应用
1.5计算机监控系统的实例
第一章小结
1.1计算机监控系统的概念
计算机监控系统是指具有数据采集、监视、控制功能的计算机系统,是以监测控制计算机为主体,加上检测装置(传感器)、执行机构与被监测控制的对象(生产过程)共同构成的整体。
应用领域:
民用、军用、气象、工业控制等。
1.1.1计算机监控系统的主要组成
传感器
模拟量输入模块
模拟量输出模块
开关量输入模块
开关量输出模块
执行器
嵌入式模块(受控机/下位机)
工控机(主控机/上位机)
1.1.2计算机监控系统的功能
采集与处理信息功能 主要是对被监控对象的参数进行检测、采样和必要的预处理,并以一定的形式输出。
监督功能 将检测到的实时数据根据实际监控过程的需要及监控进程的情况进行分析、故障诊断、险情预测,并以图、文、声等多种形式进行操作指导、事故报警。
控制功能 在检测的基础上进行信息加工,根据事先决定的控制策略形成控制输出,直接作用于监控过程。
1.1.3计算机监控系统的硬件层次结构
单层结构
多层结构
复杂结构
1.1.4计算机监控的主要技术
串行通讯技术
网络传输技术
接口转换技术,例如RS232/RJ45接口转换技术
远程调试技术
通讯协议
1.2计算机监控系统的主要特点
实时性:
计算机监控系统是一种实时计算机系统,可以根据采集到的数据,立即采取相应的动作。
例如,检测到化学反应罐的压力超限,可以立即打开减压阀,这样就避免了爆炸的危险。
实时性是区别于普通计算机系统的关键特点,也是衡量计算机监控系统性能的一个重要指标。
可靠性:
可维护性
数据自动采集处理:
自动地对监测对象进行数据采集、监视,能将测量的数据进行分类处理、数学运算、误差修正及工程单位换算等。
例如,被测对象的温度范围为0~100℃,实际得到的被测数据为0-255,那么,就需要将实测数据转换为对应温度,进行显示和作出相应的处理。
人机交互
通信功能:
这里所说的通信,主要是指在监控系统中,计算机与计算机之间、相同类型或不相同类型总线之间以及计算机网络之间的信息传输。
本书主要涉及串行通信和基于TCP/IP协议的网络通信。
自动运行、自动报警、自动校正等(简介)
1.3计算机监控系统的分类
计算机监测系统
计算机监督系统
计算机控制系统
计算机监控系统
1.4计算机监控系统的应用
在电力系统的应用
在交通监控系统的应用
在消防监控系统中的应用
在各行业中的应用
1.5计算机监控系统的整体印象
1.9本章小结
本章主要介绍了计算机监控系统的基本概念、特点要求与主要分类,以及计算机监控系统的主要应用领域,然后给出了一个计算机监控系统的实例框架和模块的实物图。
信息通信是计算机监控系统中的关键部分,随后介绍了计算机监控系统中常用的串行接口、网络接口,并对通信协议的格式与含义做了简单介绍。
下一章介绍软件仿真模块和常用工具的使用方法,这些软件综合应用了多种接口,利用这些软件即可搭建计算机监控系统。
第二讲:
VisualStudio2010入门
内容包括3.1,3.2,3.3,3.5以及自编部分
该课程是一门强调实践性的课程,我们实验环境是:
硬件环境-双核、2G内存,软件环境-Windows7,VisualStudio2010。
VisualStudio2010包含了一系列高效的、智能的开发工具,它结合以往编程语言(VB,C#)的优势,提供了很多全新的、强大的功能。
现在,进入了.NET时代,只要VisualC++和VisualC#能完成的事情,VB.NET几乎都可以完成,因为它们都是面向对象的,而且,都是建立在.NETFramework之上的,共享公共语言运行库(CommonLanguageRuntime,CLR)和.NETFramework类库,只是语法上有所差异。
所以,VB.NET是一种功能齐全的开发工具,可使编程比以前更加容易,我们应该认真学习。
在进行软件项目开发的时候,我们应该选择哪种编程语言?
首先,要考虑有无实用的开发环境支持。
一个好的开发环境使用便捷,能有效地提高软件开发效率。
其次,要考虑该编程语言是否为主流语言。
主流语言掌握的程序员比较多,便于交流与维护,而且,该语言能得到商家的关注而持续发展。
VisualBasic是一门快速语言,有非常便捷的开发环境,也是Microsoft公司的主流语言,这就是我们选择VisualBasic作为本书的主要编程语言的原因。
2.1VisualBasic的开发环境
工具箱中显示的是常用的内置控件,如果需要其它控件,或者第三方控件,就需要打开Project(工程)菜单,选择Components(控件)子菜单,然后,选择合适的控件。
比如,我们最常用的串行通信控件,可以核选其中的“MicrosoftCommControl6.0”,即MSComm32.ocx,此时,工具箱中就多了一个话机图标,增加了一个控件。
2.2教学计划计算器
系统需求:
在制订教学计划的过程中,需要根据所讲授课程的每章的学时数、起始的周数、每周讲授的课时数来计算每章讲授的周次。
程序设计及代码编写:
程序的源代码见光盘目录Ch02-1。
核心代码如下:
2.3程序的调试技术
对于较复杂的大型程序来说,错误是不可避免的。
通过程序的调试,找到错误所在,进行修改。
VisualBasic还提供了捕获错误的语句──OnError语句:
OnErrorResumeNext当错误发生时,直接执行下一条语句。
OnErrorGotoNum_Label错误发生时,跳转到标号Num_Label处。
Err.Number为错误代码。
2.4帮助文档的制作
对于一个商业软件来说,如果没有帮助文档,那就显得非常不正规。
以前的帮助文档制作非常繁琐,现在采用Microsoft的HtmlHelpWorkshop免费工具(最新版本可从Microsoft的主页下载,光盘目录Tools中也有安装程序),写起来非常简捷高效。
2.5程序的发布
程序设计、编写、调试完毕,需要使用。
如果在自己的计算机上使用,则没有任何问题。
对于商业程序,需要在各种不同的计算机上使用,我们不能要求客户的计算机的环境跟我们的一样,也安装相关的VisualBasic工具和其它相关组件。
这可以通过制作安装包来解决,如图2.6所示,就是MicrosoftVisualStudio6.0Tools中的PackageandDeploymentWizard。
本章小结
本章内容简明扼要地介绍了VisualBasic的开发环境,并通过“教学计划计算器”这个实例来讲解编程、调试技术,最后介绍了帮助文档的制作及程序中对帮助文档的调用,以及程序安装包的制作。
工程技术一般并不涉及复杂的理论,但是,需要经过多次“学习、实践、完善、灵活应用”才能掌握。
通过开发第一个WINDOWS应用程序,实现VisualStudio2010入门
一、问题定义
根据《福彩双色球玩法规则》,“双色球”每注投注号码由6个红色球号码和1个蓝色球号码组成。
红色球号码从1-33中选择;蓝色球号码从1-16中选择。
显然,红色球的6个号码应该互不相同,但是,蓝色球号码允许与红色球号码相同。
程序由两个文本框和一个按钮组成,一个文本框用红色显示6个红色球号码,另一个文本框用蓝色显示蓝色球号码,命令按钮用于启动计算。
号码应该随机产生,满足一组号码不重复且在规定的范围内。
二、环境与界面的处理
打开VS2010IDE,点击菜单【文件】→【新建项目】,出现如图3.6所示的界面。
在VisualStudio已安装的模板中,选择Windows窗体应用程序,在图的下部的文本框中输入Lottery(彩票),点击【确定】按钮。
从工具箱中找到TextBox(文本框)控件,拖两个文本框到窗体上,通过属性窗口将前者的Name属性设置为txtRed,即红色球,后者的Name属性设置为txtBlue,如图3.7所示,可以先在文本框的Text属性中输入数据,然后,调整好两个文本框的宽度,再删除数据。
两个文本框的TextAlign(对齐方式)属性都选择(Center居中),txtRed文本框的ForeColor(前景色)属性设置为Red,txtBlue文本框的ForeColor属性设置为Blue。
再从工具箱中找到按钮Button,加入一个按钮,Text属性设置为Test,Name属性设置为btTest。
对于窗体,其属性也需要做修改,如表3.1所示。
FormBorderStyle为窗体边框属性,FixedSingle为固定单边,这种边框在程序运行期间不能调整界面大小(Sizable属性反之)。
福利彩票自动选号程序界面设计完毕,不需要调整界面大小,否则,就会显得比较凌乱,所以,这里选择FixedSingle属性。
图标文件修改后,程序运行时窗体的图标改变,如图3.7所示,但是,在Windows资源管理器中,图标依然是默认图标。
如果FormBorderStyle选择FixedSingle属性,一般使MaximizeBox取值为False,即取消最大化。
StartPosition为CenterScreen属性,表示程序启动后即在屏幕的中间显示。
TopMost为True表示程序在顶层显示,即使程序失去焦点,也不会被非顶层程序覆盖。
本项目只有一个窗体,所以,图3.8中,启动窗体默认为frmMain。
如果一个程序的窗体和软件模块较多,就需要选择合适的启动窗体,即程序运行时,首先启动该窗体。
一旦界面设计完毕,可以点击“锁定控件”,这样,窗体中的控件将被锁定,不能更改大小,也不能被移动。
三、代码编写
1、建立一个产生指定范围内的随机数的函数:
右击解决方案资源管理器中的项目Lottery,点击【添加】→【新建项】,选择【模块】,并将模块的名字改为Main.vb,然后,点击【确定】。
在ModuleMain和EndModule之间输入如下代码。
PublicFunctionGetRandomByte(OptionalByValnFromAsInteger=0,OptionalByValnToAsInteger=255)AsByte
IfnFrom>nToOrnFrom<0OrnTo>255Then
'Error:
nFrom>nTo!
Return0
EndIf
DimrndAsRandom=NewRandom()'生成随机对象
DimbDataAsByte'存放结果
DoWhileTrue
bData=(rnd.Next)Mod256
IfbData>=nFromAndbData<=nToThenReturnbData
Loop'如果产生的随机数除以256,余数在规定的范围内,则退出,否则,循环
EndFunction
在VisualBasic中,定义函数采用如下形式。
Private/PublicFunction函数名([[Optional]Byval/ByRef参数_
As类型[=默认值]])As类型
2、建立按钮Test的Click事件处理程序:
双击解决方案资源管理器中的frmMain.vb,打开主窗体,然后,双击按钮Test,在其Click事件处理程序中输入如下代码。
PrivateSubbtTest_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtTest.Click
'btTest_Click是事件处理的程序名
'sender是事件的发送者,e是事件参数
'HandlesbtTest.Click表示处理btTest按钮的Click事件
DimIAsInteger'用来计数
DimstrRedAsString=""'存放6个红色球号码
DimstrTmpAsString=""'临时变量
DimnTmpAsInteger'临时变量
ForI=0To5'产生6个红色球号码
WhilestrRed.Contains(strTmp)'如果红色球号码中包含新随机数,循环
nTmp=GetRandomByte(1,33)'产生1-33之间的随机数
strTmp=nTmp.ToString("D2")'将随机数转换为两个字符
EndWhile
strRed&=strTmp'相当于strRed=strRed+strTmp
IfI<5ThenstrRed&=""'确保两个红色球号码之间有一个空格
NextI
DimstrArray(5)AsString'定义一个字符串数组,下标从0开始
strArray=Split(strRed)'将6个红色球号码分拆到数组中
Array.Sort(strArray)'对数组进行排序
'将排好顺序的数组转换为空格分隔的字符串,并放入txtRed文本框中显示
txtRed.Text=String.Join("",strArray)
Sleep(7)'休眠7毫秒
nTmp=GetRandomByte(1,16)'产生一个1-16的随机数
txtBlue.Text=nTmp.ToString("D2")'转换为两个字符进行显示
EndSub
在PublicClassfrmMain行之上输入如下一行代码。
ImportsSystem.Threading.Thread
这表示引入命名空间,如此也可消除错误。
双击窗体,在窗体的Load事件处理程序中,输入代码btTest.Select(),这表示程序运行后,按钮将首先获得焦点,此时,按回车键与点击按钮的效果将是一样的。
3、启动调试:
可以通过点击菜单【调试】→【启动调试】、工具栏上的启动调试图标或者直接按【F5】运行程序,观察一下效果,是否与图3.14的一样(当然,随机数一般不一样)。
VisualBasic的界面、代码、类、模块等文件的后缀名都是vb,工程文件的后缀名为vbproj,解决方案的后缀名为sln。
解决方案调用工程文件,因而,关闭项目后,直接点击工程文件或解决方案,都能重新打开项目。
即时窗口(如果被关闭,可以使用菜单【调试】→【窗口】→【即时】打开,或通过工具栏打开)用于在程序运行时输出调试信息,或者在设计期间完成简单的计算任务。
四、命名空间
1、命名空间的概念(由有命名对象组成的空间):
一个命名空间就是一个类的层次结构。
一个类可以是一个父类,父类就有子类,父类与它的子类,形成层次结构。
每个类都有自己的属性与方法等,也形成层次结构。
一个命名空间把一个类的所有的层次结构都包含其中。
2、一个项目的命名空间:
建立一个项目需要使用的所有的类、结构、枚举、委托和接口,都包含在项目的命名空间之中。
我们可以在项目的“解决方案资源管理器”的窗口看到这些命名空间。
点开“引用”文件夹,就可以看到建立该项目引用的命名空间。
Lottery项目引用的命名空间如图3.28所示。
3、.NETFramework类库是一个由Microsoft.NETFramework中包含的类、接口和值类型组成的库。
该库提供对系统功能的访问,是建立.NETFramework应用程序、组件和控件的基础。
.NETFramework类库由命名空间组成。
每个命名空间都包含可在程序中使用的类型:
类、结构、枚举、委托和接口。
我们在VS2010环境下,就是使用.NETFramework类库中的类,或者说使用这些命名空间创建应用程序,创建各种项目。
所有Microsoft提供的命名空间都是以名称System或Microsoft开头的。
4、如果项目默认引用的命名空间没有我们所要的命名空间。
例如Lottery项目默认引用的命名空间,不包含SLEEP方法所在的命名空间。
所以在调试程序时出现错误。
避免这个错误有二个方法:
方法一:
添加包含Sleep方法的命名空间。
Sleep方法是Thread类的方法,Threading是Thread的父类,System是Threading的父类,“System.Threading.Thread”则是一个命名空间,为了调用Thread类的Sleep方法,添加了引用“ImportsSystem.Threading.Thread”,在程序中就可以直接调用Sleep方法。
方法二、在方法前添加长长的命名空间。
例如将语句:
Sleep(7),改写为:
System.Threading.Thread.Sleep(7),错误即消失。
由此可见,从某种意义上来说,命名空间就是一个类的层次结构。
五、本章小结:
本章首先介绍了VisualBasic2008的开发环境与环境的定制。
在此基础之上,以彩票程序Lottery为例,详细分析了程序设计、调试与部署的整个过程。
最后介绍了命名空间的概念以及如何寻求帮助,成为编程高手。
本章内容是本书的重要基础,而Lottery程序虽然简单,但是,涉及许多重要概念,循环中还有循环和条件语句,需要依此为主线,将本章内容串联起来,并达到熟练掌握的程度,以便为后续的学习打下良好的基础。
第3讲串口通讯技术
内容包括1.6,1.7,1.8,4.1,4.5
以及自编部分
1.6串行接口
串行接口一般包括RS-232/422/485,其技术简单成熟,性能可靠,价格低廉,所要求的软硬件环境或条件都很低,广泛应用于计算机及相关领域,遍及Modem、串行打印机、各种监控模块、PLC、摄像头云台、数控机床、单片机及相关智能设备,甚至路由器也不例外(通过串口设置参数)。
在计算机监控系统中,主控机一般采用工控机,通过串口与监控模块相连,监控模块再连接相应的传感器和执行器,如此形成一个简单的双层结构的计算机监控系统。
这种结构主要用于单独的中小型企业或部门,如果属于综合型企业或部门,如电力系统监控,高速公路监控和收费系统,则可以此为基础结构进行扩充,用集线器将众多双层监控系统连接起来,再用交换机将若干集线器连接起来,统一接上路由器,从而跟Internet互联(当然,软件结构也得作调整),如此即可形成一个庞大的计算机监控网络。
由此可见,尽管现代计算机的新接口层出不穷,各种网络也日新月异,其规模也越来越大,但是,其基础结构却有不少是串行通信系统,串行通信也成了其中的核心技术。
1.6.1RS-232接口
RS-232接口是一种用于近距离(一般在15米之内,最长不超过60米)、慢速度、点对点的通信协议。
虽然有9根线,但是,只要发送线TxD、接收线RxD、地线GND即可工作。
在RS-232中一个信号只用到一条信号线,采取与地电压参考的方式,因而在长距离传输后,发送端和接收端的对地电压有出入,容易造成通信出错或速度降低。
如果采用光电隔离的长线驱动器,也可使通信距离延长至2000米。
RS-232的最高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 系统 结构 开发 方法 教案