文档库 最新最全的文档下载
当前位置:文档库 › 软件工程课后习题答案(第八版)

软件工程课后习题答案(第八版)

软件工程课后习题答案(第八版)
软件工程课后习题答案(第八版)

软件工程课后习题:

?What are the differences between generic software product development and custom software development?

?Solution:

The essential difference is that in generic software product development, the specification is owned by the product developer. For custom product development, the specification is owned by the customer. Of course, there may be differences in development processes but this is not necessarily the case.

重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定。

?What are the four important attributes which all software products should have? Suggest four other attributes that may sometimes be significant.

?Solution:

For important attributes are maintainability可维护性,

dependability 可靠性, performance(efficiency)有效性and

usability可用性.

Other attributes that may be significant could be reusability可复用性 (can it be reused in other applications),

distributability 可分发性(can it be distributed over a network

of processors), portability可移植性 (can it operate on

multiple platforms) and inter-operability互用性 (can it work

with a wide range of other software systems).

?What is the difference between a software process model and a software process? Suggest two ways in which a software process model might be helpful in identifying possible process improvements.

?Solution:

A software process is what actually goes on when software is

developed. A software process model is an abstraction and

simplification of a process. Process models can be used to help

understand real processes and to identify which aspects of these

processes could be supported by CASE tools. 软件过程就是指在

软件开发过程中所做的一些事情。软件过程模型是过程的抽象和简化。

过程模型可用于帮助理解真正的过程,并可用于识别过程中的哪些方

面可用CASE工具支持。

Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the follow systems:

1) Anti-lock braking system

2) Virtual reality system

3) University accounting system

4) Interactive timetable

Solution:

(a) Anti-lock braking system: Safety-critical 安全鉴定system so

method based on formal transformations with proofs of

equivalence等价 between each stage.

(b) Virtual reality system: System whose requirements cannot be

predicted预知 in advance预先地 so exploratory programming

model is appropriate.

(c) University accounting system: System whose requirements should

be stable because of existing system therefore waterfall model

is appropriate.

(d) Interactive timetable交互式时间表: System with a complex user

interface but which must be stable and reliable. Should be based

on throw-away prototyping to find requirements then either

incremental development or waterfall model.

?Why a software system that is used in a real world environment must change or become progressively(日益增多地) less useful?

?Solution:

Systems must change because as they are installed in an environment the environment adapts to them and this adaptation naturally

generates new/different system requirements. 这种适应自然生成

新的系统需求

Furthermore, the system's environment is dynamic and constantly generates new requirements as a consequence of changes to the

business, business goals and business policies.商务的目标以及

政治相关Unless the system is adapted to reflect these

requirements, its facilities will become out-of-step with the

facilities needed to support the business and, hence, it will

become less useful.

?Why a good programmers is not always be a good software managers?

?Solution:

Management activities such as proposal writing, project planning and personal selection require a set of skill including

presentation 表述能力and communication skills交流的能力.

Organizational skills组织能力 and the ability to communicate

with other project team members.

Programming skills are distinct from these, it is common that they lack human communication skills他们缺乏交流技巧是一个普

遍的事实. So it does not follow that good programmers can

re-orient their abilities to be good managers.

管理活动包括提出书面建议,项目规划和进度,人员选择和评价,项目监督和评审,和其他队友的交流能力等。程序设计者的任务就不是这些,他们不需要和人交流的能

力,如果按照做好一个程序设计者的要求去做管理者的话,他肯定不是一个号的管

理者。

?Why the process of project planning is iterative and why a plan must be continually不断地reviewed during a software project.

?Solution:

Project planning can only be based on available information. At the beginning of a project, there are many uncertainties in the

available information and some information about the project and

the product may not be available. As the project develops, more

and more information becomes available and uncertainties are

resolved. The project plan therefore must be reviewed and

updated regularly to reflect this changing information

environment.

软件项目地规划取决于有用地信息。在项目进行期间不断产生新的信息,所以必须经常性的修改原有的计划。原本有用的信息可能会不再有用,

而原本一些不确定的信息反而会变得有用。最初对象目本身的估算是

实验性的,所以计划需要不断的修改。

?Suggest who might be stakeholders in a university student records system.

The stakeholders in a student records system include:

University central administration including those responsible for registration, payment of fees, exams and assessment and

graduation. 大学管理中心,包括报到,交纳学费,考试,作业和毕

业等

The students whose details are recorded in the system. 记录在这个系统中的学生

University departmental administrators who supply information to the system and use information from it. 大学部门管理者,需要

提供和使用这些信息

Academic staff that use information from the system. 使用系统信息的学院成员

Data protection officers (local and national). 数据保护工作者

Potential employers of students(who may require information from the system). 潜在的学生中的雇佣者

在学生记录系统中的参与者包括:

。学校管理中心包括负责学生注册,缴费,考试,评估,毕业事宜的相关人员

。那些被记录具体信息的学生

。把学生信息录入到系统并使用系统信息的学校部门人员

。使用这些信息的学术人员

。数据安全人员(本地和国家的)

。潜在的雇用学生的人(或许需要用到这个系统里面的信息)

7.3 For three of the viewpoints identified in the library

system. LIBYSY, suggest three requirement that could be

suggested by stakeholders associated with that viewpoint.

Solution:

You can tackle this problem using a brainstorming approach.

Obviously, there are many alternatives to the solutions

suggested here. Note the printing conflict is deliberate.

Viewpoint: Library manager

Requirement: Access to the LIBSYS system shall be restricted to accredited users of the library.

Requirement: The LIBSYS system shall provide a reporting facility that allows usage reports (who used the system, how often, what libraries were accessed) to be created and printed.

Requirement: The LIBSYS system shall be configured so that only document printing on specific library servers is permitted.

Viewpoint: Users

Requirement: The LIBSYS system shall be accessible from any location, including locations away from the university campus.

Requirement: It shall be possible to save LIBSYS queries, recall them and modify them for subsequent use.

Requirement: The LIBSYS system shall allow documents to be printed on user printers.

Viewpoint: System managers

Requirement: The restart time of the LIBSYS system after failure shall not exceed 5 minutes.

Requirement: The LIBSYS system shall provide a backup facility for user’s personal workspaces.

Requirement: The LIBSYS system shall be available for a range of platforms including Windows 2000, Windows XP and Mac OS X.

7.4 The LIBSYS system has to include support for cataloguing

new documents where the system catalog may be distributed across

several machines. What are likely to be the most important types

of non-function requirement associated with the cataloguing

facilities?

?Solution:

Important non-functional attributes for the cataloging services might be:

? Availability (because the system may be required at any time)

? Security (because the books data base musn’t be corrupted)

? Efficiency (because the system must respond quickly to each transaction)

For the browsing services, usability is also very important as these services should be easy to use without extensive training.

?Discuss an example of a type of system where social and political factors might strongly influence the system requirement. Explain why these factors are important in your example.

?Solution:

An example of a system where social and political factors influence system requirements is a system to manage the costs of public

healthcare. Politicians are anxious both to control costs and

to ensure that the best public image of the healthcare system

is provided. There is a potential conflict in such a system

between administrators who are driven by treatment costs and

doctors who are (or should be) driven by treatment effectiveness.

The requirements for the system might therefore embed particular

policies which are included as a result of organizations factors

(e.g. ensure that administrators can vet treatment costs) rather

than technical requirements.

社会和政治因素影响系统需求的一个例子是管理成本和公共卫生保健的系统。政治家们对控制成本和确保提供最好的卫生保健系统都很关心。

在这样一个系统中这本来就是一对潜在的矛盾,系统管理人员关心的

治疗成本而医生们关心的治疗效果。此时系统需求可能要建立在特殊

的包括一系列组织因素的政策上而不是技术需求。

?11.1 Why it may be necessary to design the system architecture before the specification are written?

Solution:

The architecture may have to be designed before specifications are written to provide a means of structuring the specification and

developing different sub-system specifications concurrently,

to allow manufacture of hardware by sub-contractors and to

provide a model for system costing.

体系结构设计过程输出了一个体系结构的设计文档,这样的设计文档包含了一系列图形化的系统模型描述和一些相关的描述文本。该文当描述了系统如何有子系统构成以

及每个子系统如何有模块构成。

11.4 Giving reasons for your answer, suggest an appropriate

structural model for the following systems:

1.an automated ticket-issuing system used by passengers at a

railway station

2. a computer-controlled video conferencing system that allows

video, audio and computer data to be visible to several

participants at the same time.

3. a robot floor-cleaner that is intended to clean relatively clear

spaces such as corridors, the cleaner must be able to sense walls

and other sbstructions.

Solution:

Ticket issuing system . The most appropriate architectural model is a centralised model with a shared repository of route and

pricing information. This means that changes are immediately

available to all machines. As little local processing is

necessary, there is no real advantage in

a client-server architecture. The centralised system also allows

global information and route use to be collected and processed.

Video conferencing system. The most appropriate is a client-server model. The reason for this is the need for a lot of local

processing to handle multimedia data.

Robot floor cleaner. The most appropriate model is a repository model where all sub-systems place information in the repository

for other sub-systems to use. In the case of AI systems as this

would be, a special kind of repository called a blackboard is

normally used.

?11.4.1一个在铁路站旁,供乘客使用的自动售票系统

答:自动售票系统。最合适的架构模型是有共享数据仓库和定价信息的集中式控制模型。当使用这种模型时,所有机子能立即获取改变的信息。

由于没有局部处理的必要,所以使用客户/服务架构没有什么优势。集

中式控制系统允许全局信息和路径被收集和处理。

?11.4.2一个允许在同一时间段,视频,音频,计算机数据对很多参与者是可见的计算机控制视频会议系统

答:视频会议系统。最合适的是使用客户/服务模型。很多局部过程用来处理多媒体数据。

?11.4.3一个清洁机器人,主要用来清理一些地方比如走廊。该清洁机器人必须能感应墙和其他的障碍物。

答:清洁机器人。最适合的模型是贮藏式模型。这时所有的子系统把信息存放在其他子系统得贮藏室,以备后用。以AI系统为例,一种特殊的贮藏室叫做“黑板”被使用

?11.8 Discuss their advantages and disadvantages as far as distributability is concerned of the data-flow model and the object model. Assume that both single machine and distributed versions of an application are required.

?就分布性讨论数据流模型和对象模型的优点和缺点。假设应用程序的淡季和分布式版本都是必需的。

?Solution:

Both models can be distributed where each transformation in a DFD is implemented as a separate process and each object is

implemented as process. Problem with functional decomposition

is the need for shared state which must also be implemented as

one or more processes. In the object model, distributing objects

is a problem if inheritance is involved as this creates a lot

of network traffic.

两种模型都能作为分布式,数据流程图中的每个转换都可以看作是个分离的过程,而每个对象也可以作为过程实现。函数的分解需要共享状态,

并表示为一个或多个过程。在对象模型中分布对象是个问题,对象如

果继承的话就如同它的创建一样会造成很多网络阻塞。

?14.2 Using examples, explain the difference between an object and an object class.

?Solution:

?用例子,解释对象和对象类之间的不同。

An object class is a generic description of a set of entities (or objects) which have common characteristics and which are

recognizably the same in some or all respects. Objects are

specific instances in the real-world or in a system where values

have been assigned to the characteristics defined in the object

class. The set of values assigned to the object characteristics

may distinguish that object from all other objects but need not

do so. In the real-world, we only see objects and construct

object classes as abstract entities. In programs, we often only

define object classes and construct objects whose lifetime is

no longer than the execution time of the program.

对象类就是定义实体(或者说对象)的类型说明,包含可以被识别的相似的公共特征。对象是真实世界或是在系统中的通过对象类对其属性进行

赋值的特殊实例。给对象的赋值操作可用于识别与其他所有对象的区

别,尽管不需如此。在现实世界中,我们只能看到对象和作为抽象实

体的构造对象类。在程序中,我们通常可以定义对象类和构造对象,

它们的声明周期不超过程序的执行时间。

?An example of an object class is a BOOK which has attributes (characteristics) such as AUTHOR, TITLE, PUBLISHER, DATE OF PUBLICATION, etc.

一个叫做“BOOK”的对象类的例子,属性有诸如……

?An example of an object or instance of this object class is the specific book:

一个关于这个对象类的对象的例子“specific book”

?AUTHOR: Ian Sommerville

?TITLE: Software Engineering

?EDITION: 7

?PUBLISHER Addison-Wesley

?DATE 2004

?If we wished to define a book object which was distinct from all other objects, we would need to add another characteristic to the object class such as OWNER.

?16.2 Suggest situations where it is unwise or impossible to provide a consistent user interface.

?说明在什么情况下提供前后一致的用户界面是不明智的或是不可能的。

?Solution:

A consistent user interface may be impossible to produce for complex

systems with a large number of interface options. In such systems,

there is a wide imbalance between the extent of usage of

different commands so for frequently used commands, it is

desirable to have short cuts. Unless all commands have short cuts,

then consistency is impossible.

It may also be the case in complex systems that the entities manipulated are of quite different types and it is inappropriate

to have consistent operations on each of these types.

An example of such a system is an operating system interface. Even MacOS which has attempted to be as consistent as possible has

inconsistent operations that are liked by users.

For example, to delete a file it is dragged to the trash but dragging

a disk image to the trash does not delete it but unmounts that

disk.

一致性的用户界面也许不可能提供给拥有大量选项的复杂系统。

在这样的系统中,经常使用的不同命令的使用程度有很大差异,因此

我们希望用快捷方式。除非所有的命令都有快捷方式,否则一致性的

界面是不可能的。

此外在复杂的操作界面中有不同类型的操作实体,这些不同类型的操作实体拥有相同的操作是不可能的。

开放型操作系统就是这样一个系统的例子。甚至是竭力做到尽可能一致性界面的苹果操作系统(MacOS)都会根据不同的用户喜好而由

此产生矛盾。

再举个例子,用户要删除一个文件,只要把它拉到垃圾回收站,而删掉一个磁盘映像可不能这样,那要卸载那个磁盘。

?16.3 What factors have to be taken into account in the design of menu-based interface for ‘walk-up’ system such as

bank ATMs? Write a critical commentary on the interface of an ATM that you use.

在为“临街的”系统(如ATM机)涉及基于菜单的界面时,必须考虑哪些因素?请对你所使用的ATM机的界面提出批评意见。

Solution:

Factors to be taken into account when designing 'walk up and use' systems are:

? System users may be infirm, or disabled so will not be able to respond quickly to requests.

? Users may not be able to speak the native language of the country where the machine is installed.

? System users may be completely unfamiliar with technology and may make almost any kind of error in using the machine. The interface

must minimise the number of possible errors and must be resilient

to any possible error.

? Some system users are likely to be intimidated by many options.

On the other hand, as users gain familiarity with the system,

they may expect to use it for a wider range of banking services.

? Different people may understand the meaning of icons in different ways.

? If the system has navigation options, users are almost certain to become lost.

? Most users will want to use the system for very simple functions

(e.g. withdraw cash from an ATM) and will want to do this as

quickly as possible.

There are many different ATM interfaces so each must be considered separately. Problems which I have found are:

When is it possible to cancel a transaction? What happens when I do so? What will I have to re-input if I restart the transaction?

There is not usually any way of saying give me the maximum amount of money I may withdraw today.

Some machines only support single transactions - there is no way of saying I will be making several transactions and the same

validation process is applicable to all of them.

?16.5 Discuss the advantages of graphical information display and suggest four applications where it would be more appropriate to use graphical rather than digital displays of numeric information.

?Solution:

?试述图形显示的优点,指出适合用图形显示数值而不适合用数字显示的四种应用。

Advantages are ‘at a glance’ magnitude indication and relative magnitude indication. Any applications where these are

important might be mentioned:

? Temperature control

? Speed indicators

? Weather statistics

? Relative comparisons of cars, etc.

优点是匆匆一眼就能获得数值暗示和相对数值暗示。

这里有四个适于图形显示信息,而不适用于数字显示信息的例子.

温度计速度指示器气候统计表一些相关的比较表格.

?17.3 When would you recommend against the use of an agile method for developing a software system?

?你在什么情况下会建议不采用敏捷方法进行软件系统开发?

Agile methods should not be used when the software is being developed by teams who are not co-located – if any of these teams use

agile methods, it is very difficult to coordinate their work with

other teams. Agile methods should probably also be avoided for

critical systems where the consequences of a specification error

are serious. In those circumstances, a system specification that

is available before development starts makes a detailed

specification analysis possible. However, some ideas from agile

approaches such as test first development are certainly

applicable to critical systems.

当几个软件开发团队不在同一个地方时不可用敏捷方法。如果其中一个团队用了敏捷方法,就很难跟其它团队协调工作.敏捷方法也要避免用在

关键系统,在规格错误的情况下如果用这个方法,会导致严重的后果.

在开发系统之前规格就可以用的情况下,可以做详细的规格分析使用

敏捷方法成为可能.然而,一些敏捷方法中的思想像测试优先开发

(Test First Development–TFD 又称先行测试开发)当然是可以适用

于关键系统的.

?17.5 Explain why test-first development helps the programmers develop a better understanding of the system requirements. What are the potential difficulties with test-first development?

?解释为什么测试优先开发能帮助程序员获得对系统需求的更好的理解。测试优先的开发有什么潜在的困难。

Test-first development helps with understanding the requirements because, in order to write a test, you have to analyse the

requirements in detail to discover what is intended. In many

cases, you may find that writing a test is impossible because

the requirements are incomplete.

The problem with test-first development is that some tests are very difficult to write because they require a system infrastructure

to be in place before anything can be tested.

?测试优先开发帮助我们更好地理解需求,因为你要写一个测试程序,就需要分析需求,探究详细意图。

?有时候,在需求不全的情况下,你会发现写一个测试是不可能的。测试优先开发的问题就在于是一些测试很难写,因为在任何一个测试之前都要一个就绪的系统底层结构.

?17.6 Suggest four reasons why the productivity rate of programmers working as a pair is roughly the same as two programmers working individually.

?给出四个理由说明为什么结对编程和单个程序员编程的软件生产率基本上是一样的。

Reasons why pair programming is as efficient as the same number of programmers working individually:

Pair programming leads to continuous informal reviewing. This discovers bugs more quickly than individual testing.

Information sharing in pair programming is implicit – it happens during the process.

Individual programmers have to spend time explicitly sharing information.

Pair programming encourages refactoring (the code must be understandable to another person). This reduces the costs of

subsequent development and change.

In pair programming, people are likely to spend less time in fine-grain optimization as this does not benefit the other

programmer.

结对编程和同等数量的编程人员单独编程一样有效的原因:

1.结对编程会引发连续非正式地复查,这样会比单独编程更快地发现错误。

2.结对编程过程中,信息是共享的。单独编程中,人们不得不花时间来共

享信息。

3.结对编程鼓励重构(代码需要让其他人看懂),这样减少了后期开发和

变动的成本。

4.结对编程可能花更少的时间在细节优化上,因为这对其他程序员来说没

有好处。(译者注:没看懂)

?17.8 A software manager is involved in the project development of a software design support system

?that supports the translation of software requirements to a form software specification. Comment on the advantages and disadvantages of the following development strategies:

?假设一个软件管理者参与了一个开发某个软件设计支持系统的项目,此系统是要支持将软件需求翻译成形式化软件描述。请评论下列开发策略的优点和缺点。

a)* Develop a throw-away prototype, evaluate, it then review the system

requirements. Develop the final system using C.

开发抛弃式原型,评估,然后审查系统需求。用C语言开发此系统。

Throw-away prototyping

Fast development and rapid feedback from users.

Likely to result in reasonable requirements.

Needs multiple development languages.

Costs more.

丢弃原型化方法:

快速的开发和快速的用户反馈.

可以带来合理的需求.

需要多种开发语言.

花费更高.

?b)* Develop the system from the existing requirements using Java, the modify it to adapt to any changed user requirements.

?适用java从现存的需求开始开发系统,然后修改它使之适应任何变更的用户需求。

Develop using C and X-windows

Fewer problems with training.

Known management strategy.

Requirements likely to be wrong so needs post-delivery modification.

训练几乎没问题

已知的管理策略.

需求可能的错误的,所以要交付修改.

?c)* Develop the system using incremental development with a user involved in the development team.

?适用增量式方法并让用户参与到开发团队来开发此系统。

Evolutionary prototyping

Fast feedback from users.

Rapid system delivery.

Readily adapted to evolving requirements.

Hard to manage.

Lack of standards for portability etc.

Likely to be unstructured causing future maintenance problems.

进化的方法.

快速的用户反馈.

快速的系统交付.

容易适应改变的需求.

很难管理

缺少可移植性的标准.

无特定系统结构,将导致以后的维护困难.

?18.2 Suggest why the saving in cost from reusing existing software is not simply proportional to the size of the components that are reused.

?解释下为什么通过复用已有的软件所节省的成本并不简单地与所适用的组件规模成比例。

?Solution:

If savings from reuse were proportional to the amount of code reused, then reusing 2000 lines of code would save twice as much as

reusing 1000 lines of code. However, to reuse 2000 lines of code,

that code must be understood and the costs of program

understanding are not linear – the more code to be understood,

the more effort it takes to understand it.

Furthermore, more changes may be required, the larger the amount of code reused so this also adds to the costs of reusing more

code.

Of course, all this is only true if the code has to be understood before it is reused. If it can be reused without change, then

savings from reusing large chunks of code tend to be

proportionally greater than savings from reusing small code

fragments.

如果复用节约的成本和复用的代码成比例,那么复用2000行代码就相当于复用两次1000行代码了。然而,复用2000行代码,那些代码必须

要被理解,程序理解的费用不是线性的——越多的代码,就需要越多

的努力去理解的。

而且,当需要更多的改动时,就需要更大量的代码复用,这也增加了成本。

?18.3 Give four circumstances where you might recommend against software reuse.

?给出你认为不应该适用软件复用的4种情况。

Solution:

Circumstances where software reuse is not recommended:

If the business status of the code provider is dubious. If the provider goes out of business, then no support for the reused

code may be available.

In critical applications where source code is not available. Testing the code to the required standards may be very difficult.

In small systems where the costs of reuse are comparable to the savings that result if code is reused.

In systems where performance is a critical requirement – specially developed code can usually be made more efficient.

?一如果代码提供商的运作状况不确定,或者提供商歇业,不支持代码的复用。

?二关键部分的代码不可用。要测试这些代码以达到所需标准,可能非常困难。

?三再利用所花的成本和再利用所节省下来的差不多的小型系统

四在一些关键需求在于性能的系统里,专门开发的代码通常更有效率。

?18.4 Why are patterns an effective form of design reuse? What are the disadvantages to this approach to reuse?

?为什么模式是一种有效的设计复用形式?这种复用方式的缺点是什么?

Patterns are an effective form of design reuse because the reflect accumulated wisdom that has been collected over several

applications rather than a single application (By definition,

a pattern is something that should appear in more than one

application). There are two problems with patterns for reuse.

The first is knowing which patterns actually have been

documented and then finding these patterns - the time taken to

do this can be significant. The second is that patterns are by

their nature generalisations so their performance is likely to

be limited. If performance is critical, then a special-purpose

tailored approach to a problem will almost always be more

effective.

?模式是一种有效的再利用设计,是因为它是很多人在应用中积累出来的智慧.这种方法有两种缺点:

?知道哪一个模式被存档,找到这些模式所花的时间是必要的.

? 2.很多模式是一般化的,很多性能可能被限制.如果性能是主要要求的话,那么为某一个问题问题特别研究的方法总是更有效率的.

?Identify six possible risks that can arise when systems are constructed using COTS. What steps can a company take to reduce these risks?

?Risks that can arise when systems are constructed using COTS include:

?Vendor risks: Failure of vendor to provide support when required

?Vendor goes out of business or drops product from its portfolio

?Product risks: Incompatible event/data model with other systems

?Inadequate performance when integrated with other systems

?Product is undependable in intended operating environment

?Process risk: Time required to understand how to integrate product is higher than expected.

?The risks can be addressed by only dealing with vendors that use an escrow system so that source code is available if they go out of business, by extensive research and testing of product capabilities before use, discussion with other users etc. In general though, because

?COTS are provided by external vendors, risk reduction is difficult.

?卖主风险:卖方无法提供必要的支持,卖方歇业或结束产品开发.

?产品风险:和其它系统不兼容,和其它系统组装时性能下降,在特定环境下,产品不可靠.

?过程风险:理解如何组装产品的时间超出预期.

?可以通过使用第三方系统来解决.这样的话,可以通过深入的研究,投入使用前的产品兼容性的测试,和其它用户讨论等方法来保证源代码的可用,如果卖方

歇业的话.

?通常,COST是由卖方提供的,要减少风险是困难的.

?19.1 Why is it important that all component interactions are defined through “requires” and “provides” interfaces?

?It is important to define all interactions through requires and provides interfaces so that the use of the component is completely

软件工程概论课后答案解析

第1章软件与软件工程的概念 1、1 举出您所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 1、2 认为“软件就就是程序,软件开发就就是编程序。”这种观点就是否正确?为什么? 认为“软件就就是程序,软件开发就就是编程序。”这种观点就是错误的。 首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。 1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么? 可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。 1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。 典型表现: (1)对软件开发成本与进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常就是不可维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅 速普及深入的趋势。 产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面: (1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。 (2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技 术问题,更重要的就是必须有科学严格的管理。 (5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。

软件工程部分课后练习题答案

第一章 1.计算机系统是由计算机硬件系统和软件系统这两个密不可分的部分组成的。 2.计算机软件系统通过运行程序来实现各种不同应用,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等。 3.在软件工程学中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。 4.在软件工程层次结构中,包括工具层、方法层、过程、技术层和质量保证层。 5.在面向对象概念中,消息传递是其与外部世界相互关联的唯一途径。 第三章 1.软件需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。 2.软件需求工作基本上包括收集用户、市场等方面对项目的需要,经过分析建立解题模型,细化模型,抽取需求。 3.结构化分析方法的基本步骤是采用由顶向下对系统进行功能分解,画出分层数据流图;由后向前定义系统的数据和加工,绘制数据词典和加工说明;最终写出软件需求和规格说明书。 4.面向对象分析方法总是从理解系统的“使用实例”开始,基本步骤是:定义系统的用例,在领域分析的基础上建立问题域的类(对象模型),然后开始建立对象——关系和对象——行为模型。 5.需求分析评审过程由以下5个步骤组成:规划、准备、召开审查大会、修改缺陷、重审。 第四章 1.与软件需求分析一样,软件设计也有两种主要设计方法:以结构化设计为基础的结构化软件设计和面向对象方法指导的面向对象软件设计。 2.传统的软件设计任务通常分两个阶段完成。第一个阶段是概要设计,包括体系结构设计

和接口设计,并编写概要设计文档;第二阶段是详细设计,其任务是确定各个软件的数据结构和操作,产生描述各软件组件的详细设计文档。 3.结构化的软件设计方法是一种面向数据流的设计方法,在面向数据流的方法中,数据流是考虑一切问题的出发点。 4.在数据流图中所代表的结构化设计模型中,所有系统均可纳入两种典型的形式,因此系统结构图也有两种类型:变换型系统结构图,事务型系统结构图。 5.Jackson表示法包括图形描述(Jackson图)和文本描述(Jackson伪代码)两种形式。 第五章 1.与结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型,应用数据设计(对象属性设计)、接口设计(消息模型开发)以及过程设计(子系统级设计)。 2.当两个子系统相互通信时,可以建立客户机/服务器连接或端对端连接。 3.系统设计不仅包括主要的业务需求子系统设计,还包括用户界面子系统设计、任务管理子系统设计、数据管理子系统设计。 4.对象设计强调从问题域的概念转换成计算机领域的概念,通过对象的描述、算法和数据结构设计、程序构件和接口,实现相关的类、关联、属性和操作。 5.在面向对象设计中系统设计的主要目标是表示软件体系结构。对象设计着重于对象及其交互的描述 第八章 1.软件程序测试的目的是发现程序中的错误,其主要任务是通过在计算机上执行程序,暴露

软件工程课后习题答案

软件工程课后习题答案 习题1 略。 习题2 略。 习题3 略。 习题4 2.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则? 人们在理解用自然语言描述得规格说明时,容易产生二义性。为了克服非形式化方法得缺点,人们把数学引入软件开发工程,创造了基于数学得形式化说明技术。 应用形式化方法得准则: (1)应该选用释放得表示方法; (2)应该形式化,但不要过分形式化; (3)应该估算成本; (4)应该有形式化方法顾问随时提供咨询; (5)不应该放弃传统得开发方法; (6)应该建立详尽得文档; (7)不应该放弃质量标准; (8)不应该盲目依赖形式化方法; (9)应该测试、测试再测试; (10)应该重用。 4.用有穷状态机说明自动化图书馆流通系统

习题5 略。 习题6 略。 习题7 略。 习题8 略。 习题9 1.什么就是面向对象方法学?它有哪些优点? 面向对象方法学,就是尽可能模拟人类习惯得思维方式,使开发软件得方法与过程尽可能接近人类认识世界解决问题得方法与过程,从而使得实现解法得解空间(也称为求解域)与描述问题得问题空间(也称为问题域)在结构上尽可能一致。 优点: 1.与人类习惯得思维方法一致; 2.稳定性好; 3.可重用性好; 4.较易开发大型软件产品; 5.可维护性好 10.建立订货系统得用例模型。 分析如下:从对这个订货系统得需求可以知道,仓库管理员通过放在仓库中得终端把零件入库/出库市事务报告给订货系统,系统接受到事务信息之后应该处理事务;采购员需要使用订货系统提供得产生报表功能,以获取订货报表。综上所述,用例如下: 习题10 1.用面向对象方法分析研究本书习题2第2题中描述得储蓄系统,试建立它得对象模型、动态模型与功能模型。

铁道概论课后习题电子版

第一章绪论 复习题 1.现代化的交通运输方式主要有哪几种?说明各种运输方式的特点 2.简述我国铁路的发展情况。 3.简要说明我国铁路的管理体制结构。 4.结合你所在的专业说明该专业对应的铁路部门的职业道德规范 5.查找资料阅读《铁路“十三五”规划》,了解我国铁路的发展方向 第二章铁路线路 复习题 一.填空题 1.铁路线路是由( )、( )和( ) 组成的一个整体工程结构。 2.路基依其所处的地形条件不同,有( ) 、( )两种基本形式。 3.路基本体主要由( )和( )两种基本形式。 4桥梁主要由( )、( ) 、( )组成。 5. ( )指设于隧道内两侧边墙上交错养列的后属建筑是为车通过时便于工作入员、行人及运料小车躲避而修建的。 6.铁线路上钢轨与轨枕的连接主要依靠( )联结零件。 7.我国钢轨的标准长度有( )和( )两种。 8.单开道主要由( )、( )、( )组成。 9铁路直线地段的标准轨距是( )。 10.线路平面由( ) ( )和( )组成。 11.线路纵断面由( ) ( )和( )组成。 二、判断题

1.路基是指轨道的路基面高于天然地面时,以开挖方式构成。( ) 2.铁路线路曲线半径越大,列车所受阻力越小。( ) 3.轨距是钢轨头部顶面下16mm范围内两股钢轨工作边之同的最小距高。( ) 4.基水设施仅是用来引排地表水。( ) 5.常用轨枕材料为钢筋混凝土和木材两种。( ) 6.涵洞是用以通过车辆或行人的一种建筑物。( ) 7.目前我国钢轨的标准长度有25m和12.5m两种,对于75kgm的钢轨标准长度只有25m一种。( ) 8.无缝线路是整条线路无轨缝。( ) 9.设置翼轨的目的是防止当列车通过辙叉有害空间时出现轮缘走错辙叉槽而引起脱轨。( ) 10.轨道爬行往往引起轨缝不匀、轨枕歪斜等线路病害,因此必须采用有效措施加以防治( ) 三、简答题 1.什么叫铁路线路? 2.什么叫缓和曲线?其作用是什么? 3.木枕和钢筋混凝土枕各有什么优缺点? 4.在铁路沿线为什么要设置线路标志?常见的线路标志有些? 5.无缝线路和无砟轨道有什么优点? 6.道岔是一种什么设备?请画出普通单开道岔组成图,并标出各部分名称。 7,无缝线路的主要优点是什么? 8.曲线地段线路为什么要设置外轨超高? 9.什么叫机车车辆限界?什么叫建筑接近限界?为什么机车车有界和之间要留有一定的空隙? 第三章车站

软件工程导论部分课后习题答案

第一章 1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-3 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2 种): 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 1-6 什么是软件过程?它与软件工程方法学有何关系? z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。适用中小型项目。 快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。 增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。 增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾适用于中型软件的开发 螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。螺旋模型的缺点:1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。适用于内部开发的大规模软件项目。 1-8:为什么说喷泉模型叫好的体现了面向对象软件开发过程无缝和迭代的特性?

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

中南大学隧道工程课后习题答案

【隧道按使用功能分类时有哪些 交通隧道、水工隧道、市政隧道、矿山隧道 交通山岭隧道的主要功能及特点 功能:既可使线路顺直,避免许多无谓的展线,缩短线路,又可以减小坡度,使运营条件得以改善,从而提高牵引定数,多拉快跑。 特点1、克服高程障碍2、裁弯取直(缩短线路) 3、避开不良地质地段4、避开其她重要建筑或工程等 第一章 【克服地形条件带来的高程障碍:绕行方案 路堑 隧道 【山岭隧道:越岭隧道 河谷傍山隧道 【地质条件选隧道位置:1、地质构造2、岩体强度3、水文地质条件4、不良地质 【隧道工程勘察的基本内容就是什么?地质调查后应提供的主要资料有哪些?基本内容:(1)隧道工程调查;(2)隧道线路确定;(3)洞口位置选择 提供资料:概述;地形地质说明;应交付的图文(线路地形图、洞口附近地形图、地质平面图、地质纵断面图、洞口附近地质纵断面图及洞口附近地质横断面图若干、说明书) 【越岭隧道选择位置时要考虑的主要因素就是什么? (1)垭口位置的选定:从地形上考虑,隧道宜选在山体比较狭隘的鞍部即垭口附近的底部通过,因为垭口处的山体相对较薄,隧道的穿越长度较短,有利于降低工程投资,但地质条件对垭口位置影响也较大,应优先选择地质相对较好的垭口。(2)隧道高程的确定:综合考虑工程造价与运营效率等要素对隧道进行比选,给出最佳方案。 【选择洞口位置时应遵循的原则就是什么?其工程意义就是什么? 原则:早进晚出。 工程意义:在决定洞口位置时,为了施工及运营的安全,宁可早一点进洞,晚一点出洞,虽然使隧道长了些,但却较安全可靠。应把握好合理的边、仰坡的坡率、与刷坡高度的衡量尺度,科学合理的选择洞口位置。 【能否解释隧道纵坡的形式、适用条件及限制坡度? 纵坡的形式:单坡与人字坡。适用条件:(1)单坡。多用于线路的紧坡地段或就是展线的地区及河谷隧道中,可以争取高程。(2)人字坡。多用于越岭隧道、大长隧道,尤其就是越岭隧道。 第二章 【隧道净空:隧道衬砌内轮廓线所包围的空间。 【隧道建筑限界:为了保证隧道内各种交通工具的正常运行与安全,规定在一定宽度与高度范围内不得有任何障碍物的空间范围 【曲线隧道加宽的原因就是什么?如何加宽? 列车在曲线上行驶时,由于车体内倾与平移,使得所需横断面积有所增加,为了保证列车在曲线隧道中安全通过,隧道中曲线段的净空必须加大,铁路曲线隧道的净空加宽值就是由以下的需要来决定。 ①车辆通过曲线时,转向架中心点沿线运行,而车辆就是刚性体,其矩形形状这就使得车厢两端产生向曲线外侧的偏移。车厢中间部分则向曲线侧偏移。 ②由于曲线上存在外轨超高,导致车辆向曲线内侧倾斜,使车辆限界的各个控制点在水平向上向内移动了一个距离因此,曲线隧道净空的加宽值由三部分--外内内,,d d d 21组成。 【隧道衬砌有哪些类型?各自的适用条件就是什么? 1)整体式混凝土衬砌:就是指就地灌注混凝土衬砌,也称模筑混凝土衬砌。其工艺流程为,先立模,再灌注,然后养生、最后拆模。模筑衬砌的特点就是:对地层条件的适应性较强,易于按需要成型,整体性好,抗渗性强,并适用于多种施工条件,如可用木模板、钢模板或衬砌台车等。

软件工程导论课后习题答案

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。(4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经 常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具 四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 五、1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=×(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=×(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

《铁道工程》期末考试复习题及答案解析

《铁道工程》期末考试复习题级答案 1. 常用缓和曲线外轨超高顺坡呈直线型。( ) 2. 道岔的有害空间是指辙叉咽喉至理论尖端的距离。( ) 3. 在钢轨侧边工作边涂油将减小钢轨磨耗而增大车辆脱轨安全性。( ) 4. 轨道曲线方向整正时某点的拨量与该点的正矢无关。( ) 5. 钢轨头部的容许磨耗量是由钢轨的强度及构造条件确定。( ) 6. 我国铁路按线路等级划分轨道类型。( ) 7. 如果光带偏向侧,说明轨底坡过大;如果偏向外侧,说明轨底坡过小。( ) 8. 轨距加宽是以车辆的斜接通过条件进行确定的。( ) 9. 我国南方一般土质路基地区轨道采用双层碎石道床。( ) 10. 护轨作用边至心轨作用边的查找间隔D 1只容许有正误差,护轨作用边至翼轨作用边的查找间隔D 2只容许有负误差。( ) 11. 无缝线路结构设计中要求道床纵向阻力小于扣件阻力。( ) 12. 计算钢轨的动挠度时仅考虑速度、偏载的影响。( ) 13. 轨距是指左右两股钢轨头部中心之间的距离。( ) 14. 与线路曲线地段不同,,小道岔的导曲线不设外轨超高度。( ) 15. 为加宽小半径曲线的轨距,一般是保持轨不动,将外轨向曲线外侧移动。( ) 16. 无缝线路长钢轨固定区温度应力仅与温差有关,而与钢轨长度无关。( ) 17. 轮轨间的摩擦越小,脱轨安全性越高。( ) 18. 轨底坡一般用1:n 表示,n 表示,n 越小表示钢轨倾斜程度越大。( ) 19.由于机车固定轴距比车辆的固定轴距大,因此我国干线铁路曲线轨距加宽标准是根据机车条件确定的。( ) 20.提高道岔侧向容许过岔速度的根本措施是加大道岔。( ) 21.轨距的测量部位是钢轨侧轨顶下16mm 处。( ) 22.我国直线轨道的轨底坡标准值是1:20。( ) 23.我国正线铁路轨道采用的道床边坡为1:1.5。( ) 24.计算轨枕动压力的公式是:()f R R j d ?++?=βα1。( ) 其中:d R ,j R ——轨枕动静压力 α——速度系数 β——偏载系数 f ——横向水平力系数

软件工程课后习题答案第五版

软件工程课后习题答案第五版 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

《软件》课后习题答案

第一章 1.什么是程序,程序有哪些特性? 程序:是一个用计算机语言描述的某一问题的解决步骤,它的表示是静态的。 特性:静态与动态属性,由程序语言抽象的符号表达,是对数据施行算法的过程,是分层嵌套的。2.软件有哪些特性? 特性:功能、性能相对完备的程序系统,具有使用性能的软设备,软件是信息商品,易大批量生产、成本低,是极具竞争性的商品,投入的资金主要是人工费,是只有过时而无“磨损”的商品。 3.什么是群件,目前常见的群件产品有哪些? 群件:是近几年开发的一种基于电子邮件的应急系统软件,它拓 宽了电子邮件的的内涵,涵盖了很多通信协调功能。目前常见的群件产品有:IBM公司的lotus Note、Microsoft公司的Exchange Server 、Novell公司的Group Wise等 4.计算机的软件是由哪几部分组成的,各自的作用是什么? 软件由:软件程序(解题步骤)+数据(描述事物的属性和状态)+文档(功能性能的说明性信息)组成。 5.什么是程序开发环境,常见的开发环境有那些? 程序开发环境:即现在作用到的编程语言,一般以一个集成环境的形式出现。 此环境中包含了语言编辑器,调试工具,编译工具,运行工具,图标图像制作工具等。 6.常见的Internet工具有哪些? Web服务器软件、web浏览器、文件传送工具FTP、远程访问工具Telnet、邮件软件、网络聊天、多媒体等。 7.操作系统的作用(功能)是什么? 1、处理器管理 2、存储器管理 3、设备管理 4、文件管理 5、作业管理。 8.文件系统足以支持程序运行,数据库的作用是什么? 克服文件系统的缺陷。 9.软件开发的核心是编制可运行的程序,还有比这跟重要的工作么? 系统分析和数据分析。 10.程序设计语言本身是软件么? 是,而且是系统软件。 第二章 1.程序设计语言有哪两种实现方式,各有什么优缺点? 方式一:编译(优:可进行优化,目标码效率很高。缺:费时)方式二:解释(优:可以逐句读入源代码,比较灵活,小巧。解释器不大,工作空间也不大,且能根据程序的执行情况决定下一步需做什么。缺:一句一句的难于优化,效率低) 2.结构化程序设计语言有那几种基本控制结构? 顺序、选择、循环。 3.为什么要引进过程,过程和函数的区别有哪些? 引进了过程或函数可以让程序语言更清晰,可以多次调用。使用过程还可以降低程序的复杂性,使程序结构变得清晰明了。过程是不带返回值,函数是带返回值。 4.什么是全局变量,什么是局部变量? 全局变量:出了程序便失去定义,作用范围,整个程序。 局部变量:局部的程序块中有定义。 5. 什么是指针变量? 指向数据的地址的变量。 6.过程参数传递的方式有哪几种,各有什么特点? 传值:优:很安全,不会改变全局变量的值。缺:占用双倍存储单元,传值时不能带回值。 引用:优:能带返回值,存储空间小。缺;局部有可能改变全局变量的值。

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

铁道工程课后习题答案

中国铁道出版社出版的铁道工程 -- 张晓东主编 课后习题答案 铁路运输的的主要技术经济特征? 铁路运输具有能源利用效率高,环境污染小,运输能力大,成本低,安全可靠,占地少,受气候等自然条件影响小等特点。运输能力、速度、安全性、运输的经常性和灵活性、建设投资、运输成本、土地资源利用效率、能源消耗、对环境的影响 中国为什么要大力发展铁路运输? 铁路作为现代化交通运输的基本方式之一,是国民经济的大动脉,国家基础设施和大众化交通工具,在我国经济社会发展中具有重要作用。我国发展交通应以铁路为重点。 高速铁路和重载铁路各有什么特点,简述其发展动态? 高速铁路:安全可靠、快捷舒适、超大运量、低碳环保 重载铁路:列车重量大、轴重大、行车密度大、运量大,保持了铁路在大宗、散装货物运输市场的优势,大幅提高运输效率、降低运输成本 高速铁路:目前公认列车最高运行速度达到200km/h及以上的铁路叫高速铁路。高速铁路是当代高新技术的集成,高速度是高速铁路高新技术的核心,系统间相互作用发生了质变,系统动力学更加突出。发展 1964年日本开通世界上第一条高速铁路,20世纪80年代末至90年代中期欧洲兴起兴建热潮,20世纪90年代后期至今世界范围兴起兴建热潮 重载铁路:满足下列三条中两条为重载铁路1列车重量不小于8000t 2轴重大27t以上 3在长度上不小于150km线路上年运量不低于4000万t 行驶车辆重量大,轴重大,或行车密度和运量特大 重载列车组织形式有单元式重载列车整列式重载列车组合式重载列车 20世纪50年代开始出现并逐渐发展20世纪60年代取得实质性发展20世纪80年代以后高新技术在铁路上广泛应用重载技术有了很大提高 第二章 1.铁路运输能力衡量指标及其定义 铁路运输能力即铁路的生产能力,通常用通过能力和输送能力来表示 通过能力:铁路在单位时间(通常指一昼夜)内所能通过的列车对数(单线铁路)或单方向通过的列车数(双线铁路);对高速铁路指放行最高速度等级列车的能力 输送能力:铁路每年单方向运送的货物总吨数或旅客人数(客运专线) 2.为什么要划分年度设计,铁路建筑物和设备如何与年度设计相适 铁路建设要考虑对线下基础设施和不易改、扩建的建筑物和设备按能适应一定时期的运输要求一次建成,以适应长远发展要求,避免频繁改造、增加废弃工程和对运营的干扰,为此,必须明确铁路建筑物和设备能力的设计年度 铁路线下基础设施和不易改、扩建的建筑物和设备按远期(交付运用后第20年)设计;易改、扩建的建筑物和设备按近期(交付运用后第10年)设计,并预留远期发展条件 3.铁路选线需要哪些运量参数,及各参数含义 a.铁路运量,包括货运量和客运量。货运量指设计线(或区段)一年内单方向需要运输的货物吨数;客运量设计线(或区段)一年内单方向需要运输的旅客人数 b.运输周转量,包括货物周转量和客运周转量,是衡量铁路运输生产能力的重要指标。货物周转量是设计线(或区段)一年内完成的货物工作量;客运周转量是设计线(或区段)计算时间内(一天或一年)完成的客运工作量 c.货运密度:一定时期内设计线(或区段)平均每公里线路完成的货物周转量 d.货流比:轻车方向货运量与重车方向货运量的比值 e.货运波动系数:一年内最大月的货运量和全年月平均货运量的比值 f.客流波动系数:高峰日最大客流量与平日平均客流量的比值 g.列车对数 4.高速铁路与客货共线铁路能力的计算有何区别 客货共线铁路 通过能力 单线:一昼夜内所能够通过的列车对数来表示 双线:一昼夜内单方向所能够通过的列车数来表示 输送能力:铁路每年单方向运送的客货运量表示 高速铁路 通过能力 高速铁路没有普通铁路那样的行车区段,其通过能力按客运区段(有大量始发终到或跨线旅客列车产生的两节点间构成的区段)计算,并以最高速度等级的列车对(列)数表示 输送能力:分别计算全高速列车运行及不同速度等级列车共线运行的输送能力 5.牵引特性图、在铁路线路设计中的用途及如何应用 表示机车(动车)牵引力与运行速度之间关系的曲线图;计算牵引质量时,必须先确定按什么速度下的牵引力进行计算,这个速度就是(最低)计算速度,在计算速度下的机车牵引力即为(最大)计算牵引力 6.列车运行阻力、各阻力的内容、含义、特点及构成因素 a.基本阻力:列车在空旷地段沿平直轨道运行时所遇到的阻力,包括轴颈与轴承间的摩擦力、车轮与钢轨之间的滚动摩擦力、车轮在钢轨上的滑动摩擦阻力、轨道不平顺与车轮踏面擦伤等引起的冲击和震动阻力、空气阻力;在列车运行中总是存在 b.附加阻力:列车在线路上运行时受到的额外的阻力,包括坡道附加阻力、曲线附加阻力、隧道附加阻力等;取决于线路情况(如坡道、曲线、隧道等) c.起动阻力:列车在低速起动阶段受到的包括基本阻力和起动附加阻力在内的阻力称为起动阻力; 7.合力曲线及其主要应用 列车在不同运行工况下的单位合力与运行速度的变化关系曲线图; 图上绘有下坡道上的限速线,供解算下坡道上列车运行速度及运行时分,还可确定有加算坡道时列车所受合力、均衡速度、判断列车运行状况、以及确定按限速运行时的机车操作状态等 8.列车运动方程式、一般形式、主要求解方法 表示作用与列车上的合力与列车加速之间的数学关系式P34 9.客货共线铁路和高速铁路的主要技术标准、含义、对铁路建设运输的影响 客货共线铁路:正线数目、牵引种类、机车类型、牵引质量、限制坡度、最小曲线半径、机车交路、到发线有效长度、闭塞类型 高速铁路:设计速度、正线线间距、最小曲线半径、最大坡度、到发线有效长度、动车组类型、列车运行控制方式、行车指挥方式、最小行车间距 除对设计线的工程造价、运输能力、运输效率、运行安全和经济效益有直接影响外,相互之间也存在密切联系;各级铁路技术指标应根据远期运量或国家要求的年输送能力、客车对数和确定的铁路等级在设计中综合考虑,经过技术经济比选确定,以保证技术上先进、经济上合理、标准间协调 第三章 1.客货共线铁路和高速铁路的最小曲线半径分别如何确定?线路设计时曲线半径如何选用?线路平面的最小曲线半径应根据路段设计速度工程条件以及运输性质和运输需求必选确定 对客货列车共线运行旅客列车设计行车速度不大于160Km/h、货物列车设计行车速度=《120KM/h 的一二级铁路,最小曲线半径不得小于47页表3-1的值。特殊困难条件下,在列车进出站等必须减速加速地段有充分技术依据时,可采用与行车速度相匹配的半径。 对高速铁路,最小曲线半径的确定还应考虑运输组织模式速度目标值旅客乘坐舒适度以及列车运行平稳度等因素。高速铁路最小曲线半径不得小于表3-1值。其中个别最小版精致需进行技术经济比较,经批准后方可采用。 曲线半径选用原则: 满足最小最大曲线半径的要求、一般条件下优先选用规定范围内的序列值 应因地制宜由大到小合理选用,以使曲线半径既能适应地形地质条件,减少工程又能利于养护维修,满足行车速度要求,做到技术经济合理。 曲线半径的选用应与线路纵断面设计配合 在地形困难、工程艰巨地段、小曲线半径宜集中使用,以免列车频繁限速,损失列车动能,增大能力消耗,恶化运营条件 为避免过分强求经济性、节约投资,无限制的使用最小曲线半径而降低旅客舒适度,恶化运营条件,增加养护维修工作量,应遵循慎用最小曲线半径原则,以期降低最小曲线半径的出现频率2.什么是限制坡度?其大小对工程和运营有什么影响?如何确定? 在单机牵引路段的线路最大坡度称为限制坡度,是客货共线铁路的主要技术标准之一。 限制坡度是影响铁路全局的主要技术指标。它不仅对线路走向、长度和车站分布有很大的影响,而且直接影响运输能力、行车安全、工程费和运营费。 影响因素:铁路等级牵引种类和机车类型地形类别运输需求邻线的牵引定数 3.坡段的连接有哪些要求?为什么 4.纵断面设计为什么要进行坡度折减? 客货列车共线铁路纵断面设计时,在需要用足最大坡度的路段,当平面出现曲线或遇到长于400米的隧道时,因附加阻力增加、黏着系数降低等原因,需要将最大坡度减缓,使设计加算坡度不大于最大坡度,以保证列车能以不低于计算速度或规定速度通过该路段。 5.桥涵隧道车站的线路平纵面设计有什么特殊要求? 6.什么是紧坡地段缓坡地段?分述紧坡地段和缓坡地段定线的要点? 当地面平均自然坡度小于线路最大坡度时,线路不受高程障碍的控制,这时,定线的主要矛盾是线路平面障碍,这种地段称为缓坡地段。 当地面平均自然坡度大于或等于线路最大坡度时,线路不仅受平面障碍的限制,更主要的是受高程障碍的控制。这种地段称为紧坡地段。 7.简述纸上定线的过程和方法? 线路走向选择 编制规划纵断面及概略定线 概略比选 平面和纵断面设计 桥隧及其他单项工程的布置 8.线路平纵断面图纸编排有哪些要求?简要说明平纵断面图绘制的内容和要求? 第四章 12.铁路路基的性能要求 a.路基必须平顺,路基面有足够宽度和上方界线 b.路基必须具有足够的强度和稳定性 c.路基必须具有足够的水、温稳定性和耐久性 13.影响路基填土压实效果的因素 含水率、颗粒级配和孔隙率、土的性质、压实功、压实厚度、施工工艺 14.高速铁路路基动荷载特性 路基面上的动应力沿线路纵向分布、动应力沿深度衰减 15.铁路路基的路肩高度如何确定 路肩的高程应保证路基不致被洪水淹没,也不致在地下水最高水位时应毛细水上升至路基面而产生冻胀或翻浆冒泥等病害,其设计高程一般在线路平纵断面设计时先行确定 16.曲线上路基为何加宽,加宽值如何如确定 在曲线地段,由于曲线轨道外轨设置超高、外侧道床加厚、道床坡脚外移,故曲线外侧的路基面予以加宽,其加宽值可按各级铁路的最大允许超高度计算确定 17.解释(基床动力特性中)临界动应力的概念 对于路基填土而言,存在一个特定的临界动应力,当实际动应力小于临界动应力时,塑性变形随重复作用次数的增加而累积,但其塑性变形速率则随重复次数的增加而减少,最后塑性变形趋向稳定;当实际动应力大于临界动应力时,填料的累积塑性变形随重复作用次数的增加而增加,且变形速率加快,最后因变形过大而失稳 18.铁路路基对基床填料有哪些要求P104 19.铁路路基基床的加固措施 就地碾压、换土或土质改良、加强排水、设置土工合成材料、综合措施 20.路基边坡稳定的计算方法 按滑动面的形状可以分为直线滑动面法和圆弧条分法 21.为何要设置过渡段,过渡段的常用处理方法 在路基与桥隧接连处、路基与横向结构物连接处、不同路基形式连接处,一方面由于存在刚度差别,引起轨道基础弹性不均匀(动态不平顺),另一方面,不同建筑物的沉降也不一致,在过渡点附近产生沉降差,导致轨面发生弯折(静态不平顺)。当列车高速通过时,必然会增加列车与线路的振动,引起列车与线路结构物相互作用的增加,影响线路结构的稳定,甚至危及行车安全,因此在路基与桥梁或其他结构物之间设置一定长度过渡段,可是轨道的刚度逐渐变化,并最大限度的减少沉降差,达到减低列车与线路的振动,减缓线路结构的变形,保证列车安全、平稳、舒

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

相关文档
相关文档 最新文档