一、软件的概念
1、软件:是计算机系统中与硬件相互依存的部分,它包括程序、数据及相关文档的完整集合。其中
Ø 程序-是按照事先设计的功能和性能的要求执行的指令序列
Ø 数据-是使程序正常操纵信息的数据结构
Ø 文档-是程序开发、维护和使用有关的图文资料
2、软件分类(按功能划分)
Ø 系统软件:如操作系统、数据库管理系统、设备驱动程序等
Ø 支撑软件:协助用户开发软件的工具性软件,如微软可视化开发平台工具
Ø 应用软件:为特定目的服务的软件,如财务管理软件。
二、软件工程和软件开发
1、软件工程
Ø 一系列完善的工程化原则。
软件工程是为经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。
Ø 软件工程是开发、运行、维护和修复软件的系统方法。
1983年,IEEE(电气和电子工程师学会)作出定义,软件工程是开发、运行、维护和修复软件的系统方法。软件定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必须的数据。
Ø 主要思想是强调软件开发过程需要英语工程化的原则。
一个软件从开始到最后一共需要以下几个流程:1、计划2、分析3、设计4、编码5、测试6、维护1、计划对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
2、分析软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。
本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。 需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。
本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。 在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。
系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。3、设计软件设计可以分为概要设计和详细设计两个阶段。
实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。
模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。4、编码软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。
充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。 当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。
而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。5、测试软件测试的目的是以较小的代价发现尽可能多的错误。
要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。 如何才能设计出一套出色的测试用例,关键在于理解测试方法。
不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。
结构错误包括逻辑、数据流、初始化等错误。 用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。
白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。 6、维护维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。
即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。 那么它的维护阶段也是运行的这五年至十年期间。
在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。
然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。 在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
软件开发是生产制造软件;软件测试是验证开发出来软件的质量。
类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。关系应该是:1、没有软件开发就没有测试,软件开发提供软件测试的对象。
2、软件开发和软件测试都是软件生命周期中的重要组成部分3、软件开发和软件测试都是软件过程中的重要活动。4、软件测试是保证软件开发产物质量的重要手段。
###嗨,这个还用问么,软件测试是软件开发的一个子过程,软件在经历了“业务前景分析”、“需求分析”、“总体设计”、“详细设计”、“实现”后紧接着就是“测试”、“发布”、“维护”等等软件测试现在也成了软件工程的一个方向,也有很多这方面的考试和岗位。###一个是创造一个是找毛病###软件开发的内容是:需求、设计、编程和测试!软件开发包括测试又不全包括。
有毅力可以自学,没有得到还是报个班吧(青鸟什么的),报班有老师教和解答问题,有同学烘托气氛,学的快。
自学的话先从C或C++开始吧,选学学基础的逻辑。
学完基础就要想想学什么语言了,现在比较多的是Web,可以学Java,.net,Php等,还要学Html和JScript等网页界面语言。
也可以学C/S的,如QQ、360这样的软件,语言有C++和C#,都不错,只不过WEB的越深越偏向现实的业务逻辑,什么ERP、OA之类,而C/S越深一般越偏向架构,因为C/s的架构和传输大多都是自己写的。
之后还有驱动和算法之类的,做这个的挣的比较多,也比较有难度,但是招的人少,没工作经验很难找到好点的工作。
没有基础的人,如何学习软件开发? 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。软件学习也是如此,没有捷径可走。
今天我们来谈谈如何学习,希望大家"不走弯路,就是捷径"。
一般学习软件开发都会首先学习一门语言,Java被称为最好的面向对象语言,让我们来看看Java的学习路线。
1 基础语法及JAVA原理
基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习JAVA也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。
2 OO思想的领悟
掌握了基础语法和JAVA程序运行原理后,我们就可以用JAVA语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是基于组件开发的基础;属于强势技术之一。现在还有AO技术。是OO技术的一种补充。
3 基本API的学习
进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的"不需要重新发明轮子"。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。
4 开发工具的用法
在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。JAVA开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。
5 学习开源软件的设计思想
JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。
6 不局限于JAVA
JAVA不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.609秒