软件工程作业

第一次作业: 页脚内容1 第1章 概述 1.什么叫软件危机?软件危机主要有哪几种表现? 答:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机主要有下列表现:①产品不符合用户的实际需要。②软件开发生产率提高的速度远远不能满足客观需要。③软件产品的质量差。④对软件开发成本和进度的估计常常不准确。⑤软件的可维护性差。⑥软件文档资料通常既不完整,也不合格。⑦软件的价格昂贵。 2.什么叫软件工程?软件工程是如何克服软件危机的? 答:软件工程是指导计算机软件开发和维护的一门学科。它采用工程的概念、原理、技术和方法,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发与维护软件。 软件工程是这样克服软件危机的:①用分阶段的生存周期计划严格管理。②坚持进行阶段评审。③实行严格的产品控制。④采用现代程序设计技术。⑤应能清楚地审查结果。⑥合理安排软件开发小组的人员。 3.软件工程的目标、原则和主要研究内容是什么? 答:软件工程的目标是:①定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。②确定软件成分,记录软件生存周期每第一次作业: 页脚内容2 一步的软件文件资料,按步显示其轨迹。③可预测结果,在生存周期中,每隔一定时间可以进行复审。软件工程学的最终目的,是以较少的投资获得易维护、易理解、可靠、高效率的软件产品。 软件工程的原则是:①分解。②抽象和信息隐蔽。③一致性。④确定性。 软件工程的主要研究内容是:软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。 第2章 可行性研究 1.可行性研究的任务是什么?简述可行性研究的步骤。 答:可行性研究的任务是:①经济可行性。②技术可行性。③运行可行性。④法律可行性。⑤开发方案可行性。 可行性研究的步骤是:①复查系统规模和目标。②研究目前正在使用的系统。③导出新系统的高层逻辑模型。④重新定义问题。⑤导出和评价供选择的方案。⑥推荐一个方案并说明理由。⑦推荐行动方针。⑧书写计划任务书。⑨提交审查。 第3章 需求工程 1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎样做”? 答:需求分析的基本任务是分析与综合已收集到的需求信息,通过分析找出需求信息内在联系和可能的矛盾,通过综合找出解决问题的方法并建立系统的逻辑模型。具体地说,需求分析是提炼、分析和审查第一次作业: 页脚内容3 已收集到的需求信息,找出真正的和具体的需求,并确保所有相关人员都理解其含义。此外,通过建立软件系统的逻辑模型,发现和找出需求信息中存在的冲突、遗漏、错误或含糊的问题。①绘制系统关联图。②创建用户接口原型。③分析需求可行性。④确定需求的优先级。⑤为需求建立模型。⑥创建数据字典。⑦质量功能调配。 我是这样理解分析阶段的任务是决定“做什么”,而不是“怎样做”:分析阶段主要是指用户对软件的功能与性能需求,也就是用户希望软件能够做什么事情,完成哪些功能,达到哪些性能等,而不是如何去实现软件的这些功能。 2.需求规格说明书由哪些部分组成?各部分的关系是什么? 答:需求规格说明书由下列部分组成:①引言。②任务概述。③数据描述。④功能要求。⑤性能需求。⑥运行需求。⑦其他要求。⑧附录。 各部分的关系是:首先用户必须对软件功能和性能提出初步要求,并澄清一些模糊概念;然后软件分析人员认真了解用户的要求,细致地进行调查分析,把用户要求做什么的问题转换成一个完全的、精细的软件逻辑模型并写出软件的需求规格说明,准确地表达用户的要求。 第4章 概要设计 1.结构化设计方法的基本思想是什么?它如何与SA方法相衔接? 答:结构化设计方法的基本思想是:①系统分析员审查软件计划、软件需求分析提供的文档,提出候选的最佳推荐方案以及系统流程图、组成系统物理元素清单、成本效益分析和系统的进度计划供专家审第一次作业: 页脚内容4 定,审定后进入设计。②确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。③编写概要设计说明书、用户手册、测试计划,选用相关的软件工具来描述软件结构,选择分解功能与划分模块的设计原则。 它是这样与SA方法相衔接的:①设计系统方案。②选取一组合理的方案。③推荐最佳实施方案。④功能分解。⑤软件结构设计。⑥数据库设计与文件结构设计。⑦制订测试计划。⑧编写概要设计文档。⑨审查与复审概要设计文档。 2.什么是模块独立性?用什么来度量? 答:模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而且与其他模块接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。 模块的独立程度可以由两个定性标准度量,这两个标准分别称为耦合和内聚。耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。

3.什么是自顶向下设计?为什么说它尤其适用于大型软件的开发? 答:自顶向下设计:设计人员要对系统有一个全面的了解,然后从顶层开始,连续地逐层向下分解,直至系统的所有模块都小到便于掌握为止。 对于大型软件的开发,如若采用自顶向下的方法进行设计,可以第一次作业: 页脚内容5 很好的把握整体系统,使得系统整体结构合理。 第5章 详细设计 1.简述详细说明书的主要内容。怎样对它进行复审? 答:详细说明书的主要内容是:①表示软件结构的图表。②对逐个模块的程序描述,包括算法和逻辑流程,输入/输出项与外部接口等。 这样对它进行复审:详细设计复审的重点应该放在各个模块的具体设计上。例如,设计的模块能否满足其功能与性能要求,选择的算法与数据结构是否合理,是否符合编码语言的特点,设计描述是否简单而清晰等。 2.说明详细设计的基本原则和任务。 答:详细设计的基本原则是:①由于详细设计的蓝图是给人阅读的,是编码的基础,所以模块的逻辑描述要清晰易读、正确可靠。②采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。③选择恰当的描述工具来描述各模块算法。 详细设计的任务是:为每一个模块确定使用的算法和相关的数据结构,并用选定的表达工具清晰地描述。这一阶段的主要任务如下:①为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。②确定每一模块使用的数据结构。③确定模块接口的细节。④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试。 第6章 面向对象设计 第一次作业: 页脚内容6 1.什么是面向对象方法学?试阐述这种方法学的主要优点。 答:面向对象软件开发方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。 面向对象方法学的主要优点:①从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。②事物的静态特征是可以用一些数据来表达的特征,可以用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务(或操作)表示。③对象的属性与服务结合为一个独立的实体,对外屏蔽其内部细节,称为封装。④把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。⑤通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性和服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。⑥复杂的对象可以用简单的对象作为其构成部分,称为聚合。⑦对象之间通过消息进行通信,以实现对象之间的动态联系。⑧通过关联表达对象之间的静态关系。 2.面向对象分析的过程、遵循的准则是什么? 答:面向对象分析的过程:①发现对象、定义它们的类。②识别对象的内部特征。③识别对象的外部关系。④划分主题,建立主题图。⑤定义use case,建立交互图。⑥建立详细说明。⑦原型开发。 第一次作业: 页脚内容7 面向对象分析遵循的准则是:①抽象。②分类。③聚合。④关联。⑤消息通信。⑥粒度控制。⑦行为分析。 3.为“火车站自动化售票系统”设计一个结构化模型。 答:

第7章 编码 1.评价、选择可用编程语言的准则是什么? 答:(1)理想标准:①应该有理想的模块化机制,以及可读性好的控制结构和数据结构,以使程序容易测试和维护,同时减少软件生存周第一次作业: 页脚内容8 期的总成本。②应该使编译程序能够尽可能多地发现程序中的错误,以便于调试和提高软件的可靠性。③应该有良好的独立编译机制,以降低软件开发和维护的成本。(2)实践标准:①语言自身的功能。②系统用户的要求。③编码和维护成本。④软件的兼容性。⑤可以使用的软件工具。⑥软件可移植性。⑦开发系统的规模。⑧程序设计人员的知识水平。 2.提高软件可靠性的技术有哪些?它们有什么不同? 答:提高软件可靠性的技术有:一类是避开错误技术,另一类是容错技术。两者的不同是:避开错误技术是在开发的过程中不让差错潜入软件的技术;容错技术是对某些无法避开的差错,使其影响减至最小的技术。避开错误技术是进行质量管理,实现产品应有质量所不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术。但是,无论使用多么高水平的避开错误技术,也无法做到绝无错误,这就需要采用容错技术。实现容错的主要手段是冗余和防错程序设计。 3.采用面向对象的程序设计方法时,基本步骤是什么? 答:(1)建立软件系统的动态模型:①根据问题域和具体要求确定组成软件系统的对象及该对象所应具备的固有处理能力。②分析各对象之间的所有联系,并确定它们相互间的消息传递方式。③设计对象的消息模式,由消息模式和对象的处理能力共同构成对象的外部特性。(2)建立软件系统的静态模型:①分析各对象的外部属性,将具有相同外部属性的对象归为一类,进而确定不同的类别。②确定类间的

合集下载

软件工程三、四、五次作业

软件工程三、四、五次作业

1、已知某定货系统的需求分析阶段得到的DFD图如下,请按SD方法的设计步骤画出其程序结构图。

2、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。

请用判定表表达上述计算方案。

(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。

(3)在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序2、一个正文文件由若干个记录组成,每条记录是一个字符串。

要求统计每条记录中大写字母、小写字符以及非字母字符的个数,要求输出数据格式是:每复制一行输入字符串后,输出这个字符串中的大写字母个数、小写字母个数、非字母字符个数。

用Jackson方法,按照步骤,导出该系统的程序结构图。

1、设计下列伪码程序的语句覆盖和路径覆盖测试用例:STARTINPUT (A, B, C)IF A>5 THEN //判定表达式1X=10ELSE X=1END IFIF B>10 THEN //判定表达式2Y=20ELSE Y=2END IFIF C>15 THEN //判定表达式3Z=30ELSE Z=3END IFPRINT (X, Y, Z)STOP3.假设你的任务是对一个已有的软件做重大修改,而且只允许你从下述文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量的注解)。

你将选取哪两份文档?为什么这样选取?补充作业:设计一个软件开发规范,假象一种开发环境(硬件、系统软件、支持软件、数据库、开发语言等)。

软件工程作业1

软件工程作业1

软件工程作业1一、选择题:1.开发软件所需高成本和产物的低质量之间有着锋利的矛盾,这种现象称做〔C〕。

2.瀑布模型本质上是一种〔A 〕模型。

3.瀑布模型存在的问题是〔B 〕。

A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和〔A〕结合起来的软件开发模型。

A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于〔A〕系统。

A.需求不确定性高的 B.需求确定的C.打点信息 D.实时6.以下有关软件工程的尺度,属于国际尺度的是(D )7.布局化方法是一种基于〔D〕的方法。

A.数据布局B.程序布局C.算法D.数据流8.软件可行性研究本色上是要进行一次( A)需求阐发、设计过程。

A、简化、压缩的B、详细的C、彻底的D、深入的9.可行性研究的目的是〔D〕A、阐发开发系统的必要性B、确定系统建设的方案C、阐发系统风险D、确定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为〔C〕。

A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在〔A〕之前A、系统开发B、测试C、试运行D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的〔C〕。

A、1%B、20%C、8%D、50%13.我国正式发布实施的〔B〕对计算机病毒的定义具有法律性、权威性。

A.计算机软件庇护条例B.中华人民共和国计算机信息系统安然庇护条例C.中华人民共和国著作权法D.计算机病毒防治打点方法14.效率是一个性能要求,因此应当在以下哪个阶段规定?BA、可行性阐发B、需求阐发C、概要设计D、详细设计15.需求规格说明书的作用不包罗〔D〕A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义〔D〕中的各个成份的具体含义的。

面向对象软件工程—课后作业

面向对象软件工程—课后作业

面向对象软件工程第八章8.1.什么是面向对象方法学,它有哪些优点?答:面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。

优点:1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好;4、适合用于大型软件产品;5、所开发的软件有较好的可维护性;6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解;8、易于测试和调式。

8.2.什么是对象,它与传统的数据有何异同?答:对象是对问题域中某个实体的抽象。

相对于传统数据的静态被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。

8.3.什么是类?答:类是对具有相同数据和相同操作的一组相似对象的定义。

8.4.什么是继承?答:继承是指能够直接获得已有事物的性质和特征,而不必重复定义他们。

8.5.什么是模型,开发软件为何要建模?答:所谓模型就是为了理解事物而对该事物做出的一种抽象,是对事物的一种无歧视定义的书面描述。

由于模型忽略了事物的非本质东西,因此模型比原始事物更容易操作。

对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了降低复杂性。

人的头脑每次只能出来少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。

8.6.什么是对象模型,建立对象模型时主要使用哪些图形符号,这些符号的含义是什么?答:对象模型表示静态的、结构化的系统性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。

在UML中,用类图来建立对象模型,表示一个类及属于该类的对象。

8.7.什么是动态模型,建立动态模型时主要使用哪些图形符号,这些符号的含义是什么?答:动态模型时描述系统控制结构,即行为化的一种模型。

在UML中主要用状态图、交互图、活动图来建立动态模型。

《软件工程》作业及参考答案3

《软件工程》作业及参考答案3

软件工程作业及参考答案第五、六章一、填空题1.详细设计的工具有(图形工具)、表格工具和语言工具。

2.为使用流程图描述结构华程序,限制流程图有五种基本的控制结构(顺序型)、(选择型)、(while型循环)、until循环、多情况型选择。

3.HIPO图是由一组(IPO)图和一张(HC)图组成。

4.IPO图由(输入)、处理和(输出)三个框组成。

这个图的特点是能够直观的显示三者之间的关系。

5.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。

面向对象方法是一种运用(对象)、(类)、(封装)、(聚合)、消息传送、多态性等概念来构造系统的软件开发方法。

6.面向对象的软件工程方法是面向对象方法在(软件工程)领域的全面应用。

7.UML的定义包括(UML语义)和(UML表示法)两个部分。

二、判断题1.详细设计是在概要设计之后进行的。

它利用概要设计的结果,对系统中的每个模块给出足够的过程性描述。

(√)2.程序设计语言中应绝对禁止使用GOTO语句。

(╳)3.PAD图在设置了五种基本的控制结构后,还允许递归调用。

(√)4.UML设定的目标之一是运用面向对象概念来构造系统模型。

(√)5.类是关于对象性质的描述,由方法和数据集成。

(√)三、简答题1.详细设计的任务是什么?参考答案:1.为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;2.确定每一模块使用的数据结构;3.确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。

4.要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。

2.根据伪码画出N-S图。

STARTIF A THENBLOCKBCEND BLOCKEND IFSTOP3.根据伪码画出N-S图。

《软件工程》11套考试复习练习题、作业题(含答案)

《软件工程》11套考试复习练习题、作业题(含答案)

作业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年代中期)称为“程序设计方法时代”。

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

人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。

第四阶段(1970年代中期~现在)称为“软件工程时期”。

软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。

供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。

软件工程李爱萍 作业参考答案-最终版修改

软件工程李爱萍 作业参考答案-最终版修改
是“怎样做”?
5文档来源为:从网络收集整理.word 版本可编辑.
文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.
答:(1)1.确定对系统的综合需求。分析员和用户双方确定对软件系统的综合要求,具体 有功能需求、性能需求 、环境需求、接口要求、用户界面需求,另外还有可靠性、安全 性、保密性、约束、可移植性和可维护性等方面的需求,这些需求通常可以通过双方交流、 调查研究来获取,并达到共同的理解。
螺旋模型
加入了瀑布模型与增 该模型需要有相当丰富 将瀑布模型和快
量模型都忽略了的风 的风险评估经验和这方 速原型模型结合
险分析,使用原型及 面的专门技术,这使该 起来,强调了其
其他方法来尽量降低 模型的应用受到一定限 他模型所忽视的
风险
制。
风险分析,特别
适合于大型复杂
的系统。
第二章
2.1 在软件开发早期阶段为什么要进行可行性研究?可行性研究的任务是什么?应该从哪 几个方面研究目标系统的可行性?
规定要完成的主要活 能得到预期的正确结 发的模型,对于
动和任务,用来作为 果。它是一种理想的线 经常变化的项目
软件项目工作的基 性开发模式,缺乏灵活 而言,瀑布模型
础。
性,特别是无法解决软 毫无价值。
件需求不明确或不准确
的问题。
2文档来源为:从网络收集整理.word 版本可编辑.
文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.
2.分析系统的数据需求。因为绝大多数软件系统本质上都是信息处理系统,系 统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌。
3.建立软件的逻辑模型。 4.编写软件需求规格说明书。 目的是使用户和开发者能对未来软件有共同的理解,明 确定义未来软件的需求、系统的构成及有关的接口。需求说明相当于用户和开发者之间的一 份技术合同,是测试验收阶段对软件进行确认和验收的基准,是软件开发的基础。 5.需求分析评审 (2)需求分析实际上是调查、评价以至肯定用户对软件需求的过程,其目的在于精化软件

软件工程作业

1什么是软件设计?该阶段的基本任务有哪些?答:软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。

建议用数学语言来抽象事务和问题,因为数学是最好的抽象语言,并且它的本质就是抽象。

将复杂的问题分解成可以管理的片断会更容易。

将问题或事物分解并模块化这使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况软件设计阶段的任务主要是更具需求分析报告,把各个功能模块和系统框架规划,数据库设计,采用什么样的技术等。

把系统的需求报告变成一个开发报告。

2.什么是软件体系结构?研究软件体系结构有什么意义?对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。

这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持明确的需求可以制定明确的软件规格,越明确的规格来设计出来的软件架构越清晰。

需求的变更也是必须要考虑,有明确的变更趋势也可以更早的在设计中体现出来。

然后,在定制软件规格的阶段,要考虑一个问题,就是一些核心的技术,指的是这个项目中比较重要的关键的技术,应实验一个这些技术是否可行,如果稳定可靠才能采用,否则只能另寻它路.一些难关也是要考虑的。

这样制定的规格才能符合实际.这些工作应作为结构设计上的重要参考。

3.试对几种较为熟悉的软件体系结构的风格进行比较!a.C2风格。

C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。

B. 数据抽象和面向对象风格。

目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。

这种风格的构件是对象,或者说是抽象数据类型的实例。

c. 基于事件的隐式调用风格。

基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。

d. 管道/过滤器风格。

在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。

《软件工程》打印--大题作业

根据下面程序代码,画出程序流程图,然后设计满足条件组合覆盖的测试用例。

BEGIN T:=0IF ( X>=80 AND Y>=80 )THENT:=1ELSE IF ( X>=90 AND Y>=75 ) THENT:=2ENDIF END.答案:开始T=0X ≥80AND y ≥80T=1X ≥ AND y ≥75T=2结束YNY N经化简后的测试用例:x=95 y=95;x=95,y=70;x=70,y=95;x=70,y=70;一、应用题2一个城市的公共事业部决定开发一个“计算机化的”坑洼跟踪和修理系统。

市民通过本系统报告有坑洼时,要说明街道地址、大小、影响程度,还要记录报告者的姓名和电话,存储在坑洼报告信息中,被送到公共事业部,工作人员根据坑洼的地点和大小,修理队标识号,修理队的人数,被分配的装备,制定一份工单,送到维修队。

维修队修理后,将坑洼修理信息上报公共事业部的工作人员,包括:修理坑洼状况,使用填料的数量和修理的开销(时间、人数、使用的材料、装备)。

请画出数据流程图,并写出工单的数据字典。

市民报告坑洼信息IPO01DS01DS03坑洼信息工单信息坑洼信息坑洼信息坑洼信息工单信息维修单位信息维修结果录入IPO03生成工单IPO02生成维修报告IPO04DS02维修单位信息维修信息DS04坑洼维修信息工单信息坑洼维修报告制定工单指令坑洼信息公共事业部维修单位维修信息工单数据字典 数据项 类型 长度 初始值 备注 工单号 字符 8 自动生成 主键 坑洼编号 字符 8 DS01的主键 维修单位编号 字符 8 DS02的主键 制单日期 日期 8 当前日期 制单人 字符 8 工单描述 字符 500 工单级别 数字 1 0 计划工时 数字 2 0计划用填料量 数字 5 0 单位(吨)附加题:1、对下列子程序进行调试:procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x=l) then x:=x+l; end.该子程序接受x, y, z 的值,并将计算结果x 的值返回给调用程序。

软件工程作业及参考答案

软件工程一、软件危机与软件工程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.质量保证② A.需求分析 B.可行性研究C总体设计 D模块化设计③ A.文档编制 B.运行维护C.测试 D.验收8.软件开发中常采用的生命周期方法,由于其特征而一般称其为()。

A.层次模型B.瀑布模型 C.螺旋模型 D.对象模型9.描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。

其中,设计阶段又可以分成(B)和(C)两个步骤。

A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10.什么是软件危机软件危机产生的原因11.生命周期阶段的划分每个阶段的任务二、可行性研究1.可行性研究的任务步骤对于各种可能的方案,从哪几个方面进行可行性研究参考答案:任务:在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。

软件工程作业参考答案

《软件工程》作业参考答案作业一1.与硬件相比,软件具有哪些特点?答:与硬件相比,软件具有以下不同的特点:(1)软件是逻辑的,而不是物理的产品。

逻辑往往实际只存在于人的头脑当中,软件的开发过程极难加以控制。

(2)软件是由开发或工程化而形成的,没有明显的制造过程。

软件成本集中于"开"上,意味着软件项目不能象硬件制造项目那样来管理。

(3)软件在运行和使用期间,不存在硬件那样的磨损和老化问题,但它存在退化问题,开发人员必须维护软件。

(4)大多数软件是自定的,而不是通过已有构件组装而成的。

迄今为止,软件的开发尚未完全摆脱手工的方式。

(5)软件成本相当昂贵。

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

软件比任何其他人类制造的结构更复杂,甚至硬件的复杂性和软件相比也是微不足道的。

软件本质上的复杂性是软件产品难以理解,影响软件过程的管理,并使维护过程十分复杂。

2.系统工程过程主要包含哪些基本阶段?各阶段主要完成什么工作?答:系统工程过程主要包括:系统需求定义阶段、系统设计阶段、子系统开发阶段、系统整合(集成)阶段、系统安装阶段、系统运行与进化阶段、系统退役阶段。

(1)系统需求定义阶段,通过与系统各类用户协商讨论,确定系统整体的需求。

包括系统必须提供的基本功能,非功能的系统总体特性(可用性、性能、安全性等),系统的边界及限制条件等。

(2)系统设计阶段,要做的是如何将不同的组件整合成一个能提供所需功能的系统。

(3)子系统开发阶段,实现在系统设计阶段识别出来的那些子系统,若这个子系统本身又是一个大系统,则可能又进入另一个系统工程过程中。

若子系统是一个软件系统,那么包括需求、设计和实现等这样的一个软件过程就启动了。

(4)系统整合阶段,将一个个独立开发的子系统整合为一个完整的大系统。

(5)系统安装阶段,系统进入实际的工作环境。

(6)系统运行与进化阶段,一旦系统安装完毕就进入运行阶段,运行一个系统可能包括组织操作人员培训并且改变正常的工作过程以适应新的系统,因为系统描述可能包含错误或遗漏,所以未被发现的问题可能在这个阶段出现。

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