我们知道我们正常的开发流程是从需求-设计-开发-测试-部署等这样的瀑布型的模式或者是瀑布模式的变种等,但是不管是如何的开发模式,前提是必须把需求确定才能从需求中分析出要开发的用户的功能性需求和非功能性需求,这样我们才能进行后续的开发工作。那么我们本篇就将分析药店系统应该具有的功能及非功能性的需求,来分析文档的内容。
首先我们来看看一般的软件开发流程吧:
这是传统的软件开发流程,无非目前的不管是迭代开发、增量开发、敏捷开发无非都是基于传统开发模式的一些变种。迭代开发是基于传统的软件开发流程之上的一种基于原型的迭代开发,开发完成后进行集成测试。增量开发是将每个模块都走从设计-编码-测试的流程,最后完成集成测试。敏捷开发是迭代开发+增量开发的合成体。
关于不同的开发模式及开发流程方面的内容,我们后面会详细的阐述,单独讲述AgileEAS.NET敏捷开发平台的软件工程思想的真实体现。不管我们开发什么样的软件或者多小的软件,我们必须先了解需求,才能继续进行后续的需求分析及详细设计等后续的流程,所以我们知道了需求的重要性,那么我们本篇就将药店系统的需求来分析和业务梳理下,整理成需求文档。
药店业务流程
下面我们就来分析下药店的业务流程,当然如果说你对药店的领域非常的熟悉,你也可以使用DDD来进行开发和设计。我还是按照我对药店的理解来简单的分析下,可能还有部分的业务细节我这里没有体现,还请大家继续补充,当然如果你对药店业务特别的熟悉,那么也欢迎大家多多交流。
那么我们就来看看药店具有的业务流程的主线。
一、药品入库:
二、药品出库:
三、药店退药-供应商:
四、顾客退药:
五、药品报损:
六、药品调价:
七、药店盘点:
盘点对应药店的重要性想必是非常重要的,我想上软件系统的主要目的之一就是为了查看药店的所有的资金的流向,那么通过盘点来完成,盘点主要是盘点药品的主要流
向和消耗的实际对比等等,都能体现。
上面我们基本上分析了药店系统中主体的业务流程,当然我们这里没有包含一些模块:药品采购计划等,为了简单期间,我们把这些步骤给省略了,下面来看看我们的需求分析过程吧。
需求分析
上面我们分析了药店系统的业务流程,并且给出图形的描述,相信大家对药店系统的业务流程有了简单的认识,下面我们来分析药店系统的详细功能需求吧。
1、基础数据维护:
首先、必须有药品字典:
该功能是药店管理系统中的基础数据信息,如果没有药品字典的维护,那么后续的对药店的进销存就无从谈起,药品字典是在药品入库管理模块中使用的,将采购的药品,通过软件中的药品入库功能,选择药品字典中的药品,填写相应的库存信息,即可完成入库的操作。所以该模块是后续模块的一个业务流的输入条件。
其次、必须有供应商:
入库时必须选择供应商,否则在后期的供应商退药时,无法确认退药给哪个供应商。
再次、药品类型:
没有药品类型,那么药品的类型无法维护和管理,最后在做收支报表等都无法谈起。
2、药品入库:
维护基本的药品入库信息,具体的信息内容,请参考数据库详细设计。
需记录供应商。
购买日期,购买数量等购买信息。
能方便的维护药品入库的信息,并且可以查看,统计等。
3、药品库存管理功能:
药品库存功能,用于维护药店中的药品库存的一个管理,是该系统的核心,由于药店中的所有数据信息都以药品为流转,所以药品的库存管理尤为重要,管理好了药品的出入库,报损等功能,可以算是一个微小型规模的简易ERP,当然功能没有那么全面和强大。
下面,我们来看下药品库存的具体功能:
库存的盘点与查看功能。
库存编辑及修改,删除等相应的操作记录,必须可以查看相应的维护信息。
具体的模块交互需求:
药品库存是这些模块信息存储及信息流的核心。
4、药品出库(顾客发药)
药品出库的理解是,将药品从药店库存中出库或者是顾客零售的功能,主要负责,从药店库存中选择要出库或零售的药品,输入相应的数量,直接有结算的功能,就完成 了,药品的出库或零售。
该模块应该具备的功能:
从库存中选择库存>0的药品。
自动减去库存,记录出库的药品记录信息。
记录操作员及出库操作信息。
查询出库记录并可打印。
该模块与其他模块之间的关联:
具体的信息,请参考“数据库详细设计”。
5、顾客退药
顾客退药与药品出库是二个反向的操作,药品退库,是将药品走一个退库流程,记录退库的原因及退库的操作信息,并且自动将药店库存进行更新,该退库流程,可审核也可以不考虑这块的内容,一般来说,HIS系统中,都会有审核,药店一般就不用设计这块的内容了,所以这里记录药品退库的原因,数量,日期,操作员等等相关信息,方便 统计和查询。并且在统计分析模块,提供相应的报表。
该模块与其他模块之间的关系:
上面给出了药品退库模块与库存及统计分析之间的关系。
6、药品调价
该模块主要是对现有库存中的部分药品的售价进行调整,那么我们必须记录调价前的价格及调价后的价格,并且要记录调价后的数量,并且判定,如果调价后的药品在药店库存表中存在,则直接累加库存,并且将调价前的药品的库存数量进行拆检,否则会造成不一致的情况。
1、选择要条件的药品,必须支持查询和检索功能。
2、将选择条件的商品选择后,可以输入调价的价格和数量,当然简单的做法就是全部都条件,目前药店的系统是这样做的,相对来说这样的处理方式简单,但是不灵活。
3、要保持数据的一致性,调价信息必须记录:旧售价,新售价,调价数量,调价日期,调价原因等。
4、程序必须能够满足调价后扣除原始价格的库存,并且在库存表中如果存在新价格的药品,则累加出新调价后的药品数量,否则插入一条新的药品库存记录。
7、药品报损
药品报损一般是因为药品失效或者打开后无法再次使用等等,或者其他的原因等等,我们要对库存中的药品进行报损的操作,那么首先我们可以分析下其应该具备的功能。
1、可查询,不同类型的药品,按关键字查询等。
2、从选择的数据源中输入要报损的数量及报损的原因等。
3、报损信息必须记录下:除了包含基本的药品信息外,必须还记录报损原因,报损数量,报损日期等。
4、在报损操作时,同步更新库存,将报损的数量从现有的库存量的基础上去掉。
5、具有打印的功能。
8、药品盘点
做过医疗相关行业的朋友,应该都比较了解盘点的作用,盘点主要是为了记录管理系统中的账目库存与实际药品的物理库存之间的一个对比和同步的过程,如果发现系统中的账目库存叫物理库存大,我们需要在整理完相关的原因之后,进盘盈或者盘亏,然后在这个盘存的间隔的时间段内记录资金的流入与流出是否平衡等等,都是通过盘点能够体现出来的东西。所以,一般来说盘点功能是重中之重。
1、必须提供药品库存的盘存功能。
2、基于盘存的库存副本基础之上进行具体的物理库存的更新。
3、具有账目库存与实际物理库存之间的同步功能。
4、具有打印功能。
5、统计分析报表功能。
1\/f,g噀xvz孴R玁剉t1u0<