软件工程基础_第1章 软件工程概述
发布时间:2021-06-07
发布时间:2021-06-07
软件工程基础主讲教师:刘伟松 MP: 18602466465 QQ: 5659104531
课程简介 先修课基础: C程序设计,数据结构,数据库, 操作系统,离散数学, 一门专业方向课(JAVA\Windows\Web), 建议学习概率及数理统计、高等数学初步,管理学初步
专业必修课(考试)总 学 时 48 理论授课40 实验及讨论8
课程目标-1 掌握软件开发的基本流程、基本概念 熟悉需求分析的方法,能够读懂用形式化的 语言描述的需求说明书,如:流程图、IPO 图、USE-CASE图、E-R图。 熟悉概要设计的实施方法,了解面向对象方 法的概要设计方法。熟悉详细设计的方法, 能够对简单WEB系统或模块的形式化的分 析设计。 熟悉测试的基本步骤和方法3
课程目标-2 了解UML图示方法和常见的系统体系结构 了解软件验证技术和软件质量体系 了解软件项目计划方法 了解软件工程标准化及文档写作 了解并实践新技术学习的方法(PHP)
教学形式 课堂教学
小组项目案例协作训练
新技术学习训练(PHP WEB开发)5
考核方式 基础知识测试 70% 小组案例及新技术学习训练 30%
参考教材及资料 《软件工程导论》陈明 机械工业出版社 《软件工程规范》Watts S. Humphrey著 《小型团队软件开发》Gary Police 《极限编程——基础、案例与实施》 Stewart Barid 著 适合Java, .Net 《敏捷软件开发》Alistair Cockbum著
第1讲 初涉软件工程内容提要: 1、什么是软件工程? 2、软件工程研究的对象及目标? 3、软件工程能够做什么?不能做什么? 4、学习软件工程能带来什么益处? 5、学习软件工程需要哪些必备的基础? 6、怎样学习软件工程?8
回顾软件发展历史三个阶段 第一阶段(1950-1960) 1.软件“农耕时代” 2.程序设计阶段,没有程序设计方法。 3.主要编写科学计算程序
软件发展历史三个阶段 第二阶段(1960-1970) 1.软件“小作坊”,小组式的开发方法 2.广泛出现了软件设计方法(结构化软件设 计)。 3.出现了“产品软件” 4.维护困难,成本高,无法开发大规模的软件。
软件发展历史三个阶段 第三阶段(1970-至今) 1.软件工程时代 “软件工业化” 2.工程化的生产方式 3.工具和方法跟不上软件规模的扩张,使问题 积累导致软件危机。 例:IBM公司1963-1966年360大型机操 作系统项目 4.1968年首次提出了软件工程11
1. 什么是软件工程 软件工程是指导软件开发和维护的工程类学 科,它以计算机科学理论及其它相关的学科 的理论为指导,采用工程化的概念、原理、 技术和方法进行软件的开发和维护,把经
过 时间证明正确的管理措施和当前能够得到的 最好的技术方法结合起来,以较少的代价获 取高质量的软件。
1. 什么是软件工程 建筑工程,电力工程,水利工程,电信工程 机械工程, 制造工程… …“工”: 工作 “程”:程序、规程
即:研究软件生命周期内开发工作规程,并使 之紧密结合的学科13
2、软件工程研究的对象及目标?最小的投入
人员
技术
最好的质量 最高的产出
开发过程管理
资金
软件工程的层次结构TQMTotal Quality Management 全面质量管理
工具和环境 方法和技术
过程和模型 标准和规范 质量核心
TQM(全面质量管理)
需求R
设计D
编码P
维护S
部署I
测试T
TQM=Q(R) x Q(D) x Q(P) x Q(T) x Q(I) x Q(S)Q为质量函数,(0<Q<1)16
软件工程基本原理(Boehm) (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实施严格的产品控制 (4)采用现代程序设计技术 (5)结果应能够清楚的审查 (6)开发小组的成员应该少而精 (7)承认不断改进软件工程实践的必要性17
3、软件工程能够做什么?不能做什么? 软件工程可以提供规范的方法描述开发过程 软件工程可以提供标准和规则指导开发过程 软件工程能够发现程序的问题或尽量减少问 题的产生,但是不能够解决问题。 软件工程是指导开发过程,不能够代替人的 思维过程。 软件工程对开发个体降低了编码效率,对项 目总体是提高效率,降低TOC(Total Of Cost)。18
TOC(总体拥有成本)C C(t) 开发期 维护期 Start End t
4、学习软件工程能带来什么益处? 提高生产效率 关键是提高沟通、协调和管理效率 增加经验积累和可重用性 通过软件工程的方法可以提高系统的清晰程度,利于模块的 重复使用。 强化团队合作 通过标准化,客观上强化团队的合作。 规模软件开发 通过统筹管理和开发体系的管理,有利于完成大规模软件的 开发。 可接续开发能力 由于文档的规范化,出现开发人员调整时,后续开发人员能 够迅速接手开发工作。20
5、学习软件工程需要哪些必备的基础? 高等数学及概率数理统计方面的知识。(方差、标准差、相关 性、定积分、统计分布、线性回归) 熟悉一门主流编程语言和WEB程序设计,最好是能够有 10000行左右的编程经验(C/C++或JAVA)。 较好的文字能力(语文素养)
熟练使用Office办公软件,例如:Excel,Visio,PPT,Word 有一定的外语基础。
下一篇:动环监控系统无线传输组网方案