这门课配套的网课视频为清华大学国家级精品课程《软件工程》,
学堂在线课程网址:
https://www.xuetangx.com/learn/THU08091000367/THU08091000367/12424539/video/23277366?channel=i.area.recent_search
1.1 软件无处不在
现在是软件无处不在的时代,软件广泛应用于生物工程,现代通讯,宇宙探索,商务处理,工业制造等领域。
软件工程分为软件和工程两个部分
软件是软件工程的研究对象也是软件工程的产品形态和客观存在。
工程是将理论和知识应用于实践的科学,其目的是经济有效地解决实际问题。
软件工程是为了解决开发成本效益和软件质量的问题而产生的。
倡导以工程的原理和原则进行软件的开发,用系统的可控的和有效的方式构建高质量的软件产品。
1.2 软件的本质特性
软件=程序+数据+文档
程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。
数据:使得程序能够适当地操作信息的数据结果、
文档:描述程序的研制过程、方法和使用的图文资料。
软件具有复杂性、一致性、可变性、和不可见性等固有的内在特性,这是造成软件开发困难的根本原因
1.3 软件工程的产生与发展
软件开发面临哪些主要的问题
为什么特意选用软件工程这样一个颇受争议的词?
是为了暗示这样一种意见:软件的生产有必要建立在某些理论基础和实践指导之上。
软件工程的发展大概经历了四个阶段:
1.4 软件工程的基本概念
工程:应用有关的科学知识和技术手段通过有组织的群体协作活动建造具有预期使用价值的人造产品的过程。
工程活动一般具有以下特征:
大规模的设计与建造
复杂问题与目标分解
团队协作与过程控制
软件工程是 ① 将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护, 即工程化应用到软件上;② 对①中所述方法的研究
软件工程的目标———创造“足够好”的软件
什么是“足够好”的软件?
过程、方法和工具是软件工程的三个基本因素。
软件工程过程
软件工程方法
在软件开发过程中先进的开发方法和技术手段是非常重要的,可以提高开发效率,有助于构建出高质量的产品。
软件开发方法的发展经过了面向过程、面向对象、面向构件、面向服务等不同阶段。
软件工程工具
软件开发的基本策略
软件复用、分而治之、逐步演进、优化折中是软件开发的四个基本策略
软件工程学科发展
抽象:是一种降低复杂性的处理方法
软件建模方法:可以帮助建模师理解和刻画系统的设计和分析结果,便于开发人员进行沟通和交流
用户界面原型化:可以克服需求难以确定的困难
软件体系结构:对产品质量是至关重要的
软件过程、软件复用、度量都是工程方法的组成部分。
工具与集成环境:对于提高软件开发效率是必不可少的
1.6 业界人士谈软件工程
在软件开发的过程中遇到的最大的困难是如何让大家并行地一起工作和一起解决,这就是软件工程涉及到的项目管理和项目协同地概念。
软件工程不仅仅是一门课程而更重要的是实践的过程和推动我们软件项目往前走的一个必要的工具
软件工程让不同的开发人员把自己的使用习惯都归结成一些规则,让我们每一个人写出来的代码都是同样的思维、同样的思路,看起来像一个人写的代码
开发人员的几个最重要的基本素质
拥有极强的代码的阅读和理解的能力,以及书写代码的能力
有极强的责任心和责任感,对整个软件产业的敬畏之心
有职业道德,对代码的品质的保证和对整个公司秘密的保护
需要有和其他程序员协同的能力