第一章
1.1什么是计算机软件?软件的特点是什么?
计算机软件是指计算机系统中的程序及其文档
软件的特点:
●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
●软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明
1.系统软件
系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。例如:
编译软件、操作系统。
2.支撑软件
支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、软件工具、软件开发环境。
3.应用软件
应用软件是特定应用领域专用的软件。例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.3简述软件语言的分类,并举例说明。
1.需求定义语言
是用于书写软件需求定义的语言。例如:PSL/PSA。
2.功能性语言
是用于书写软件功能规约的语言,通常又称为功能规约语言。例如:广谱语言、Z语言。
3.设计性语言
是用于书写软件设计规约的语言。例如:PDL。
4.实现性语言
也称为程序设计语言,是用于书写计算机程序的语言。例如:C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言
是用于书写软件文档的语言。通常用自然语言或半形式化语言书写。
1.4什么是软件工程?
软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传
统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
1.选取适宜的开发模型
必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。
2.采用合适的设计方法
合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3.提供高质量的工程支撑
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
4.重视软件工程的管理
仅当软件过程予以有效管理时,才能实现有效的软件工程。
1.6软件工程生存周期分哪几个阶段?分别简述各个阶段的任务。
1. 计算机系统工程
计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,作出进度安排,并进行可行性分析。
2. 需求分析
需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约(也称软件需求规格说明)。
3. 设计
系统设计的任务是设计软件系统的体系结构,详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法。
4. 编码
编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。
5.测试
测试阶段的任务是发现并纠正软件中的错误和缺陷。
1.7简述CMM的5个等级。
1. 初始级
2. 可重复级
3. 已定义级
4. 已管理级
5. 优化级
1.8简述CMMI的连续式模型和阶段式模型。
1.阶段式模型的结构类同于软件CMM,它关注组织的成熟度,CMMI-SE/SW/IPPD 1.1版中有5个成熟度等级:初始的、已管理的、已定义的、定量管理的、优化的。
2.连续式模型关注每个过程域的能力,CMMI中包括6个过程域能力等级:未完成的、已执行的、已管理的、已定义的、定量管理的、优化的。
计算机软件开发培训1.9简述各类软件过程模型的特点。
1. 瀑布模型:上一阶段的活动完成并经过评审才能开始下一阶段的活动,接受上一阶段活动的结果作为本阶段活动的输入,依据上一阶段活动的结果实施本阶段应完成的活动,对本阶段的活动进行评审。
2. 演化模型:从结构初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。
3. 增量模型:将软件的开发过程分为若干个日程时间交错的线性序列,融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征,特别适用于需求经常发生变化的软件开发。
4. 原型模型:开发人员和用户在“原型”上达成一致,缩短了开发周期,加快了工程进度,降低成本。
5. 螺旋模型:将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点,而且增加了风险分析。
6. 喷泉模型:各个阶段没有明显的界限,开发人员可以同步进行开发,可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
7. 基于构件的开发模型:利用预先包装的构件来构造应用系统。
8. 形式化方法模型:易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。
1.10敏捷软件开发的特点是什么?
1.个体和交互胜过过程和工具
2.可以工作的软件胜过面面俱到的文档
3.客户合作胜过合同谈判
4.响应变化胜过遵循计划
1.11简述敏捷软件开发的价值观。
1.个人和交互高于过程和工具
2.可运行软件高于详尽的文档
3.与客户协作高于合同(契约)谈判
4.对变更及时作出反应高于遵循计划
1.12简述敏捷软件开发的原则。
1.最优先的是通过尽早地和不断地交有价值的软件来使客户满意。
2.即使到了开发的后期,也欢迎改变需求。
3.以几周到几个月为周期,尽快、不断地发布可运行软件。
4.在整个项目过程中,业务人员和开发人员必须天天一起工作。
5.以积极向上的员工为中心建立项目组,给予他们所需要的环境和支持,对他们的工作予以充分的信任。
6.项目组内效率最高、最有效的信息传递方式是面对面的交谈。
7.测量项目进展的首要依据是可运行的软件。
8.敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度。
9.应时刻关注技术上的精益求精和好的设计,以增强敏捷性。
10.简单化是必不可少的,这是尽可能减少不必要工作的艺术。
11.最好的构架、需求和设计出自于自我组织的团队。
12.团队要定期反思怎样才能更有效,并据此调整自己的行为。
1.13通过本章学习,请对敏捷软件开发作简要评价。
(略)
1.14简述CASE工具和环境的重要性。
CASE已被证明可以加快开发速度,提高应用软件生产率并保证应用软件的可靠品质。计算机专业人员利用计算机使他们的企业提高了效率,企业的各个部门通过使用计算机提高了生产率和效率,增强了企业的竞争力并使之带来了更多的利润。
第二章
2.1简述系统工程的任务
1.识别用户的要求
识别用户对基于计算机的系统的总体要求,标识系统的功能和性能范围,确定系统的功能、性能、约束和接口。
2.系统建模和模拟
一个基于计算机的系统通常可考虑建立以下模型:硬件系统模型、软件系统模型、人机接口模型、数据模型。
3.成本估算及进度安排
开发一个基于计算机的系统需要一定的资金投入和时间约束(交互日期),需进行成本估算,并作出进度安排。
4.可行性分析
主要从经济、技术、法律等方面分析所给出的解决方案是否可行。
5.生成系统规格说明
作为以后开发基于计算机的系统的依据。
2.2基于计算机的系统由哪些元素组成?
1.软件
2.硬件
3.人员
4.数据库
5.文档
6.规程
2.3简述可行性分析的任务
1.经济可行性
a)成本
b)效益
c)货币的时间价值
d)投资的回收期
e)纯收入
2.技术可行性
a)风险分析
b)资源分析
c)技术分析
3.法律可行性
4.方法的选择和折衷
第三章
3.1需求工程的重要性是什么?
可以确定客户需求 帮助分析人员理解问题 评估可行性 协商合理的解决方法 无歧义的规约方案、确认规约以及将规约转换到可运行的系统时的管理要求。
3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?
1.需求获取:系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析。
2.需求分析与协商:分析每个需求与其他需求的关系以检查需求的一致性、重叠和遗漏的情况,并根据用户的需求对需求进行排序。
3.系统建模:通过合适的工具和符号系统地描述需求。
4.需求规约:给出对目标软件的各种需求。
5.需求验证:对功能的正确性、完整性和清晰性以及其他需求给予评价。
6.需求管理:对需求工程所有相关活动的规约和控制。
3.3一个系统分析员应该具备哪些思想素质和基本知识?请说明理由。
1.能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。
2.善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成分,并给出简明、清晰的描述。
3.善于从相互冲突或混淆的原始资料中抽出恰当的条目来。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论