百味书屋 导航

软件工程

来源网站:百味书屋 2016-10-27 13:07:43
经典文章

篇一:软件工程概念

软件工程概念

第一章:软件定义

1.软件( Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program) ,数据(Data)及其相关文档( Document)的完整集合。

2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。

3.按软件功能分类:系统软件,支撑软件,应用软件。

系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。

支撑软件:文本编辑程序,文件格式化程序,程序库系统等

应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。

按软件规模分类:微型,小型,中型,大型,甚大型,极大型。

按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件

4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题

5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件?

5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。

6.产生软件危机的原因:1.与软件本身的特点有关 2.与软件开发与维护的方法不正确有关. 软件工程学的目的:以较低的成本研制具有较高质量的软件

软件工程技术的两个明显特点:1.强调规范化2. 强调文档化

软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性

8.软件工程方法学包含3个要素:方法、工具和过程

9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发( 总体设计,详细设计,编码和单元测试,集成测试),运行维护 ( 持久满足用户需求)

10.软件过程模型:瀑布模型,快速原型模型,增量模型 ,螺旋模型,喷泉模型。

11.软件过程模型RUP:初始阶段,细化阶段,构造阶段,移交阶段

第二章:可行性研究的任务

1.可行性研究的五个方案:技术可行性,经济可行性,操作可行性,法律可行性,社会效益

2.可行性研究过程:1.复查系统规模与目标、2.研究目前的系统、3. 导出新系统的高层逻辑模型、4. 进一步定义问题、5. 导出和评价供选择的解法、6. 推荐行动方针、7. 草拟开发计划、8.书写文档提交审查

3.系统流程图:用来描述物理系统的工具。

4.系统流程图表达:是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。即:系统流程图≠程序流程图。

5.系统流程图的基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件

6.系统流程图元素:处理,输入输出,连接,换页连接,数据流。

7.数据流图:用来描述逻辑系统的工具。

数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。

8.数据流图四种基本符号:数据加工/处理/变换,数据源点或终点 (外部实体),数据存储,数据流。

9.数据字典的组成:数据流,数据流分量(数据元素),数据存储,处理。

10.数据元素:顺序,选择,重复,可选。

第三章:需求分析

1.需求分析:软件定义时期的最后一个阶段,

2.需求分析的基本任务:不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

3.软件需求的组成:业务需求, 用户需求,系统需求。

4.需求分析方法:面向数据流的结构化分析方法 (SA),面向对象的分析方法 (OOA) 等

5.逻辑模型:数据流图(DFD),数据字典(DD),实体-关系图(ERD),状态转换图(STD)

6.物理模型:系统流程图,

7.需求分析的基本思想:“自顶向下,逐步求精”,抽象和分解

8.需求分析;功能模型—数据流图,数据模型—实体-关系图,行为模型—状态转换图

9.实体-关系图(ERD):描述数据对象及数据对象之间的关系

10.数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能)

11.状态转换图(STD):描述系统对外部事件如何响应,如何动作

模型的核心是数据字典

12.实体-联系图(ER)组成::数据对象(实体)、数据对象的属性及数据对象彼此间相互连接的关系。

联系:一对一联系,一对多联系,多对多联系。

通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。

13.数据规范化目的是:1.消除数据冗余,即消除表格中数据的重复;2.消除多义性,使关系中的属性含义清楚、单一;3.使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;4.方便操作。使数据的插入、删除与修改操作可行并方便;5.使关系模式更灵活,易于实现接近自然语言的查询方式。

14.状态转换图(简称为状态图):通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果,系统将做哪些动作(例如,处理数据)。

15.状态:初态:一个,终态:0或多个,中间状态

16. 验证软件需求:一致性,完整性,现实性, 有效性。

第五章:总体设计

1.总体设计(概要设计):将软件需求转化为数据结构和软件的系统结构

2.数据库设计包括三个步骤:模式设计,子模式设计,存储模式设计。

3.软件设计原理:模块化,抽象,逐步求精,信息隐藏与信息局部化,模块独立

4.模块:是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。C、C++和Java语言中的 {...} 对过程、函数、子程序和宏等面向对象方法学中的对象是模块,对象内的方法也是模块

模块化是好的软件设计的一个基本准则

5.模块独立的含义:模块完成独立的功能,符合信息隐藏和信息局部化原则,模块间关连和依赖程度尽量小。

6.独立性的度量:耦合、内聚。

7.耦合是对一个软件结构内不同模块之间互连程度的度量。

8.耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点以及通过接口的数据

9.模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。 耦合性越高,模块独立性越弱

10.耦合强度依赖的因素:

一模块对另一模块的引用

一模块向另一模块传递的数据量

一模块施加到另一模块的控制的数量

模块间接口的复杂程度

11.耦合性由强到弱排列为:内容耦合,公共耦合,特征耦合,控制耦合,数据耦合。

12.原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。

13.内聚 (Cohesion):标志一个模块内各元素彼此结合的紧密程度。

14.内聚有七种,由弱到强分别为:偶然内聚->逻辑内聚->时间内聚->过程内聚->通信内聚->顺序内聚->功能内聚。

15.深度 = 分层的层数。过大表示分工过细。

16.宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。

17.扇出 = 一个模块直接调用/控制的模块数。

18.扇入 = 直接调用该模块的模块数。

19控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。

20.作用域:受该模块中的一个判定所影响的所有模块的集合。

面向数据流的设计方法:变换流,事务流。

第六章:详细设计

1.详细设计:描述系统的每个程序,包括每个模块和子程序名称、标识符、层次结构系

2.对程序的功能、性能、输入、输出、算法、流程、接口等进行描述

3.程序控制结构:顺序、选择,循环,(多分支,DO While ,DO Until)五种基本控制结构。

4.程序流程图又称为程序框图:是对一个模块的内部执行过程用图形来描述。

5.盒图:只能从上边进入,从下边走出,没有其他的入口和出口,

6.盒图的基本符号:顺序,选择型(If-then-else),多分支选择型(CASE型),DO-WHILE循环(先测试循环), DO-UNTIL循环(后测试循环). 调用子程序.

7.PAD图:PAD图中竖线的总条数就是程序中的层次数

8.PAD图基本符号:顺序,选择,循环,Case分支,语句标号,定义.

9.判定表:左上部列出所有的条件,左下部是所有可能的操作,右上部是各种条件的组合矩阵,右下部是每种条件组合对应的动作

第七章:软件实现

1.实现:编码和测试

2编码:把软件设计结果翻译成用某种程序设计语言书写的程序

3.程序设计语言:机器语言,汇编语言,高级语言

4.程序内部的文档包括:恰当的标识符,适当的注释,程序的视觉组织 。

5.符号名即标识符;包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。

6.程序的注释:程序员与日后的程序读者之间通信的重要手段

7.注释分为序言性注释和功能性注释.

8.软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,

其工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的3-5倍)。

8.软件测试方法:静态测试方法,,动态测试方法

9.静态测试方法:人工测试方法,计算机辅助静态分析方法

10.动态测试方法:白盒测试方法,黑盒测试方法.

11.黑盒测试法又称功能测试:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程

12.白盒测试法又称为结构测试:把程序看成装在一个透明的白盒子,测试者完全知道程序的结构和处理算法

13.软件测试步骤:1.模块测试又称(单元测试),2.子系统测试,3.系统测试称为集成测试,4.验收测试也称为确认测试,5.平行运行

14.单元测试主要使用白盒测试技术。

15.单元测试重点:模块接口,局部数据结构 ,重要的执行通路,出错处理通路,边界条件。

16.集成测试方法:非渐增式测试方法,渐增式测试方法

17.渐增式测试策略:可使用深度优先的策略,或宽度优先的策略

18.回归测试:是指重新执行已经做过的测试的某个子集,以保证修改变化没有带来非预期的副作用。

19.白盒测试技术:逻辑覆盖

20.逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。

21.逻辑覆盖:语句覆盖, 判定覆盖 ,条件覆盖,判定-条件覆盖, 条件组合覆盖,

21.路径覆盖,点覆盖= 语句覆盖,边覆盖=判定覆盖,路径覆盖 与条件组合覆盖。

22.语句覆盖:每条语句至少执行一次

23.判定覆盖 :每一判定的每个分支至少执行一次

24.条件覆盖:每一判定中的每个条件,分别按“真”、“假”至少各执行一次

25.判定-条件覆盖:同时满足判定覆盖和条件覆盖的要求

26.条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次。

27.路径覆盖:每条可能的路径都至少执行一次,若图中有环,则每个环至少经过一次

28.黑盒测试着重测试软件功能。

29.黑盒测试技术:等价类划分,边界值分析法,错误推测法

30.等价类:有效等价类和无效等价类

31.边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据

32.调试途径—调试策略:蛮干法,回溯法,原因排除法--

33.原因排除法-包括:对分查找法、归纳法、演绎法

34.软件可靠性:可靠性,可用性,正确性

35.可靠性和可用性的区别是:可靠性是在0到t时间间隔内,系统没有失效的概率。而可用性是在t时刻,系统正常运行的概率。

第九章:软件维护

1.软件维护的定义:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2.软件维护的原因:在运行中发现软件错误和设计缺陷,这些错误和缺陷在测试阶段未

能发现。

3.软件维护的类型:改正性维护,适应性维护,完善性维护,预防性维护

4.软件维护的内容:程序维护,数据维护,硬件维护

5.软件维护的特点:结构化维护与非结构化,维护的代价分(有形代价和无形代价),维护的问题。

6.软件维护过程:建立维护组织,维护报告,维护的事件流,保存维护记录,评价维护活动,

7.软件的可维护性:1.决定软件可维护性的因素(可理解性,可测试性,可修改性,可移植性, 可重用性)2.文档 —— 影响可维护性的决定因素,比代码更重要。3.复审

2、某银行计算机储蓄系统的工作流程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人的姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能。并画出系统的E-R图。 DFD图:

ER图:

3、试用N-S图和PAD表示下面程序流程图,并计算它们的McCabe复杂性度量.(基本路径测试法的 环复杂度)。(10%)

篇二:软件工程主要内容

第一章 软件工程学概述

1. 软件危机

(1) 软件危机的介绍

1)软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2)软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;

如何维护数量不断膨胀的已有软件。

3)软件危机的典型表现:

(1) 对软件开发成本和进度的估计常常很不准确。

(2) 用户对“已完成的”软件系统不满意的现象经常发生。

(3) 软件产品的质量往往靠不住。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋

势。

(2) 产生软件危机的原因

软件本身特点:

1) 缺乏可见性,在运行之前往往难以衡量,质量也难以评价

2) 不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较

难维护。

3) 规模庞大,需分工合作,如何保证每个人的工作合在一起是极端复杂的问题。

软件开发与维护的方法不正确

产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;

软件开发所使用的方法和技术。

软件生命周期:一个软件从定义、开发、使用和维护直到最早被废弃。

软件产品必须由一个完整的配置组成(程序、文档、数据)

(3) 消除软件危机的途径

1) 正确认识计算机软件

2) 认识到软件开发是一个协同配合、共同完成的工程项目并吸取经验。

3) 推广使用已总结的开发软件成功的技术和方法

4) 开发使用更好的软件工具

2. 软件工程

(1) 软件工程的介绍

软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原

理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和

当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的

软件并有效地维护它,这就是软件工程。

本质特性:

1) 软件工程关注于大型程序的构造

2) 软件工程的中心课题是控制复杂性

3) 软件经常变化

4) 开发软件的效率非常重要

5) 和谐地合作是开发软件的关键

6) 软件必须有效地支持它的用户

7) 在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的

人创造产品。

(2) 软件工程的基本原理

1) 用分阶段的生命周期计划严格管理

2) 坚持进行阶段评审

3) 实行严格的产品控制

4) 采用现代程序设计技术

5) 结果应能清楚地审查

6) 开发小组的人员应该少而精

7) 承认不断改进软件工程实践的必要性

(3) 软件工程方法学

在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。

软件工程方法学,三要素:方法、工具和过程。

1) 传统方法学

2) 面向对象方法学

3. 软件生命周期:定义、开发、维护

(1) 问题定义

(2) 可行性研究

(3) 需求分析

(4) 总体设计

(5) 详细设计

(6) 编码和单元测试

(7) 综合测试

(8) 软件维护

4. 软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任

务的工作步骤。通常使用生命周期模型简洁的描述软件过程。

(1) 瀑布模型

1)各个阶段的顺序性和依赖性;

2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;

3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。

(2) 快速还原模型

(3) 增量模型

(1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取

得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。

(2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。

(3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。

(4) 螺旋模型

(5)

(6)

(7)

(8) 喷泉模型 Rational统一过程 敏捷过程与极限编程 微软过程

第二章 可行性研究

可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边界。

问题定义阶段的工作:

1) 通过调查研究,了解系统需求;

2) 确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等的需求;

3) 问题定义阶段的产品--系统目标与范围说明书。

1. 可行性研究的任务

(1) 技术可行性

(2) 经济可行性

(3) 操作可行性

2. 可行性研究的过程

(1) 复查系统规模和目标

(2) 研究目前正在使用的系统

(3) 导出新系统的高层逻辑模型

(4) 进一步定义问题

(5) 导出和评价供选择的解法

(6) 推荐行动方针

(7) 草拟开发计划

(8) 书写文档提交审查

3. 系统流程图

系统流程图是描述物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里的每个部件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是部件的信息流程,而不表示对信息进行加工处理的控制过程。

4. 数据流图

DFD是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 与程序流程图不同,DFD不表示程序的控制结构,只描述数据的流动

DFD分成多层(子图、父图概念)表示, 从而逐步展开数据流和功能的细节。

绘制数据流图步骤

(1)确定所开发的系统的外部项(外部实体),即系统的数据来源和去处。

(2)确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联图。

(3)确定系统的主要信息处理功能,按此将整个系统分解成几个加工环节(子系统)确定每个加工的输出与输入数据流以及与这些加工有关的数据存储。

(4) 根据自顶向下,逐层分解的原则,对上层图中全部或部分加工环节进行分解。

(5) 重复步骤(4),直到逐层分解结束。

(6) 对图进行检查和合理布局,主要检查分解是否恰当、彻底,DFD中各层是否有

遗漏、重复、冲突之处,各层DFD及同层DFD之间关系是否争取及命名、编号

是否确切、合理等,对错误与不当之处进行修改。

(7) 和用户进行交流,在用户完全理解数据图的内容的基础上征求用户的意见。

注意事项:

(1) 不要把控制流作为数据流

(2) 不要标出激发条件

(3) 数据流必须要么从某个加工流出、要么流入某个加工,而不能直接从外部项流

向数据存储等等。

5. 数据字典(对数据的定义)

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

(1) 数据字典的内容

数据流、数据流分量(数据元素)、数据存储、处理

数据字典要对数据流图中出现的所有名字(数据流,加工,文件)进行定义。 数据字典的条目由三大类组成,分别是:数据流条目、数据项条目、文件条目、加工条目(小说明)。

(2) 定义数据的方法

+ :和,连接两个分量

= :等价于

[ ]:或,用|隔开分量

{ }:重复花括号内的分量 0{字母或数字}7表示8位字符串

():可选,即可有可无

(3) 数据字典的用途

(4) 数据字典的实现

6. 成本/效益分析

(1) 成本估计

1) 代码行技术

2) 任务分解技术

3) 自动估计成本技术

(2) 成本/效益分析方法

1) 货币时间价值

F=P(1+i)n次方

2) 投资回收期

3) 纯收入

4) 投资回收率

篇三:浅谈软件工程及其学习

课 程 论 文

题 目 学 院 专 业 班 级 姓 名 指导教师

浅谈软件工程及其学习 计算机科学与技术

软件工程 软件zy1102

饶文碧

2012 年 07 月 04 日

浅谈软件工程及其学习

摘要:软件工程是计算机学科中一个年轻并且充满活力的研究领域。60年代末期以来人们为克服软件危机在这一领域做了大量工作,逐渐形成了系统的软件开发理论、技术和方法,它们在软件开发实践中发挥了重要作用。今天,现代科学技术将人类带入了信息社会,计算机软件扮演着十分重要的角色,软件工程已成为信息社会高技术竞争的关键领域之一,而软件工程已成为高等学校计算机教育计划中的一门核心课程。

关键词:软件工程 专业内涵 课程体系 专业学习 发展前景与挑战 一、软件工程

软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。本专业培养以计算机应用软件开发为基本技能,具有较扎实的专业基础理论和较强的实践动手能力,受到程序员的系统训练,熟悉岗位要求,掌握岗位技能,懂理论、会操作的,适应社会信息化需求,适应市场经济的德、智、体、美全面发展的计算机软件开发与维护方面的高级专业技术人才。 软件在当今的信息社会中占有重要的地位,软件产业是信息社会的支柱产业之一。随着软件应用日益广泛、软件规模日益扩大,人们开发、使用、维护软件不得不采用工程的方法,以求经济有效地解决软件问题。借助于计算机科学技术、数学、管理科学与工程诸多学科,今天的软件工程己由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴交叉学科。该学科的发展可分为概念提出、学科雏形和学科确立三个阶段。 二、专业内涵

软件工程专业是一门构建优质、高效软件的技术性学科。具体地说,它是一门关于如何构建有效、实用、高质量软件的技术。它涉及到计算机应用技术、程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式、软件开发方法、软件开发过程、软件开发环境、软件测试技术、数字化技术、计算机辅助软件工程(CASE)、软件质量管理及软件经济学等方面的内容。软件工程的学习则依赖于计算机科学许多领域的基础理论和基本概念,并且也需要使用许多其他领域的概念,如数学、工程学、项目管理等。由于软件工程要求应用计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量和成本的管理。此外,由于软件工程也是一门实践性非常强的学科,融合了计算机科学、数学和管理科学等现代科学,因此,软件工程专业的学生必须学会将原理和实践结合起来,不仅要具备良好的设计能力,还要具有超越计算机学科获得某一领域的专业知识,从而支持其它应用领域的软件系统的开发。通常情况下,软件工程专业在课程设置上要求特别注重实践性教学环节。

三、课程体系

要想更好的了解和学习软件工程,我们必须很好的了解我们要学的主要内容,所以很有必要知道本专业软件工程的课程体系。通过这几场专业教育,我从老师的讲授中知道了我们的主要课程包括:离散数学、数据结构、高级语言程序设计(C++)、汇编语言程序设计、计算机图形学、计算机组成原理、操作系统、编译原理与方法、数据库原理、计算机网络、面向对象程序设计方法、信息系统分析与设计、Internet技术、多媒体技术、软件工程概论、软件测试技术、软件质量控制、软件开发文档模板及实例、软件工程标准、软件项目策划与管理、JAVA语言程序设计、WEB技术、XML技术等。有了这些了解,我就知道自己要学的是什么,有了一个明确的方向,给我的学习带来了很大的方便。 四、专业学习

在明确了主要学习课程之后,就要好好想一个问题,那就是该怎么学好它。无论学习什么,最重要的是兴趣,首先我们要培养自己对软件工程的兴趣,只有这样我们才激情和动力去认真学好它。我们知道软件工程是重实践的专业,因此在学习课程的时候,我们要更多的去实践,比如在学习计算机语言的时候就要多上机编程,以加强对知识认识。关于学习,我们要培养自己的自学能力,大

学的学习不能再一味的依赖老师,老师更多是给我们指引一个方向,具体的学习都是要靠自己去完成,而自习也会培养我们独立思考的能力,这对自己是有很大帮助的。最后,我觉得学习软件工程一定要主动,多去找老师问问题,多和老师沟通,通过自己的主观能动性,努力学习更多,了解更多,这无疑会让自己的学习事半功倍。 五、发展前景与挑战

在充满机遇和挑战的“数字十年”中,软件和软件开发将成为数字化生活的核心驱动力。无所不在的软件。随着Internet的普及,软件也已经由PC机上的个人应用演变成了连接全世界的信息桥梁。在这些巨大变化的背后,产业内部的基本规律——如揭示了计算机硬件发展趋势的摩尔定律——起到了决定性的作用。在过去、现在和可预见的将来,摩尔定律都始终如一地推动着处理器、内存、存储设备、显示器等关键部件在性能上保持高速增长的势头。这种日新月异的发展趋势不仅会在PC领域延续下去,还会进一步扩展到移动设备和服务器领域。

简单来说,软件工程有着很好的发展前景,这与科技的不断发展和计算机的普及是密不可分的。现在无论人们的生活还是工作,都离不开计算机,自然对软件的需求和要求也会越来越高,这就促使软件工程不断发展,有着美好的发展前景。然而,发展与挑战是并存的,只有在发展中不断克服挑战,软件工程才会越走越远。 六、总结

软件工程是计算机学科中一个年轻并且充满活力的研究领域,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。在不断的完善与发展中,软件工程逐渐形成了多位一体的专业内涵和严谨的课程体系。要想学好它,只钻课本知识是远远不够的,必须注重实践,在实践中不断加强对软件工程的认识,全方位地了解软件工程的发展前景与挑战,抓住机遇,化挑战为力量,不断克服层层阻碍。 参考文献:

【1】杨芙清,软件工程技术发展思索,软件学报,2005

【2】王博然,软件工程的历史与发展趋势,北京工业职业技术学院学报,2008 【3】张效祥,计算机科学技术百科全书,清华大学出版社,1998 【4】萨默维尔,软件工程.,机械工业出版社,2011 【5】百度百科,http://baike.baidu.com/view/1659.htm

本科课程论文评分标准

教师签名:

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

软件工程》出自:百味书屋
链接地址:http://m.850500.com/news/12296.html 转载请保留,谢谢!

相关文章

推荐文章

百味书屋 免费论文网 卡耐基范文网 最近更新 公文素材库 文库114 范文

© 百味书屋 m.850500.com 版权所有

公文驿站 公文集锦