软件工程
软件工程学、是指导计算机软件开发和维护的工程学科,包括技术方法、工具、管理等内容。
软件工程(Software Engineering)是-门交叉性的工程学科,它是将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,其重点在于大型软件的分析与评价、规格说明、设计和演化,同时涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等.从这个意义上看,软件工程可以看作由下列3部分组成.
-
计算机科学和数学用于构造软件的通信、模型与算法
-
工程科学用于制定规范、设计范犁、评估成本以及确定权衡等;
-
管理科学用于计划、资源、质量、成本等管理
通俗来讲软件工程(Software Engineering)就是软件加工程。就是把工程学的思想应用于软件,但是软件工程又不同于其他的工程,他有他特别的地方。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
软件工程与计算机科学的区别
软件工程 | 计算机科学 | |
---|---|---|
目标 | 在时间、资源、人员的限制条件下构建满足用户需求的软件系统 | 探索正确的计算和建模方法,宠儿改进计算方法本身 |
进度与时间 | 软件专案都有特定的进度与时间表 | 研究专案一般不具有设置的进度与时间表 |
产品 | 软件(比如办公包和编译器) | 算法和抽象的问题(比如哲学家进餐问题) |
关注点 | 如何为用户实现价值 | 软件理论关注的是软件本身运行的原理,比如时间复杂度 |
变化程度 | 随着技术和用户需求的不断变化,必须时刻调整以适应当前的需求 | 对于某一中特定的正确解决方法将永远不会改变 |
软件的概念
软件是计算机系统与硬件相互依存的一-部分,它是包括程序、数据及其相关文档的完盛集合
程序是按事先设计的工程和性能要求执行的指令序列
文档是与程序开发、维护和使用有关的图文材料
软件的特点
- 软件是一种逻辑实体,而不是具体的物理实体,因此,具有很强的抽象性
- 软件的生产与硬件不同,软件开发没有明显的制造过程,对软件的质量控制,必须立足于软件开发方面
- 在软件的运行和使用期间,没有像硬件那样的磨损老化问题
- 软件的开发和运行往往受到计算机系统的限制,对计算机系统有不同程度的依赖性
- 软件本身是复杂的,处理问题的复杂性、逻辑结构的复杂性等等
- 软件的成本相当昂贵
- 很多的软件工作涉及到 会因素
软件的分类
按软件功能划分
- 系统软件系統软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作-一个整体而不需要就及到底层每个硬件是如何工作的。系统软件包括操作系统和一系列基本的工具 <比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理, 络连接等方面的工具>
- 支撑软件 支撑软件是支簿各种软件的开发与维护的软件,又称为软件开发环境,它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,德较公司的Studio.NET等。还有wamp. nodejs等
- 应用软件应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密, 可以互相协作的程序的集合,比如微软的ffice软件。也可以是一个由众 多独立程序组成的定大的软件系统,比:如数据库管理系统。
按软件规模划分
微型、小型、中型、大型、超大型软件
按软件的工作方式划分
实时.分时、交互、批处理软件
按软件服务对象的范围划分
项目软件和产品软件
如何开发好的软件/h2>
那么如何在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品/p>
答案:以系统性的、 规范化的、可定量的过程化方法去开发和维护软件,以及把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。这就是软件工程要做的事情。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!