软件工程(一)概述

软件

1什么是软件?
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
2.软件的特点.
(1).软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性
(2).软件的生产与硬件不同,在它的开发过程中没有明显的制造过程
(3).在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。
(4).软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
(5).软件的开发至今尚未完全摆脱手工艺的开发方式。
(6).软件本身是复杂的。
(7).实际问题的复杂性。
(8) .程序逻辑结构的复杂性
(9).软件的成本相当昂贵
(10).相当多的软件工作涉及到社会因素(抄袭问题)
3.软件的分类。
—-按软件的功能进行划分
(1).系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序等。
(2).支撑软件:文本编辑格式、文件格式化程序、磁盘向数据传输的程序、程序库系统、设计实现测试和支持管理的软件。
(3).应用软件:商业数据处理软件、工程与科学计算软件、计算机辅助设计/制造软件、系统仿真软件、智能仿真软件、智能产品嵌入软件、医疗制药软件、事务管理、办公自动化软件、计算机辅助教学软件。

—-按软件规模进行划分
—-按软件的工作方式划分
实时处理软件
分时软件(多个用户同时工作的情况下)
交互式软件
批处理软件(按照一定顺序)
四按照软件服务对象的范围划分
项目软件
产品软件

—-按软件服务对象的范围划分
项目软件
产品软件

—-按照使用的频度进行划分
一次使用
频繁使用

—-按软件失效的影响进行划分
高可靠性软件
一般可靠性软件

软件工程过程

1.软件规格说明:规定软件的功能及其运行的限制
软件开发:产生满足规格说明的软件
软件确认:确认软件能够完成客户提出的要求

2.软件工程过程的特性:
易理解性
可见性
可支持性
可接受性
可靠性
健壮性
可维护性

软件开发模型

1. 瀑布模型:顺序性和依赖性比较强
1.思想
(1).从制作时间尚按工序把问题化简
(2). 将功能实现与制作分开便于分工协作
2. 优点
(1).奠定了软件工程方法的基础
(2).流水依赖,便于分工协作
(3).推迟物理实现,易于修改文档,有复审质量保证
3.不足 与用户见面晚,成功率低,一般为25%
4.适用范围: 适用与系统要求明确的系统 各种应用软件的开发均可使用
5.开发方法 遵循软件生命期的划分,,明确规定每个阶段的任务,上一阶段完成确认后就产生一定格式的文档给下一阶段,不同阶段的任务,一般有不同级别的软件人员承担。
6.开发特点 时间的顺序性和依赖性 推迟实现的观点 质量保证的观点

    演化模型
    由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现反工再开发在所难免。做两次,也可能多次。
    第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求 第二次则在此基础上获得较为满意的软件产品

    渐增模型 螺旋模型 螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:
    制定计划--确定软件目标,选定实施方案,弄清项目开发的限制条件 风险分析--分析所选方案,考虑如何识别和消除风险
    实施工程--实施软件开发 客户评估--评价开发工作,提出修正建议。

    喷泉模型 迭代
        重复
         演变  无间隙
        各尖端间无明显界限

    原型(渐型):
    1.基本思想:   允许从部分需求触发,先建立一个不全面的系统通过这个系统,进一步使系统扩充和完善
    2.优点 开发的始终开发人员人员和用户都共同参与,有问题可以随时修改,从而很好的满足了用户的需求
    3.适用范围    适用与那些只是型软件系统的开发
    4.特点:    从整体结构上不如瀑布型清晰    软件的文档不如瀑布的划分严格    周期长,成本搞   与用户见面快,开发效率高。

    变换型
    1.思想 从软件需求的形式规格说明出发,经过一系列的程序变化,得到最终结果。 2.特点: 有严格的数学理论和形式化的技术支持,但目前在研究和试验阶段,不能实用 喷泉型:认为软件的各个周期是相互重叠的和多次反复的
螺旋型:多次原型反复并增加和风险评估的开发模型

软件危机

 1. 软件危机的表现 产品不符合用户的实际需要
软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供巨大潜力
软件产品的质量差 对软件开发成本和进度的估计常常不准确 软件的可维护性差 软件文档资料通常既不完整也不合格
软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升

 2.产生软件危机的原因
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前,很难检验开发的正确性,而且软件开发也较难评价。软件不同于一般程序,它的一个显著特点是规模庞大
虽然软件本身独有的特点确实给开发和维护带来一些客观困难,但是人们在开发和使用计算机系统长期实践中,也确实积累和总结出了许多成功的经验。

总结

软件工程的最终目标是以较少投资获得易维护、易理解、可靠、高效率的软件产品。
软件工程遵循了七条基本原理:
1.用分阶段的生存周期计划严格管理
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用现代程序设计技术
5.结果应能清楚地审查
6.合理安排软件开发小组的人
7.承认不断改进软件工程实践的必要性

猜你喜欢

转载自blog.csdn.net/qq_41306240/article/details/82109466