已阅读5页,还剩82页未读, 继续免费阅读
(计算机应用技术专业论文)极限编程在中药智能配药机管理软件开发中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
丫 6 5 4 1 6 4 极限编程在中药智能配药机管理软件开发中的应用 计算机应用技术专业 研究生 王三立指导教师 李志蜀 摘要: 继承和发扬中国 传统医学离不开中 药的 现代化0 中 药配方 颗粒就是中 药 材制作法的一个新的研究成果。这种新的制剂法将药材经过现代化的加工工艺 制作成易溶的颗粒, 并保持药效不变。 患者按照处方对配方颗粒进行选取混合, 用开水冲服即可,非常方便和安全。 为了推广中药配方颗粒,促进其更广泛的应用,厂家需要制造出一种能快 速准确地根据处方配中药的机器, 供医院、药店等使用。这就是我们研制中药 智能配药机的目的。 中药配药系统分为硬件和管理软件两部分。硬件部分包括一个排列着4 0 0 余个药盒的储药柜和一个取药装置等;管理软件运行在一台和取药装置相连的 上位计算机上,接受用户输入的处方,控制取药装置取药,以及对处方进行一 系列的管理。 开发这个管理软件是一个较为复杂的过程。软件开发不仅仅是编制程序, 更重要的是对这一活动的复杂性进行规划和管理, 就是用软件工程的方式更科 学地开发软件。 其中, 软件工程提出的各种过程模型是它最为重要的成果。 实 践表明,采用不同的过程模型进行开发其结果可能差别很大。 2 0 0 1 年, 一些计算机领域的 顶尖专家联名发表了 敏捷宣言 ( m a n i f e s t o f o r a g i l e s o ft w a r e d e v e l o p m e n t ), 提出了 敏 捷价 值观和一些原 则。 敏捷思 想代表 的是一系列的软件过程模型所体现的特征。 极限 编 程 ( e x t r e m e p r o g r a m m i n g , 简 称x p ) 是一 种符合敏捷原则的 软 件 过程模型,比传统的软件过程更具有独特的优势。尽管极限编程的概念早在几 a g i l e a l l i a n c e . o r g 年前就己经提出,然而采用极限编程过程进行软件开发还未成为主流,因为实 施x p 需要具备一些严格的条件。 本文详细记录了作者组织软件开发小组采用极限编程过程模型来开发中药 智能 配药机的过程。 其中, 我们基本上实践了极限 编程的 所有要求,主要体现 在以下几个方面: ( 1 )利用 “ 用户素材( u s e r s to r i e s ) ” 这一工具理解用户的需求。 ( 2 ) 实践x p的计划游戏过程,首先以探究的方式估算开发速度, 制定 发布计划和迭代计划。 ( 3 )全 过 程实 践了 测 试 驱 动 开 发( t e s t d r iv in g d e v e l o p m e n t ) , 使 用的 是 专门针对v i s u a l b a s i c 6 .0 的单元测试工具v b u n i t o ( 4 ) 实践了成对编程 ( p a i r p r o g r a m m i n g ) ,开发小组4 个人两两组成了 2 对,完成一次迭代周期后再次重新组合。 ( 5 ) 制定了一套v b代码编写的规范并在编写代码中严格的遵守。 目 前,管理软件已经经历了先后 7 个版本,现在正在进行更为细致的测试 和维护,以期满足用户更高的要求。 关键字: 智能配药 敏捷开发 极限编程 测试驱动开发 t h e a p p l i c a t i o n o f e x t r e m e p r o g r a mm i n g i n s o ft w a r e d e v e l o p m e n t o f i n t e l l i g e n t d i s p e n s i n g s y s t e m f o r c h i n e s e me d i c i n e s p e c i a l ty o f c o m p u t e r a p p l i c a t i o n p o s t g r a d u a t e : s a n l i wa n g s u p e r v i s o r : z h i s h u l i a b s t r a c t : t o i n h e r i t , d e v e l o p a n d e n r i c h c h i n e s e t r a d i t i o n a l m e d i c i n e , t h e p r o d u c t io n o f t r a d i t i o n a l c h i n e s e m e d i c i n e m u s t b e m o d e rn i z e d . c h i n e s e t r a d i t i o n a l me d i c i n e g r a n u l e i s a k i n d o f n e w me t h o d o f m e d i c i n e p r o c e s s i n g . t h rou g h t h i s p r o c e s s , me d i c i n a l h e r b s a r e m a n u f a c t u re d i n t o s m a l l , d i s s o l u b l e g r a n u l e b y mo d e rn t e c h n i q u e s a n d p r e s e r v e i t s e ff e c t . p a t i e n t s e l e c t fr o m t h e g r a n u l e s a c c o r d i n g t o t h e p r e s c r i p t i o n , m i x t h e m, d i s s o l v e t h e m w i t h w a t e r a n d d r in k . i t i s a c o n v e n i e n t a n d s e c u r i t y p r o c e d u r e . i n o r d e r t o p o p u l a r i z e t h e c h i n e s e t r a d i t io n a l me d i c i n e g r a n u l e , m a k e i t m o re w i d e l y u s e d , p r o d u c e r s r e q u i r e a s e t o f ma c h i n e , w h i c h c a n q u i c k l y a n d fr e e l y f e t c h t h e g r a n u l e a c c o r d i n g t o t h e p r e s c r i p t i o n . t h e m a c h i n e c a n b e u s e i n h o s p i t a l , d r u g s t o r e , e t c . i t i s j u s t t h e r e aso n w e r e s e a r c h a n d d e v e l o p m e n t t h e i n t e l l i g e n t d i s p e n s i n g s y s t e m f o r c h i n e s e me d i c i n e . t h e i n t e l l i g e n t d i s p e n s i n g s y s t e m f o r c h i n e s e m e d i c i n e h as t w o p a r t s : h a r d w a re a n d a p p l i c a t i o n s o ft w a r e . t h e h a r d w a r e o f t h e m a c h i n e i n c l u d e s a s h e l f w ith a p p r o x im a t e ly 4 0 0 m e d ic in e s b o x o n it , a n d a d e v i c e to fe t c h th e m e d i c in e . s o ft w a r e i s w o r k i n g i n a c o m p u t e r t h a t i s c o n n e c t e d w i t h h a r d w a r e . t h e s o f t w a r e r e c e i v e s p r e s c r i p t i o n u s e r i n p u t , c o n t r o l d e v i c e s t o g e t t h e c o r r e s p o n s i v e m e d i c i n e , a n d a d mi n i s t r a t e e x i s t i n g p r e s c r i p t i o n s . i t i s a c o m p l e x p r o c e s s t o d e v e lo p t h i s a d m i n i s t r a t i v e s o f t w a r e , a n d w e s p e n t m o r e t h a n a y e a r a n d a h a l f t o d o t h e w o r k . s o f t w a r e d e v e l o p i n g m e a n s n o t o n l y t h e p r o g r a m c o d i n g b u t a l s o m a k e p l a n a n d m a n a g e t h e a c t i v i t i e s o f s o ft w a r e d e v e l o p m e n t . s o ft w a r e e n g i n e e ri n g r e s e a r c h e s h o w t o d e v e l o p s o f t w a r e m o re e ff e c t u a l l y . i n s o ft w a r e e n g i n e e r i n g , t h o s e s o ft w a r e p r o c e s s m o d e l s a re m o s t i m p o r t a n t . i t i s i n d i c a t e d t h a t d i ff e r e n t p r o c e s s e s c a n m a k e d i ff e re n t r e s u l t s . i n 2 0 0 1 , a g r o u p o f t o p i n d u s t ry e x p e r t s a d d r e s s e d t h e m a n i f e s t o f o r a g i l e s o ft w a r e d e v e l o p m e n t . t h e y c r e a t e a s t a t e m e n t o f v a l u e s a n d g a v e p r i n c i p l e s o f a g i l i t y . a g i l e r e p r e s e n t s s o m e f e a t u r e s a l s o b e e n n o t i c e d i n m a n y e x i s t i n g s o f t w a r e p r o c e s s m o d e l s . e x t r e m e p r o g r a mm i n g , o r x p , i s a w e l l k n o w n s o ft w a r e p r o c e s s m o d e l t h a t c o n f o r m w i t h a g i l e p r i n c i p l e s . i t h a s a l o t o f a d v a n t a g e s c o m p a r i n g w i t h t r a d i t i o n a l s o ft w a r e p r o c e s s . t h o u g h i t h a s 5 y e a r s h i s t o ry , u s i n g e x t r e m e p r o g r a m m i n g i s n o t s o p o p u l a r b e c a u s e t h e r e a r e s t r i c t c o n d i t io n s t o u s e i t . i n t h i s p a p e r , w e d e s c ri b e t h e p r o c e s s d e v e l o p i n g t h e s o ft w a r e o f i n t e l l i g e n t d i s p e n s i n g s y s t e m f o r c h i n e s e me d i c i n e , u s i n g e x t r e m e p r o g r a mm i n g mo d e l s . we p r a c t i c e d a l m o s t a l l i n s t r u c t i o n i n x p , s o m e o f t h e m a r e : i ) u n d e r s t a n d u s e r s r e q u i r e me n t u s i n g t h e t o o l u s e r s t o r i e s i i ) p r a c t i c e p l a n n i n g g a m e , s p ik e v e l o c i t y o f d e v e l o p m e n t a n d t h e n m a k e r e l e a s e p l a n a n d i t e r a t i o n p l a n i i i ) p r a c t i c e t e s t d r i v i n g d e v e l o p me n t , u s i n g v b u n i t , a u n i t t e s t t o o l j u s t f o r vb. iv ) p a i r p r o g r a m m i n g , f o u r p e o p l e i n o u r t e a m a r e d i v i d e d i n t o 2 p a i r v ) ma k e a s e t o f s p e c i f i c a t i o n s f o r v b c o d e a n d u s e t h e m a t p r e s e n t , o u r s o ft w a r e h a s i s s u e d 7 v e r s i o n s . u s e r s a r e s a t i s f i e d w i t h i t s g o o d p e r f o r m a n c e , e s p e c i a l l y t h e a l l r o u n d f u n c t i o n s , fr i e n d l y i n t e r f a c e , s t a b i l i t y a n d h i g h e ff i c i e n c y o f m a i n t e n a n c e . : i n t e l l i g e n t me d i c in e s d i s p e n s i n g , a g i le , x p , t d d 绪论 软件开发的泥潭 最近几年,在软件工程 领域, 关于极限编程 ( x p ) 方面的研究和应用广泛 的 展开, 对于极限编程的讨论在网络上随处可 见。 各种关于 x p的书籍也争相 出 版。出 现这样的 情况,原因 是软 件开发商 和用户 在软件项目 的实施过程中遇 到了麻烦。 首先, 软件开发商 不能很 好的预 测和估计开发 进度和发布日 期, 造成很多 项目 的交付时间一再推迟。 最近有研究表明, 有5 0 %的项目 会拖延交付, 有3 0 %以 上的项目 会超出 预算2 ; 其次, 用户对软 件的需 求变更 越来越频繁, 并且要 求软件开发商对软件进行更好更快捷的维护。 在这 种情况下, 传统软件开发的 过程模型比 如瀑布模型、 增量模型 和螺旋模型等已 经不能适应市场竞争的需要。 软 件工程师们迫切地希望能够找到一 种适用于动态和迭代周期很短等情况的软 件开 发过程模型。 2 0 0 1 年初, 一 批软件工程的 专家 概括出 一些可以 让软件开 发团队 具有快速 工 作、 响 应变化能 力的 价值观和原则。 他们提出了 敏捷联盟宣言 ( t h e m a n i f e s t o o f t h e a g i l e a l l ia n c e ) . 极限 编程就是符合敏捷价值观和原则的 最著名的一个软件过程模型。 2中 药智能配药机的 背景 中药学是我国传统医学中 最重要的 组成部分,中 药材的使用在我国有着悠 久的历史。中药和相对应的 西药相比 较,除了 在一些病症上有相同的疗效外, 中药还具有副作用小、 对许多 病症有着西药所不能 替代的 作用等 特点。作为中 医学组成部分的中药学,在世界范围内逐步受到认可。 我国的中药材储量丰富, 扭tp : tt ww sv - 卯4 . ib mx o m 品 种繁多, 仅常见的 药材就有2 0 0 0 种以 上, 总量更是超过一万种以 上。 但是 一 直以 来, 我国 在中 药现代化方面大大落后于日 本、 韩国等邻近国 家。 为了 改变目 前中药 配药还停留 在手抓、 秤称等落后方式上的现状, 1 9 9 3 年, 国家中医药管理局开始提出 进行 “ 中药 配方 颗粒的 研制与开发”的项目 。经过 1 0 年的 发展, 我国 全面制订了中 药配方颗粒的工艺规程和质量检测标准 因此,四川大学计算机学院 和四川绿色药业科技发展股份有限公司合作开 发的中药智能配药机有着良好的应用前景。 3为什么要使用极限编程 首先,中药配药机项目 本身和开发资源的复杂性客观上要求一种既保证高 质量,又保证高效率的方法,也即一种工程学的方法;同时,由于极限编程在 很多方 面都 和传统的软件工程不同 ,目 前国内对极限编程还存在不太了 解或者 不正 确的认识;国内 极限 编程的 实际应用例子非常稀少。中药智能配药机项目 使用极限编程的目 的之一即 是亲身体会这一新的 软件工程方法并留下一份详实 的纪录。 因此, 本文对这一次软 件工 程实践 进行一次 如实的回顾和全面的总结, 具 有一定的探索性和创新性。 2中药智能配药系统的设计 2 . 1酉 己 药机系统概述 - o 中 药 智 能 “柜 汀昌食 嘿卢 图2 -飞中 药智能配 药机的系统结构 如上图, 一个完整的中药智能配药系统的主要工作方式是: 医生开出的 处 方,传送给药房的上位控制 p c 机,操作员控制取药设备配置患者需要的单味 或多味中药颗粒,并打印出药品信息,同时,机器封装好己取回的配方颗粒, 患者拿到药盒只需回家拆开 包装,开水冲服即 可。在以后将要实现的 i n t e r n e t 功能中,上位控制 p c机可以自 动和药品生产的厂家联系,提出换药要求,收 取药品价格更新的信息,提供统计数据给厂家等等。 我们看到,智能 配药系统的主要 特点是 机器取代繁琐且不准确的 人工配置 中 药的 传统方式,工作人员 只需要录入药方,从而减少了 工作人员的 工作量 和 工作人员的 数量;中药颗粒的重量可以 精确控制,又避免了 人工方式 剂量不 准 确造成的不安全因素: 患者也 不再需要用传统的方式煎药, 而是将浓 缩中药 颗 :o f 用j 不 水一冲,就可以服药,为患者提供了极大的方便。 一致, 是为了 避免发错药而加入的安全验 证装置。 2 ) 取 药齿条:由 步进电 机驱动的 取药齿条, 转动储药瓶盖, 取出 处方上规 定的药量。 3 )开关机械夹:将量杯固定于储药瓶下,盛接落入的药品。 2 .2 .3分包装置 自 动分包装置是本机其中一个具有创新性设计的地方,旨在实现前人设计 中没有实现的取药全过程的设备无污染。 自动分包装置主要负责发药前的量杯成形和发药后的量杯封装,在封装好 的量杯上喷码打印处方和患者信息, 并用传送带将 封装好的中药颗粒交付患者。 2 . 3配药机软件部分 管理软件系统,又称为上位机管理系统,是整个配药系统的中心,因此不 同的 人登陆系统受到不同的 权限 控制, 登陆时需要用户须要输入登陆 名和密码, 只有最高级的管理员才可以修改任何用户权限。 总体上看,管理系统可以分为:发药模块、药品管理模块、处方管理模块 和统 计模块。 每个模块由统一的后台数据库支持,对数据库的访问也设置了访问权限级 别,比如,一般的操作员没有权限删除药品 数据库中的 药品。 2 . 3 . 1 发药模块 发药模块是 整个管理软件系统中的核心模块, 它的主要任务是通过医 生填 写的, 或者由网络提供的处方,生成处方对象, 处方对象包含了药品详细清单, 处 方价格, 病人和医生的信息等。 将这 些信息 传入下位机p l c模块, 完 成取药 操作。 2 .3 .2 药品管理模块 药品管理 模块负责对药品的 库存进行管理和统计。 其中 存储了 药库中 4 0 0 多味中药的详细信息, 包括名称、 单价、 条码号、 在储药柜上的坐标、以 及药 品本身的产地、性状、 功能与主 治、 十八反、 十八畏以 及出 库、入库等信息。 一定权限的操作员可以 对其中 任何一味中药的 信息进行查 询、添加、删除和修 改等操作。同时, 每个药品 还设置了 一个药品 使用情况的计 数器字段, 供以后 进行历史统计。 2 . 3 .3处方管理模块 处方管理模块负责管理三个数据表:已发送处方表、待发送处方表和草稿 箱表。 当医生建立一个处方后, 可以 选择立即发送, 或者放到待发送处方表中 , 以后再发药,或者放到草稿箱中。这三个表作为每天的发药日志,长期保存, 方便随时查询。也作为对一个医生的工作量的一个记录。这三个数据库具有不 同的安全访问级别。 常用处方数据库根据我们从各大医院和著名医书中广泛考证收集的资料, 将中医最常用到的5 0 0 余 个处方 存储其中,医 生开 药时, 可直接从 相应的 数据 表中 调出 处方, 根据病症适量修改,便可直接输出 发药, 大大提高了医生 开处 方的效率。 2 . 3 . 4 统计模块 统计模块分为药品统计,历史统计,医生统计三个部分。药品统计可以对 药品数据库中的药品的各种资料进行统计, 历史统计具有全面的统计分析功能, 它还提供一个多时间粒度的统计视图,也可以对各种药品的使用量建立排行榜 反映 给药品厂家。医生统计模块管理医 生开处方的 历史, 可以提供考核评估医 生素质和工作量的参考。 3智能配药机管理软件开发中过程管理的重要性 3 . 1管理软件开发的项 目介绍 作者自2 0 0 2 年9 月开始加入“ 中 药智能配药机” 系统的管理软件开发小组, 作为 该组的 负责人承担了 管理任务, 而且也参与了 大部分模块的开发。 作者组 织开 发团队 决定进行极限 编程尝 试;随 后严格按照极限 编程的每一个最优实践 进行了一年多的开发工作;因此对参加该项 目前后工作有较深体会。 3 . 1 . 1 用户介绍 中药智能配药机项 目的客户是四川绿色药业集团,该公司的计划是借助中 药智能配药机推广它研制并投入大规模生产的中药配方颗粒,以抢占竞争激烈 的中药配方颗粒市场。 我们的目标就是在尽可能短的时间内完成智能配药机的自主开发并投入大 规模生产。由于是具体的商业合作,合同规定了需要根据开发团队的能力做下 一步投资。由于硬件开发的效率难于大幅度提高,因此软件开发的效率问题, 以及项 目的进度控制变得非常重要。在初步可行性分析和与用户协商后,开发 期限暂定为九个月。 3 . 1 . 2 团队 与工作地点 开发人员 6 人, 其中软件小组 4 人 ( 同一级的在校研究生) , 硬件小组 2 人; 专家 组2 人, 对项目 进行考核与评估: 客户代表 1 人,随时 提供需求意见 和行 业数据。 软件开发小组的工作地点在学校一个可容纳 1 6 个人的计算机房。 3 . 1 .3技术与系统构架 本项目 的整个系统分为发药工作装置和管理软件两部分。管理软件的结构 初步分为 3 层: 用户操作界面层 硬件接口 层 数据库管理层 图3 - 1 软件三层的结构 其中, 软件运行的 平台 为 w i n 4 8 , 采用的 编程语言是 m i c r o s o f t 的 v i s u a l b a s i c 6 .0 s p 6 .数据库使用 mi c r o s o ft的 a c c e s s ,因为a c c e s , 和 v b 的解决方案 稳定而且被大家共同 熟悉。 和硬件通讯使 用的是西门子公司的p l c 通信 组件, 它在 v b开发环境中体现为一系列的控件。 3 . 1 .4系统需求与规范 软件系统要面对来 自 硬件小组和来 自 客户两方面的需求,即面对两个不同 的用户。项目 启动时 客户没 有提供书面的 需求文档,需求仅来自 和客户代表口 头上的讨论。大体上,对软件的要求有:易用性,安全性,可容纳性等。软件 有几大功能,包括诸如:发药控制,处方管理,数据统计,药品管理等模块。 3 . 2为什么要运用软件工程 3 .2 . 1 项 目本身的复杂性 如 果从该 项目 本身来看, 这是一 个较为复杂的 系统: 系统 集成了 三个机电 子系统: 取药装置、 称量 装置和分包装置以及三 个面 对用户的软件功能:处方管 理,药品 管理 和统计分析。 市场上较少类似的产品,而且都处于保密状态,因此没有可参考的对 象。每个细节必须从头开始设计,事实证明,开发中很多关键技术都 是经过多次失败后才 逐步解决的。 作为一个商业合作的项目 ,考虑到竟争的因素, 有开发 进度和成本的 要求。 仅对软件系统而言: 属于医药行业软件, 需要跨专业的知识, 客户和开发方都要面对沟通 的困难,缺乏可供参考的现成案例。 软件开发人员还需要经常和硬件开发人员进行沟通, 因为设备对软件 需求不断在变化。 多种技术的集成, 包括了数据库管理、数据压缩和安全性、 接口技术、 人机界面、条码技术、最优控制等。 面对这一系列复杂情况,软件工程的引入就显得非常自然,因为软件工程 的 本质目的 就是控制软件开 发活动的复杂性。 3 .2 .2 自 觉的 实践x p 过程模型 本文的 意义还在于 忠实 地记录了 一次自 觉的软件工程实践, 很多因素 说明 总结以 及回 顾这次实 践活动 是有益的, 也是有必要的: 开发 初期并没有意识到软件工程方法的重要性, 后来切实体会到了对 过 程管理和建模的需要, 才自 觉的 进行软件工程尝试. 开发小组成员都是 仅有编程经验的研究生,因 此,开发过程中走过的 一些弯路所带来的 深刻教训和后来的转变具有一定的代表性和普遍 性。 开发小组的 管理和一般的 软件公司不同, 有很 大的灵活性, 包括个人 的时间安排没有严格限 制, 客观上提供了 开发 和管理形式的多种可能 性。 开发的时间 跨度较大,经历并不断 跟踪软 件工程的新发展, 有一定探 索性。 同时,软 件小组成员详细地探讨了 开发过程中 运用极限编程( x p ) 的方 方面 面,有 意识地希望使用敏捷软件工程的思想为与将来类似的 软件项目 的过 程管 理提供一定的借鉴。因此,在开发过程中围绕笔者的基本问题是: 极限编程实践具体是怎么 运用的? 极限编程的适用条件具体表 现在那里? 在不满 足极限编程一些条 件的时 候,能 否通过其它方 式弥 补? 极限编 程思想怎样推广到 更大的 范围, 甚至软件开发以 外? 3 . 3忽视过程管理的教训 3 . 3 . 1 开发初期对过程的忽视 软件系统的开发经历了 无过程管理和敏捷过程前后两个阶段。吸取了最初 无序开发的教训后, 在团 队专家的指导下, 开发小组及时 意识到过 程管理的重 要,并很快 确立了 敏捷( a g i l e ) 开发的 新思路。 我们一开始仅仅讨论了一些基本问题,比如使用何种编程语言,选择何种 数据库,没有建模和需求分析,也没有对项目进行估算和定量计划,最后就很 草率 地制定了 未来 1 个月的 开发日 程表, 简单分配了4 个人各自 的 任务。 甚至 没有考虑测试等重要的内容。 3 . 3 .2 缺乏 管理造成的问 题 开发初期 遇到的问题首先是进度缓慢, 而且因 为协调不 好而不得不拖 延, 比如负责 “ 压缩模块”的 人迟迟不能开始工作, 是因 为相关的纪录 数据还没有 定义完整,而负责 “ 数据定义” 的人首先必须进行一系列的 需求分 析,这一工 作又涉及到其他更多的方面。 其次,大量看似完成了的工作不得不返工,因为程序员之间缺乏必要的沟 通。常常是两个衔接模块的其中之一由另一模块的程序员全部重写,因为另一 模块编写者的代码可读性极差。 另外, 任务分配不恰当,比 如一个程序员为了 完成一 项分配的 任务,需要 查阅大量资料,甚至从头学习某项技术,而这个任务如果交给小组中另一个程 序员,则可以在很短时间内轻松完成。 3 .3 .3 重新关注软件过程 由 于团队 成员很快意识到必须加强过程的管理, 下一步 就必须选择一个过 程模型。 小 组首先考察了简 单称为“ 结构化+ 自 上而下逐步求精” 的一大类过程 模型,发现都不能很好适应当前的情况。 主要原因是开发进度比 预计的 大大落后, 使客户己经不能在原定时间内 进 行第一阶段验收, 而且也不能向客 户提 供文档资料。由于影响到客户进一步的 投资, 我们决定有意识地避免全面复杂的架构设计。开发小组经过讨论, 一致 认为 没必要把时间浪费在设计一些暂时用不上的功能上,比 如加密 模块、处方 安全检查模块这一类。 首先,开发小组分析了开发面临的困难后,列举出了到底应该做哪些过程 改进, 包括: 适应 “ 需求是逐步获得的” 这一现实, 迅速提高项目 的开发 效率, 加强成员间的 沟通, 合理地动态地分配工 作等, 这些其实都表 明一点:我们需要一种敏捷的过程。 我们进一步发现,我们基本能够满足保证极限 编程( x p ) ( 敏捷的过 程第一 种) 的 条件, 比如: 软件是一个小型的 项目 ; 项目 团队不超过 1 0 个人; 大 家在 同一 个地点 工作, 项目 小组 成员 对于 x p有一定的了 解;团队有较大自 主性等 等。 开 发 小 组 意 识 到, 应 该 选 用 一 种 更高 效 、 更轻 ( l ig h t w e ig h te d ) 的 过 程 模 型。最终,我 们选定了x p 极限编程( e x t re m e p r o g r a m m i n g ) 的模型。 4软件工程思想的综述 计算机软 件是计算机系统的核心, 编写软件是当今人类科技活动的重要组 成部分.随着 信息技术的高速发展, 必然要求人们研究 “ 软件开发活动”本身 并反过来对其指导。 首先在军事领域, 编写软件越来越复杂, 庞大的军用软件 系统要求更高的可靠性和效率。因此,1 9 6 8 年,北约的计算机科学家首次提出 了 “ 软 件工程”的概念 1 1 a 4 . 1软件和软件危机 缺乏科学指导的软件开发活动表现为软件危机。软件危机的典型表现为: ( 1 )软件不可维护,也不可重用;c 2 )软件质量不能保证;( 3 )缺乏文档,软 件不 可读, 也不可交 流;c 4 )软 件开发 进度难以 估计, 效率难以 提高。 由 于历史的原因, 人们对软件开发有一些错误的 认识,比如:认为软件就 等于程序 ,软件开发的目的就是设法使程序运行,忽视了整体性计划,忽视了 对开发过程中每一步的严格管理, 等等。 如今, 软件危机并没 有彻底过去。我 们必 须深刻认识到, 软件开发有自 身 的特点: 作为当 今人类科技活动的一种, 软件不同于硬件, 其结构较为 抽象, 其 质量较难衡量;同时,今天的软件规模庞大,结构复杂,如何控制未来难以想 象的软件复杂性并保证质量,是人们要面临的问题。 作为 一种商业活动,比较 其他领域而言, 管理的 质量对软 件开发 有极大 影响。比如, 在开发后期才发现某个错 误可能比 早期发现这个错误多 付出2 - 3 个数量级的代价【 1 1 。另 外, 软件本身 特点 可以 要求低成本、 高生产率和高质量 三个方面同时满足,比如软件的复用、使用设计模式等等. 4 . 2软件工程 为了 克服软件危机, 诞生了 “ 软件工程” 这一学科。一 般对软件工程的定 义是:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考 验而证明正 确的管 理技术和当前能 够得到的 最好的 技术方法结合起来, 这就是 软件工程。 从本质上看, 软件工 程科学就是 研究 一种途径,使我们可以 科学地 ( 系统 地,规范地,可度量地)指导软件活动 ( 开发,运行,维护) . 因 此, 软件工 程和软件开发实践是密不可分的。我们的 研究也必须从实 践 中来。近 4 0 年来,软件工程发展成为一个复杂庞大的研究领域,4 . 4 将介绍软 件工 程研究的 概念模型。 下面简述一下 研究者 通过大量经验的积累 总结的 软件 工程的基本思想。 4 . 3软件工程的 基本思想 这里指的思想是指由软件工程总结出来的 “ 软件开发活动”所必须遵从的 最基本的原则。 第一,软件和开发软件的人在软件整个生命周期中必须得到有效的管理。 只有有效的 管理, 才能 控制好解决高 度复 杂问 题的过 程中所遇到的各种情况, 比 如一个航天飞机的软件系统。 第二, 管理是 基于模型的。在软件开发之前,首先使用或者建立一个软件 工程的 模型, 再调 集资源去实现 他。比 如, 软件工程经历过结构化, 面向 过程, 面向 对象和构件重用等阶 段 2 1 第三,各 种模型的本质是对问 题进行分解,包括: 从时间上管 理各 个阶 段 和过程;从逻辑上管理各种对象和构件。值得注意的是,技术和管理两方面的 复杂 性可以相互转化,也可以同时 被分 解。 第四,软件工程的根本 目的是提高软件开发的效率和质量,这两者中质量 又是第一位。比如,细致的需求分析,严格的产品控制 ,阶段评审和结果审查 等等。 - 2 0- 第五,任何软件工程都不是普适的,有其适用范围,不能生搬硬套。作为 和实践紧密联系的 学科, 软件工程是不断发展的。 4 . 4软件工程的概念模型 软件工程发展到今天, 变成了一 个极为宽 泛的 概念。前面提到,软 件工程 本身就是从人们的实 践需 要中产生发 展起来的,因 此,每个 人对它都有自己的 理解。近年来, 新的 概念和模型 层出 不穷, 让人有眼 花缭乱 之感。这小节给出 了 一 个软 件 工 程的 概 念 结 构 模 型 3 , 试图 涵 盖当 前 大 多 数的 软 件 工 程内 容 【3 0 前面提到,软件工程的 本质就是研究一种科学的 途径、方法用以 指导软件 开发等活动。而且它是一门 应用的 学科,出 发点和目的都是实践。因此,我们 把软件工程看作 “ 基本原则 + 方法学十 实践” 这样一个三元组。软 件工程就看成是为了 满足一定 “ 原则” , 在某种 “ 方法学” 的指导下进行软件 “ 实践” ,从而得到软件产品。 “ 基本原则” 在上一节 “ 软件工程的基本思想”已 经提到,原则的 细化, 诸如可用性,正确性等概念,最后都融入特定的方法论。这里不赘述。 下面从 “ 方法学”和 “ 实践”两方面刻画软件工程的结构。 4 . 4 . 1 软件工程方法学 方法学 ( m e t h o d o l o g y )又叫方 法论, 是指在一定 “ 原则与策略” 指导下的 一整套相关的“ 方 法与技术” 。 这里的 原则与 策略代表的是 该方法论的思 想, 是 该方法论的核心。比如, “ 结构化方法论”的核心思想是结构化,因此,伴随的 所有具体方法都来 自 于结构化的思想。 值得注意的是, “ 方法” 不同 于 “ 方法论” ,方法可以 指原子方 法,也 可以 是方法论本身,方法是一个递归的概念。 见附录a“ 软件工程的概念模型” 图示 “ 方法论” 又 可以分为“ 开发方法 论” 和 “ 过 程方 法论” , 相应的“ 原则与 策略” 也就分为开 发的 策略和过程的策略。比 如 “ 功能分 解” 策略, 设计模式, 模型驱动开发等就属于开发方法论: 而迭 代模型, a g i l e 模型等 “ 过程模 型” 就 属于过程方法论。 4 .4 .2软件工程的实现方法:项目、目标、过程 软 件工 程的方法论只描述了 具有普遍意义的框架, 而且各种方法论的思 想 具有 独立性.但是当 我们面对一个具体的软件开发工作, 必须要根 据实际 情况 制定 详细具 体的步骤,还要 选择 或综合运用适宜的 方法论。 因 此, 现代的 软件工 程实践 包含三个最重要的概念: 项目, 目 标, 过程。其 中过程最为重要。 软件项 目 项目 , 也叫软件项目 , 表示的 是一个具体的, 临时 性的东 西。 项目 是目 标、 过程和方法论三者的相关联的结果,是为完成特定目 标 ( 比 如 “ 开发一个 输电 网 调度软件” ) 而进行的活动。目 标完成了, 项目 也就终结了。 对项目 的 管理是目 前 软件工 程关注的问 题之一。 有效的管理是成功的 关键, 试想一下诸如 航天飞机机载软件的超大型软件开发项目, 如果没有科学的 项目 管理,它的成功是不可想象的。 项目管 理的重要性在于它必须开始于一切技术活动之前, 其特点是不同的 项 目 其管理的方式应该各不相同。 项目 管理大概有如下一 些内 容: ( d项目 计 划。 比如选择 合适的 模型预测软件规模, 估 算工作量和完 成期 限,进度计划表,人员和项 目组的组织结构和团队建设,等等. ( 2 ) 软件质量保证 ( s q a ) 的措施。 诸如软 件评审,软件 测试,程序正 确性 证明 等。 其中软件评审需要 在软 件开 发的 各个阶段进行. ( 3 ) 软件配置管理。 开发过程中的 各种 变动和 修改必须得到控制, 否则 将 导致混乱。 软件配置管理分为版本管理、问 题跟踪和建立管 理三个部分, 其中 版本管理是基础。 ( 4 ) 文档管理。 文档是软件不可分的部分,文档可以有多种形式但必须统 一、清晰。 ( 5 ) 项目 管理工具。 有集成的c a s e 工具, 也有针对不同管理内 容的 专门 的 工具, 如配置管理工具r a ti o n a l c l e a r c a s e , c v s , p v c s 等等。 归根结底,项 目 管理的成败很大程度依赖于管理者的经验,不能光依靠书 本。 4 . 4 . 2 . 2 软件目标 不同项目软件开发的总目标虽然不同,但都可分为一些类似的 “ 任务” , 任 务 又可进一步细分为 “ 子 任务” 。 任务 通常在“ 方法论” 的指导下完成, 使用相 关 “ 方法与技术” 来实现,比如, “ 建立分析模型”子 任务, 可以 选用 “ u m l 建模技术” ,也可以选用 “ 结构化建模技术” 在软件开发过程中 几乎都会遇到的 任务是:分析, 设计, 编码, 测试。 ( 1 )“ 分析任务”主要解决 “ 问题能不能解决” 和 “ 系统必须做什么”的问 题。对应的是可行性分析和需求分析。 需求分析,要求完整、准确、清晰、具体。不同的方法论产生了大量 需求 分析技术和工具, 比如说, 需求获 取可以 通过访谈, 也可以用原型的方式; 需求分 析工 具有: u s e c as e 、 数据流图、 e r图、 有限 状态 机等。 ( 2 ) “ 设计任务” 是利用需求分析得到的结果, 进一步 确定系统该如何实现。 设计将系统进行详细描述, 所以 首先被分解为许多 子任务, 如架构设计、数据 库设计、界 面设计等等。 描述系统的工 具目 前用的 最多的 是u m l ( 3 )“ 编码任务” 要 求合理选择编程语言, 并且 遵从一定的规则, 做到程序 的 可 读 性 。 目 前 的 模 型 驱 动 体 系 (m d a ) 的 方 法 论 思 想 将 编 码 的 任 务 交 给 计 算 机 , 开发人员只需要建立详细的系统模型。 ( 4 )“ 测试任务” 在开发中 花费 较大但至关重要。 测试是检验是否满足预期 的结 果的 过程,为了发 现错误而运行程序。测 试子任务包括:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土建项目交接验收单填写规范
- 客服人员心理疏导与应对技巧培训材料
- 服装设计流程及工艺教学设计
- 物流公司运输车辆管理制度
- 企业知识管理体系构建与实践案例
- 食品安全检测及台账管理操作指南
- 电商平台消费者权益保护风险防范
- 2025年及未来5年中国安徽省网络信息化市场前景预测及投资规划研究报告
- 2025年及未来5年中国健身行业发展趋势预测及投资战略咨询报告
- 一年级语文基础练习题集
- 期刊的缩写与全称对照表
- 心绞痛口腔临床疾病概要
- YY/T 0337.2-2002气管插管 第2部分:柯尔(Cole)型插管
- GB/T 38768-2020高弹性橡胶联轴器试验要求及方法
- GB/T 31094-2014防爆电梯制造与安装安全规范
- GB/T 21562-2008轨道交通可靠性、可用性、可维修性和安全性规范及示例
- 培训机构教师薪酬制度
- 耳鼻咽喉科疾病护理常规
- 财务管理流程
- 中药材生产加工产业基地建设项目可行性研究报告
- 手术管理相关制度培训培训课件
评论
0/150
提交评论