怎样才能开发出好的软件

怎样才能开发出好的软件呢先软件工程的思想要贯穿软件开发、运行、维护的整个过程,利用分层的思想使得软件的生命力更强,灵活性更好,便于维护,也便于合作开发,当然采用合作开发是为了提高效率,想要合作开发就要有统一的建模。在开发过程中适当的加入设计模式可以提高效率。

       首先来说一下软件工程,软件工程就是把软件的开发工程化,在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性并且满足用户需求的软件产品。软件工程主要有一下内容:需求、设计、编码、测试。其过程中需要产生以下一些文档:可行性研究报告、软件需求说明书、数据库设计说明书、概要设计说明书、详细设计说明书、用户手册、测试分析报告等。这些文档贯穿软件开发的整个过程。

        那么这些文档里都是些什么内容呢想系统的结构表达的更清楚是不是图表更有表现力呢以UML图(统一建模语言)就成为了文档的得力助手,画UML图的工具有很多,Rational Rose是一个应用比较广泛而且功能比较强大的工具。UML有九种图,分别从不同的侧面不同的粒度描述系统的结构流程。

1.                用例图描述角色以及角色与用例之间的连接关系,说明的是谁要使用系统,以及他们使用该系统可以做些什么,主要用在需求说明书中来表明系统需要实现的主要功能;

2.                包图描述了系统的整体架构,每一个包是一个程序集,用在概要设计说明书中;

3.                类图描述系统中的类以及各个类之间的静态关系视图,也用在概要设计说明书中表示各个类之间的调用关系;

4.                活动图描述每个用例进行的活动以及活动之间的关系,主要用在概要设计说明书中用来表示整个系统的运行流程;

5.                状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件,是对类图的补充;

6.                交互图包括协作图和顺序图,这两种图都是表达的对象与对象之间的交互,顺序图表现的是消息如何在对象之间被发送和接收的,主要强调时间和顺序,而协作图显示对象间的动态合作关系,主要强调上下级之间的关系,交互图用在详细设计说明书中;

7.                图描述代码构件的物理结构以及各种构件之间的依赖关系;

8.                部署图用来建模系统的物理部署。例如计算机和设备,以及它们是如何连接的;

        系统架构就是系统的骨骼,如果骨骼没有设计好,做出来的软件也会是畸形,怎样的架构才是合理的,怎样的架构才能造就一个健康的软件,那么健康的软件是什么样的先要满足用户需求,其次要有可修改性、灵活性、可维护性,也就是当用户需求改变时,尽量少更改已经封装好的东西,而且还要达到目的,这样的要求传统的面向过程的编码方式是很难实现的,而MVC三层架构就能实现这一切,V代表界面层,C代表业务逻辑层,M代表数据访问层。这个三层架构只是宏观意义上的三层,其实根据系统架构的需要可以分为更多层。除了这三层外还有一层是实体层,实体层对应着数据库中的表,每一张表映射为一个实体,下面介绍一下三层架构具体是什么样的:

1.      界面层只负责与用户交互,用户输入信息,在界面进行基本验证(是否为空、是否是数字等)将数据传到业务逻辑层,经过业务逻辑层处理后返回给界面层信息,界面将信息显示给用户。

2.      业务逻辑层负责接受界面的数据,进行业务处理(包括一些逻辑判断,计算等),需要数据库中的数据就调用数据访问层的方法,业务处理后给界面返回数据。

3.      数据访问层主要是一些操作数据库的类,查出的数据返回到业务逻辑层。

4.      实体层中每一个实体对应着数据库中的每一张表,实体类作为参数在三层之间传递。

 

下面以添加用户为例:

界面层(UI):当用户按下添加按钮后,首先检查输入框中的数据是否合法,然后将数据赋值给用户实体中的每个字段,调用B层的添加用户方法,将用户实体作为参数传递。

view plain print

  1. Imports Bll  
  2. Imports Entity  
  3. Public Class FrmAddUser  
  4.     ‘实例化B层添加用户类  
  5.     Private BAddUser As New BllAddUser  
  6.     ‘实例化用户信息实体  
  7.     Private EUserInfo As New UserInfo  
  8.     Private Sub btnOK_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles btnOK.Click  
  9.         ‘判断用户名文本框的输入是否为空  
  10.         If txtUserName.Text = “” Then  
  11.             MsgBox(“用户名不能为空”, vbOKOnly + vbExclamation, “警告”)  
  12.             Exit Sub  
  13.         End If  
  14.         ‘判断密码文本框的输入是否为空  
  15.         If txtPwd.Text = “” Then  
  16.             MsgBox(“密码不能为空”, vbOKOnly + vbExclamation, “警告”)  
  17.             Exit Sub  
  18.         End If  
  19.         ‘判断是否已经选择了用户级别  
  20.         If cmbLevel.Text = “” Then  
  21.             MsgBox(“请选择用户级别”, vbOKOnly + vbExclamation, “警告”)  
  22.             Exit Sub  
  23.         End If  
  24.         ‘给实体的每个字段赋值  
  25.         EUserInfo.strUserName = txtUserName.Text.ToString  
  26.         EUserInfo.EuserPwd = txtPwd.Text  
  27.         EUserInfo.EuserLevel = cmbLevel.Text  
  28. 来源:qq_36954865

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年7月7日
下一篇 2017年7月7日

相关推荐