软件过程中的概要设计
来源:互联网 发布:淘宝 宝贝 排名 编辑:程序博客网 时间:2024/06/05 16:28
软件过程中的概要设计
——兼论需求设计及缺陷分析
作为开博第一篇,也是在公司从事软件开发和项目管理近三年的体会。其中大部分内容是公司软件开发团队领导的经验和理念,我只是做一些整理和总结。希望能够对初涉开发的人员有一些帮助。
概要设计是软件过程中一个重要的阶段。它实现了产品团队的需求开发成果到软件团队的软件架构的转换,并作为详细设计的纲领。如果把概要设计完成好,可以使产品在项目进度和项目质量上得到总体的把控。概要设计之前,需要开发团队和产品团队对产品的需求做深层次的沟通及开发,例如,把大的需求细化,对具体的需求做抽象。期间,除了功能性的需求外,非功能性的需求也要特别关注。实践证明,非功能性需求实现的好与坏,往往决定了产品的最终成功与失败。非功能性需求里一个重要的部分就是对异常的处理。实际产品应用过程中往往会遇到各种复杂的情景,只有能够应对各种情景下的异常,才能真正满足客户的需求,并减少维护成本,提高产品的竞争力。尽管我们无法保证需求开发之初就全面考虑到各种情况下的异常,但是我们可以在之后的设计,开发,测试,甚至运维中不断的补充并迭代,这样可以逐步逼近异常情景的全覆盖,同时为下一次的开发积累经验。
概要设计包括体系结结构,通信协议,序列图及其消息实例,尤其要包括异常情况。
首先需要确定软件的静态结构。包括软件架构,主要模块及其层次关系。
核心数据结构。 类图关系。各功能模块的文字描述。用到的文件的内容及格式,例如配置文件,日志等。对外的接口,底层通信接口,内部接口。
其次是确定动态结构。包括进程/线程模型和动态流程。
启动。业务运行。不同场景下的业务运行流程,尤其是异常场景。退出。序列图。状态机。
再次是锁。
多线程设计中最令人头痛的一个就是锁的问题。如果在软件过程的后期来解决由锁引起的低性能,死锁,崩溃等问题,成本会相当高。要在静态结构和动态结构中标注锁的位置。
实际应用中,概要设计的以上三个过程是迭代进行的。经过两到三次的迭代,基本可以满足概要设计的要求,进入详细设计阶段。
缺陷分析。在整个软件过程的每个阶段都有能发现缺陷,而缺陷发现的越晚,修复的成本也越高,且成指数增长。缺陷分析是软件过程中的一个质量保证手段,其成果也能为下一次开发中降低缺陷率提供经验和指导。缺陷分析要包含三个部分:第一,该缺陷是在软件过程的哪个环节引入的;第二,该缺陷是在哪个环节被发现的;第三,该缺陷应该在哪个环节被发现。当然,还要跟踪该缺陷是否被关闭,在哪个环节被关闭的。
- 软件过程中的概要设计
- 软件概要设计的过程与任务
- 软件概要设计的过程和内容
- 软件概要设计的过程与任务
- 软件项目“概要设计”
- 软件概要设计
- 软件概要设计
- 软件概要设计
- 软件概要设计
- 论用例图在软件需求和概要设计中的重要
- 软件开发过程概要(需求分析、系统设计、开发过程)
- 软件概要子系统设计-1
- 软件文档编写:概要设计
- 软件开发平台概要设计
- 软件项目概要设计说明书
- 如何写软件概要设计?
- 软件工程4-软件概要设计
- 如何写软件概要设计?
- 发现 IOS 如UIButton 事件处理函数参数和不带参数写法不一样
- 截取字符串长度 不算html代码的长度
- 【文件管理】文件的写write()
- html CSS+DIV
- 【登录】身份认证(用户名密码/accountToken)->用户授权(authToken)->换服务Token(serviceToken)
- 软件过程中的概要设计
- wifi密码破解软件,谨慎使用!
- 关于IPV4网络地址的一些问题
- x264 - 4x4 macroblock layout
- 微软收购为了集成好技术
- 背包问题——动态规划
- xcopy Windows局域网备份
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项 .
- Android系统启动过程