软件:计算机运行所需要的各种程序和数据的总成,包括操作系统,汇编语言,编译,程序,数据库,文字编辑和维护使用手册等。

软件的特性:(1)软件产品的主要生产是脑力劳动,还没有摆脱手工开发方式(2)软件是一种逻辑产品,他与物质产品不同,他是脑力劳动的结果(3)软件产品不会用坏(4)软件产品的生产主要是研制(5)软件费用不断增加,软件成本相当昂贵。

软件的分类:  系统软件,应用软件

软件的发展:程序设计时代(1946-1956),程序系统时代(1956-1968)软件工程时代(迄今)

软件危机的表现  (1)对于软件开发的成本和进度的估计不太准确(2)开发的软件产品不能完全满足用户的需求(3)开发的软件的可靠性差(4)软件通常没有适当的文档(5)软件的的可维护性差(6)软件开发生产率提高的速度远远更不上计算机应用普及的趋势

软件危机的原因:(1)软件的规模越来越庞大(2)软件开发的管理困难(3)软件本身的独有特点确实给开发和维护造成一些客观困哪(4)软件开发和维护中许多错误认识和方法的形成可以归结与计算机发展早期开发的个体化特点(5)软件开发技术落后(6)成产方式落后(7)开发工具落后,生产率提高缓慢

软件工程:用工程,科学和数学的原则与方法研制,维护计算机软件的有关技术及管理法,因此,定义为:将系统的,规范的,可度量的工程化方法应用与软件开发,运行和维护的全过程及上述方法的研究。

软件工程是有方法,工具和过程三部分构成的。

软件工程学和程序设计方法学的研究对象是软件和程序,(1)提高软件的质量和可靠性(2)提高软件的可维护性(3)提高软件生产率,降低软件开发成本等

软件工程的基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采纳现代程序设计技术(5)结果因能清楚的审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性

软件工程的目标:(1)可修改性(2)有效性(3)可靠性(4)可理解性(5)可维护性(6)可重用性(7)可适应性(8)可移植性(9)可追踪性(10)可互操作性

在软件开发技术方面,主要研究开发方法,开发过程,开发工具和环境。在软件开发管理方面,主要研究:软件管理学,软件经济学,软件心理学

软件是一种逻辑产品

软件工程和计算机科学性质不同,软件工程着重与建造软件系统

软件生命周期:任何一个软件都是从它的提出开始到最终被淘汰为止,有一个存在期,

软件生命周期是指一个软件从提出开发要求开始到该软件报废的整个时期

软件生命周期一种典型的阶段划分:问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试和维护。

活动时期:软件分析时期:(1)可行性研究可项目开发计划(2)需求分析  软件设计时期:(1)概要设计(2)详细设计 编码与测试时期: 编码  测试  运行和维护时期

软件生命周期模型是指开发软件项目的总体过程思路,软件生命周期模型是描述软件开发过程中各种活动如何执行的模型

瀑布模型:体现在它是一种理性的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。

软件工程过程包含了:开发过程,管理过程,供应过程,获取过程,操作过程,维护过程,支持过程。

喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适用于面向对象的开发方法,他克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性

可行性研究:(1)技术可行性研究(2)经济可行性研究(3)法律可行性研究(4)开发方案的选择性研就

成本效益分析:(1)成本估计 源程序行数的成本  (2)货币的时间价值

社会可行性所研究的范围包括合同,责任,侵权。

需求分析是指:开发人员要进行细致的调差分析,准确理解用户的要求,将用户非形式的需求陈述转换为完整的需求定义,再有需求定义转换为相应形式功能规约的过程。

需求分析的任务:(1)问题明确定义 a.功能需求,性能需求,环境需求,用户界面需求,系统的可靠性,安全性,可以执行和可维护性 (2)导出软件的逻辑模型(3)编写文档

数据流图:(1)数据流(2)加工(3)数据存储(4)数据原点和终点

数据字典:(1)数据流条目(2)数据项条目(3)数据存储条目(4) 加工条目

数据字典就是用来定义数据流图中的各个成风的具体含义的,他和数据流图共同构成了系统的逻辑模型,是需求说明书的主要组成部分。

进行需求分析可使用多种工具,但PAD图是不合适的。

在数据流图中,有名字及方向的成分是数据流。

在结构化分析方法中,用以表达系统内部数据的运行情况的工具有:数据流图

软件体系结构包含了两个重要特性:(1)过程构件(模块)的层次结构(2)数据结构

深度表示控制的层数,宽度表示同一层次上面控制的最大数,扇出是对一个模块直接控制其他模块树木的度量,扇入则是对一个给定模块被多少个模块直接控制的度量。

耦合:非直接耦合度,数据耦合,标记耦合,外部耦合,控制耦合公共环境耦合,内容耦合

内聚:功能内聚,信息内聚,通信内聚,过程内聚,逻辑内聚,时间内聚,偶然内聚。

模块化是指解决一个复杂问题是自顶向下逐层把2软件系统划分成若干模块的过程,每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

软件结构的设计是以模块为基础的,以需求分析的结果为依据,从实现的脚步进一步划分为模块,并组成模块的层次的结构。

软件设计是一个把软件需求转换为软件表示的过程,包括总体设计和详细设计。

变换型DFD是有输入,变换和输出三部分组成。

软件设计一般分为总体设计和详细设计,他们之间的关系是:全局和局部

将几个逻辑上相似的成分放在一个模块中,该模块的内聚杜维逻辑性的。

在对数据结构的分析中,主要是找到变换中心,这是从数据流图到处结构图的关键。

过程设计语言的重复结构有for结构,while结构,until结构。

结构化程序设计方法的基本要点是也就是细节:(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,(3)主程序组的组织形式。

程序流程图又称为程序框图,应有三种基本控制结构顺序组合和完成嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。

一个程序如果把它作为一个整体,他也是只有一个入口,一个出口的单个顺序结构,这是组合的过程。

程序控制的三种基本结构中,循环结构可提供程序重复控制。

测试方法:静态测试方法 人工测试,计算机辅助静态分析  动态测试方法  黑盒测试, 白盒测试

黑盒测试:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,志在软件的界面上面进行测试,用来证实软件功能的可操作性,检查程序是否满足功功能需求,是否能很好的接收数据,并产生正确的输出。

单元测试:(1)测试的内容 模块接口,局部数据结构,重要的执行数据,错误处理,边界条件

测试的方法:由于被测试的模块处于整个软件结构的某一层位置上面,一般是被其他模块调用其他模块,其本身不能进行单独运行,因此在单元测试时,需要为被测模块设计驱动模块和状模块。

集成测试的方法:自底向上测试,  自顶向下测试。

Github知识小结的更多相关文章

  1. HTTPS知识小结

    HTTPS知识小结 背景1:TCP握手 internet上的两台机器A,B要建立起HTTP连接了,在这之前要先建立TCP连接,情景大概是这样子的: A:你好,我跟你建立一个TCP好吗? B:好啊. A ...

  2. 180531-Spring中JavaConfig知识小结

    原文链接:Spring中JavaConfig知识小结/ Sring中JavaConfig使用姿势 去掉xml的配置方式,改成用Java来配置,最常见的就是将xml中的 bean定义, scanner包 ...

  3. Android app开发知识小结

    Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,d ...

  4. C/C++ 位域知识小结

    C/C++ 位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存 ...

  5. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  6. html5-基本知识小结及补充

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. shell 环境变量的知识小结

    环境变量的知识小结:·变量名通常要大写.·变量可以在自身的Shell及子Shell中使用.·常用export来定义环境变量.·执行env默认可以显示所有的环境变量名称及对应的值.·输出时用“$变量名” ...

  8. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  9. PS修图知识小结

    PS修图知识小结   [1]人去除红眼. 1.用红眼工具,框选红眼不分. 2.用椭圆选区工具,选择红眼部分 3..创建调整图层,亮度.对比度.加大对比度. 4.选择红眼部分.创建调整图层,可选颜色,减 ...

随机推荐

  1. zk理解(转载自邬兴亮---www.cnblogs.com/wuxl360/p/5817471.html)

    一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的 ...

  2. 初识Python - Python的历史(转)

    声明: 本文转自维基百科 如有意见请联系删除 综述 该编程语言 的Python是在20世纪80年代末的设想,和实施是在1989年12月开始由吉多·范罗苏姆在CWI在荷兰的继任者农行能够异常处理,并与接 ...

  3. jQuery-jqprint.js打印插件使用高版本jQuery时问题

    使用jqprint打印插件的网页demo代码: <!doctype html> <html> <head> <meta charset="utf-8 ...

  4. 月球美容计划之最小生成树(MST)

    寒假学的两个算法,普里姆,克鲁斯卡尔最终弄明确了.能够发总结了 先说说普里姆,它的本质就是贪心.先从随意一个点開始,找到最短边,然后不断更新更新len数组,然后再选取最短边并标记经过的点,直到全部的点 ...

  5. 转://三分钟读懂Oracle数据库容灾架之DataGuard

    目前市场上针对Oracle数据库常见的容灾产品大致可以分为两大类. Oracle 公司自己的容灾产品 非Oracle公司的容灾产品 Oracle公司目前的容灾产品有我们常见的DataGuard和属于中 ...

  6. 最长公共子序列(模板 LCSL)

    博客: https://www.cnblogs.com/sasuke-/p/5396843.html 模板 #include<iostream>#include<cstdio> ...

  7. iframe获取父、子窗口的元素和方法

    原文地址:https://www.cnblogs.com/BlingSun/p/7484237.html jQuery.js调用iframe父窗口与子窗口元素的方法(亲测有效) 子页面获取父页面的id ...

  8. Random.nextInt()替换Math.random()

    在项目中使用哪个随机数 文章参考 http://liukai.iteye.com/blog/433718 今天用了find bugs后查出来了个问题 Google了下 发现 Random.nextin ...

  9. Mysql数据库的加密与解密

    数据加密.解密在安全领域非常重要.对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大. 有多种前端加密算法可用于数据加密.解密,下面我向您推荐一种简单的数据库级别的数据加密.解 ...

  10. [转]QT子线程与主线程的信号槽通信-亲测可用!

    近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI.所以,网络通信端采用新开线程的方式.在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦.网上提供了很多同一线程不同类间采用信号槽 ...