自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 人月神话读书笔记

由于软件开发的不确定性和复杂性,必须采用迭代开发的方法,即将软件开发过程分为多个迭代,每个迭代都包括需求分析、设计、编码、测试等过程。软件开发是一项艺术和科学的结合,需要开发人员具备扎实的技术知识和丰富的实践经验,同时还需要具备良好的沟通能力、协作能力和创新能力。软件开发过程中,要注重团队合作和沟通,建立有效的沟通机制和管理机制,以确保团队成员之间的协作和信息的共享。软件开发的复杂性源于以下几个方面:需求的不确定性、软件的复杂性、人员的多样性、沟通的难度等。

2023-04-30 14:15:18 141

原创 某培训机构入学管理系统有报名、交费和就读等多项功能

输入输出 || 输入输出 || 输入输出 || 输入输出 || 输入输出 || 记录模块 |

2023-04-30 14:14:19 560

原创 学校规定:一个学生可选修多门课,一门课有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;一个学生选修一门课,仅有个成绩。学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名

ER图中包括三个实体:学生、教师和课程。学生和课程之间存在选修关系,可以用一个名为“选修”的关系来表示,这是一个多对多的关系,所以需要使用一个中间实体“选课”来表示。每个选课实体包括一个学生和一门课程,还有学生在该门课程中的成绩。教师和课程之间存在授课关系,因为一门课程只有一个教师讲授,所以这是一个一对多的关系,用一个名为“授课”的关系来表示。每个实体都有一些属性,如学生有学号和姓名,教师有教师编号和姓名,课程有课程号和课程名。在图中,矩形代表实体,椭圆代表属性,菱形代表关系,箭头指向参与关系的实体。

2023-04-29 13:49:05 4603

原创 建模电梯状态图

这个状态图包括四个状态:停止、向上运动、向下运动、开门。其中,停止状态可以转移到向上或向下运动状态,而向上或向下运动状态可以相互转换或者转移到开门状态。开门状态只能转移到停止状态。在实现电梯控制时,可以使用这个状态图来指导状态转换的实现,例如使用有限状态机(FSM)或状态模式来实现。

2023-04-29 13:43:32 1388

原创 如何理解信息隐藏和局部化,用自己的话或者例子表达其含义

相反,如果我们将不同的排序算法封装在不同的模块中,每个模块只暴露必要的接口,同时局部化相关的代码和数据,那么程序将会更加清晰、易于理解和维护,同时也会更加容易重用。这就是信息隐藏和局部化在软件设计中的应用。一个具有良好信息隐藏的软件模块,应该只向外部暴露必要的接口,尽可能地隐藏内部实现细节,以避免外部模块对其产生不必要的依赖。通过局部化,可以提高软件的内聚性,使得软件模块的功能更加清晰和容易理解。一个具有良好局部化的软件模块,应该尽可能将相关的代码和数据组织在一起,避免将不相关的代码和数据混在一起。

2023-04-29 13:27:53 130

原创 衡量软件模块独立的定性标准是什么?用自己的话表达其含义。

一个具有良好独立性的软件模块,不仅可以独立开发、测试、维护和重用,还可以减少软件开发过程中的风险和成本,提高软件开发的效率和质量。耦合性指的是模块之间的互相依赖程度,耦合度低表示模块之间的相互影响较小,模块可以独立开发、测试、维护和重用。相反,如果模块之间耦合度高,则修改一个模块可能会对其他模块产生影响,从而增加软件开发的难度和成本。内聚性指的是模块内部的功能联系程度,内聚度高表示模块内部的功能高度相关,实现了单一职责原则,模块的功能更加清晰和容易理解。衡量软件模块独立性的定性标准包括耦合性和内聚性。

2023-04-29 13:23:56 284

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

模块化是一种软件设计原则,通过将系统拆分为小而相对独立的模块,可以降低软件的复杂度、提高系统的可维护性和可重用性,同时还可以减少开发成本和加快软件开发的速度。提高可重用性:模块化可以使得软件系统的不同模块可以单独设计、开发、测试和维护,因此可以更容易地将这些模块用于其他项目中。降低复杂度:通过将系统拆分成小而相对独立的模块,可以减少模块之间的耦合性和复杂度,使得软件开发和维护更容易。减少开发成本:通过模块化,不同的开发人员可以同时开发不同的模块,从而缩短软件开发的时间和减少开发成本。

2023-04-29 13:19:19 2633

原创 如果你要开发一个中小学生学习数学的软件,你应该找谁去做用户调研

通过这些问题,我可以更好地了解目标用户的需求,以便为他们提供更好的产品和服务。同时,我也可以利用这些反馈来优化软件的用户体验和功能,以满足目标用户的需求和期望。如果我要开发一个中小学生学习数学的软件,我应该找中小学的数学老师和家长进行用户调研。他们可以提供很有价值的反馈和建议,帮助我更好地理解目标用户的需求和期望。教师们对学生数学软件使用的意见和建议是什么?家长们对学生使用数学软件有什么期望和担忧?学生在使用数学软件中最需要的功能是什么?学生在数学学习中面临的最大问题是什么?

2023-04-29 13:15:20 42

原创 什么是scrum中的3355?

在Scrum中,3355通常指的是一个规则,即每个Sprint中必须包含至少三个检查点(Sprint Review)、三个迭代回顾(Sprint Retrospective)、五个Scrum会议(Sprint Planning、Daily Scrum和Sprint Review/Sprint Retrospective)和五个工件(Product Backlog、Sprint Backlog、增量、定义完成和过程定义)。同时,这个规则也帮助团队在整个Sprint周期内保持对工作的清晰和明确的掌控。

2023-04-29 13:11:06 1747

原创 什么是Devops?

在传统软件开发和IT运营模型中,这两个过程是分开的,这种分离可能导致开发和运营之间的交流缺失,从而导致各种问题。DevOps通过推动文化、流程和工具的变革来解决这个问题,目的是实现更快速的软件开发和更快速的部署。它强调了软件开发和IT运营之间的协作和通信,以及自动化和监测整个软件开发和部署过程。总的来说,DevOps是一种融合了开发和运营的文化、流程和工具的方法,旨在加速软件开发和部署的过程,并提高软件的质量和可靠性。协作:鼓励开发和运营之间的合作和协作,以更好地理解彼此的需求和问题。

2023-04-29 13:07:59 101

原创 软件方法论对我们经软件开发有多大用处?

降低开发成本:软件工程方法论通过合理的开发流程和技术规范,可以降低开发成本,减少开发过程中的错误和缺陷,并在开发生命周期中及时发现和解决问题,从而避免后期的修复和改进成本。提高可维护性和可扩展性:软件工程方法论强调软件的可维护性和可扩展性,通过遵循标准化的编码规范、设计规范和文档化要求,可以使软件更易于维护和升级。提高开发效率:软件工程方法论提供了一套标准化的开发流程和技术,帮助团队更有效地组织和协调开发工作,减少重复劳动和浪费,提高开发效率。

2023-04-29 13:05:50 36

原创 各类软件的特点

数据库软件:这是用于存储和管理数据的软件,例如关系数据库管理系统(RDBMS)、面向对象数据库、NoSQL数据库等。工具软件:这是用于帮助用户管理和维护计算机的软件,包括压缩软件、备份软件、恢复软件、系统优化工具等。安全软件:这是用于保护计算机和网络安全的软件,包括防病毒软件、防火墙、入侵检测系统等。编程软件:这是用于编写、测试和维护计算机程序的软件,包括编译器、解释器、调试器等。学习软件:这是用于学习和教育目的的软件,例如电子书、语言学习软件、教育游戏等。

2023-04-29 12:59:37 653

原创 软件工程是不是教会不怎么会写程序的人开发软件

软件工程是采用工程的概念、原理、技术和方法指导计算机软件开发和维护的工程学科,软件工程偏重的是一种管理思想,要求开发出的软件具有实用价值。软件工程最早的定义是:为了经济地获得可靠的和可能在实际机器上高效运行的软件而建立和使用的健全的工程的规则。这是我们软件工程的老师在课上给我们留下的一道思考题,在应试教育里摸爬滚打这么多年,遇到这种绝对性的问题,脑子里已经自动回答:No 了。我们首先来看一下软件工程的定义,其实软件工程的定义并不是固定的,但有普遍受大家接受的定义。并不仅仅是教会我们开发软件的!

2023-04-05 17:00:29 108

原创 理解结对编程

每个人都有自己要负责的任务,两个人其实形成了一个互相监督,共同进步的小团队,为了团队任务的完成,两个人都会专注在自己的任务上,这样就提高了输出的效率。在采用结对编程实践时,不同的团队形式各异。结对编程其实是在结对的磨合中,慢慢的形成团队的一个共同的价值观和文化,这个过程是漫长的,潜移默化的,其中必然经历分歧和统一的过程,而很多团队在分歧中就直接停止了实践,也就无法看到结对带来的好处。实践中,结对编程占受访企业的31%,排第八位,仅次于持续部署,高于TDD,由此可见,结对编程还是有一席之地、可取之处的。

2023-04-05 16:55:44 57

原创 关于《现代软件工程基础》的观后感

 整本书的内容逻辑很清晰明了,由浅入深循序渐进,首先我就大概描述下我们所学的内容,第一章是从整体分析软件工程这门学科的发展和所处的社会环境,接着后面的几章深入分析了软件开放过程和模式、软件项目管理、计算机工程、需求分析、结构化分析建模以及基于UML面向对象分析建模等。接着我就详细介绍下我对这门课程知识点的理解概括:  软件:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。软件的特征:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性

2023-04-05 16:41:30 76 1

原创 软件工程课程的希望及个人目标

1.我希望通过学习软件工程这门学科,能充分理解开发一款软件所需要的理论知识以及工作流程,并在未来的生活中运用自如。1.希望在这门课程的学习上时刻保持热情,在最后的考试中能发挥自己全部所学,考出一个让自己满意的成绩。2.其次,在学习过程中我希望能解决很多之前遇到的无法解决的问题,比如不会运用数据结构的知识来编程。3.我最大的目标还是希望通过这门课程的学习,广交好友,能够跟他们互相探讨不懂的地方。3.当然,我最希望的是,通过学习这门课程,我能够真正的写出一款软件吧。

2023-04-05 16:16:26 137 1

原创 软件如何定义世界

软件定义世界,用朋友的例子形象的解释了软件定义世界的概念。四:现实世界被软件虚拟化,软件重新定义了现实世界的所有资源。文章一开始阐明观点:很多行业 需要程序员,批驳了当下很多人的看法:过几年程序员就不缺了,现在只是泡沫期罢了,以及过几年就不需要程序员了,因为有更多的工具可以帮助生成软件,用了美国hib签证的例子证明,无数中国和印度的程序员急盼签证。在我看来,随着人工智能的发展,生成软件代码已经变成了可能,我们需要更多的去学习底层,这个领域在未来也可能被代替,但在后面的几年应该不会那么快被代替。

2023-04-05 15:39:39 258 1

空空如也

空空如也

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

TA关注的人

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