软件工程
等万物
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详细设计主要使用哪些描述工具?各有什么特点?
描述工具主要是图形工具, 过程设计语言和表格.⑴图形工具包括程序流程图和 PAD 图等. 程序流程图的优点是直观清晰, 易于使用, 是开发者普遍采用的工具. PAD 图是一种由左向右展开的二维树型结构, 控制流程为自上而下, 从左到右地执行.⑵过程设计语言是一种用于描述模块算法设计和处理细节的语言, 一般分为内外 2 层, 外层语法应符合一般程序设计语言常用的方法规则, 而内层语法则用一些简单的句子, 短语和通用的数学符号, 来描述程序应执行的功能.⑶表格工具如判定表可作为详细设计中描述逻辑条原创 2021-06-07 22:14:59 · 10018 阅读 · 0 评论 -
什么是软件?软件的特点是什么?
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。软件的特点:(1)软件是一种逻辑实体,具有抽象性而不具有物理性(2)软件的生产和硬件不同(3)软件产品不会磨损(4)开发和运行受计算机系统的限制(5)未完全摆脱手工艺的生产方式,计算机辅助开发工具帮助有限(6)软件本身的复杂性(7)软件成本相当昂贵,主要是脑力劳动成本(8)相当多的软件工作涉及到社会因素,比如体制、管理、法律等...原创 2021-05-29 23:22:32 · 15823 阅读 · 0 评论 -
软件质量的定义以及相关理论
(1)软件质量的定义:所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。具体含义如下:●与确定的功能和性能需求的一致性;●与所成文的开发标准的一致性;●与所有专业开发的软件所期望的隐含特性的一致性。(2)相关理论●质量度量模型(McCall质量度量模型和ISO软件质量评价模型):●质量管理与控制的三个层次事先的预防措施:制订软件过程开发规范和软件产品质量标准,对软件开发和管理人员进行这方面知识和技能的定向培训;(规范是对行为的约束、标准是对产品的约束、规程是对操作的约束原创 2021-05-29 23:20:26 · 562 阅读 · 0 评论 -
什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大 要素
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分原创 2021-05-17 22:55:16 · 1455 阅读 · 0 评论 -
软件测试活动的总体方法
①单元测试:纯代码的测试(白盒测试)。主要测试代码语句的正确性,如所有的代码是否都可以跑到,是否有冗余的代码等等。②集成测试:接口测试(灰盒测试,结合白盒和黑盒测试)。主要测试代码块之间的接口。看看数据的传输是否有问题。③系统测试:黑盒测试,不接触代码,只对整个系统做功能的测试和性能的测试。...原创 2021-05-17 22:23:17 · 144 阅读 · 0 评论 -
软件项目管理
软件项目特点:软件产品与其他任何产品不同,它是无形的,完全没有物理属性。其特点表现为:①智力密集,可见性差;②单件生产:在特定机型上,利用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的开发环境;③劳动密集,自动化程度低:④使用方法繁琐,维护困难;⑤软件工作渗透了人的因素。软件管理的功能:软件工程管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。软件管理的主要功能包括:①制定计划:规定待完成的任务、要求、资源、人力和进度等;②建立组织项目:为实施计划,保证任务的原创 2021-05-16 22:29:46 · 131 阅读 · 0 评论 -
软件质量的定义以及相关理论
(1)软件质量的定义:所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。具体含义如下:●与确定的功能和性能需求的一致性;●与所成文的开发标准的一致性;●与所有专业开发的软件所期望的隐含特性的一致性。(2)相关理论●质量度量模型(McCall质量度量模型ISO软件质量评价模型):●质量管理与控制的三个层次事先的预防措施:制订软件过程开发规范和软件产品质量标准,对软件开发和管理人员进行这方面知识和技能的定向培训;(规范是对行为的约束、标准是对产品的约束、规程是对操作的约原创 2021-05-16 19:50:33 · 3670 阅读 · 0 评论 -
面向对象的基本特征,并能用实际的例子说明这些特征?
面向对象的基本概念: 面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。而面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。面向对象方法的基本思想是,从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。面向对象核心概念: (1)对象 (2)类 (3)继承 (4)聚集 (5)消息。面向对象 =原创 2021-05-15 22:15:52 · 621 阅读 · 0 评论 -
瀑布模型、原型模型、增量模型的特点
瀑布模型:(1)定义:是将软件生命周期各活动规定为依线性顺序联接的若干阶段的模型,是一种整体开发模型。里程碑或基线驱动或者说文档驱动。过程逆转性很差,或者说不可逆转。(2)优点:严格按照生命周期的各个阶段来进行开发,强调了每一阶段的严格性。这样就能解决在开发阶段后期修正不完善的需求说明将花费巨大的费用的问题。在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大作用。(3)缺点:它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。故适用于功能明确、完整、原创 2021-05-14 21:46:17 · 7422 阅读 · 0 评论 -
软件危机定义、发生原因、常见表现,如何避免软件危机?
软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。表现在:(1)对于软件开发的成本和进度的估计很不准确。(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。(3)开发的软件可靠性差。(4)软件通常没有适当的文档。(5)软件的可维护性差。(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。原因:(1)软件的规模愈发庞大;(2)软件开发的管理困难。(3)成功的软件开发经验没被很好地应用。(4)软件开发和维护中千金错原创 2021-05-10 22:57:26 · 12616 阅读 · 0 评论 -
软件生命周期模型的组成
一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护。...原创 2021-05-06 21:26:52 · 153 阅读 · 0 评论 -
软件开发有哪些步骤
需求分析阶段:明确问题、资料收集整理概要设计阶段:宏观设计,将整个软件开发的过程细分为几个主要部分,系统的整体结构、模块划分、功能分配、数据结构设计,甚至是出错预案。详细设计阶段:由被划分的模块内部,再进行具体实现的分配,作出详细可行的安排。编码:根据之前的种种安排,进行编码,并且及时和开发过程中所有参与的同事积极交流测试阶段:内部测试、外部测试、模块测试、整体测试。直到软件满足最初的问题需求交付、验收、维护...原创 2021-05-05 21:49:29 · 258 阅读 · 0 评论 -
什么是UML
Unified Modeling Language 统一建模语言是用来对软件系统进行可视化建模的一种语言目标是以面向对象图的方式来描述系统的工作流程,或者是系统内各对象之间的关系以及系统本身的功能常见的UML图有用例图、类图、活动图等...原创 2021-05-04 18:06:44 · 127 阅读 · 0 评论 -
什么是算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于原创 2021-04-29 22:42:21 · 230 阅读 · 0 评论 -
什么是数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构在计算机科学界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法: Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例合组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data obj原创 2021-04-29 21:18:18 · 335 阅读 · 0 评论 -
字节流与字符流的区别
一、两者的组成不同:1、字节流的组成:字节流是由字节组成的。2、字符流的组成:字符流是由字符组成的。二、两者的处理不同:1、字节流的处理:主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本。2、字符流的处理:按虚拟机的encode来处理,也就是要进行字符集的转化。字节流是由字节组成的;字符流是由字符组成的Java里字符由两个字节组成. 1字符=2字节JAVA中的字节流是采用ASCII编码的,字符流是采用好似UTF编码,支持中文的字节流与字符流主要的区别是他们的的处理方式原创 2021-04-28 22:56:41 · 27804 阅读 · 1 评论 -
什么是数据结构
定义数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计原创 2021-04-26 22:16:13 · 253 阅读 · 0 评论 -
决策树
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。决策树是一种树形结构,其中每个内部节点表示一个属性上原创 2021-04-25 09:27:07 · 214 阅读 · 0 评论 -
软件测试中的v模型,w模型,h模型
1、V模型V模型.jpg反应测试活动与设计的关系把测试放在编码之后,需求分析。概要分析、详细设计等错误,直到最后才能被发现##2.W模型W模型.jpg增加了很多同步测试,测试与开发同步进行测试放到测试之后,不能支持迭代###3.H模型H模型.jpg测试活动独立存在,贯穿整个产品周期来源:https://www.jianshu.com/p/1f2afcc5bdaa...原创 2021-04-21 16:04:49 · 153 阅读 · 0 评论 -
什么是形式化方法
形式化方法的本质是基于数学的方法来描述目标软件系统属性的一种技术,形式化方法可以被分为两类,一种是面向模型的形式化方法。面向模型的方法通过构造一个数学模型来说明系统的行为。另外一种是面向属性的形式化方法。面向属性的方法通过描述目标软件系统的各种属性来间接定义系统行为。根据表达能力,又可以分为五种,基于模型的方法,基于逻辑的方法,代数方法,进程代数方法,和基于网络的方法。...原创 2021-04-11 18:42:48 · 364 阅读 · 0 评论 -
什么是形式化方法
在计算机科学和软件工程领域,形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证。将形式化方法用于软件和硬件设计,是期望能够像其它工程学科一样,使用适当的数学分析以提高设计的可靠性和鲁棒性。但是,由于采用形式化方法的成本高意味着它们通常只用于开发注重安全性的高度整合的系统。形式化方法在古代就运用了,而在现代逻辑中又有了进一步的发展和完善。这种方法特别在数学、计算机科学、人工智能等领域得到广泛运用。它能精确地揭示各种逻辑规律,制定相应的逻辑规则,使各种理论体系更加严密。同时也能正确地训练思原创 2021-04-04 21:31:48 · 514 阅读 · 0 评论 -
什么是分而治之?
我的理解是对于软件开发来讲,分而治之的意思就是把一个整体的问题分割成每一个单独的小问题,对每一个小问题找出解决的方法,最后再把所有的解整合在一起,就完成了最开始那个问题的解。...原创 2021-03-30 13:50:13 · 113 阅读 · 0 评论 -
为什么软件开发周期总是预估的2~3倍
,,原创 2021-03-28 20:02:42 · 102 阅读 · 0 评论 -
习题
4.目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏.体温血压心电图等)定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围试向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。...原创 2021-03-21 12:52:38 · 185 阅读 · 0 评论 -
软件工程方法论对我们开发有多大用处的看法
软件工程方法论对我们开发提供了一个大致的方向,能系统性的指导开发过程,但开发过程不是一成不变的,我们不能照搬软件工程开发的方法,而是需要接受其指导的大致方向,根据具体的要求,切合实际,联系其开发过程的各种要求来进行开发,所以说,对我而言,软件开发方法论对我们开发起到了一个开头作用,引导我们一个阶段一个阶段的去完成开发过程,但我们得有自己对开发的认识,必须在开发过程中做出必要的修改,才是一个真正的开发过程。...原创 2021-03-21 09:37:53 · 82 阅读 · 0 评论 -
关于软件工程是不是教会不怎么会写程序的人开发软件的看法
个人觉得对于那些不怎么会写程序的人有一点帮助,但是我认为软件工程更注重的是工程,而不是软件,应该是更注重于教会人如何工程化的学习软件并运用。原创 2021-03-15 11:37:23 · 94 阅读 · 0 评论 -
噩梦的开始
学软件本来不是我之前的想法,我来自四川,高考考得不算好,不上不下的最是难受,尤其是在19年的四川,不过这些都不值一提,毕竟是自己菜,所以在四川选不了什么学校,于是只能选外地的学校,当时对于选专业也是一窍不通,并不知道机械是个大坑,只是听着机械制造及其自动化感觉很牛逼就选了,没想到掉进了一个大坑,后来好好度过了大一,成功转专业到软件,只是没想到又进了另外一个坑,现在想来,没什么专业不是坑的。既然来了,只能硬着头皮上了,希望自己能在软件工程这门课上学到真正有用的知识,对自己要求越来越高,不仅仅是满足学业要求。原创 2021-03-15 11:29:13 · 117 阅读 · 0 评论
分享