软件开发流程知识概括

3 篇文章 3 订阅
订阅专栏

软件开发流程简述

研发流程简述:
在这里插入图片描述
在这里插入图片描述

研发流程详解:

  • 需求提出:
    ①这个环节主要是产品爸爸给我们提需求,每个需求都是他们从用户,或者自己绞尽脑汁想出来的,但是产品爸爸还拿不准,不能直接敲定,所以就需要我们大家(产品,UI,前端,后端,客户端和测试)一起讨论一下,看看这个需求是否合理,或者这个需求是否有意义,能否达到预期,技术实现的成本,周期等等。
  • 需求PRD提出(软件业务分析):
    ①这个阶段,产品爸爸会根据第一版聊下来的结果,大致出一个Demo版本的PRD,会画出初版的原型图,并且配上文字说明,所有涉及到的业务,还有交互细节都会罗列出来。
    ②这个时候大家又会围绕这一版本去开会讨论,敲定细节,这个环节会久点,因为细节比较认真,逻辑也不能出错,还有UI稿子也得敲定,这里如果不敲定逻辑,UI提前去画原型图,后面假如逻辑推翻,一切重来就会浪费大量时间。这一环节大家都会把细节问清楚,不了解的点也会去了解,测试,开发,UI我们都会在会议上提出自己的观点,自己的意见,然后等产品反馈,最后意见一致之后,产品当天就回改出敲定版本。UI就会按照产品爸爸的意思去作图,接下来就是交互设计评审了。
  • 交互设计评审:
    ①UI会画出客户端,前端,H5开发所需要的UI图,基本上就是我们看到的产品的样子了,不过还是要敲定细节,比如按钮合理不,或者上面数据是否在这展示,或者这里展示的数据是否合理。这个环节会比较快,只要UI按照之前敲定的逻辑开发,出入不会很大,一般都是小改。
  • 概要设计(软件设计):
    ①这个是大厂程序员需求下来之后基本上都会做的一步,不过看需求大小,可能很多小需求直接就详细设计了,也有啥设计都不用做的小改动,具体需求具体分析嘛。很多不了解的同学可能会问,需要设计什么呢?为什么要设计呢?技术是把双刃剑,你用了技术之后你是不是需要列出他的优点缺点,出问题之后的解决方案,还有可能出现的问题,注意点等等。这么是为了让你能有把控力,比如你这个需求接入了新技术Es(Elasticsearch)你什么都不管你就是要接入它,你把他开发好了上线了,但是有啥坑你知道么?上线崩了怎么办?
    ②这个环节你需要考虑这个需求涉及到哪些服务了,需要新增哪些接口,修改哪些接口,表有现场的还是要新建表,字段要新建么?其实远远不止这些问题,这就是我们做设计的主要原因,也是大家工作里面能成长的途径之一,你以为大佬们的经验是怎么来的?
  • 详细设计(软件设计):
    ①我们研发的时候整个流程往往很复杂,如果你理解不对直接就写代码,最后容易造成返工。花点时间做详细设计很有必要,你思路完全清晰了,写代码那就是分分钟的事情。
    ②涉及的都是流程图,时序图等等。
  • 测试用例评审:
    ①测试会根据你的概要设计,评估你的影响范围,你的影响点,新增和改动的接口啥的,去编写自己的测试用例。测试用例,主要是为了把改动点影响点都考虑到,测全一点,免得上线了影响别的现有业务,也是为了把你开发的功能可能出现的bug给排除了。
  • 接口定义&开发&前后端联调:
    ①啥都敲定了,那就开发呗,开发差不多了,就得前后端联调了。这里有个小细节还是想说一下,一般开发前我们都会提前定义数据类型,接口名称,然后在公司的接口工具上给出链接和参数,方便前端爸爸mock数据。他总不能等我们后端开发完了,才去开发嘛,这样效率打折扣,所以都是后端先定义好,然后前后端并行开发的。
    ②后端开发好,一般都是会发布到联调环境,我们有哪些环境,联调环境在我们所有的环境中处于哪个地位呢?
    在这里插入图片描述
  • 代码Review:
    ①codeReview环节,画一下重点,这可能是整个研发流程中,让你成长最快的一个环节,让组员和Leader Review你的代码,往往他们能给你很多业务上和技术上的建议和意见。
  • 提测&灰度发布&产品第一次验收:
    ①这一阶段就是把代码都发到日常环境,然后等测试爸爸测试,这个环节开发同学如果没BUG是比较轻松的,等着就好了,但是如果你BUG多,那我觉得你可能会生不如死,因为有的bug真的找很久很久的,调用链路又长,特别是跨服务又涉及消息队列,或者第三方的接口什么的。
  • 发布计划:
    ①这个确实是比较重要的环节,这个环节主要是开发同学和前端同学说好一个发布时间,然后制定一个发布计划,为啥要发布计划呢?我们开发一个需求,可能涉及到N个服务,这些服务是有依赖关系的,那就需要打包,比如订单系统,依赖人员系统。优惠券系统,也依赖人员系统,然后订单系统还依赖优惠券系统。
  • 生成环境上线:
    ①这就是神圣而庄严的上线环节。
  • 日志观察&产品第二次验收:
    ①一般发布第一批之后不会马上发布第二批,而是观察错误日志,看看是否正常,有时候会发现还是会出现异常情况的,那就保留错误日志,然后回滚。知道解决了再发布,顺利的话就没啥错误。
    ②一次发布可能涉及服务多的话,真的有可能发布这么久,但是没办法,线上出问题就是掉脑袋的事情。日志观察一般公司都有错误日志搜集系统,或者自己登录跳板机查看就好了。没问题,发完之后告诉产品大大就好了。
  • 需求结束:
    ①至此基本上一个需求可能就结束了,其实还是很不容易的,短的需求几天,长的需求几个月,中间涂涂改改,BUG,技术难点都是你要面对的,不过没啥大问题,我们技术人嘛皮实能顶。

软件概要设计与详细设计与软件分析的区别:

  • 概要设计:
    ①就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
    ②概要设计阶段通常得到软件结构图
  • 详细设计阶段:
    ①就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
    ②详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等
  • 总结:
    概要设计只说明系统有多少个模块,各模块之间的接口和个模块本身的功能
    详细设计说明某个具体模块如何实现,粒度应该比程序略高一些
  • 需求分析–产生 :
    软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。

开发流程详解

系统解释:

  • 首先,系统是什么?根据《系统架构》一书的定义,系统是由一组实体和这些实体之间的关系所构成的集合,其功能要大于这些实体各自的功能之和。
  • 对于我们的场景,系统可能是 App、Web 应用、服务、批处理程序等,也可能是包括所有这些的一个大系统。

产品原型,UI设计:

  • UI切图:
    ①是指在设计稿里整理出技术开发所需要的素材或图片。合格的、严谨的切图可以大大减少技术人员开发的返工率,减少技术人员的开发工期,提升开发流畅度,从而减少项目人力成本,最终开发出有利于交互,拥有良好视觉感的产品。
    ②切图标注作为连接 UI 设计到技术开发两者的工作模块,是不可或缺的。设计师需要熟悉工具、理解设计尺寸与切图倍数的关系,才能在切图时进行判断:目前的设计稿尺寸与切图单位是否正确匹配。
  • UI:
    ①User Interface 用户界面。主要关注产品视觉呈现的效果。就是界面元素是什么,形状、颜色、尺寸,放在哪里。
  • 原型:
    原型图简单的来说,就是一款产品成型之前的一个简单的框架,就是将页面的排版布局展现出来,每个功能键的交互,使产品的初步构思有一个可视化的展示。
  • 总结:
    一般来说产品经理画好原型图,然后原型评审(UI参加)。
    UI出设计稿,UI切图(方便开发)。然后UI评审。
    最后进入开发。

开发流程详解:

  • 从产品作出原型,到研发编程实现,中间有巨大的鸿沟。越复杂的业务需求,这条鸿沟就越大。一般而言,我们至少还要有两个步骤:业务分析与架构设计。
    在这里插入图片描述
  • 业务分析,主要处理的是业务领域的建模。解决的问题是业务上如何实现。然后是技术与架构方面的设计,主要针对的是技术实现,解决的问题是技术上如何实现。这两个方面是会互相影响的,设计的时候往往需要来来回回的考虑这两个方面。甚至系统开发时也时常会需要调整模型或者架构,当然相应的也需要更新文档。
    在这里插入图片描述
  • 业务分析:
    分析方法:业务分析是针对业务领域的建模,产出就是分析模型。分析模型描述系统的逻辑设计与结构,一般会包括需求用例、实体模型以及业务场景的交互流程、状态转换等。分析模型让非技术人员能够理解系统是如何构造的,让技术人员能够以此为基础搭建系统。
    理清业务需求:
    <1>理清业务需求是所有分析与设计的前提:
    1、确定系统的利益相关者(Stakeholder)及他们的关注点。
    2、确定系统的业务需求,即「谁」使用该系统「做什么」。
    3、确定系统的功能范围,即该系统「包含什么」,不包含「什么」。
    <2>具体到系统的用户,还需要细分到角色,即使有些角色实际可能是同一个人。比如对于门诊,可能有护士、顾问或系统管理员等等,可以进行不同的操作。需求范围简单话用一个列表即可,复杂的系统可以考虑使用用例图。
    建立实体模型:
    <1>实体模型是确定系统包含的实体以及它们之间的关联的过程:
    1、理清业务概念,统一业务词汇。
    2、抽象业务实体,包括事件、人/角色、地点和事物等。
    3、识别实体关系:继承、聚合、关联等。
    <2>实体模型也叫 ER(Entity-Relation)模型。可以考虑使用四色法建模,一般可以使用类图或组件图表示。需要注意的是一定要理清业务的概念,统一命名和定义业务相关词汇,这是进一步沟通的基础。
    分析业务场景:
    <1>场景分析用于确定具体业务场景中,各个参与者的交互过程,从而进一步完善分析模型:
    1、分析具体业务场景,确定业务规则,梳理业务流程。
    2、如果涉及复杂的状态转换,需要确定状态转换逻辑。
    3、补充和完善实体模型的内容描述。
    <2>对于一个业务场景,参与者可能包括人、内部模块、外部服务等,这一步需要理清楚整个业务过程和规则。需要注意的是,对于一些次要路径或者异常路径,也一定要考虑到。对于业务过程和规则,可以使用普通的流程图、泳道图,也可以考虑UML的活动图,状态转换过程则可以通过UML的状态图展示。
  • 架构与技术设计:
    架构方法:架构设计不一定要深入到具体的实现细节,但是应该尽量全面的考虑系统的各个方面。关键是要对项目风险有比较大的把握,这样才能避免开发过程出现不可控的问题。具体设计需要多详细,是需要设计者自己去把握度的。
    确定整体架构:首先需要在整体上考虑系统的位置和职责:
    <1>确定系统在整个上下文中的位置,与其他系统的关联。
    <2>确定系统自身以及各个外部系统的职责。
    设计功能模块:其次需要确定系统内部的功能模块及其职责:
    <1>确定系统的模块划分。
    <2>确定每个模块的职责以及模块间的关联。
    明确架构关注点:然后需要确定系统架构的理念:
    <1>理清架构设计需要考虑的关注点。
    <2>确定系统的架构设计上的取舍。
    设计数据库模型:如果分析时有了完善了实体模型,设计数据库模型就不是什么难事了。开发完成后,数据库模型应该以数据库为准,架构文档就不需要保留这一部分了。
    设计接口:然后就需要确定 API 细节了。一般我们的服务的 API 是 JSON 格式 HTTP 形式的请求和回调。API 可能是接口定义,也可能会有其他接口形式,例如消息队列等。设计阶段,API 文档可以通过 Markdown 文档、RAP 等记录,开发完成后可以独立维护,或者使用 Swagger 和代码一起维护。
    场景实现:一般情况下,有了业务场景分析,有了数据库模型和 API,系统的实现一般是比较简单了。但可能还会有一些细节需要进一步考虑实现细节,以避免风险。可以考虑更细节的活动图、时序图甚至伪代码。
    其他考虑:对于我们的后台系统来说,基本的技术框架都已确定,可以解决很多基础的非业务需求。不过设计系统时,也还是需要考虑以下等方面。
  • 链接: 如何进行系统分析与设计

软件开发流程涉及的图

简述:

  • 链接: 设计模式概述与UML类图与知识概括
  • uml中活动图与流程图的区别(活动图由开发人员编写,流程图由产品经理编写):
    ①(流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。
    ②活动图能够表示并发活动的情形,而流程图不行。
    ③活动图是面向对象的,而流程图是面向过程的。

详解:

  • 软件工程(软件工程中的各种图一般用于以下三个阶段):

  • 需求分析阶段(产品经理编写):
    用例图(思维导图):用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。是系统的蓝图。
    在这里插入图片描述
    流程图:以特定的图形符号加上说明,表示算法的图,称为流程图
    在这里插入图片描述

  • 概要设计阶段(开发人员编写):
    类图(ER图):类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。在这里插入图片描述
    系统架构图:系统架构图是为了抽象的表示软件系统的整体系统框架、各个组件之间的相互关系,以及软件系统的演进方向的视图。通常来说,我们绘制架构图的目的就是为了解决团队之间的沟通障碍,通过架构图很便捷的其他成员进行沟通,减少歧义,最终让整个团队成员能够达成共识。。系统架构图最经典的是4+1视图,分别为场景视图、逻辑视图、物理视图、处理流程视图和开发视图。
    在这里插入图片描述

  • 详细设计阶段(开发人员编写):
    时序图:(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。在这里插入图片描述
    状态图:状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。
    在这里插入图片描述
    活动图:活动图(activity diagram,动态图)是阐明了业务用例实现的工作流程。
    在这里插入图片描述

总结:

  • 活动图和时序图到底有什么区别啊?
    ①二者都是为了描述系统的动态变化,侧重点不同。通俗点说活动图侧重的是整个活动的流程次序,也就是我们说的流程图(一个流程的确是活动的集合)。而时序图(也叫顺序图)体现的是对象之间的消息的次序关系,看出来了,时序图反映的重点是消息的时序,而活动图侧重的是整个流程。
    ②设计的时候,为了说明问题,可能二者都需要。很多时候画出来相似,但是反映和表达的意思不一致。
    ③时序图主要强调时间的顺序,活动图主要强调空间上类的交互。

  • 泳道图,一种UML活动图,能够清晰体现出某个动作发生在哪个部门。泳道图在纵向上是部门职能,横向是岗位(有时候横向上不区分岗位)。绘图元素与传统流程图类似,但在业务流程主体上,通过泳道(纵向条)区分出执行主体,即部门和岗位来。因此活动图可以分为:
    无泳道的活动图:单个角色的业务流程
    在这里插入图片描述
    有泳道的活动图:多个角色的业务流程
    在这里插入图片描述

  • uml图有很多个,它就像一个工具箱,我们开发系统并不需要用上全部的工具,这里只要介绍最重要的几个,使用这几个完全可以描述整个软件开发过程,用以下那几个图,足够描述一个软件系统了,其他不学也无所谓。
    ①用例图:可以用于描述组织的业务用例,也可以用于描述系统的用例。
    时序图/活动图:可以用于描述组织业务的实现过程。也可以用于描述系统用例的实现过程。
    ③状态机图:用于描述系统类的状态,以及状态之间的转移
    ④类图:用于描述系统的组成以及他们之间的关系。
    系统架构图(系统部署图+系统组件图):系统架构图是为了抽象的表示软件系统的整体系统框架、各个组件之间的相互关系,以及软件系统的演进方向的视图。
    <1>系统组件图:用于描述系统组件的划分。
    <2>系统部署图:用于描述系统组件的部署结构。

  • 网络拓扑图与系统架构图:对于it系统,结构图和系统图基本相似,显示了系统各个组件之间的关系。拓扑图主要针对组件分布在不同地理位置的系统,表示这些组件之间的几何连接关系,如星形?圆形的?树形的?

软件开发总结

简述:

  • 链接: 面向对象分析、设计、实现
  • 真正的对象:
    ①我所理解的真正的对象就是现实生活中客观存在或不存在的真正的对象。这个对象有一个明显的特征就是它具有非常多的状态特征和行为特征。比如一个人是一个对象,他在一生中会经历无数个交互场景,在这个过程中,每个人的行为特征会不断增多,大部分行为是通过后天学习得到的,只有少数行为是先天就具有的;另一方面,对于状态特征也是在时不时的变化,比如你的身高、体重,等等。最后,人因为会参与到不同的交互场景,会导致和他关联的各种关联信息也会不断增多,比如你去上大学,老师给你一张借书卡,此时你就拥有了一张借书卡,可以理解为你多了一个关联信息;哪一天你去参加英语四级考试,考了70分,然后你拥有了一本四级考试证书,上面写这成绩为70分,此时你也同样多了一个关联信息,就是一本英语四级考试证书;
    ②这里我想表达的主要观点是:现实生活中的对象:
    1)兼具各种场景下的所有状态和行为特征;
    2)固有状态会时不时的变化,通过参与交互场景还会增加一些关联信息;
    3)行为会不断增多,一般是通过学习得到;因此,我们从中可以知道,现实生活中的对象肯定不是我们设计软件时候的对象,因为它是如此的复杂,包含了或关联了非常多的状态特征和行为特征;
  • 面向对象分析阶段时的对象:
    ①既然是分析阶段,那我们就不要过多的考虑任何设计阶段的思想。我觉得在分析阶段,我们在分析对象时主要考虑两个方面:
    1)对象的状态特征变化规律;
    2)对象的行为特征变化规律;
    ②分析阶段,我们往往从某个场景出发,分析该场景中有哪些“对象”,此时的“对象”之所以加双引号是因为它不是真正的对象,而是真正的对象的某个方面,我们在某个场景下只关心对象的某个方面;我觉得分析阶段的对象和现实生活中的对象应该是一致的,或者至少是逻辑上是一致的。也就是说,在面向对象的分析阶段,我们应该将现实生活中我们所理解的对象的一切特征在脑子里描述清楚。比如同一个人,它在不同的场景下(一个场景代表了一个考虑问题的边界)会参与不同的交互活动。 这句话体现的含义是:
    1)同一个对象会参与不同的场景,行驶各种交互行为;
    2)同一个对象我们会根据我们不同的认识角度,对同一个对象的关注角度的不同,将其理解为不同的类型或角色;比如一个人,在家里可能是父亲,在公司可能是职员,在比赛场上可能是运动员。但无论我们给这个人授予什么样的称谓,这个人始终是同一个对象。所以,在面向对象的分析阶段,对象给我们的感觉是它在不停的变换其类型或角色;上面在谈到什么是真正的现实生活中的对象时提到,对象在参与到交互活动后会多出一些关联信息,这些信息是属于谁的呢?答案是:这些信息属于扮演了某个角色的对象的;之所以强调扮演了某个角色,是因为想让大家明确对象一定是在扮演某个角色参与到某个场景交互活动后才具有那些关联信息的。
    ③总结:我觉得在面向对象的分析阶段,我们分析的要点是:
    1)站在现实生活中真正的对象的角度去理解对象的状态特征和行为特征的变化规律;
    2)理解真正的对象和对象的某一个方面(即我们所关心的“对象”),
    3)理解同一个对象会扮演不同角色参与到不同交互场景;
    4)理解对象的关联信息如何产生,关联信息是属于谁的;
  • 面向对象设计阶段时的对象:
    ①首先说一下,目前的编程语言实现对象时,是以哪些方式让创建对象的。
    1)C#等基于类型的静态语言,类型规定了对象可以具有的状态特征和行为特征,对象的一切状态和行为都是由其所属的类型确定的;这又一个很明显的好处时,我们在任何时候都知道对象的类型或接口,从而就能明确知道其数据结构,也就知道对象的状态,从而可以方便的持久化对象的状态或者重建对象;但这种为对象带来状态和行为特征的设计思路同时也有一个缺点就是对象的类型或其表现出来的接口无法更改。这点是违背“真正的对象”或者“分析阶段的对象”的特征的;
    2)javascript等弱类型的动态语言,这种语言认为对象无类型,对象的状态和行为不需要从类型为模板获取,状态和行为可以随时附加到某个对象上。这种思路其实很好,因为很符合上面提到的真正的对象的状态特征与行为特征的变化规律。但是这种语言也有一些致命的缺点:
    1)由于没有类型,导致无法在使用时明确知道其具有哪些状态和行为,这会增加编程出错的可能性,只有在运行阶段在会检测到访问了不存在的状态或行为;
    2)同样是弱类型的原因,对象无法被持久化,因为不知道要持久化哪些状态,同样,更不用说重建对象了;所以,基于这两个缺点,我觉得动态语言不适合在服务器端大量使用去做工程实现业务逻辑,而在一些不需要持久化对象状态的客户端环境,只在内存中处理逻辑的情况下使用这种语言比较适合;
    ②当我们在设计软件时,如果是用C#等静态语言、基于类和接口的语言去设计对象时,该如何设计呢?在设计阶段,我觉得目标就是把分析阶段得到的对象用尽量平滑的方式转换为设计;需要把握的要点是:
    1)从一个基本的类创建出对象;
    2)用尽量平滑的设计思路去支持一个对象表现出不同类型或角色的特点;举个例子吧:
    3)xuehua这个对象首先是一个人,所以从Person这个基本类型中获取基本的状态特征和行为特征(如吃饭);然后当xuehua去教书时,他会扮演教师的角色,扮演之后他就是一个教师了,然后他就具有了教师这个角色所赋予的行为(教书)了。上面的代码看上去和真正的对象在现实生活中的变化规律类似,非常平滑;这样做有几个好处:1)强类型;2)对象交互模型与现实生活中的交互模型完全一致,所以代码非常容易懂,可读性强;3)对象不会随着参与交互场景的增多而变得臃肿和复杂,因为由于引入了角色的概念,我们将交互模型实现为对象扮演某个角色参与交互活动的方式来设计,做到了对象动态被赋予身份,从而具有与该身份相关的状态特征和行为特征;4)对象参与交互场景后所关联的一些关联信息不会直接存放在对象上,而是放在了“扮演了某个角色的对象”上,在上面的例子中就是teacher对象;
var xuehua  =   new  Person();
xuehua.Eat();  // 吃饭
var teacher  =  xuehua.ActAs < ITeacher > (); // 扮演教师角色
teacher.Teach();  // 教书
  • 面向对象实现阶段时的对象:
    ①那么如何实现这样的设计呢?
    var teacher = xuehua.ActAs();
    ②其实很简单,可以类用装饰模式来实现,我们都知道,设计模式中的装饰模式可以动态给一个对象增加状态或行为。所以在实现阶段,我们可以设计一个Teacher类,大概设计如下:
    <1>teacher就是实现阶段的对象,而Teacher类则是实现阶段的对象的类型;可以看到Teacher类关联了一个Person对象,同时实现了ITeacher角色接口。所以ActAs,
    var teacher = xuehua.ActAs();
    <2>这个函数做的事情就是在内部创建一个Teacher类的实例,该实例对当前的Person对象有一个引用,然后返回。也许你会说,返回回来的teacher对象已经不是原来的xuehua对象了,而是一个新的对象,并且封装了xuehua这个对象;没错,所以说这是实现上的问题。我们在关注业务时,关心的不是当前对象的真正类型,而是关心对象的状态特征、行为特征,或者技术化一点来讲就是关心对象的交互模型,关心的是对象扮演什么角色在进行交互。
public   class  Teacher : ITeacher
{
     private  Person actor;

     public  Teacher(Person actor)
    {
         this .actor  =  actor;
    }

     public   void  Teach()
    {
         // do the teach operation.
    }
} 
项目管理-软件开发-软件开发过程简图.ppt
03-09
本资源摘要信息将对软件开发过程简图中的项目管理知识点进行详细的解释和总结。 项目管理 项目管理是指对项目的计划、组织、领导和控制,以实现项目的目标和要求。项目管理包括项目计划、项目组织、项目领导、项目...
软件开发实习总结.doc
11-30
软件开发流程是一个复杂的过程,需要程序员具备良好的团队精神、协作能力、良好的文档、良好的代码编写习惯、良好的需求理解能力和单元测试等多方面的能力。只有具备了这些能力,才能开发出高质量的软件产品。 软件...
软件开发流程
阳光岛主
06-16 1万+
一、 软件开发简介  软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合。软件分为系统软件和应用软件。   软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分 。   软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响二、
软件开发流程八个步骤
2301_77984481的博客
05-15 3713
软件开发流程通过以上核心环节完成了软件开发,接下来就是在软件开发达到客户需求之后,开发者将软件系统交予客户,并将软件安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等产物交付给客户,同时指导客户进行软件安装、以及安装技巧,提醒客户注意软件运行状况、环境、服务器及相关中间件的检测与注意事项,知道客户软件的实际操作方法、使用流程等等问题,实现合同规定任务。用户在接收开发商交付的软件开发结果,并进行实际操作、测试运行,实现满意结果之后,对开发出来的软件进行验收。
软件系统开发设计的基本流程
最新发布
JAVA领域优质创作者,基于分片网络查询方法专利发明者。
03-20 1267
经过年的工程实践软件系统开发流程演变有很多种,但是最基本的还是瀑布模型。但是由于近几年演变了很多种模型,现在很多公司的研发流程并不遵循瀑布模型。主要原因是无法满足市场竞争的需求。比如在哪某个节日需要敏捷上线活动等这样的场景。没法走完瀑布模型功能就要上线等。但是不管怎样,瀑布模型还是最经典的软件开发设计上线流程
开发流程总结
q136780964的博客
05-02 654
产品终于要推向市场了,总结一下开发流程。 技术总览 以C#为主,核心为Winform,部分插件用到Java,有一部分控件采用webbrowser+HTML+JS+CSS开发(复杂的控件用这种方式比Winform快),一部分用WPF(做炫酷的工具)。时间赶,什么方式快就用什么开发了。总的来说,除了UI、验收不用自己搞,其他的全部得自己上,真成全能程序员了。 主要流程 产品从无到
软件开发的概述
m0_70655343的博客
09-01 1004
(6). 敏捷开发模型:敏捷开发(Aglie)是一种以人为核心、迭代、循序渐进的开发方法,在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征,简单的来说,敏捷开发并不追求前期完美的设计、完美编码、而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本,然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。(5). 增量模型:增量模型也称渐增模型。他主要是针对开发目标模糊,用户与开发人员对项目都缺乏经验的情况,通过对原型的开发来说明用户的需求。
谈谈对软件开发过程的认识
Richard的专栏
06-10 8361
软件工程把整个软件开发过程大致分为需求分析、设计、编码、测试和维护等五个方面。只有每个方面都做好了,才有可能做成一个好的系统,这只是一个必要条件而非充分条件。
软件开发基本原则知识.pdf
03-02
"软件开发基本原则知识" 软件开发基本原则是软件开发项目的核心要素之一。它涵盖了软件开发的整个生命周期,从项目的策略和因素到开发的四维(人员、过程、产品和技术),每个要素都对软件开发的成功起着至关重要的...
软件工程知识点总结.doc
11-23
1. 瀑布模型:一种顺序的、逐步的、阶段性的软件开发模型,每个阶段都有明确的目标和输出,阶段之间有明确的依赖关系。 2. 快速原型模型:一种基于快速原型的软件开发模型,快速构建原型,以便早期了解用户的需求,...
软件开发-需求规格说明书模板
08-03
软件概要是软件开发-需求规格说明书模板的重要组成部分,它概括了软件的总体描述、软件设计约束及有关说明、使用者特点等方面的内容。软件概要为开发团队和项目经理提供了软件的总体概况,帮助他们更好地理解软件的...
产品开发流程
03-19
详尽的描述产品经理和其他部门配合完成从需求提出、头脑风暴、需求评审、产品原型、开发配合、测试上线等一整套的流程
软件生命周期的八个阶段
热门推荐
在路上的专栏
04-25 6万+
我们在软件的开发和维护过程中会遇到一系列严重的问题,比如软件开发的成本和进度估计的不准,用户对已经完成开发的软件不满意、用户需求变更、软件产品质量不好、软件难以维护、软件没有合适的文档资料、软件开发成本高昂等。如何开发软件,以满足对软件日益增长的需求?如何维护数量不断膨胀的已有软件?只要掌握了正确科学的软件开发流程,上面的问题就能很好的解决。软件开发主要分为以下几个阶段1、问题定义确定好要解决的问...
软件工程——软件计划(生存周期,可行性研究报告)、软件开发阶段(概要设计、详细设计)
一起加油吧~
06-04 8061
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档 目的是什么? 承上(需求)启下(开发)的一步。 根据需求,把代码开发阶段需要的东西,全部想好。 概要设计与详细设计从管理和技术点划分,如下图: 软件开发阶段过程 1.概要设计 2.详细设计 详细设计实际是概要设计的一个细化 软件设...
软件流程--开发流程规范
zc529739024的博客
04-12 7776
需求整理阶段 1、PRD、接口文档、数据库文档等按Sprint分开整理并同步到Confluence 2、前后端分离开发模式下,后端设计接口开发文档,同步到Confluence,同时提供mock接口 3、后端功能初步拆分后,由各开发自主评估工期,再由项目Leader评审;前端开发人员根据原型图评估工期;测试人员根据功能点及测试用例初稿评估测试工期 4、前后端根据工作量做工作分
设计模式(大大提高代码可维护性以及复用性)(持续更新)
图纸的博客
06-09 3848
- 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。 抽象工厂(AbstractFactory)模式:提供一个创建产品族的接...
软件工程里的UML序列图的概念和总结
weixin_34343308的博客
01-25 601
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!   软件工程的一般开发过程:愿景分析、业务建模,需求分析,健壮性设计,关键设计,最终设计,实现……   时序图也叫序列图(交互图),属于软件工程里的第二步——业务建模阶段里的图,业务建模要求我们把视角从系统转向组织,要站在客户的角度看问题,以达到清晰准确地“知彼”,术语就是从组织的角度来定位系统的价值,从而避免软件项目的失败,...
项目开发——【流程图】软件工程程序流程图详解《如何正确绘制项目开发流程图》
heart000_1
11-27 1万+
程序流程图详解 程序流程图详解 —、程予流程图基本控制结构二、程序流程图标准符号 -、程予流程图基本控制结构二、程序流程图标准符号 三、注意事项 三、注意事项 四、流程图示例五、在线流程图工具 四、流程图示例五、在线流程图工具
后端开发之通用说明及开发规范
Java__EE小白成长之路
10-25 817
什么是前后端开发; 后端开发要有哪些规范; 项目应该如何设计;
软件工程大学四年学习的知识
03-31
技能和经验可以概括为以下几个方面: 1. 编程语言和数据结构:学习多种编程语言,包括C、Java、Python等,掌握各种数据结构的基本原理和使用方法。 2. 软件设计与开发:掌握软件设计、开发和测试的流程和方法,能够使用各种工具和框架进行软件开发,如Eclipse、Visual Studio等。 3. 数据库管理:了解数据库的基本概念、原理和使用方法,掌握SQL语言的基本操作和数据库管理的技术。 4. 网络编程:掌握网络编程的基本概念和技术,包括TCP/IP协议、HTTP协议等,能够使用Socket等工具进行网络编程。 5. 操作系统和计算机组成原理:了解操作系统的基本原理和功能,包括进程管理、内存管理、文件系统等,掌握计算机组成原理的基本知识。 6. 软件工程项目管理:了解软件工程项目管理的基本概念和方法,掌握软件项目管理工具的使用,如JIRA、Redmine等。 7. 软件质量保证:了解软件质量保证的基本理论和方法,能够进行软件测试、调试和优化。 8. 数据分析与挖掘:了解数据分析和挖掘的基本概念和方法,掌握数据分析和挖掘工具的使用,如R语言、Python等。 9. 人工智能和机器学习:了解人工智能和机器学习的基本概念和方法,掌握人工智能和机器学习工具的使用,如TensorFlow、Keras等。 10. 项目实践经验:通过参与软件工程项目实践,掌握实际开发中的流程、技术和工具,积累实践经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

分类专栏

  • JavaWeb 10篇
  • JavaSE 20篇
  • 操作系统 5篇
  • JavaEE 9篇
  • Web应用 3篇
  • 微服务 5篇
  • Spring 5篇
  • 消息中间件 4篇
  • 持久层 16篇
  • 计算机网络 7篇
  • 编程 7篇
  • 构建与版本控制工具 6篇
  • 前端 21篇
  • Web总结 3篇
  • 设计模式 25篇
  • 云原生 3篇
  • 搜索引擎 3篇
  • Web流程 3篇
  • 数据结构与计算机体系结构 4篇
  • 安全框架 3篇
  • JVM 14篇

最新评论

  • 软件开发角色知识概括

    ling0707007: 国内Java还是主流表情包

  • 软件开发流程知识概括

    R瑞: 学习到了思路,感谢作者分享

  • AngularJS知识概括

    「已注销」: 格式好乱

  • 操作系统进程知识概括

    骑着蜗牛赶火车: 死锁的处理策略,老师还讲过鸵鸟算法,就是置之不理表情包

  • Linux知识概括

    CSDN-Ada助手: 云原生时代,YAML配置到处都是,是否可以说运维也是YAML程序员?

大家在看

  • Spring事务管理、SpringAop 339
  • 安装HTTPS证书后,网站安全性会有哪些提升?
  • 10分钟部署一个个人博客 894
  • 玄机——第一章 应急响应- Linux入侵排查 wp 1762
  • 企业四要素核验-公司四要素核验-企业四要素核验接口

最新文章

  • Kafka知识概况
  • 腾讯系_微信,公众号,小程序,企业微信开发知识概括
  • 嵌入式数据库知识概括
2023年2篇
2022年16篇
2021年45篇
2020年113篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网威海宝宝起名间谍的战争起名带语男孩创意起名设计惊蛰诗句姓薛的男生宝宝起名护国龙婿式微原文楚风楚芸小说叫什么名字给套餐起名字ap大嘴狗年女孩起名姓刘我的贴身校花txt龙华盛世江南孙氏男宝宝起名字卫浴店起什么名字大全力克通辽哪里起名好origin下载菲起名的寓意起名字改起名字苹果7屏幕尺寸今晚报狮子王下载2021女宝宝起名二个字装饰公司名字起名大全网店起名字传说中勇者的传说漫画好名字起名网张姓名字大全女孩起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化