目录
什么是软件
软件特点:
软件分类
按功能
按软件工作方式
按服务对象分
按使用频度
按软件失效的影响进行划分
软件发展阶段
软件过程
软件生存期:软件从孕育、诞生、成长、成熟、衰亡(有更好的替代软件,并不是软件不能使用)的生存过程
软件设计
软件生存期模型(范围及其优缺点)
一、瀑布模型:
二、快速原型模型
三、演化模型: 进行二次开发
四、螺旋模型:在四个象限上分别表达了四个方面的活动
五、喷泉模型:演化、维护、确认、实现、设计、分析
六、变换型
软件工程
定义-三种定义
软件危机
软件工程七条原理
软件的基本内容与目标
什么是软件
软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据以及 其他相关文档的完成集合。。。所以软件由程序、数据、文档构成
程序,事先设计的功能和性能要求执行的指令序列
数据,使程序能正常操纵i洗脑洗的数据结构
文档,与程序开发,维护和使用有关的图文材料
软件特点:
是一种逻辑实体,不是具体的物理实体,具有抽象性
生产开发过程中没有明显的制造过程、如加工处理
运行和使用时,没有机械磨损,老化现象
开发受到硬件的限制,对计算机系统存在依赖性
完全没有摆脱手工艺的开发方式,人手动写代码
软件本身是复杂的—实际问题的复杂性、程序逻辑结构的复杂性
软件成本昂贵-相对于硬件来说
从成本来说,1950年至1985-硬件成本逐渐降低,软件成本逐渐增高
软件分类
按功能
系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序
应用软件:各个专业完成数据处理的软件。计算机辅助软件、仿真软件等等
按规模(类别、参加人数、研制期限、源程序行数)
微型、小型、中型、大型、甚大型、极大型
按软件工作方式
实时处理软件、分时软件-用于多用户同时工作、交互式软件、批处理软件
按服务对象分
项目软件-接受某个特定用户的委托,在合同的约束下开发软件-以需求为主
产品软件-形成产品、推向市场、由软件开发机构开发,推向市场,以盈利为目的
按使用频度
一次使用
频繁使用
按软件失效的影响进行划分
高可靠性软件:航空、金融等,使用测试工具】开发环境非常严格
一般可靠性软件:一般测试工具和开发环境
软件发展阶段
程序设计阶段 50-60年代
使用机器语言,受到硬件限制,完全手工操作,没有文档,个人手写程序,编程提倡技巧性
程序系统阶段 60-70年代
作坊式开发,几个人共同开发软件,
软件工程阶段 70年代以后
一软件,使用科学的管理方法,指导软件开发、设计、调试等一系列的活动,目的是为了解决软件危机
软件过程
软件规格说明:规定软件的功能和运行限制‘
软件开发:产生满足规格说明的软件
软件确认:确认软件能够完成客户需求
软件改进:满足用户变更要求
特点:易理解、可见性、可支持性、可接受性、可靠性、健壮性(安全性)、可维护性、运算速度
推荐;软件工程规范
软件生存期:软件从孕育、诞生、成长、成熟、衰亡(有更好的替代软件,并不是软件不能使用)的生存过程
步骤:
制定计划:
确定开发软件系统的总目标
给出功能、性能、可靠性、接口方面要求
完成该软件任务的可行性研究(软件工程的第一个文档–可行性 告)
需求分析和定义:
对待开发软件提出需求进行分析,给出详细的定义(设计人员完成)
编写软件需求说明书
软件设计
概要设计:把各项需求转换成软件的体系结构,划分成明确的模块
详细设计:
程序编写:
程序测试—动态 测试、静态测试
单元测试:查找个模块在功能和结构上是否存在问题,并加以纠正
组装测试:将测试后的模块,按一定顺序组装起来,进行测试
运行维护
软件生存期模型(范围及其优缺点)
一、瀑布模型:
思想;:分解,从制作时间上按工序把问题化简,将功能实现与制作分开便于分工协作
优点、特点:阶段间顺序性和依赖性强、推迟物理实现、每个阶段非常严格
缺点:开发周期长,与用户见面慢,成功率低25%
适用范围:适用于系统要求明确的系统,各种应用软件的开发均可使用
形式
维护过程中,修改不能超过一半,超过后就是二次开发
二、快速原型模型
需求分析、原型开发、原型评价、最终系统设计、最终系统实现
三、演化模型: 进行二次开发
第一次实验开发
第二次在第一次的基础上进行开发
二次开发:依赖于瀑布模型
四、螺旋模型:在四个象限上分别表达了四个方面的活动
制定计划-确定软件目标,选定实施方案,弄清项目开发的限制条件
风险分析-分析所选方案,风险识别和消除风险
实施工程-软件开发
客户评估-对产品评价
五、喷泉模型:演化、维护、确认、实现、设计、分析
基本思想;允许从部分需求出发,先建立一个不全面的系统,通过测试这个系统,进一步使系统更加完善
优点:开发的始终开发人员和用户都共同参与,有问题可以随时修改,很好的满足用户的需求
使用范围:知识型软件系统的开发
特点:整体结构不如瀑布型 清晰、软件的文档不如瀑布型划分严格、周期长成本高、与用户见面快、开发效率高
迭代:重复、演进
无间隙:各阶段简无明显界限
可以提高开发速度
六、变换型
思想:从软件需求的形式规格说明出发,经过一系列的程序变化,得到最终结果系统开发生命周期
主要阶段:分析阶段、设计阶段、实现阶段
附加阶段:项目计划阶段、系统支持
软件工程
定义–三种定义
Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料
IEEE:开发、运行、维护和修复软件的系统方法
FritzBauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上以后小运行的可靠软件的一系列方法
低成本、快速的开发软件
软件开发技术:软件开发方法学、软件工具
软件工程学:软件工程开发环境、软件管理学
软件管理技术:软件工程经济学
软件危机
产品不符合用户的实际需要
软件开发生产率提高的速度不能满足客观需要
软件产品质量差
软件开发成本不明确和预计成本存在误差
软件可维护性差
软件文档资料不完整不合格
软件价格昂贵
软件危机产生的原因
软件工程七条原理
用分阶段的生存周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚的审查
合理安排软件开发小组的人(少而精)
承认不断改进工程实践的必要性
软件的基本内容与目标
基本内容:从内容上划分软件工程学可分为理论、结构、方法、工具、环境、管理、规范
基本目标:1.定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。2.确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹。3.可预测结果,在生存周期中,每隔一段时间可以进行复审。
软件工程的最终目标是以较少的投资获得以维护、易理解、可靠、高效率的软件产品。
软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。
软件工程学基本原则:分解、独立性、一致性、确定性。
有的教材提出七条基本原则:模块化、抽象、信息隐蔽、信息局部化、一致性、完整性、确定性
视频中讲的分解包括模块化和抽象
软件生存期分为三大阶段、计划阶段、开发阶段、维护阶段
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!