一、软件工程基础知识 1. 开发方法与开发模型 1.1 软件生存周期 计划阶段:确定系统的总体目标和范围、系统的可行性和解决方案。对资源和进度合理的估算。 分析阶段:整理并分析收集到的用户需求,建立分析模型。确定软件的功能、性能、测试方法数据要求等目标。编写软件需求规格说明书。需求分析确定软件要完成的功能及非功能性要求。 设计阶段:依据软件需求规格说明书,在概要设计阶段,将需求转化为软件的模块划分,确定模块之间的调用关系。在详细设计阶段,将模块进行细化,得到详细的数据结构和算法。 实现阶段:根据详细设计结果,将每个模块编写成程序代码和相关的文档,得到可以运行的程序。 测试阶段:先进行单元测试,检查各个软件模块。再进行集成测试,测试整个产品的功能和性能是否满足软件需求说明书。 软件复杂性度量是软件度量的一个重要分支。软件复杂性度量的参数有很多,主要包括: 规模,即指令数或者源程序行数; 难度,通常由程序中出现的操作数所决定的量来表示;结构通常用与程序结构有关的度量来表示; 智能度,即算法的难易程度。 1.2 软件开发方法 结构化开发方法 面向数据流的开发方法 分为结构化分析(用数据流图建立系统功能模型) 结构化设计(设计软件体系结构从而得到系统物理模型(分为各种模块)) 结构化程序设计(顺序,选择和重复3中基本控制结构构造) 指导思想:自顶向下,逐层分解。 基本原则:功能的分解与抽象, 适用环境:数据处理领域;不适合大规模、复杂的项目 原型方法 基本思想:在限定时间内,快速经济的开发一个可运行的系统模型,然后根据用户对此系统的评价,提出改进意见对原型进行修改,重复进行此过程最终完全满足用户需求为止 适用环境:用户需求不清楚,经常变化;系统规模不大。 面向对象方法 出发点:尽可能地按照人类认识世界的方法和思维方式来分析和解决问题。 以对象作为基本元素和解决问题的核心。 面向对象分析(OOA):认定对象、组织对象、对象间的相互作用、基于对象的操作 面向对象设计(OOD):整理问题,对分析结果进行抽象,归类,整理。 面向对象程序设计(OOP):程序的实现 Booch方法、Coad方法和OMT方法等都属于面向对象方法。 敏捷方法 总体目标:做到尽可能早的,持续的对有价值的软件交付,从而使客户满意 极限编程:4大价值观:沟通,简单性,反馈和勇气。5个原则和12个最佳实践。 水晶法:每一个不同的项目都需要一套不同的策略、约定和方法论。 并列争求法:多个自组织和自治的小组并行得递增实现产品,使用了选代的方法 自适应软件开发:特征;过程的等待;重做;变化;确定的交付时间,风险。 1.3 软件开发模型 模型名称 技术特点 瀑布模型 将软件开发项目划分为制订计划,需求分析,软件设计,程序编写,软件测试和运行维护6个阶段。并确定了自上而下,相互衔接的固定次序。优点是规范化过程,有利于评审。缺点是缺乏灵活性,容易产生需求偏差 快速原型模型 第一步是建造一个快速原型交付使用,客户对原型进行评价。开发人员通过逐步调整原型确定客户的真正需求;第二步是在第一步的基础上,开发客户满意的软件产品。优点是可以克服瀑布模型的缺点,减少开发风险。缺点是维护困难,不适合大型系统 演化模型 该模型首先开发软件的核心系统,然后根据用户在使用过程中提出的建议进行改进产生新的版本。重复这一过程,使用户最终获得满意的软件。演化模型适用于软件需求不明确的情况下使用 增量模型 整个软件产品被分解成若干个构件,开发人员逐个构件的交付产品。优点是适应变化,降低开发风险,适用于需要快速发布产品的市场环境 螺旋模型 综合了瀑布模型和演化模型的优点,增加了风险分析。适用于大型复杂的系统开发优点是支持用户需求的动态变化,降低风险,缺点是增加开发成本。 喷泉模型 主要用于描述面向对象的开发过程,核心特点是迭代。所有开发活动没有明显边界,允许各种开发活动交叉进行。 2. 数据流图与数据字典 基本概念: 外部实体 外部系统是当前系统之外的人、物、外部系统 数据存储 存储加工的数据或者提供数据给加工 加工 将输入数据处理后得到输出数据 一个加工至少有一个输入数据流和一个输出数据流 数据流 数据流的起点或者终点必须有一个是加工。两个都是加工也可以 解题方式: 问题1:求解外部实体
| 文章分类 | golang | php程序设计基础 | ui-grid | 中药 | 关于 |