软件开发过程与思想

原创 2005年05月29日 15:42:00
计算机软件尤其是数据库软件,成为了当代计算机应用的主流。因此软件开发人员就必须掌握正确的开发手段,了解软件开发的主要过程,这样心中对软件项目才有清醒的认识,才能达到事半功倍的效果。本文就软件开发过程中的一些方法,结合本人开发过的一些软件项目做一些详细论述。

1 开发前的准备工作

一般软件项目在开发前都有系统任务书,主要规定软件的开发目标、主要任务、功能、性能指标及研制人员和经费、进度等安排,作为系统设计开发和检验的基本依据。

系统任务书的基本框架如下:

(1)引言

包括编写目的,背景,参考资料。

(2)系统的目标及任务

包括系统建设目标,系统的主要任务,系统性能指标,系统标准化要求。

(3)系统的结构及功能

包括系统应用组成及结构,系统主要功能。

(4)系统的规模及进度要求

包括系统规模,系统研制进度,人员计划。

但是系统任务书只是这个软件项目的一个基本要求,针对具体情况,软件开发人员和需求分析人员就要联合对软件项目的细节进行具体分析,必要时还要进行实地调研,然后共同商讨写出系统的需求分析,需求分析的编写目的在于:

a. 说明系统在军事方面、技术方面、经济方面和社会条件方面实现的可行性和必要性;

b. 分析原系统(工作环境)现状,描述待开发系统的详细需求,提供用户和开发人员之间沟通的基础,提供项目设计的基本信息。

需求分析报告的基本框架如下:

(1) 概述

包括 编写目的,背景,参考资料,术语及缩写词。

(2) 对现有系统的分析

(3)待开发系统的详细需求

包括 功能需求,使用范围,业务流程,用户界面,输出要求,故障处理。

(4)使用环境

包括 网络环境,硬件环境,软件环境,与其他系统的关系,安全与保密。

(5) 可行性分析

包括 技术可行性分析,经济可行性分析,人员可行性分析,影响待开发系统的主要因素。

(6)结论意见

2 软件开发过程

有了系统任务书和需求分析报告,软件设计人员就要对软件项目的实现进行系统分析,系统分析包括系统的总体方案,系统的设计说明,作为软件设计的依据。具体说明如下。

2.1 系统总体方案

在系统开发单位和用户充分交互、理解的基础上,提出系统的技术构架,对系统功能、性能等主要指标作描述,对实现方法和要求作规定,是系统进行详细设计的依据。

系统总体方案基本框架包括:

(1)引言

包括 :编写目的,背景,参考资料,术语及定义。

(2)项目概述

包括 :

--项目的主要内容

--系统需求分析:①用户需求调查分析②现行系统的现状调查分析。

--系统功能:①系统的功能要求②系统主要技术性能。

--系统的数据要求:①基础数据②业务数据③交换数据④其它数据。

--系统的设计要求:①技术结构要求②系统划分及其接口要求③系统运行环境要求④系统标准化综合要求。

(3)实施总计划

包括 :进度,预算,问题和措施。

2.2 系统设计说明

根据《系统总体方案》提出的系统构架、功能、性能及数据要求,确定系统的物理结构,说明系统主要技术方面的设计和采用的技术方法以及系统的标准化约束等,是系统实施的基本依据。就本人曾经开发过的一个软件项目,说明其基本框架:

(1) 引言

包括 :编写目的;背景;条件和限制;参考资料;术语及定义。

(2) 系统总体技术方案

包括:

--概述:①系统目标②基本要求。

--系统设计:

①系统结构

a、 应用结构。

b、 功能结构。

c、 技术结构。

② 系统功能设计:根据以上的分析,功能设计自然

包括业务管理功能设计、综合查询功能设计、邮件收发功能设计、数据库接口设计、文电接口设计。在对这些功能进行综合分析的基础上,开始进行数据库表的设计。在对表的设计过程中,既要考虑到关系数据库冗余字段的处理,又要考虑到系统运行的速度和实现的方便性等综合因素,笔者在实际开发后认为这两种考虑比例可以为7:3。

③ 系统安全设计:可以考虑以下一些安全设计思想,例如系统的数据传输通过电子邮件实现,要求电子邮件内部只传代码,不传涉密数据;系统的数据库操作需要充分利用Oracle数据库的事务提交和回滚机制,确保业务处理的完整性和一致性;系统的数据结构应充分利用存储空间,在不同的用户之间通过数据冗余提高整个系统的数据安全性;系统中存贮的用户口令、备份口令、数据库连接信息等重要数据,必需经过安全加密。

④ Oracle数据库自动优化设计:对于Oracle数据库可以进行数据库配置,可以大大提高大数据量查询速度,笔者已经做过尝试,并已经成功应用。

⑤ 友好界面设计:对于一个良好的应用系统当然需要设计良好的使用界面。

2.3 软件开发

对于开发语言的选择因人而易,开发数据库系统我比较倾向于DELPHI,因为它对于数据库开发的支持是很完善的。在软件实现方面,上面已经说明了一种客户/服务器结构,但是这种结构本身也包含了一些问题,例如客户/服务器结构经常把应用系统的企业逻辑编写在客户端的应用程序中,因此当应用系统需要改变时,所有在客户端的应用系统都必须改变,这对于MIS系统的维护来说成本太高了;为了解决这些重复开发应用系统的成本以及为了增加应用系统的重复使用性发挥面向对象分析/面向对象设计的功能,就必须导入所谓的应用程序服务器,软件开发人员以一种特定的组件形式,例如Microsoft的COM/DCOM,CORBA对象,或是Enterprise Java Bean等,组装企业的逻辑程序代码。这种经过组装,能够执行特定企业功能的对象便称为"企业对象",然后把这些企业对象分发到此应用程序服务器。由于本文不是专门讨论多层系统的文章,所以只是简单提一下,不再赘述。

程序设计中要注意合理的程序设计结构,可以将所有的公用组件放在一起。例如Delphi语言中可以新建一个单元,将所有编写的函数放在这个单元里,其他单元均可以调用,还可以新建一个数据模块(Datamodule),将所有的公共数据库控件放在这里,可以减少系统资源浪费,优化数据库程序设计。

关于程序设计中的技巧很多,这里也不再赘述。

3 软件开发后的工作

软件项目在开发完成后还要进行系统测试,以测试开发出的软件的功能和性能是否达到预定要求。

3.1 软件测试大纲

这是软件设计人员用来自测系统的。包括:

(1)测试环境①硬件环境②软件环境③数据环境④网络环境。

(2)功能测试内容①模拟现场测试②应用现场测试。

(3)性能测试内容

另有附表:附表一 系统功能测试表;附表二 系统性能测试表。

3.2 用户应用测试

由用户在实际使用过程中进行测试,并给出应用证明。

4、总结

开发软件项目是一个庞大的系统工程,以上只是介绍了一般性软件主要是数据库软件的开发过程和设计思想,它要求软件开发者对此要有精深的理解,熟悉软件开发的思路。

通常一个人难以完成所有工作,需要一个良好的合作团队来协作完成,其中需求分析员和系统分析员要提供软件项目的具体要求和设计思想,由软件开发组把这些要求创建出便于维护和可持续开发的系统资源。

Andrej Karpathy发文谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

作者: 晓凡 概要:有越来越多的传统编程语言(C、C++、Java)等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧。 有越来越多的传统编程语言(...

哲学思想对软件开发的启示

一 关于软件的实质   什么是软件?它从哪里来,它有生命吗?    当我在想到这个问题的时候,就像是哲学中要解决的一个根本问题,我们来自哪里,我们是什么,人生的意义又是什么?也...

PO-->OOP+AOP-->SOA软件开发思想演化

一、概述     PO(Procedure Oriented,面向过程编程):是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一...
  • gwblue
  • gwblue
  • 2015年05月31日 11:28
  • 3337

Andrej Karpathy谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

有越来越多的传统编程语言(C、C++、Java)等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧。那么传统程序员和深度学习专家对编程的软件的看法一样吗?计算机...

【财富空间】Andrej Karpathy发文谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

有越来越多的传统编程语言(C、C++、Java)等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧。那么传统程序员和深度学习专家对编程的软件的看法一样吗?计算机...

云计算的思想领袖:访谈Esri公司软件开发主管,Scott Morehouse先生

公告    :本博客为微软云计算中文博客  的镜像博客。   部分文章因为博客兼容性问题  ,会影响阅读体验  。如遇此情况,请访问  原博客。    Scott Morehouse在哈佛大学图形实验...

软件开发的基本方法---读软件工程思想(林锐)有感

近期的努力学习,一直希望能突破一个瓶颈,就是熟练工,目前感觉到自己就是一个熟练工,对于工作中所接触到的技术,基本的API都知道,完成工作也比较顺利,我想,开发如果仅仅是CRUD的话,那么这种工作没有任...

软件开发过程

  • 2014年02月12日 20:00
  • 2KB
  • 下载

《胎动计数》软件开发过程

前段时间,刚到公司实习的时候,做了一款小应用,胎动计数。最近准备进行改进,顺便将设计的过程写一下。 刚开始做这个小应用的时候,可以说是一点都不懂,只知道写代码。当时是了解一点胎动的知识,然后开始写逻...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件开发过程与思想
举报原因:
原因补充:

(最多只允许输入30个字)