编写软件概要设计说明书的目的
首先,你需要明白为什么需要文档。
你要理解文档和代码一样重要,都是开发人员的劳动成果(artifact)。
其次,你要确定你采用的周期模型和开发方法。
不同的模型或方法会有不同的文档需求,这需要你自己裁剪直到适合你的开发团队,别忘了,文档也是为了提高开发效率、质量用的,让开发人员过多的写一些无味的文档,反而会降低效率。
再次,你要作出一些文档模板,模板中对文档的用途和结构做出明确的说明。
最后,就可以填充啦。
附一个RUP的需求描述文档模板 1.0 简 介 [介绍本文档的整体结构。
] 1.1 目的 [说明本软件需求规格说明书的目的。
软件需求规格说明书不仅需要完整的描述系统的行为,还需要说明非功能性的需求、设计约束以及其它相关的因素。
] 1.2 范围 [简要介绍本需求规格文档适用的项目/应用程序及其主要特性或其它子系统、相关的用例模型和受其影响的其它任何事物。
] 1.3 定义、术语和缩写 [详细定义正确地理解本文档的相关术语,包括定义、首字母缩写词和缩略语。
可以通过引用术语表说明。
] 1.4 参考资料 [说明本文档引用的任何其它相关文档。
要列出文档的标题、文档编号、日期、和出版单位并说明文档的来源。
] 1.5 概要 [说明本文档余下部分包含的内容及组织方式。
] 2.0 说 明 [本节列出影响产品和需求的一般因素,但不需列出具体的需求,只需描述将在第3节中详细描述的需求的背景,以便于理解需求。
这包括:产品总体效果,产品功能,用户特征,约束、假设和依赖,以及需求子集等。
特别关键的是除了需要说明产品是或说解决什么,还要说明产品不是或不是解决什么。
] 2.1 用例模型 [如果使用了用例模型,本小节概述适用于本系统的用例模型或子模型,包括所有用例和角色的名称和简要说明及用例图和关系。
可将用例报告作为附件在此引用。
] 2.2 假设与依赖 [说明所有重要的技术可行性、子系统或组件的可用性或可作为此说明书所描述的软件的基础的其它相关假设。
] 3.0 需求描述 [详细描述软件的需求。
其详细程度能够使设计人员设计出满足这些需求的系统;测试人员能够测试此系统是否真的满足这些需求。
在使用用例建模时,这些需求采用用例和可用的其它补充文档捕获 。
] 3.1 用例报告 [用例模型通常定义了系统的主要功能性需求和一些非功能性需求。
对用例模型中的每个用例都需要在此引用或附上用例报告。
保证清晰的标明每个需求。
] 3.2 补充说明 [描述没有包含在用例中的其它需求。
此处应包含补充需求说明中适用于此系统的具体需求说明或特征,并重新提炼以足够详细地说明此系统。
这些信息可直接记录在此文档中,也可以作为附件引用到单独的补充说明文档。
同样要保证需求被清晰的定义。
] 4.0 辅助信息 [辅助信息使此文档更容易使用。
这可以是目录、索引、附录、用例示意图、用户界面原型等。
如果包含附录,要明确说明此附录是否是需求的一部分。
]
概要设计说明书和总体设计说明书的区别?
展开全部 我的理解是,总体设计仅仅描述了产品的形态,如果是网络软件,可以描述产品以其他子系统在网络中的部署方式、联系方式。
总体设计需要把产品所有可能出现的产品形态列出,这样可以方便非技术人员(市场、客户)了解这个产品的功能。
概要设计则是针对一个产品做出稍微详细的分析,需求提供相关接口、模块划分、数据存储方式等。
我也是最近在做设计才了解的,以上仅是个人理解....
从事软件开发工作必须具备哪些知识?
展开全部 1.首先热爱这个专业。
只有这样,才会从抽象的理论中找到实实在在的快乐。
如果 不热爱她,或者只因为这是个热门专业,那么极力要求放弃这个专业,因为计算机是 一把双刃剑,学好了会飞黄腾达,学不好毕业后会极其痛苦,高不成低不就,没有发 展潜力,如同学英语专业的人到了美国一样。
2.不要用功利眼光对待这个学科,这绝对不是点点鼠标就能挣钱的专业。
不要去想做网站 挣钱,不要想靠点击率增加广告,这个在4年前已经过时,如果现在仍然这么想,千万别 说出来,因为会觉得很土。
计算级专业的成就感总是伴随着身体上的痛苦而来,肩周 炎,颈椎病,眼睛干涩,掉头发,腰椎间盘突出,关节炎 3.搞明白计算机“科学”与“技术”的含义。
做网页,做图片,做flash,玩游戏,上网, 听歌,录mp3,搞电影字幕,装windows,改注册表,为软件皮肤……这通通不叫计算机科学 与技术,如果是计算机的学生,会做以上事情,那是应该的,不会做,也没什么丢人 的,需要的不是让别人称作“高手”。
4.明确最终的专业方向是软件还是硬件。
方向是网络?网络不是专业方向。
网络是最优 秀的软件工程师、最优秀的硬件工程师与最优秀的通信工程师的智慧结晶。
如果是软件 方向,请在学精一揽子数学、数据结构、算法设计、数值分析、汇编语言、操作系统、 编译原理、数据库原理、软件工程之类课程后,仔细的听一听硬件课程,软 件工程绝对不是背背就能过的课,计算机理论可能是一个人就能研究出来,软件工程是成 千万网软件工程师几十年来失败的教训凝结成的结晶,请认真听课。
不要问应该学什么 语言,计算机专业的人必须具备任何语言1小时上手的能力,最起码要在10分钟把"hello world"做出来。
如果说有必须学的两种语言,那他们是c++与java,学他们不是在学语言, 而是在学thinking in c++,thinking in java,一个是软件的基础理论,一个是面向对象。
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。
软件一般是用某种程序设计语言来实现的。
通常采用软件开发工具可以进行开发。
软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。
软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
1计划 对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
2分析 软件需求分析就是对开发什么样的软件的一个系统的分析与设想。
它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。
本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。
需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。
本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。
在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。
系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
3设计 软件设计可以分为概要设计和详细设计两个阶段。
实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。
可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。
模块,然后进行模块设计。
概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
4编码 软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。
充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。
而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
5测试 软件测试的目的是以较小的代价发现尽可能多的错误。
要实现这...
软件工程师要学哪些东西?
软件工程师要学习和掌握的东西:(一).NET方面的开发⒈熟悉.net开发体系,熟悉C# ASP .NET;⒉熟悉SQLServer,Oracle数据库开发;⒊具有企业管理系统项目经验;4.了解企业ERP及财务管理软件(用友,金蝶)者优先;5.善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神。
(二)JAVA应用程序开发1.熟练使用Struts2+Spring+Hibernate2.掌握Jquery3.掌握Java4.熟悉Oracle5.掌握xml/webservice6.掌握OOD、OOP7.基本文档写作能力(三)web、数据库方面的开发⒈练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术;2.热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;3.熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力;4.精通SQL server数据库技术,了解数据库性能调优者优先.(四)php项目开发⒈使用PHP语言开发互联网应用程序;⒉网站产品和网站功能模块的开发与维护;⒊与页面设计师协调沟通,编写部分Javascript和HTML;⒋参与底层MVC框架的编写与维护。
软件工程师一般指从事软件开发职业的人。
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
此外,关于网络工程和软件测试的其他技术也要有所涉猎。
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。
具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。
可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。
工作内容:1、 指导程序员的工作;2、 参与软件工程系统的设计、开发、测试等过程;3 、协助工程管理人保证项目的质量;4 、负责工程中主要功能的代码实现;5 、解决工程中的关键问题和技术难题;6 、协调各个程序员的工作,并能与其它软件工程师协作工作;7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等考试科目。
工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。