软件开发流程分为:需求确认——概要设计——详细设计——编码——单元测试——集成测试——系统测试——维护
软件开发是一个系统工程,包括需求捕获、需求分析、设计、实现和测试。软件通常是用一种编程语言来实现的,通常可以使用软件开发工具来开发。
软件分为系统软件和应用软件。它不仅包括可以在计算机上运行的程序。
软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序调试和测试,以及程序的编制和提交。
扩展资料:
软件开发专业主要培养德智体全面发展,具有一定的计算机软硬件维护、网络建设、维护和管理的高级实用技术人才。
通过专业学习,能掌握常用的计算机软件的使用、维护和技巧;学生应了解计算机硬件在硬件方面的发展,熟悉计算机的组装方法,能熟练运用计算机应用软件测试性能,故障风扇wai,掌握硬件故障的一般处理方法。
在网络方面,学生应掌握当今流行网络的技术特点,掌握网络工程、网络维护、网络安全及应用等方面的知识。能够进行一般网络工程方案设计、建设、网络维护,以及简单的网站建设与维护。
软件开发流程
先上一个软件开发的整体流程图,这就是大名鼎鼎的“瀑布模型(Waterfall Model)”。据说由温斯顿·罗伊斯(Winston Royce)在1970年提出。
瀑布模型的特点为:上一阶段的结果为本阶段的输入,开发进程从一个阶段“流动”到下一个阶段。
(图中右侧括号中为每个阶段的输出物。)
一般软件售前人员对这个流程比较熟悉,这其中项目规划、可行性论证报告、需求说明书等,通常都由IT售前人员提供。
如果将瀑布模型的设计部分分为总体设计、详细设计两部分,即“软件开发的8个流程”:
1、问题定义阶段
用户提出一个软件开发需求以后,分析人员首先要明确软件的实现目标、规模及类型:如它是数据处理问题还是实时控制问题,是科学计算问题还是人工智能问题等。
2、可行性研究
基本任务:“对于上一个阶段所确定的问题有行得通的解决办法吗”?
内容包括经济可行性、技术可行性、法律可行性、不同方案。
结束标准:提出关于问题性质、工程目标和规模的问题定义书面报告;提出可行性研究报告。
3 需求分析
基本任务:“为了解决这个问题,目标系统必须做什么?”
确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。
结束标准:软件需求规格说明书(specification)
4 总体设计(概要设计)
基本任务:“概括地说,应如何解决这个问题”
设计出实现目标系统的几种可能的方案。推荐一个最佳方案。
结束标准:概要设计文档
5 详细设计
基本任务:“应该怎样具体地实现这个系统呢”
结束标准:设计出程序的详细规格说明。
6 编码
基本任务:写出正确的容易理解、容易维护的程序模块
结束标准:以某种程序设计语言表示的源程序清单
7 测试(单元测试和综合测试)
基本任务:在设计测试用例的基础上检验软件的各个组成部分是否达到预定的要求。
结束标准:软件合格,能交付用户使用。
8 软件维护
基本任务:使系统持久地满足用户的需要。
改正性维护,适应性维护,完善性维护,预防性维护。
虽然后来提出很多模型,如演化模型(evolutionary model)、增量模型(incremental model)、原型模型(prototyping model)等,但现在软件开发的流程,依然总体遵循瀑布模型。
如何搭建一个系统
说完流程,再说说系统是如何被开发人员搭建出来的。
系统的百度百科定义为:软件系统(Software Systems)是指由系统软件、支撑软件和应用软件组成的计算机软件系统,它是计算机系统中由软件组成的部分。
搭建系统可以分为三个步骤:环境部署、软件开发、软件部署。
1、环境部署
准备服务器,部署 *** 作系统、软件环境、安全软件、FTP服务器等。数据库和应用可分开布置在多个服务器,也可布置在同一服务器。
准备网络,分为内网和外网。外网需要购买公网IP和域名。
负责人:网络管理员
2、软件开发
包括开发语言选择、架构设计、数据库设计等工作,并进行编码、编译、测试、打包。
负责人:程序员
3、软件部署
将程序文件上传到服务器,进行部署、配置,成功后即可通过客户端访问项目。
负责人:软件实施
软件开发阶段
下面以java语言开发为例,简单讲讲程序员是如何进行软件开发的。
(本部分参考了“软帝在线”公众号、博客园“架构与我”的文章)。
1、新建java文件(或工程)
java源代码本质上就是普通的文本文件,可以用txt等工具编辑java代码(程序员一般采用源代码编辑工具,如:Notepad++;或集成开发工具IDE,如:Eclipse)。txt编写后需将文件扩展名改成java。
2、编写代码
以“Hello World”举例编写代码:
public class HelloWorld {
public static void main(String[] args) {
Systemoutprintln("Hello World");
}
}
该程序表示的意思是输出Hello World这样一段话。
3、编译程序
Java程序之所以能做到跨平台运行,是因为Java程序运行在JVM中的,然而JVM只能够识别字节码文件,而不能直接识别Java文件。所以需要先将Java文件编译成字节码文件,即class文件,然后字节码文件才能够在JVM中运行。
编译文件,可以通过手动执行Dos命令javac,或直接用编译器如Eclipse完成。
4、运行程序
可在Dos命令窗口中输入java命令,按回车,输出Hello World;
或在编译器的控制台中看到输出结果。
5、单元测试
单元测试(模块测试)是开发者对编写的一小段代码,检验一个很小的、很明确的功能是否正确。
通常采用JUnit框架(多数java开发环境已集成)进行测试,即所谓白盒测试,叫“白盒”是因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
测试通过后,就完成了软件开发阶段,可以打包部署了。(IT售前圈)
一、集群的基本概念
有一种常见的方法可以大幅提高服务器的安全性,这就是集群。
Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。
大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。
一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的 *** 作系统和应用程序文件存储在其各自的本地储存空间上。
Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时,客户将能很快连接到新的应用服务上。
二、集群的硬件配置
镜像服务器双机
集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案,通常镜像服务的硬件配置需要两台服务器,在每台服务器有独立 *** 作系统硬盘和数据存贮硬盘,每台服务器有与客户端相连的网卡,另有一对镜像卡或完成镜像功能的网卡。
镜像服务器具有配置简单,使用方便,价格低廉诸多优点,但由于镜像服务器需要采用网络方式镜像数据,通过镜像软件实现数据的同步,因此需要占用网络服务器的CPU及内存资源,镜像服务器的性能比单一服务器的性能要低一些。
有一些镜像服务器集群系统采用内存镜像的技术,这个技术的优点是所有的应用程序和网络 *** 作系统在两台服务器上镜像同步,当主机出现故障时,备份机可以在几乎没有感觉的情况下接管所有应用程序。因为两个服务器的内存完全一致,但当系统应用程序带有缺陷从而导致系统宕机时,两台服务器会同步宕机。这也是内存镜像卡或网卡实现数据同步,在大数据量读写过程中两台服务器在某些状态下会产生数据不同步,因此镜像服务器适合那些预算较少、对集群系统要求不高的用户。
硬件配置范例:
网络服务器两台服务器 *** 作系统硬盘两块
服务器数据存贮硬盘视用户需要确定
服务器镜像卡(部分软件可使用标准网卡)两块
网络服务网卡两块三、双机与磁盘阵列
与镜像服务器双机系统相比,双机与磁盘阵列柜互联结构多出了第三方生产的磁盘阵列柜,目前,豪威公司、精业公司等许多公司都生产有磁盘阵列柜,在磁盘阵列柜中安装有磁盘阵列控制卡,阵列柜可以直接将柜中的硬盘配置成为逻辑盘阵。磁盘阵列柜通过SCSI电缆与服务器上普通SCSI卡相连,系统管理员需直接在磁盘柜上配置磁盘阵列。
双机与磁盘阵列柜互联结构不采用内存镜像技术,因此需要有一定的切换时间(通常为60DD180秒),它可以有郊的避免由于应用程序自身的缺陷导致系统全部宕机,同时由于所有的数据全部存贮在中置的磁盘阵列柜中,当工作机出现故障时,备份机接替工作机,从磁盘阵列中读取数据,所以不会产生数据不同步的问题,由于这种方案不需要网络镜像同步,因此这种集群方案服务器的性能要比镜像服务器结构高出很多。
双机与磁盘阵列柜互联结构的缺点是在系统当中存在单点错的缺陷,所谓单点错是指当系统中某个部件或某个应用程序出现故障时,导致所有系统全部宕机。在这个系统中磁盘阵列柜是会导致单点错,当磁盘阵列柜出现逻辑或物理故障时,所有存贮的数据会全部丢失,因此,在选配这种方案时,需要选用一个品质与售后服务较好的产品。
硬件配置范例:
网络服务器两台
服务器 *** 作系统硬盘两块
第三方生产的磁盘阵列柜一台
磁盘柜专用SCSI电线两根
磁盘阵列柜数据存贮硬盘视用户需求确定
网络服务网卡两块
除此之外,一些厂商还有更优秀的技术的解决方案,比如HP
三、HP双机双控容错系统
HPNetServer为双机双控容错系统提供了高品质和高可靠的硬件基础
HP双机双控容错系统结合了HP服务器产品的安全可靠性与Cluster技术的优点,相互配合二者的优势。
硬件配置范例:
HPL系统的网络服务器两台
服务器 *** 作系统硬盘两块
HP硬盘存贮柜(SS/6,RS/8,RS/12)一台
磁盘柜专用SCSI集群适配电缆两根
磁盘柜数据存贮硬盘视用户需求确定
HP集群专用阵列卡两块
网络服务网卡两块五、HP光纤通道双机双控集群系统
光纤通道是一种连接标准,可以作为SCSI的一种替代解决方案,光纤技术具有高带宽、抗电磁干扰、传输距离远、质量高、扩展能力强等特性,目前在FC-AL仲裁环路上可接入126个设备。
光纤设备提供了多种增强的连接技术,大大方便了用户使用。服务器系统可以通过光缆远程连接,最大可跨越10公里的距离。它允许镜像配置,这样可以改善系统的容错能力。服务器系统的规模将更加灵活多变。SCSI每条通道最多可连接15个设备,而光纤仲裁环路最多可以连接126个设备。
光纤集群系统组成:
HP光纤集群系统硬件设备包括有两台HP服务器(需支持光纤卡,目前有LC2000、LH3000、LH4、LH6000、LT6000、LXr8000、LXR8500)及光纤适配卡,可以使用RS/12FC光纤磁盘阵列柜,需另加一对或两对网卡用于心跳检测和与客户端连接。在配置过程中还需另外选配光纤卡到光纤存贮设备的光纤电缆。硬件配置:
HPL系统的网络服务器两台
服务器 *** 作系统硬盘两块
HP光纤阵列存贮柜(RS/12FC)一台
光纤磁盘柜专用光纤电缆两根
光纤磁盘柜数据存贮硬盘视用户需求确定
HP光纤适配卡两块
网络服务网卡两块
四、集群的软件配置
基于NT平台的集群软件
Microsoft的MSCS,也有许多第三方的专业软件公司开发的集群软件,如豪威的DATAWARE,VINCA公司的STANDBYSERVER,NSI公司的DOUBLE-TAKE
MSWolfPack的特点
MSWolfPack是MSClusterserver的别称,是微软针对Cluster技术研制开发的双机软件。它集成在NTSERVER上,支持由二台机器组成的双机系统,提供一种高可用且易管理的应用环境。
主要特点:
自动检测和修复服务器或应用程序的错误
可实现对服务器中应用程序的切换
可通过TCP/IP连接各种客户端,如MS-DOS、WINDOWS3X/9X/NT,AppleMacintosh、UNIX生产主机无需人工干涉即可自动恢复数据并接管任务
易管理性:
可自动审核服务器和应用程序的工作状态
可建立高可用性的应用程序、文件共享、打印请求等
可灵活设置应用程序和数据的恢复策略
简单 *** 作即可进行应用程序的离线,重新再线,服务器间的迁移。
目前,WINDOWS2000AdvancedServer与WINDOWS2000DataCenterServer都集成有更先进集群技术。
其它的网络 *** 作系统平台上也有许多集群软件,比如:
基于novell平台的集群软件有NovellHAServer、NovellSFTIII
基于scoUNIX平台的集群软件有Sentinel集群软件
基于Linux平台的集群软件有TurboCluster
五、集群技术的发展趋势
集群技术随着服务器硬件系统与网络 *** 作系统的发展将会在可用性、高可靠性、系统冗余等方面逐步提高。未来的集群可以依靠集群文件系统实现对系统中的所有文件、设备和网络资源的全局访问,并且生成一个完整的系统映像。这样,无论应用程序在集群中的哪台服务器上,集群文件系统允许任何用户(远程或本地)都可以对这个软件进行访问。任何应用程序都可以访问这个集群任何文件。甚至在应用程序从一个节点转移到另一个节点的情况下,无需任何改动,应用程序就可以访问系统上的文件。
在今天,利用服务器的集群技术,通过周密计划和网络维护,系统破坏的机率是非常小的。所以,企业服务器的稳定必须使用集群技术。
你好,软件实施,其实并不是一件很容易的事,也许可算是一项挑战,很需要“明知山有虎,偏向虎山行”的信心和勇气。为什么这样说呢?
因为,软件实施可以说是软件产品服务主线的一个决定性环节,软件的成功离不开实施。那什么才是成功的实施呢?我认为是要让用户真正使用起来,让用户满意,用户的成功也是软件公司的成功。只不过,软件要能真正使用起来,其实也不象想象中那么容易。对于实施不成功的情况,通过一些报导和我到晋南的调研这是经常发生的,而且比例很高。
鉴于以上实施的重要性和难度,那我们的实施就不再是简单的安装调试、用户培训、初始化、试运行支持等。因为,实施过程中会遇到各种样的问题,不同的客户可能遇到的问题也不同。我们的软件象媳妇见公婆,公婆总是很挑剔,总是说你这不好那不好。但尽管公婆挑剔,但我们还的见呀!俗话不是说“丑媳妇也的见公婆”吗?何况我们还不是那么丑。这就要讲究如何见的过程了。其实,对一个软件来说,最初的问题是这样酿成的。一开始市场人员出马,把好的吸引人的东西拼命向客户灌输,如果在演示中蹦出一两个Bug,相信销售人员总能沉着地在客户还没有反应过来之前化险为夷。销售人员总是承诺好的功能、性能和质量,引发出客户极大的兴趣,一切顺利的话,经理很快就可以出马签定购买和服务合同,于是,对软件公司来说,最重要的事情似乎就已经差不多了。然后,软件公司派遣实施人员去客户现场安装和演示,请注意,此时是产品最脆弱的时候。实施人员把整套产品拿到客户面前,终于,丑媳妇要掀开面纱让公婆看了。这时,问题如此之多,一时令人焦头烂额。所以说,问题即使很多,我们也需要一个一个去解决。这就要求我们技服人员必须具备以下素质才能应付自如,使客户满意。
首先实施人员应该具有基本的网络诊断与分析问题的能力,至少对问题作出比较正确的判断。因为,安装时可能遇到的意想不到的问题非常多。例如,服务器和网络环境比想象中要苛刻的多,和其它应用软件发生冲突等,甚至和杀毒软件有冲突。对于机器配置不够导致的问题,则可以列出清单,提交客户方的负责人,由其进行定夺。
其次,要对不同的问题要有相对应的解决方案。有时我们的客户端软件运行的速度实在令人尴尬,有时用户登陆就要花费很长时间,造成客户对软件的第一印象就是慢。甚至还会蹦出如超时之类的低层错误。对于这样的问题,应该从两方面着手,既应该注意到客户硬件环境的因素,向客户解释。也应该判断软件产品是否存在相关的问题,当然这个我们心里明白就行了,不要让客户知道,我们应反馈回公司让其改进。
另外,要学会和客户领导交往,领导就是领导,和普通员工就是不同。首先,领导没有耐心来看我们软件的具体功能,但他需要听到或看到很概括的展示,那我们就应投其所好了。也许,我们常常无法回答领导的某些问题。对于这样的问题,我们首先要理解领导的真实意图,这也是软件需求的重要来源。软件的使用对领导来说无非是要加强管理,不使用软件的时候,领导很多数据可能无从知道,当员工的工作数据融合到软件中来了以后,对领导应是很大的帮助。其它的对策包括,让低层员工为我们的软件说好,显然领导比较愿意相信自己单位人的判断。除此之外,我们的另一种回答可以是,软件将在使用后逐步完善。
只学会和客户领导交往还不行,最重要还的和客户员工相处好,前面也提到了领导比较愿意相信自己人的判断。从安装开始,部分用户就可能不配合。在培训课上,有可能前来参加的工作人员大多会对软件抵制。原因很简单,使用软件,增加了他们的工作量,中国是一个人治的社会,管理是模糊的不精确的,工作人员被严格管理起来是令他们所不能习惯的。而且人在本质上都是有些惰性的。因此,可想而知,用户们会指出很多和他们业务不同的,软件不一定能解决的东西,凡此种种,来证明这个软件无法使用。在这种情况下,我们只有尽力展示软件的某些功能,告诉他这个功能能帮他做什么,起到什么效果,那个功能又能帮他解决什么问题。这里你其实不必紧张,一定不要和客户发生争执,非分个清楚,在这里我们可以用难得湖涂。其实,一些用户只是发发牢骚而已,也许他们也知道,领导会强制他们使用。
最后,也是最重要的一点,我们要具有项目进度、优先级别、质量观念和服务意识。这一点我们应从以下几个方面做起:
第一、全面规划,分步实施,重点突破,效益优先。在实施开始的时候,应该站在客户立场上,对于信息化建设,进行辅助的整体规划,以避免实施过程中走弯路。要把产品视为客户最适合的应用解决方案。在整体规划的前提下,才有可能对分步实施进行计划。分步实施的价值在于合理分配,当你长跑的时候,如果把每一圈作为一个里程碑,那么心理负担就会减轻一些,实施工作在这一点上也是类似的。在规划分步实施的时候,为每一步骤设置里程碑,这样可以把问题分解,并且取得更多的成就感。一步一步成功,前一步的成功,能够及时得到领导的首肯,并鼓舞下一步的实施。重点突破也是软件实施的要旨之一。如果事先了解并考虑到当前客户的问题,抓住重点开展实施,那么软件实施成功的可能性就会大增。
第二、工作管理:计划、记录、讨论和小结。我们应该养成这样的工作习惯,即事先计划,过程中记录,事后总结。这一点我是用了丁总的笔记本电脑所感受到的,其实丁总做的每件事都是有文本计划可寻的,这样的工作方式才能使人遇事不慌,不至于丢三落四。凡事预则立,不预则废。事先应进行精心的计划和准备,多方了解客户,做好最坏的打算和准备,考虑到实施中最可能发生的风险,设计好实施的优先级别等等。在前期的接触中,即应考虑到对方管理的变化方向,例如了解领导的管理思路和倾向,主要想解决的问题,客户内部的阻力,直接用户的素质等等,从而方能因地因人制宜,取得更好的效果。在另一方面,对自己的软件产品也要了如指掌,其中也包括针对竞争对手的优势,产品的薄弱环节等。
在工作过程中应做好工作记录,对遇到的问题及时填写问题报告,和客户交换的文件、计划、等都应该统一管理好。另外,如果有了整个工作过程的记录,在实施完成后进行总结应该是非常容易的。什么地方比较成功,什么地方做的不够,原因是什么,今后如何改进和避免,等等。
第三、处理好与用户的关系,用户满意了,软件实施的成功也就指日可待了。这个就不多说了,前面也提到了。
第四、我们应正确看待我们的产品,那我们该如何看待呢?也许已经有很多人说这个产品很滥,即便如此,我们也必须表现得非常热爱自己的产品。如果连你都觉得产品不好,用户自然就会觉得产品非常不好。软件产品的质量本应该是过硬的,但难免存在一些没有解决好的问题。如果遇到了问题,也不必紧张,可以先对问题进行分类,然后考虑各种解决的策略,例如,有些问题可以放在下一版本再改进,等等,不管如何,应该和用户达成一致的理解,即软件只是解决客户一部分的问题,而不可能包治百病。
第五、利用一切可利用的资源,如网络、公司、同事。在遇到阻力的时候,可以向公司提出支援,以寻求支持。客户的合理要求,要及时提缴公司修改,这也是促进我们软件进一步完善的最有效途径之一。例如:我们的医保今年就没少改进使他更加人性化,在市场销售中占有明显的优势,他的改进来源于那里呢,就是来源于客户的需求。
第六、三分软件,七分管理,十二分数据,这是我最近从网上看到的ERP实施的著名原则。其意主要是保护好数据,保证其正确性。这也是任何实施的初始化的重要原则。在初试化的时候,即为用户设计好数据备份和恢复的手段,以防止任何的意外发生。
第七、用户经过培训后会了一些基本 *** 作,但真正用的时候,肯定还会遇到问题。这就是我们已经把用户扶上了马,扶上马还不行我们还的看到他能驾驭整匹马,那接下来我们还的送他一程,也就是我们还可以帮助他做更多的事情,也许在培训内容以外,还有其它的软件功能。由此,展示我们的服务是高质量的。除此之外,“扶上马,送一程”的重要意义也在于推动软件的正式运转。很多用户将会不习惯改用软件来处理工作事务。毕竟使用习惯要改变并不容易。一方面我们可以通过对方的负责人去疏导,另一方面也可以先把问题列出来,一个一个解决,就象解开很多结一样。一边用户在使用,一边我们寻找问题并进行改进。在慈利的实施中我就体会到了这一点,适当地及时地处理一部分需求,可以使实施顺利进行下去,而且在和对方交涉的时候容易显示诚意,达到有理有利有节。否则会卡住在某一个局部而无法顺畅进行下去,最终慈利是很满意的,从而才带来了泸溪的又一个新的项目。
总之、用户验收通过,对于我们实施人员来说,应该为自己庆祝了。验收报告是我们的答卷。同时,也不要忘记进行总结,软件实施,总是有得有失,有忧有喜,这就和我们的生活是一样的,不是么。最后,我把以下这句话送给所有实施人员,你可以这么想,也可以这么做,并且做到:去之能战,战之能胜!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)