系统分析与设计实验报告(共11页).doc
精选优质文档-倾情为你奉上 鞋店进销存管理系统一.项目背景随着计算机技术的不断发展, 它已经成为人们工作和生活中不可缺少的工具。早在1954年,银行、大公司和大企业纷纷采用计算机进行账户和账目管理、生产管理、库存管理、销售管理、统计报表等。从数据的收集、存储、整理到检索统计,应用的范围日益扩大,使计算机的应用很快超过科学计算,成为最大的计算机应用领域。 鞋店管理的特点是信息处理量比较大,所存的鞋种类多,而且由于进货单、销售单、需求单等单据发行量特别大,关联信息多,查询和统计的方式各不相同等原因,因此在管理上实现起来有一定困难。在管理的过程中经常会出现信息的重复传递,单据报表种类繁多,各个部门管理规格不统一等问题。在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要,我们采取了下面的一些原则:1、 统一各种原始单据的格式,统一账目和报表的格式。2、 删除不必要的管理冗余,实现管理规范化、科学化。3、 程序代码标准化,软件统一化,确保软件的可维护性和实用性。4、 界面尽量简单化,做到实用,方便, 尽量满足书店中不同层次员工的需要。二.定义“鞋店进销存管理系统”为用户提供添加、修改、查询、退货操作等服务。用户在登陆界面输入用户名,密码后系统核对正确进入系统内部。系统就要求用户选择事务类型(添加、修改、查询、退货等),直至用户选择退出应用服务,询问用户是否退出应用服务,如果用户选择结束,系统重回登陆界面。用户进入添加界面后,首先可以输入的数字必须大于等于100),否则系统显示输入有误。用户点击确认后,由系统查询,判断该取值是否超出库存量,如果没有,则系统会显示确认界面,用户单点击“确认”后,系统自动生成账单,并在后台进行工作,系统进行清点并发出命令给仓库管理人员,并将数据更新到数据库中;否则提示用户库存量不足,请重新输入,重复上述过程。三参考资料系统分析与设计四系统分析与设计4.1需求分析 4.1.1识别参与者用户(下订单者),系统维护人员,仓库管理人员 4.1.2 对需求进行捕获与描述用例名称:添加 执行者:用户 目的:向仓库中发出下订单命令。用例名称:退货 执行者:用户 目的:将未售出的货物退还到仓库用例名称:修改 执行者:用户 目的:修改用户登录密码。用例名称:查询 执行者:用户 目的:查询可下订单剩余量。用例名称:验证身份 执行者:用户 目的:验证操作系统的用户身份。用例名称:信息管理 执行者:仓库管理人员 目的:对用户信息进行管理。用例名称:系统维护 执行者:系统维护人员 目的:对系统进行维护。用例名称:验证身份 执行者:系统维护人员 目的:对用户信息进行验证。100.1用例ID号及用例名UC_001 添加100.2用例概述当用户在登陆界面输入正确的账号和密码进入系统选择添加功能时,用例开始。用户利用它实现账户添加功能。100.3参与者用户100.4前置条件(Pre-Conditions)用户在登陆界面输入正确的账号和密码,成功登陆系统。100.5后置条件(Post-Conditions)用户下订单成功。100.6事件流100.6.1基本事件流(Basic Flow)1.用户在登陆界面输入正确的账号和密码,成功登陆系统。2.用户选择添加功能。3.系统提示输入下订单量。4.用户输完后点击确认。 5.系统发出命令后并修改账户信息。6.系统提示下单操作成功。 7.系统返回主界面。余额不足时:8.库存量余额不足,下单失败。 9.系统显示当前库存量。 返回主界面,并执行结束。100.6.2扩展事件流(Alternative Flows)系统检查到用户没有输入正确金额1.提示用户输入正确金额 2用户重新输入金额4.1.3 用例图 通过已掌握的需求,初步了解系统所要完成的功能。下面给出用例图。 4.1.4 分析与讨论1) 建模用例图的步骤、方法? 1. 确定系统的边界和范围;(方法:分析系统内部元素,把系统内部元素和外部事物划分开) 2. 识别系统的参与者; 3. 发现用例; 4. 描述用例及确定用例关系;(方法:对用例概要描述;对用例详细描述。 根据用例事件流,将公共行为抽取出来,已包含关系构建用例关系;变化部分,抽取出来,放到扩展用例中) 5. 建立用例图; 6. 定义用例图的层次结构; 2) 如何识别系统的参与者?应该如何划分用例,应注意哪些问题? 通过回答以下问题来识别系统的参与者: 1. 谁使用系统的主要功能? 2. 谁改变系统的数据? 3. 谁从系统中获取数据? 4. 谁支持、维护系统? 5. 谁需要借助系统的支持来完成工作? 6. 系统需要操纵哪些硬件? 7. 系统需要和哪些外部系统交互? 8. 谁对系统运行结果感兴趣? 划分用例: 1. 每个参与者打算在这个系统里做些什么事情? 2. 参与者使用本系统要实现的目标是什么? 3. 参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是,如何来完成这些操作? 4. 参与者是否会将外部的某些事件通知给该系统? 3) 心得 用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 用途:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者 表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 2. 用例 用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示 3. 子系统 用来展示系统的一部分功能,这部分功能联系紧密。 4. 关系 用例图中涉及的关系有:关联、泛化、包含、扩展; a. 关联 表示参与者与用例之间的通信,任何一方都可发送或接受消息。 b. 泛化 就是继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。 c. 包含 包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤; d. 扩展 扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。 e. 依赖 表示源用例依赖于目标用例;4.2 建立对象模型 4.2.1 候选类的数据字典 类 名中 文定 义User用户 使用鞋店进销存管理系统进行添加、修改、查询、退货业务。该类有选择业务等操作。Bill账单 由系统自动生成账单,在后台依此工作。BankAccount下单账目 用户下单信息,包括用户的信息,添加数目等属性,并拥有更改用户自己数据的操作。DrawAccount修改账目 用户改单信息,包括用户的信息,退单数目等属性,并拥有更改用户自己数据的操作。Screen系统屏幕显示系统要向用户展示的界面。MaintenanceStaff系统维护人员 维护鞋店进销存管理系统的正常运行ManageStaff 仓库管理人员 向用户发货,整理统计货物数量。 DatabaseConnector数据连接 与仓库数据库进行连接,更新用户信息。4.2.2定义类“用户”类 属性 姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int)住址(Address):文本(char) 操作 输入Input() 修改密码changePWD() 查询inquiry() “账单”类 属性 账单号(AccountNumber):整形(int) 余额(balance):字符串(string) 操作 打开open() 扣除存款deductFunds () 存入存款withdrawFunds() “下单账目”类 属性 姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 库存量(Amount):字符串(string) 下单数量(DepositAmount): 字符串(string) 操作 添加add () 取消Cancel () “修改账目”类 属性 姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 库存量(Amount):字符串(string) 退单数量(DepositAmount): 字符串(string) 操作 修改deposit () 取消Cancel () “屏幕”类 属性 操作 初始化initialize () 提示prompt () 输入input() “系统维护人员”类 属性 姓名(name):文本(char) 员工号(ID):整形(int) 联系电话(TelNum):整形(int) 操作 维护Maintain() “仓库管理人员”类 属性 姓名(name):文本(char) 员工号(ID):整形(int) 联系电话(TelNum):整形(int) 操作 配款DepositCash() 管理manage() “数据连接”类 属性 操作 连接Connect() 取消Cancel () 4.2.3绘制类图( 在类图中标示出类的属性、操作、类之间的关系及多重性 ,并对所给出的类图解释说明 。 ) 4.2.4包图对于大型复杂系统,常需要把大量的模型元素用包组织起来,以方便处理。对所选系统的类进行分组,以便更清晰地了解系统的结构。(画出包图 并说相应解释说明) 4.2.5分析与讨论 1)建模类图的步骤、方法? 构建类图的步骤: 1. 确定类;(方法:行为分析、名词识别法、CRC分析法、根据边界类、控制类、实体类的划分、参考设计模式确定、通过领域进行分析等) 2. 识别类的属性和操作;(方法:结合需求陈述、领域知识和常识以及经验等) 3. 识别类之间的关联;(方法:使用普通关联列表的方法) 4. 定义类的结构和层次。 2)识别类有哪些方法,你是如何识别类的? 行为分析、名词识别法、CRC分析法、根据边界类、控制类、实体类的划分、参考设计模式确定、通过领域进行分析等。 我通过名名词识别法确定类。 3)解释关联的多重性?如何确定类的属性、操作、类之间的关联关系、组织类之间的继承? 关联的多重性:关联表示了对象间的结构关系,在建模过程中,通常需要说明一个关联实例中有多少个相互连接的对象。 确定类的属性:从常识性、专业性、功能性、存储性、操作性、标志性、关联性发现和确定类的属性,进而筛选类的属性; 确定类的操作:综合对象模型、动态模型和功能模型,确定类的操作; 确定类之间的关联关系:使用普通关联列表的方法帮助发现关联。并分析关联的多重性。 组织类之间的继承:自顶向下和自底向上的方法。 4.3 建立动态模型系统的动态行为模型由交互图(顺序图和协同图)、状态机图和活动图表达。在系统的分析和设计中应当对主要的Use Case和对象类绘制这些图形,以便分析系统的行为,印证和修改系统的静态结构,满足用户的需求,达到系统的目标。 4.3.1顺序图 下单的用例图 4.3.2 通信图 (将以上顺序图转换为通信图) 4.3.3活动图活动图的主要作用是表示系统的业务工作流和并发处理过程。针对自选系统主要的业务工作流绘制活动图。绘制活动图需要确定参与活动的对象、动作状态、动作流,以及对象流。 4.3.4状态图状态机图表现一个对象(类)的生命史。对于一些实现重要行为动作的对象应当绘制状态机图。绘制状态机图需要确定一个对象的生命期可能出现的全部状态,哪些事件将引起状态的转移,将会发生哪些动作。(绘制所选系统的一个对象的状态图并解释说明) 4.3.5 分析与讨论 比较顺序图与通信图、 活动图与状态图的应用。 顺序图:描述的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。 通信图:强调发送和接收消息的信息的对象及其组织结构的交互图,用以描述对象以及对象之间的交互关系。 活动图:用来描述达到一个目标所实施一系列活动的过程,描述了系统的动态特征。 状态图:描述系统中类和对象随时间变化的动态行为。4.4物理模型4.4.1 建立构件图系统实现的源代码、二进制码、执行码可以按照模块化的思想,用构件分别组织起来,明确系统各部分的功能职责和软件结构。(学生补充自选系统的运行软件织成的构件图并解释说明,如果需要,可以绘制系统的源代码、二进制码和执行码的构件的跟踪关系图。)4.4.2 建立部署图(学生补充自选系统的部署图并解释说明)专心-专注-专业