软件工程概念

软件工程概念
软件工程概念

软件工程概念

第一章:软件定义

1.软件(Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档(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%)

解答:

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

软件、软件工程的基本概念和特点

2017-2018 学年第一学期第四次作业 专业:计算机科学与技术班级:17级3班学号:1701110140姓名:任亚磊 作业内容: 简述软件、软件工程的基本概念和特点 软件: 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发,维护和使用有关的图文资料。 软件的特点: 1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性 2.软件的生产和硬件不同,在它的开发过程中没有明显的制造过程、没有磨损 3.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 4.软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同的依懒性 5.软件的开发至今尚未完成摆脱手工艺的开发方式,没有实现自动化 6.软件本身是复杂的、实际问题的复杂性、程序逻辑结构的复杂性 7.软件的成本相当昂贵。 8.相当多的软件工作涉及社会因素。 软件的分类: 1.系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序 2.应用软件:商业数据处理软件、工程和科学计算软件、系统仿真软件 软件的其他角度分类: a.按规模划分:微型软件、小型、中型、大型、甚大型、极大型 b.按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件

c.按软件服务对象的范围划分:项目软件、产品软件 软件生产的发展: 1 程序设计时代:这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年) 2 程序系统时代:这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年) 3 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式面向对象技术来开发软件。(1968年至今) 软件工程: 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。主要包括三个方面的内容:软件开发方法,软件过程和软件工具。 软件工程的原则: 1.抽象2.信息隐蔽3.模块化4.局部化5.确定性6.一致性7.完备性8.可验证性。

工程材料学题库-钢

工程材料学题库 填空题 1、正确合理的选材一半考虑三个基本原则1使用性能2工艺性能3经济性书P4 2、写出扩大?相区并且可以与?-Fe无限互溶的元素有镍、锰、钴。扩大?相区并且可以与?-Fe有限互溶的元素有碳、氮、铜。写出封闭?相区并且可以与?-Fe无限互溶的元素有铬(Cr)、钒(V)。P7-8 3、Cr是铁素体形成元素,但是在钢中加入了w(Cr)= 18%和Ni元素的时候,却可以促进奥氏体的形成。P8 4、奥氏体层错能越高,易于形成状马氏体,具有孪晶型亚结构。奥氏体层错能越低,易于形成状马氏体,具有位错型亚结构。P11 5、钢中合金元素的强化作用主要有固溶强化、晶界强化、第二相强化和位错强化四种方式。P11 6、晶界强化不但可以提高强度,还可以改善钢的韧性。P12 7、除了Co、Al与金属以外,所有的合金元素都会使马氏体转变温度下降。P21(Co、Al) 8、合金元素Al、Mn对晶粒细化有较好作用。(Al、Mn) 9、细晶强化唯一的在提高强度的同时提高材料韧性的强化方式。(细

晶) 10、向钢中加入Ni元素,可以显着降低钢的T k。(P18 Ni) 11、除了Co、Al以外,所有的合金元素均使马氏体转变温度下降。(P21) 12、按照脱氧程度和浇铸方法可以将钢分为沸腾钢、镇静钢和半镇静钢三类。其中沸腾钢的成材率高但是不适合高冲击以及低温条件下工作。(P33) 13、滚动轴承钢GCr9中碳的铬含量约为 %左右。 14、T8中碳的平均含C量约为 % 。 15、为了改善碳素工具钢的切削加工性能,通常采用的预备热处理是球化退火。 16、T10钢锉刀,通常采用的最终热处理为淬火+ 低温回火 17、1Cr13中铬的平均含量约为 13% 。 18、KTZ700—02牌号中,“700”的含义是最低抗拉强度为700MPa 。 1、以下哪些元素可以使?相区扩大,S点左移,A3线下降。( C )(P19) a、Mn Si、 W b、Cr Si Co

软件工程期末复习-北邮讲课讲稿

软件工程期末复习-北 邮

1、软件是一种(逻辑实体),而不是具体的物理实体,因而它具有抽象性。 2、需求分析研究的对象是软件项目的(用户/客户/功能+性能/功能)要求。 3、需求分析的任务就是借助于当前系统的(逻辑模型)导出目标系统的(逻辑模型),解决目标系统的(“做什么”)的问题。 4、结构化需求分析方法由对软件问题的(信息/数据)和(功能)的系统分析过程及其表示方法组成。 5、确认测试包括:有效性测试和(软件配置审查,文档审查)。 6、白盒测试的逻辑覆盖方法包括语句覆盖、(判定/判断覆盖)、条件覆盖、(判定/判断-条件覆盖)、条件组合覆盖、(路径覆盖/路径测试/基本路径测试)。注:次序无关 7、为了提高模块的独立性,模块之间最好是(数据耦合) 为了提高模块的独立性,模块最好是(功能内聚) 8、下列关于功能性注释不正确的说法是( B ) A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据 的状态 B. 注释用来说明程序段,需要在每一行都要加注释 C. 可使用空行或缩进,以便很容易区分注释和程序 D. 修改程序也应修改注释 9、在UML状态图中,与转移上的事件联系在一起的瞬时操作是(动作) 10、测试的关键问题是(如何选择测试用例) 11、以下说法不正确的是(A)。 A.原型思想是在研究概要设计阶段的方法和技术中产生的。

B.探索型和实验型原型采用的是抛弃策略。 C.进化型原型采用的是追加策略。 D.快速原型方法是利用原型辅助软件开发的一种思想。 12、需求规格说明书的作用不包括(C) A.软件验收的依据 B.用户与开发人员对软件要做什么的共同理解 C.软件可行性研究的依据 D.软件设计的依据 13、软件结构图中,模块框之间若有直线连接,表示它们之间存在(调用关系) 14、下面关于DFD中的加工的描述正确的是( C ) A. 每个加工只能有一个输入流和一个输出流 B. 每个加工最多有一个输入流,可以有多个输出流 C. 每个加工至少有一个输入流和一个输出流 D. 每个加工都是对输入流进行变换,得到输出流 15、在基于数据库的信息管理系统中,数据库概念模型的设计对应于系统开发的(概要设计)阶段。 16、下列关于效率的说法不正确的是( B ) A. 效率是一个性能要求,其目标应该在需求分析时给出 B. 提高程序效率的根本途径在于采用高效的算法 C. 效率主要指处理机时间和存储器容量两个方面 D. 程序的效率与程序的算法有关

工程材料学总结1

《工程材料学》复习大纲 第一章 概论 主要概念 工程材料,结构材料,功能材料,材料的组织、结构,使用性能,工艺性能,陶瓷材料,高分子材料,复合材料 内容要求 1. 工程材料的分类。 2. 工程材料的性能,掌握机械工程中常用力学性能指标的意义及单位 (σs,σ0.2,σb, δ,ψ,HBS, HRC, HV, ak)。 第二章 材料的结构 主要概念 晶格与晶胞,晶向族、晶面族,单晶体与多晶体,晶粒与晶界,点缺陷、线缺陷、面缺陷 内容要求 1.立方晶胞中晶向指数与晶面指数表示方法 (给出晶面晶向,让你标定出指数;给出指数,让你画出晶面, 晶向)。 2.三种典型金属晶型的原子位置、单胞原子数、原子半径、致密 度、配位数。 第三章 结晶与相图 主要概念 凝固与结晶, 过冷度, 形核与长大, 合金, 组元,相,相组成物,组织组成物,固溶体,金属化合物, 匀晶、共晶、共 析转变,杠杆定律 内容要求 1. 液态金属的结晶过程。 2. 熟悉共晶(析)转变、共晶(析)体、先共晶(析)相、二次相的 概念。

3.利用相图分析合金结晶过程,区分相组成物和组织组成物并计算相对量。 第四章 铁碳合金 主要概念 同素异构转变,铁素体,奥氏体,渗碳体,珠光体,莱氏体,石墨化, 灰铸铁,球墨铸铁。 内容要求 1. 熟悉Fe-Fe3C相图和铁碳合金中的共晶(析)转变。 2. 会分析各类铁碳合金冷却过程,熟悉它们室温时的相组成物和 组织组成物,并会计算其相对含量,会画组织示意图。 (相组成和组织组成的区别,会使用杠杆定律) 3. 掌握碳钢的牌号,知道它们的用途。 4.懂得石墨形态对铸铁性能的影响,常用铸铁的分类、牌号,主要用途。 第五章 金属的塑性变形与再结晶 主要概念 滑移,滑移面,滑移方向,滑移系,固溶强化,细晶强化,弥散强化,加工硬化(四种提高强度的方法),回复,再结晶, 再结晶温度, 热加工流线 内容要求 1.金属塑性变形的基本过程与塑性变形后的组织、性能的变化。 2.懂得滑移与位错运动的关系,从而理解强化金属的基本原理和主 要方法。 3.热加工与冷加工的根本区别和热加工的主要作用。 第六章 钢的热处理 主要概念 热处理,临界点,退火(炉冷),正火(空冷),淬火(油冷、水冷),回火,表面热处理,化学热处理,奥氏体化,奥

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件工程的几种定义

一、给出n种常用的“软件工程”、“软件质量”的定义并进行适当的解释。阅读相关的文章, 对文章进行总结,概括其主要结论并简述您自己的观点。每项至少1页A4纸。 软件工程: 几种软件工程的定义: Fritz Bauer在NATO会议上给出的定义:软件工程就是建立与使用一套合理的工程原则,从而经济地获得可靠的,可以在实际机器上高效运行的软件。 IEEE在软件工程术语汇编中的定义:软件工程就是(1)将系统化的、规范化、可量化的方法应用于软件的开发、运行与维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。 《计算机科学技术百科全书》中的定义:软件工程就是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 百度百科:软件工程(Software Engineering,简称为SE)就是一门研究用工程化方法构建与维护有效的、实用的与高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济与社会的发展,使得人们的工作更加高效,同时提高了生活质量。 上面就是软件的几个定义,其实概括起来就就是软件加工程。就就是把工程学的思想应用于软件,但就是软件工程又不同于其她的工程,它有它特别的地方。采用工程的概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来,这就就是软件工程。随着信息化的不断扩大,软件的范围已经越来越广了,越来越大了。所以有一个良好的软件开发方法,能有效的提高软件的开发效率。软件工程就就是研究这一方面的。如同土木工程,建筑工程一样,软件也需要系统化,规范化,可量化的进行开发。但就是软件开发又与建筑工程有不一样的地方。如果使用双倍的人力建筑工程可能可以将工程期提早一半完成,例如两个人砌一个人的砖就是不就是快了一倍。但如果说使用双倍的人数就能将软件工程的开发周期提高一倍的话,那就是不可能的。软件的开发过程中,需要团队人员不断的沟通。我觉得软件开发过程中需要的合作沟通远远比建筑工程需要的多。所以说团队的人越多,花在沟通上的时间也会越多,人均的效率反而可能会降低。 软件质量: 字典中队质量的定义就是:“某一事物的特征或属性”。作为一个事物的属性,质量指的就是可测量的特征-与已知标准可以进行比较,如长度、颜色、电气特性、课延展性等等。但就是软件在很大程度上就是一种知识实体,其特征的定义远比物理对象要困难得多。然而却就是存在程序特征的测量。这些属性包括循环复杂度,内聚性,功能点数量、代码行数、以及其她很多属性。当根据对象的可测量特征考察一个对象时,可以有两种不同的质量,设计质量与一致性质量。 软件质量就是一模糊的、捉摸不定的概念。我们常常听说:某某软件好用;某

软件工程导论课程教学大纲

《软件工程导论》课程教学大纲 一、课程性质、地位和作用 《软件工程导论》是是软件工程专业的专业基础课程,属必修课。 本课程主要讲述建造软件系统的基本方法、技术、流程、工具及规范等。通过学习可以使学生了解软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的基本内容和发展动向;学习用工程化的方法开发软件项目,初步掌握开发过程中应遵循的流程、准则、标准和规范。本门课程为将来从事软件开发学生的软件工程师之路奠定坚实的基础。 二、课程教学对象、目的和要求 本课程适用于软件工程、计算机应用等从事软件开发的本科专业。课程教学目的、要求: (一)从教学内容上,应使学生了解软件工程的基本概念,主要包括软件与软件开发的基本过程,软件危机与软件工程。掌握个人软件开发过程的基本内容和方法,了解软件开发模型及结构化软件设计方法,以及软件质量保证基本内容。(二)从能力方面,应使学生通过对软件工程基本概念和方法的学习和课后练习,培养学生养成规范化个人开发的良好习惯,培养学生按照软件工程的基本过程和方法来设计和开发软件。 (三)从教学方法上,在课堂理论教学中,采用学生可以理解的软件开发素材,通过一边实践一边讲解的方法,讲解软件过程的基本思想和方法,通过学生完成与实践结合的作业,调动学生的积极性,使软件工程的基本思想逐步植根于学生头脑中。 三、相关课程及关系 本课程的先修课程是“C语言程序设计”和“数据结构”等程序设计课程,学习应在学生具有一定的编程能力基础上进行。本课程为后续的“软件制造工程”和“软件设计工程”等课程打下了必要的理论基础。 四、课程内容及学时分配 总学时:32学时 (一)绪论1学时 1、软件工程及其重要性 2、软件开发需要软件工程 3、软件工程课程体系架构(需要什么软件工程) 、课堂的组织、学习方法、章节安排与考核4. 要求学生了解软件工程的起源,软件工程在软件开发中的作用,了解软件工程课程体系。 (二)软件与软件工程4学时 1、软件及软件分类 2、软件工程的由来及概念 3、软件生命周期 4、软件开发与软件开发方法 5、软件工程工具和环境 6、软件开发项目管理介绍

软件工程的概念

软件工程的概念 教学目的: 让学生明确软件和程序的区别、软件危机等概念 让学生理解软件开发的基本步骤 理解软件生命周期模型 讲解: 通过本课程,引导学生由程序员向项目经理的过渡 程序设计语言(程序员) 面向对象的分析与设计(高级程序员) 软件工程(项目经理) 提问: 软件与程序的关系 软件包括哪些 1.软件的定义 程序和与程序相关的数据、文档的总称。 举例: Main.exe -- 主程序 Main.ini 或Main.xml -- 配置文件 Main.chm -- 帮助文档 Readme.txt -- 自述文件 /Data -- 程序调用数据的存放目录 /UI -- 主程序界面数据的存放目录 软件的特点 1)逻辑产品 2)复杂性高 3)人工开发 软件危机的概念 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。微观:工期拖后、经费超支、软件交付后存在诸多缺陷 宏观:整个社会对软件的供应赶不上对软件需求的增长 软件危机的表现 1)产品不符合用户的需求 2)软件开发的生产率不能满足客观要求 3)软件产品的质量差 4)对软件开发成本和进度估计不准确 5)软件的可维护性差 6)软件文档资料既不完整也不合格 7)软件的价格昂贵 软件危机的产生原因 没有严格而科学地管理和控制软件开发过程。

软件维护是软件开发中的一部分(占55%-70%)。 开发时期引入的问题,在测试阶段没能检测出来的,对今后的维护带来很大的开销。这些开销也是软件开发的费用。 越早发现问题、解决问题对后期的维护工作越有利,对整个软件工程也就越有利。 越早开始写程序,完成它所需要的时间往往越长。 对用户要求没有完整准确的认识,就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。 软件危机的解决途径 1)纠正错误认识。 错误认识举例: 软件就是一个程序 有一个对目标的概括性描述就可以编写程序了,许多细节可以以后补充 所谓软件开发就是编写程序并使它运行 用户对软件的要求不断变化,然而软件是柔性灵活的,可以被轻易地改动 软件投入生产性运行以后,需要的维护工作量不多,而且维护是一种很简单的工作。 将软件开发活动工程化,借鉴其他领域的经验以指导软件开发。 软件开发不是某种个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合共同完成的工程项目。 2)将传统工程学的原理、技术和方法应用于软件开发上,可以使软件生产规范化,有利于提高开发质量,降低成本和控制进度 3)不断开发新的软件工具,以提高软件生产的效率和质量。 如:各种集成开发环境、代码生成环境、集成测试工具、统一建模语言、数据字典、管理系统、流程图绘制工具、项目管理工具。 作业: 谈谈自己对软件危机的认识 软件工程 软件工程的定义 软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一门学科。 简单地讲,软件工程就是制定并使用完整的工程法规、优秀的管理策略、合适的工具和方法,在已知的适当的资源设备条件下,获得具有明确意义的高质量的软件。更具体地讲,就是用工程科学的观点估算费用,指定进度、计划和方案;用管理科学的方法和原理进行生产管理;用数学的方法建立软件开发中的各种模型和算法。 软件工程的目标 1)降低开发成本 2)软件功能达到要求,软件性能良好 3)开发的软件易于移植 4)降低维护费用 5)能按时完成开发任务,及时交付使用 6)开发的软件可靠性高 软件工程研究的问题 软件工程从软件的开发、运行、维护等方面研究软件生存的全过程,主要的研究内容包括开发技术与开发管理两大方面。

工程材料学教学大纲

《工程材料学》教学大纲 学分:2总学时:36 理论学时:27实验学时:9 适用专业:农机化、农机化师范 大纲执笔人:许令峰大纲审定人:赵立新 一﹑说明 1.课程的性质﹑地位和任务 材料是现代工业技术的物质基础,正确选择材料,确定合理的加工工艺,使零件既能满足性能要求,又能充分发挥材料的潜力,是一个机械工程人员必须具备的能力。工程材料学是研究常用工程材料的实用性能与化学成分﹑内部显微组织之间的相互关系,找出其内在规律,以便采用合理的热处理工艺方法,来控制其内部组织,提高材料的性能。 2.课程教学的基本要求 理论知识方面:本课程是一门与生产实践联系很密切的课程,在课程学习前,应进行金工实习,以便学生建立有关材料与工艺的感性知识。应安排学生在学完机械制图﹑机械制造基础等有关基础课或专业基础课程之后的第四学期,内容上注意与以上学科的衔接,并避免不必要的重复,课堂教学应力求使学生弄清基本概念,掌握基本内容,使学生获得常用工程材料的种类﹑成分﹑组织﹑性能和改性方法的基本知识,具备根据零件工作条件合理选择和使用材料,正确制定热处理工艺方法,妥善安排工艺路线的初步能力。由于材料学的不断发展,知识不断更新,所以授课教师在吃透教材的基础上,应广泛阅读有关参考资料,紧跟本学科的发展,备课过程中随时补充新内容,使学生及时了解到本学科的重要发展及发展动向。 实验技能方面:观察材料内部组织结构必须借助于金相显微镜或其他仪器,学生必须首先掌握金相显微镜的构造及使用,并且学会金相显微试样制备。还应掌握不同含碳量的碳钢硬度的测定。 3.课程教学改革 总体设想:在有限的教学时间内尽可能多传授给学生有关材料学方面的理论知识。除课堂教学外,尚需进行必要的课堂讨论和习题课等,以进一步培养学生分析问题和独立工作的能力 二.教学大纲内容 (一)课堂理论教学 第一章:金属的机械性能(1学时) 拉伸图的分析,弹性和刚度﹑强度﹑塑性﹑硬度﹑疲劳强度﹑冲击韧性和断裂韧性的含义。 思考题:1﹑说明低碳钢拉伸曲线上的几个变形阶段 2﹑根据作用性质,载荷可分为几类?其主要性能指标各有那些? 3﹑何谓硬度?如何衡量? 第二章:金属的晶体结构与结晶(2学时) 第一节:纯金属的晶体结构 晶体的基本概念;金属中常见的晶格类型;晶面指数和晶向指数;金属晶体结构的其他参数。 第二节:实际金属的晶体结构 多晶体结构;晶体缺陷:点缺陷﹑线缺陷﹑面缺陷 第三节:金属的结晶 结晶的概念;结晶过程;晶粒大小:晶粒大小对性能的影响;晶粒大小的控制 本章重点﹑难点:1﹑晶格类型

软件工程教学大纲正式版

软件工程教学大纲正式 版 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

《软件工程导论》课程教学大纲一、课程基本信息 课程编号: 英文名称名:Software Engineering 总学时:54学时 学分:3 课程类别:专业必修课 适用专业:全校本(专)计算机科学与技术 先修课程:数据结构,大学数学,离散数学,计算机算法设计。 二、课程性质与目的、要求 《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。《软件工程》已成为高等学校计算机软件教学体系中的一门核心课程, 本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。 通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。 本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。 三、教学内容及学时分配 本课程的教学内容共分十三章。

《工程材料学》习题与思考题doc

工程材料学 习题与思考题 福州大学材料学院 2008.12

钢与合金钢 一、名词解释 合金元素杂质元素钢合金钢奥氏体形成元素铁素体形成元素碳化物形成元素非碳化物形成元素铁素体钢奥氏体钢贝氏体钢马氏体钢莱氏体钢晶界偏聚(晶界吸附)(钢中的)相间析出回火稳定性(回火抗力)二次淬火二次硬化原位形核离位形核一类回火脆性二类回火脆性 (低碳钢的)应变时效(低碳钢的)淬火时效调质处理优良的综合机械性能喷丸处理马氏体时效钢超高强度钢热疲劳疲劳剥落(接触疲劳)(滚动轴承钢的)碳化物液析球状不变形夹杂热硬性(高速钢的)黑色组织(高速钢的)萘状断口基体钢 不锈钢晶间腐蚀点腐蚀应力腐蚀氢脆阳极极化阴极极化钝化n/8规律475℃脆性敏化处理稳定化处理蠕变蠕变极限持久强度持久寿命 二、问答题 1.工程材料分为几大类?各类工程材料的使用性能、资源或价格一般有何特点? 2.什么叫钢?按用途分类,钢分为哪几类?(尽可能详细分类) 3.一种金属材料除基本组元外通常还含有若干种其他元素,如何界定这些元素是合金元素还是杂质? 4.举例说明奥氏体形成元素对铁基二元相图的影响规律。 5.举例说明铁素体形成元素对铁基二元相图的影响规律。 6.总结奥氏体形成元素对Fe-Fe3C相图的A1、A3、S点、E点的影响规律,并解释为什么高速钢、Cr12 型冷模具钢等高合金钢中会出现莱氏体? 7.总结铁素体形成元素对Fe-Fe3C相图的A1、A3、S点、E点的影响规律,并解释为什么3 Cr2 W8 V 钢实际上是过共析钢? 8.解释下列现象: (1)在相同含碳量的情况下,大多数合金钢的热处理加热温度比碳钢高; (2)在相同含碳量的情况下,含碳化物形成元素的合金钢比碳钢具有较高的回火稳定性; (3)高速钢在热轧或热锻后,经空冷或马氏体组织。 9. 从电子结构或原子相对尺寸大小特点归纳过渡族金属在钢中形成碳化物的规律,包括碳化物的稳定性、点阵结构的复杂性和多样性。(联系以下提供的部分元素周期表进行归纳) 10.哪类合金元素可以溶入渗碳体中?举例说明这些合金元素在渗碳体中溶解度的差别。 11.试以晶界吸附现象的基本规律解释不锈钢的晶间腐蚀、硼提高钢的淬透性和硫、磷、砷锑等引起的回火脆性。 12.强碳化物形成元素、碳、磷对奥氏体晶粒长大分别起何作用以及分别是通过哪种机理起作用的? 13.合金马氏体回火时Cr的特殊碳化物的形成是原位形核还是离位形核?而W呢?原位形核与离位形核形成的特殊碳化物的组织有何显著不同?对钢的性能有何影响? 14.联系“25Si2Mn2CrNiMoV钢淬火后强度大大提高”的事实,论述低碳马氏体钢的合金化与强化设

工程材料学知识要点

工程材料学知识点 第一章 材料是有用途的物质。一般将人们去开掘的对象称为“原料”,将经过加工后的原料称为“材料” 工程材料:主要利用其力学性能,制造结构件的一类材料。 主要有:建筑材料、结构材料 力学性能:强度、塑性、硬度 功能材料:主要利用其物理、化学性能制造器件的一类材料. 主要有:半导体材料(Si)磁性材料压电材料光电材料 金属材料:纯金属和合金 金属材料有两大类:钢铁(黑色金属)非铁金属材料(有色金属) 非铁金属材料:轻金属(Ni以前)重金属(Ni以后)贵金属(Ag,Au,Pt,Pd) 稀有金属(Zr,Nb,Ta)放射性金属(Ra,U) 高分子材料:由低分子化合物依靠分子键聚合而成的有机聚合物 主要组成:C,H,O,N,S,Cl,F,Si 三大类:塑料(低分子量):聚丙稀 树脂(中等分子量):酚醛树脂,环氧树脂 橡胶(高分子量):天然橡胶,合成橡胶 陶瓷材料:由一种或多种金属或非金属的氧化物,碳化物,氮化物,硅化物及硅酸盐组成的无机非金属材料。 陶瓷:结构陶瓷 Al2O3, Si3N4,SiC等功能陶瓷铁电压电 材料的工艺性能:主要反映材料生产或零部件加工过程的可能性或难易程度。 材料可生产性:材料是否易获得或易制备 铸造性:将材料加热得到熔体,注入较复杂的型腔后冷却凝固,获得零件的能力 锻造性:材料进行压力加工(锻造、压延、轧制、拉拔、挤压等)的可能性或难易程度的度量焊接性:利用部分熔体,将两块材料连接在一起能力 第二章 (详见课本) 密排面密排方向 fcc {111} <110> bcc {110} <111> 体心立方bcc

面心立方fcc 密堆六方cph 点缺陷:在三维空间各方向上尺寸都很小,是原子尺寸大小的晶体缺陷。 类型: 空位:在晶格结点位置应有原子的地方空缺,这种缺陷称为“空位”。 间隙原子:在晶格非结点位置,往往是晶格的间隙,出现了多余的原子。它们可能是同类原子,也可能是异类原子。 异类原子:在一种类型的原子组成的晶格中,不同种类的原子占据原有的原子位置。 线缺陷:在三维空间的一个方向上的尺寸很大(晶粒数量级),另外两个方向上的尺寸很小(原子尺寸大小)的晶体缺陷。其具体形式就是晶体中的位错(Dislocation) 形式:刃型位错螺型位错混合型位错 位错线附近的晶格有相应的畸变,有高于理想晶体的能量; 位错线附近异类原子浓度高于平均水平; 位错在晶体中可以发生移动,是材料塑性变形基本原因之一; 位错与异类原子的作用,位错之间的相互作用,对材料的力学性能有明显的影响。 面缺陷:在三维空间的两个方向上的尺寸很大(晶粒数量级),另外一个方向上的尺寸很小(原子尺寸大小)的晶体缺陷。 形式:晶界面亚晶界面相界面 第三章 过冷:一般地,熔体自然冷却时,随时间延长,温度不断降低,但当冷却到某一温度Tn 时,开始结晶,此时随着时间的延长,出现一个温度平台,这一平台温度通常要低于理想的结晶温度T0,这样在低于理想结晶温度以下才能发生结晶的现象——过冷。 过冷度:实际结晶温度Tn与理想结晶温度T0之差T=T0-Tn 称为过冷度。过冷度的大小随冷却速度的增加而增加

软件工程重点难点

软件工程(本科)复习重点难点 各章重点、难点和复习要求说明 第一章软件工程概述 重点掌握的内容:软件和软件工程的基本概念 软件: 软件定义:由以下三部分组成: (1)在运行中能提供所希望的功能和性能的指令集(即程序); (2)使程序能够正确运行的数据; (3)描述程序研制过程、方法所用的文挡。 软件是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。 软件的特点:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。⑤软件的开发至今尚未完全摆脱手工的开发方式。⑥软件的开发费用越来越高,成本相当昂贵。 软件的分类:软件依据不同的标准,可划分为不同的分类,详见1.1.3节。 软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程准则可以概括为六条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)应能清楚地审查结果;(6)合理安排软件开发小组的人员。详细阐述见书中1.2.1节。 软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。 软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。 一般掌握内容:软件生存周期及软件开发的各种模型

软件工程概念

软件工程概念 第一章:软件定义 1.软件(Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档(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.数据字典的组成:数据流,数据流分量(数据元素),数据存储,处理。

软件工程工具分类

实验一 实验目的与要求 (1)理解软件工程的基本概念,熟悉软件、软件生存周期、软件危机和软件工程基本原理。 (2)理解软件工程环境和工具,熟悉软件工程环境组成和软件工具分类。 (3)通过Internet了解软件工程技术网站和主流的软件工程工具等。 实验内容 (1)上网了解查询软件工程网站和相关软件工程知识。 (2)了解软件工程环境概念、层次、组成和开发要求。 (3)查询现有主流的软件工程工具及其功能、用途、特点及适用范围。 (4)浏览CASE工具。通过互联网了解现有的软件工程主流工具,完成表1-2的内容。

PowerDesigner、WinRunner、LoadRunner、Eclipse等,快速了解他们的基本功能和作用,完成表1-3的内容。

境,完成表1-4的内容。

5. 请查阅有关资料,给“软件”下一个定义 6.“软件生存周期”是软件工程技术的重要基础,是对软件的长远发展的看法, 这种看法把软件开始开发之前和软件交付使用之后的一切活动都包括在软件生存周期之内,请查阅有关资料,给出“软件生存周期”的定义。 7.“软件生存周期过程”概念进一步完善了关于软件生存周期的定义,其主要 内容是: 8.由于工作对象和范围的不同以及经验的不同,对软件生存周期过程中各阶段 的划分也不尽相同。但是,这些不同划分中有许多相同之处。相关的软件工程国家标准把软件生存周期划分为8个阶段,这8个阶段是: 你认为把软件生存周期划分为不同阶段的意义何在? 9. 上网搜索和浏览,了解软件工程技术的应用情况,看看哪些网站在做着软件工程的技术支持工作?并将搜索结果记录下来。 你习惯使用的网络搜索引擎是: 你再本次搜索中使用的关键词主要是: 网站名称网址内容描述 在本实验中将你感觉比较重要的2个软件工程专业网站记录下来。

软件工程的基本概念

软件工程的基本概念 软件工程是指导软件开发、运行、维护的系统方法。软件工程是强调使用生存周期方法和各种结构分析及设计技术。这些方法和技术适用于软件生存周期的各个阶段。所谓软件生存周期,是指一项软件从构思起,从经过开发成功投入使用,到停止使用或被另一项软件代替的全过程。 软件工程采用的生存周期方法就是从时间角度对软件开发的维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。采用软件工程方法开发软件时,从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发。前一个阶段任务的完成是下一阶段开始进行的前提和基础,而后一阶段任务的完成使得肖一阶段提出的结果更加具体化。每一阶段的开始和结束都有严格标准,文档中阶段通信的工具,是阶段衔接的纽带。概括起来,软件工程的基本思想是:(1)软件开发划分为若干个阶段,每个阶段的任务相对独立和简单。 (2)完成各阶段任务是使用系统化技术和方法论。 (3)适时地建立里程碑,从技术和管理两方面加以严格审查。 (4)在软件的整个生存周期中编制完整的文档。 根据中华人民共和国国家标准GB8567-88《计算机软件产品开发文件编制指南》规定,软件生存周期可以分为六个阶段:可行性研究与计划阶段,需求分析阶段,设计阶段、实现阶段、测试阶段和运行与维护阶段。其中: 可行性研究与计划阶段,主要确定软件的开发目标和总体的要求,进行可行性分析、投资—效益分析,制定开发计划。 需求分析阶段,重点对被设计的软件进行系统分析,确定对软件的各项功能,性能需求和设计约束,确定对文档编制的要求。 设计阶段,根据软件需求提出多个设计,分析每个设计能履行的功能并进行相互比较,最后确定一个设计,包括软件的结构、模块的划分、功能的分配以及处理流程。当软件比较复杂的情况下,设计阶段可分成概要设计和详细设计两个步骤。 实现阶段,要完成源程序的编码、编译(或汇编)和排错调试,得出无语法错误的程序清单。 测试阶段,对提出的程序全面进行测试,检查审定已编制出的文档。 运行和维护阶段,软件将在运行使用中不断地被维护,根据新提出的需求进行必要而且可能的扩充和删改。 总之,采用软件工程可以大提高软件开发的成功率,软件的质量和生产率也会明显提高。 一、可行性研究与计划 软件开发之初必须要搞清楚解决的问题是什么,因此,进行可行性研究与计划是软件开发的第一步。 明确软件开发目标、研究软件能否实现、提出开发计划就是可行性研究与计划的目的和任务。 1.主要任务 首先确切地定义用户要求解决的问题,也就是问题的性质、软件的目标和总的要求,然后是用最小的代价在尽可能短的时间内确定问题是否能够解决。具体就就是,在澄清了问题定义之后,要导出系统的逻辑模型,从此出发探索若干种解决办法。对每种解决办法都要认真仔细研究三个可行性: (1)技术可行性,即回答现有技术条件能否完成软件。

相关文档
最新文档