2015年3月第6学期计、信、物12—课题04组件技术和实验04尚小卫北京科技大学信息工程学院2015年04月16日2015年04月16日2014年04月03日2013年10月09日2013年04月11日2012年04月02日2011年04月13日2010年10月21日2010年04月08日2009年10月12日2009年03月25日2008年11月05日今日主题两条线,个内容:软件工程主题1需求到程序的关键环节软件产品主题2编程--组件技术主题3实验04添加业务流程主题4本周任务结束一、需求到程序的关键环节本讲是从现实到虚拟整个映射过程中承上启下的一个最关键的过渡环节。这个环节要建立从现实世界映射到虚拟世界对应关系。因此本讲重点说明现实、虚拟世界两个逻辑体系中的概念及其关系之间的对应(映射)关系。第1节业务需求的逻辑结构首先我们先回顾一下上讲中关于需求的一些概念和相关术语。在上一讲需求中我们做了这样3件事情:第一我们从用户那里了解他们希望通过软件产品解决现实工作中的哪些问题。第二我们把用户凌乱的思绪抽象成用户能够理解的一套图示和术语(角色、物品、行为),并整理成一个文档《用户需求说明书》。第三我们根据用户需求的业务功能重新分类,整理成从业务流程角度表示的产品功能描述----《产品需求说明》。这是一个很清晰的思路,作为需求分析人员:首先要了解每个软件产品使用人希望看到的最终产品;然后整体综合,从协调工作角度描述软件产品如何使用和操作。这很像盲人摸象,最后再睁开眼睛看看。逻辑结构产品需求是根据业务体系对软件进行的功能划分。从用户需求抽象到产品需求的过程,那些分散在不同实体下的行为功能会根据业务规则归并到一起。这时可以得到软件产品最终功能构成的逻辑结构,描述这个逻辑结构包括下列一些概念和术语:业务系统业务分类业务流程业务环节业务功能业务功能点从需求角度,这是本阶段的最终结果,一个对现实世界的图示、符号和文字描述。而下一个步骤就是从程序角度如何表示这些图示、符号和文字描述。第2节系统实现的逻辑结构下面我们再从技术实现角度去看软件产品,这样我们会看到另外一套逻辑结构。从软件需求过渡的软件产品的第一步工作是把产品需求中的各种功能先映射到软件系统的逻辑结构中去。返回目录逻辑结构系统实现的逻辑结构是根据架构设计的原则确定的。我们采纳的N层架构设计,它的逻辑结构如下:用户界面UI;UserInterface业务逻辑层BT;BusinessLogicTier数据访问层DA;DataAccess新系统会采用:用户界面UI;业务逻辑BL;数据访问DAHDataAccessHigh;数据库访问DALDataAccessLow。第3节系统实现的物理结构物理结构是指最终软件产品的数据和程序组织结构这是第3个逻辑结构。作业中的基本结构单位为:软件产品组件模块系统的物理结构在逻辑上用命名空间形式组织在一起。命名空间软件系统的组织结构公司、系统、产品第4节映射过程产品需求列表=〉体系结构列表=〉程序结构列表(软件蓝图、详细设计等)步骤:标注产品需求列表各个功能的系统功能(映射)按照系统功能(如:UI、BT、DA等)重新组织列表。合并相同和删除冗余的列表项,得到简化的系统功能列表。映射结果是一个按照系统结构分类的功能列表。映射图示需求系统需求系统用户界面业务逻辑数据访问映射图示需求系统程序组件需求系统用户界面业务逻辑数据访问程序-组件界面A业务A数据A......业务M界面N...数据L二、组件技术组件概念组件技术的优点组件是个什么东西?作业中的组件创建组件步骤第1节组件概念组件技术介绍背景优点组件是个什么?物理结构形式为exe/dll文件返回一组件技术的优点优点:代码重用团队支持多语言开发独立更新组件技术背景组件技术在DOS时代就有了,但是和现在的模型不一样。COM模型:在1990年,COM是微软流行的基于组件开发的模型。.Net模型:后来.NET替代了COM,提供了一个全新模型:语言独立的,注册自由,版本明确组件是什么?组件是个(exe/dll)文件组件==编译后实体在.NET中,组件==Assembly(exe/.dll)组件是个物理结构概念组件是软件的物理结构组件是是一个软件包所谓物理结构就是一个可见、可操作的exe/.dll文件(相对于运行中相互调用的逻辑关系、功能性质等而言)。用户界面组件SHF_UI.dll业务逻辑组件SHF_BT.dll数据访问组件SHF_DA.dll标准BT类库数据库访问接口实验程序主窗体题目对象用户对象应用程序主窗体数据库访问对象多层应用程序设计实例多层应用程序设计表现组件的实例:看本课参考资料第2节V07作业中的组件程序结构图示程序结构说明教师提供的标准组件自己开发的业务组件标准组件说明返回一V07作业程序结构图示用户界面组件SHF_UI.dll业务逻辑组件SHF_BT.dll数据访问组件SHF_DA.dll标准BT类库数据库访问接口返回三层实验程序组件SHFXX_UI.exe拼写学习业务逻辑类库业务逻辑层BTSHFXX_BT.dll实验程序主窗体题目对象用户对象应用程序主窗体数据库访问对象外部数据库用户界面组件SHFXX_UI.dll应用程序组件SHFXX_UI.exeV07作业程序结构说明教师给出的标准组件UI、BT、DA、应用程序、实验程序部分源程序标准数据库自己完成的应用程序界面组件.dll应用程序业务组件.dll应用程序组件.exe实验程序组件.exeV07标准组件说明UI组件用户界面层BT组件(新版)业务逻辑层BL(Entity)DA组件(新版)数据访问层DAH(新版)数据库访问层DAL外部数据库第2节+V08作业的组件程序结构图示程序结构说明教师提供的标准组件自己开发的业务组件标准组件说明返回一V08作业程序结构图示用户界面组件SHF_UI.dll业务逻辑组件SHF_BL.dll数据访问组件SHF_DAH.dll标准BL类库数据访问接口返回三层实验程序组件SHFXX_UI.exe拼写学习业务逻辑类库业务逻辑层BTSHFXX_BT.dll实验程序主窗体题目对象用户对象应用程序主窗体数据访问对象外部数据库用户界面组件SHFXX_UI.dll应用程序组件SHFXX_UI.exe数据访问组件SHF_DAL.dll数据库访问接口数据库访问对象V08作业程序结构说明教师给出的标准组件:UI、BL、DAH、DAL、应用程序、实验程序部分源程序标准数据库自己完成的应用程序界面组件.dll应用程序业务组件.dll实验程序组件.dll应用程序组件.exe作业程序组件.exeV08标准组件说明UI组件用户界面层BT组件业务逻辑层BL(Entity)DA组件数据访问层DAH数据库访问层DAL外部数据库第3节创建组件步骤详细步骤见实验03报告以《病毒防护SHFAV000》为例,用户需求是一个病毒防护技术的教学程序,主要有4个业务功能组:病毒攻击、防护技术讲解病毒攻击、防护知识测验病毒攻击、防护实验和演示病毒攻击、防护程序创建单个组件创建整个作业返回一创建单个组件以《病毒防护SHFAV000》的UI组件为例:创建步骤01-创建作业框架创建解决方案--SHFAV000添加UI组件SHFAV_UI创建步骤02-引用标准组件引用标准组件添加核心业务模块创建步骤03-添加核心业务模块以在UI组件中添加业务窗体为例:添加应用程序主窗体uiAVMain添加标准源程序(功能:登录、教学、测验、实验、病毒攻击)添加登录窗体uiAVLogin自己创建添加测验窗体uiAVPractice添加源程序添加教学窗体uiAVInstruction继承标准添加实验窗体uiAVTest继承标准添加病毒攻击窗体uiAV_Attack添加病毒防护窗体uiAV_Protect添加实验程序主窗体uiAVTester添加……添加核心业务功能具体编程:添加数据添加构造函数添加常规方法添加事件过程。。。其他创建整个作业以《病毒防护SHFAV000》为例,用户需求是一个病毒防护技术的教学程序,主要有4个业务功能组:技术讲解、知识测验、实验和演示、攻击和防护程序创建步骤01-创建作业框架创建步骤02-引用标准组件创建步骤03-添加核心业务模块创建步骤04-添加核心业务功能创建步骤05-创建实验程序创建步骤06-创建应用程序三、实验04添加业务流程本次实验任务是一次组件编程实验,通过使用组件来实现软件的基本功能。工作目标实验目的实验步骤准备工作编程实践编写文档作业提交返回工作目标1完成期限:180分钟。2工作成果:按照原始版作业程序建立完整的业务流程试验,实验程序:2个实验程序窗体;3验收标准:程序运行稳定,基础版功能到位。形式正确、功能完整、技术文档、工作日志、实验报告工作成果掌握标准模块:uiSHF_TestBase编程教学实验项目中实现:在教学实验项目中用继承方式创建实验主窗体;在实验主窗体上根据作业程序创建业务流程;在每个业务流程中创建每个业务环节调试入口。标注涉及的业务逻辑:在实验窗体的业务环节入口标注入口设置。验收重点是每个实验模块的入口设置和返回值,实验人需要清楚的知道每个程序模块的输入、输出和模块内部功能。作业程序完善:教学实验:实现实验窗体功能。验收标准名称标识符正确:程序运行正确:软件文档:需求列表:V12-1.03版。程序列表:V12-1.03版。工作日志:实验报告:程序运行正确:编程任务--按照原始版添加业务流程1从作业程序中启动和运行实验窗体。2在实验窗体中可以选择和显示业务流程分组,与原始版一致。3在业务流程分组中可以点击业务环节入口,与原始版对应。软件文档和工作文件技术文档需求列表:V12-1.03版,核心业务完善到功能部分。程序列表:V12-1.03版,内容与V12-1.03版源程序一致。工作日志:1实际工作日日期:工作项目名称、开始时间、结束时间。实验报告:1实验步骤:纪录实际操作步骤。2实验结果:纪录出现的问题,说明问题的原因和处理方法。实验目的本实验是一个初级的编程实践:1通过业务流程实验--了解业务流程及其业务环节之间的逻辑关系和业务处理规则。2通过三层架构实验--了解实现业务环节的程序模块以及物理关系。3通过添加程序模块--了解编程的基本概念-输入-处理-输出,以及模块间的通信接口。4通过使用组件技术--了解通过对象和继承技术实现代码复用。本实验从技术角度重点在了解和掌握标准组件中主要功能模块,这些模块包括:1架构实验窗体(uiSHF_TestBase)2标准UI组件uiSHF_Login3标准BT组件btSHFUser、btSHFUserLogin通过实验要求掌握上面这些重点功能模块的编程方法和具体操作步骤。实验工具MicrosoftVisualStudio.NET2008C#编程语言《尚府教学》实验工具-标准课程模块(uiSHF_TestBase)-标准UI组件uiSHF_Login-标准BT组件btSHFUser、btSHFUserLogin实验步骤准备工作编程实践编写文档作业提交准备工作创建第3版作业文件夹存档:选定《软件名称软件标识》作业V12-1.02文件夹-右键-压缩-生成V12-1.02版压缩包。升级:打开作业文件夹-选择上一版作业文件夹-修改日期-修改版本号为V12-1.03注:存档V12-1.02压缩包中包含:源程序《软件名称软件标识》V12-1(文件夹)技术文档(需求列表、程序列表、数据字典)工作文档(工作日志、实验报告)修改程序