这份阅读笔记作为上学期手写的笔记的内容的整理和复习的一部分。
软件分类:
系统软件、应用软件、恶意软件
软件:
国际中对软件的定义为:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
软件 = 程序 + 软件工程
软件工程定义:
软件工程是把系统的, 有序的, 可量化的方法应用到软件的开发, 运营, 和维护上的过程。
可量化:一般,指的是目标或任务具体明确,可以清晰度量。
系统:指将零散的东西进行有序的整理、编排形成的具有整体性的整体。
有序:有条理,不混乱
软件工程包括下列领域:
软件需求分析
软件设计
软件构建
软件测试
和软件维护
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。
软件构建:软件设计的实现过程
软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件维护是一个软件工程名词,是指在软件产品发布后,因修正错误、提升性能或其他属性而进行的软件修改。
软件的特点:
软件是抽象的。
软件不会磨损。
软件是可移植的。
软件是复杂的。
软件是昂贵的。
软件危机的原因:
用户需求不明确
缺乏正确的理论指导
软件开发规模越来越大
软件开发复杂度越来越高
软件危机的表现:
对软件成本和进度的估算通常是不准确的
用户通常对“已完成”的系统是不满意的
软件的质量通常是不可靠的
软件的可维护性太差
没有相关的文档(没有有关需求、分析测试等文档)
软件在计算机系统中所占的比例越来越大,但是软件的发展却跟不上计算机应用的快速、深入、广泛的发展
Bug:软件的行为和用户的期望值不一致
软件工程的目标:
- 研发出符合用户需求的软件;
- 通过一定的软件流程、在预计时间内发布“足够好”的软件;
- 能证明所开发的软件是可以维护和继续发展的。
三大名词:
客户:想让软件产品得到开发的个人或组织,可发经费由客户提供
开发人员:负责软件的组织与建造的成员
用户:用户受客户委托,代表客户使用该软件。
软件过程:
需求工作流
分析工作流
设计工作流
实现与集成工作流
测试工作流
维护阶段
退役阶段
软件测试:
测试是软件过程的一个完全组成部分,测试贯穿于整个软件过程的行为。如果仅仅在整个整个工作流结束后,才测试该工作流的产品,是远远不够的。
软件测试的分类:
功能型测试
非功能型测试