软件需求
对大多数人来说,若要建一幢数百万元的房子,他一定会与建房者详细讨论各种细节,他们都明白完工以后的修改会造成损失,以及变更细节的危害性。然而,涉及到软件开发,人们却变得“大大咧咧”起来。软件项目中百分之四十至百分之六十的问题都是在需求分析阶段埋下的“祸根”(Leffingwell 1997)。可许多组织仍在那些基本的项目功能上采用一些不合规范的方法,这样导致的后果便是一条鸿沟(期望差异)—开发者开发的与用户所想得到的软件存在着巨大期望差异。
在软件工程中,所有的风险承担者(stakeholder)(这个词很有意思,原义是赌金保管者。我看过很多的翻译,有翻译成涉众的,也有的翻译成参与者的,但是我想他的主要意思就是和这个项目有密切相关利益的人)都感兴趣的就是需求分析阶段。这些风险承担者包括客户、用户、业务或需求分析员(负责收集客户需求并编写文档,以及负责客户与开发机构之间联系沟通的人)、开发人员、测试人员、用户文档编写者、项目管理者和客户管理者。这部分工作若处理好了,能开发出很出色的产品,同时会使客户感到满意,开发者也倍感满足、充实。若处理不好,则会导致误解、挫折、障碍以及潜在质量和业务价值上的威胁。因为需求分析奠定了软件工程和项目管理的基础,所以所有风险承担者最好是采用有效的需求分析过程。
软件需求的定义
IEEE软件工程标准词汇表(1997年)中定义需求为:
(1)用户解决问题或达到目标所需的条件或权能(Capability)。
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。
(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。
需求的层次
下面这些定义是需求工程领域中常见术语的定义说明。
软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求。业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(scenario)说明中予以说明。功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。软件需求各组成部分之间的关系如图所示。
作为补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发人员都极为重要。
值得注意的一点是,需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些没有关系,它关注的是充分说明你究竟想开发什么。
Frederick Brooks在他1987年的经典的文章“No Silver Bullet:Essence and Accidents ofSoftware Engineering ”中充分说明了需求过程在软件项目中扮演的重要角色:
开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。
为什么这么说呢,因为在大多数的软件系统中,最终用户可能都不清楚他的需求是什么,这是千真万确的。如果你的用户告诉你需求就是这些了,不要相信他,继续刨根问底,直到你们都筋疲力尽了。
怎样根据系统需求设计软件界面
假设,现在你有了软件项目的功能、需求等定义,那么,大概的步骤如下:
运行IDE软件 -> 建立工程项目 -> 写界面、代码 -> 调试 -> 解决可能的错误 -> 生成最后的版本。
=========================
开发一个完整的应用程序,大概流程,参考资料如下:
第一步:需求调研分析
1相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
3 系统分析员向用户再次确认需求。
第二步:概要设计
首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
第三步:详细设计
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
第四步:编码
在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
第五步:测试
测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。
第六步:软件交付准备
在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。
《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。
《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
第七步:验收
用户验收。
做软件的需求分析和设计,要写哪些东西?
呵呵 正好我参加日本的软件比赛时写过 这是我那时候些的需求分析设计书的目录 你看看吧一. 智能家居背景介绍... 3(一). 背景介绍... 3二. 语音识别智能家居解决方案... 4(一). 方案总体介绍... 4(二). 语音识别智能家居解决方案实现原理... 6(三). 无线技术... 7三. 方案实例——语音识别智能百叶窗帘... 8(一). 实例简介... 8(二). 系统功能... 8(三). 详细实现... 91. 硬件设计... 92. 软件设计思路... 12(四). 操作方法及步骤... 141. 训练:... 142. 识别阶段:. 14四. 总结... 15
对程序设计的主要要求有哪些
程序设计的主要要求
(一)可维护性
由于信息系统需求的不确定性,系统需求可能会随着环境的变化而不断变化,因此就必须对系统功能进行完善和调整,为此就要对程序进行补充或修改。此外,由于计算机软硬件的更新换代也需要对程序进行相应的升级。
(二)可靠性
程序应具有较好的容错能力,不仅正常情况下能正确工作,而且在意外情况下应便于处理,不致产生意外的操作,从而造成严重损失。
(三)可理解性
程序不仅要求逻辑正确,计算机能够执行,而且应当层次清楚,便于阅读。这是因为程序维护的工作量大,程序维护人员经常要维护他人编写的程序,一个不易理解的程序将会给程序维护工作带来困难。
(四)效率
程序的效率指程序能否有效地利用计算机资源。近年来,硬件价格大幅度下降,而其性能却不断完善和提高,因此,程序的效率已不像以前那样举足轻重了。相反,程序设计人员的工作效率则日益重要。提高程序设计人员的工作效率,不仅能降低软件开发成本,而且可明显降低程序的出错率,进而减轻维护人员的工作负担。此外,程序的效率与可维护性及可理解性通常是矛盾的,在实际编程过程中,人们往往宁可牺牲一定的时间和空间,也要尽量提高系统的可理解性和可维护性,片面地追求程序的运行效率反而不利于程序设计质量的全面提高。
软件需求分析师
软件需求分析需要多年的编程工作经历,在各企业中多是有丰富经验老资格的软件程序员担当。大学刚毕业想找到需求分析师的工作岗位,有一定的难度。
如果先把初期的工作岗位定位在软件测试,可能更实际一些。这个工作要求有一般的编程能力,经过适当的软件测试培训,当然自学也可以。而且非常适合女生心细的特点。
如果你有时间,在网页设计师方面或网站设计师方面做些准备,今后找工作,会容易一些。对软件专业的学生,几乎没有难度方面的障碍。女生工作稳定,不爱跳槽,坐得住,网络企业也非常欢迎,找工作时一般不会遇到性别歧视的。
祝你学业有成,前途似锦。
软件设计时,如何根据需求设计类?java语言或C#
架构设计
得到基本需求以后,先进行架构设计,在此期间,需要从部署、运行、数据、开发等方面进行设计,需要同时进行非功能需求分析,需要对约束条件进行分析。
然后对所设计的概念架构进行交流,获取更细的需求,调整设计中的偏失。
得到较会面的需求。
概要设计
然后开始进行再进行需求分析,先找出参与者,编制用例图。进行用例描述。
然后再进行数据设计。
然后再进行协作图绘制,进行进序图绘制,引出类设计视图。
详细设计
由类设计视图与数据设计视图,进行类结构设计与数据结构设计。
接着是伪码设计
然后进行编码
再进行测试(在进行架构设计时,开始进行测试规划,概要设计完成时,同步完成测试的计划的功能测试用例,详细设计完成时,完成单元测试、模块测试等测试用例)
软件设计功能需求(只需要提供思路)
标准商城系统功能
控制台 系统设置 基础设置 导航设置 幻灯片设置 站点底部设置
购物设置 显示设置 图片设置 邮箱设置
其他设置 支付方式
配送管理 配送方式 地区管理 物流公司
管理员管理 管理员新增/修改/删除
商品管理 商品管理 商品列表管理 添加新商品 商品回收站 商品上架/下架
商品分类 分类列表 分类新增/修改/删除
商品类型 类型管理 规格列表 规格图库
订单管理 订单管理 订单列表管理 订单查询 合并订单 订单打印
缺货登记 添加订单
单据管理 发货单列表 退货单列表
会员管理 会员管理 会员列表 添加会员 会员等级 充值和提现申请
资金管理
信息处理 建议管理 评价管理 站内消息
运营管理 基础数据统计 用户注册统计 人均消费统计 销售金额统计
日志操作记录 资金操作记录 后台操作记录
信息管理 数据库管理 数据库备份 数据库还原
分析管理 帮助分类 帮助列表
希望可以帮助你!!!!
设计一个软件,之前需要有需求分析,这个需求分析都包括哪些内容啊?
说白一点就是软件项目的背景啊,要达到什么业务目的啊,然后要满足哪些人的哪些使用需求啊,这个需求的业务流程是怎样的啊,针对这个需求软件需要具备的功能是怎样的啊。除了功能性方面的需求,还有些性能方面的需求,比如响应速度啊并发数啊之类的....
网上可以找到标准的需求文档模版,模版里定义清楚了要包含的内容。
还真没写过这东西,头疼
转载请注明出处51数据库 » 软件需求设计 软件设计时什么是需求分析