自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 通读《现代软件工程》

书中介绍了单元测试能够很好的解决这个问题,并且给出了写单元测试的方法,用VSTS写单元测试(VSTS的全称是Visual Studio Team System,是由微软开发的一套具有高生产力、高集成性、可扩展的生命周期开发工具,VSTS使得整个开发团队拥有更好的沟通与合作,并且保证了更好的质量)。在介绍这些基本概念的同时,作者也全面地诠释了它们在实际的研发工作中是如何表现的,它们又是如何与每个开发和测试人员息息相关的。在介绍这些概念的时候,作者多用举例的形式来说明,这样也使得大家更加的容易理解。

2023-05-18 02:03:58 77

原创 什么是DevOps

DevOps是产品开发过程中开发(Dev)和运营(Ops)团队之间的灰色区域。因此,它消除了软件开发团队和运营团队之间的孤岛,使他们能够快速,连续地集成和部署产品。DevOps 就是开发(Development)、测试(QA)、运维(Operations)这三个领域的合并。DevOps是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。编码——》打包——》测试——》发布——》部署——》运维——》监控。

2023-05-18 01:58:51 76

原创 scrum中的3355

3个工件:Product Backlog(产品待办事项)、Sprint Backlog (Sprint 待办事项)和 Increment(可交付产品增量)。3个核心角色:Scrum Master(教练)、Product Owner(产品负责人)和 Scrum Team(团队)。5个会议:产品待办梳理会,Sprint计划会,每日站会,Sprint评审会,Sprint回顾会。勇气 Courage – 勇于承诺,履行承诺,敢于说不。专注 Focus – 全身心都用到你承诺的工作上去。

2023-05-18 01:57:10 81

原创 衡量模块独立性的定性标准

如果一个模块需要访问其他模块的数据,则应该通过明确的接口来实现,而不是直接访问其他模块的数据。4. 接口独立性:模块的接口应该足够简单,不依赖于其他模块的具体实现。如果一个模块的接口依赖于其他模块的具体实现,则应该将其重新设计为更独立的接口。如果一个模块依赖于太多其他模块,则应该考虑减少其依赖,或者将其重新设计为更独立的模块。如果一个模块的实现涉及其他模块的具体实现,则应该将其分解为更小、更独立的模块。模块独立性通常指模块的功能、实现和依赖关系与其他模块之间的耦合度较低。

2023-05-18 01:52:58 356

原创 对信息隐藏和局部化的理解

信息隐藏:指设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。这种隐藏可以通过定义一组独立的模块来实现,每个模块仅交换必要的信息,从而避免了修改期间由于疏忽而引入的错误传播到软件的其他部分。这种局部化有助于实现信息隐藏,因为不同模块之间的紧密联系被限制在局部范围内,避免了系统中不必要的耦合和依赖。例如,一个处理用户输入的模块可以与一个处理输出的模块放在同一个文件夹内,而与其他模块放在不同的文件夹内,这样就实现了局部化。

2023-05-18 01:49:40 275

原创 什么是模块化,为什么要模块化?

模块化是将一个大型系统分解成小型可重用的模块的过程,每个模块都可以独立地进行设计、测试和维护。提高团队的协作效率:模块化使得团队可以分工协作,每个人负责一个或多个模块,因此可以更容易地进行协作开发。提高系统的可重用性:模块化使得系统中的各个模块能够独立开发测试,可以重复使用这些模块来构建其他系统。提高系统的可扩展性:模块化使得系统的各个部分能够独立开发测试,因此可以更容易地扩展系统,添加新功能。提高系统的可维护性:模块化使得系统的各个部分相对独立,可以更容易地维护和更新系统。

2023-05-17 20:13:26 147

原创 了解和使用过的编程语言和工具

JavaScript是一种轻量级、解释型、支持多范式的语言,它是Web前端开发的标准语言,也可以用于后端开发和桌面开发,适合做动态交互、数据可视化、全栈开发等领域的应用。Python是一种简洁、易读、灵活的语言,它有丰富的库和框架,适合做数据分析、机器学习、Web开发等领域的应用。Java是一种面向对象、跨平台、高性能的语言,它有成熟的生态系统,适合做企业级、分布式、移动端等领域的应用。SQL是一种结构化查询语言,它是操作关系型数据库的标准语言,适合做数据存储、查询、分析等领域的应用。

2023-05-17 20:10:47 48

原创 什么是形式化方法?

所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果有一种有坚实的数学基础,那它就是形式化的。它适用于软件和硬件系统的描述、开发和验证,是期望能够向其他工程学科一样,使用适当的数学分析以提高设计的可靠性和强健性。根据形式化的程度,可以把软件工程方法划分为非形式化、半形式化和形式化3类。在计算机科学和软件工程领域,形式化方法是基于 数学的特种技术,适合于软件和硬件系统的描述、开发和验证。是描述系统性质的基于数学的技术,也就是说如果一种方法有坚实的数学基础,那么它就是形式化的。

2023-05-17 19:34:53 116 1

原创 入学管理系统的顶层图和1层图

1、报名:由报名处负责,需要在学员登记表上进行报名登记,需要查询课程表让学员选报课程,学员所报课程将记录到学员选课表。2、交费:由收费处负责,需要根据学员所报课程的收费标准进行收费,然后在账目表上记账,并打印收款收据给办理交费的学员。3、就读:由培训处负责,其在验证学员收款收据后,根据学员所报课程将学员安排到合适班级就读。画出入学管理系统的顶层图和1层图。

2023-05-17 19:12:50 64

原创 为什么软件开发周期总是预估期的两到三倍?

软件开发周期预估是根据开发的内容,用到的开发工具,资源,开发人员的实力,开发人员的人数等诸多因素对整个开发过程(需求调研,程序设计,编码,调试)所花费的时间做出的预测。如果实际的开发资源比预估的少,开发人员的人数不合理,团队的工作效率不高,没有合理安排各个开发人员的工作,忽略每个开发人员的工作效率,没有合理的弹性配置开发各个阶段的计划时间的话,开发周期也会比预估的要长。所以在预估开发周期的时候,应该考虑完各种可能的因素,这样在完成软件开发后,软件开发周期就不会是预估的2-3倍那么多了。

2023-05-17 19:05:36 45

原创 什么是分而治之

中文的意思是:分别治理,利用手段使国家、民族或宗教等产生分裂,然后对其进行控制和统治。在计算机科学中,分治法是基于多项分治递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或多个相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。分解:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题。解决:若子问题规模较小且易于解决时,则直接解。合并:将各子问题的解合并为原问题的解。解决:递归地对两个子数组进行归并排序。

2023-05-17 19:02:20 65 1

原创 什么是wbs

工作分解结构(Work Breakdown Structure,简称WBS)跟因数分解是一个原理,就是把一个项目,按一定的原则分解,项目分解成任务,任务再分解成一项项工作,再把一项项工作分配到每个人的日常活动中,直到分解不下去为止。项目范围是由WBS定义的,所以WBS也是一个项目的综合工具。工作分解结构(WBS,Work Breakdown Structure),以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。即:项目→任务→工作→日常活动。

2023-05-17 18:59:58 42 1

原创 软件工程方法论对我们软件开发的用处

软件工程方法论可以帮助开发团队更好地组织和管理开发过程,从而提高开发效率。软件工程方法论可以帮助开发团队更好地控制软件开发过程中的风险,从而提高软件质量。例如,采用测试驱动开发可以让团队更加早期地发现和修复代码中的问题;软件工程方法论可以帮助开发团队更加有效地利用资源,从而降低开发成本。采用合适的软件工程方法论可以帮助我们更加高效、高质地进行软件开发,从而更好地满足用户需求。软件工程方法论是一种系统化的方法,用于规范软件开发过程中的各个环节,从而提高软件开发的效率和质量。

2023-03-28 01:46:38 179

原创 有人负责,才有质量:写给在集市中迷失的一代

这是由Raymond在其书中称颂的集市模式导致的悲哀的现实:一坨脓包似的权宜代码,被一群盲目的根本不知IT架构为何物的所谓IT“专业人士”永无休止地复制着,粘贴着。我有点奇怪,为什么Brooks不把Unix作为他这个观点的论据,因为我们可以精确地指出Unix开始走向碎片化的时间点:1990年代初,AT&T抛弃Unix,将其商业化,抢走其架构师的那一刻。以作者个人的经验,他估计整个行业(包括IT行业由此新增的就业机会)大概增长了两个数量级,或者更确切地说,达到了原来的百分之一万(100倍)。

2023-03-28 01:45:49 30

原创 从瀑布到敏捷——漫画解读软件开发模式变迁史

③看板:看板管理,常作“Kanban管理”,是丰田生产模式中的重要概念,指为了达到及时生产(JIT)方式控制现场生产流程的工具。及时生产方式中的拉式(Pull)生产系统可以使信息的流程缩短,并配合定量、固定装货容器等方式,而使生产过程中的物料流动顺畅。就像汽车生产的流水线一样,每个部门各司其责,工作按照顺序展开,交付件单通道线性流动。这张图从上而下,有5个房间,分别是瀑布模型(waterfall)、敏捷开发(agile)、看板(KANBAN)、SUCRUM、精益软件开发(lean)

2023-03-27 18:39:52 89

原创 对结对编程的理解

在结对编程中,两个程序员一起完成一个特定的任务,一人充当"驾驶员",负责编写代码,而另一个人则充当"导航员",负责审查代码,发现潜在的错误并提出改进意见。在使用结对编程之前,需要进行充分的讨论和计划,以确保它适合团队的工作流程和项目需求。:由于两个程序员一起工作,他们可以互相监督,发现彼此的错误并提出改进意见,从而减少代码中的错误和缺陷。:在结对编程中,经验丰富的程序员可以与新手程序员分享知识和经验,帮助他们更快地成长。:结对编程可以减少开发周期,因为两个程序员一起工作,任务可以更快地完成。

2023-03-21 17:16:17 33

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除