软件工程
斜阳雨陌
你有多努力,就有多特殊!
展开
-
什么是SAR包?
SAR file is created with the .sar extenstion same like how other archive files (JAR, WAR, EAR) created. But the purpose of the SAR file is differenet from the other archive files. It is used for deploying a service component in the application server witho原创 2021-11-18 22:30:31 · 2582 阅读 · 0 评论 -
什么是软件工程
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。原创 2017-03-02 16:09:29 · 334 阅读 · 0 评论 -
软件工程方法学
传统方法学传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。面向对象方法学与传统方法相反,面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。原创 2017-03-02 16:16:06 · 1705 阅读 · 0 评论 -
软件工程方法学三要素
方法 工具 要素原创 2017-03-02 16:45:03 · 5799 阅读 · 0 评论 -
面向对象的四个要点
•把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件•把所有对象都划分成类(class)。•按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。•对象彼此间仅能通过发送消息互相联系。原创 2017-03-02 16:49:36 · 3297 阅读 · 0 评论 -
软件生命周期
软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。原创 2017-03-02 17:18:49 · 176 阅读 · 0 评论 -
软件定义,软件开发,软件维护
原创 2017-03-02 17:29:54 · 904 阅读 · 0 评论 -
软件过程
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程描述为了开发出客户需要的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎样(how)做这些事以实现某一个特定的具体目标。原创 2017-03-02 17:34:52 · 230 阅读 · 0 评论 -
什么是迭代
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。理解如果认为这个解释难以理解,可以这样想:我们开发一个产品,如果不太复杂,会采用瀑布模型,简单的说就是先定义需求,然后构建框架,然后写代码,然后测试,最后发布一个产品。这样,几个月过去了,直原创 2017-03-03 16:05:01 · 1131 阅读 · 0 评论 -
什么是软件生命周期
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导原创 2017-03-03 16:20:35 · 8111 阅读 · 0 评论 -
什么是敏捷开发
什么是敏捷开发?敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发; 为什么说是以人为核心?我们大部分人都学过瀑布开发模型,它是原创 2017-03-03 16:48:22 · 399 阅读 · 0 评论 -
敏捷开发宣言
敏捷开发宣言: 1. 个体和交互胜过过程和工具 2. 可工作的软件胜过面面俱到的文档 3. 客户协作胜过合同谈判 4. 响应变化胜过遵循计划 从上面的宣言可以看出,敏捷开发的核心是人 、协作、时刻可运行的软件、变化。原创 2017-03-03 16:53:22 · 4598 阅读 · 0 评论 -
什么是可行性研究
1.并非任何问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间期限之内解决。2.如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。3.可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。原创 2017-03-03 16:55:01 · 920 阅读 · 0 评论 -
什么是系统流程图
系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子的形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。系统流程图的习惯画法是使信息在图中从顶向下或从左向右流动。原创 2017-03-03 17:31:47 · 4990 阅读 · 0 评论 -
数据流图的画法
数据流图(DFD- Data Flow Diagram)让系统分析者弄清楚“做什么”的问题,其重要性就不言而喻了。那么我们怎么画数据流图呢?数据流图与系统流程图又有什么区别呢?步骤1数据流图里包含的内容 数据流图描述的是系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术转载 2017-03-04 15:34:40 · 22894 阅读 · 0 评论 -
数据流图 系统流程图 程序流程图 系统结构图联系与区别
1.数据流图(Data Flow Diagram),简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。 其主要元素有:→:数据流 □:数据源(终点) ○:对数据的加工(处理) 〓:数据存储例图:转载 2017-03-04 15:51:36 · 19065 阅读 · 1 评论 -
什么是数据字典
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据字典最重要的作用是作为分析阶段的工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组原创 2017-03-04 16:25:20 · 6752 阅读 · 0 评论 -
需求分遵循的准则
•必须理解并描述问题的信息域,根据这条准则应该建立数据模型。•必须定义软件应完成的功能,这条准则要求建立功能模型。•必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型•必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。原创 2017-03-04 16:59:25 · 335 阅读 · 0 评论 -
需求分析阶段各种图的功能
实体联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。数据流图是建立功能模型的基础。状态转换图描绘了系统的各种行为模式和在不同状态间转换的方式。原创 2017-03-04 17:20:00 · 14982 阅读 · 0 评论 -
实体联系图简介
通常,使用实体联系图(entity relationship diagram)来建立数据模型。可以把实体联系图简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。ER图中包含了实体(即数据对象)、关系和属性3种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。ER模型可以作为用户与分原创 2017-03-04 17:28:11 · 2773 阅读 · 0 评论 -
需求分析中对系统的要求
原创 2017-03-04 17:30:21 · 1166 阅读 · 0 评论 -
什么是实体-联系图(ER图)
实体-联系图(ER图)数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。1.数据对象数据对象是对软件必须理解的复合信息的抽象。所谓符合信息是指具有一系列不同性质或属性的事物,仅有单个值得事物(例如,宽度)不是数据对象。数据对象可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件(例如,响警报)、角色(例转载 2017-03-04 17:39:12 · 28919 阅读 · 0 评论 -
什么是状态转换图
通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外状态转换图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此状态转换图提供了行为建模机制。原创 2017-03-04 17:49:51 · 4593 阅读 · 0 评论 -
状态转换图简介
状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。(一)状态状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。原创 2017-03-05 15:24:17 · 66457 阅读 · 9 评论 -
需求分析的图形工具(层次方框 warnier IPO)
1 层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。 例如,描绘一家计算机公司全部产品的数据结构可以用下图层次方框图表示。这家公司的产品由硬件、软件和服务3类产品组成,软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序和软件工具等。2 warnier图和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种原创 2017-03-05 15:42:40 · 20518 阅读 · 0 评论 -
验证软件需求正确性的四个角度
原创 2017-03-05 15:48:23 · 7497 阅读 · 0 评论 -
软件工程形式化技术简介
形式化技术在软件工程中有效的提高了开发的效率、改进了软件开发的质量、减少了开发费用。形式化的技术容易在软件的规约上取得一致性,它属于一种非常有效的交流方式。(一)非形式化的缺点用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。矛盾是指一组相互冲突的陈述。1二义性是指读者可以用不同方式理解的陈述。2含糊性3不完整性4抽象层次混原创 2017-03-05 16:47:47 · 1511 阅读 · 0 评论 -
什么是有穷状态机
有穷状态机的作用是描述对象在它的生命周期内所经历状态序列,以及如何响应来自外界的事件。有穷状态机首先包含一个有限状态的集合,还包含了从一个状态到另外一个状态的转换。有穷自动机看上去就像是一个有向图,其中状态是图的节点,而状态转换则是图的边。此外这些状态中还必须有一个初始状态和至少一个接受状态。例如,每个菜单驱动的用户界面都是一个有穷状态机的实现。一个菜单的显示和一个状态相对应,键盘输入或用原创 2017-03-05 17:17:03 · 9589 阅读 · 0 评论 -
Petri网
并发系统中遇到的一个主要问题是定时问题。这个问题可以表现为多种形式,如同步问题、竞争条件以及死锁问题。用于确定系统中隐含的定时问题的一种有效技术是Petri网,这种技术的一个很大的优点是它也可以用于设计中。Petri网是由CarlAdam Petri发明的。在性能评价、操作系统和软件工程等领域,Petri网应用得都比较广泛。特别是已经证明,用Petri网可以有效地描述并发活动。Petri网适合原创 2017-03-05 17:52:58 · 3394 阅读 · 0 评论 -
什么是Z语言
Z语言是一种用“数学文字”或“数学符号”来描述计算机系统的规范化语言,它不但能应用于计算机硬件系统,而且也特别适用于计算机软件系统,Z语言描述“做什么”而不涉及“怎么做”,只对目标软件系统进行功能描述。实际上,Z语言仅仅是一套规定的数学符号,使用Z语言所写的“程序”是对计算机软件或硬件系统的一种抽象化设计。所以,利用Z语言写出来的内容不是计算机程序,更不是可以编译而生成能够在计算机上运行的代码。利原创 2017-03-05 19:26:04 · 7616 阅读 · 0 评论 -
边界测试
边界条件边界测试是单元测试中最后的也可能是最重要的任务。软件常常在它的边界上失效,例如,处理n元数组的第n个元素时,或做到i次循环中的第i次重复时,往往会发生错误。使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。原创 2017-03-09 15:34:09 · 526 阅读 · 0 评论 -
软件测试中的存根程序
存根程序用来代替被测试的模块所调用的模块,因此存根程序也称为“虚拟子程序”,它利用被它代替的模块的接口,只做尽可能少的数据操作。原创 2017-03-09 16:12:45 · 3976 阅读 · 0 评论 -
自顶向下和自底向上测试的优缺点
自顶向下测试方法的主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。自顶向下测试方法的主要缺点是需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。自底向上测试方法的优缺点与上述自顶向下测试方法的优缺点刚好相反原创 2017-03-09 16:21:06 · 17001 阅读 · 0 评论 -
回归测试
在集成测试过程中,每当一个新模块结合进来时,程序就发生了变化:建立了新的数据流路径,可能出现了新的I/O操作,激活了新的控制逻辑。在集成测试的范畴中,回归测试是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预期的副作用。回归测试就是用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。回归测试可以通过人工地进行,也可以使用自动化的捕获回放工具原创 2017-03-09 16:26:58 · 2501 阅读 · 0 评论 -
什么是确认测试
确认测试也称为验收测试,它的目标是验证软件的有效性。通常,验证指的是保证软件正确地实现了某个特定要求的一系列活动;确认指的是为了保证软件确实满足了用户需求而进行的一系列活动。软件有效性的一个简单定义是:如果软件的功能和性能如同用户所合理期待的那样,软件就是有效的。需求分析阶段产生的软件需求规格说明书,准确地描述了用户对软件的合理期望,因此是软件有效性的标准,也是进行确认测试的基础。原创 2017-03-09 16:34:16 · 9679 阅读 · 3 评论 -
alpha测试和betal测试
如果一个软件是为许多客户开发的(例如,向大众公开出售的盒装软件产品),那么绝大多数软件开发商都使用被称为Alpha测试和Beta测试的过程,来发现那些看起来只有最终用户才能发现的错误。Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现的错误和使用中遇到的问题。Alpha测试是在受控的环境中进行的。Beta测试由软件的最终用户们在一个或多个原创 2017-03-09 16:39:30 · 709 阅读 · 0 评论 -
白盒测试详解
通常把测试数据和预期的输出结果称为测试用例。(一)逻辑覆盖是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。1.语句覆盖语句覆盖的含义是,选择足够多的测试数据,使被测程序中每个语句至少执行一次。语句覆盖是很弱的逻辑覆盖标准2.判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的原创 2017-03-09 17:12:26 · 1301 阅读 · 0 评论 -
黑盒测试详解
黑盒测试着重测试软件功能。黑盒测试并不能取代白盒测试,它是与白盒测试互补的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。黑盒测试力图发现下述类型的错误: (1) 功能不正确或遗漏了功能;(2) 界面错误;(3) 数据结构错误或外部数据库访问错误;(4) 性能错误;(5) 初始化和终止错误。原创 2017-03-09 17:27:07 · 1599 阅读 · 0 评论 -
调试
调试(也称为纠错)作为成功测试的后果出现,即调试是在测试发现错误之后排除错误的过程。软件错误的外部表现和它的内在原因之间可能并没有明显的联系。调试就是把症状和原因联系起来的尚未被人深入认识的智力过程。(一)调试过程调试不是测试调试过程从执行一个测试用例开始,评估测试结果,如果发现实际结果与预期结果不一致,则这种不一致就是一个症状,它表明在软件中存在着隐藏的问题。调试过程试图原创 2017-03-09 17:40:17 · 1261 阅读 · 0 评论 -
软件可靠性
软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。软件可靠性随着给定的时间间隔的加大而减少。一般说来,对于任何其故障是可以修复的系统,都应该同时使用可靠性和可用性衡量它的优劣程度。软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。可靠性和可用性之间的主要差别是,可靠性意味着在0到t这段时间间隔内系统没有失效,而可用性只意味着在时刻t,系统是原创 2017-03-09 17:47:30 · 2266 阅读 · 0 评论