软件开发模型

验证的策略一

怎甘沉沦 提交于 2019-12-16 10:51:04
我们在上一章芯片验证全视中给出过芯片产品开发的流程图,而在描述中我们将开发流程分为了两条主线: 芯片功能的细分 不同人员的任务分配 即是说不同人员需要在硅前的不同阶段实现和测试芯片的模块功能。 如果我们从另外一个角度看,芯片的开发即是将抽象级别逐次降低的过程,从一开始的抽象自然语言描述到硬件的HDL语言描述再到最后的门级网表。而在我们已经介绍过RTL设计和门级网表以后,这里需要引入一个目前更高抽象级的描述 TLM(事务级模型,transaction level models) 。 **TLM一般会在早期用于构建硬件的行为,侧重于它的功能描述,不需要在意时序。同时各个TLM模型也会被集成为一个系统,用来评估系统的整体性能和模块之间的交互。**同时TLM模型在早期的设计和验证中,如果足够准确的话,甚至可以替代验证人员的参考模型,一方面为硬件设计提供了可以参考的设计(来源于系统描述侧),一方面也加速了验证(无需再构建参考模型,而且TLM模型足够准确反映硬件描述)。 TLM模型的需求和ESL开发 早期的芯片开发模式是遵循先从系统结构设计、到芯片设计制造、再到上层软件开发的。但随着产品开发的压力,一方面我们需要让系统人员、硬件人员和软件人员都保持着充沛的工作量,同时对于一个芯片项目而言,我们也希望硬件人员和软件人员可以尽可能的同时进行开发。这听起来怎么可能?毕竟芯片还没有制造出来

史诗级软件开发模式归纳

怎甘沉沦 提交于 2019-12-16 02:51:20
话不多说, 十一种软件开发模式简介 边做边改模式(Build-and-Fix Model) 瀑布模式(Waterfall Model) 迭代模式(stagewise model) 快速原型模式(Rapid Prototype Model) 增量模式(Incremental Model) 螺旋模式(Spiral Model) 敏捷模式 (Agile development) 演化模式(evolutionary model) 喷泉模式(fountain model, (面向对象的生存期模型, 面向对象(Object Oriented,OO)模型)) 智能模式(四代技术(4GL)) 混合模式(hybrid model) 软件开发模式简介 边做边改模式(Build-and-Fix Model) 好吧,其实现在许多产品实际都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。 在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户和测试等等满意为止。 这是一种类似作坊的开发方式,边做边改模型的优点毫无疑问就是前期出成效快。

螺旋模型

喜夏-厌秋 提交于 2019-12-13 13:21:05
螺旋模型的基本思想:使用原型及其他方法来尽量降低风险。 简单理解这种模型: 把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。 螺旋模型的优点: ①对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一重要目标。 ②减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险。 ③在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。 这是它的优势,也可能是它的一个弱点除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。 来源: CSDN 作者: 青梅竹码 链接: https://blog.csdn.net/weixin_43258908/article/details/103524843

DevOps书单:调研了101名专家,推荐这39本必读书籍

余生颓废 提交于 2019-12-10 13:27:21
任何一个领域都遵循从新人到熟手,从熟手到专家的路径。在成长过程中,DevOps人经常会陷入没人带,没人管,找不到职业方向的迷茫。 DevOps是在商业演进与企业协作的进化过程中诞生的一个全新职业,被很多人看成是一个“全栈”岗位,是能开发、会运维的复合型人才,但想要从事DevOps工作要从哪学起?如何入门?又该如何精进? 我们对101名DevOps专家进行调研,问题只有一个:从入门到熟手,再从熟手到专家的成长路径中都看了哪些书?最终选出了39本推荐度最高的书籍,分成基础敏捷实战、敏捷测试、精益系列、技术工程、DevOps、教练、引导、大规模敏捷这8大部分,建议每一个DevOps从业者收藏阅读。 基础敏捷实战 《Scrum要素》 本书以一种轻松易懂、简洁精练的方式,介绍了Scrum 方法的核心要素。Scrum 入门级读物,内容精练,轻松易读,是帮助软件开发人员认识、初步了解Scrum 方法的佳作。通过阅读本书,可以厘清Scrum的相关知识和概念,为采用和实践Scrum 方法做好充分准备。 《敏捷革命:提升个人创造力与企业效率的全新协作模式》 本书由Scrum创始人写就,以讲故事的方式,讲述Scrum的由来,并逐步推进的过程。同样是入门级读物。 《Scrum精髓:敏捷转型指南》 如果想用Scrum来开发足以引爆流行的产品和服务,本书就是你梦寐以求的完全参考。

20181108-软件开发架构1

两盒软妹~` 提交于 2019-12-10 02:26:34
学习目标   听<软件架构相关音频>软件开发架构一节 待解决问题   构件的概念 ?   如何表达一个项目的架构,用什么图表?   架构设计作为一个系统开发的中间产品,交付的是什么内容?   各种架构风格的适用场景? 学习内容(耗时:40min) 软件架构是什么   软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述,构建的相互作用(连接件)、知道构件集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织架构和拓扑结构,并且显示了系统需求和构建还见的对应关系,提供了一些设计决策的基本原理 架构设计的重要性 架构设计好比房子的钢筋水泥,定下了结构,才能撑的起整个系统.尤其是在大型软件开发中 软件架构的重要性越来越大 需求分析 -- 〉 架构设计 --〉 软件分析 软件架构 应该是项目中的一个可交付的中间产品    软件架构的意义(9个意义 ) 架构是项目干系人进行交流的手段 架构是早期设计决策的体现 架构明确了对系统实现的约束条件 架构决定了开发和维护组织的组织结构 架构制约着系统的质量属性 架构使推理和控制更改更监督 架构有助于循序渐进的原型设计 架构可以作为培训的基础 架构是可传递和可服用的模型  架构的发展阶段(4个阶段) 无架构设计阶段 萌芽阶段 初级阶段 高级阶段    如何表示软件架构(软件架构建模)      结构模型(常用) 核心

领域驱动设计学习的一些总结(阅读dddquickly有感)

本小妞迷上赌 提交于 2019-12-09 21:48:44
一 为什么要有领域驱动设计? 首先,计算机技术的作用(特别是软件技术)是为了解决现实世界某一个领域的问题,脱离了这些问题,单纯的算法,编程语言,或者操作系统都并没有实际的意义。但是开发人员往往只喜欢研究技术问题,而忽视了领域问题的学习。例如下面一个例子: “我要在这个项目中使用苹果公司新推出的Swift语言,在服务器端使用Hadoop,最好再尝试一下深度 学习方面的技术”,然后就一头扎进这些时髦和高大上的技术之中。三个月后,你去问他需要解决的领域中的真实问题是什么,他还是一脸茫然。” 这样的开发人员就是兴趣驱动型的开发人员。只追求技术,而忽视领域问题的软件,质量自然也是无法保证。 一个有力的观点指出了这一点:布鲁克斯老先生将维护软件的“概念完整性”作为软件开发的核心问题。软件之所以很复杂,难以维护,根本原因就在于软件概念的完整性遭到了破坏。甚至开发团队的成员从来就没有意识到有必要去维护软件概念的完整性,他们只是一些自行其是的开发人员,碰巧在于一个团队中一起堆代码而已。 当然,在实际的开发过程中,经常有软件概念完整性遭到破坏的情况发生,一部分原因是开发人员喜欢追求高大上的技术,产品功能对他们来说只是甲方提的需求,他只用考虑技术上能否实现。另一方面是产品设计人员缺乏相关的素质,他们只能进行表面功能的设计,而无法看到软件需要解决的核心问题

软件过程改进练习题

烈酒焚心 提交于 2019-12-09 18:49:36
软件过程改进(SPI.Software Process Improvement) 软件过程方法从上世纪90年代开始在软件开发中得到应 用,被许多软件开发组织所接受。并被认为是软件生产达到 工业化前的一个必须经历的阶段,是软件工程学科发展中的 一个重要里程碑,软件过程理论是现代软件开发人员和管理 人员必备的知识。 软件过程将技术、人和管理紧密地结合在一起,过程改 进是软件开发组织提高软件质量、提高生产率、降低成本的 一种有效方法。 软件过程改进已经形成了一套改进和评估的方法,代表 性成果有CMMI、ISO15504、ISO9000、6σ等。国内外众多软 件开发组织都以通过过程改进评估为手段,达到提高竞争力 的目的。 一、名词解释 1.软件生存周期(Software Life Cycle) 软件生存周期又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每一个时期又划分为若干阶段。每个 阶段有明确的任务,这样使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。SDLC的六个阶段:1. 定义及规划2.需求分析3. 软件设计4.程序编码5.软件测试6.运行维护 2.项目(Project) 项目是指一系列独特的、复 杂的并相互关联的活动

团队总结

不想你离开。 提交于 2019-12-08 17:20:47
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业要求在哪里 https://www.cnblogs.com/harry240/p/11524252.html 团队名称 认真不马虎队 这个作业的目标 个人总结 Github地址 https://github.com/lilizhang94/-- 一、团队成员 学号 姓名 201731024101 李楠(组长) 201731024105 汪小萍 201731024203 黄耀萱 201731024201 孙颖 201731131317 杨也 201731022104 张莹 二、正文 1、汪小萍 201731024105 博客链接: https://www.cnblogs.com/wangxiaoping/p/11979207.html 博客内容: ①个人总结与收获 时间过得很快,这门课已经结束了。对于这门课程,我真的感觉挺难的,代码是我的弱点,除了一些很简单的基础代码能看懂,但是稍微难一些的就搞不明白了,更不要说我自己写代码了。但是老师认真的超级好,很温柔,助教也很认真负责。这门课程最大的收获就是我们自己组队编写一个软件。由于我们组全是女生,所以编辑代码的能力很弱,我们就决定做一个很简单的贪吃蛇游戏,这个游戏对于我们最开始来说

CTRL_IKun团队项目总结

点点圈 提交于 2019-12-08 14:17:34
1. 团队项目-总结 这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求 团队名称 CTRP-lkun 这个作业的目标 团队项目总结,每个人的收获和感悟 Github地址 Github 2. 队员列表 姓名 学号列表 廖志丹(队长) 201731032125 王川 201731021132 江天宇 201731024132 张微玖 201731024126 宋杰 201731024120 3. 队员个人总结     (一)张微玖个人总结 姓名 张微玖 学号 201731024126 第一次博客地址 地址     1.解答问题         (1)业务人员和开发人员在项目开发过程中应该每天共同工作吗?                 答:在这次项目之后,我认为应该尽量保持共同,比如相同的工作时间,工作地点,以确保及                     时的交流反馈,便于处理需求变更的问题。         (2)我们应该如何辨别和吸引潜在用户                 答:在做需求分析时 ,我也遇到了这样的问题:我们的产品的受众群体有哪些?首先,我们是                     做一款学生课堂考勤系统,所以首先想到的就是学生,然而学生是那种类型的呢?高中生?                     大学生?留学生还是其他?问题不断被细化

RainbowPlan团队项目-总结

好久不见. 提交于 2019-12-06 14:10:46
博客介绍 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ 这个作业要求在哪里 https://www.cnblogs.com/harry240/p/11524252.html 团队名称 RainbowPlan 这个作业的目标 团队成员的学习体会、总结与报告 Github地址 https://github.com/Rainbow-Plan/Rainbow-Plan-ES 1.团队介绍 学号 姓名 201731024235 何继武(组长) 201731024221 李全喜 201731024222 谢凯宇 201731024229 傅伟鑫 201731024112 肖逸菲 201731024110 成湘 201731024106 母丹 2.队员们的开始和结束: 有请第一位发言人 姓名 何继武 学号 201731024235 第一篇作业博客 https://www.cnblogs.com/lobooi/p/11505469.html 一、自己第一次作业的提问到现在 有点意外地是,我当时在发现问题的时候就有去尝试找到答案,所以在当时我基本都了解到了自己问题的解答,也可能是我的习惯,如果能马上查就马上查,查不到才会记下来,或者感觉查的不足也会留下来,之后再想。 所以实际上,一般态度是