阿里云新用户优惠

软考中级精选

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

阅读更多...

阿里云新用户优惠

软考中级|软件设计师笔记

一、计算机组成原理与体系结构基础知识 1. 数据的表示 二进制是Binary,简写为B 八进制是Octal,简写为O 十进制为Decimal,简写为D 十六进制为Hexadecimal,简写为H Ⅰ、进制的转换: 任意进制$\to$十进制 二进制:$10010010.110 = 1*{2^7} + 1*{2^4} + 1*{2^1} + 1*{2^{-1}} + 1*{2^{-2}} = 146.75$ 八进制:$251.5 = 2*{8^2} + 5*{8^1} + 1*{8^0} + 5*{8^{-1}} = 168.625$ 十六进制:$AE86.1 = 10*{16^3} + 14*{16^2} + 8*{16^1} + 6*{16^0} + 1*{16^{-1}} = 44678.0625$ 十进制$\to$任意进制 使用短除法 二进制$\leftarrow\to$八进制、十六进制 二进制$\to$八进制 3位一组,每组转换成对应的八进制符号 $\frac {001}{1} \frac {111}{7} \frac{000}{0} \frac{010}{2} . \frac{011}{3} \frac{010}{2} = 1 7 0 2 . 3 2 $ 八进制$\to$二进制

阅读更多...