《软件工程》-概述

【前言】
软件工程是软件设计的灵魂,是我们前进的思想性指导。它使我们的设计有法可依,有章可循。看完了软工视频,这里就先对软件工程概论进行总结。
【内容】
1.软件是什么?
软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
程序:是按事先设计的功能和性能要求执行的指令序列。
数据:是使程序能够正常操纵信息的数据结构。
文档:是与程序开发,维护和使用有关的图文材料。
2.软件的特点:
(1)软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。
(2)软件的生产与硬件不同,在它的开发过程中没有明显的制造过程。
(3)在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。
(4)软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
(5)软件的开发至今尚未完全摆脱手工艺的开发方式。
(6)软件本身是复杂的:实际问题的复杂性、程序逻辑结构的复杂性
(7)软件成本相当昂贵
(8)相当多的软件工作涉及到社会因素;比如:知识产权。
3.软件的分类:
(1)按软件的功能进行划分:
系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序等
支撑软件:文本编辑程序、文件格式化程序、磁盘向磁带向数据传输的程序、程序库系统、支持需求分析、设计、实现、测试和支持管理的软件
应用软件:商业数据处理软件、工程与科学计算软件、计算机辅助设计/制造软件、系统仿真软件、智能产品嵌入软件、医疗制药软件、事务管理,办公自动化软件、计算机辅助教学软件

(2)按软件规模进行划分:
在这里插入图片描述
(3)按软件工作方式划分:
实时处理软件:在事件(或数据)发生的时候,对其立即响应和处理,及时返回信号。
分时软件:把时间片轮流分配给各个用户(多个用户同时工作)
交互式软件:人机通讯
批处理软件:把一组输入的作业按照一定的顺序进行排列,计算机按照顺序进行处理。
(4)按软件服务对象的范围划分:
项目软件:只接受某个客户的委托,由一个或多个软件的开发机构,在合同的约束下开发的软件。
产品软件:又软件开发机构开发,直接推向市场,为众多客户服务。

(5)按使用的频度进行划分:一次使用、频繁使用
(6)按软件失效的影响进行划分:高可靠性软件、一般可靠性软件
4.软件的发展阶段
程序设计阶段:
50至60年代(机器语言、汇编语言)受硬件限制,无软件概念,程序不通用;
程序系统阶段:
60至70年代(程序+说明)程序大,问题多;68年软件工程概念
软件工程阶段:
70年代以后(面向对象)软件=程序+数据结构+文档
特点:产品化、系列化、工程化、规范化、标准化
由软件转向软件工程的开发和维护过程中,遇到了一系列严重的问题,因此,出现了软件危机。
4.软件危机:
是指软件开发和维护过程中遇到的一系列严重问题。
4.1软件危机的表现:
(1)产品不符合用户的实际需求;
(2)软件开发生产提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力;
(3)软件产品的质量差;
(4)对软件开发成本和进度的估计常常不准确;
(5)软件的可维护性差;
(6)软件文档资料通常既不完整也不合格;
(7)软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。
4.2软件危机产生的原因:
(1)软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前,很难检验开发的正确性,而且软件开发的也较难评价。软件不同于一般程序,它的一个显著特点是规模庞大。
(2)虽然软件本身独有的特点确实给开发和维护带来一些客观困难,但是人们在开发和使用计算机系统的长期实践中,也确实积累和总结出了许多成功的经验。
(3)开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。
(4)软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
(5)在软件的开发与维护关系问题上存在错误的概念。
5.软件工程:(最少的投入,高质量的软件)
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
6.软件工程三要素:方法、工具、过程
方法:为软件开发提供了“如何做”的技术;
工具:为软件工程方法提供了自动的或半自动的软件支撑环境;
过程:方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。
7.软件工程项目的基本目标:
付出较低的开发成本;
达到要求的软件功能;
取得较好的软件性能;
开发的软件易于移植;
需要较低的维护费用;
能按时完成开发工作,及时交付使用。
8.软件工程的7条原理:
(1)用分阶段的生存周期计划严格管理;
(2)坚持进行阶段评审;
(3)实行严格的产品控制;
(4)采用现代程序设计技术;
(5)结果应能清楚的审查;
(6)合理安排软件开发小组的人(少而精);
(7)承认不断改进工程实践的必要性。

9.软件工程的原则:
为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:
分解(模块化,抽象化)、独立性、一致性、确定性
10.软件工程过程:(PDCA)
软件规格说明:规定软件的功能及其运行的限制 p
软件开发:产生满足规格说明的软件 d
软件确认:确认软件能够完成客户提出的要求 c
软件演进:不断改进和维护 a
10.1软件工程过程特性:
易理解性、可见性、可支持性、可接受性、可靠性、健壮性、可维护性、速度

11.软件生命周期:
软件有一个孕育、诞生、生长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期。生存期六步骤:
制定计划:
确定要开发软件系统的总目标,给出功能、性能、可靠性以及接口等方面的要求,完成该软件任务的可行性研究报告。
需求分析和定义:
对待开发软件提出的需求进行分析并给出详细的定义,编写软件需求说明书。
软件设计:概要设计和详细设计
概要设计:把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都有明确的定义;
详细设计:为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
软件测试:单元测试和组装测试
单元测试:查找各模块在功能和结构上存在的问题并加以纠正;
组装测试:将已测试过得模块按一定顺序组装起来。
运行和维护:
维护:(费用大)维护工作量控制;
改正性维护:用户发现错误,进行修正;
适应性维护:开发环境变了,要修改;
完整性维护:增加什么功能。
好了,暂时总结到这里,其中软件的生命周期有几种常见的模型,下篇博客再见!

猜你喜欢

转载自blog.csdn.net/frj0260/article/details/84893599