软件称为逻辑部件,硬件称为物理部件,人称为人件。
1、软件定义:软件是为了完成特定目的,存储在就算几存储器中的计算机程序及相关数据、
文档的集合,这些程序由指令组成,告诉计算机做什么和如何做
软件 = 程序 + 数据 + 文档
2、软件分类:
1)系统软件:与硬件打交道的软件
2)支撑软件:用来开发其他软件的软件(文本编辑器、编译器等)
3)应用软件:为特定目的开发的一类软件
其他分类方式:
1)软件工作方式:实时处理软件、分时处理软件(并发)
2)软件运行环境:单机运行软件、网络运行软件和嵌入式软件
3)软件体系结构:c/s 结构、b/s 结构 和 多层架构
3、软件危机产生的原因:
1)软件本身的特点
2)软件开发与维护的方式不正确
软件架构
1、软件建构,又称软件体系结构,他是具有一定形式的结构化元素,即构建的集合,包括:
1)处理构件
2)数据构件
3)连接构件
2、软件架构目标
1)可靠性
2)安全性
3)可定制化
4)可扩展性
5)可维护性
6)客户体验
7)市场危机
3、架构模式
1)c/s 架构:
平常使用的软件,例如微信等
2)b/s 架构:
平常使用的浏览器,如学生一体化管理平台
3)三层架构:
1> 表示层:可视化图形界面
2> 应用层(业务逻辑层):中间的数据处理部分
3> 数据访问层:和数据库或者文件打交道的一层
4、软件生命周期:
问题定义:给出 目标和范围说明书
可行性研究:给出 可行性论证报告
需求分析:给出 需求说明书
软件设计:给出 设计文档
编码:给出 程序
测试:给出 测试报告
维护:给出 维护报告
5、瀑布模型:
特点:
1)阶段间具有顺序性和依赖性
2)推迟实现的观点:区分逻辑设计与物理实现,尽可能推迟程序物理实现
3)质量保证的观点:文档 加 每阶段的评审
存在的问题:
1)只有当分析员能够做出准确的需求分析时,才能得到理想的正确结果
2)顺序太过理想化,是文档驱动的:不能适应需求变化
适合场景:软件需求比较明确,需求反复性小,开发技术比较成熟的场合
6、快速原型模型:
先在用户描述的基础上,做出一个大概的可视化框架,不实现内部的各个控件,
不断靠用户的意见调节控件等,快速靠近用户的需求
快速原型模型适应于那些不能预先确切定义需求的软件系统的开发,不适合
采用很多新技术的项目
7、软件开发环境与工具
1)软件开发工具
是一种软件,是辅助和支持其他软件研制和维护的工具,使用软件开发工具可以提高软件生产效率和改进软件质量
2)软件开发环境
是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件。