软件开发需要哪些知识和技能

如题所述

开发过程

  软件开发过程分为5个阶段:
分析
  软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
设计
  软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
编码
  软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
  当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
测试
  软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。黑盒法。
维护
  维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
  一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
  在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
编辑本段
开发平台

  软件开发平台源于繁琐的实践开发过程中。开发人员在实践中将常用的函数、类、抽象、接口等进行总结、封装,成为了可以重复使用的“中间件”,而随着“中间件”的成熟和通用,功能更强大、更能满足企业级客户需求的——软件开平台应运而生。
  平台是一段时间内科研成果的汇聚,也是阶段性平台期的标志,为行业进入新的研发领域提供了基础。由于平台对企业核心竞争力的提升非常明显,目前国内的管理软件市场,软件开发平台的应用已经成为一种趋势。
  由于开发环境、开发人员、功能定位、行业背景等的不同,不同品牌的平台存在较大差别。
编辑本段
开发环境

  软件开发环境在欧洲又叫集成式项目支援环境(Integrated Project Support Environment,IPSE)。 软件开发环境的主要组成成分是软件工具。人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种软件工具加工所产生的软件产品或半成品(如 源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。工具间的联系和相互理解都是通过存储在信息库中的共享数据得以实现的。
  软件开发环境数据库是面向软件工作者的知识型信息数据库,其数据对象是多元化、带有智能性质的。软件开发数据库用来支撑各种软件工具,尤其是自动设计工具、编译程序等的主动或被动的工作。
  较初级的SDE数据库一般包含通用子程序库、可重组的程序加工信息库、模块描述与接口信息库、软件测试与纠错依据信息库等;较完整的SDE数据库还应包括可行性与需求信息档案、阶段设计详细档案、测试驱动数据库、软件维护档案等。更进一步的要求是面向软件规划到实现、维护全过程的自动进行,这要求SDE数据库系统是具有智能的,其中比较基本的智能结果是软件编码的自动实现和优化、软件工程项目的多方面不同角度的自我分析与总结。这种智能结果还应主动地被重新改造、学习,以丰富SDE数据库的知识、信息和软件积累。这时候,软件开发环境在软件工程人员的恰当的外部控制或帮助下逐步向高度智能与自动化迈进。
  软件实现的根据是计算机语言。时至今日,计算机语言发展为算法语言、数据库语言、智能模拟语言等多种门类,在几十种重要的算法语言中,C&C++语言日益成为广大计算机软件工作人员的亲密伙伴,这不仅因为它功能强大、构造灵活,更在于它提供了高度结构化的语法、简单而统一的软件构造方式,使得以它为主构造的SDE数据库的基础成分——子程序库的设计与建设显得异常的方便。
  事实上,以C&C++为背景建立的SDE子程序库能为软件工作者提供比较有效、灵活、方便、友好的自动编码基础,尤其是C++的封装等特性,更适合大项目的开发管理和维护。
编辑本段
开发语言

  常见的软件开发语言:JAVA、C/C++/JSP/ASP/PB/DELPHI等
  与应用最关键的需要用到数据储,我们常说的数据库,常见数据库:MYSQL/SQLSERVER/ORACLE等。
编辑本段
专业

专业培养
  软件开发专业主要培养德智体全面发展,具有一定计算机软硬件维护、网络组建、维护管理的高级实用技术型人才。通过本专业的学习,能熟练掌握常用的计算机软件的使用、维护与技巧;在硬件方面学生应了解计算机硬件的发展,熟练掌握计算机组装的方法,能熟练运用应用软件检测计算机性能、故障的范围所在,掌握硬件故障的一般处理方法;在网络方面,学生应掌握目前流行网络的技术特点,掌握网络工程、网络维护、网络安全及应用方面的知识。能胜任一般网络工程方案的设计、组建、网络维护、及简单网站的建设与维护。
培养对象
  本专业学生主要学习计算机基础,接受从事软件应用方面的基本训练,具备应用软件解决实际问题的基本能力。
就业方向
  本专业毕业生适合的工作岗位是计算机程序设计师。适合于熟练地按照工程化的思路进行软件编制、软件测试的工作岗位,能担任各种企事业单位和各级工程建设部门、管理部门的计算机软件和硬件维护、网络的组建、维护等工作,也可从事计算机研究与应用、软件开发等方面的工作。就业范围为:计算机软件公司、具有软件开发能力的大型企业及事业单位、大专院校和科研院所。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-10-30
软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。
第2个回答  2022-06-05
软件技术工程师
随着移动互联网的普及与发展,手机应用不断深入我们生活的方方面面,移动系统和软件应用的开发领域,成为了未来具有潜力的行业之一,合格的软件人才在任何企业都具有不可替代的竞争优势 。

选择江西新华电脑学院软件技术工程师专业,你将学习:
网络安全基础、Dreamweaver网页设计、Photoshop网页效果图制作、Window Server 2008服务、器操作系统和活动目录、C语言、SQL Server2005数据库、设计和高级查询、HTML5+CSS3、JavaScript、jQuery高级编程、动态网页设计PHP+MYSQL、Linux服务器操作系统、数据结构软件工程、JAVA面向对象程序设计、oracle数据库、J2EE服务器端高级编程、手机APP视觉设计、APP应用程序开发等。
第3个回答  2012-01-04
需要的知识技能分为两种:
职业技能,也就是常规的一些技术方面的基本要求
其次就是分析问题的能力。
后者比前者对于有经验的人来说更重要。
第4个回答  2012-01-04
现在软件开发最主流的两大技术方向就是JAVA和.NET两个,

编译原理,数据结构,离散数学,某些语言(JAVA),编程工具(Eclipse),数据库,Ajax,JavaScript,JQuery等应用。

参考资料:baidu

软件开发需要学习什么知识 软件开发必备技能有哪些
主要包括关系数据库和文档数据库。开发人员应熟悉关系数据库,同时对文档数据库有所了解。数据库在软件开发中用于存储应用程序数据。

软件开发需要学习什么知识 软件开发必备技能有哪些
1、基础知识 学习软件开发需要一定的数学和英语基础。虽然这些基础要求可能不是非常高,但掌握它们可以帮助你更高效地学习相关知识。2、基础编程语言 编程语言是进入软件开发的关键。初学者可以根据个人喜好或职业规划选择一门语言。目前流行的编程语言包括Java、PHP、.net、C#等。新手可以从C语言开始,这是...

软件开发一般要哪些技术
软件开发需要的技能:1、理解计算模型和框架:顺序计算、并发计算 (并行计算、分布式计算);2、高效的数据处理:熟悉常用数据结构和算法设计,能够针对计算目标设计高效的数据结构和算法并实现之, 满足性能需求;3、大容量的数据管理与检索:至少精通一种主流数据库, 从数据处理中分离出的一种专门针对大...

软件开发专业主要学些什么内容啊?
软件工程:包括软件开发流程、项目管理、需求分析、系统设计等方面的知识,这是软件开发专业中的重要课程。数据库技术:如MySQL、Oracle等数据库管理系统,这些是进行数据处理和存储的重要工具。操作系统:如Windows、Linux等操作系统的原理和使用,这是软件开发中不可或缺的一部分。网络技术:包括TCP\/IP协议...

软件开发都需要学什么技术
从事各领域开发,应掌握扎实的计算机基础,如操作系统、网络、数据库等知识。研发级程序员需重视数学,系统学习算法、数据结构和编译原理。学习时间因人、语言及操作难度而异。快速学习途径包括参加专业培训学校,高效提升技能。自学方法多样:请教同事获取重点知识,阅读开发入门书籍,思考并解决学习中遇到的问题...

软件开发需要学什么?
软件开发主要分为WEB开发、移动端开发、嵌入式开发三个开发方向,不同方向的学习内容也不同。1、WEB分为前端开发和后端开发,前端开发需要学CSS3、JavaScript、Html5,后端开发开发需要学PHP、Python、Java。2、移动端开发需要学OC或者Swift。3、嵌入式开发需要学C语言、计算机基础知识等。关于软件开发 软件...

软件开发需要哪些知识和技能
软件开发需要以下知识和技能:1.编程语言:熟悉至少一种编程语言,如Java、Python、C++等,以及相关的编程范式和技术。2.数据结构和算法:了解常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、图算法等),并能够分析和解决问题。3.软件开发生命周期:了解软件开发的不同阶段,...

软件开发需要学什么 软件开发流程介绍
软件开发是一项系统工程,涵盖了从用户需求分析到软件维护的多个阶段。学习软件开发需要掌握的基础知识包括数学和英语,这些学科为编程打下坚实的基础。初学者可以从学习一门基础编程语言开始,如C语言,掌握基本的编程思维和技能后,可以逐步扩展到其他编程语言。数据库知识也是软件开发中不可或缺的部分。了解...

从事软件开发工作必须具备哪些知识?
从事软件开发工作需要具备广泛的知识和技能,以下是一些基本的要求:1.编程语言:掌握一门或多门编程语言,如Java、Python、JavaScript、C++等,以便能够有效地进行软件开发。2.数据结构与算法:理解并熟练运用常见的数据结构和算法,以提高代码效率和性能。3.数据库知识:了解数据库的基本概念,能够设计和优化...

在学习软件开发需要学习哪些方面的技能(学软件开发需要什么基础...
在学习软件开发时,需要掌握多个方面的技能和基础知识,以下是一些重要的方面:1.编程语言:学习一门或多门编程语言,例如Java、Python、C++、JavaScript等。编程语言是软件开发的基石。2.数据结构和算法:了解常用的数据结构(如数组、链表、树)和算法,对于解决问题和优化代码至关重要。3.软件工程:了解...

相似回答