算法导论224
❶ 人工智能需要学习哪些课程
人工智能专业学习的主要课程有认知心理学、神经科学基础、人类的记忆与学习、语言与思维、计算神经工程等。人工智能专业是中国高校人才计划设立的专业,旨在培养中国人工智能产业的应用型人才,推动人工智能一级学科建设。
❷ CAD技术在电子封装中的有哪些应用
一些软件公司为此开发了专门的封装CAD软件,有实力的微电子制造商也在大学的协助下或独立开发了封装CAD系统。如1991年University of Utah在IBM公司赞助下为进行电子封装设计开发了一个连接着目标CAD软件包和相关数据库的知识库系统。电性能分析包括串扰分析、ΔI噪声、电源分配和S-参数分析等。通过分别计算每个参数可使设计者隔离出问题的起源并独立对每个设计参数求解。每一个部分都有一个独立的软件包或者一套设计规则来分析其参数。可布线性分析用来预测布线能力、使互连长度最小化、减少高频耦合、降低成本并提高可靠性;热性能分析程序用来模拟稳态下传热的情况;力学性能分析用来处理封装件在不同温度下的力学行为;最后由一个知识库系统外壳将上述分析工具和相关的数据库连接成一个一体化的系统。它为用户提供了一个友好的设计界面,它的规则编辑功能还能不断地发展和修改专家系统的知识库,使系统具有推理能力。
NEC公司开发了LSI封装设计的CAD/CAM系统——INCASE,它提供了LSI封装设计者和LSI芯片设计者一体化的设计环境。封装设计者能够利用INCASE系统有效地设计封装,芯片设计者能够通过网络从已储存封装设计者设计的数据库中寻找最佳封装的数据,并能确定哪种封装最适合于他的芯片。当他找不到满足要求的封装时,需要为此开发新的封装,并通过系统把必要的数据送达封装设计者。该系统已用于开发ASIC上,可以为同样的芯片准备不同的封装。利用该系统可以有效地改善设计流程,减少交货时间。
University of Arizona开发了VLSI互连和封装设计自动化的一体化系统PDSE(Packaging Design Support Environment),可以对微电子封装结构进行分析和设计。PDSE提供了某些热点研究领域的工作平台,包括互连和封装形式以及电、热、电-机械方面的仿真,CAD框架的开发和性能、可制造性、可靠性等。
Pennsylvania State University开发了电子封装的交互式多学科分析、设计和优化(MDA&O)软件,可以分析、反向设计和优化二维流体流动、热传导、静电学、磁流体动力学、电流体动力学和弹性力学,同时考虑流体流动、热传导、弹性应力和变形。
Intel公司开发了可以在一个CAD工具中对封装进行力学、电学和热学分析的软件——封装设计顾问(Package Design Advisor),可以使硅器件设计者把封装的选择作为他的产品设计流程的一部分,模拟芯片设计对封装的影响,以及封装对芯片设计的影响。该软件用户界面不需要输入详细的几何数据,只要有芯片的规范,如芯片尺寸、大概功率、I/0数等就可在Windows环境下运行。其主要的模块是:力学、电学和热学分析,电学模拟发生,封装规范和焊盘版图设计指导。力学模块是选择和检查为不同种类封装和组装要求所允许的最大和最小芯片尺寸,热学模块是计算θja和叭,并使用户在一个具体用途中(散热片尺寸,空气流速等)对封装的冷却系统进行配置,电学分析模块是根据用户输入的缓冲层和母线计算中间和四周所需要的电源和接地引脚数,电学模拟部分产生封装和用户指定的要在电路仿真中使用的传输线模型(微带线,带状线等)的概图。
LSI Logic公司认为VLSI的出现使互连和封装结构变得更复杂,对应用模拟和仿真技术发展分析和设计的CAD工具需求更为迫切。为了有效地管理设计数据和涉及电子封装模拟和仿真的CAD工具,他们提出了一个提供三个层面服务的计算机辅助设计框架。框架的第一层支持CAD工具的一体化和仿真的管理,该层为仿真环境提供了一个通用的图形用户界面;第二层的重点放在设计数据的描述和管理,在这一层提供了一个面向对象的接口来发展设计资源和包装CAD工具;框架的第三层是在系统层面上强调对多芯片系统的模拟和仿真。
Tanner Research公司认为高带宽数字、混合信号和RF系统需要用新方法对IC和高性能封装进行设计,应该在设计的初期就考虑基板和互连的性能。芯片及其封装的系统层面优化要求设计者对芯片和封装有一个同步的系统层面的想法,而这就需要同步进入芯片和封装的系统层面优化要求设计者对芯片和封装有一个同步的系统层面想法,而这就需要同步进入芯片封装的设计数据库,同步完成IC和封装的版图设计,同步仿真和分析,同步分离寄生参数,同步验证以保证制造成功。除非芯片及其封装的版图设计、仿真和验证的工具是一体化的,否则同步的设计需要就可能延长该系统的设计周期。Tanner MCM Pro实体设计环境能够用来设计IC和MCM系统。
Samsung公司考虑到微电子封装的热性能完全取决于所用材料的性能、几何参数和工作环境,而它们之间的关系非常复杂且是非线性的,由于包括了大量可变的参数,仿真也是耗时的,故开发了一种可更新的系统预测封装热性能。该系统使用的神经网络能够通过训练建立一个相当复杂的非线性模型,在封装开发中对于大量的可变参数不需要进一步的仿真或试验就能快速给出准确的结果,提供了快速、准确选择和设计微电子封装的指南。与仿真的结果相比,误差在1%以内,因此会成为一种既经济又有效率的技术。
Motorola公司认为对一个给定的IC,封装的设计要在封装的尺寸、I/0的布局、电性能与热性能、费用之间平衡。一个CSP的设计对某些用途是理想的,但对另一些是不好的,需要早期分析工具给出对任何用途的选择和设计都是最好的封装技术信息,因此开发了芯片尺寸封装设计与评价系统(CSPDES)。用户提供IC的信息,再从系统可能的CSP中选择一种,并选择互连的方式。
系统就会提供用户使用条件下的电性能与热性能,也可以选择另一种,并选择互连的方式。系统就会提供用户使用条件下的电性能与热性能,也可以选择另外一种,以在这些方面之间达到最好的平衡。当分析结束后,系统出口就会接通实际设计的CAD工具,完成封装的设计过程。
2.4 高度一体化、智能化和网络化阶段
从20世纪90年代末至今,芯片已发展到UL SI阶段,把裸芯片直接安装在基板上的直接芯片安装(DCA)技术已开始实用,微电子封装向系统级封装(SOP或SIP)发展,即将各类元器件、布线、介质以及各种通用比芯片和专用IC芯片甚至射频和光电器件都集成在一个电子封装系统里,这可以通过单级集成组件(SLIM)、三维(简称3D)封装技术(过去的电子封装系统都是限于xy平面二维电子封装)而实现,或者向晶圆级封装(WLP)技术发展。封装CAD技术也进入高度一体化、智能化和网络化的新时期。
新阶段的一体化概念不同于20世纪90年代初提出的一体化。此时的一体化已经不仅仅是将各种不同的CAD工具集成起来,而且还要将CAD与CAM(计算机辅助制造)、CAE(计算机辅助工程)、CAPP(计算机辅助工艺过程)、PDM(产品数据管理)、ERP(企业资源计划管理)等系统集成起来。这些系统如果相互独立,很难发挥企业的整体效益。系统集成的核心问题是数据的共享问题。系统必须保证数据有效、完整、惟一而且能及时更新。即使是CAD系统内部,各个部分共享数据也是一体化的核心问题。要解决这个问题,需要将数据格式标准化。目前有很多分析软件可以直接输入CAD的SAT格式数据。当前,数据共享问题仍然是研究的一个热点。
智能CAD是CAD发展的必然方向。智能设计(Intelligent Design)和基于知识库系统(Knowledge-basedSystem)的工程是出现在产品处理发展过程中的新趋势。数据库技术发展到数据仓库(Data Warehouse)又进一步发展到知识库(Knowledge Repository),从单纯的数据集到应用一定的规则从数据中进行知识的挖掘,再到让数据自身具有自我学习、积累能力,这是一个对数据处理、应用逐步深入的过程。正是由于数据库技术的发展,使得软件系统高度智能化成为可能。 二维平面设计方法已经无法满足新一代封装产品的设计要求,基于整体的三维设计CAD工具开始发展起来。超变量几何技术(Variational Geometry extended,VGX)开始应用于CAD中,使三维产品的设计更为直观和实时,从而使CAD软件更加易于使用,效率更高。虚拟现实(Virtual Reality,VR)技术也开始应用于CAD中,可以用来进行各类可视化模拟(如电性能、热性能分析等),用以验证设计的正确性和可行性。
网络技术的发展又给电子封装CAD的发展开创了新的空间。局域网和Intranet技术用于企业内部,基本上结束了单机应用的历史,也只有网络技术的发展才使得CAD与CAM、CAPP、PDM和ERP等系统实现一体化成为可能。互联网和电子商务的发展,将重要的商务系统与关键支持者(客户、雇员、供应商、分销商)连接起来。为配合电子商务的发展,CAD系统必须实现远程设计。目前国际上大多数企业的CAD系统基本能实现通过网络收集客户需求信息,并完成部分设计进程。
❸ 软件工程的作品目录
中文版
出版者的话
译者序
前言
第一部分软件工程导论
第1章概述
11专业化软件开发
111软件工程
112软件工程的多样性
113软件工程和Web
12软件工程人员的职业道德
13案例研究
131胰岛素泵控制系统
132用于心理健康治疗的患者信息系统
133野外气象站
要点
进一步阅读材料
练习
参考书目
第2章软件过程
21软件过程模型
211瀑布模型
212增量式开发
213面向复用的软件工程
22过程活动
221软件描述
222软件设计和实现
223软件有效性验证
224软件进化
23应对变更
231原型构造
232增量式交付
233Boehm的螺旋模型
24Rational统一过程
要点
进一步阅读材料
练习
参考书目
第3章敏捷软件开发
31敏捷方法
32计划驱动开发和敏捷开发
33极限编程
331极限编程中的测试
332结对编程
34敏捷项目管理
35可扩展的敏捷方法
要点
进一步阅读材料
练习
参考书目
第4章需求工程
41功能需求和非功能需求
411功能需求
412非功能需求
42软件需求文档
43需求描述
431自然语言描述
432结构化描述
44需求工程过程
45需求导出和分析
451需求发现
452采访
453脚本
454用例
455深入实际
46需求有效性验证
47需求管理
471需求管理规划
472需求变更管理
要点
进一步阅读材料
练习
参考书目
第5章系统建模
51上下文模型
52交互模型
521用例建模
522时序图
53结构模型
531类图
532泛化
533聚合
54行为模型
541数据驱动的建模
542事件驱动模型
55模型驱动工程
551模型驱动体系结构
552可执行UML
要点
进一步阅读材料
练习
参考书目
第6章体系结构设计
61体系结构设计决策
62体系结构视图
63体系结构模式
631分层体系结构
632容器体系结构
633客户机-服务器体系结构
634管道和过滤器体系结构
64应用体系结构
641事务处理系统
642信息系统
643语言处理系统
要点
进一步阅读材料
练习
参考书目
第7章设计与实现
71利用UML进行面向对象设计
711系统上下文与交互
712体系结构的设计
713对象类识别
714设计模型
715接口描述
72设计模式
73实现问题
731复用
732配置管理
733宿主机-目标机开发
74开源开发
要点
进一步阅读材料
练习
参考书目
第8章软件测试
81开发测试
811单元测试
812选择单元测试案例
813组件测试
814系统测试
82测试驱动开发
83发布测试
831基于需求的测试
832情景测试
833性能测试
84用户测试
要点
进一步阅读材料
练习
参考书目
第9章软件进化
91进化过程
92程序进化的动态特性
93软件维护
931维护预测
932软件再工程
933通过重构进行预防性维护
94遗留系统管理
要点
进一步阅读材料
练习
参考书目
第二部分可依赖性和信息安全性
第10章社会技术系统
101复杂系统
1011系统总体特性
1012系统非确定性
1013成功标准
102系统工程
103系统采购
104系统开发
105系统运行
1051人为错误
1052系统进化
要点
进一步阅读材料
练习
参考书目
第11章可依赖性与信息安全性
111可依赖性特征
112可用性和可靠性
113安全性
114信息安全性
要点
进一步阅读材料
练习
参考书目
第12章可依赖性与信息安全性描述
121风险驱动的需求描述
122安全性描述
1221危险识别
1222危险评估
1223危险分析
1224风险降低
123可靠性描述
1231可靠性度量
1232非功能性的可靠性需求
1233功能可靠性描述
124信息安全性描述
125形式化描述
要点
进一步阅读材料
练习
参考书目
第13章可依赖性工程
131冗余性和多样性
132可依赖的过程
133可依赖的系统体系结构
1331保护性系统
1332自监控系统体系结构
1333N-版本编程
1334软件多样性
134可依赖的编程
要点
进一步阅读材料
练习
参考书目
第14章信息安全工程
141信息安全风险管理
1411生存期风险评估
1412运行风险评估
142面向信息安全的设计
1421体系结构设计
1422设计准则
1423部署设计
143系统生存能力
要点
进一步阅读材料
练习
参考书目
第15章可依赖性与信息安全保证
151静态分析
1511检验和形式化方法
1512模型检测
1513自动静态分析
152可靠性测试
153信息安全性测试
154过程保证
155安全性和可依赖性案例
1551结构化论证
1552结构化的安全性论证
要点
进一步阅读材料
练习
参考书目
第三部分高级软件工程
第16章软件复用
161复用概览
162应用框架
163软件产品线
164COTS产品的复用
1641COTS解决方案系统
1642COTS集成系统
要点
进一步阅读材料
练习
参考书目
第17章基于组件的软件工程
171组件和组件模型
172CBSE过程
1721面向复用的CBSE
1722基于复用的CBSE
173组件合成
要点
进一步阅读材料
练习
参考书目
第18章分布式软件工程
181分布式系统的问题
1811交互模型
1812中间件
182客户机-服务器计算
183分布式系统的体系结构模式
1831主从体系结构
1832两层客户机-服务器结构
1833多层客户机-服务器结构
1834分布式组件体系结构
1835对等体系结构
184软件作为服务
要点
进一步阅读材料
练习
参考书目
第19章面向服务的体系结构
191服务作为可复用的组件
192服务工程
1921可选服务的识别
1922服务接口设计
1923服务实现和部署
1924遗留系统服务
193使用服务的软件开发
1931工作流设计和实现
1932服务测试
要点
进一步阅读材料
练习
参考书目
第20章嵌入式软件
201嵌入式系统设计
2011实时系统建模
2012实时编程
202体系结构模式
2021观察和反应
2022环境控制
2023处理管道
203时序分析
204实时操作系统
要点
进一步阅读材料
练习
参考书目
第21章面向方面的软件工程
211关注点分离
212方面、连接点和切入点
213采用方面的软件工程
2131面向关注点的需求工程
2132面向方面的设计和编程
2133检验和有效性验证
要点
进一步阅读材料
练习
参考书目
第四部分软件 管理
第22章项目管理
221风险管理
2211风险识别
2212风险分析
2213风险规划
2214风险监控
222人员管理
223团队协作
2231成员挑选
2232小组的结构
2233小组的沟通
要点
进一步阅读材料
练习
参考书目
第23章项目规划
231软件报价
232计划驱动的开发
2321项目计划
2322规划过程
233项目进度安排
234敏捷规划
235估算技术
2351算法成本建模
2352COCOMO Ⅱ模型
2353项目的工期和人员配备
要点
进一步阅读材料
练习
参考书目
第24章质量管理
241软件质量
242软件标准
243复查与审查
2431复查过程
2432程序审查
244软件度量和量度
2441产品量度
2442软件组件分析
2443度量歧义
要点
进一步阅读材料
练习
参考书目
第25章配置管理
251变更管理
252版本管理
253系统构建
254发布版本管理
要点
进一步阅读材料
练习
参考书目
第26章过程改善
261过程改善过程
262过程度量
263过程分析
264过程变更
265CMMI过程改善框架
2651分阶段的CMMI模型
2652连续CMMI模型
要点
进一步阅读材料
练习
参考书目
术语表
英文版
CONTENTS
Preface v
Part 1 Introction to Software Engineering 1
Chapter 1 Introction 3
1.1 Professional software development 5
1.2 Software engineering ethics 14
1.3 Case studies 17
Chapter 2 Software processes 27
2.1 Software process models 29
2.2 Process activities 36
2.3 Coping with change 43
2.4 The rational unified process 50
Chapter 3 Agile software development 56
3.1 Agile methods 58
3.2 Plan-driven and agile development 62
3.3 Extreme programming 64
3.4 Agile project management 72
3.5 Scaling agile methods 74
Chapter 4 Requirements engineering 82
4.1 Functional and non-functional requirements 84
4.2 The software requirements document 91
4.3 Requirements specification 94
4.4 Requirements engineering processes 99
4.5 Requirements elicitation and analysis 100
4.6 Requirements validation 110
4.7 Requirements management 111
Chapter 5 System modeling 118
5.1 Context models 121
5.2 Interaction models 124
5.3 Structural models 129
5.4 Behavioral models 133
5.5 Model-driven engineering 138
Chapter 6 Architectural design 147
6.1 Architectural design decisions 151
6.2 Architectural views 153
6.3 Architectural patterns 155
6.4 Application architectures 164
Chapter 7 Design and implementation 176
7.1 Object-oriented design using the UML 178
7.2 Design patterns 189
7.3 Implementation issues 193
7.4 Open source development 198
Chapter 8 Software testing 205
8.1 Development testing 210
8.2 Test-driven development 221
8.3 Release testing 224
8.4 User testing 228
Chapter 9 Software evolution 234
9.1 Evolution processes 237
9.2 Program evolution dynamics 240
9.3 Software maintenance 242
9.4 Legacy system management 252
Part 2 Dependability and Security 261
Chapter 10 Sociotechnical systems 263
10.1 Complex systems 266
10.2 Systems engineering 273
10.3 System procurement 275
10.4 System development 278
10.5 System operation 281
Chapter 11 Dependability and security 289
11.1 Dependability properties 291
11.2 Availability and reliability 295
11.3 Safety 299
11.4 Security 302
Chapter 12 Dependability and security specification 309
12.1 Risk-driven requirements specification 311
12.2 Safety specification 313
12.3 Reliability specification 320
12.4 Security specification 329
12.5 Formal specification 333
Chapter 13 Dependability engineering 341
13.1 Rendancy and diversity 343
13.2 Dependable processes 345
13.3 Dependable system architectures 348
13.4 Dependable programming 355
Chapter 14 Security engineering 366
14.1 Security risk management 369
14.2 Design for security 375
14.3 System survivability 386
Chapter 15 Dependability and security assurance 393
15.1 Static analysis 395
15.2 Reliability testing 401
15.3 Security testing 404
15.4 Process assurance 406
15.5 Safety and dependability cases 410
Part 3 Advanced Software Engineering 423
Chapter 16 Software reuse 425
16.1 The reuse landscape 428
16.2 Application frameworks 431
16.3 Software proct lines 434
16.4 COTS proct reuse 440
Chapter 17 Component-based software engineering 452
17.1 Components and component models 455
17.2 CBSE processes 461
17.3 Component composition 468
Chapter 18 Distributed software engineering 479
18.1 Distributed systems issues 481
18.2 Client–server computing 488
18.3 Architectural patterns for distributed systems 490
18.4 Software as a service 501
Chapter 19 Service-oriented architecture 508
19.1 Services as reusable components 514
19.2 Service engineering 518
19.3 Software development with services 527
Chapter 20 Embedded software 537
20.1 Embedded systems design 540
20.2 Architectural patterns 547
20.3 Timing analysis 554
20.4 Real-time operating systems 558
Chapter 21 Aspect-oriented software engineering 565
21.1 The separation of concerns 567
21.2 Aspects, join points and pointcuts 571
21.3 Software engineering with aspects 576
Part 4 Software Management 591
Chapter 22 Project management 593
22.1 Risk management 595
22.2 Managing people 602
22.3 Teamwork 607
Chapter 23 Project planning 618
23.1 Software pricing 621
23.2 Plan-driven development 623
23.3 Project scheling 626
23.4 Agile planning 631
23.5 Estimation techniques 633
Chapter 24 Quality management 651
24.1 Software quality 655
24.2 Software standards 657
24.3 Reviews and inspections 663
24.4 Software measurement and metrics 668
Chapter 25 Configuration management 681
25.1 Change management 685
25.2 Version management 690
25.3 System building 693
25.4 Release management 699
Chapter 26 Process improvement 705
26.1 The process improvement process 708
26.2 Process measurement 711
26.3 Process analysis 715
26.4 Process change 718
26.5 The CMMI process improvement framework 721
Glossary 733
Subject Index 749
Author Index 767