软工视频看了一半多了,小小的记录一下,其实大多数是定义和理解的东西,学习记录如下:
软件
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据以及其相关文档的完整集合
其中,程序、数据和文档的定义如下:
-程序
程序是按事先设计的功能和性能要求执行的指令序列
-数据
数据是使程序能正常操作信息的数据结构
-文档
文档是与程序开发,维护和使用有关的图文材料
软件的特点
1、软件是一种逻辑实体,而不是具体的物理试题。因而它具有抽象性象性
2、软件的生产与引荐不同,在它的开发过程中没有明显的制造过程
3、在软件的运行和试用期间,没有硬件那样的机械磨损,老化问题
4、软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性
5、软件的开发至今尚未完全摆脱手工艺的开发方式
6、软件本身是复杂的
-实际问题的复杂性
-程序逻辑结构的复杂性
7、软件成本相当昂贵
8、相当多的软件工作涉及到社会因素
软件的分类
1、按软件的功能进行划分:
• 系统软件
-操作系统
-数据库管理系统
-设备驱动程序
-通信处理程序等
• 支撑软件
-文本标记程序
-文件格式化程序
-磁盘向磁带向数据传输的程序
-程序库系统
-支持需求分析,涉及,实现,测试和支持管理的软件
• 应用软件
-商业数据处理软件
-工程与科学计算软件
-计算机辅助设计/制造软件
-系统仿真软件
-智能产品嵌入软件
-医疗、制药软件
-事务管理、办公自动化软件
-计算机辅助教学软件
-按软件规模进行划分
2、按软件工作方式划分
-实时处理软件 (实时处理,返回信号)
-分时软件
-交互式软件 (人机通讯)
-批处理软件
3、按软件服务对象的范围划分:
-项目软件
-产品软件
4、按使用的频度进行划分:
-一次使用
-频繁使用
5、按软件失效的影响进行划分:
-高可靠性软件
-一般可靠性软件
-软件生存期 life cycle
-软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期
开发软件的六个过程
1、制定计划
-确定要开发软件系统的总目标
-给出功能、性能、可靠性以及接口等方面的要求
-完成该软件任务的可行性研究
2、需求分析和定义
-对待开发软件提出的需求进行分析并给出详细的定义
编写软件需求说明书
3、软件设计
盖亚设计- - 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确地模块
4、软件编写
5、 软件测试
-单元测试,查找各模块在功能和结构上存在的问题并加以纠正
-组装测试,讲已测试过的模块按一定顺序组装起来
6、软件的运行和维护
系统开发生命周期(三个主要的阶段)
分析阶段:理解商业需求
设计阶段:讲计算机系统解决方案概念化
实现阶段:实现、测试并安装系统
二个附加的阶段
项目计划及阶段
系统支持
软件工程的三要素
1、方法
为软件开发提供了“如何做”的技术
2、工具
为软件工程方法提供了自动的或半自动的软件支撑环境
3、过程
-方法使用的顺序
-要求交付的文档资料
-为保证质量和适应变化所需要的管理
-软件开发各个阶段完成的里程碑
软件工程项目的基本目标
-付出较低的开发成本
-达到要求的软件功能
-取得较好的软件性能
-开发的软件易于移植
-需要较低的维护费用
-能按时完成开发工作,及时交付使用
软件危机与软件工程定义
1、软件危机
软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
(1)软件危机的表现
-产品不符合用户的实际需求
-软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力
-软件产品的质量差。
-对软件开发成本和进度的估计常常不准确。
-软件的可维护性差。
-软件文档资料通常记不完整也不合格。
-软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升
(2)产生软件危机的原因
-软件不同于硬件,它是计算机系统中的逻辑不见而不是物理部件。在写出程序代码并在计算机上试运行之前,很难检验开发的正确性,而且软件开发的也比较难评价。软件不同于一般程序,它的一个显著特点是规模庞大。
-虽然软件本身独有的特点确实给开发和维护带来一些库管困难,但是人么你在开发和使用计算机系统的长期实践中,也确实积累和总结出了许多成功的经验
-开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求
-软件管理技术不能满足现代软件开发的需要,没有同意的软件质量管理规范
-在软件的开发与维护关系问题上存在错误的概念
软件工程的七条原理
1、用分阶段的生存周期计划严格管理
2、坚持进行阶段评审
3、实行严格的产品控制
4、采用现代程序设计技术
5、结果应能清楚地审查
6、合理安排软件开发小组的人
7、承认不断改进软件工程实践的必要性
总结:软工视频有很多内容是我们以后需要注意的地方,而且里面软件的开发设计流程,是我们做一个好软件的标准,对软件从需求到维护,有了充分的讲解,是我们以后进步的基石。