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)测试的内容 模块接口,局部数据结构,重要的执行数据,错误处理,边界条件

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

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

时间: 2024-10-27 06:28:57

Github知识小结的相关文章

180531-Spring中JavaConfig知识小结

原文链接:Spring中JavaConfig知识小结/ Sring中JavaConfig使用姿势 去掉xml的配置方式,改成用Java来配置,最常见的就是将xml中的 bean定义, scanner包扫描,属性文件的配置信息读取等 I. 几个基本注解 1. Configuration注解 在javaConfig中注解@Configuration用来代替一个xml文件,可以简单的理解他们的作用是相等的,一般bean的定义也都是放在被这个注解修饰的类中 如一个基本的配置文件如下 @Configura

awk基础知识小结(1)

1.使用规则 awk 适合于文本处理和报表生成,它还有许多精心设计的特性,允许进行需要特殊技巧程序设计. awk  的语法较为常见.它借鉴了某些语言的一些精华部分,如C 语言.python 和 bash. 第一个 awk 让我们继续,开始使用 awk,以了解其工作原理.在命令行中输入以下命令: $ awk '{ print }'  /etc/passwd 您将会见到 /etc/passwd 文件的内容出现在眼前.现在,解释 awk 做了些什么.调用 awk 时,我们指定  /etc/passwd

awk基础知识小结(2)

10.循环结构循环结构awk 的 while 循环结构,它等同于相应的 C 语言 while 循环.awk 还有 "do...while" 循环,它在代码块结尾处对条件求值,而不象标准 while 循环那样在开始处求值.它类似于其它语言中的 "repeat...until" 循环.示例:do...while 示例 {     count=1     do {    print "I get printed at least once no matter w

C/C++ 位域知识小结

C/C++ 位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存对齐全攻略–涉及位域的内存对齐原则 本文主要对位域相关知识进行了一下梳理,参考如下: C语言中的位域 史上最全的C位域总结2 C结构体之位域(位段) C/C++中以一定区域内的位(bit)为单位来表示的数据成为位域,位域必须指明具体的数目. 位域的作用主要是节省内存资源,使数据结构更紧凑. 1. 一

suid知识小结

1.1.1 suid知识小结:针对命令和二进制程序 1)用户或属主对应的前三位权限的x位上如果有s就表示suid权限.当x位上没有小写x执行权限的时候,suid的权限显示的就是大S. 2)suid作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等.(注意和su及sudo的区别),suid为某个命令设置特殊权限(使用者为所有人).通过给rm命令设置suid加深学生对suid的理解. 3)问题:希望oldboy

Github使用小结

Github使用小结 git 小结 1.ubuntu下安装git环境 ubuntu 16.04已经自带git ,可以通过下列命令进行安装与检测是否成功安装 sudo apt-get inst all git //安装 //git命令出现代表安装成功(为考证)  [email protected]:/# git  usage: git [--version] [--help] [-C <path>] [-c name=value]  [--exec-path[=<path>]] [-

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

javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移. 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1.直接量 /javascript/ 匹配带有“javascript”的字符串 比如“javascript is an object-oriented scripting language” 2.[

Android app开发知识小结

Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,density是一个抽象的单位,density值表示每英寸有多少个显示点,与分辨率是两个概念QVGA屏density=120         QVGA(240*320)HVGA屏density=160         HVGA(320*480)WVGA屏density=240        WVGA(

关闭selinux知识小结

今天有人问我,哎,福星,关闭selinux这块我还有点蒙,能给我分析分析么? selinux是什么? 1.     我的简单理解:selinux是一套安全的机制,在学习环境下建议关闭,功能方面可以一些机制所替代.比如防火墙等系列安全措施 selinux一定要关闭么? 1.     没有基础又不愿意倘坑的小伙伴可以关闭,工作中环境大都不开启 2.     开启的坏处是使用中需要倘很多的坑,如果有面对困难的勇气,那就别管它 修改selinux运行状态的相关 setenforce  1 | 0