阅读《构建之法》

《构建之法》的学习

第一章概论的知识点:

计算机科学的领域 偏理论的领域(计算机理论 Theoretical Computing)(信息和编码理论 Information and Coding Theory)(算法和数据结构 Algorithm and Data Structure)(形式化方法 Formal Methods)(成序设计语言 Programming Language),偏实践的领域 (计算机体系结构 Computer Architecture)(并行计算和分布式系统 Concurrent , Parallel and Distributed System)(实时系统和嵌入式系统 Real Time and Embedded System)(操作系统 Operating System)(计算机网络 Networking)(科学计算 Scientific Computing)(安全和密码学 Security and Cryptography)(人工智能 Artificial Intelligence)人工智能有涵盖了许多相关的领域,如模式识别(Pattern Recognition )、机器学习(Machine Learning)、数据挖掘(Data Mining)、信息提取等。(计算机图形学Computer Graphics)(计算机视觉 Computer Vision)(多媒体 Multimedia)(数据库和大规模数据处理 Database and Large Scale Data Processing)(万维网 World

Wide Web)(自然语言处理和语音 Natural Language Processing and Speech)(人机交互 Human Computer Interaction)(软件工程 Software Engineering)。理论领域多与数学、离散数学、数理逻辑密切相关;实践领域都与数据和其它学科发生关系。

软件工程与计算机科学的关系:

计算机理论的进展会帮助软件工程(例如对程序正确性的分析);软降工程的进展(更好的工具、更多的应用领域)会帮助计算机科学家更有效地进行实验和探索。

软件的特性(软件开发过程的难题):

复杂性:软件是人类创造最复杂的系统类型,大型软件有超过上百万行源代码、上万个不同的文件,软件的各个模块之间有各种显性或者隐形的依赖关系系统的成长和模块的增多,这些关系的数量以几何级数的速度增长,但是理解运用这些复杂性的人没有发生变化。

不可见性:软件工程师能看见源代码,但软件出现错误,工程师可以看到出错瞬间留下的痕迹(错误代号、大致的目标代码位置、错误信息)但几乎无法完整重现程序出了什么问题。

易变性:修改软件比修改硬件较为容易,但人们期待下面两种改变 a)让软件做新的事情b)让软件适应新的硬件。但是在此同时,正确地修改软件是一件困难的事情。

服从性:软件总是运行在硬件上,他要服从系统中其他组成部分的要求,同时还要服从用户的要求,行业系统的要求。

非连续性:人们总是容易理解连续的系统,输入的增加能够看到输出上相应地增加。但是输入上极小的变化会引起输出极大的变化。

软件工程的定义与组成部分:

软件工程是把系统的、有序的、可量化的方法应用到软件开发、运营和维护上的过程。软件工程包括以下领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫软件开发流程,软件开发流程的目的是为了提高软件开发运营维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性

上一篇:hdu2196 Computer


下一篇:电脑连接键盘和鼠标升级