现代软件工程复习要点

现代软件工程复习要点
现代软件工程复习要点

第一章

软件是什么?

1、软件是指在执行时提供所需的功能和性能的指令(计算机程序)instructions。

2、软件是使程序能够充分处理信息的数据结构data structures。

3、软件是描述程序操作和使用的描述性信息descriptive imformation。

为什么说软件是双重角色dual roles?

1、软件是一种产品。能提供计算潜在的生产、管理、获取、修改、显示或传递信息。

2、软件是交付产品的工具。能够实现计算机的控制(如操作系统)、信息的传播(如网络

软件)和其他程序的创建和控制(如软件工具和环境)。

软件的失败曲线

软件不会损坏,所谓的软件“坏了”指

1、出现了Bug。

2、软件的环境变了。

3、软件不能满足新的需求了。

软件和硬件的区别:

1、软件是设计开发的,不是传统意义上的生产制造的。

2、软件不会“磨损”

3、虽然整个工业向着基于构件模式发展,然而大多数软件仍是根据顾客需求定制的。

为什么软件必须改变(上图的change)

1、软件必须适应新的计算机环境或者技术的需要。

2、必须增强软件来实现新的业务需求。

3、软件必须扩展,来实现与其他更现代的系统或数据库的互操作。

4、软件必须重新架构,使其在网络环境中可运行。

软件的种类:系统软件,应用软件,工程/科学软件,嵌入式软件,产品线软件,网络/手机应用程序),人工智能软件(机器人、神经网络、游戏)。

云计算为网络计算设备提供分布式数据存储和处理资源。计算资源驻留在云之外,并且可以访问云中的各种资源。

产品线软件是一组软件密集型系统,具有共同的特点,满足特定市场的需求。软件产品线共享一组资产,包括需求、体系结构、设计模式、可重用组件、测试用例和其他工作产品。

Webapp的特点

1、网络密集性。大量用户可以一次访问webapp

2、不可预测的负载。网络应用的用户数量可能会因每天的数量级而变化。

3、性能。用户等待时间太长,可能会取消访问。

4、可用性。

5、数据驱动的。

6、内容敏感。内容的质量和审美性是重要决定因素。

7、持续的进化。

8、即时性。

9、安全性。

10、美学。

第二章

CMMI capability maturity model integration能力成熟度模型集成

PSP personal software process 个人软件过程

TSP team software process 团队软件过程

IEEE 给出的定义软件工程的定义:

1、将系统化、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应

用于软件。

2、在1中所述方法的研究。

软件工程是一种层次化的技术。

软件工程的根基在于质量关注点quality focus。

软件工程的基础是过程process。过程:活动的集合,行动,和任务执行时要创建一些工作产品软件工程方法method为建造软件提供了技术上的解决方法(“如何做”)。

软件工程工具tool为过程和方法提供自动化或半自动化的支持。工具集成起来称为计算机辅助软件工程(computer-aided software engineering)

自上而下软件工程的层次是:工具、方法、过程、质量关注点。

通用过程框架(generic process framework):

1、沟通communication

2、策划planning

3、建模modeling 包括需求分析analysis of requirements和设计design

4、构建construction 包括编码code generation和测试testing

5、部署deployment

软件保护活动umbrella activities:

1、软件项目跟踪和控制

2、风险管理

3、软件质量保证

4、正式技术评审

5、测量

6、软件配置管理

7、可复用管理

8、工作产品的准备和生产

过程模式定义:

过程模式提供了一个模板——一种描述软件过程中重要特征的一致性方法。通过过程模式,软件团队可以定义能最好满足项目需求的开发过程。

过程模式process model的模板:

1、模式名称。模式名称应该清楚表达该模式在软件过程中的的功能。

2、目的。简介描述模式目的。

3、类型。定义模式类型。

4、启动条件。模式应用的前提条件。

5、问题。模式将要解决的问题。

6、解决方法。描述模式的实现。

7、结束条件。模式成功执行后的结果。

8、相关模式。

9、已知应用实例。

过程评估process evaluation模板:

1、启动initiating

2、诊断diagnosing

3、建立establishing

4、执行acting

5、学习learning

PSP个人软件过程模板:

1、策划

2、高层设计。

3、高层设计评审。

4、开发。

5、后验。

解决问题步骤:

1、理解问题。

2、计划解决方案。

3、执行。

4、测试结果正确性。

第三章

过程模型种类:

1、惯例过程模型。

2、瀑布模型。

3、增量过程模型。

4、演化过程模型。

5、专用过程模型。

惯例过程模型提供了一个过程框架,由对应于软件工程动作的明确的任务集组成。

瀑布模型。又称经典生命周期。

沟通->策划->建模->构建->部署

出现问题:1、实际项目很少严格遵守这个顺序。2、客户通常难以清楚地描述所有需求。而瀑布模型要求客户明确需求。3、客户必须有耐心,只有在项目接近尾声的时候,他们才能得到可执行程序。

增量过程模型

1、增量模型

增量模型以迭代的方式运用瀑布模型。

第一个增量往往是核心产品。增量模型侧重于每个增量都提交一个可以操作的增量。

优点:1/可以规避技术风险。2/可以保证部分功能按时交付给最终客户,不至于造成过分的延期。

2、RAD模型

RAD rapid application development 快速应用程序开发,是一种侧重于短暂的开发周期的增量软件过程模型。通过基于构件的构建方法实现快速开发。能使开发团队在非常短的时间内创造出“全功能系统”。

RAD模型建模部分包括三个主要阶段:业务建模、数据建模、过程建模。

不足之处:1/需要大量人力资源。2/如果开发者和客户没有为短时间急速完成整个系统做好准备,RAD项目将会失败。3/如果系统不能很好地模块化,RAD构件建立会有很多问题。4/如果系统需求是高性能,并且需要通过调整构建接口的方式来提高性能,不能采用RAD模型。5/技术风险很高的情况下,不宜采用RAD。

演化过程模型

演化模型是迭代的过程模型。

1、原型开发模型0otyping model

优点:客户对实际的系统有了直观的认识,开发者也迅速建立了一些东西。

缺点:1/客户看到了软件的工作版本,但不知道整个软件是粗糙的。2/开发者为了使一个原型快速运行起来,往往在实现过程中采用折衷的手段。

2、螺旋模型spiral model

优点:1/采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。2/确定一系列里程碑,确保共利益者都支持可行和令人满意的系统解决方案。

螺旋模型是开发大型系统和软件的理想方法。开发者可以在产品演进的任何阶段使用原型开发方法。

3、协同开发模型concurrent development model

专用过程模型

1、形式化方法模型

2、面向方面的软件开发

统一过程unified process UP

UP的起始,包括客户沟通和策划活动

UP的细化,包括用户沟通和通用过程模型的建模活动

UP的构建,与软件过程中构建活动一致

UP的转换

UP的生产,与通用过程的部署活动一致

五个UP阶段并不是顺序进行,而是阶段性并发进行。

第四章

Agile development 敏捷开发

敏捷的含义:1/有效地响应变化。2/所有利益相关者之间的有效沟通。3/将客户吸引到团队。4/项目计划必须是灵活的。5/快速、增量地交付软件。

敏捷过程必须具有自适应性。应使用增量式开发策略,必须在很短的时间间隔内交付软件增量来适应不可预测的变化的步伐。

敏捷开发中的人的因素human factors

1、基本能力。

2、共同目标

3、精诚合作

4、决策能力

5、模糊问题解决能力

6、相互信任和尊重

7、自我组织。包括三点:a、组织自身完成工作。b、团队组织最能适应当前环境的过

程。C、团队组织最好的进度安排以完成软件增量交付

极限编程extreme programming XP

XP的关键活动:

1、策划。策划活动开始于建立一些列描述待开发软件必要特征与功能的“故事”。

2、设计。XP设计严格遵循KIS keep it simple 保持简洁原则。

XP鼓励重构。重构定义:是以不改变代码外部行为而改进内部结构的方式来修改软件系统的过程。

3、编码。

4、测试。

第七章

RE requirement engineering需求工程。

需求工程定义:

需求工程和其他软件工程活动类似,必须适应过程、项目、产品和工作人员的要求。从软件过程的角度来看,需求工程是一个软件工程动作,开始与沟通并持续到建模。

需求工程过程通过执行七个不同的活动来完成:

1、起始。Inception

2、导出。Elicitation

3、精化。Elaboration

4、协商。Negotiation

5、规格说明。Specification

6、确认。Validation

7、管理。Management

1、起始

A、建立基本的理解

B、识别利益相关者stakeholders

C、识别多种观点

D、协同合作

2、导出

A、会议讨论

B、QFD质量功能部署普通需求、期望需求、令人兴奋的需求

C、用例场景

用例图

3、精化

精化的最终结果是形成一个分析模型,该模型定义了问题的信息域、功能域和行为域。

数据流图data flow diagram

活动图activity diagram

分析模型的元素:

A、基于场景的元素

B、基于类的元素

C、行为元素

D、面向信息流的元素

4、协商

A、识别每个利益相关者,这些相关者参与协商

B、确定每个利益相关者的赢得条件

C、谈判

5、规格说明

规格说明是需求工程师完成的最终工作产品,它将作为软件工程师后续活动的基础。

6、确认

A、对需求工程的工作产品进行质量评估

B、检查不一致、遗漏、错误的规格说明

C、正式技术评审是最主要的需求确认机制

7、需求管理

帮助项目团队识别、控制和跟踪需求并更改需求。

软件配置管理SCM

第八章

分析模型必须实现三个目标:

1、描述客户需要什么

2、为软件设计奠定基础

3、定义在软件完成后可以被确认的一组需求

分析的经验原则:

1、模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高一些。

2、分析模型的每个元素都应能增加对软件需求的整体理解,并提供对信息域、功能和系统

行为的深入了解。

3、关于基础结构和其他非功能的模型应推延到设计阶段再考虑

4、最小化整个系统内的关联

5、确认分析模型为所有共利益者都带来价值

6、尽可能保持模型简洁

分析建模的方法:

1、结构化分析。一种考虑数据和处理的分析建模方法,其中数据作为独立实体转换。

2、面向对象分析。该方法关注于定义类和影响客户需求的类之间的协作方式。

★★★分析模型的元素

1、基于场景的元素

A、用例文本

B、用例图

C、活动图

D、泳道图

2、面向信息流的元素

A、数据流图

B、控制流图

C、处理说明

3、基于类的元素

A、类图

B、分析包

C、CRC模型

D、协作图

4、行为元素

A、状态图

B、顺序图

分析建模通常开始于数据建模

数据对象是几乎任何必须被软件理解的复合信息的表示。

ERD实体/关系图

面向对象的分析

1、在客户和软件工程师之间必须对基本的用户需求进行交流

2、必须确定类(也就是说,定义属性和方法)

3、定义类的层次结构

4、表现对象与对象的关系(对象连接)

5、必须为对象行为建模

6、上述1-5的工作步骤重复迭代直至模型完成

PSPEC 处理规格说明

CRC建模class-responsibility-collaborator类-职责-协作者

行为模型显示了软件如何响应外部事件或刺激。要创建模型,分析师必须执行以下步骤:

1、评估所有的用例,以充分理解系统内交互的顺序

2、识别驱动交互序列的事件,并理解这些事件如何与特定对相关联

3、为每个用例创建一个序列

4、为系统构建状态图

5、检查行为模型以验证正确性和一致性。

需求模型描述中最基本的元素是用例。

为webapp需求建模

1、内容分析

2、相互作用分析

3、功能分析

4、配置分析

第九章

设计工程的目标是创作出坚固、适用和赏心悦目的模型或设计表示。

坚固性firmness:一个程序不应该有任何阻碍其功能的错误

适用性commodity:一个程序应该适合它的目的

赏心悦目delight:使用这个程序的体验应该是令人愉悦的

通用框架活动:

1、沟通

2、策划

3、建模需求分析和设计

4、构建编码和测试

5、部署

评价良好设计演化的三个特征:

1、设计必须实现所有包含在分析模型中的明确需求,而且必须满足客户期望的所有隐含需

求。

2、对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的,

可理解的指南。

3、设计必须提供软件的全貌,从实现的角度说明数据域功能域和行为域。

FTP正式技术评审

质量属性

FURPS

F 功能性functionality

U易用性usability

R可靠性reliability

P性能performance

S可支持性supportability

设计模式模板design pattern template

模式名称

目的

类别

动机

适用性

结构

参与者

协作

结果

相关的模式

模块化

P184

为什么要信息隐蔽information hiding:

1、减少“副作用”的可能性

2、限制本地设计决策的全球影响

3、强调通过控制接口进行通信

4、不鼓励使用全局数据

5、导致封装——高质量设计的一个属性

6、导致更高质量软件的产生

功能独立

独立性可以使用两条定性的标准评估:内聚性cohesion和耦合性coupling。内聚性显示了某个模块相关功能的强度;耦合性显示了模块间的相互依赖性。

内聚性是信息隐蔽的自然拓展。一个内聚的模块执行一个独立的任务,与程序的其他部分只需要很少的交互。

耦合性表明软件结构中多个模块之间的相互连接。在软件设计中,我们将尽力得到尽可能低的耦合。

一个组织良好的设计类的四个特征:

1、完整性与充分性sufficient

2、原始性primitiveness

3、高内聚性high cohesion

4、低耦合性low coupling

★★★设计模型中的元素

1、数据设计元素data elements

2、体系结构设计元素architectural elements

3、接口设计元素interface elements a、用户界面(UI)b、和其他系统、设备、网络或其他

的信息生产者或使用者的外部接口。C、各种设计构建之间的内部接口。

4、构件级设计元素component elements

5、部署级设计元素deployment elements

第十章

什么是体系结构:

一个程序和计算系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。

体系结构不是可运行软件。它能使软件工程师能够:1、分析设计在满足规定需求方面的有效性。2、在设计变更相对容易的阶段,考虑体系结构可能的选择方案。3、降低与软件构件相关联的风险。

为什么体系结构这么重要:

1、软件体系结构的表示有助于对计算机系统开发感兴趣的各方(共利益者)开展交流。

2、体系结构突出了早期设计决策。这些决策对随后的所有软件工程工作有深远影响,同时

对系统作为一个可运行实体的最后成功有重要作用。

3、体系结构“构建了一个相对小的,易于理解的模型,该模型描述了系统如何构成以及其

构件如何一起工作”。

什么是体系结构风格:

每种体系结构风格描述一种系统类别:1、一组构件a set of components完成系统需要的某种功能。2、一组连接器a set of connectors,它们能使构件间实现“通信、合作和协调”。3、约束constraints,定义构件如何继承为一个系统。4、语义模型semantic models,它能使设计者通过分析系统的构成成分的性质来理解系统的整体性质。

体系结构风格简单分类:

1、以数据为中心的体系结构data-centered architectures

2、数据流体系结构data flow architectures

3、调用和返回体系结构call and return architectures

4、面向对象体系结构object-oriented architectures

5、层次体系结构layered architectures

体系结构模式三种特性:

1、并发性concurrency

2、持久性persistence

3、分布性distribution

体系结构设计

1、系统的环境表示

软件架构师用体系结构环境图ACD对软件和外部实体交互方式进行建模

2、定义原始模型

A、结点node

B、探测器detector

C、指示器indicator

D、控制器controller

3、将体系结构精化为构件

4、描述系统实例

ADL体系结构描述语言,为描述软件体系结构提供一套语义和语法。

映射数据流到软件体系结构

1、变换流

信息必须以“外部世界”信息的形式进出软件

2、事务流

事务流通过数据沿某输入路径的移动来呈现其特征,对输入路径将外部信息转换成一个事务。

3、变换映射★

变换映射是一组设计步骤,可以将具有变换流特征的DFD映射为某个特定的体系结构风格。

A、评审基本系统模型。

B、评审和精化软件的数据流图。

C、确定DFD是否含有变换流或事务流特征

D、通过确定输入和输出流的边界,分理处变换中心

E、完成“第一级分解”

F、完成“第二级分解”

G、使用提高软件质量的设计启发式方法,精化第一次迭代得到的体系结构。

P215

4、事务映射

★P222

第十一章

什么是构件:

构件是系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列接口。

构件有三个重要观点:

1、面向对象的观点object-oriented view

2、传统观点traditional view

传统构件也被称为模块它承担下列三个重要角色之一:a、控制构件。B、问题域构件。

C、基础设施构件。

3、过程相关的观点process-related view

构件级设计的基本设计原则:

1、开关原则OCP

2、Liskov替换原则LSP

3、依赖倒置原则DIP

4、接口分离原则ISP

5、发布复用等价性原则REP

6、共同封装原则CCP

7、共同复用原则CRP

内聚性

耦合性

最简单的OCL语言语句由四个部分组成:

1、语境context定义了哪些情况语句是正确的。

2、特性property描述语境的一些特征。

3、操作operation用来操纵和限定一个特性。

4、关键字keyword用于说明条件表达式。

PDL程序设计语言

第十二章

界面设计的三条黄金规则:

1、置用户于控制之下

A、以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式

B、提供灵活的交互

C、允许用户交互被中断和撤销

D、当技能级别增长时可以使交互流线化并允许定制交互

E、使用户与内部技术细节隔离开来

F、设计应允许用户与出现在屏幕上的对象直接交互

2、减少用户的记忆负担

A、减少对短期记忆的要求

B、建立有意义的缺省

C、定义直观的快捷方式

D、界面的视觉布局应该基于真实世界的象征

E、以不断进展的方式揭示信息

3、保持界面一致

A、允许用户将当前任务放入有意义的环境中

B、在应用系统家族内保持一致性

C、如果过去的交互模型已经建立起了用户期望,除非有迫不得已的理由,否则不要改

变他。

分析和设计用户界面要考虑四种模型:

1、工程师建立用户模型

2、软件工程师创建设计模型

3、最终用户在脑海里对界面产生的映像,称为用户的心理模型或系统感觉

4、系统的实现着创建现实模型。

要保持四个模型一致

用户界面分析和设计过程包括四个不同的框架活动:

1、用户、任务和环境分析及建模

2、界面设计

3、界面构造(实现)

4、界面确认

界面分析:

1、用户分析

A、用户访谈

B、零售输入

C、市场输入

D、支持输入

2、任务分析和建模

A、用例

B、任务细化

C、对象细化

D、工作流细化

E、层次表示

3、显示内容分析

4、工作环境分析

界面设计步骤:

1、使用界面分析中获得的信息,定义界面对象和行为

2、定义那些导致用户界面状态发生变化的事件(用户动作)。对这个行为进行建模。

3、描述每一个界面状态,就像最终用户实际看的那样。

4、简要说明用户如何从界面提供的界面信息来解释系统状态。

第十三章

传统软件的测试策略

1、单元测试

2、集成测试

自顶向下集成

自底向上集成

回归测试

冒烟测试

调试策略

三种调试方法:

1、蛮力法

2、回溯法

3、原因排除法

第十五章

软件质量定义:

一种有效的过程,它能创造出一种有用的产品,为生产它的人和使用它的人提供可衡量的价值。

软件工程课程介绍

课程介绍 课程特点: -既是一门技术学课程,也是一门管理学课程; 一既具有理论性,也具有较强的实操性。 课程目的: 一基本: 掌握软件工程的基本概念和基本原理; 掌握分析、设计、测试与维护软件系统的理论与方法; 实践软件系统 开发的全过程,构建一个软件系统。 一进一步: 转变对软件的认识:程序---------- 系统; 转变思维定式:程序员---------- 系统分析员/系统设计员; 工程化训练:规范、准则、项目管理。 课程的主要内容: 软件工程人才分布示意图

-软件工程的产生、软件的生命周期、生命周期模型; -软件开发各阶段的目标、任务、特点、步骤和文档; -传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则; -面向对象软件工程的基本思想、基本过程和基本模型; -软件工程的管理技术。 课程重点: -掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工_ 具。 Chp.7编码与测试(实现) 教学安排: -48学时讲授; -课后作业和课后实验。 考核: —期末考试:70%;

一作业+分组实验:30%。 教材: -软件工程导论(5th),张海藩,清华大学出版社 参考文献 -软件工程(第二版),齐治昌,高等教育出版社 -软件工程实践教程,谭庆平等,高等教育出版社 先修课程: -程序设计语言 -数据结构 -数据库原理与设计 课程实验: —实验题目: 题目1:课程注册系统 为高校教务管理部门开发一个选修课程注册管理系统。在每学期开学前,教务管理人员可利用该系统输入课程信息、设定课表(每门课的任课教师、上课地点、上课时间)。开学后,学生可以利用该系统查询课程和课表信息,在第一周内注册课程和取消对课程的注册。软件系统负责将学生所选课的列表通知计费系统以确定学生应缴纳的选课费用。在学期内,任课教师可随时查询选修其所授课程的学生的信息,学生可以随时查询课程信息、课表、本人已选课程列表,教务管理人员可以随时查询所有信息。学期结束, 教师可登记学生考试成绩。 题目2:航空定票系统

研究生现代软件工程期末考试试题

2013年研究生现代软件工程期末考试 2014年6月20日 某软件企业已经具有5年以上的开发经历,为了进一步拓展市场和提升市场竞争能力,在三个项目组以及SQA小组选拔了一些技术骨干作为SEPG小组成员,期望在公司内部推广CMM,争取3年之内能够通过CMM3的评级认证。 公司管理层要求一年内通过CMM2评级,第三年申请CMM3的资质认证并争取通过评审。为此,三个项目组的项目经理与SEPG和SQA小组成员共同商讨如何能够满足近期和远期目标。经了解,发现三个项目组的管理方式各不相同,开发方法也不统一:项目组A:采用传统的演化模型并使用基于数据流图的结构化方法进行系统开发; 项目组B:采用基于面向对象方法的UP模型进行系统开发; 项目组C:采用极限编程方法进行开发; 问题一:SEPG要求各项目组的项目经理给出各自项目组的基于里程碑的软件开发过程及相应的文档编制计划。 问题二:为了CMM3的目标SEPG根据各小组的软件开发过程决定采用通用的面向对象方法定义一个公司级的统一软件工程过程并给出基于KPA组织过程定义必须执行的活动(Key Practices)。 问题三:SQA小组基于SPEG定义的公司级的软件工程过程,参考ISO的质量模型开始着手制定CMM3需要的针对软件需求分析阶段的质量评估模型及其必须的尺度度量准则。 除此之外,项目组A各人员组成的工资待遇如下:1、项目经理:12000;2、工程师_X:5000;3、工程师_Y:6500;4、工程师_Z:3000;公司规定项目经理有权掌握项目40%经费进行管理,其中包括项目组的人员成本和平时加班补贴(平时加班按工资的2倍支付,国家法定假日3倍支付)。此时,公司交付给项目组A一个必须在2个月完成的项目,要求项目必须按照客户的具体需求完成分析、设计和开发任务,并能实现20%的利润,同时项目经理自己也打算给自己保留5%经费作为自己奖励。具体需求如下: 有一个医院期望开发一个《医院取药告知管理系统》。该系统要求实现病人在交费处使用自己的就医卡交费完毕后,系统会根据当前的取药人数分配取药窗口和相应的药剂师。每个窗口的药剂师按顺序使用系统,并接收系统分配的菜单。药剂师配药完成后使用系统功能显示并通知病人取药。 每个取药窗口有一个大屏幕显示取药的病人名称,每个人取药时间为2分钟并反复显示并广播病人的姓名;超过两分钟没来取药的病人信息会转到屏幕下方的滚动条滚动显示,可以显示多人姓名。取过药的病人信息随即被清除。取药大厅设置多台自动查询机,病人使用就医卡扫描后,查询机会显示病人姓名、取药窗口号以及在本病人之前未取药的人数或者是否处于超时等待取药。 作为项目经理,请根据上述功能需求回答以下问题: 问题四:给出该系统的功能列表(以用例表示)开发和后期维护的报价。 问题五:给出系统开发的进度安排,并确定关键任务路径上的人员安排使得项目进度效率最高且成本最低。 问题六:请根据自己熟悉的编程语言估算该系统的KLOC、C K(技术状态常数),并由此根据“软件工程”计算该系统开发的工作量。 问题七:给出开发周期内TOP5的风险因素。

工程经济学作业(完整版)

课后作业 一、章节1、2 讨论题1: 试举例说明沉没成本与机会成本的区别? 答:以上同济mem为例,我交了六万元学费,然后我读了几天不想读了,辍学了,学费应该不给退,然后这六万元学费就成了沉没成本;同样的,我花了两年半的业余时间完成了mem的学习,但假如我这两年半的业余时间我不读mem,我用来干别的,比如摆个摊,可以赚十万块钱,那这十万块钱就是我读mem 所失去的机会成本。因此简单的来说,沉没成本是花出去的而且没办法收回的成本,而机会成本是指干一样事情而必须要放弃的另外事情所能获得收益的成本。 讨论题2: 简述新建项目投资的构成、资金来源和形成的资产,以及它们之间的关系。 答: 新建项目投资的构成:由建设投资、流动资金和筹建期间长期负债利息构成; 资金来源:分为权益资金和负债资金两大块; 形成的资产:分为固定资产、无形资产、其他资产和流动资产。 它们之间的关系:负债资金中的长期负债和固定资产投资形成固定资产;无形资产投资形成无形资产;其他资产投资形成其他资产;流动资金和流动负债形成流动资产。 二、章节3 4.下列将来支付的现值为多少? (a)年利率为9%,第6年末为5500元。 答:P=F(1+i)-n 现值=F(P|F,i,n)=F(P|5500,9%,6)=3279.47(元) 5.下列等额支付的将来值为多少? (a)年利率为6%,每年末借款500元,连续借12年 答:F=A[(1+i)n-1]/i 将来值=A(F|A,i,n)=A(F|500,6%,12)=8434.97(元) 6.下列将来值的等额支付是多少? (a)年利率为12%,每年年末支付一次,连续支付8年,8年末积累金额15000元 答:A=F×i/[(1+i)n-1] 等额支付=F(A|F,i,n)=F(A|15000,12%,8)=1219.54(元) 7.下列现在借款的等额支付为多少? (a)借款5000元,得到借款后的第一年末开始归还,连续5年,分5次还清,利息按年利率4%计算。 答:A=P(1+i)n×i/[(1+i)n-1] 等额支付=P(A|P,i,n)=P(A|5000,4%,5)=1123.9(元) 8.下列等额支付的现值为多少? (a)年利率为7%,每年年末支付3500元,连续支付8年 答:P=A×[(1+i)n-1]/[(1+i)n×i]

现代软件工程第2章作业

1.填空题 (1)可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否、。可行性研究实质上是要进行一次简化,压缩了的和过程,要在较高层次上以较抽象的方式进行需求分析和过程设计。 (2)可行性研究需要从可行性、可行性、 可行性三个方面分析研究每种解决方法的可行性。 (3)典型的可行性研究有下列步骤:确定项目规模和目标, ,,导出和评价各种方案,推荐可行的编写可行性研究报告。 (4)一个可行性研究报告的主要内容包括:引言、可行性研究的前提、对现有系统的分析、、、、其他可供选择方案、结论意见。 (5)成本-效益分析的目的是从角度开发一个新的软件项目是否可行。成本-效益分析首先是估算将要开发的系统的 ,然后与可能取得的效益进行。 2.选择题 (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)对每一合理的方案分析员都应该准备()资料。 A.系统流程 B.组成系统的物理元素清单、成本-效益分析

软件工程(习题与参考答案)

第1章概述(习题与参考答案) [判断题] 1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(×) 2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(×) 3. 购买大多数计算机系统所需的硬件比软件更昂贵。(×) 4. 大多数软件产品在其生命周期中不需要增强功能。(×) 5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(√) 6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。(×) [选择题] 1. ()因素促使计算机系统越来越复杂。(D) A. 计算机内存和存储容量上的巨大增长 B. 外部输入/输出选项的更加多样性 C. 计算机体系结构方面的深刻变化 D. 以上所有选项 2. 下面的()不再是现代软件工程师关注的问题。(A) A. 为什么计算机硬件的成本这么高? B. 为什么软件需要很长时间才能完成? C. 为什么开发一个软件的成本这么高? D. 为什么不能在产品发布前去除软件错误? 3. 软件会逐渐退化而不会磨损,其原因在于()。(C) A. 软件通常暴露在恶劣的环境下 B. 软件错误通常发生在使用之后 C. 不断的变更使组件接口之间引起错误 D. 软件备件很难订购 4. 大多数软件仍然是定制开发的,其原因在于()。(C) A. 软件组件重用是十分普遍的 B. 可重用的组件太昂贵而无法使用 C. 软件在不使用其他组件的情况下很容易构造出来 D. 商业组件在很多应用领域中可以得到 5. 下面的()说法是正确的。(C) A. 软件危机在20世纪70年代末期全面爆发

B. 当前先进的软件工程方法已经解决了软件危机的问题 C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题 D. 软件危机是指在软件产品中存在一系列的质量问题 6. 软件工程的基本目标是()。(B) A. 消除软件固有的复杂性 B. 开发高质量的软件 C. 努力发挥开发人员的创造性潜能 D. 更好地维护正在使用的软件产品 7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方 法、工具和过程三个要素。(D) A. 软件产品 B. 软件过程 C. 软件测试 D. 软件工程 8. 软件工程的基本要素包括方法、工具和()。(C) A. 软件系统 B. 硬件环境 C. 过程 D. 人员 9. 软件工程师在从事软件工作时应使用下面的()准则。(E) A. 从来不为个人获利而窃取数据 B. 从来不散布或出售项目中自己工作的信息 C. 从来不故意毁坏或修改别人的程序、文件或数据 D. 从来不侵犯个人、小组或组织的隐私 E. 以上所有选项 第2章软件过程(习题与参考答案) [选择题] 1. ()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、 软件确认、软件改进等活动组成。(A) A. 软件过程 B. 软件工具 C. 软件产品 D. 软件工程 2. 软件过程的基本活动是()。(A) A. 分析、设计、实现、测试、演化 B. 沟通、计划、建模、构造、部署 C. 计划、分析、设计、实现、调试 D. 沟通、风险管理、度量、产品化、评审 3. ()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B) A. 真 B. 假

工程经济学大作业

工程经济学 非公共项目经济评价 题目新型重磅涤纶仿麻织物“彩格麻” 和“亚麻皱”项目评价 学院(系)经济与管理学院专业07级工程管理学号070010 学生姓名李洋宇 日期2010/7/9

目录 第一章基础数据 (2) 第二章关键参数选取 (6) 第三章项目财务评价的辅助财务报表和基本财务报表 (7) 第四章国民经济评价——辅助报表和基本报表 (13) 第五章项目财务评价 (15) 第六章国民经济评价分析 (20) 第七章收获与感想 (21)

一、基本资料 1、项目背景 华东地区某纺织公司针对目前市场上低档纺织品销路不畅、价格疲软的状况,组织技术开发人员研制开发出新产品――重磅涤纶仿麻织物“彩格麻”和“亚麻皱”。 2、产品市场 彩格麻采用涤纶低弹丝和涤纶低弹色丝为原料加工而成,仿麻效果强烈,弹性好,透气凉爽,是夏季女装、T恤的理想面料,经市场预测,含税价为18元/米。 亚麻皱采用新一代涤纶花式丝为原料,经后整理具有强烈的仿麻效果,悬重性好,是秋季服装的理想面料,经市场预测,含税价为29元/米。 3、生产能力 产品适销后,市场反映良好。经市场调研,确定该项目基准设计生产能力为:年产彩格麻160万米、亚麻皱190万米。 每位学员设计生产能力方案为:(1)学号后两位小于50,按基准设计生产能力×(1+学号后两位%)计算;(2)学号后两位大于50,按基准设计生产能力×(1+(学号后两位-50)%)计算; 4、技术方案 项目生产工艺流程如下: →径向:络筒→倍捻→定形→分条整径 原料→→织造→检验→计量→打卷→入库 →纬向:络筒→倍捻→定形→倒筒 5、固定资产投资 根据生产工艺流程,项目需投资48台剑杆织机及30台套其他配套设备,经过设备选型及与供给厂商谈判,设备购置及安装配套费用合计为2038万元。 项目拟新建厂房3000米2,原材料成品库800米2,采用单层砖混结构,当地造价为750元/米2。项目拟征地20亩(为一般农田),当地土地使用费为10万元/亩。 项目选址在该市经济开发区内,水、路、空交通便利。项目需新增500KVA,电力增容费35万元,项目供水、供电、供气均有保证。 6、劳动定员及人工费用 项目需新增各类管理人员、生产人员、营销人员185人,年平均工资为32000元/人,职工福利费按工资总额的14%计提。管理人员、生产人员、营销人员的比例为5%,85%,10%. 7、原辅材料、燃料动力供应及消耗 原辅材料、燃料动力供应完全可立足本地解决。

现代软件工程(复习1)

软件的定义:(1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;(2)数据结构,它使得程序可以充分利用信息;(3)描述程序操作和使用的文档 遗留软件的定义:年代久远的过时的软件。 软件如其他工程原则制造的制品的区别:软件传递了我们这个时代最重要的产品——信息。 软件特征和硬件特征的区别:(1)软件是设计开发的,而不是传统意义上生产制造的。(2)软件不会“磨损”。 (3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。 为什么说软件不会随着时间而演化的说法是错误的:不管其应用领域、软件规模或者复杂性如何不同,计算机软件都将随着时间的推移不断演化。软件维护推动了软件演化,它通常是由以下情况引发的:程序纠错,调整软件以适应新的环境,满足用户新特性和功能的需求,以及对软件实施再工程以便在现代应用中发挥作用。 软件生命周期:软件的产生知道报废的生命周期,包括问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级和废弃。 软件工程的四个层次及之间的关系:工具、方法、过程和质量关注点。软件工程的根基在于质量关注点;软件工程的基础是过程层;软件工程方法为构造软件提供技术上的解决方法;软件工程工具为过程和方法提供自动或半自动化的支持。 软件工程的主要目标是什么?基本目标是什么? 软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。 软件工程的基本目标是:优质、高产。 软件构建与软件部署的区别:软件构建是程序员对软件进行编码和测试,是基于程序员的;软件部署是用户对软件成品的使用和反馈,是基于客户的。 软件过程的定义:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)所述方法的研究。 软件开发的原型模型的各个阶段:沟通、快速策划、建模快速设计、构建原型和部署交付品及反馈;循环执行以上步骤。 随着时间的推移,为什么软件需要不断演化? (1)环境运行环境的变化(2)用户需求的变化(3)用户业务需求的变化 软件工程中基于构件的软件过程模型的主要优势:基于构件开发模型能够使软件复用,软件复用为软件工程师带来极大收益。 在目前环境下,为什么说增量过程模型被认为是最佳的软件开发方法:早期的增量可以有少量的人员实现;增量可以规避技术风险。 ------------------------------------------------------------------------------------------------------------------------------------------------------------ 软件工程的通用框架以及框架活动:沟通、策划、建模、构建和部署;其中建模包括创建模型和设计,构建包括编码和测试。 惯例模型:规定了一套过程元素(框架活动、软件工程动作、任务、工作产品、质量保证以及每个项目的变更控制机制) ①瀑布模型 定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。 瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。 瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法; b.严格地规定了每个阶段必须提交的文档; c.每个阶段结束前必须正式进行严格的技术审查和管理复审。 瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。 开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。 ②快速原型模型 定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件

[0010]《软件工程》作业

1、对象是00方法的核心,对象的类型有多种,但通常把如飞行,事故,演出,开会等 称为(C) A,有形实体 B,作用 C,事件 D,性能说明 2、软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们(D) 1. A. 前者属于静态测试,后者属于动态测试 2. B. 前者属于动态测试,后者属于静态测试 3. C. 都属于静态测试 4. D. 都属于动态测试 3、数据流图是一种用来描述(A)的图形化工具 1. A. 系统信息流和数据流 2. B. 所有功能 3. C. 系统控制流和数据流 4. D. 系统物理组成 4、需求分析阶段的主要任务是确定(A) 1. A. 软件系统的功能 2. B. 软件开发方法 3. C. 软件开发工具 4. D. 软件开发费 5、汽车有一个发动机。汽车和发动机之间的关系是(B) 1. A. 继承关系

2. B. 聚合关系 3. C. 分类关系 4. D. 主从关系 6、(B)和数据流图共同构成系统的逻辑模型,没有它,数据流图就不完整 1. A. E-R图 2. B. 数据字典 3. C. 层次方框图 4. D. 数据流程图 7、汽车有一种叫货车。汽车和火车之间的关系是(A) 1. A. 继承关系 2. B. 聚合关系 3. C. 分类关系 4. D. 主从关系 8、(A)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息是对外界隐蔽的,外界只能通过有限的接口与对象发生联系 1. A. 封装 2. B. 消息 3. C. 继承 4. D. 多态性 9、消息是对象间交互的手段,消息刺激接受对象产生某种行为,消息的构成有三部分: 接受消息的对象,(B),若干变元。 1. A. 发出消息的对象 2. B. 消息名

软件工程课程教学大纲

《软件工程》课程教学大纲 (Soft Engineering) 课程编号: 学分:3 学时:48 (其中:讲课学时:42 实验学时:上机学时:6 )先修课程:C语言程序设计、数据结构与算法、计算机网络、数据库原理与应用、操作系统 后续课程:面向对象程序设计、信息工程监理、信息系统测评技术、软件工程实训 适用专业:计算机相关专业 开课部门:专业数学教研室 一、课程教学目的和课程性质 《软件工程》是信息与计算机科学专业本科学生的专业选修课,是一门综合性和实践性很强的课程。本课程主要介绍如何把工程化的思想和技术应用于软件系统的开发过程,以及在软件开发过程中必须遵循的基本原理、方法和工程标准。通过教学,使学生对软件生产工程化的具体思想、要求和方法均有较全面的了解, 为今后独立从事软件系统的开发打下相应的工程基础。 二、课程的主要内容及基本要求 第1单元软件工程学概述(3学时) [知识点] 软件的发展过程、软件危机、软件工程及开发方法。 [重点] 软件工程的基本概念、软件工程学的基本内容和软件生命周期中各阶段的基本任务。 [难点] 软件过程模型 [基本要求] 1、识记:软件、软件危机、软件工程、软件工程方法学; 2、领会:软件工程过程模型的定义及其特点; 3、简单应用:软件危机的产生原因; 4、综合应用:解释软件工程产生的原因,结合不同的软件特点对其开发应

当采用的软件过程模型。 [考核要求] 1、软件工程的定义; 2、软件生命周期的定义及其各个开发阶段的任务; 3、软件工程方法学定义及经典软件过程模型。 第2单元可行性研究(5学时) [知识点] 可行性研究的主要内容、任务及研究过程,系统流程图、数据流图、数据字典。 [重点] 系统流程图、数据流图的画法。 [难点] 可行性研究中的上层数据流图的构成方法。 [基本要求] 1、识记:可行性研究的主要内容、任务; 2、领会:如何画出所需的系统流程图; 3、简单应用:分析所需的数据字典并根据数据字典定义方法定义相关词条; 4、综合应用:在可行性研究过程中分析系统流程图,总结其数据字典,画出上层的数据流图。 [考核要求] 1、可行性研究的主要内容、任务; 2、数据流图的定义及画法,能够分析并画出可行性研究中的上层数据流图; 3、数据字典的组成及其符号定义方法。 第3单元需求分析(5学时) [知识点] 需求分析的任务、与用户沟通获取需求的方法、分析建模与规格说明、实体—联系图、状态转换图、其他图形工具、数据规范化。 [重点] 实体-联系图的概念及画法、状态转换图的定义及画法和常用图形工具的使用方法。 [难点]

《现代软件工程》作业.

《现代软件工程》作业 作业一: (一)名词解释 1.软件危机 2.数据流图 3.数据字典 4.变换流 5.事务流 6.耦合性 7.内聚性 8.程序设计语言(PDL) (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。 2. 数据流图的基本组成部分有_____、_____、_____、_____。 3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_____和_____两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。 6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。 (三)选择题 1. 软件工程的概念是哪年提出的( )。 A. 1988 B. 1968 C. 1948 D. 1928 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语言,军事理论,写作,高数1和高数2,离散1,中国近代史,思想道德,电子电路,英语1和2。大二是数据库原理,编译原理,离散2,数字电路,汇编语言,c++语言,mfc,计算机组成原理,英语3和4,日语1和2,马克思原理,毛邓。大三时jsp课程设计,sql server数据库,计算机体系结构,计算机网络,操作系统,计算机图形学,算法,日语3和4,人工智能,软件工程。大四我就不知道了。我刚读到大三。

《算法分析与设计》打下基础。 参考教材:《C++语言程序设计教程》谭浩强等编,高等教育出版社。 考核方式:考试。 3、04261050离散数学 《离散数学》是计算机科学与技术专业的必修课,主要学习集合论,图论,数理逻辑,形式语言等内容。本课程为学习计算机科学专业理论作好必要的准备知识,并为提高专业理论水平打下扎实的基础。 参考教材:《离散数学》朱一清编,电子工业出版社。 考核方式:考试。 4、04261060汇编语言程序设计 《汇编语言程序设计》是计算机科学与技术专业的必修课程,本课程的教学目的是:使学生掌握用汇编语言编写程序及上机运行的基本方法和技能,能用汇编语言设计实用程序,并了解与软、硬件有关课程的一些概念。 参考教材:《IBM PC汇编语言程序设计》沈美明、温科婵编,清华大学出版社。 考核方式:考试。 5、04261070数字逻辑 《数字逻辑》是计算机科学与技术专业的必修课。本课程是学习数字电路逻辑设计的理论和方法的一门课程。通过本课程的学习,使学生在深入理解理论的基础上,掌握数字电路组合网络和时序网络的分析与设计方法。前导课为《电路与电子技术》,后续课为《计算机组成原理》、《微机接口技术》、《计算机通信与网络》等课程。 参考教材:《数字逻辑与数字系统》王永军等编,电子工业出版社。 考核方式:考试。 6、04261080计算机组成原理 《计算机组成原理》是计算机科学与技术专业的必修主干课。本课程以《数字逻辑设计基础》及《汇编语言程序设计》为基础,主要讲授运算基础,运算器与运算方法;控制器与微程序设计;存储系统与辅助存储器;输入输出系统;计算机系统概述。通过本课程的学习,使学生能够较深入地理解与掌握计算机各功能部件的逻辑设计与实现,以及计算机整机各部件间的逻辑关系与连接。为后续课《微机接口技术》等奠定了理论与实验基础。

现代软件工程作业

(一)名词解释 1.软件: 软件是计算机程序、数据以及相关的各种文档的集合。 2.软件危机 软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。 3.数据流图 数据流图是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。 4.数据字典、 数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。 5.变换流 变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。 6.事务流 事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。 7.耦合性 耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。 8.内聚性 内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 9.程序设计语言(PDL) 程序设计语言(简称PDL),又称伪码,它是一种用于描述模块算法设计和处理细节的语言。 (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_程序____、__文档___ 和__数据___ 。 2. 数据流图的基本组成部分有_数据流__、_加工_、_数据存储_、_数据源点或终点_。 3. 数据流图和数据字典共同构成了系统的__逻辑_模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_变换型_和_事务型_两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_事务型_数据流图。

北理工17春秋《工程经济学》在线作业

一、单选题(共20道试题,共40分。)V1.当可选择的比选准则采用()时,就应选择效益-费用比最大的方案。 A.净效益最大准则 B.投资效率最大准则 C.二者都可 2.()是现代工业生产的重要物质和技术基础。 A.人力 B.资金 C.设备 D.三者之一均可 3.贷款与全部投资之比Kl/K称为()。 A.贷款比 B.投资比 C.债务比 4.()是指人们的一种有目的的经济行为,即以一定的资金投入某项计划以获取所期望的报酬。 A.净现金流量 B.投资 C.收益利润 5.在实践中,通常把为保持设备在平均寿命期限内的完好使用状态而进行的局部更换或修复工作叫() A.设备更新 B.修理 C.维修 D.现代化改装 6.以计算机集成制造系统为代表的()是近年来发展起来的新型工厂自动化系统。 A.传统的工业系统 B.先进制造系统 C.二者皆有 7.按一定的折现率将各年净现金流量折现到同一时点的现金累加值就是净现值用()表示。 A.NPV B.CI C.CO 8.在技术经济分析中,现金流入与现金流出之差称()。 A.净现金流量 B.现金流量 C.资产流动 9.()中的收益和费用的计算都涉及到价格,使用外汇或产品出口的项目还涉及汇率问题。 A.财务分析 B.经济分析 C.价格分析 10.()是指用于调查研究、系统分析、布局规划、方案设计、开发人员培训及有关计算机软件开发的费用。 A.规划设计费用

B.工程实施费用 C.系统运行费用 11.项目寿命期末的()表明项目经营的总效果。 A.盈余资金 B.资金来源 C.资金运用 D.累积盈余资金 12.机器设备在使用过程中所发生的实体的磨损称为()。 A.无形磨损#有形磨损 B.综合磨损 13.设备有形磨损的局部补偿是()。 A.现代化改装 B.维修 C.修理 D.三者都可 14.()是指投资项目所使用资金的来源及数量构成。 A.资金数量 B.资金结构 C.资金平衡 15.()可使设备精度降低,劳动生产率下降。 A.综合磨损 B.无形磨损 C.第Ⅱ有形磨损 D.第Ⅰ种有形磨损 16.每期偿还贷款利息,同时向银行存入一笔等额现金,到期末存款正好偿还贷款本金,称()。 A.气球法 B.等额利息法 C.偿债基金法 17.()反映着设备在实物形态上保持完好的时间。 A.平均寿命期限 B.经济寿命 C.技术寿命 D.三者之一均可 18.()是投资项目评价的核心内容。 A.经济资本 B.投资项目 C.经济效果 19.动态评价法主要包括现值法、年值法和() A.投资回收期法 B.研究期法 C.最小公倍数法 D.内部收益率法 20.为显示财务条件对企业经济效果的影响,必须分析资金结构因素,具体方法是编制()。 A.自有资金现金流量表

现代软件工程平时作业及答案

(一)名词解释 1.软件 2.软件危机 3.数据流图 4.数据字典 5.变换流 6.事务流 7.耦合性 8.内聚性 9.程序设计语言(PDL) (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。 2. 数据流图的基本组成部分有_____、_____、_____、_____。 3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_____和_____两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。 6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。 (三)选择题 1. 软件工程的概念是哪年提出的( )。 A. 1988 B. 1968 C. 1948 D. 1928 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. 与确认测试阶段有关的文档是( )。

工程经济学作业详解

作业: 1、某灌区面积为10万亩,主要种植小麦、棉花,灌区的种植比例是小麦25%,棉花75%。在灌溉工程修建之前,小麦年平均产量是210公斤/亩,棉花产量为72公斤/亩,工程修建后,由于采取各种措施,小麦产量增加到300公斤/亩。棉花产量增加到105公斤/亩。经过分析,确定该灌区的灌溉分摊系数为0.45。市场上小麦价格为1.4元/公斤,棉花价格为5.6元/公斤,试分析该灌区的灌溉工程效益。 2、某灌溉试验站,对小麦进行灌溉试验,若干年来得到如下资料: (1)按自然降水试验,得小麦平均单产128.9kg/亩; (2)按作物需水量灌溉,农技措施不变,得小麦平均单产169.7kg/亩; (3)按作物需水量灌溉,改进农技措施,得小麦单产205.8kg/亩。 计算该灌区小麦灌溉效益分摊系数。 第四章资金的时间价值与等值计算 习题和讨论题 1、如何理解资金和时间的关系?用实际例子来说明“时间就是金钱”这个概念。 2、试述利息的种类和市场经济条件下利息的作用。 3、动态经济分析方法的实质是什么? 4、用复利计算下列各题: (1)现在存入银行10000万元,月利率为8%,求5年后的本利和。 (2)若年利率为10%,要在8年后得到200000元,现在需要存入银行多少钱? (3)公司每年末存入银行100000元,若年利率为6%,问10年后的本利和为多少? (4)若年利率为7%,要在8年后得到100000元,从现在开始每年应存入多少钱? (5)现在借款80000元,10年内等额期末偿还,若年利率为6%,每年应偿还多少? (6)某工厂预计在10年内每年的盈利额年末累计为300000元,若年利率为6%,其现值为多少? 5、已知名义利率r=12%,计算下列各题: (1)按月计息,20000元,存期6年,求6年后的本利和。 (2)按季度计息,每年存入4000元,求8年后的本利和。 (3)半年计息一次,每年收入2500元,10年收入的现值为多少? (4)半月计息一次,5年归还20000元借款,每年还多少? (5)现在支出10000元,此后6年中每年末又支出5000元,而在第2年和第4年末个又支出8000元,若年利率10%,求到第6年的总支出。 6、某公司与外商谈判,拟向外商借款100万美元,年利率为7.5%,外商提出这笔贷款要在10年内还清本息,每年末等额偿还。在谈判时,外商提出每年应还本(100÷10)=10万元,还利息(100×7.5%)=7.5万元,因此该企业每年末共应偿还17.5万元,如该公司同意,即请签订合同。假如年利率7.5%是可以接受的,请你帮助决定该合同是否该签?如不能签,请你计算出以下几项数据来说明其理由: (1)若接受年利率7.5%,实际每年应该偿还多少?

软件工程概述课程作业

软件工程作业与解答 第一章软件工程概述 1.简述软件的发展过程。 答:计算机软件的发展经历了三个阶段:(1)程序设计阶段,约50至 60 年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段, 约70年代以后。各个时期软件开发的特点见课本第7页表1.3。 2.简述软件的定义及特点。 答:软件是计算机系统中与硬件相互依存的另一部份,它是包括程序、数据及其相关文档的完整集合。 特点见课本第1页至第3页。 3.简述软件的种类。 答:见课本第3页至第6页。 4.什么叫软件危机? 答:在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。 在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。 5.软件危机主要有哪几种表现? 答:见课本第8页(1)、(2)、(3)、(4)。

6.什么叫软件工程? 答:开发、运行、维护和修复软件的系统方法。 7.什么叫软件生存周期? 答:软件从孕育、诞生、成长、成熟到衰亡的过程叫软件生存周期。它 包括制定计划、需求分析、设计、程序编码、测试及运行维护。 8.简单介绍软件开发的瀑布型模型和螺线型模型。 答:见课本第11页至第14页。 第二章系统分析 1.简述系统分析的目标 (1) (2) (3) (4) (5) (6)识别用户要求; 评价系统的可行性; 进行经济分析和技术分析; 把功能分配给硬件、软件、人、数据库和其它系统元素; 建立成本和进度限制; 生成系统规格说明,形成所有后续工程的基础。 2.系统分析过程的第一步就是识别用户要求。要求的识别是系统开发的起点。为此,分析员必须回答哪些问题,才能完成这一步骤? (1) (2) (3) (4) (5) (6) (7) (8)所期望的功能和性能是什么可靠性和质量问题是哪些总的系统目标是什么成本与进度限制如何制造的需求是什么 市场与竞争情况怎样 有效的技术有哪些 将来可能有哪些扩充 3.软件项目的可行性研究主要集中在哪个方面? (1)经济可行性。(2)技术可行性。(3)法律可行性。(4)抉择。

现代软件工程第四章答案

习题四参考答案 1. 交互设计具体采用什么方法进行?有哪些设计手段和过程? 交互设计使用目标导向的设计方法,包括角色设计、目标设计、任务设计和人性化设计等几种方法。其中角色设计是虚构软件的潜在用户并进行精确的定义和设计,目标设计是提炼角色的目标,任务设计是角色为达到某个目标而必须执行的任务进行简洁的描述,也就是进行行为设计,最后进入界面设计阶段。 交互设计的手段 首先考虑什么人会使用产品?用在什么地方?接下来要了解用户会有些什么样的行为?交互设计的关键在于如何优化用户与产品之间的交互,从而使产品满足用户的期望。在做选择的时候你应当有所依据,而这个依据就是对用户的理解。这就涉及到: 考虑人们擅长什么、不擅长什么。 考虑什么可能对用户的当前做法有所帮助。 考虑如何提供高质量的用户体验。 听取人们想要些什么,并让他们参与设计。 在设计过程中,让用户来尝试和验证。 交互设计的过程 一般来说,交互设计涉及以下4项基本活动: (1)理解用户需要,建立用户需求 开发人员必须了解谁是目标用户、他们需要哪些支持,才可能设计出能支持这些用户的产品。首先找到真正的用户,然后从他们那里找到需求。用户和他们的需求是所有设计、开发工作的基础。在“以用户为中心”的方法中,这个活动是“万物之源”。简而言之,在这个阶段开发人员需要知道:用户想要什么,开发人员要做什么。 (2)开发一些候选设计方案 这是设计的核心活动,也就是提出满足用户需求的构思。它可以划分为两个子活动:概念设计和物理设计。所谓概念设计就是用一种用户能够理解的方式去描述产品应该做些什么、如何运作、外观如何;而物理设计考虑的则是产品的细节,包括要使用的色彩、声音和图像,还有菜单设计和图标设计。这些设计构思都需要提出各种候选方案,从而制作出原型以供评估。这个阶段其实就是:试试该如何来做。 (3)制作设计方案的原型 评价一个交互设计的最佳方法,就是让用户与产品进行交互,让用户去感受。这就要求开发人员要把设计方案转化为可以交互的版本,或者说产品的原型。 这些原型并不一定必须是能够运行的真正软件版本,可以采用很多技术来实现所谓的“交互”。比如说,制作纸张原型(把步骤画在纸片上并口头为用户演示)就又快捷又便宜,而且能在设计的早期阶段就发现问题。这个阶段概括来说就是:先简单地做个样子出来。 (4)用户测试和评估 开发者需要让用户来检验产品或软件。用一句简单的话来概括这个阶段也就是:让用户看看这个设计行不行。测试也需要重复进行。这个相互联系并且重复进行的特征被称为“迭代”,是交互设计过程的关键特征之一。测试的目的是要保证产品是可用的。因为不同的用户有不同的需要,开发人员需要相应地设计不同类型的产品。 为用户“度身订造”产品或服务,这一点通常可以采用“以用户为中心”的设计方法来实现。UCD方法要一切以用户的最终感受为出发点,让用户参与整个设计过程。同时,为 了验证产品确实能够满足用户,你也需要通过测试和评估来进行判断。

相关文档
最新文档