软件开发流程概要(笔记)

简介:


一、Feature List(功能列表) 和Use Case Diagrams(用例图)

需求分析的第一步要么是确定功能列表(Feature List),要么是得出用例图(Use Case Diagrams)。

不断的和用户交流,界定清楚各个主要的Feature和主要的用例,尽可能的准确界定系统需要做到的和实现的功能。

不必追求一次得到完整的列表或用例,随着迭代次数的增加,自然会得到完善的。这样你就清楚系统需要做些什么以及用户会如何使用这个系统。

二、Break Up the Problem(瓦解问题

知道要做些什么功能后,就把这些功能按照相互关系进行分类,把系统分成几个模块。

尽量使模块之间的交互减少,接口清晰(应用像封装,单责任等OO的设计原则)。

一个规模比较大的系统,如果有科学的模块划分,能很大程度上提高并行开发的效率,减少由于某个模块交付延期对于其他模块的影响。

三、Requirement(需求

开始某个功能或用例开发之前,需要对问题有准确的理解,然后再次和用户交流,进行针对某个细化用例或功能的分解。第一次迭代时,功能点或用例的选取就要找最根本的,最核心的,被别的部分依赖最多的一个来开始进行开发的迭代。

这里就有两种开发模式:功能驱动(Feature Driven)或是用例驱动(Use Case Driven)。

功能驱动开发颗粒度比用例驱动要小一些。选择哪一种路径决定下一步得到什么。

选择用例驱动就要写用例(Use Case),用例有很多种表现形式:用例图、自然语言描述、步骤分解等。最终都要把主要路径,其他路径都能包括进来,也就是各种场景(Scenario)都要包括。

用例的用处是为了和用户进行交流,以用户熟悉的方式,确认我们对于需求的理解是正确的,完整的。

四、Domain Analysis(领域分析) 和Design(设计)

领域分析:是指把用例中名词和最终系统中的实体类进行映射,动词和方法进行映射。

当然这种映射没有一一对应的关系,需要根据具体情况进行增删改。最终把这些类和方法组装成类图(Class Diagram)。类图是软件开发中一个关键的中间产品,能够让其他关心你系统的程序员快速的对系统架构有整体的了解。

系统设计:也就是参照实际情况和一些设计原则、设计模式,对类图上的各个类进行分解、组合、抽象、细化等操作。一个结构合理,功能清晰,兼顾维护性和扩展性的类图对于后续开发工作的贡献是不言而喻的。

五、Implementation(实现)

实现看起来只是参照类图和其他的现有代码,进行一些类似堆叠代码的工作,其实却远不止如此。第一、需要有良好的编码风格,使代码具有很好的可读性。

第二、要有足够的单元测试保证(现在测试驱动(Test Driven)已经非常受重视)。

第三、要考虑代码重用,能够最大限度的采用已有方法或算法进行功能的实现。

第四、要有随时重构(Refactoring)的意识,以保证代码能够在不断增长的过程中保持简洁、高效、可读、可维护、可扩展、可重用。

第五、对于OO的基本规则,要有切合实际的应用(比如:OCP,SRP,DRY等这些规则)。

六、Iteration(迭代)

一般是在实现完一个功能或是用例之后,再选取另一个功能或用例应用前几个步骤进行迭代的开发,直到所有的功能或用例全部实现。

其中可能会不时的对系统的功能列表、用例图等进行修改和更新。也就需要和客户有通畅清晰的沟通,保证所开发的系统就是用户所想要的。

七、Delivery(交付)

有了以上这些步骤的保证,最终就可以把软件进行交付。



本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2008/04/06/1138863.html,如需转载请自行联系原作者

相关文章
|
2月前
|
机器人 Java 测试技术
【软件测试概要】
【软件测试概要】
|
架构师
软件架构师的12项修炼——思维导图
脑图 图片2M多,加载比较慢 软件架构师的12项修炼 软件架构师的12项修炼——关系技能修炼(1)软件架构师的12项修炼——关系技能修炼(2) 个人介绍: 高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。
2040 0
|
2月前
从容应对需求变更:产品经理的实战指南
产品经理小米分享如何控制产品需求变更:理解变更原因(市场变化、用户反馈、技术突破、竞争压力),建立变更流程,保证沟通协调,保持敏捷思维。通过这些方法,有效应对需求变更的挑战。关注小米微信公众号“软件求生”,一起成长!
24 1
|
2月前
|
敏捷开发 安全 BI
软件开发项目管理秘籍:策略解析与实战指南
在敏捷开发背景下,软件项目管理需精准聚焦。关键策略包括:设定明确的项目目标,确保团队与客户愿景一致;根据目标评估任务,避免孤立思考导致偏离轨道;理解并应用敏捷开发方法,强调灵活响应与持续改进;定期评估各阶段及可交付成果,确保项目高效推进;同时保持开放的沟通环境,优化资源分配。Zoho Projects项目管理软件提供实践经验,支持软件开发项目成功实施。
78 2
|
JSON 缓存 运维
上篇:运维人员不得不看的K8S API入门实战,呕心沥血整理得又臭又长,有人看吗?
上篇:运维人员不得不看的K8S API入门实战,呕心沥血整理得又臭又长,有人看吗?
125 0
|
监控 安全 网络协议
架构:第一章:项目架构的演变历史
架构:第一章:项目架构的演变历史
122 0
架构:第一章:项目架构的演变历史
|
项目管理 敏捷开发 Cloud Native
带你读《软件项目管理案例教程(第4版)》之一:软件项目管理概述
本书以案例形式讲述软件项目管理过程,借助路线图讲述项目管理的理论、方法及技巧,覆盖项目管理十大知识域的相关内容,重点介绍软件这个特殊领域的项目管理。本书综合了多个学科领域,包括范围计划、成本计划、进度计划、质量计划、配置管理计划、风险计划、团队计划、干系人计划、沟通计划、合同计划等的制定,以及项目实施过程中如何对项目计划进行跟踪控制。该书取材新颖,注重理论与实际的结合,通过案例分析帮助读者消化和理解所学内容,既适合作为高等院校计算机、软件及相关专业高年级本科生和研究生的教材,也适合作为广大软件技术人员和项目经理培训的教材,还可作为软件开发项目管理人员的参考书。
|
前端开发 PHP Android开发
ThinkSNS+产品技术概要
ThinkSNS-plus 技术概要 一、PC端(web端)服务端框架:Laravel 5.7+前端框架:jQuery + Bootstrap 3管理后台: html + jquery + bootstrap + vue前端开发语言:HTML / CSS / JavaScript (ES5)开发环境:PHP7.
955 0
|
开发者
云栖社区工具使用攻略,不断更新,欢迎反馈
社区工具越来越多,写份攻略帮助大家更快用起来。
4022 0
|
JavaScript 前端开发 数据格式