一 软件工程与计算总结软件工程基础

国庆快乐,今天开始更新《软件工程与计算(卷二)》的重要知识点内容~
一.软件 1.软件独立于硬件
早期的软件是为了计算机硬件在研究型项目中而开发制造的,人们使用专门针对于硬件的指令码和汇编语言编写,这也是最早软件的雏形~此时软件是为了最大化计算机硬件的能力而编写的,没有独立存在的需求,本质上被认为是硬件的零件之一 。
导论20世纪5/60年代中期,计算机硬件开始进入商用,同时带动了软件的发展——直至如今,绝大多数的软件是独立于计算机硬件的 。
2.软件是一种工具
软件能够完成复杂的科学计算,是一种有用的计算工具~随着商用计算机的普及,软件被广泛利用与商业计算和数据处理之中
3.软件的核心是程序
软件以程序代码为核心,由3个部分组成:
4.开发比编程远远复杂
软件的发展和变化有两个重要趋势:
为了控制因为程序增长带来的复杂度,开发人员需要首先进行需求开发明确问题域目标,然后进行设计将单个的复杂程序分解为多个简单部分以方便编程~
随着规模的增加,编程的工作比例会下降,其他的比例会上升:
5.应用软件基于现实又高于现实
总的来说,应用软件和现实的关系是:始于现实、基于现实并改进现实,实现现实的螺旋上升~
二.软件工程 1.定义2.一种工程活动
工程学科共性:
工程师有共同要求:
3.动机
软件工程需要解决的问题领域范围广泛,没有行业和领域限制,需要客户和用户的紧密合作~
与传统的工科相比,一个软件工程师要能够在不同的行业领域里表现出同等的工作能力,而同时,软件工程师不可能了解所有的领域,所以他们要与实际问题的来源——客户和用户进行深入的交流和合作,因为客户和用户最了解领域知识和问题 。但在软件工程领域,用户必须积极参与构建过程才能得到心仪的软件产品,实践也一再表明,客户和用户的有效参与是软件成功的必要因素~
软件工程师在构建软件之前要花很大力气去明确项目的目标——这一点非常重要!
4.科学性、实践性、工艺性并重
软件工程的指导知识还是“工艺、实践方法/原则和科学知识并立”,软件工程行为既有科学性,又有实践性,还有工艺性~
5.追求足够好
软件工程不追求最好的方案,只要求足够好的方案——即成本效益比有效的方案~
6.产品基于虚拟计算机
软件工程的核心是创建软件方案,描述所需软件系统的特征和行为,然后把软件方案通通过编程移植到通用的计算机上面,计算机就会神奇的表现出软件方案所描述的特征和行为~
(本质上就是各种个人PC)
7.最终目的
承担社会责任,促进整个社会的进步——软件工程追求生产方式的成功,而不是特定产品的成功~
三.软件工程概览 1.工程知识域
5个技术知识域:
6个管理知识域:
11个知识域并非等同重要~
职业软件工程师的软件知识重要性评价:
软件工程师要两个的掌握各个知识域,尤其是软件技术知识域,还要具备良好的交流沟通能力~
2.开发活动
需求开发:
软件工程要解决的实际问题是范围广泛并且模糊不清的,所以在开发软件之初就需要进行需求开发,它从空白开始,主要目的是建立软件解决方案,具体任务包括:
①探索并明确描述现实世界信息;
②探索并定义问题;
③建立软件系统的解决方案,使得将软件系统应用到现实世界之后能够解决问题 。
【一软件工程与计算总结软件工程基础】