“软件工程”
来源:互联网 发布:淘宝店铺装修模板下载 编辑:程序博客网 时间:2024/06/16 18:28
通过网上的查找,软件工程简称“软工”,我找到了一条关于软件工程最简单的说明:编程、网络关于电脑的工作。我觉得这句话解释还可以,比较通俗易懂,不像那种专业术语,让大多人看不懂。
下面说说什么是软件工程?
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。
软件工程有什么作用?
在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率。
软件工程的过程。
三个阶段:定义阶段:可行性研究初步项目计划、需求分析;开发阶段:概要设计、详细设计、实现、测试;运行和维护阶段:运行、维护、废弃
原则:1、抽象;2、信息隐蔽;3、模块化;4、局部化;5、确定性;6,一致性;7、完备性;8、可验证性
软件工程的基本原理?
(1)用分阶段的生存周期计划进行严格的管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)软件工程结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。
软件工程的目标是什么?
在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
软件工程有哪些特点?
(1)适用性:软件在不同的系统约束条件下,使用户需求得到满足的难易程度。
(2)有效性:软件系统能最有效的利用计算机的时间和空间资源。各种软件无不把系统的时/空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性时会发生矛盾,这时不得不牺牲时间有效性换取空间有效性或牺牲空间有效性换取时间有效性。时/空折衷是经常采用的技巧。
(3)可修改性:允许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。
(4)可靠性:能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。
(5)可理解性:系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制系统软件复杂性,并支持软件的维护、移植或重用。
(6)可维护性:软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。
(7)可重用性:把概念或功能相对独立的一个或一组相关模块定义为一个软部件。可组装在系统的任何位置,降低工作量。
(8)可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。
(9)可追踪性:根据软件需求对软件设计、程序进行正向追踪,或根据软件设计、程序对软件需求的逆向追踪的能力。
(10)可互操作性:多个软件元素相互通信并协同完成任务的能力。
对于相对专业及需要的人员,需要了解下面的内容。
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。[1]
软件体系结构表示了一个软件系统的高层结构,主要特点有:
1)软件系统结构是一个高层次上的抽象,它并不涉及具体的系统结构(比如B/S还是C/S),也不关心具体的实现。
2)软件体系结构必须支持系统所要求的功能,在设计软件体系结构的时候,必须考虑系统的动态行为。
3)在设计软件体系结构的时候,必须考虑有现有系统的兼容性、安全性和可靠性。同时还要考虑系统以后的扩展性和伸缩性。所以有时候必须在多个不同方向的目标中进行决策。
软件体系结构贯穿于软件研发的整个生命周期内,具有重要的影响。这主要从以下三个方面来进行考察:利益相关人员之间的交流,系统设计的前期决策,可传递的系统级抽象。
当前已经有一些关于规范化软件体系结构,比如:ISO的开放系统互联模型、X Window系统等等。
软件需求包括 3个不同的层次――业务需求、用户需求和功能需求。
业务需求(Businessrequirement):
表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围( vision and scope )文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter或 market requirement)文档。
用户需求(userrequirement):
描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。
功能需求(functionalrequirement):
规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求( behavioral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。
除此之外,每个系统还有各种非功能需求:
系统需求(systemrequirement):
用于描述包含多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。
行业需求:
企业在招聘软件测试人员时主要看中应聘者的项目经验、逻辑思维能力、一定的技术能力和综合素质,而对学历、年龄、性别、工作经验等的要求较低,相对于IT行业其他职位而言,软件测试的入行更加容易。
就业岗位
Java方向:JAVA初级程序员、JAVA计算程序员、 JAVA工程师、J2EE系统工程师等。
.Net方向: .Net程序员网站开发工程师 .Net工程师等。
其它方向:简单的管理信息系统开发和维护人员、网页制作和客户端脚本程序编写人员、初级数据库管理和维护人员、数据库开发工程师、系统分析设计工程、软件项目配置管理员、文档编写工程师。
软件工程就业前景分析
软件工程(服务外包)专业:
随着世界产业转移的加速,欧美、日本等发达国家将大量的软件开发业务转移到中国、印度等国家。据统计,目前全球软件外包市场规模超过1000亿元,我国软件服务外包产业总收入在未来三年将达260多亿美元,随之而来的是对软件服务外包人才的巨大需求,未来5年,国内服务外包产业人才需求量至少要达到100万。目前软件外包从业人员的薪资水平普遍高于一般软件开发人员,就业前景广阔。
Java开发工程师:
据有关数据显示,目前,我国对软件人才的需求已达20万,并且以每年20%左右的速度增长。在未来几年,合格软件人才的需求将远大于供给。2010年,我国软件人才的缺口已达43.5万,其中尤以JAVA人才最为缺乏。当前世界各地持有Java Programmer证书的人员供需差距极大,迫使企业不得不用高薪聘请Java程序员。因此,Java Programmer
的含金量比一般的技术人员要高出很大一块。在美国、加拿大、澳大利亚、新加坡等发达国家和中等发达国家,持有Java Programmer认证证书的人年薪均在4-10万美金,而在国内持有Java Programmer认证的程序员也有极好的工作机会和很高的薪水。要想有个好的专业技术,首先得有扎实的技术作为基础,其次,要经常了解专业方面的最新信息,学习最新的技术;再次实践经验必不可少,在校期间通过多种渠道积累了实践经验,如暑期有针对性的打工,或通过熟人关系积累实践经验,也可有目的性地参加见习培训,学校安排的实习等等,了解行业有哪些职位,以及这些职位需要什么技术,有针对性地做好就业准备。
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程!!
- 软件工程
- 软件工程
- 软件工程
- JAVA_SE基础——29.构造函数
- objective-c 反射
- svm评价指标公式
- 5种服务器网络编程模型讲解
- 我 的 客 户 案 例
- “软件工程”
- hdu 5455 Fang Fang(2015 ACM/ICPC Asia Regional Shenyang Online)
- Leetcode67: First Bad Version
- Python中super的用法
- springsource tool suite下载地址分享
- tail -f log.txt命令的小技巧------观察日志log.txt的动态变化
- VIM配置
- servlet学习---第二天(GenericServlet、HttpServlet开发servler程序)
- java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet