【前言】
每开始一个新阶段的学习,首先得先看这门学科是啥,都有哪些内容。第一章就告诉了我们这些内容,接下来让我们一起来学习一下软件工程吧!
【软件】
概念
1)软件工程是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
2)百度中的定义是一系列按照特定顺序组织的计算机数据和指令的集合。
我认为,软件就是程序加文档的集合。
特点
1)抽象性。不具有物理实体,无形的,只能通过运行状态来了解功能、特性和质量。
2)无明显的制造过程。因为它是无形的,与硬件的开发过程不同。
3)无老化问题。在运行和使用过程中,没有硬件那样的老化磨损,但是存在缺陷维护和技术更新问题。
4)依赖性。软件的开发和运行必须依赖特定的计算机系统环境,对于硬件有依赖性,为了减少依赖,开发中提出了软件的可移植性。
5)复杂性。开发一款软件必须涉及到实际问题与程序逻辑结构之间的联系,开发方式仍不能摆脱手工,涉及到涉及因素等,使得软件的开发变得复杂。
分类
1)按功能:系统软件、支撑软件、应用软件
2)按规模:微型、小型、中型、大型、甚大型、极大型
3)工作方式:实时处理、分时、交互式、批处理
4)服务对象范围: 项目软件、产品软件
5)使用频度
6)软件失效影响
发展
程序设计阶段、程序系统阶段、软件工程阶段
软件危机
软件开发和维护过程中遇到的一系列严重问题。
【软件工程】
内容与目标
1)内容是软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2)目标是以较少投资获得易维护、易理解、可靠、高效率的软件产品。
软件生存期 life cycle
1)六个步骤:制定计划、需求分析、设计、程序编码、测试及运行维护
2)模型:瀑布型、演化型、螺旋型、喷泉型、智能型
三要素
方法、工具和过程。方法为软件开发提供“如何做”的技术,工具为为软件工程方法提供了自动的或半自动的软件支撑环境。
原理
1)用分阶段的生命周期计划严格管理
2)坚持进行阶段评审
3)实行严格的产品控制
4) 采用现代程序设计技术
5) 结果应能清楚的审查
6) 开发小组的人员应该精而少
7) 承认不断改进软工实践的必要性
原则
分解、独立性、一致性、确定性
【导图】
【总结】
这一章总领全篇,讲解了一下软工的基础知识。需要这一次学习之后再返回来,在重新学习一遍,现在我已经开始相信,第一章是最简单的同样是最难的一章。期待下次再回来,有很多的新收获。