确的数学语义的方法,都称为形式化方法。形式化方法用严格的数学语言和语义描述功能和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。通过数学的演算,使得从形式化功能规约到形式化设计规约,以及从形式化设计规约到程序代码转换成为可能。 1.10敏捷软件开发的特点是什么? 答:敏捷软件开发的特点有4个: A个人和交互高于过程和工具; B可运行软件高于详尽的文档; C与客户协作高于合同谈判;
D对变更及时做出反应高于遵循计划。 1.12简述敏捷软件开发的原则。
答:敏捷软件开发必须遵循的12条原则如下;
A最优先的是通过尽早地和不断地提交有价值的软件来使客户满意; B欢迎变化的需求,即使该变化出现在开发的后期,为了提升对客户的竞争优势,Agile过程利用变化作为动力;
C以几周到几个月为周期,尽快、不断地发布可运行软件; D在整个项目过程中,业务人员和开发人员必须天天一起工作; E以积极向上的员工为中心建立项目组,给予他们所需要的环境和支持,对他们的工作予以充分的信任;
F项目组内效率最高、最有效的信息传递方式是面对面的交流; G测量项目进展的首要依据是可运行的软件;
H敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度;
I应该时刻关注技术上的精益求精和好的设计,以增强敏捷性; J简单化是必不可少的,这是尽可能减少不必要工作的艺术; K最好的构架、需求和设计出自于自我组织的团队;
L团队要定期反思怎样才能更加有效,并据此调整自己的行为。
第2、3章
2.1简述系统工程的任务。
答:系统工程是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。主要任务包括:(1)识别用户要求;(2)系统建模与模拟;(3)成本估算及进度安排;(4)可行性分析;(5)生成系统规格说明。 2.2基于计算机的系统由哪些元素组成?
答:组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程。
2.3简述可行性分析的任务。
答:可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。
(1)经济可行性主要进行成本效益分析,从经济角度,确定系统是否值得开发。包括成本、效益、货币的时间价值、投资回收期和纯收入。
(2)技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。技术可行性分析通常包括风险分析、资源分析和技术分析。
(3)法律可行性主要研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题。
3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。
答:重要性是应用已证实有效的技术、方法进行需求分析,确定客户需求、帮助分析人员理解问题,评估可行性,协商合理的解决方案,无歧视地规约方案,确认规约以及将规约转换到可行性的系统时的管理要求,通过合理的工具和符号系统地描述待开发系统以及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。因需求分析失败而造成项目失败例子如下:
项目名称:邮政资信管理系统
项目功能:管理邮政方面业务的监督和管理,提高邮政的服务效率。
失败原因:需求分析不足,需求内容不明确,把握不充分。 3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么? 答:需求工程具体步骤包括:需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理六个步骤。
(1) 需求获取
在需求获取阶段系统分析人员通过与用户的交流、对现有系统的
观察以及对任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员及特征列表、系统的技术环境的描述、系统功能的列表以及应用于每个需求的领域限制、一组描述不同运行条件下系统或产品使用状况的应用场景以及为更好地定义需求而开发的原型。需求获取的工作产品为进行需求分析提供了基础。
(2) 需求分析与协商
此阶段的任务是对需求进行分类组织,分析每个需求与其他需求的关系以检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。
(3)系统建模
系统建模是为了在用户和系统分析人员之间建立统一的语言和理解的桥梁,系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求分析文档正确反映用户的真实意图。
(4)需求规约
软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。
(5)需求验证
此阶段的任务是对功能的正确性、完整性和清晰性,以及其他需求给予评价,保证软件需求定义的质量。
(6)需求管理
软件需求管理是对需求工程所有相关活动的规划和控制。换句话说,需求管理就是:一种获取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。
3.3一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
答:(1)强烈的责任心和事业心
系统分析师由于必须保证分析的准确性,尤其是需求,所以责任更为重大。一般来说,不应以用户表述不明确,无法得到需求,或者用户需求变化太多太快作为借口,更不能因为下面的研发技术人员技术水平不如自己而责备研发技术人员,同时也需要能够为保证企业利益而说服公司领导做出正确的决策;
(2)钻研精神
IT行业不同于其他行业,新理念新技术新方法层出不穷,系统分析师需要能够适时适当地引进新理念新技术新方法,为企业提高生产效率,为员工降低劳动强度,为客户提供更具竞争力和更加实用的产品和服务;
(3)
优秀的协商谈判能力
复杂的系统有许多项目相关的人员,他们之间的需求必定会出现冲突,协商的过程就是讨论需求,找出每个人都满意的折衷方案。分