software engineering
沐雨金鳞
大行不顾细谨
展开
-
面向对象设计 - 抽象
最近在修改毕业论文,老师提了意见,说:p.89“本文设计的采集系统结合了面向对象的设计思想,每种采集方式都以实例的形式抽象了出来,系统能够通过对实例的管理实现对整体采集流程的管理。”这段话如何讲,没看到你的设计是如何抽象的?!在平时的软件开发过程中,将抽象的思想融入系统设计已经成为了习惯,因此,当老师提出这个问题的时候,我困惑了,就像你每天都会看到太阳从东边升起,但是有人问你为什么太阳从东边升起,你却无法回应他…因此,为了使论文的质量进一步提高,便对抽象的概念进行了深入学习。创造性:1、知识原创 2022-05-17 11:52:10 · 401 阅读 · 0 评论 -
构件组装模型(Component Assembly Model)构件库构件的组装
构件组装模型利用模块化思想将整个系统模块化并在一定构件模型的支持下复用构件库中的一个或多个软件构件,通过组装高效率、高质量地构造软件系统。构件组装模型本质上是演化的,开发过程是迭代的。构件组装模型的开发过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。 优点:充分利用软件复用,提高了软件开发的效率。 允许多个项目同时开发,降低了费用,提高了可维护性,可...原创 2019-01-21 22:30:35 · 3432 阅读 · 0 评论 -
快速应用开发模型(Rapid Application Development,RAD) 构件+快速
快速应用开发是一个增量型的软件开发过程模型,强调极短的开发周期 缺点:并非所有应用都适合采用RAD,如果一个应用不能被模块化,那么构造应用的构件就无法快速获取 由于时间约束,开发人员和客户必须在较短的时间内完成一系列的需求分析,沟通配合不当都会导致应用RAD模型的失败 RAD适合于管理信息系统的开发,对于其他类型的应用系统,如技术风险较高、与外围系统的互操作性较高等,不太合适...原创 2019-01-22 08:17:22 · 5539 阅读 · 0 评论 -
新型软件生命周期模型-RUP统一过程模型 迭代增量
由来:RUP(Rational Unified Process)统一过程模型是由Rational公司(现被IBM公司收购)开发的一种软件工程过程框架是一个面向对象的基于web的程序开发方法论 特点:RUP既是一种软件生命周期模型又是一种支持面向对象软件开发的工具它将软件开发过程要素和软件工件要素整合在统一的框架中RUP中的软件生命周期在时间上被分解为四个顺序的阶段:...原创 2019-01-22 08:17:02 · 6889 阅读 · 0 评论 -
新型软件生命周期模型-敏捷模型AM 态度方法论-指导性
由来:敏捷建模(Agile Modeling,AM)是由Scott W. Ambler从许多的软件开发过程实践中归纳总结出来的一些敏捷建模价值观、原则和实践等组成的它只是一种态度,不是一个说明性过程AM是对已有生命周期模型的补充,它本身不是一个完整的方法论在应用传统的生命周期模型时可以借鉴AM的过程指导思想敏捷建模的价值观:个人和交互胜过过程和工具;实用的软件胜过面面俱到...原创 2019-01-22 08:21:26 · 712 阅读 · 0 评论 -
极限编程(Extreme programming) 敏捷模型的一种实现
由来:极限编程(eXtreme Programming,XP)是敏捷模型的一种实现过程,由Kent Beck在1996年提出极限编程的12个实践 :小版本:(顶层设计与摸着石头过河)为了高度迭代,与客户展现开发的进展,小版本发布是一个可交流的好办法,客户可以针对性提出反馈。但小版本把模块缩得很小,会影响软件的整体思路连贯,所以小版本也需要总体合理的规划。规划游戏:(客户以客户...原创 2019-01-22 08:32:48 · 2418 阅读 · 0 评论 -
1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)
问题一:如何理解计算机系统?元素的集合或排列(软件+硬件+人员+文档+数据库+过程)这些元素被组织在一起,以便通过处理(输入)外部信息完成某些预定的目标(输出)元素如下:软件:指程序、数据结构和相关文档。硬件:指提供计算能力的电子设备和提供外部功能的机电设备(传感器、马达等)。人员:指使用硬件和软件的用户和其他人员。文档:指手册、表格和其他表示系统使用和操作的描述性信息。数据...原创 2019-01-22 09:49:00 · 43158 阅读 · 0 评论 -
Batch Normalization(BN详解)
本文总结自:深度学习(二十九)Batch Normalization 学习笔记,强烈推荐1、为什么会有BN算法的出现?网络训练会导致分布改变,从而导致泛化能力降低,训练时间过长等。BN算法就是解决分布改变问题。2、BN算法采用变换重构解决归一化过程导致网络学习的特征弱化或缺失的问题。3、BN算法在CNN中将每个特征图当作一个神经元进行归一化。...原创 2019-09-24 16:07:29 · 579 阅读 · 0 评论 -
喷泉模型(fountain model) 并行开发+重叠反复
喷泉模型也称迭代模型认为软件开发过程的各个阶段是相互重叠和多次反复的就象喷泉一样,水喷上去又可以落下来,既可以落在中间,又可以落到底部特点:各个开发阶段没有特定的次序要求,完全可以并行进行;可以在某个开发阶段中随时补充其他任何开发阶段中遗漏的需求。优点:提高开发效率缩短开发周期缺点:难于管理 ...原创 2019-01-21 22:23:04 · 2253 阅读 · 0 评论 -
螺旋模型(Spiral model) 大项目+需求不明确+明确的风险管理
由来:Boehm于1988年提出,主要针对大型软件项目的开发。大型软件项目的特点:需求功能复杂,无法一开始就明确开发周期长,中途需求经常变化往往存在诸多风险因素,在不同程度上损害软件开发过程和软件产品的质量必须对风险进行管理螺旋模型最大特点就是引入了明确的风险管理过程:制定计划 风险分析实施工程客户评价制定计划:确定软件项目目标;明确对软件开发过程和软件...原创 2019-01-21 22:19:04 · 3952 阅读 · 0 评论 -
统一建模语言UML 出现+概述+扩展机制
UML的出现和发展 UML概述 UML中的扩展机制 UML中的图 基于UML的面向对象软件开发过程UML的出现和发展统一建模语言UML(Unified Modeling Language)是由Grady Booch、Ivar Jacobson和James Rumbaugh发起,在Booch方法、OOSE方法和OMT方法基础上,广泛征求意见,集众家之长,几经修改而成的一个面向...原创 2019-01-25 11:10:59 · 854 阅读 · 0 评论 -
软件生命周期(Life Cycle)
软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生命周期(Life Cycle)。 软件生命周期的六个基本步骤 制定计划 需求分析设计 程序编码 测试运行维护 1、制定计划确定要开发软件系统的总目标;给出功能、性能、可靠性以及接口等方面的要求;完成该软件任务的可行性研究;估计可利用的资源 (硬件,软件,人力等)、成本...原创 2019-01-21 21:09:09 · 3996 阅读 · 0 评论 -
软件过程模型(software process model)传统软件生命周期模型
软件过程模型也称做软件生命周期模型从一个特定角度提出的对软件过程的简化描述(模型不代表具体实现,对过程的简化描述)对软件开发实际过程的抽象(模型即抽象)它包括构成软件过程的各种活动、软件工件(artifact)以及参与角色等。(模型还是很具体的)软件生命周期模型:描述从软件需求定义直至软件经使用后废弃为止,跨越整个生存期的软件开发、运行和维护所实施的全部过程、活动...原创 2019-01-21 21:18:30 · 2370 阅读 · 0 评论 -
瀑布模型(waterfall model)需求明确+严格顺序执行
由来:Winston Royce在软件生命周期概念的基础上,于1970年提出了著名的“瀑布模型”(waterfall model)。 瀑布模型特征:1、适合于需求明确的项目2、上一阶段活动的输出(文档)作为本阶段活动的输入3、本阶段活动的输出作为下阶段活动的输入4、顺序执行,按本阶段活动规程执行相应任务5、对本阶段活动进行评审瀑布模型的优缺点: ...原创 2019-01-21 21:28:22 · 5407 阅读 · 0 评论 -
V模型和W模型 需求明确+严格顺序执行
由来:1980年代后期Paul Rook提出了V模型Evolutif公司在V模型的基础上提出了W模型V模型: W模型:原创 2019-01-21 21:36:40 · 958 阅读 · 0 评论 -
原型方法(prototyping) 需求不明确+建立原型
由来:瀑布模型、V模型、W模型都将软件生命周期划分成独立串行的几个阶段瀑布模型、V模型、W模型:需求明确 + 严格顺序执行局限性:前一个阶段没有完成便无法开始下一阶段的工作现实情况:然而完整而准确的需求规格说明是很难得到的原因:在开发早期用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求(早期难以准确表达) 随着开发工作的推进,用户可能会产生新的要求(...原创 2019-01-21 22:01:08 · 7618 阅读 · 0 评论 -
演化模型(evolutionary model) 需求不明确+两次开发(实验开发+产品开发)
由来:使用瀑布模型人们认识到,由于需求很难调研充分,所以很难一次性开发成功。演化模型提倡两次开发:第一次是试验开发,得到试验性的原型产品,其目标只是在于探索可行性,弄清软件需求;第二次在此基础上获得较为满意的软件产品。演化模型分类:探索式演化模型抛弃式演化模型演化模型的特点:优点:明确用户需求、提高系统质量、降低开发风险;缺点:难于管理、结构较差、技术不成熟...原创 2019-01-21 22:08:05 · 3948 阅读 · 0 评论 -
增量模型(incremental model) 设计核心功能+逐步累加
由来:Mills等人于1980年提出首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中。再按优先级逐步对后续的需求进行上述工作,逐步建设成一个完整系统的开发方法。 举例:使用增量模型开发字处理软件时,可以按照以下优先级进行增量开发:第一个增量实现基本的文件管理、编辑和文档生成功能;第二个增量实现更加完善的编辑和文档生成功能;第三个增量实现拼写和文...原创 2019-01-21 22:12:29 · 4875 阅读 · 1 评论 -
面向对象基本思想:面向对象=对象+类+继承+通信
早期方法的不足:早期的方法只使用一种系统的视角作为构造块,而没有容纳其他视角。1、结构化分析和设计方法集中于将功能作为系统的构造块。2、在信息建模方法中(实体关系模型)构造块是实体,但在该方法中用来满足系统需求的功能被完全忽略掉了。两种方法都没有处理对动态行为的捕获,声明性语义(规则)以及例外处理机制都被完全忽略了。为了克服传统开发方法的不足,面向对象方法解决问题的思路是从现实世...原创 2019-01-25 11:04:47 · 5345 阅读 · 0 评论