软件工程第1章作业

合集下载

软件工程作业1

软件工程作业1

软件工程作业1软件工程作业1====================1-引言--------------------2-项目背景--------------------在此章节中,需要详细介绍软件工程作业1的项目背景和项目的目标。

描述项目的背景信息,包括相关的行业、应用领域和目标用户群体等。

明确项目的目标,即开发一个什么样的软件或系统,并说明该软件或系统的主要功能和优势。

3-需求分析--------------------在本章节中,将对项目的需求进行详细的分析和规格说明。

包括用户需求和系统需求的分析,将用户需求转化为可量化和可测量的系统需求。

在此章节中,需要明确项目的功能需求、性能需求、安全需求等各个方面的需求。

4-设计在此章节中,将进行系统的整体设计和详细设计的说明。

首先,进行系统的整体架构设计,包括模块划分、功能划分和模块间的关系等。

然后,对各个模块进行详细设计,并给出相应的设计文档,包括类图、时序图、状态图等。

最后,说明系统的界面设计和用户界面的交互。

5-开发--------------------在本章节中,将详细介绍项目的开发过程和开发环境的配置。

描述项目的开发过程中所采用的开发方法和开发工具。

对于项目的开发环境,包括开发语言、开发框架、集成开发环境等的配置和使用,都需要进行详细的说明。

6-测试--------------------在此章节中,将介绍软件工程作业1的测试策略和测试计划。

描述测试的范围、测试的方法和测试的步骤等。

针对不同的测试阶段,包括单元测试、集成测试、系统测试等,都需要给出相应的测试计划和测试用例。

7-附件本文档附带的附件包括项目的相关文档、设计图纸、测试样例等。

这些附件能够更加全面地展示软件工程作业1的开发过程和实现结果。

8-法律名词及注释--------------------在此章节中,列出本文档涉及的法律名词及其相应的注释解释。

这些法律名词的注释将有助于读者更好地理解和解释相关内容。

软件工程第一章习题答案

软件工程第一章习题答案

第一章习题1.1什么是计算机软件?软件的特点是什么?答:计算机软件(Computer Software,也称软件,软体)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。

程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。

软件的特点:1.软件是一种逻辑实体而不是有形的系统元件,其开发成本和进度难以准确的估算。

2.软件是被开发的或设计的,没有明显的制作工程,一旦开发成功,只需复制即可,但其维护的工作量大。

3.软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明。

答:软件分为系统软件,支撑软件和应用软件3类。

系统软件居于计算机系统中最靠近硬件的一层其他软件一般都通过系统软件发挥作用。

例如:编译程序,操作系统等。

支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统,网络软件,软件工具,软件开发环境等。

应用软件是特定应用领域专用软件。

例如:工程/科学计算软件,嵌入式软件,产品线软件,Web应用软件,人工智能软件等。

1.3简述软件语言的分类,并举例说明。

答:软件语言是用于书写计算机软件的语言主要包括:需求定义语言,功能性语言,设计性语言,实现性语言和文档语言。

需求定义语言用以书写软件需求定义,软件需求定义是软件功能需求和非功能需求的定义性描述。

软件功能需求刻画“做什么”,软件非功能需求刻画诸如功能性限制、设计限制、环境描述、数据预通信规程以及项目管理等。

功能性语言用以书写软件功能规约,软件功能规约是软件功能的严格而完整的陈述。

软件功能规约通常只刻画软件系统“做什么”的外部功能,而不涉及系统“如何做”的内部算法,因此,功能性语言通常又称为功能规约语言。

设计性语言用以书写软件设计规约。

软件设计规约是软件设计的严格而完整的陈述。

一方面,它是软件功能规约的算法性细化,刻画了软件“如何做”的内部算法;另一方面,它又是软件实现的依据从。

软件工程作业含答案解析

软件工程作业含答案解析

软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2简述软件的分类,并举例说明。

(1)1.4什么是软件工程? (1)1.5简述软件工程的基本原则。

(1)1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。

11.9简述各类软件过程模型的特点。

(2)1.10敏捷软件开发的特点是什么? (2)1.12简述敏捷软件开发的原则。

(2)第2、3章 (3)2.1简述系统工程的任务。

(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。

(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。

(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?33.3 一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。

43.4列出在制定需求获取策略时的3种主要考虑因素。

(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。

.53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。

5第4章 (5)4.1简述软件设计阶段的基本任务 (5)4.2软件设计与质量的关系是怎么样的? (6)4.4简述模块、模块化及模块化设计的概念。

(6)4.6耦合和软件可移植性的概念有何关系?举例说明自己的结论。

(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。

64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。

75.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。

软件工程概论第一次作业

软件工程概论第一次作业

第一章《软件工程概述》作业一、名词解释1.软件2.软件危机3.软件工程4.软件生存周期5.软件过程模型二、填空题1、在信息处理和计算机领域内,一般认为软件是、和。

2、软件生产的发展经历了时代、时代和时代,各时代的生产方式分别是、和。

3、软件生存周期的8个阶段分别是、、、、、、、。

4、软件工程是利用工程化的原理和方法来进行、和软件的一门学科。

5、描述软件开发过程中各种活动如何执行的模型称为模型。

6、瀑布模型适应需求可变的软件开发,只有到才能见到整个软件系统。

7、软件产品的生产主要是研制,软件产品的成本主要体现在上。

8、软件工程面临的问题有、、、。

三、单项选择题1、软件文档是【】。

A.程序B.工具C.文书和资料D.数据2、软件是一种【】性工业产品A.理论B.知识(或逻辑)C.消耗D.物资3、与计算机科学的理论研究不同,软件工程是一门【】的学科。

A.理论性 B.工程性 C.原理性 D.心理性4、软件工程与计算机科学的性质不同,软件工程着重于【】。

A.理论研究 B.建造软件系统 C.原理探讨 D.原理的理论5、软件工程学科出现的直接原因是【】。

A.计算机的发展 B.其它工程学科的影响C.软件危机的出现D.程序设计方法学的影响6、软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,以期达到的最终目标是【】。

A.软件开发工程化 B.消除软件危机C.实现软件可重用D.程序设计自动化7、由于软件生产的复杂性和高成本,使大型软件的生成出现危机,软件危机的主要表现包括了下述【】方面。

①生产成本过高②需求增长难以满足③进度难以控制④质量难以保证A.①② B.②③ C.④ D.全部8、软件的主要结构和功能是在【】阶段决定的。

A.分析设计B.编程C.测试D.维护9、有关计算机程序功能、设计、编制、使用的文字或图形资料称为【】。

A.软件B.文档C.程序D.数据10、软件生成周期模型有多种,下列选项中,【】不是软件生存周期模型。

软件工程第1章习题

软件工程第1章习题

软件工程第1章例题分析与解答一、填空题1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。

2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。

3.概要设计主要是把各项功能需求转换成系统的__体系结构______。

4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。

5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。

二、选择题1.同一软件的大量软件产品的生产主要是通过( B )而得到。

A.研究B.复制C.开发D.研制2.作坊式小团体合作生产方式的时代是( C )时代。

A.程序设计B.软件生产自动化C.程序系统D.软件工程3.软件工程与计算机科学性质不同,软件工程着重于( C )。

A.理论研究B.原理探讨C.建造软件系统D.原理的理论4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。

A.编码B.需求分析C.详细设计D.测试5.软件生存周期中时间最长的是( D )阶段。

A.需求分析B.概要设计C.测试D.维护一、填空题答案1.逻辑2.建造一个软件系统3.体系结构4.瀑布模型5.结构化方法二、选择题答案1.B2.C3.C4.A5.D第1章自测题及参考答案一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与_____软件___。

2.程序设计时代的生产方式是___个体手工劳动_____。

3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。

4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。

5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。

6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。

计算机软件工程第一章习题答案

计算机软件工程第一章习题答案

1.计算机软件具有哪些共同特点?它们和硬件的主要区别有哪些?(1)软件是一种逻辑实体,而不是具体的物理实体。

因此,它具有抽象性。

(2)软件的生产与硬件不同,软件是由开发或工程化而形成的,它没有明显的制造过程。

对软件的质量控制,必须立足于软件开发方面。

软件成为产品之后,其制造只是简单的复制而已。

(3)任何机械、电子设备在运行和使用过程中,其失效率大致遵循如图1-6所示的U型曲线(即浴盆曲线)。

软件的情况与此不同,它不存在磨损和老化问题。

然而,它存在退化问题,设计人员必须多次修改(维护)软件。

图1-7给出了软件故障率的理想曲线,图1-8给出了实际的软件故障率曲线。

故障率时间0t图1-6 硬件的故障率曲线示意图图1-7 软件的理想故障曲线故障率0时间t理想曲线实际曲线由于负作用造成的故障率提高图1-8 软件的实际故障率曲线(4) 软件的开发和运行往往受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

为了解除这种依赖性,在软件开发中提出了软件移植的问题。

(5) 迄今为止,虽然有许多软件工具能够帮助我们自动生成一些软件代码、结构和框架,但是总体来说,软件的开发尚未完全摆脱手工的方式。

(6) 软件本身是复杂的。

软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。

(7)软件的成本相当昂贵。

软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它投入的成本是比较高的。

(8)相当多的软件工作涉及社会因素。

许多软件的开发和运行涉及机构设置、体制运作及管理方式等问题,甚至涉及人们的观念和心理,这些因素直接影响到项目的成败。

(9)从市场上买到的软件,它本身就是一个完整的软件,而不能作为构件再组装成新的程序。

但目前已有大量支持“软件复用”的软件和中间件作为相对独立的构件。

2.什么是软件生命周期?面向对象与传统软件工程有何相同之处?计算机软件,从决定进行开发到最终退役所经历的一系列步骤与过程称为软件生命周期。

软件工程作业1-4 章答案

软件工程作业1-4 章答案
-------------------以上为第三章知识点---------------------------------------
10.在SD方法中全面指导模块划分的最重要的原则是(D)。
A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性
11.在模块的3种基本属性中,反映模块内部特性的是(C)。
4.什么是需求分析?需求分析阶段的基本任务是什么?
答:所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。
任务:确定软件项目的目标和范围。调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作
7.数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。
A、SAB、SDC、SPD、SC
8.DFD中的每个加工至少有(B)。
A、一个输入流或一个输出流B、一个输入流和一个输出流
C、一个输入流D、一个输出流
9.需求分析阶段的关键任务是确定(D)
A、软件开发方法B、软件开发工具C、软件开发费D、软件系统的功能
IPO5
打印报表
处理
打印查询到的信息
IPO6
处罚管理
处理
根据规则对延期给予相应的处罚
IPO7
数量检查
处理
对读者借出的数量是否符合规定进行检查
DS001
读者信息
数据存储
读者信息录入,修改,删除,保存
DS002
库存信息
数据存储
图书的基本的情况以及所有图书的整体情况

软件工程前三章作业

软件工程前三章作业

软件⼯程前三章作业软件⼯程前三章作业第1章 绪论1. 什么是软件危机?为什么会产⽣软件危机?(1)软件危机是计算机软件开发和维护过程所遇到的⼀系列问题。

表现为:开发成本急剧上升。

质量很不可靠。

供不应求:软件开发率跟不上计算机应⽤迅速深⼊的趋势。

软件可维护性差——错误难以改正,新功能难以增加。

没有⽂档资料——给软件交流,系统的管理、维护造成困难。

(2)软件危机的原因:软件维护费⽤急剧上升,直接威胁计算机应⽤的扩⼤。

修改程序困难,抽调⼤量⼈员,影响其他软件开发等。

越晚发现错误,改正的成本就越⾼(因此强调重视需求)。

软件⽣产技术进步缓慢,是加剧软件危机的重要原因。

(软件开发理念和⼿段与客观实际存在的差异)1)对软件本⾝的认识存在差异。

2)对软件 的服务对象认识不⾜。

3)对软件开发缺乏科学管理。

4)软件开发⼿段落后。

2. 何谓⾯向对象软件⼯程?简述它与传统软件⼯程的差别和联系。

(1)⾯向对象软件⼯程以⾯向对象程序设计为基础,其开发过程可包括以下阶段: OO分析与对象抽取→对象详细设计→⾯向对象的编码和测试(2)它与传统软件⼯程的差别和联系。

传统软件⼯程⽅法适⽤于中⼩型软件产品开发;⾯向对象软件⼯程⽅法适⽤于⼤型软件产品开发。

传统⽅法中系统是过程的集合;⾯向对象⽅法中系统是交互对象的集合。

传统⽅法过程与数据实体交互;⾯向对象⽅法对象与⼈或其它对象交互。

传统⽅法中过程接受输⼊并产⽣输出;⾯向对象⽅法中对象发送与响应消息。

传统软件⼯程是以结构化程序设计为基础,⽽⾯向对象软件⼯程是以⾯向对象程序设计为基础。

与⾯向过程的软件⼯程的开发思想相⽐,⾯向对象开发⽅法不再是以功能划分为导向,⽽是以对象作为整个问题分析的中⼼,围绕对象展开系统的分析与设计⼯作。

传统软件⼯程开发过程包括需求分析、总体设计、详细设计、⾯向过程的编码和测试;⾯向对象软件⼯程开发过程包括需求分析与对象抽取、对象详细设计、⾯向对象的编码和测试。

第2章 软件⽣存周期与软件过程1. 什么是软件⽣存周期?把⽣存周期划分为阶段的⽬的是什么?(1)⼀个软件从开始⽴项起,到废弃不⽤⽌,统称为软件的⽣存周期。

软件工程(原书第九版)课后练习第一章答案

软件工程(原书第九版)课后练习第一章答案

第一章课后练习(P15)1.解释为什么专业化软件不仅仅包括为用户所开发程序?专业化软件在开发上与在与软件就有所不同。

专业软件通常是由团队开发而非个人,除了开发者外还有其他的用户使用。

如果你的软件有别的用户,别的工程师会去修改的话,你就必须提供除了程序源码之外的其它附带信息。

因此,系统通常除了包含一些单独的程序还有用于这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档,以及告知用户下载最新产品的Web站点。

2.通用软件产品开发和定制软件开发直接有什么不同?这在实际应用中对通用软件产品用户意味着什么?(1)重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定开发者必须按客户要求进行开发。

(2)意味着通用软件很难满足通用软件客户的特殊需求。

如可靠性、安全性、快捷性。

3.软件产品应该具有与的4重要属性是那些?另外列举出4个可能有意义的属性。

重要属性:可维护性、可依赖性和安全性、有效性和可用性。

可能有意义的属性:可复用性、可分发性、可移植性和互用性。

4.除了异质性挑战、业务和社会的变革、安全和可信,说出软件工程在21世纪的可能面临的其它问题和挑战。

交付上的挑战:许多传统的软件工程技术需要耗费大量的时间,用于提高软件质量。

而今天的软件制作必须响应快、更换迅速,支持软件也必须同样快地进行更换。

交付上的挑战是:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。

5.参论的应用类型,照1.1.2节讨举例介绍为什么设计和开发不同类型的应用需要专门的软件技术。

如汽车上年的嵌入式控制系统对安全性要求极高,在车上安装是要烧制到ROM中在这里的交互在这里是很少的(或许根本就没有)。

基于Web式系统更适合用于迭代式开发和交互。

而基于Web的系统编程使用的如Ruby一类的脚本语言,完全不适合嵌入式系统工程。

软件工程作业1

软件工程作业1

软件工程作业1软件工程作业11. 前言本文档旨在描述软件工程作业1的内容和要求,并提供相应的解决方案。

作业1主要涉及软件需求工程的一些基本概念和方法。

2. 背景软件需求工程是软件开发过程中的关键环节,它旨在识别和定义用户的需求,为软件开发团队提供指导,确保开发出符合用户期望的软件产品。

在软件工程作业1中,我们将通过一个简单的实例来了解需求工程的基本概念和方法。

3. 需求分析3.1 需求定义本作业要求开发一个简单的待办事项管理系统,主要功能包括:- 记录待办事项的标题和描述- 根据优先级对待办事项进行排序- 标记已完成的待办事项3.2 功能需求根据需求定义,我们可以确定系统的功能需求如下:- 用户能够添加新的待办事项,并提供相应的标题和描述信息。

- 用户能够查看已有的待办事项列表,并能够根据优先级进行排序。

- 用户能够标记已完成的待办事项,并将其从列表中移除。

3.3 非功能需求除了功能需求外,我们还需要考虑一些重要的非功能需求:- 界面友好:用户界面应该简洁明了,方便用户操作。

- 性能高效:系统应该能够迅速处理大量待办事项的增删改查操作。

- 可靠性:系统需要具备一定的容错能力,确保数据不会丢失,应对异常情况。

4. 系统设计4.1 架构设计本系统采用简单的三层架构设计,包括表示层、业务逻辑层和数据访问层。

- 表示层:负责与用户进行交互,接收用户的输入并显示相关信息。

- 业务逻辑层:负责处理用户的请求,进行待办事项的增删改查操作。

- 数据访问层:负责与数据库进行交互,存储和检索待办事项的信息。

4.2 数据库设计本系统采用关系型数据库来存储待办事项的信息,数据库中主要包含以下两个表格:- todos 表:用于存储待办事项的基本信息,包括标题、描述和优先级。

- completed 表:用于存储已完成的待办事项信息,包括标题、描述和完成时间。

4.3 用户界面设计用户界面应该简洁而直观。

主要包括下面几个界面:- 待办事项列表界面:显示用户添加的待办事项列表,并可根据优先级排序。

(完整word版)软件工程阶段性作业1

(完整word版)软件工程阶段性作业1

中国地质大学(武汉)远程与继续教育学院软件工程课程作业1(共 4 次作业)学习层次:专升本涉及章节:第1章一、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、 ( B )及( C )的完整集合。

其中, ( A )是按事先设计的功能和性能要求执行的指令序列。

( B )是使程序能够正确操纵信息的数据结构。

( C )是与程序开发、维护和使用有关的图文材料。

供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

开发软件时对提高软件开发人员工作效率至关重要的是( A )。

软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。

供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、 D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

有人将软件的发展过程划分为 4 个阶段:第一阶段(1950~1950 年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。

第二阶段(1950 年代末~1960 年代末)称为“基本软件期”。

出现了( A ),并逐渐普及。

随着( B )的发展,编译技术也有较大的发展。

第三阶段(1960 年代末~1970 年代中期)称为“程序设计方法时代”。

这一时期,与硬件费用下降相反,软件开发费急剧上升。

软件工程第一章作业

软件工程第一章作业

第一章作业1、什么是计算机软件?软件的特点是什么?答:计算机软件是指计算机系统中的程序及其文档。

软件的特点:①软件是一种逻辑实体,其开发成本和进度难以准确地估算。

②软件是被开发的或被设计的,没有明显放的制造过程,一旦开发成功,只需要复制即可,但其维护的工作量大。

③在软件使用过程中都有维护问题,软件的维护需要修改程序,修改可能引入副作用,从而使故障率升高。

2、简述软件的分类,并举例说明。

答:①系统软件。

例如,编译程序、操作系统等。

②支撑软件。

例如,数据库管理系统、网络软件、软件工具、软件开发环境等。

③应用软件。

例如,工程/科学计算软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件等。

3、简述软件语言的分类,并举例说明。

答:①需求定义语言。

例如PSL/PSA等。

②功能性语言。

例如光谱语言、Z语言等。

③设计性语言。

例如PDL等。

④实现性语言。

例如C、JA V A等。

⑤文档语言。

例如自然语言和半形式化语言等。

4、什么是软件工程。

答:(1)Fritz Bauer在NATO会以上给出的定义软件工程是建立和使用一套合理的工程,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行。

(2)IEEE在软件工程术语汇编中的定义软件工程是:①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究。

(3)《计算机科学技术百科全书》中的定义软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

其中,计算机科学、数学用于构造模型和算法,工程科学用于指定规范、设计规范、评估成本及确定权衡,管理科学用于计划、资源、质量成本等管理。

5、简述软件工程的基本原则。

答:①选取适宜的开发模型。

②采用合适的设计方法。

③提供高质量的工程支撑。

④重视软件工程的管理。

6、软件生存周期分哪几个阶段?分别简述各个阶段的任务。

软件工程作业1[1]

软件工程作业1[1]

软件工程作业1软件工程作业11. 引言软件工程是一门研究如何以系统性的、经济合理地开发、维护和运行软件的学科。

在软件工程的学习过程中,作业是非常重要的一环。

本文档主要阐述了软件工程作业1的相关内容。

2. 背景软件工程作业1是软件工程课程的第一个作业任务,旨在帮助学生初步了解软件工程的基本概念和方法。

通过完成作业1,学生应能独立思考问题、分析需求、设计解决方案,并按照规定的要求提交作业报告。

3. 作业要求软件工程作业1的要求如下:- 阅读并理解给定的需求文档- 思考并设计解决方案- 使用Markdown文本格式编写作业报告- 作业报告要求包含以下内容:- 对需求文档的理解- 解决方案的设计思路- 实现步骤的描述- 遇到的问题及解决方法- 作业的心得体会和反思4. 解决方案设计根据给定的需求文档,在设计解决方案时,可以参考以下步骤:1. 理解需求:仔细阅读并理解给定的需求文档,确保对需求有清晰的认识。

2. 分析需求:对需求进行系统性的分析,确定主要功能和模块,并将其进行合理划分。

3. 设计方案:根据需求的分析结果,设计合理的解决方案。

可以使用UML图表或其他适合的工具进行模块设计和流程图设计等。

4. 实施步骤:分阶段实施解决方案,按照设计的模块和流程进行编码和测试。

5. 问题解决:在实施过程中,可能会遇到一些问题,需要及时解决。

可以通过查阅相关资料、请教同学或老师等方式解决问题。

6. 作业报告:在完成作业后,按照要求使用Markdown文本格式编写作业报告。

将解决方案的设计思路、实现步骤和遇到的问题等内容详细描述,并总结体会和反思。

5. 遇到的问题与解决方法在完成软件工程作业1的过程中,可能会遇到一些问题,如:- 对需求的理解存在困难:可以通过多次阅读需求文档、请教同学或老师等方式解决。

- 编码和测试时遇到BUG:可以通过调试程序、打印日志等方式定位问题并解决。

- 缺乏有效的工具和资源:可以通过查阅相关资料、探索互联网等途径寻找合适的工具和资源。

软件工程第1-2章课后习题参考答案

软件工程第1-2章课后习题参考答案

软件⼯程第1-2章课后习题参考答案第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。

这些问题决不仅仅是不能正常运⾏的软件才具有的,实际上,⼏乎“所有软件”都不同程度地存在这些问题。

“软件危机”包含两⽅⾯的问题:(1)如何开发软件,以满⾜对软件⽇益增长的需求;(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)⽤户对“已完成的”软件系统不满意的现象经常发⽣;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的⽂档资料;(6)软件成本在计算机系统总成本中所占的⽐例逐年上升;(7)软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤普及深⼊的趋势。

出现软件危机的原因(1)开发⼈员与客户认识之间的⽭盾(2)开发⼈员能⼒与开发⽬标之间的⽭盾(3)预估与实际⼯作量之间的⽭盾(4)客户认识的提⾼与软件维护之间的⽭盾(5)遗产系统与实施软件之间的⽭盾2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引⼊变动,当然付出的代价更⾼。

⼀个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很⼩的,因为这不是整体构架的错误。

3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?软件⼯程是知道计算机软件开发和维护的⼀门⼯程学科。

软件工程第1章作业

软件工程第1章作业

软件工程第1章作业一、填空题(每小题1分,共15分)1、软件与物质产品有很大的区别,软件是一种_____逻辑_______产品。

2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于建造一个软件系统____________________。

3、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_瀑布模型。

4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为_生存周期。

5、软件工程是指导计算机软件开发和维护的一门工程学科。

6、软件工程包括___软件开发技术_________和____管理________两方面的内容,是技术与管理紧密结合所形成的工程学科。

7、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为_范型____________。

8、螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的__风险分析_________,弥补了这两种模型的不足。

9、____瀑布_____模型不能适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。

10、将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是__瀑布________模型。

11、喷泉模型是一种以用户需求为动力,以__对象________为驱动的模型。

12、一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法__________,使用相应的工具来进行。

13、软件工程的出现主要是由于_ ____软件危机__________的出现而产生的。

14、软件工程知识体系指南SWEBOK将软件工程知识体系划分为___10____个知识域。

15、Rational统一过程RUP是_用例_______驱动的、以体系结构为核心的、迭代的增量的过程,其迭代过程分为初始、细化、___构建________、移交4个阶段。

二、选择题(每小题2分,共30分)1、作坊式小团体合作生产方式的时代属于( C )时代。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程第1章作业
一、填空题(每小题1分,共15分)
1、软件与物质产品有很大的区别,软件是一种_____逻辑_______产品。

2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于建造一个软件系统____________________。

3、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_瀑布模型。

4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为_生存周期。

5、软件工程是指导计算机软件开发和维护的一门工程学科。

6、软件工程包括___软件开发技术_________和____管理________两方面的内容,是技术与管理紧密结合所形成的工程学科。

7、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为_范型____________。

8、螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的__风险分析_________,弥补了这两种模型的不足。

9、____瀑布_____模型不能适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。

10、将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是__瀑布________模型。

11、喷泉模型是一种以用户需求为动力,以__对象________为驱动的模型。

12、一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法__________,使用相应的工具来进行。

13、软件工程的出现主要是由于_ ____软件危机__________的出现而产生的。

14、软件工程知识体系指南SWEBOK将软件工程知识体系划分为___10____个知识域。

15、Rational统一过程RUP是_用例_______驱动的、以体系结构为核心的、迭代的增量的过程,其迭代过程分为初始、细化、___构建________、移交4个阶段。

二、选择题(每小题2分,共30分)
1、作坊式小团体合作生产方式的时代属于( C )时代。

A.程序设计
B.软件生产自动化
C.程序系统
D.软件工程
2、软件工程与计算机科学性质不同,软件工程着重于( C )。

A.理论研究
B.原理探讨
C.建造软件系统
D.原理的理论
3、个体手工劳动生产方式的时代是( A )时代。

A.程序设计
B.软件生产自动化
C.程序系统
D.软件工程
4、软件是一种( B )产品。

A、有形B、逻辑C、物质D、消耗
5、与计算机科学的理论研究不同,软件工程是一门( C )学科。

A、理论性B、工程性C、原理性D、心理性
6、软件工程学科出现的主要原因是( C )。

A、计算机的发展B、其他工程学科的影响
C、软件危机的出现D、程序设计方法学的影响
7、由于软件生产的复杂性和高成本性,使大型软件的生存出现危机,软件危机的主要表现包括了下述( D )方面。

①生产成本过高②需求增长难以满足③进度难以控制④质量难以保证
A、①②B、②③C、④D、全部
8、有关计算机程序功能、设计、编制、使用的文字或图形资料称为( B )。

A、软件B、文档C、程序D、数据
9、( A )是计算机程序及其说明程序的各种文档。

A、软件B、文档C、程序D、数据
10、以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )
A、喷泉模型
B、增量模型
C、瀑布模型
D、螺旋模型
11、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( C )。

A、详细设计阶段
B、概要设计阶段
C、需求分析阶段
D、测试和运行阶段
13、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。

主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。

螺旋模型将瀑布模型和演化模型相结合,并增加了___(1)_B__,它建立在__(2)__D__的基础上,沿着螺线自内向外每旋转一圈,就得到(2)的一个新版本。

喷泉模型描述了__(3)__A__的开发模型,它体现了这种开发方法创建软件的过程所固有的___(4)D_和___A_(5)__的特征。

(1)A、系统工程 B、风险分析 C、设计评审 D、进度控制
(2)A、模块划分 B、子程序分解 C、设计 D、原型
(3)A、面向对象 B、面向数据流 C、面向数据结构 D、面向事件驱动
(4)A、归纳 B、推理 C、迭代 D、递归
(5)A、开发各阶段之间无“间隙” B、开发各阶段分界明显
C、部分开发阶段分界明显
D、开发过程不分段
14、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C ).
A、硬件环境
B、软件开发的环境
C、软件开发工具和软件开发的环境
D、开发人员的素质
15、( A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

A、软件过程
B、软件工具
C、质量保证
D、软件工程
三、名称解释(每个4分,共20分)
1、软件
软件是计算机程序以及开发、使用和维护程序所需要的所有文档。

软件是包括程序、数据及其相关文档的完整集合。

2、软件工程过程
一个软件过程是一组引发软件产品生产的活动。

3、软件工程
软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及方法,其优点是以最小的代价开发高质量的软件并有效地维护它
4、软件生存周期
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期
5、软件生存周期模型
软件生存周期模型:描述软件开发过程中各种活动如何执行的模型。

对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心
四、简答题(每小题6分,共36分)
1、软件发展经历了哪几个阶段?各有何特征?
软件的生产经历了三个阶段。

即程序设计时代(1946—1956年)、程序系统时
代(1956—1968年)、软件工程时代(1968年至今)。

程序设计时代的特征:这个阶段的生产方式是个体手工劳动,使用的工具是机器语言、汇编语言。

程序系统时代的特征:这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法仍旧靠个人技巧,由于大的程序需要合作,开始提出结构化方法。

软件工程时代的特征:开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机。

2、什么是软件危机?产生的原因是什么?
软件危机是指软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:
⑵软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

3、软件工程的性质、目标和内容是什么?
性质:是一门综合性交叉学科,它涉及计算机科学,工程科学,管理科学,数学等领域.。

目的:是成功建造一个大型软件系统,所谓成功是要达到以下几个目标:①付出较底的开发成本;②达到要求的软件功能;③取得较好的软件性能;④开发的软件易于移植;⑤需要较低的维护费用;⑥能按时完成开发任务,及时交付使用;⑦开发的软件可靠性高;
内容:是软件开发技术和开发管理两个方面.主要研究软件开发方法,软件开发过程,软件开发工具和环境.在软件开发管理中,主要研究软件管理学,软件经济学,软件心理学
4﹑什么是软件生存周期?它有哪几个活动?
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护
5、软件生存周期模型有哪些主要模型?
主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型
6、软件工程基本原理的主要内容是什么?
1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用现代程序设计技术5)结果应能清楚地审查6)开发小组的人员应该少而精7)承认不断改进软件工程实践的必要性
7、什么是范型?3种主要范型是哪些?
通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,
也称范型。

三要素:方法、工具和过程。

相关文档
最新文档