软件设计是如何接续需求分析后的工作

软件设计是如何接续需求分析后的工作,第1张

设计注意事项

在一个软件的设计中有许多方面需要考虑。每一个考虑因素的重要性都应该反映出软件所要达到的目标和期望。其中一些方面是:

兼容性-该软件能够与其他产品一起运行,这些产品是为与其他产品的互 *** 作性而设计的。例如,一个软件可能与它自己的旧版本向后兼容。

可扩展性-新功能可以添加到软件中,而无需对底层架构进行重大更改。

模块化-生成的软件由定义良好的独立组件组成,从而提高了可维护性。然后,这些组件可以在集成成所需的软件系统之前单独实现和测试。这允许在软件开发项目中进行分工。

容错-软件能够抵抗并从组件故障中恢复。

可维护性-一个衡量bug修复或功能修改的容易程度的指标。高可维护性是模块化和可扩展性的产物。

可靠性(软件耐久性)-软件能够在规定的条件下在规定的时间内执行所需的功能。

可重用性-在其他项目中使用现有软件的某些或所有方面而不做任何修改的能力。

稳健性-软件能够在压力下运行,或容忍不可预测或无效的输入。例如,它可以被设计成具有对低内存条件的d性。

安全性-该软件能够抵御和抵抗敌对行为和影响。

可用性-软件用户界面必须对其目标用户/受众可用。必须选择参数的默认值,以便大多数用户都能很好地选择这些值。[6]

性能-软件在用户可以接受的时间范围内执行任务,并且不需要太多内存。

可移植性-软件应该可以在许多不同的条件和环境下使用。

可扩展性-软件很好地适应了不断增长的数据或用户数量。

建模语言

建模语言是一种人工语言,可以用来表达由一组一致的规则定义的结构中的信息、知识或系统。这些规则用于解释结构中的组件。建模语言可以是图形语言或文本语言。软件设计的图形建模语言示例如下:

体系结构描述语言(ADL)是描述和表示软件系统体系结构的语言。

业务流程建模符号(BPMN)是流程建模语言的一个例子。

EXPRESS和EXPRESS-G(ISO 10303-11)是一种国际标准通用数据建模语言。

扩展企业建模语言(EEML)通常用于跨多个层的业务流程建模。

流程图是算法或其他逐步过程的示意图。

基础建模概念(FMC)是软件密集型系统的建模语言。

IDEF是一个建模语言家族,其中最著名的包括用于功能建模的IDEF0、用于信息建模的IDEF1X和用于本体建模的IDEF5。

Jackson结构化编程(JSP)是一种基于数据流结构和程序结构之间的对应关系的结构化编程方法。

LeMP3是面向对象的可视化设计描述语言,是一种形式化的规范语言,主要适用于大型面向对象(java,C++,C语言)程序和设计模式的建模。

统一建模语言(UML)是一种从结构和行为上描述软件的通用建模语言。它有一个图形符号,允许使用概要文件(UML)进行扩展。

Alloy(specification language)是一种通用的规范语言,用于表达软件系统中复杂的结构约束和行为。它提供了一种基于一阶关系逻辑的简明语言。

系统建模语言(SysML)是一种新的系统工程通用建模语言。

面向服务的建模框架(SOMF)[7]

设计模式

软件设计师或架构师可能会发现一个设计问题,这个问题过去曾被其他人访问过,甚至可能被其他人解决过。描述常见问题解决方案的模板或模式称为设计模式。这种模式的重用有助于加快软件开发过程

技术

在软件中使用“设计”一词的困难在于,在某种意义上,程序的源代码就是它所生成的程序的设计。在一定程度上,这是真的,“软件设计”是指设计的设计。Edsger WDijkstra将这种语义层次的分层称为计算机编程的“根本新奇之处”[9],Donald Knuth用他编写TeX的经验来描述在实现之前试图设计程序的徒劳:

如果我仅仅指定了TEX,而没有完全参与它的初始实现,它将是一个彻底的失败。实施过程不断地让我产生意想不到的问题,并对如何改进原始规范有了新的见解

用法

软件设计文档可以在计算机编程之前进行审查或呈现,以允许对约束、规范甚至需求进行调整。重新设计可能发生在程序模拟或原型审查之后。可以在编程过程中设计软件,而无需进行计划或需求分析,[11],但对于更复杂的项目,这将被认为是不可行的。编程前的独立设计允许多学科设计师和主题专家(SME)与高技能程序员协作,开发既有用又技术可靠的软件。

选B,在软件开发中,需求分析阶段可以使用的工具是DFD图。

DFD图是需求分析阶段业务人员能够理解的工具,而N-S图、PAD图、程序流程图,都是具体到设计阶段的设计工具。

下面详细介绍一下选项中这几种图:

1、N-S图:Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也叫做N-S图,是结构化编程中的一种可视化建模。为表示五种基本控制结构,在N-S图中规定了五种图形构件。

2、DFD图:DFD图即为数据流图(Data Flow Diagram),简称DFD。它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

3、PAD图,PAD是Problem Analysis Diagram的缩写,它是日本日立公司提出,由程序流程图演化来的,用结构化程序设计思想表现程序逻辑结构的图形工具。

4、程序流程图,独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。程序流程图又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。

程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。程序框图是进行程序设计的最基本依据,因此它的质量直接关系到程序设计的质量。

扩展资料:

软件开发需求分析过程:

软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。

进行需求分析时,应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,并尽量将分析进度提交给用户。在不进行直接指导的前提下,让用户进行检查与评价。从而达到需求分析的准确性。

分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。

参考资料来源:百度百科-需求分析

一 需求分析:

在该部分中根据设计题目的要求,充分地分析和理解问题,叙述系统的功能要求,明确问题要求做什么?以及限制条件是什么?

1.1问题描述

1.2基本要求

(1) 输入的形式和输入值的范围;

(2) 输出的形式;

(3) 程序所能达到的功能;

二 概要设计

说明本程序中用到的所有抽象数据类型的定义。主程序的流程以及各程序模块之间的层次(调用)关系。

1、 数据结构

2、 程序模块

3、各模块之间的调用关系以及算法设计

三 详细设计

实现概要设计中定义的所有数据类型,对每个 *** 作写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);写出出函数和过程的调用关系

四 测试与分析

测试数据,输出测试的结果,这里的测试数据应该完整和严格。并对结果进行分析。

五 总结

总结可以包括 : 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。

项目需求分析怎么写

项目需求分析的概念需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。(这个和我在微软体验到的又不太一样,微软的需求分析大多是市场人员和用户协助小组的人去评估用户的接受程度,这一点也可以理解,因为公司的性质有根本差别)在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到:1SRS文档(System Requirement Specificatio郸); 2DRM 文档;3Acceptance Plan 从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。

狭义上理解:需求分析指需求的分析、定义过程。 一、为什么要需求分析需求分析就是分析软件用户的需求是什么如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的(相信大家都有体会)比如,用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,痕不得找块豆腐一头撞死

需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位大家一定要对需求分析具有足够的重视在一个大型软件系统的开发中,他的作用要远远大于程序设计 二、需求分析的任务简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求三、需求分析的过程需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审

问题识别

就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型, *** 作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标

分析与综合

逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)

制订规格说明书

即编制文档,描述需求的文档称为软件需求规格说明书请注意,需求分析阶段的成果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交

评审

对功能的正确性,完整性和清晰性,以及其它需求给予评价评审通过才可进行下一阶段的工作,否则重新进行需求分析。 四、需求分析的方法需求分析的方法有很多这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论

原型化方法是十分重要的(是软考等常考的知识点)原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能

原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个

软件的需求分析怎么写啊?

1 引言

11 编写目的:编写此文档的目的是进一步定制软件开发的细节问题,便于用户与开发商协调工作本文档面向的读者主要是项目委托单位的管理人员希望能使本软件开发工作更具体

12 项目背景

121项目委托单位:公司

122开发单位:公司

13 定义

14参考资料

2 任务概述

21 目标:

<1> 决策支持:根据公司的要求及时提供所需报表及文件,并在适当时候对各部门领导给予销售及进货等方面的提示

<2>提高效率:利用软件进行管理,避免人工管理的失误以及 延迟性,从而实现高效率的管理

22 运行环境:

<1> 硬件方面:Pentium级处理芯片

1兆显存的兼容显卡

256色,800600的兼容显示器

标准兼容打印机

<2>软件方面: WIN95 *** 作系统

23 条件与限制:

编程用计算机一台

完成期限2000/7/1

无资金供给

3 数据概述

数据流程图如下:

31 静态数据:包括系统登录密码,各数据库所在位置,系统分析原始数据

32动态数据:包括各数据库内各项显示数据,用户登录信息,系统时间

33 数据库描述:

人事管理数据库:公司内人员的个人详细信息,包括档案信息

销售管理数据库:当日销售记录及以前的销售统计,用于销售分析

财务管理数据库:公司内部账目及收支情况详表

技术管理数据库:公司所需各技术档案的详细记录(包括文档)

34 数据字典:

<1>数据流词条描述:

1数据流名:登录信息

来源:用户的输入

去向:系统内部检验部分

组成:用户名,密码

流通量:每次登录输入一次

2数据流名:登录结果

来源:系统

去向:用户

组成:返回信息

流通量:每次登录返回一次

3数据流名:输入修改信息

来源:用户

去向:系统判断部分

组成:根据各数据库内容而不同

流通量:依用户输入而定

4数据流名:反馈信息

来源:系统判断部分

去向:用户

组成:系统经判断后发回的字符数据

流通量: 依系统当前信息而定

5数据流名:识别信息

来源:系统内部检验部分

去向:系统判断部分

组成:系统各数据库的标识信息

流通量:用户每次输入流通一次

6数据流名:处理信息

来源:系统判断部分

去向:各数据库处理部分

组成:读取/修改标识,读取/修改的变量名称

流通量:用户每次输入流通一次

7数据流名:读取修改

来源:系统判断部分

去向:系统各数据库

组成:读取/修改标识,读取/修改内容

流通量: 用户每次输入流通一次

<2>数据文件词条描述:

1数据文件名:人事数据

简述:存储人员信息

数据文件组成:人员的各项信息(以CString类型为主)

2数据文件名:销售数据

简述:存储当日及从前的销售记录

数据文件组成:销售的各项信息

3数据文件名:财务数据

简述:存储财务管理信息

数据文件组成:财务管理的各项记录

4数据文件名:技术数据

简述:存储公司内部使用的技术档案信息

数据文件组成:技术档案名称,内容

<3>加工逻辑词条描述:

1加工名:检验

项目目标与任务需求分析应该怎么写?

项目目标与任务需求分析=项目的目标和任务,目标和任务是什么就写什么了

项目需求报告要怎么写?

听棠的“客户需求何时休”深刻的披露了这个问题存在的根源。需求分析,不仅仅是拿到客户的需求,更重要的是还需进行分析,了解细节,并就细节跟客户咨询,获取最详细的资料。客户所能提供给你的只是他们想到的功能需求,很多问题并不在他们考虑的范围之内,如果作为项目承担方没有去做分析,简单的按照功能要求去设计、规划,最终出来的系统是很难完全符合客户的业务流程的,这时,自然需要更改,被看成了需求的更改。其实,都是缺乏分析所一手造成的。问题等到系统出来了才被发现,这样的系统本身就是先天不足的了。听棠所说到的几点,感受特别深:“其实问题出在开头,客户需求只是软件需求分析的一部分,虽然是比较重要的一部分,但也不要只是去记客户的需求,而是要把客户的需求进行分析”还有客户的需求本身会有矛盾(这矛盾是指在逻辑角度来讲),客户本身是意识不到的,只有在分析设计时,才会分析出这里的矛盾,而这些问题,如果在期初时,软件负责人不分析,而是纯粹的“听从”客户要求去做,当暴露这些问题时,你怪客户也没用啊。项目需求分析报告,在了解客户需求时,不要不动脑子,不要一味的点头说“I C”,其实在表面的业务里面可能包含着N多的细节,这些细节是需要你反问客户的,只有当你提的问题越多,最终获取的需求最具体,才能让项目越顺利。而且有很多问题,都是在你的反问中,客户也才开始思考本来没思考过的问题,客户也会找到一种合理的需求给你,有人会觉得这样了解客户需求未免太麻烦了。至于一些在技术上会遇到问题的地方,也要告诉客户,别以为到时候再说,客户是不关心你的技术细节的,但你如果给他解释的话,他也会试着理解的。客户的需求本身是无休止,因为他们本身也在变,但当你期初的分析合理,后面的变动也将在逻辑上变动,相信代价已经不会那么大了。这其实也体现了系统的扩展性。需求分析,是一个项目提出方和承担方相互沟通的过程,一方是系统的使用者,一方是系统的制造者,在系统制造过程中,只有双方相互配合,共同对系统进行设计才能最后达到使用的要求。客户是业务上的熟悉者,对业务流程有非常清晰的了解,但是,对于软件需求方面的描述是不了解的,他们所能提供的只是他们最终要达到的功能,但是,这其中包含的业务流程是非常复杂的。我们拿到客户需求后,应该根据功能、流程进行初步的设计,构造出业务流程图,再让客户进行评审,提出业务流程上不对的地方进行修改。这样来回的交流,最终才能取得较全面的需求,并减少后期的修改。

如何做需求分析

随着技术的不断发展和用户对网站功能性的需求不断提高,如今网站项目的设计已经不能再仅仅简单地利用静态Html文件来实现,与前几年网站设计由一两名网页设计师自由的创作相比,网站项目的设计和开发越来越像一个软件工程,也越来越复杂,网站项目的设计和开发进入了需要强调流程和分工的时代,建立规范的、有效的、健壮的开发机制,才能适应用户不断变化的需要,达到预期的计划目标。

网站项目管理(WPM)的含义为Web-based Project Management,即以Web 应用程序为主要表现方式的架构来进行的项目设计及管理,这样的架构中包含了浏览器、网络和Web

服务器等关键主体,主要体现在网站设计、以浏览器为客户端的Web应用程序开发(例如信息类网站、网上商店、虚拟邮局、客户关系管理。)等项目管理中。

按照笔者的经验,网站项目管理可以分为以下l六个阶段进行控制:

1 需求分析及变更管理

2 项目模型及业务流程分析

3 系统分析及软件建模

4 界面设计、交互设计及程序开发

5 系统测试和文档编写

6 客户培训、技术支持和售后服务

需要说明的是,这些阶段虽然具有一定的延续性,但是并非完全隔断的,例如需求变更管理和测试工作、文档编写都是贯穿整个项目过程的,许多工作时交叉进行或同时进行的。

(一)如何做好需求分析及变更管理?

业务员与客户进行的沟通,撰写需求分析报告是项目展开的基础。项目是以客户的需求为中心,而不是为技术而迁就需求。

一:让客户畅所欲言,罗列出所有的需求

让用户将所有的想法尽可能的阐述清楚,并把所有的要求罗列出来,不要遗漏。这时候不应该害怕“勾引”起客户的潜在需求而增加设计开发的工作量,从而被今后客户无止境的变更拖入泥潭,直接明白地跟客户把问题和要求一条条地列出来,把条理、归纳、分析先都扔到一边去,将用户最原始、最完整的要求准确地记录下来就完成了第一步的工作。

很明显,假如客户的需求做的都不完整,随时可能会产生意想之外的变更,甚至这个变更会破坏已经做的模型及结构,那么这个项目从开始就注定了会失败;比如站点所有的功能都实现了,本地测试起来也没有什么问题了,但是你却不知道客户的系统是要承受每天100万独立IP的访问,而你原来想当然的以为了不起就是1万独立IP访问的访问流量,稍微有经验的开发人员都会明白这样的设计是个灾难,无论是应用服务器、数据库还是程序全部要重新开发!

二:透过现象分析潜在的需求

很多情况下客户并非专业人士,在他们滔滔不绝的描述中不能指望他们帮助我们整理出重点和技术难关,这需要我们去为客户进行分析、归纳和整理,尤其是客户谈的不多却又是技术上实现难度和强度很高的地方特别值得注意。

客户往往对需求的概念是非常模糊的,大多时候给出的需求都是笼统而且尺度难以控制的,这就要求业务人员在倾听了客户的详细说明以后,帮助客户进行整理和分析,同时预测客户在开发过程中变更及今后应用中可能进行修改升级的潜在需求。

比如在为客户设计办公自动化系统的时候,也许就要为客户预留将来与他们的业务单位进行交互的通道;在设计邮件系统的时候要考虑可能会需要广告管理服务器;设计网络电子商店时今后增加库存产品进销存统计分析等等;限于时间财力的考虑,客户通常能够接受分阶段实施的开发过程,在需求分析时,提早为客户设想到今后的需求变更除了使项目开发更加顺利以外,也为今后业务的进一步深入打下

做程序,项目需求分析,一般做多久。

国内很多老一辈的根本不注重这一点。但国外的,很小的开始实战写需求了。因为他们一直认为需求是相当重要。每次都做项目前都是,乱七八 *** 的需求分析,像个草搞。偶尔做一下,改一下。改一下需求,那么,原来的框架,编码都要改。而我同学他们的虽然做需求做了一个月多,但却是按需求很顺利的一气搞定。我问的是:无论是多大,还是多小的项目,都要把需求写清楚再做。

java 项目需求文档要怎么写?

需求文档一般分两类

需求调研报告

需求分析报告

调研报告:是记录的用户的原始需求,基本上可以算做是和用户沟通的原始记录。

分析报告:是对调研报告进行归类分析的结果。一个比较全面的文档了,在这个文档里面一般包含以下内容:

项目的背景

项目的目标

项目的范围

用户特点

相关技术、规范标准等

相关约束

用户的组织结构、角色等

用户需要的功能点,这些功能的优先级,业务流程、功能特点,有没有特殊需求等等

总而言之,需求分析报告的下一站是给设计人员的,设计人员看到需求分析报告就知道系统应该包含哪些功能点、权限设计、流程设计等,这些内容都可以直接从需要分析报告里面得出

以上就是关于软件设计是如何接续需求分析后的工作全部的内容,包括:软件设计是如何接续需求分析后的工作、在软件开发中,需求分析阶段可以使用的工具是______。A、N-S图B、DFD图C、PAD图D、程、设计需求怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10004034.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存