唐山网站建设唐山做网站,建立自己的网站软件有,网站运营开发托管,网站模版好建设吗国庆快乐#xff0c;今天开始更新《软件工程与计算#xff08;卷二#xff09;》的重要知识点内容~ 一.软件
1.软件独立于硬件
早期的软件是为了计算机硬件在研究型项目中而开发制造的#xff0c;人们使用专门针对于硬件的指令码和汇编语言编写#xff0c;这也是最早软件…国庆快乐今天开始更新《软件工程与计算卷二》的重要知识点内容~ 一.软件
1.软件独立于硬件
早期的软件是为了计算机硬件在研究型项目中而开发制造的人们使用专门针对于硬件的指令码和汇编语言编写这也是最早软件的雏形~此时软件是为了最大化计算机硬件的能力而编写的没有独立存在的需求本质上被认为是硬件的零件之一。
导论20世纪5/60年代中期计算机硬件开始进入商用同时带动了软件的发展——直至如今绝大多数的软件是独立于计算机硬件的。 2.软件是一种工具
软件能够完成复杂的科学计算是一种有用的计算工具~随着商用计算机的普及软件被广泛利用与商业计算和数据处理之中
3.软件的核心是程序
软件以程序代码为核心由3个部分组成
程序机器指令的集合文档描述程序操作和使用的文档数据程序运行时需要使用的信息
4.开发比编程远远复杂
软件的发展和变化有两个重要趋势 软件的规模和复杂度日益增加用于解决实际业务问题的应用软件越来越多 为了控制因为程序增长带来的复杂度开发人员需要首先进行需求开发明确问题域目标然后进行设计将单个的复杂程序分解为多个简单部分以方便编程~
随着规模的增加编程的工作比例会下降其他的比例会上升 5.应用软件基于现实又高于现实
总的来说应用软件和现实的关系是始于现实、基于现实并改进现实实现现实的螺旋上升~ 首先软件始于现实有需要解决的问题时人们才会要求开发软件其次基于现实才能解决问题——即以现实为基础然后才能构建解决问题的软件方案~最后软件并不是单纯的模拟显示它还要解决显示世界的问题把现实世界变得更好 二.软件工程
1.定义
简单理解生产软件的工程学标准定义应用系统的、规范的、可量化的方法来开发、运行和维护软件即将工程应用到软件
2.一种工程活动
工程学科共性
具有解决实际问题的动机应用科学知识指导工程活动以成本效益比为基本条件构建及其或事物以服务人类为最终目的
工程师有共同要求
仔细评估项目的可选活动需要对某些对象进行度量强调项目设计过程中的纪律性可胜任研发、开发、设计、生产、测试、管理、销售等多种角色选择和使用合适的工具是工程的关键要素通过专业写会发展和确认原理、标准和最佳实践方法并提高个人能力
3.动机
软件工程需要解决的问题领域范围广泛没有行业和领域限制需要客户和用户的紧密合作~
与传统的工科相比一个软件工程师要能够在不同的行业领域里表现出同等的工作能力而同时软件工程师不可能了解所有的领域所以他们要与实际问题的来源——客户和用户进行深入的交流和合作因为客户和用户最了解领域知识和问题。但在软件工程领域用户必须积极参与构建过程才能得到心仪的软件产品实践也一再表明客户和用户的有效参与是软件成功的必要因素~
软件工程师在构建软件之前要花很大力气去明确项目的目标——这一点非常重要
4.科学性、实践性、工艺性并重
软件工程的指导知识还是“工艺、实践方法/原则和科学知识并立”软件工程行为既有科学性又有实践性还有工艺性~
5.追求足够好
软件工程不追求最好的方案只要求足够好的方案——即成本效益比有效的方案~
6.产品基于虚拟计算机 软件工程的核心是创建软件方案描述所需软件系统的特征和行为然后把软件方案通通过编程移植到通用的计算机上面计算机就会神奇的表现出软件方案所描述的特征和行为~
本质上就是各种个人PC 7.最终目的
承担社会责任促进整个社会的进步——软件工程追求生产方式的成功而不是特定产品的成功~ 软件工程要以科学知识为基础建立成熟的方法与技术通过可普及和可重复的生产方式开发软件软件工程的社会责任最基本要求是开发者对软件产品的质量负责此外还要求软件工程从业者要遵守职业道德保证质量不危害他人 三.软件工程概览
1.工程知识域
5个技术知识域 6个管理知识域 11个知识域并非等同重要~
职业软件工程师的软件知识重要性评价 软件工程师要两个的掌握各个知识域尤其是软件技术知识域还要具备良好的交流沟通能力~
2.开发活动 需求开发: 软件工程要解决的实际问题是范围广泛并且模糊不清的所以在开发软件之初就需要进行需求开发它从空白开始主要目的是建立软件解决方案具体任务包括: ①探索并明确描述现实世界信息; ②探索并定义问题; ③建立软件系统的解决方案使得将软件系统应用到现实世界之后能够解决问题。 软件解决方案又称为软件产品设计方案需求开发产生的主要制品是软件需求规格说明文档和需求分析模型: 软件需求规格说明文档详细描述了软件解决方案的内容需求分析模型重点描述了软件解决方案中的复杂技术方案 软件设计 软件设计在需求开发之后进行它以软件需求规格说明为基础主要目的是建立软件系统的构建方案具体任务括: ①软件体系结构设计确定系统的高层结构; ②详细设计将高层结构的部件设计为更详细的模块与类定义模块与类的功能以及它们的接口; ③人机交互设计设计软件系统与外界的有效交互方案包括设计用户界面。 软件构建方案又称为软件工程设计方案是由抽象软件实体组成的复杂概念结构。工程设计方案是从生产者的角度和产品内部结构的方式描述产品 软件设计产生的主要制品是软件设计描述文档和软件设计模型 软件设计描述文档软件构建方案的内容软件设计模型软件构建方案中的细节 软件构造 软件构造在软件设计之后进行它以软件构建方案为基础主要目的是使用编程语言实现软件构建方案具体任务包括: ①程序设计以“数据结构算法”的方式继续细化和深化软件构建方案基本单位模块或者类的设计 ②编程将程序设计方案映射为代码; ③调试,修改程序代码解决程序中发现的问题。 软件构造产生的主要制品是程序源代码和编译后的可执行程序。 软件测试 软件测试的主要目的是验证和确认软件产品的质量它包含两重含义: ①从技术上保证产品的质量是合格的主要判定产品生产中的技术运用过程是否正确; ②保证产品质量是符合需求规格的主要判定产品生产中的技术运用出发点是否正确。 软件测试产生的主要制品是测试报告它描述了测试中发现的错误和故障。 软件交付 软件交付在软件产品通过所有测试之后进行主要目的是将软件产品交付给用户使用 软件交付的主要任务包括: ①安装与部署软件系统; ②培训用户使用软件并提供文档支持。 软件交付产生的主要制品是用户使用手册它描述了软件使用方法和常见故障的解决。 软件维护 软件维护又称为软件演化在软件产品交付给用户之后进行直到软件产品消亡才结束主要目的是保持交付给用户的软件产品能够正常运行。 软件维护的主要任务是修改软件使之移除缺陷、适应环境变化、提高软件质量或满足新的需求。 3.常见的角色分工
需求工程师需求开发软件体系结构师体系结构设计软件设计师详细设计程序员软件构造人机交互设计师人机交互设计软件测试人员软件测试项目管理人员计划、组织、领导、协调软件配置管理人员管理各种产品质量保障人员监督、保障质量培训和支持人员负责软件交付与维护文档编写人员专门写作文档