一、软件的概念:
计算机系统中与硬件相互依存的另一部分(1程序、2数据、3文档)
1.程序:事先设计的功能
2.数据:使程序能正常操纵信息的数据结构(组成程序的东西)
3.文档:维护和使用有关的图文材料
(1)特点:
1.具有抽象性(是逻辑实体,不是物理实体)
2.没有制造过程(生产与硬件不同)
3.没有机械磨损(运行阶段)
4.对计算机有不同程度依赖性(受系统限制)
5.没有摆脱手工开发方式
6.本身复杂(一、实际问题 二、逻辑结构)
7.成本昂贵
8.社会因素(涉及到知识产权)
(2)发展阶段:
1.程序设计阶段:一个人编个体化,受硬件的限制,没有文档统一化规范,提倡提高技巧性让编写的程序难以阅读,没有软件的概念
2.程序系统阶段:作坊式开发,相互之间有简单的说明
3.软件工程阶段:解决上一个阶段出现的,用科学管理的方法组织软件的开发,设计、维护等一系列的操作。
主要用来解决软件危机
(3)生存期:
被新的软件替代了,它就衰亡了,软件有孕育、诞生、成长、成熟几个阶段
二、软件工程
(1)六个阶段
(1)制定计划:总目标、需求、可行性研究、人力、成本、开发进度
(2)需求分析:需求分析时编写用户手册
(3)软件设计
(4)软件程序编写
(5)软件测试:单元测试、组装测试
(6)运行和维护
(2)六个目标:
开发成本低-达到要求-性能好-易于移植-较低的维护费用-按时交付。
(3)软件工程过程:
1.规格说明(采对用户的需求)、2.开发(设计和调试)、3.确认(用户使用)、4.维护
(4)特点:
理解性、可见性、支持性、接受性、可靠性、健壮性、可维护性、速度
三、软件过程模型
(1)瀑布模型
特点:相互依赖性比较强,每个阶段严格都要经过评审
优点:简单易用,在消除非结构化降低软件的复杂性。刘水依赖,分工协作
缺点:缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题,与用户见面晚。
适用范围:使用与系统柜要求明确的系统、各种应用软件的开发均可使用
b 模型
维护的经费比较多,开发和维护分开来做的。
(2)快速原型模型:
突出优点:快速、开发人员和用户都共同参与
缺点:所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
使用范围:使用与那些知识型软件系统的开发
(3)演化模型:
(4)螺旋模型:
优点:适应于内部的大规模软件开发:
螺旋模型强调风险分析,许多客户都无法接受和相信这种分析因此。
(5)喷泉模型:
突出优点:迭代、各阶段间没有明显的界限,
系统开发生命周期:
①计划阶段-②分析阶段-③设计阶段-④实现阶段-⑤支持阶段。