- 博客(18)
- 收藏
- 关注
原创 为什么软件开发都周期总是预估的两三倍
软件开发周期预估是根据软件的开发内容、开发工具、开发人员等因素对需求调研、程序设计、编码、测试等整个开发过程所花费的时间做的预测。但是,软件开发周期预估在软件开发中也是较为困难的工序之一,因为软件开发本身就是一个复杂的过程,而且开发周期预估需要考虑到很多因素,如需求变化、人员变更、技术变化等。这是因为在实际开发中,如果做事的顺序不合理,可能会导致后续的任务无法完成,从而影响整个软件开发周期。因此,开发人员应该根据任务的优先级来安排工作,保证每个任务都能够按时完成。
2023-05-05 17:02:34 171
原创 什么是wbs
即工作分解结构(work break-downstructure)是以项目的可交付结果为导向而对项目任务进行的分组,它把项目整体任务分解成较小的、易于管理和控制的工作单元,工作分解结构的每一个细分层次表示对项目可交付结果更细致的定义和描述。字典相当于对某一WBS元素的规范,即WBS元素必须完成的工作以及对工作的详细描述;(1)WBS元素:实际上就是WBS结构上的一个个“节点”,通俗的理解就是“组织机构图”上的一个个“方框”,这些方框代表了独立的、具有隶属关系/汇总关系的“可交付成果”。
2023-05-05 17:01:18 170
原创 什么是模块化?为什么要模块化?
所谓的模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块化开发使用代码耦合度降低,模块化的意义在于最大化的设计重用,以最少的模块、零部件,更快速的满足更多的个性化需求。内聚度指模块内部实现,它是信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。设计时应该尽可能的提高模块内聚度,从而获得较高的模块独立性。耦合度取决于模块之间接口的复杂性,进入或调用模块的位置等。模块化是一种处理复杂系统分解为更好的可管理模块的方式。1、灵活架构,焦点分离。
2023-05-04 22:38:24 542
原创 衡量模块独立化的标准是什么?
内聚是一个模块之内各成分之间相互依赖程度的度量,它是衡量模块独立性的一个重要标准。通常,内聚度越高,模块的独立性越强。耦合不同模块之间相互依赖程度的度量,它也是衡量模块独立性的一种重要的标准。
2023-05-04 22:37:58 76
原创 如何理解信息隐蔽和局部化?
这种隐藏可以通过定义一组独立的模块来实现,每个模块仅交换必要的信息,从而避免了修改期间由于疏忽而引入的错误传播到软件的其他部分。例如,一个处理用户输入的模块可以与一个处理输出的模块放在同一个文件夹内,而与其他模块放在不同的文件夹内,这样就实现了局部化。有效的模块化可以通过定义一组独立的模块来实现,每个模块仅交换必要的信息,从而避免了修改期间由于疏忽而引入的错误传播到软件的其他部分。变换流是信息隐藏和局部化的一种具体实现方式,可以实现输入和输出的格式转换和加工处理,从而提高软件的可扩展性和可移植性。
2023-05-04 22:37:21 76
原创 为什么软件开发方法论让你觉得很糟糕?
首先,软件开发方法论是一套科学的、系统的、有规律的工程方法,但它一般注重的是项目的计划、过程和人员的管理。这最后就变成了开发团队成员之间的默契配合,我们有了科学的方法论来指导工作,那我们团队成员对方法论的理解掌握、成员之间的沟通配合、成员的个人实力就是影响软件开发的重要因素。我们一直在学习——实践——纠正——学习——实践的循环中前进,掌握IT技能的路似乎没有尽头,在犯错和遇到问题时,就是我们头疼的时候,我们不得不停下来去解决它,所以到头来我们会发现跟着方法论走,我们工作得非常幸苦,你就会觉得它很糟糕。
2023-05-04 22:36:06 45
原创 阅读和理解什么是形式化方法?
形式化方法的一个重要研究内容是形式规约(Formal Specification,也称形式规范或形式化描述),它是对程序“做什么”(what to do)的数学描述,是用具有精确语义的形式语言书写的程序功能描述,它是设计和编制程序的出发点,也是验证程序是否正确的依据。经过30多 年的研究和应用,如今人们在形式化方法这一领域取得了大量、重要的成果,从早期最简单的形式化方法——一阶谓词演算方法到现在的应用于不同领域、不同阶段 的基于逻辑、状态机、网络、进程代数、代数等众多形式化方法。1)面向模型的形式化方法。
2023-05-04 22:35:11 45
原创 如果你要开发一个中小学生学习数学的软件,你应该找谁去做用户调研?
学生家长:作为辅导学生作业的主力军,在辅导自家孩子学数学这方面的矛盾,也是不容忽视,他们的需求不亚于学生群体,因此也需要对他们进行调研。中小学生:中小学生作为最大的目标用户群体,是我们首要考虑的,了解他们的需求和期望对设计和开发非常重要。教师及教育工作者:数学属于是教育行业的范畴,也应当有权威性的专业人士加入,才更能使得设计和开发更为合理。最后,对于市面上已有的数学学习的软件,也应该进行分析,知己知彼,以前人鉴己身,才更能在市场中占据上风。
2023-05-04 22:34:21 50
原创 决策树(决策表)
最后发现 分数小于70为【不是好学生】这条分错最少,也就是熵最小,所以应该选择这条为父节点进行树的生成,当然分数也可以选择大于71,大于72等等,出勤率也可以选择小于60,65等等,总之会有很多类似上述1~4的条件,最后选择分类错最少即熵最小的那个条件。决策树是一种十分常用的分类方法,需要监管学习(有教师的Supervised Learning),监管学习就是给出一堆样本,每个样本都有一组属性和一个分类结果,也就是分类结果已知,那么通过学习这些样本得到一个决策树,这个决策树能够对新的数据给出正确的分类。
2023-05-04 22:33:37 340
原创 你是用过那些编程语言?并比较他们的优势
与一年前一样,Java仍然是最流行的编程语言。作为如今人工智能、机器学习、大数据和机器人等一些最有前途的技术背后的主要语言,Python近年来积累了庞大的粉丝群。Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及。
2023-05-04 22:33:09 184
原创 了解和使用过的编程工具
1.IntelliJ IDE Community Edition(java编程语言开发的集成环境) InteliJ IDEA是一种java集成开发环境工具软件,在智能代码助手、代码自动提示、重构、JavaEE支持、代码分析等方面的功能可以说是超常的。 2.VMware Workstation Pro(为计算机开发的虚拟机管理程序) 是在计算机上无缝运行Windows的最佳方式,可确保Windows应用实现无缝运行,可以基于Intel的计算机上无缝运行Windows、Linux以及其他PC等多个操作系统,进
2023-05-04 22:30:00 61
原创 什么是scrum中的3355
敏捷开发过程重视团队的交流与管理问题,其提高研发效率的显著效果,使得敏捷开发逐渐成为继瀑布式开发之后,最为流行的软件开发方式,其中,Scrum过程无疑是目前最为成功的敏捷方法。对应敏捷团队中的项目经理,但并非是一个项目经理。在Scrum中,使用产品BackIog来管理产品的需求,产品BackIog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是一至四周。
2023-03-29 16:52:25 76
原创 什么是Devops
在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。所谓“微服务”,就是将原来黑盒化的一个整体产品进行拆分(解耦),从一个提供多种服务的整体,拆成各自提供不同服务的多个个体。容器就更彻底了,不是划分为不同的操作系统,而是在操作系统上划分为不同的“运行环境”(Container),占用资源更少,部署速度更快。作为一个热门的概念,DevOps近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。
2023-03-29 16:48:01 94
原创 对软件工程教材中问题的理解
比如, ANSI/IEEE 610.12-1990软件工程标准词汇对于体系结构定义是“体系架构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构以 及知道上述内容设计与演化的原理 (principle)”;对于软 件项目的开发来说,一个清晰的软件体系结构是首要的。在建立软件体系结构时系统设计师主要从结构的角度对整个系统进行分析,选择恰当的 构件(Component)、构件间的相互作用以及它们的约束,最后形成一个系统框架( Framework)以满足用户的需求,为软件设计奠定基础。
2023-03-26 20:02:57 61
原创 对软件工程课程的希望
使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养毕业后能够在IT行业、科研机构、企事业中从事软件开发、测试、维护和软件项目管理的高级软件工程技术人才。软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程是采用工程的概念、原理、技术和方法指导计算机软件开发和维护的工程学科,软件工程偏重的是一种管理思想,要求开发出的软件具有实用价值。
2023-03-26 19:41:24 72
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人