第1章_软件工程学概述
计算机基础
计算机组成
冯.诺依曼体系结构: 输入设备 输出设备 存储器 运算器 控制器
计算机中数的表示
二进制(bit) 八进制(byte) 十进制 数据:数值型、文本型、图形、图像、音频数据(多媒体数据
)
计算机语言
语言类型:机器语言(二进制指令),汇编语言,高级语言, BASIC,C,FORTRAN,COBOL,C++,JAVA……
教材
《软件工程》,21世纪高等学校计算机系列 实用规划教材,东北大学出版社,2010,李 惠明等编著
教材特点:
一本传统的软件工程教材,以软件生命周期阶段为线 索讲解软件过程的概念、原理、方法和软件工具。
由国人编写,语言易读易懂 难度适中,适合初学者作为教材使用
参考文献
软件工程(原书第9版)原书名:Software Engineering,Ninth Edition,作者:(英)lan Sommerville 著 译者:程成等译,2011年5月
. 软件是一种逻辑实体,而不是具体的物理实体 . 软件的生产与硬件不同
. 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题
失 磨合 效 调整 率
修改点
失
磨损
效
用坏
率
实际曲线 理想曲线
硬件失效率曲 线
时 间
软件失效率曲 线
时 2间020/10/22
. 软件的成本相当昂贵
软
件
成本%
复
杂
软件需求
在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有了不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。
专业课
数据结构、C/C++、计算机导论 大学英语、离散数学。。。
专业基础课
基础课
课程的性质、目的与任务
软件工程是计算机科学与技术专业、 软件工程的一门专业核心课程。通过本课 程的学习,使学生掌握系统的软件开发理 论、技术和方法,使用正确的工程方法开 发出成本低、可靠性好并在机器上能高效 运行的软件,为今后从事软件开发和维护 打下坚实的基础。
关系数据库管理系统
支持设计:
支持测试:
图形软件包
静态分析器
结构化流程图绘图程 序测试覆盖检来自程序支持实现: 编辑程序
支持管理: 标准检验程序
连接编辑程序
库管理程序
2020/10/22
2、按软件的规模进行划分
按开发软件所需的人 力、时间以及完成的源 代码行数。
类别
微型 小型 中型 大型 甚大型 极大型
微软凌小宁博士
我最大的心得是,一个产品一定要找到能 够真正适用的场合,不能只是为了技术而从事 技术为了研究而进行研究,却不管用户对你所 研究的技术和产品有没有需求。否则,无论你 的技术是多么优秀,多么先进,恐怕你的产品 在市场上都无法获得成功。
微软张益肇博士
第1章 软件工程概述
➢ 计算机基础 ➢ 软件 ➢ 软件危机 ➢ 软件工程的概念 ➢ 小结
算法:求解问题的步骤序列。
1.每个步骤精确描述,无歧义; 2.步骤是有限的; 3.可以用计算机表示
软件的概念与特点
1、软件
software soft+ware
软制品 (软体)
软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。
2020/10/22
2、软件特点
软件工程
Software Engineering
请思考以下问题
你的打算: 你准备找一个什么样的工作? 你能分清机关、事业和企业性质的单位吗? 想学到什么知识?想找工作、考研、考公务员?想过四 六级?想考哪些专业认证? 你了解目前软件行业人才需求的现状吗? 你理想中的工作岗位可能需要什么技能? 你和别人合作是否会有什么障碍? 你估计一下软件工程是门什么样的课?
性
差距
硬件
软件技术
软件
时间
1950 1970 1985 1995 年份
软件技术的发展落后于需求 硬、软件成本比例的变化
2020/10/22
3、软件的分类
1、按软件的功能进行划分
系应支 统用撑 软软软 件件件
2020/10/22
支撑软件
一般类型: 文本编辑程序 文本格式化程序
支持需求分析:
PSL/PSA问题描述语 言
语言要素:词汇,语法,控制逻辑 控制逻辑:顺序、分支、循环
程序
为解决某个计算问题,用计算机语言表示的计算步骤。如: input r if r<0 message(“半径应大于0”) A=PI*r*r
output A
程序=数据结构+算法 数据结构
变量,数组,记录,文件 存储结构(物理结构),逻辑结构
2020/10/22
本课程比较全面、系统地介绍软件工程的概念、 技术与方法。
主要内容包括:软件工程概述、软件生存周期及 软件需求分析、软件设计方法、软件测试技术等。
通过本课程的学习,使学生能真正的从中了解软 件开发的整个过程。为了让学生真正得以实践,结合 一些项目案例,让学生从问题定义开始,经过可行性 研究、需求分析、概要设计、详细设计、编码、测试 ,这样一个软件开发过程,从而使学生掌握软件开发 的基本技能。
参加人数
1 1 2-5 5-20 100-1000 2000-5000
研制期限
1-4周 1-6周 1-2年 2-3年 4-5年 5-10年
产品规模(源代码行数)
约500行 约2000行 5000-50000行 5万-10万行 100万行 1000万行
2020/10/22
学习本课程的基本要求
本课程是继程序设计课程之后,对提高 学生软件开发能力有重要作用的一门课程。 要求学生在学习本课程前应掌握信息管理系 统、数据结构、结构化程序设计、面向对象 程序设计以及程序设计方法。
通过本课程的学习,为学生后期的毕业 设计环节奠定了良好的基础。
2020/10/22
软件工程导论,陈明,机械工业出版社,2010 年1月 软件工程-实践者的研究方法,R S. Pressman, 机械
工业出版社,2011年5月 软件工程导论, 张海潘编著, 清华大学出版社,2013年
8月 Internet上的各类学习网站.
4
课程地位
计算机专业的重要专业课之一
软件工程、数据库、网络。。。