Github知识小结
软件:计算机运行所需要的各种程序和数据的总成,包括操作系统,汇编语言,编译,程序,数据库,文字编辑和维护使用手册等。
软件的特性:(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知识小结的更多相关文章
- HTTPS知识小结
HTTPS知识小结 背景1:TCP握手 internet上的两台机器A,B要建立起HTTP连接了,在这之前要先建立TCP连接,情景大概是这样子的: A:你好,我跟你建立一个TCP好吗? B:好啊. A ...
- 180531-Spring中JavaConfig知识小结
原文链接:Spring中JavaConfig知识小结/ Sring中JavaConfig使用姿势 去掉xml的配置方式,改成用Java来配置,最常见的就是将xml中的 bean定义, scanner包 ...
- Android app开发知识小结
Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,d ...
- C/C++ 位域知识小结
C/C++ 位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存 ...
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
- html5-基本知识小结及补充
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- shell 环境变量的知识小结
环境变量的知识小结:·变量名通常要大写.·变量可以在自身的Shell及子Shell中使用.·常用export来定义环境变量.·执行env默认可以显示所有的环境变量名称及对应的值.·输出时用“$变量名” ...
- javascript之正则表达式基础知识小结
javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...
- PS修图知识小结
PS修图知识小结 [1]人去除红眼. 1.用红眼工具,框选红眼不分. 2.用椭圆选区工具,选择红眼部分 3..创建调整图层,亮度.对比度.加大对比度. 4.选择红眼部分.创建调整图层,可选颜色,减 ...
随机推荐
- Dubbo+zookeeper+SpringMVC搭建最简单的分布式项目
Dubbo 是什么 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 Dubbo 架构流程图 Provider:服务提供方 Consumer:服务消费者 Registry ...
- 小程序布局中class='container'的bug
display:flex失效,并增加其他额外属性,暂时记录,还未查询是何原因导致,更改calss则无此问题.
- 【C++学习笔记】变量初始化规则
全局变量和静态变量会自动初始化为0,堆和栈中的局部变量不会初始化而拥有不可预测的值. C++保证了所有对象与对象成员都会初始化,但其中基本数据类型的初始化还得依赖于构造函数(或初始化列表). 成员变量 ...
- C#深度学习の----深拷贝与浅拷贝
本人在进行编程的时候遇到一个问题,要对一个绑定的依赖属性进行赋值,改变属性中的某一部分,绑定的目标上的所有值都发生了变化,着并不是我想要的,由此引出深浅拷贝的问题.(请加群交流:435226676) ...
- Iris框架源码阅读和分析
iris包结构简介 iris包含了很多包,下面这些是分析过程中接触到的东西. 能力有限,多多包涵,欢迎联系QQ:2922530320 一起交流 context包包含: Context (接口) con ...
- [luogu 5300][bzoj 5502] [GXOI/GZOI2019] 与或和
题面 思路还是挺容易想的, 只是由于我还是太\(naive\)了一点不会做只会打暴力吧...... 题目要我们求所有子矩阵的\(and\)值之和与\(or\)值之和, 一看之下似乎不好入手, 我们慢慢 ...
- 拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了
作者:周平章链接:https://www.zhihu.com/question/52008623/answer/187927508来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 深入浅出的webpack构建工具---PostCss(五)
一:PostCss是什么? PostCss是一个样式处理工具,它通过自定义的插件和工具生态体系来重新定义css.它鼓励开发者使用规范的css原生语法编写代码,然后配置编译器转换需要兼容的浏览器版本, ...
- 理解HTML5中Range对象
1.理解Range对象 重新来学习下HTML5中的Range对象和Selection对象,最近在维护富文本编辑器,感觉这方面的知识点很有用,所以趁着周末多学习下~ 什么是Range对象? 在H ...
- SkylineGlobe 6.6 版本API更新
TEPro6.6API更新 概述 API6.6 较6.5只做了微小的更新,您可以很容易的将6.5的应用程序移植为6.6版本的应用程序. C#环境中,修改步骤如下: 创建SGWorld66实例代替SGW ...