软件需求和软件设计方法
来源:互联网 发布:犀牛设计软件视频教程 编辑:程序博客网 时间:2024/04/28 08:08
目 录
1原则 4
2目的 4
3方案概述 4
4软件技术序列的发展路线 5
5方案概述 6
5.1软件需求工序化 6
5.2设计工序化 6
6软件需求工序化详述 7
6.1确定软件需求的含义 7
1 原则
软件生产工序化不是理论性的研究,而是各种理论的应用,这些理论可能包括计算机原理、软件开发模型、软件开发模式等。理论讲求全面,而实践讲求有效性。因此在进行工序化时,大家应该放弃概念之争①注,博采众家之长( 如何博采众家之长:在描述软件工序化时,会特别突出哪类是核心问题,如何解决某类问题。这需要大量理论的支持,但使用时可能仅使用核心理论 ),只为识别出有效的操作步骤,从而保证软件质量。
2 目的
软件的构建者往往有着不同的学习和工作经历,这些经历都是宝贵的财富,然而不同的经历会对软件的生产过程和生产方式产生不同的理解。本文重点是阐述一种机制,这种能将开发软件经验逐渐积累起来,用来规范和引导不同经历的人开发出同样品质的软件。这种机制以工序化的思想为依托,逐步完成软件生产各步骤的工序化。现阶段主要涉及软件需求、设计的工序化。
3 方案概述
---------创新源于传统
历史的车轮在不断前行,制造方式也从手工变为机械化,从而迎来了工业化。工业化的本质是生产的工序化,将某类产品工序化可以保证产品质量,从而达到量产的目的。
借鉴工业化的思想,将工序化的思想应用到软件生产中,称之为软件生产的工序化。软件生产的各个阶段都有相应的严格的方法,这种方法指导在软件生产过程中首先做什么,然后做什么,如何评价已完成的工作的质量。即为什么做、怎么做、如何评价。
通过工序化方法保持软件质量,使开发的软件的质量在一定的水平线上,即要么开发的软件质量都差,要么都好。当发现更好的方法时需要积累好的方法,发现软件质量差时可以首先改进某些工序 ,使下次再进行软件生产时达到更高的水平。伴随着生产的软件数量和种类不断增加,不断完善这种方法。
4 软件技术序列的发展路线
技术序列需要有层次性,这种层次性为每个人提升自己的能力设立了目标,也为技术积累和内部组织提供一组解决方案,使整个开发集体逐渐成为一个团队。
个人清晰的提升目标,为个人工作建立了良好的基础,通过一步一步的训练逐步提高,为设计更好的系统打下基础。
技术积累需要有明确的方向,需要知道积累哪些技术、如何积累技术,明确的技术层次为技术积累建立了方向。
内部组织也将在技术积累中不断完善,在技术的越高层次,需要承担更多的任务和责任,从而建立一套基于责任的内部组织方式。
图1中体现了在不同技术层次的上面临的困惑,解决这些困惑也就实现了一步步的技术积累。一个优秀的软件设计人员,需要具备图1中的各种能力,包括编码能力、独立模块设计能力、软件架构识别能力。之所以需要编码能力是因为,虽然软件的需求基本与开发语言无关、软件的设计中高层次也大部分与开发语言无关,但是设计的中低层次与开发语言有很大的关系,不同的语言实现同一种设计代码往往有很大差别。
5 方案概述
在进行软件生产工序化时,首先需要明确软件的生存周期,按照软件的生存周期划分工序。软件生存周期可分为:需求阶段、设计阶段、编码阶段、测试阶段、维护阶段,同时还有为之服务的软件开发计划制定。上面提到的各个工序都需要确定具体步骤以及各个步骤中具体的操作手段。现阶段先在需求和设计方面实现工序化。
任何的工序化都不是一个人能够完成的,需要团队共同努力,需要大家共同分享经验。分享经验时以专题为引导,比如将设计分成何种步骤,希望通过一个又一个专题,使大家学到和分享更多的经验。
你有一个思想,我有一个思想,大家交换每人都有两个思想。
5.1 软件需求工序化
将需求获取分为以下工序:
1:确定软件需求的含义。
2:界定软件的需求边界。
3:选取软件需求描述方法。
5.2 设计工序化
将设计分为以下工序:
1:明确设计对象。
2:明确什么是软件功能。
3:明确软件架构的含义、设计的重点及其表现方式。
2 ,3两条参照《软件功能、软件设计思维方向.docx》。
4:找到合适的软件架构模式 。
5:确定架构中组件抽象功能。
6:将系统需求分配到构架中。
7:编写测试用例。
8:进行组件内部设计。
9:组织包图。
6 软件需求工序化详述
软件需求工序化首先应该明确软件需求到底是什么概念,在明确了概念后,还需要解决需求挖掘的问题。需求挖掘是获取软件需求最核心的问题,本文将会采用用例+名词解析的方法解决此问题。
6.1 确定软件需求的含义
明确需求的范围是做好软件需求的基础,这里需要首先明确用户需求、系统需求和软件需求的范围。
系统需求等价于用户需求,用户会描述系统的需要实现的功能②注。
软件需求既要完整描述用户提出的功能需求,又要描述系统设计对软件的约束。软件需求描述用户需求这个众所周之,需要特别指出的是对系统需求对软件的约束。
- 软件需求和软件设计方法
- <软件设计>高级软件需求分析学习心得一
- 《软件方法-业务建模和需求》
- 可持续的需求分析和软件设计
- 可持续的需求分析和软件设计
- 细说可持续的需求分析和软件设计
- 软件生命周期和软件设计原则
- 软件需求和需求工程
- 软件需求分析方法
- 软件需求分析方法
- 软件需求分析方法
- 软件设计之旅(2)软件需求规格说明
- 软件设计之旅(3)软件需求规格说明
- 论软件需求分析方法和工具的选用
- 软件需求分析方法和工具的选用
- 笔记-软件方法-上册-业务建模和需求
- 软件设计方法和模块划分
- 软件设计和数据库设计方法
- Linux时间子系统之四:定时器的引擎:clock_event_device
- 2016年台湾TPM大会暨台湾明星制造业研修之旅
- 手机号码,邮箱,qq完整正则表达式
- Velocity基本语法(一)
- Linux时间子系统之五:低分辨率定时器的原理和实现
- 软件需求和软件设计方法
- 2016.01.14回顾
- Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
- quartz使用(一)
- Linux select poll epoll 区别比较
- 第二阶段 3、模拟多任务下载
- Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
- Attribute
- 国内机票预订api调用