软件工程知识点整理
1、计算机软件概念
软件指计算机系统中的程序及其文档。
程序是计算任务的处理对象和处理规则的描述
文档是为了便于了解程序所需的阐明性资料,文档一般是给人看的
2、软件发展的3个阶段(了解)
程序设计阶段——50至60年代
程序系统阶段——60至70年代
软件工程阶段——70年代以后
3、软件工程概念
(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;
(2)研究(1)中提到的途径
3、软件生存周期概念及其6个阶段
软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。为计算机软件的生命周期。
软件生命周期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护。
4、瀑布模型的思想、特点及其局限性
思想:    (1)软件开发过程与软件生命周期是一致的
(2)相邻二阶段之间存在因果关系
(3)需对阶段性产品进行评审
特点:    (1)接受上一阶段活动的结果作为本阶段活动的输入
(2)依据上一阶段活动的结果哦实施本阶段应完成的活动
(3)对本阶段的活动进行评审
(4)将本阶段活动的结果作为输出,传递给下一阶段
局限性:(1)缺乏灵活性,如用户需求一开始很难确定
        (2)到最后阶段才能得到可运行的软件版本
5、增量模型思想、特点和局限性
(1)增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。
(2)增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征
(3)增量模型强调每一个增量都发布一个可运行的产品(第一个增量是核心产品)
·特点:增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求    并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。
·增量模型特别适用于:
1、需求经常变化的软件开发
    2、市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的        软件开发
·增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的技术。
原型模型:
原型应该包括目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能
原型模型两个阶段
(1)原型开发阶段
(2)目标软件开发阶段
原型的使用策略:废弃策略----主要用于探索型和实验型原型的开发。
追加策略----主要用于演化型原型的开发。
使用原型法需注意:
(1)用户对系统模糊不清,无法准确回答目标系统的需求
(2)要有一定的开发环境和工具支持
(3)经过对原型的若干次修改,应收敛到目标范围内,否则可能失败
(4)对大型软件而言,原型可能非常复杂而难以快速形成,若没有现成的,不应考虑采用    该方法
优点
有助于获取用户需求,加强对需求的理解
尽早发现软件中的错误
支持需求的动态变化
适合于需求动态变化、事先难以确定的系统
局限性
不能支持风险分析
螺旋模型:
·基本思想:螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。
·螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动
制定计划 ── 确定软件目标,选定实施方案,弄清项目开发的限制
风险分析 ── 分析所选方案,考虑如何识别和消除风险
实施工程 ── 实施软件开发
客户评估 ── 评价开发工作,提出修正建议
·优点
有助于获取用户需求,加强对需求的理解
尽早发现软件中的错误
支持需求的动态变化
支持风险分析,可降低或者消除软件开发风险
适合于需求动态变化,事先难以确定并且开发风险较大的系统
风险概念
(1)风险涉及的是未来将要发生的事情
(2)风险涉及改变
(3)风险涉及选择,具有不确定性
7、喷泉模型:
喷泉模型是一种支持面向对象开发的模型
体现迭代和无间隙特征
  1、该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像
水喷上去又可以落下来,类似一个喷泉。
  2、各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中
随时补充其他任何开发阶段中的遗漏。
形式化方法概念:
形式化方法是建立在严格数学基础上的一种软件开发方法。软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。
计算机软件系统软件过程模型总结:
1、瀑布模型建议线型流程的框架活动,这在软件世界里通常与当代软件开发的现实情况不符(例如,持续的变更、演化的系统、紧迫的开发时间)。但瀑布模型确实适用于需求定义清楚且稳定的软件开发。
2、增量软件过程模型通过一系列的增量发布产生软件。
3、演化过程模型认识到大多数软件工程项目的迭代特性,其设计目的是为了适应变更。演化模型,例如原型开发及螺旋模型,快速地产生增量的工作产品(或是软件的工作版本)。这些模型可以应用于所有的软件工程活动——从概念开发到长期的软件维护。
8、基于计算机的系统概念以及6个组成元素
基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的组合。
六个元素:
·软件—指计算机程序、数据结构和相关的工作产品,以实现所需要的逻辑方法、规程或控制
·硬件—指提供计算能力的电子设备、支持数据流的互连设备(如网络交换器、电信设备)和提供外部世界功能的电子机械设备(如传感器、马达等)
·人员—指硬件和软件的用户和操作者
·数据库 —指通过软件访问并持久存储的大型的有组织的信息集合
·文档 —指描绘系统的使用和/或操作的描述性信息(如模型、规格说明、硬复制手册、联机帮助文件、Web站点)
·规程 —指定义每个系统元素的特定使用或系统所处的过程性语境的步骤
9、可行性分析的任务
开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。
回答“是否可以做?”的问题
软件工程要以经济为本,用户为先!
10、需求工程的6个阶段及任务
I. 需求获取 
通过与用户的交流,了解业务现状以及对待开发系统的期望
需求获取收集的“原始材料”为进行需求分析提供了基础
II. 需求分析与协商
对需求进行分类组织,分析需求之间的关系
检查需求的一致性、重叠和遗漏的情况
根据用户的需要对需求进行排序。
在需求获取阶段,经常出现以下问题:
提出的要求超出软件系统可以实现的范围或实现能力
不同的用户提出了相互冲突的需求
III. 系统建模
借助建模技术对获取的需求信息进行分析和表达,排除错误和弥补不足,确保需求文档正确反映用户真实意图
常用的分析和建模方法
IV. 需求规约(Specification) (编写文档)
通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求
软件需求规约是分析任务的最终产物
需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用
V. 需求验证 (评审)
需求开发阶段工作的复查手段
对功能的正确性、完整性和清晰性,以及其它需求给予评价
为保证软件需求定义的质量,评审应以专门指定的人员负责(应该是需求分析人员之外的其他人员),并按规程严格进行
VI. 需求管理 (维护一致性)
一种获取、组织并记录系统需求的系统化方案:对所有需求工程相关活动的规划和总体控制
需求变更管理:一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程(变更的记录、分析、变更过程管理、追踪等)
11、软件需求的概念
用户对目标系统在功能、行为、性能等方面的要求
12、软件需求规约主要包括的内容
通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求
软件需求规约是分析任务的最终产物
需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用
13、软件设计阶段的任务
数据/类设计:将分析-类模型变成类的实现和软件实现所需要的数据结构
体系结构设计:体系结构设计定义了软件的整体结构
接口设计:接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信
构件级设计:构件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述
界面设计:
14、软件设计过程
1、制定规范
2、体系结构和接口设计
3、数据/类设计
4、构件级(过程)设计

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。