软件需求分析

软件需求分析过程阅读笔记之一

老子叫甜甜 提交于 2020-01-15 04:03:07
读软件需求分析首先明确了软件需求包含的三个不同层次,业务需求即组织机构或客户的需求目标,用户需求即用户使用产品必须要完成的任务,功能需求即开发人员需要实现的软件功能。从需求的定义上我们可以知道需求关注的是究竟想开发什么与设计细节实现细节项目规划信息或者测试信息无关 不重视需求过程会给项目带来极大风险,所以在需求过程中我们要注意避免以下几种情况,无足够用户参与,用户需求不断扩展,用户需求不明确或者说模棱两可,不必要的特性即为软件画蛇添足,过于精简的规格说明,忽略了用户分类,不准确的计划,而高质量的需求过程要求产品开发过程中的通力合作同时充分了解其市场,因此要想完成一份优秀的需求就必须具备完整性(功能完整),正确性(准确陈述其功能),可行性,必要性(每项需求都硬把客户真正需要的和最终系统),划分优先级,无二义性(只能有一个明确统一的解释),可验证性等特性。同时需求规格说明也需具备完整性,一致性,可修改性,可跟踪性(即每项软件需求与它的根源和设计元素,源代码,测试用例之间建立起链接链) 再进行软件需求分析时要清楚谁是客户,谁是用户,分清楚业务需求和用户需求。客户有义务说明软件的业务需求,任何其他的说明都应该遵从业务需求的规定,而用户需求则必须从试用产品的用户处收集,业务需求来自风险承担者,用户需求则来自产品的真正使用操作者。对于客户而言客户有权利要求分析人员使用符合客户语言习惯的表达

《软件需求与分析》阅读笔记

99封情书 提交于 2020-01-13 04:00:28
一、我们应当如何做需求分析? 通过阅读《我们应当怎么做需求分析》我了解了需求分析需要进行的阶段,以及需要掌握的内容。 需要掌握的内容如下: ( 1 )需求调研:其中包括如何与客户交流、建立良好的合作关系、通过研讨会与客户交流获得项目的原始需求并对需求进行研讨,并采用迭代的方式进行需求的不断完善。 ( 2 )需求分析:分析用例、分析业务流程、构建用例说明、其他例如查询功能的分析、子用例及扩展用例的分析、行动图和状态图、业务领域分析、原文分析、非功能需求分析。 ( 3 )需求确认:列出需求列表得到用户确认、利用快速原型法得到用户的确认、构建需求规格说明书。 一、需求调研 1 、与客户初识: 要树立良好的职业威信。不要在客户面前唯命是从,要适当地提出自己的见解,这样不但会让客户对自己有信心,而且自己也可以规范化客户的需求,不至于客户提出什么我们就按照客户说的做什么。 进行详细的角色分析,对号入座。客户方有很多的角色,每一个角色都有自己独特关注的地方,要合理地进行角色分析,让他们了解他们所希望了解的问题,对于需求的调研分析非常地重要。 从宏观上制定目标。在将角色进行分析后,要对每一个角色进行特定地分析,与各个角色进行详细地业务分析,详细了解业务的流程,对于需求的分析非常重要。 2 、拜访客户 需求分析需要与客户进行交流,与人交流就要处理好与他人的关系

《软件需求与分析》阅读笔记

旧巷老猫 提交于 2020-01-10 03:50:06
《软件需求分析》 阅读了主任推荐的csdn博客后,不能说是受益匪浅,但是还是有些许收获的,这次的阅读笔记就把自己的心得体会写出来,好让未来的自己不怎么迷茫。 首先,博主举出了四个比较差强人意的项目作为引子,第一个是东软的项目,由于项目结构不断的调整,要对几百处的程序进行调整,最后客户还是不满意,结果崩了的例子,失败的原因还是客户只知道他不满意,但怎样才能使他满意呢?他不知道,于是就在一点儿一点儿试,于是这种反复变更就这样发生了。于是作者知道了当客户提出业务变更的时候,我们一定不能被客户牵着走,客户说啥就是啥。我们要从业务角度深入的去分析,他为什么提出变更,提得合不合理,我有没有更合理的方案满足这个需求。当我们提出更加合理的方案时,客户是乐于接受的,变更也变得可控了。第二个是自己的项目,报表的不统一和设计上的不规范,导致很难弄用计算机来实现,最后作者又要得出结论:但我们作为技术人员,需求分析必须实事求是的、基于技术可以实现的角度去考虑。我们做需求就应当首先理解现有的管理模式,然后站在信息化管理的角度去审视他们的管理模式是否合理,最后一步一步地去引导他们按照更加合理的方式去操作与管理,其余的就不一一列出。 随后博主进行了细致的调研划分,从初识到到拜访再到研讨会,从而需求调研到迭代到需求捕获再到用例图和业务流程分析.......这一系列的步骤才能保障一个项目尽可能的可能成功。

如何评测软件工程知识技能水平

♀尐吖头ヾ 提交于 2020-01-06 20:14:24
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:   1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。   2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。   3.具有对这个行业的热爱,才有能坚持与继续学习的动力。   4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。 一、选择题 1、软件工程的出现主要是由于( ) A.程序设计方法学的影响  

如何评测软件工程知识技能水平

坚强是说给别人听的谎言 提交于 2020-01-06 01:45:37
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:   1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。   2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。   3.具有对这个行业的热爱,才有能坚持与继续学习的动力。   4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。 一、选择题 1、软件工程的出现主要是由于( ) A.程序设计方法学的影响  

软件需求分析与管理的十个问题

余生长醉 提交于 2019-12-28 16:33:40
软件需求分析与管理的十个问题 1.需求工作涉及到哪些内容 首先需求包括了产品需求,用户需求,软件需求。产品需求关注的是产品的标准化和通用化,会对收集到的用户需求进行分类和优化,结合业界标准系统模型进行抽象并通用化。用户需求反映的是用户面临的问题域,根据问题域用户期望的能够达到的解决效果;而对于软件需求则是用软件工程的语言结构化和文档化的对用户需求和产品需求的描述。 需求工作涉及到需求开发和需求管理。需求开发涉及到需求调研,需求收集,需求分析,需求开发等工作,其中的重点有业务流程,数据字典,业务规则,界面原型。对于基于面向对象的开发方法则涉及到业务用例,系统用例(涉众,基本流,扩展流,业务规则,界面,操作)等诸多内容。需求管理工作涉及到需求的状态管理,变更管理,需求的跟踪,需求的验证和确认等重要内容。 在我们需求分析和开发中,最容易忽视的主要有两点,一个就是缺乏需求分析和开发的过程,把用户需求直接作为了软件需求,没有需求建模和抽象的过程。另外一点就是对于性能,安全,易用性,可维护性和扩展性等非功能性需求没有考虑,导致开发出来的系统是一个不好用的半成品。CMMI把需求管理放到2级,需求开发放到3级,实际上真正的提高需求人员的需求分析和开发能力才是解决需求问题之道。需求分析开发做不好,需求变更或追踪管的再好也没有用处,在这点上一定不能本末倒置。 2.做好需求分析需要具备哪些知识

软件工程实践项目课程的自我目标

落花浮王杯 提交于 2019-12-27 16:43:52
### 学习到的能力的预期 - 可以把书上的理论知识运用到实践当中, 增强自己的实践能力,动手能力。所以上课就要认真,积极完成老师布置的学习任务,定期更新自己的博客,多敲代码,增强个人的编程能力,学会 如何从单纯的编程走向软件开发。 ### 对项目课程的期望 - 第一次接触博客园,很新奇,原来学习的工具也可以那么多样化,希望以后在完成老师布置的任务过程中,能熟悉并掌握计算机领域的学习工具,提高自己的组织语言能力. - 能够深刻并且详细的了解一个软件形成的基本过程,从开始的需求分析到最后的发布并且供用户使用. ### 对项目的愿景规划 - 方便人们生活,让大家能更好的享受计算机物联网带给大家的便利。 来源: https://www.cnblogs.com/yaq233/p/6474129.html

系分考试论文实例12篇

五迷三道 提交于 2019-12-27 14:40:00
系分论文1 企业人事信息系统的应用 【摘要】 本文讨论《企业人事信息系统》项目的需求分析方法与工具的选用。该系统的建设目标是帮助该企业管理好企业内部的人员和人员的活动,人事信息管理指的是企业员工从招聘面试到离职退休的全过程,涉及的主要活动包括面试、报到、培训、升职、离职或其他的人事变动,也包括电子化考勤、工资性收入的计算与分发、使用其他公司资源的有关记录(如宿舍、保险、证件办理等等)。此外,本系统也涉及到企业在全国各地的人事信息管理,企业的组织架构的设置,级别与职务管理,人力申请直至人力需求报表,从而形成一个对企业真正有用的人事信息管理应用系统。在本文中首先讨论了选用面向对象方法与工具的主要理由与策略,进一步通过一个简例说明该方法与工具使用的效果,也讨论了使用多种工具与方法在需求分析中的必要性,最后简要小结了选用正确工具与方法的意义和作用。 在项目开展期间,我担任了系统分析、系统设计与数据库管理等大量工作。 【正文】 人事信息管理系统是一个有着广泛应用面的实用性系统,但是,我国各个企业有着自身的体制、机制、特点与不同的要求;在开发这类系统时,系统需求分析是极为重要的一环。在整个分析过程中,我们都采用了面向对象的分析方法,这是因为我们在近几年的实践中已坚信这种方法能够更加有效地表达和描述现实世界。软件要具有适用性和扩展性,就必须更接近于现实世界本身的发展规律。 以一个简单的例子来看

软件工程期末考试知识点汇总

心已入冬 提交于 2019-12-23 01:43:38
1、软件工程学概述 软件危机 软件工程 软件生命周期 软件工程 2、可行性研究 可行性研究的任务 系统流程图 数据流图 数组字典 3、需求分析 需求分析的任务 分析建模与规格说明 4、总体设计 设计原理 高内聚,低耦合的系统有什么好处呢? 面向数据流的设计方法 5、详细设计 设计问题 过程设计的工具 程序复杂程度的定量度量 计算环形复杂度的方法 6、实现 软件测试基础 单元测试 单元测试 白盒测试技术 黑盒测试技术 调试 7、维护 软件维护的定义 软件的可维护性 8、面向对象方法学引论 面向对象方法学的优点 面向对象的概念 对象模型 用例图 9、综合其他章节 建立对象模型 软件重用 工作量估算 能力成熟度模型 10、简答题 来源: https://www.cnblogs.com/gede/p/11148120.html

软件架构学习小结

让人想犯罪 __ 提交于 2019-12-21 07:17:39
软件架构 设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单。本文从 架构师职责、 软件架构定义、设计架构、评估架构、架构管理 等方面来描述了解软件架构的含义和怎样设计软件架构。 一、软件架构师的职责 架构师分为以下几大类:业务架构师、主题领域架构师、技术架构师、项目架构师( J2EE 架构师、 .NET 架构师等)、系统架构师。 1 、架构师的职责主要体现 架构师的职责就是设计一个公司系统的基础架构,并提供关于怎样建立和维护系统的指导方针。具体来讲,架构师的职责主要体现在以下几方面: 1 )、负责公司系统的架构设计、研发工作。 2 )、承担从业务向技术转换的桥梁作用。 3 )、协助项目经理制定项目计划和控制项目进度。 4 )、负责辅助并指导系统分析开展设计工作。 5 )、负责组织技术研究和攻关工作。 6 )、负责组织和管理公司内部的技术培训工作。 7 )、负责组织及带领公司内部员工研究与项目相关的新技术。 8 )、管理技术支撑团队并给项目、产品开发实施团队提供技术保障。 9 )、理解系统的业务需求,制定系统的整体框架(包括、技术框架和业务框架)。 10 )、对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。 2 、构架设计师必须具备的技能 经验:既包括在问题领域的经验