系统总体设计
系统的总体的设计步骤大致可以分为下面几部分。
系统的总体设计目标一般分为五个方面:系统功能、性能、可靠性、费用、维护目标。其中功能目标分为:基本功能和辅助功能,确定系统可以实现哪些功能。性能目标分为:硬件条件、存储空间、处理速度、响应时间。可靠性目标分为:允许出现的错误、安全性、自己恢复能力、软件交付时间。维护目标分为:扩展能力、可移植性、建立文档、适应性(可改变性)。费用目标分为:开发费用,部署费用、维护费用、升级费用。这些我们都可以从字面上理解它的意思。接下来就是确定系统的子系统。
关于学籍管理系统的子系统我分为了:
在设计系统的子系统时,耦合度是两个子系统之间依赖关系的强度。耦合度的知识以前学过,所以在设计子系统时要达到一个目标就是子系统间吗,要尽可能的松散耦合,这样使得错误或潜在变化对系统的正确操作产生的影响达到最小。例如在缴费管理子系统和学生档案管理子系统中,如果学生入学时既录入学生信息又收取学费,则两个子系统的耦合性将增加。此外还要设计系统的全局控制流,目前可以选择的控制流有:过程驱动的控制流程、事件驱动的控制流程、线程驱动的控制流。前两个我们经常听到,了解较少的是最后一种,线程驱动的控制流是基于并发运行的软件系统,系统可以创建多个线程,每个线程可以处理不同的事件或共同完成一个任务。这三种控制流程方式各有优缺点。过程驱动控制流方式设计速度快,实现相对简单,而且测试比较容易,但是对于用户的操作来说,非常的不方便。事件驱动的控制流方式便于用户使用,设计比较复杂。线程实现控制流方式能更好地体现多用户和多任务处理机制,但是系统的实现和测试非常复杂。再接下来就是数据库设计,数据库设计要处理系统中连续的、需要保存的各种数据。
系统的详细设计
系统的详细设计包括:
1:对软件进行模块设计的时候,抽象出不同的层次。
2:自顶向下,逐步细化
3:通过设计子系统来实现整个系统的分层次设计
4:对象信息设计应进行必要的隐蔽和封装
5:对象设计坚持高内聚低耦合
6:系统设计要尽可能复用
在系统的详细设计阶段最重要的一部分就是对类和对象的设计。虽然在系统的需求分析阶段曾经用UML对系统的类和对象进行了建模,但是还要在详细设计时对类和对象进行一次详细的说明。包括可见性,类型,声明,异常处理,约束条件,以及对系统类库的设计和引用。对于这个过程要经过多次的迭代审查。
例如上图中在学生管理入学登记窗体类(frmStuEnroll)中,增加一个用于传递和分析查询语句的字符串(strSql),还要增加一个家在数据的公用方法(Load_Data)和填充数据方法(Fill_Data),同样在公用类Moduel中也增加一个用于传递和分析查询语句的字符串,增加一个为需要数据连接处理的对象提供一个数据源连接字符串方法(ConnSting)。