软件开发流程

软件开发流程简介

青春壹個敷衍的年華 提交于 2020-03-12 08:11:44
文章目录 1 软件开发流程简介 1.1 软件开发流程概念 1.2 常见软件开发流程 2 常见软件开发模型 2.1 即兴模型(Build-and-Fix Model) 2.2 瀑布模型(Waterfall Model) 2.3 增量模型(Incremental Model) 2.4 螺旋模型(Spiral Model) 2.5 敏捷模型(Agile Modeling) 3 项目开发流程选择示例 1 软件开发流程简介 1.1 软件开发流程概念 什么是软件开发流程? 通过一系列步骤保证软件产品的顺序完成。 软件产品在生命周期内的管理学方法。 软件开发流程的本质: 开发流程与具体技术无关。 开发流程是开发团队必须遵守的规则。 1.2 常见软件开发流程 常见软件开发流程如下: 即兴模型(Build-and-Fix Model) 瀑布模型(Waterfall Model) 增量模型(Incremental Model) 螺旋模型(Spiral Model) 敏捷模型(Agile Modeling) 2 常见软件开发模型 2.1 即兴模型(Build-and-Fix Model) 特征如下: 与最终用户交流后立即开始进行开发。 没有需求分析和需求发掘的过程。 没有整体设计以及规划的过程。 没有相关软件文档,维护性差。 2.2 瀑布模型(Waterfall Model) 特征如下:

安卓工程化开发笔记(1)

谁都会走 提交于 2020-03-12 06:46:26
2018.3.8日 一、什么是软件工程? 1、软件工程 是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。 2、软件工程包括下列领域 软件需求分析、软件设计、软件构建、软件测试和软件维护。 3、软件工程和下列的学科相关(了解) 计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。 二、软件工程和软件开发流程? 人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。 软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件 的质量、 用户满意度、可靠性和软件的可维护性。 三、软件的特性 复杂性、不可见性、易变性、服从性、非连续性 程序=数据结构+算法 program=data structure+algorithm 软件=程序+软件工程 software=program+software engineering 软件公司=软件+商业模式 software company=software+business model 来源: https://www.cnblogs.com/mobile1623/p/8538714.html

第一课 软件工程

感情迁移 提交于 2020-03-12 06:46:17
软件工程 是把系统的、有序的、可量化的方法应用到软件的开发,运营和维护上的过程。 软件工程包括下列领域 软件需求分析、软件设计、软件构建、软件测试和软件维护。 软件工程和下列的学科相关 计算机科学、计算机工程、管理学、数学、项目管理、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。 软件工程和软件开发流程 人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。 软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件可维护性。 Program vs.Software Software=Program+Software Engineering Software Company=Software+Business Model 刷课机/换课机 Is it program,or a software? 来源: https://www.cnblogs.com/lsdxxf/p/8554270.html

[转]程序员必读书单(转)

拈花ヽ惹草 提交于 2020-03-09 16:39:14
作者: Lucida 微博: @peng_gong 豆瓣: @figure9 原文链接: http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的 程序设计 能力: 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列); 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络); 熟悉至少两门以上编程语言(例如C++,Java,C#,和Python); 专业的 软件开发 素养: 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码; 把握客户需求,按时交付客户所需要的软件产品; 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。 和其它能力一样, 程序设计 能力和 软件开发 素养源自项目经验和书本知识

软件开发模型

点点圈 提交于 2020-02-29 17:43:52
常见的软件开发模型: (1)瀑布模型:是最早使用的软件生存周期模型之一。 瀑布模型的主要缺点:软件需求分析的准确性很难确定,甚至是不可能和不现实的;用户和软件项目负责人需要相当长的时间才能得到初始版本,此时如果改变需求将会带来巨大损失。因此该模型在应用上有较大的局限性。 (2)原型模型:通过快速开发一个软件的原型之后征求用户的合理化意见对原型进行修改完善,确认软件系统的需求并达到一致的理解,进一步开发实际系统。 (3)螺旋模型:在快速原型基础上扩展而成 这种模型把整个软件开发流程分为多个阶段,每一个阶段都是由4部分构成:目标设定、风险分析、开发和有效性验证和评审。该模型支持大型软件的开发,适用于面向规格说明、面向过程和面向对象的软件开发方法。 (4)基于可重用构件的模型 构件的重用提高了软件的可靠性和易维护性,程序在修改时产生较少的副作用,因此基于可重用构件的软件过程模型逐渐被广泛使用。 在一个系统开发过程中,一旦标识出候选构件,则可以在构件库中检索该构件,确认这些构件是否存在,如果构件已存在,就可以从构件库中取出重用。如果一个候选件在构架库中并不存在,则进行新构件的开发。新构件开发成功后,一方面用它来构造目标系统,另一方面可以把它存入构件库中。软件目标系统是基于可重用构件的一种集成,将大大提高软件的可靠性和生产率。 (5)基于面向对象的模型 构件重用是面向对象技术的重要优势之一

软件开发需要的十三类文档

眉间皱痕 提交于 2020-02-28 13:48:41
  在软件项目开发过程中,应该按软件开发要求撰写十三类文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性!   1、可行性分析报告   说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。   2、项目开发计划   为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。   3、软件需求说明书(软件规格说明书)   对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。   4、概要设计说明书   该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。   5、详细设计说明书   着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。   6、用户操作手册   本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。   7

软件项目成功的要素

蹲街弑〆低调 提交于 2020-02-27 04:40:31
曾经有个笑话,说三个软件高级人材等待上帝安排工作,一个说自己擅长抽象思维,上帝说那就做系统分析师吧;一个说自己工作非常细心,上帝说那就做QA;最后一个说,我实在没有更多的才能,那就做项目经理吧。有句项目管理名言则是这个笑话的最好解释:对项目经理的知识要求是要有1英里宽,7英寸深。也就是说,各方面的综合能力是项目经理的首要技能。 项目管理引入中国好多年了,除了国外的PMP、IPMP认证体系,现在更是将之引入高等学位教育。除了最先应用项目管理的建筑行业,现在各行各业都非常重视行业内的项目管理,这些足以可以看到项目管理的蓬勃发展。但是软件项目失败案例还是比比皆是的今天,如何将项目管理与新理论和技术层出不穷的软件产业双剑合璧?项目管理理论是欧美国家伴随着生产管理起步的,虽然方法论是通用的,但是如何在软件开发中产生更大效益,需要更多的业界项目经理以及高层思索和总结。 一个成功的建筑行业项目经理也会是一个合格的IT项目经理吗?项目管理有之一个名言:一个成功的建筑行业项目经理也会是一个合格的IT项目经理。在欧美国家是适用的,这样跨行业的例子也非常多。但据我了解在大陆这样的例子还非常鲜见。尤其软件开发行业,就更没这种先例了,为什么在欧美或者印度模式中,都是行得通,在中国不行呢?欧美或者印度模式的项目经理负责制定开发计划、协调、以及填写各种项目输出表格或模版就够了

软件项目成功的要素

喜欢而已 提交于 2020-02-27 04:32:48
曾经有个笑话,说三个软件高级人材等待上帝安排工作,一个说自己擅长抽象思维,上帝说那就做系统分析师吧;一个说自己工作非常细心,上帝说那就做QA;最后一个说,我实在没有更多的才能,那就做项目经理吧。有句项目管理名言则是这个笑话的最好解释:对项目经理的知识要求是要有1英里宽,7英寸深。也就是说,各方面的综合能力是项目经理的首要技能。 项目管理引入中国好多年了,除了国外的PMP、IPMP认证体系,现在更是将之引入高等学位教育。除了最先应用项目管理的建筑行业,现在各行各业都非常重视行业内的项目管理,这些足以可以看到项目管理的蓬勃发展。但是软件项目失败案例还是比比皆是的今天,如何将项目管理与新理论和技术层出不穷的软件产业双剑合璧?项目管理理论是欧美国家伴随着生产管理起步的,虽然方法论是通用的,但是如何在软件开发中产生更大效益,需要更多的业界项目经理以及高层思索和总结。 一个成功的建筑行业项目经理也会是一个合格的IT项目经理吗?项目管理有之一个名言:一个成功的建筑行业项目经理也会是一个合格的IT项目经理。在欧美国家是适用的,这样跨行业的例子也非常多。但据我了解在大陆这样的例子还非常鲜见。尤其软件开发行业,就更没这种先例了,为什么在欧美或者印度模式中,都是行得通,在中国不行呢?欧美或者印度模式的项目经理负责制定开发计划、协调、以及填写各种项目输出表格或模版就够了

软件开发中会遇到的几种实用图例

▼魔方 西西 提交于 2020-02-26 05:05:09
一、背景 大家应该在从事软件开发领域工作时间有一段时间之后,就开始有画图的意识,不管是懵懂的学别人还是想更好的让其他人理解自己的一个观点。所谓“一图胜千言”,我们身处于软件开发这个水很深且要求精确的复杂领域里,要想把事情做好,最基本的是要把事情想明白,其次还要让相关的人能够明白你要说的东西,进行协作。 特别对于一位架构师来说,能否画得一手好图尤其重要,因为相关的干系人数较多,要让不同领域的人能够达成一个统一的认识,是一件不太容易但也是必须要做好的事情。 二、图为了解决什么问题 软件开发涉及的流程是:需求 --> 开发 --> 测试 --> 发布上线。 作图本身是个设计的工作,是个前期工作。那么从软件开发的整个生命周期来说,用到的图的地方是在前期的需求、开发阶段较多。在软件开发这个非常抽象的领域,只要涉及到多人协作,那么通过文字来进行交流叙述是非常晦涩难懂的,需要沟通好几遍才能理解达成一致也是比较常见的情况。那么我们画图,就是为了把不适合用言语表述的内容通过作图的方式呈现出来,让相关协作者有一个共同的具象的参照物。这个参照物可以有它的额外价值,是对软件长期价值的延伸,一份一致、清晰的设计图,可以给后续的软件迭代提供非常有帮助的决策依据。当然保证设计图与系统的一致本身也是件费精力的事情。 三、不同流程中适合运用的图 用例图 用例图是UML交互图中的一种,是指由参与者(Actor)、用例

一套完整的软件开发流程是怎样的?

十年热恋 提交于 2020-02-26 02:31:57
做什么事都需要一个流程,软件开发也不例外。 那么,一个软件从无到有到底是怎么开发的?一个软件产品的结果为什么是这样?为什么开发的速度不能再快一点。为什么程序员大多秃顶?他们有那么忙吗?完整的软件开发流程是怎样的? 项目启动 1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。 2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。 3、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。 需求阶段 1、清晰认识项目是为了解决什么用户痛点,行业需求? 2、产品经理面向整个团队,进行需求的讲解。 3、分析要解决这些痛点或者需求的过程中需要通过哪些有效的功能布局去实施,逐一将核心功能列举并适当完善一下,通过文字或图文的方式描述清楚。 4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。 设计阶段 1、原型图经过反复推敲修正后,UI 设计师会进行UI界面相关的配色设计、功能具象化处理、交互设计、以及各种机型、系统的适配。UI设计师经过多次与项目经理沟通修改后,最终到定稿的设计图。 2、绝大部分APP项目都会有相应的管理后台,虽然后台是用户无法接触到的,但是与APP的功能是对照的