软件工程 Software Engineering 主讲人刘海岩 2021/220
2021/2/20 1 软件工程 Software Engineering 主讲人 刘海岩
参考文献 1.软件工程一实践者的研究方法 软件工程 Roger s. Pressman(第5版) 实战者的研究方法 机械工业出版社 软件工程一理论与实践 软件工程 Shari l. Pfleeger(第2版) SOFTWARE ENGINEERING 高等教育出版社 HNA三CoM 3.软件工程(第6版) 软件工程 Ian Sommerville 机械工业出版社 CHINA-PUB COM 2021/220
2021/2/20 2 参考文献 1. 软件工程—实践者的研究方法 Roger S.Pressman (第5版) 机械工业出版社 2. 软件工程—理论与实践 Shari L.Pfleeger (第2版) 高等教育出版社 3. 软件工程(第6版) Ian Sommerville 机械工业出版社
考核要求 1.笔试; 2.提交作业文档: 针对软件工程领域中的某个专题写出 篇论文 论文要求: (1)必须列出参考文献 (2)打印纸4页以上 2021/220
2021/2/20 3 考核要求 1.笔试; 2.提交作业文档: 针对软件工程领域中的某个专题写出 一篇论文。 论文要求: (1)必须列出参考文献 (2)打印纸4页以上
第一章绪论 。软件工程产生的背景 。软件工程的有关概念 。软件生存周期及软件过程模型 软件开发方法 软件开发工具 2021/220
2021/2/20 4 第一章 绪论 ⚫ 软件工程产生的背景 ⚫ 软件工程的有关概念 ⚫ 软件生存周期及软件过程模型 ⚫ 软件开发方法 ⚫ 软件开发工具
1.1软件的特点、发展及软件危机 1.软件的概念及其特点 ◆软件是(1)当它被执行时提供希望功能和性能的 程序,(2)使得程序能够适当的操作信息的数据结构, 以及(3)描述程序被开发和运行过程中有关功能、结 构、操作和使用的文档 ◆软件特征 软件是逻辑的而不是有形的产品,它是被开发或 设计出的,而非传统意义上的被制造的。软件成本 和软件质量集中于开发上。 软件不会“磨损”。软件并不受到引起硬件磨损 的环境因素的影响 2021/220
2021/2/20 5 1.1 软件的特点、发展及软件危机 ⒈ 软件的概念及其特点 ◆软件是 ⑴当它被执行时提供希望功能和性能的 程序,⑵使得程序能够适当的操作信息的数据结构, 以及⑶描述程序被开发和运行过程中有关功能、结 构、操作和使用的文档。 ◆软件特征: •软件是逻辑的而不是有形的产品,它是被开发或 设计出的,而非传统意义上的被制造的。软件成本 和软件质量集中于开发上。 •软件不会“磨损”。软件并不受到引起硬件磨损 的环境因素的影响
天折” 磨损” 时间 硬件的故障曲线 由于副作用造成 故障率的提高 修改 实际曲线 一理想曲线 时间 软件的理想故障曲线和实际故障曲线 2021/220
2021/2/20 6
软件生产正走向基于构件的组装发展(如 图形用户界面),但目前多数软件仍是定做的 软件的研制需要投入大量的、复杂的脑力 劳动,成本高。 2.软件的发展 ◆双重角色: 它是一个产品,通过计算机硬件所体现的 计算潜能,它产生、管理、获取、修改、显示 或传送信息,这些信息简单到一个bit,复杂到 个多媒体信息; 它是产品交付使用的载体,是计算机控制 的基础(操作系统)、信息通信的基础及其它 软件的创建和控制的基础(软件工具和环境) 2021/220
2021/2/20 7 •软件生产正走向基于构件的组装发展(如 图形用户界面),但目前多数软件仍是定做的。 •软件的研制需要投入大量的、复杂的脑力 劳动,成本高。 ⒉ 软件的发展 ◆双重角色: 它是一个产品,通过计算机硬件所体现的 计算潜能,它产生、管理、获取、修改、显示 或传送信息,这些信息简单到一个bit,复杂到 一个多媒体信息; 它是产品交付使用的载体,是计算机控制 的基础(操作系统)、信息通信的基础及其它 软件的创建和控制的基础(软件工具和环境)
◆角色的演化: 早期(50年代初-60年代中期): 自定义软件 面向批处理 第二阶段(60年代中期-70年代末期) 多用户 实时 数据库 软件产品 软件危机出现! 2021/220
2021/2/20 8 ◆角色的演化: 早期(50年代初-60年代中期): •自定义软件 •面向批处理 第二阶段(60年代中期-70年代末期): •多用户 •实时 •数据库 •软件产品 软件危机出现!
第三阶段(70年代中期-80年代中期): 分布式系统 嵌入式“智能”软件 低成本硬件 大众化 第四阶段(80年代中期至今): °强大的桌面系统 面向对象技术 °人工智能 °神经网络 并行计算 2021/220
2021/2/20 9 第三阶段(70年代中期-80年代中期): •分布式系统 •嵌入式“智能”软件 •低成本硬件 •大众化 第四阶段(80年代中期至今): •强大的桌面系统 •面向对象技术 •人工智能 •神经网络 •并行计算 …
3.软件危机( crISIS) 60年代中期,随着硬件技术的发展,软件应用范围的 扩展,软件越来越大型化、复杂化,产生了上万行的源程 序 当发现错误是需要对这些程序进行修改; 用户需求发生变化是需要修改 当硬件环境更新时需要修改。 这些活动(称为软件维护)的费用以惊人的速度增加 更糟糕的是,许多程序的个性化特性使得它们根本不能维 护。“软件危机”出现了 2021/220
2021/2/20 10 3.软件危机(crisis) 60年代中期,随着硬件技术的发展,软件应用范围的 扩展,软件越来越大型化、复杂化,产生了上万行的源程 序。 当发现错误是需要对这些程序进行修改; 当用户需求发生变化是需要修改; 当硬件环境更新时需要修改。 这些活动(称为软件维护)的费用以惊人的速度增加。 更糟糕的是,许多程序的个性化特性使得它们根本不能维 护。“软件危机”出现了!