当前位置:文档之家› Software Architecture 课后讨论题 答案

Software Architecture 课后讨论题 答案

Software Architecture 课后讨论题 答案
Software Architecture 课后讨论题 答案

Software Architecture

Discussion Questions

开卷考试关键词:

●软件体系结构Software Architecture和building environment(Topic 3-P152)

●云计算cloud computing(Topic 21-P774)

●安全问题security(Topic 19-P723)

●接口interface

●体系结构模式和体系结构风格Architecture pattern and architectural style(Topic 6-P252

Topic 7-P372)

维基百科定义关键词:

●Software architecture refers to the high level structures of a software system and the

discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. The architecture of a software system is a metaphor, analogous to the architecture of a building. It functions as a blueprint for the system and the developing project, laying out the tasks necessary to be executed by the design teams.

●Cloud computing is shared pools of configurable computer system resources and

higher-level services that can be rapidly provisioned with minimal management effort, often over the Internet. Cloud computing relies on sharing of resources to achieve

coherence and economies of scale, similar to a public utility.

●In computing, an interface is a shared boundary across which two or more separate

components of a computer system exchange information. The exchange can be

between software, computer hardware, peripheral devices, humans and combinations of these. Some computer hardware devices, such as a touchscreen, can both send and receive data through the interface, while others such as a mouse or microphone may only provide an interface to send data to a given system.

●An architectural pattern is a general, reusable solution to a commonly occurring

similar to software design patterns but have a broader scope. The architectural patterns address various issues in software engineering, such as computer hardware

performance limitations, high availability and minimization of a business risk. Some architectural patterns have been implemented within software frameworks.

An architectural style is characterized by the features that make a building or other structure notable or historically identifiable. A style may include such elements as form, method of construction, building materials, and regional character. Most architecture can be classified within a chronology of styles which changes over time reflecting

changing fashions, beliefs and religions, or the emergence of new ideas, technology, or materials which make new styles possible.

目录

(注意:标的目录可能和PPT页码不同,每年的课件都会有小浮动修改,不能保证页码一定对得上。请善用搜索功能)

Topic 0 – Overview P29

1.Please summarise the state of the art of current software systems?请总结一下当前软

件系统的最新技术。P36

Topic 1 - History and Definition of Software Architecture P51

2.What is software architecture, in your own words?用你自己的话说,什么是软件架构?

P79

3.What do you think of Brooks' "Surgical T eam"?您如何看待布鲁克斯的“手术团队”?

P89

4.How did Fred Brooks Jr. describe the role of the architect in his "The Mythical

Man-Month"?Fred Brooks Jr.是如何描述建筑师在他的“神话人月”中的角色?P86

5.What have you learnt from David Parnas, for software development?你从David

Parnas那里学到了什么,用于软件开发?P96

Topic 2 - Modern Software Architecture P130

6.What is your explanation of ABC?你对ABC有什么解释?P151

7.How do you plan to become a good software architect, referring to the Architectural

Business Cycle?您如何计划成为一名优秀的软件架构师,参考建筑商业周期?P150

8.What are the steps in the Software Architecture Analysis Method(SAAM)?软件架构

分析方法(SAAM)中的步骤是什么?P无

9.What does the software learn from built environment?软件从构建环境中学到了什么?

P154

10.What are the six S's of shearing layers?剪切层的六个S是什么?P182

11.What are the Lessons for Software Architecture?软件架构的经验教训是什么?P154

P183

Topic 4 - Masterplans and Piecemeal Growth P184

https://www.doczj.com/doc/b55054680.html,pare and contrast the ‘Masterplan’ and ‘Piecemeal Growth’ views of

Software Architecture.比较和对比软件架构的“总体规划”和“零碎增长”观点。P186-P187

13.Explain design pattern in your own words.用你自己的话解释设计模式。P200-P202

P384

14.What are the relationships between pattern and pattern languages?模式和模式语言

之间有什么关系?P203

Topic 5 - Architecture Description Languages P211

15.What role does ADL play in software architecture?ADL在软件架构中扮演什么角色?

P234

16.Please give an definition to ADL.请给ADL定义。P238

17.What are the basic elements of an ADL?ADL的基本要素是什么?P238 P240 P242

P244

Topic 6 - Architectural Styles P252

18.What is an ‘architectural style’and what is an ‘architectural pattern’?什么是

“建筑风格”,什么是“建筑模式”?P232 P317 P393

19.What is the Blackboard Architecture Style?什么是黑板架构风格?P353

20.What is an Attribute Based Architectural Style (ABAS)?什么是基于属性的建筑风格

(ABAS)?P无

Topic 7 - Architecture Patterns P372

21.According to Frank Buschmann et al.'s Patterns of Software Architecture, into which

three levels that the patterns emerging during the software development can be

divided?根据Frank Buschmann等人的软件架构模式,软件开发过程中出现的模式可以

分为三个层次?P无

22.Could you give an example of an architectural pattern?你能举一个建筑模式的例子吗?

P无

23.Explain the following architectural patterns: MVC, Layers.解释以下架构模式:MVC,

Layers。P395 P397

Topic 8 - Domain Specific Software Architecture P410

24.What is the purpose of DSSA?问DSSA的目的是什么?P411

P421

26.What are the general steps solving problems using DSSAs?使用DSSA解决问题的一

般步骤是什么?P416

Topic 9 - Discipline of Software Architecture P430

27.What is Dan Bredemeyer's Software Architecture Model?问Dan Bredemeyer的软件

架构模型是什么?P432

28.What is Bredemeyer's suggested architecting process, and its elemental steps?什么

是Bredemeyer建议的架构流程及其基本步骤?P438

29.How to ensure a good architecture be created?如何确保创建良好的架构?P439 Topic 10 - Software Architecture and the UML P448

30.What is the building block of UML?UML的构建块是什么?P453

31.What is the typical architectural views(4+1 views) adopted by UML?UML采用的典型

架构视图(4 + 1视图)是什么?P483

32.What are the characteristics of the UML software development life cycle?UML软件

开发生命周期有哪些特点?P484

Topic 11 - Architecture and Component Based Development P547

33.What's the biggest single problem for Component Based Development?基于组件的

开发最大的单一问题是什么?548

34.What's the suggested method to solve the problems with component interfaces?解

决组件接口问题的建议方法是什么?P551

35.What does an architectural approach to CBD require?CBD的建筑方法需要什么?

P571

Topic 12 - Software Architecture Evaluation P572

36.What is software architecture evaluation, and what are the benefits?什么是软件架构

评估,有哪些好处?P574 P576

37.Explain the preconditions, activities and outputs of architecture evaluation.解释架构

评估的前提条件,活动和输出。P577-P579

38.What are the problems with current evaluation approaches?目前的评估方法存在哪些

问题?P无

Topic 13 - Software Architecture and OO Development P585

39.How could we understand that objects can be thought of architectural spaces?我们

怎么能理解对象可以被认为是建筑空间?P586

40.What's the significance of interfaces for architecture?架构接口有什么意义?P596

41.What is a levelised system? How to recognise levelised structures?什么是分级系统?

如何识别平衡结构?P601 P604

42.What's the purpose of the techniques such as Java RMI, CORBA, Microsoft

Com/DCom etc.?Is there anything in common among them?Java RMI,CORBA,

Microsoft Com / DCom等技术的目的是什么?它们之间有什么共同之处吗?P无

43.Describe the conception of middleware.描述中间件的概念。P620

44.What are the functions of an ORB(Object Request Broker)?ORB(对象请求代理)的功

能是什么?P644

Topic 15 - The OMG’s Domain Driven Architecture P648

45.Explain the basic idea of MDA and its benefits.解释MDA的基本概念及其益处。P651

46.What are the three types of models that MDA introduced?MDA引入的三种模型有哪

些?P654

47.Explain the process of development using MDA.使用MDA解释开发过程。P660-P662 Topic 16 - Software Architecture and Process P667

48.How to understand the relationships between architecture and process?如何理解架

构和流程之间的关系?P668

49.What are the underlying notions and steps of the Architectural Tradeoff Analysis

Method (ATAM)?建筑权衡分析方法(ATAM)的基本概念和步骤是什么?P670-P672

50.What are the steps in the SCRUM process?SCRUM流程有哪些步骤?P675

Topic 17 - Software Architecture Reengineering P680

51.Explain the conception of legacy systems and try to understand the challenges and

chances they will bring to us.解释遗留系统的概念,并尝试了解它们将给我们带来的挑战

和机遇。P681 P687

52.Why reverse-architecting and the path to achieve it?为什么反向架构和实现它的路径?

P683

53.What's the idea of architecture exploration and what are the challenges we are

facing in this step?架构探索的想法是什么?我们在这一步中面临的挑战是什么?P无Topic 18 - Service Oriented Architecture (SOA) P693

54.How has SOA change the architecture of networked software systems?SOA如何改变

网络化软件系统的架构?P697

55.What are the features of WOA?WOA的特点是什么?P721

Topic 19 - Security and Trust of Software Architecture P723

56.What are the design principles for computer security?计算机安全的设计原则是什么?

P727

57.What is a security architecture lifecycle?什么是安全架构生命周期?P744

58.What are architectural access control models?什么是架构访问控制模型?P745

59.How to conduct architecture and trust management?如何进行架构和信任管理?

Topic 20 - Web2.0 and Software Architecture P751

60.What is Web 2.0?什么是Web 2.0?P753

61.What is basic Web 2.0 reference architecture?什么是基本的Web 2.0参考架构?

P763-P772

62.What are specific patterns of Web 2.0?Web 2.0的具体模式是什么?P无

Topic 21 - Cloud Computing and Software Architecture P774

63.What is basic architecture for Cloud?什么是云的基本架构?P782

64.What are the common and essential characteristics in the cloud framework? 云框架

中的常见和基本特征是什么?P777-P778

Topic 22 - Software Architecture and Concurrency P811

65.What are special considerations for concurrent systems in terms of software

architecture?在软件架构方面,并发系统有哪些特殊注意事项?P815

Topic 23/24 - Visualising Software Architecture/Implementing Software Architecture P854

66.What are the methods and techniques of visualizing software architectures?可视化

软件架构的方法和技术是什么?P857

Topic 25 - Implementing Software Architecture (II) P943

67.Please summarise your thoughts on implementing architectures?请总结一下您对架

构实施的看法?P无

Topic 26 - Software Architecture: Being Creative P976

68.What roles for architecture today?今天的架构有什么作用?P无

69.How to understand that architecting is becoming a first-class activity in software

development cycle?如何理解架构正在成为软件开发周期中的一流活动?P无

70.What would be tomorrow's trends of software architecture?明天软件架构的趋势是什

么?P无

题解

1.Please summarise the state of the art of current software systems?请总结一下当前软

件系统的最新技术。P36

●Languages: Assembler , Procedural, Structured,Object-Oriented

●3GL/4GL/CASE

●Life Cycle Tools

?Requirements, Architecting, Building, Testing

?Round-trip Engineering (manual steps)

?Simultaneous round-trip tools

●Modeling:

?Structured, DFD,

?Coad, OMT, Booch,

?UMl

【不确定】

2.What is software architecture, in your own words?用你自己的话说,什么是软件架构?

P79

Architecture is the fundamental organisation of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution.

维基:Software architecture refers to the high level structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

3.What do you think of Brooks' "Surgical T eam"?您如何看待布鲁克斯的“手术团队”?

P89

?The problem

●The “small, sharp” team is ideal…

◆Ten or less excellent programmers

●…but to o slow for really big systems

?The solution

●The ‘surgical team’: one cutter, many supporters

4.How did Fred Brooks Jr. describe the role of the architect in his "The Mythical

Man-Month"?Fred Brooks Jr.是如何描述建筑师在他的“神话人月”中的角色?P86 The architect of a system, like the architect of a building, is the user’s agent.

5.What have you learnt from David Parnas, for software development?你从David

Parnas那里学到了什么,用于软件开发?P96

Parnas developed these ‘architectural’ concerns and turned them into fundamental tenets of Software Engineering. The main principles included:

●Information Hiding as the basis of decomposition for ease of maintenance and reuse

●The separation of Interface from implementation of components

●Observations on the separate character of different program elements

●The “uses” relationship for controlling the connectivity between components

?To increase extensibility

?i.e., exceptions

●Identifying commonalities in “families of systems” [76]

?To provide coarse-grained, stable common structures

●Recognition that structure influences non-functional ‘qualities’ of a system

6.What is your explanation of ABC?你对ABC有什么解释?P151

●The architecture affects the structure of the developing organisation

?Software units prescribed correspond to work assignments

●The architecture can affect the enterprise goals of the developing organisation

? E.g., open up market opportunities, aid efficient development of product families

etc.

●The architecture can effect customer requirements for the next system

? E.g., through upgradeability etc.,

●The architecture adds to the corporate base of experience

●The architecture may actually change software engineering culture

7.How do you plan to become a good software architect, referring to the Architectural

Business Cycle?您如何计划成为一名优秀的软件架构师,参考建筑商业周期?P150

【不确定】

8.What are the steps in the Software Architecture Analysis Method(SAAM)?软件架构

分析方法(SAAM)中的步骤是什么?

1. Develop scenarios

We do this by capturing the system's expected qualities, uses and users. Because scenarios represent tasks relevant to different stakeholders, we must:

●Involve experts

2. Classify scenarios

Scenarios can be divided into two groups:

●Direct scenarios - can be "walked through" the architecture

●Indirect scenarios - require modification to the system (ie: extra components &

connectors)

3. Perform scenario evaluations

For each scenario list which components and/or connections need to be altered, along with:

● A weighting of the difficulty of the change(s)

●Estimated cost of the changes

● A description of the set of changes required

4. Reveal scenario interaction

When different indirect scenarios require the same component to be changed, these scenarios are said to interact with the component. This exposes the allocation of functionality to components (especially if the scenarios are semantically unrelated).

High interaction between semantically unrelated scenarios indicates:

●Low cohesion

●High structural complexity

●High interaction between semantically related scenarios indicates high cohesion.

5. Overall evaluation

If we are comparing architectures:…

● A "importance-weight" should be assigned to each scenario and the scenario

interactions. This is a subject process involving all of the stakeholders of the system.

●The weighting is used to determine an overall ranking of candidate architectures 【来自网络】

9.What does the software learn from built environment?软件从构建环境中学到了什么?

P154

●An architecture defines the arrangement of structural elements in a system

?Relates to form, function and characteristics

?Architectural style is the underlying structuring principle and philosophy

●But any structure contains a distribution of responsibility

?In complex structures this is often a sociological as much as a technical choice

【来自网络】

10.What are the six S's of shearing layers?剪切层的六个S是什么?P182

1.Site

2.Structure

Typically sixty years for an office building.

3.Skin

Typically thirty year?

4.Services

Plumbing, wiring etc., changes every 7 years or so.

5.Space Plan

The division and sub-division of ‘social spaces’ tends to change every 5 years or so on average.

6.Stuff

Furniture, plantpots, other movables etc., can change daily.

【不确定】

11.What are the Lessons for Software Architecture?软件架构的经验教训是什么?P154

P183

●Architectural Knowledge’ is fundamental to successful, usable design in the new

millenium

?It can be regarded as design imagination

●It is by nature ‘configurational’ and often tacit

?Especially in vernacular design

●It is knowledge that is socially acquired

?“Culturally transmitted”

●It is both deontic and time-ordered

●It is not reducible to “high level structure”

?Affects process and organisation too

https://www.doczj.com/doc/b55054680.html,pare and contrast the ‘Masterplan’ and ‘Piecemeal Growth’ views of

Software Architecture.比较和对比软件架构的“总体规划”和“零碎增长”观点。P186-P187

●Characteristics of the Masterplan “camp”:

?Considers “Architecture” to be gross structure

?Utilises formal methods to present the semantics of architecture

?Emphasis is on design in the abstract

?Formal software engineering processes used to guide practical software building

●Characteristics of Piecemeal Growth approach:

?Rejection of abstract design

?Stress on architecture existing at all levels of scale

?Emphasis on an holistic, human-centred approach to design

●Philosophical Differences:

?Carnegie Mellon’s SEI sees architecture as an extension of “software

engineering”

?Holds to a “Logical Positivist” structure of knowledge

13.Explain design pattern in your own words.用你自己的话解释设计模式。P200-P202

P384

【PPT上有很多描述】

●Design Patterns are elements of reusable software

●They provide the abstract core of solutions to problems that are seen over and over

again

●An architectural pattern expresses a fundamental organising structural organisation

schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organising the relationships between them

小答案:A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise.

维基:A design pattern is the re-usable form of a solution to a design problem.

14.What are the relationships between pattern and pattern languages?模式和模式语言

之间有什么关系?P203

●Patterns do not exist outside of a wider “pattern language”

?In which the use of one pattern sets the context for the use of others

●The pattern language is shareable amongst all “stakeholders” in a development ADAPTOR represents (part of) an attempt to see whether pattern languages exist for software development

15.What role does ADL play in software architecture?ADL在软件架构中扮演什么角色?

P234

●Provide models, notations, and tools to describe components and their interaction

●Support for large scale ,high level designs

●Support for principled selection and application of architectural paradigms

●Support for abstractions

?user defined

?application specific

●Support for implementing designs

?systematic

?possibly automated

?language enables precise specifications

?environment makes them useable or reusable

16.Please give an definition to ADL.请给ADL定义。P238

●ADL Definition: An ADL is a language that provides features for modelling a software

system’s conceptual architecture.

●Essential features: explicit specification of

?components

◆interfaces

?connectors

?configurations.

●Desirable features:

?specific aspects of components, connectors, and configurations

?tool support.

17.What are the basic elements of an ADL?ADL的基本要素是什么?P238 P240 P242

P244

●Essential features: explicit specification of

?components

◆interfaces

?connectors

?configurations.

●ADL COMPONENTS Definition:

? A component is a unit of computation or a data store or a unit of structure

?Components are loci of computation and state

●ADL CONNECTORS Definition:

? A connector is an architectural building block used model interactions among

components and rules that govern those interactions

●ADL CONFIGURATIONS Definition:

?An architectural configuration or topology is a connected graph of components and

connectors that describes architectural structure

18.What is an ‘architectural style’ and what is an ‘architectural pattern’?什么是

“建筑风格”,什么是“建筑模式”?P232 P317 P393

●P232:A style consists of a vocabulary of design elements, well formedness constraints

that determine how they can be used, any semantic constraints needed for refinement, and a logical definition of the semantics of the connectors associated with the style.

●P317:An architectural style is a description of component types and their topology.

the components and an informal description of the benefits and drawbacks of using that style.

●P317:Architectural styles define classes of designs along with their associated known

properties.

●P317:They offer experience-based evidence of how each class has been used historically,

along with qualitative reasoning to explain why each class has its specific properties.

(patterns)

●P393:An architectural pattern expresses a fundamental organising structural

organisation schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organising the relationships between them.

维基:An architectural style is characterized by the features that make a building or other structure notable and historically identifiable.

维基:An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context.

19.What is the Blackboard Architecture Style?什么是黑板架构风格?P353 Interactions among knowledge sources solely through repository Knowledge sources make changes to the shared data that lead incrementally to solution Control is driven entirely by the state of the blackboard.

【来自网络】

20.What is an Attribute Based Architectural Style (ABAS)?什么是基于属性的建筑风格

(ABAS)?

The topology of component types and a description of their data and control interaction.

A quality attribute-specific model that provides a method of reasoning about the component types that interact.

The reasoning that results from applying the attribute-specific model to the interacting component types.

【来自网络】

21.According to Frank Buschmann et al.'s Patterns of Software Architecture, into which

three levels that the patterns emerging during the software development can be divided?根据Frank Buschmann等人的软件架构模式,软件开发过程中出现的模式可以分为三个层次?P276

Presented three categories of patterns:

●Architectural Patterns

●Design Patterns

【来自网络】

22.Could you give an example of an architectural pattern?你能举一个建筑模式的例子

吗?

“From Mud to Structure”:Layers, Pipes and Filters, Blackboard

Distributed Systems :Broker

Interactive Systems:ModelViewController,Presentation-Abstraction-Controller Adaptable Systems :Microkernel, Reflection

【来自网络】

23.Explain the following architectural patterns: MVC, Layers.解释以下架构模式:MVC,

Layers。P395 P397

●The Model-View-Controller Pattern:

?M-V-C originated with Smalltalk-80

◆Informs the entire architecture of modern Small-talk environments.

?Microsoft’s Document-View architecture is an instance of M-V-C

◆(Model = Document, View = View, controller = MS window)

●Layers Pattern:

?Context

◆large system needing decomposition

?Problem

◆How to structure systems that contain a mix of high and low-level functionality;

?Solution

◆Conceptually layer the system, from level 0 upwards

24.What is the purpose of DSSA?问DSSA的目的是什么?P411

●To build better: tools, specification languages, domain-specific reusable components,

application frameworks, product families.

●To understand better. Software problems are very complex. A DSSA is ready-made,

reusable domain analysis, problem decomposition.

25.What is DSSA and what does DSSA consist of?什么是DSSA以及DSSA由什么组成?

P421

●DSSA is an assemblage of software components

?specialized for a particular type of task(domain)

?generalised for effective use across that domain

?composed in a standardised structure(topology)effective for building successful

applications.

●DSSA is comprised of

?reference requirements

? a reference architecture(expressed in an ADL)

?its supporting infrastructure/environment,and

? a process/methodology to instantiate/ refine and evaluate it.

26.What are the general steps solving problems using DSSAs?使用DSSA解决问题的一

般步骤是什么?P416

●Decompose the problem into the language of the DSSA: the atomic actions (install

wiring, generate an attribute evaluation module, create a cache manager, ...).

●Different atoms will be required for different endproducts.

●The DSSA does not specify an inventory that all products must use.

●Some atoms may exist as off-the-shelf components.

●Some may need to be tailor-made.

● A DSSA focuses requirements/design decisions; highlights changes from canonical

solutions.

27.What is Dan Bredemeyer's Software Architecture Model?问Dan Bredemeyer的软件

架构模型是什么?P432

●Meta-Architecture

●Architecture

?Conceptual Architecture

?Logical Architecture

?Execution Architecture

●Architecture Guidelines and Policies

28.What is Bredemeyer's suggested architecting process, and its elemental steps?什么

是Bredemeyer建议的架构流程及其基本步骤?P438

29.How to ensure a good architecture be created?如何确保创建良好的架构?P439

●Elicit stakeholder goals

?Ensure architecture supports what is valued and scopes out what is not

?Drives creation of principles, selection of architectural styles, and selection/creation

of mechanisms in “metaarchitecture phase”

?Functionality goals are starting points for Use Cases

?Quality goals are starting points for non-functional requirements specification

30.What is the building block of UML?UML的构建块是什么?P453

●Things

●Relationships

●Diagrams

31.What is the typical architectural views(4+1 views) adopted by UML?UML采用的典型

架构视图(4 + 1视图)是什么?P483

Design View,Implementation View,Process View,Deployment View,Use Case View.

32.What are the characteristics of the UML software development life cycle?UML软件

开发生命周期有哪些特点?P484

●Use-case driven

?use cases are used as a primary artifact for establishing the desired behavior of the

communicating among the stakeholders of the project

●Architecture-centric

? a system’s architectur e is used as a primary artifact for conceptualising,

constructing, managing, and evolving the system under development

●Iterative

?one that involves managing a stream of executable releases

●Incremental

?one that involves the continuous integration of the syst em’s architecture to

produce these releases

33.What's the biggest single problem for Component Based Development?基于组件的

开发最大的单一问题是什么?548

The biggest single problem for ComponentBase d Development is “architectural mismatch”.

34.What's the suggested method to solve the problems with component interfaces?解

决组件接口问题的建议方法是什么?P551

We need to separate out the notion of a Component Interface from a Component Specification.

35.What does an architectural approach to CBD require?CBD的建筑方法需要什么?

P571

●Separating Component Interfaces from Component Specifications

●Creating Interfaces (usage contracts) for each core business function

●…and System-level Interfaces for use case functionality

●Providing Component Specifications to support the Component Interfaces

●Dialog types are used to provide GUIs for the application

36.What is software architecture evaluation, and what are the benefits?什么是软件架构

评估,有哪些好处?P574 P576

●What is architecture Evaluation

?Architecture Assessment/Evaluation: Assign a specific value to software architecture

suitability

?Ar chitecture Review: Doesn’t assign a specific as a measure of suitability

?Architecture Analysis: Techniques used to perform architecture reviews/ assessment/

evaluation

●Benefits:

?Financial

?Increased Understanding and Documentation of System

?Prediction of final product quality/Risk Management

?Clarification and Prioritisation of Requirements

?Organisational Learning

37.Explain the preconditions, activities and outputs of architecture evaluation.解释架构

评估的前提条件,活动和输出。P577-P579

●Evaluation Preconditions:

?Understanding of Evaluation Context

?The Right People

?Organisational Expectations and Support

?Evaluation Preparation

?Architecture Representation

●Evaluation Activities:

?Recording and Prioritising

?Evaluating

◆Cost

◆Functionality

◆Performance

◆Modifiability

◆…

?Reviewing Requirements

?Reviewing Issues

?Reporting Issues

●Evaluation Output:

?Ranked Issues

?Report

?Scenario Set

?Preliminary System Predictions

?Enhanced Documentation

38.What are the problems with current evaluation approaches?目前的评估方法存在哪些

问题?

Evaluating architecture as a whole:

1.Assuming people have full control of thearchitecture

2.Without considering constraints imposed by the infrastructure framework on components

3. Without reusing framework evaluation result

Some of them are not validated in industry context or controlled lab environment

39.How could we understand that objects can be thought of architectural spaces?我们

怎么能理解对象可以被认为是建筑空间?P586

●Software has no physicality

?Michael Jackson says in order to create virtual machines we just create them

?Fred Brooks Jr. says software is “pure thought stuff”

?Source code is just a set of instructions that translates into machine instructions

●But in architecture (of the built environment) space is a logical as well as a physical

concept

40.What's the significance of interfaces for architecture?架构接口有什么意义?P596

●An interface can be thought of as an access path or gateway to an encapsulated

“space”

?Space can be an object instance, a class, a package or any logical computational

component

●We need to narrow interface bandwidth between spaces

?An interface also implies a dependency

●I nterfaces can form a “scaffolding” for the system

41.What is a levelised system? How to recognise levelised structures?什么是分级系统?

如何识别平衡结构?P601 P604

●Levelisation is desirable

?Assuming a “bottom” level 0 each component in a dependency hierarchy can be

assigned a unique level number

?Implies a structure which is a Directed Acyclic Graph (DAG)

●In “good” OO System Structures

?Abstract, stable (unchanging) classes tend to be at or near level 0

?Concrete, volatile (often changing) classes tend to be at the highest levels

◆We want to minimise the number of classes dependent on changeable classes

42.What's the purpose of the techniques such as Java RMI, CORBA, Microsoft

Com/DCom etc.?Is there anything in common among them?Java RMI,CORBA,Microsoft Com / DCom等技术的目的是什么?它们之间有什么共同之处吗?PPP (Client-server computing has so far been done using sockets – a point of connection within a program to the Internet. However, client-server computing can be performed without having to work at the level of socket..)

The purpose: client-server computing can be performed without having to work at the level of sockets; Allow the programmer to rise above the socket level

The common: describe the interface to the remote methods;

43.Describe the conception of middleware.描述中间件的概念。P620

●Software that manages and supports the different components of a distributes system ●Sits in the middle of the system to broker service requests among components

●Usually off-the-shelf products rather than custom

●Representative architectures

?CORBA (ORB)

?COM (Microsoft)

?JavaBeans (Sun)

44.What are the functions of an ORB(Object Request Broker)?ORB(对象请求代理)的功

能是什么?P644

●Handles object communications

●Knows about all system objects and their interfaces

●Using the ORB a client object binds an IDL (interface definition language) stub and

defines the interface of the server object

●Calling the stub results in calls to the ORB which calls the required object through a

published IDL skeleton that links the interface to the service implementation

45.Explain the basic idea of MDA and its benefits.解释MDA的基本概念及其益处。P651

●Basic Principles:

?“MDA separates the fundamental logic from behind a specification from the detail

of the particular middle ware that implements it”

?The ‘Architecture’ assures:

◆Portability

◆Cross-platform interoperability

◆Platform independence

◆Domain specificity

◆Productivity

●Benefits claimed include:

?Reduced cost throughout the application life-cycle

?Reduced development time for applications

?Improved application quality

?Increased return on technology investments

?Rapid inclusion of emerging new technologies

46.What are the three types of models that MDA introduced?MDA引入的三种模型有哪

些?P654

●Computationally Independent (CIM)

最新软件测试期末考试试题及答案

一,判断 1 √ 2.× 3.√ 4.× 5. × 6. ×7. ×8. ×9.√10. ×二,选择 1. D 2. D 3. B 4. B 5. B 6. A 7. D 8. B 9. C 10. A 三填空 1. 测试计划、测试用例 2. 稳定性测试、负载测试、压力测试 3. 非增量是集成测试自顶向下增量式测试、自底向上增量式测试 4. 回归 5. 软件需求 四简答题(30分) 1.试描述软件测试的定义?(3分) 答:利用手工或者自动化的方式,按照测试方案对系统执行测试用例的过程叫做软件测试。 2.什么是软件缺陷?(4分) 答:满足以下条件的问题都叫缺陷: 软件未达到产品说明书中已标明的功能 软件出现了产品说明书中指明不会出现的错误 软件功能超出了产品说明书指明的范围 软件未达到产品说明书虽未指出但应达到的目标 软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效果不好。 3.常见的黑盒测试用例的设计方法?并分别简单介绍一下各自的思想。(8分)答:等价类划分:等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 边界值分析:对输入输出的边界值进行测试的一种黑盒测试方法。 决策表法:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具 因果图分析法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对

性的设计测试用例的方法。 4. 列举常见的系统测试方法。答出来5个即可。(5分) 答:恢复测试 安全测试 强度测试 性能测试 正确性测试 可靠性测试 兼容性测试 Web测试 5.文档测试主要测试哪些内容?答出来5点即可(5分) 答:(1)检查产品说明书属性 (2)检查是否完整 (3)检查是否准确 (4)检查是否精确 (5)检查是否一致 (6)检查是否贴切 (7)检查是否合理 (8)检查代码无关 (9)检查可测试性 6. 单元测试主要测试那几方面的问题?(5分) 答:模块接口、局部数据结构、边界条件、独立的路径和错误处理。五,设计题

软件测试复习题_带答案

软件测试复习题 一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对(03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)黑盒测试的测试用例是根据程序内部逻辑设计的。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)为了快速完成集成测试,采用一次性集成方式是适宜的。错 (07)在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。错 (05)在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。对 (09)单元测试通常由开发人员进行。对 (10)压力测试通常需要辅助工具的支持。对 (11)压力测试不需要辅助工具的支持。错 (12)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (13)软件测试员可以对产品说明书进行白盒测试。错 (14)软件测试员无法对产品说明书进行白盒测试。对 (15)在设计测试用例时,应包括合理的输入条件和不合理的输入条件。对 二、选择 1、用黑盒技术设计测试用例的方法之一为( a ) A)因果图 B)逻辑覆盖 C)循环覆盖 D)基本路径测试 2、软件测试的目的是( b) A)避免软件开发中出现的错误 B)发现软件开发中出现的错误 C)尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D)修改软件中出现的错误 3、下列软件属性中,软件产品首要满足的应该是( a ) A)功能需求B)性能需求C)可扩展性和灵活性D)容错纠错能力 4、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期( a)。 A)技术评审 B)程序测试 C)改正程序错误D)管理评审 5、以程序的内部结构为基础的测试用例技术属于( d )。

软件测试基础期末试卷及参考答案

1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。 2、黑盒测试的具体技术方法 ____________、 __________、 __________、____________。 等价类划分法,边界值分析法,决策表法,因果图法 3、黑盒测试又称之为___________测试。 功能 4、等价类划分有两种不同的情况:____________和____________。 有效等价类,无效等价类 5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。 语句覆盖,判定覆盖,条件覆盖,路径覆盖 6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,____________和 ____________。 白盒测试工具、黑盒测试工具、测试管理工具 7、软件测试是为发现程序中的______________而执行程序的______________。 错误,过程 8、测试用例是由______________和预期的______________两部分组成。 测试输入数据,输出数据 9、白盒测试又称为______________,可以分为______________和______________两大类。 结构测试,静态测试,动态测试 10、软件是包括____________﹑____________﹑____________的完整集合。 程序,数据,相关文档 11、边界值分析法属于____________。 黑盒测试 12、单元测试是以____________说明书为指导,测试源程序代码。 详细设计 13、集成测试以____________说明书指导,测试软件结构。 概要设计 14、确认测试以____________说明书为指导。 需求分析 15、软件开发的基本过程____________,_____________,_______________,_____________, _____________,______________。 需求分析、概要设计、详细设计,编码,测试、维护 16、代码复审属于____________,不实际运行程序。 静态测试 17、集成测试把模块组成成系统的测试方式:_____________和______________。 一次性集成测试,增量式集成测试 18、黑盒测试有两种基本方法,即:_____________和______________。 通过测试,失败测试 二、选择题(每题3分,共10题,分数为30分) 1. 下列哪一项不是白盒测试(C) A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法(C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 3.在Assert类中断言对象为NULL是_____。(C) 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)

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

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

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件测试技术习题参考答案

第1章软件测试概述 1、简述软件缺陷的含义。 答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。 2、说明软件缺陷、软件错误和软件失败的关系。 答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。 14、“软件测试是有风险的工作”,试解释这种说法的含义。 答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。 第2章软件测试基础 2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。答:条件覆盖是高于判断覆盖的逻辑覆盖程度。 a、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能取值至少执行一次。 b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历一次。 每个判断语句可能包含多个条件(比如,if(A>3 && B<7)……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。 4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。 答:(1)等价类划分

软件测试方法和技术重点和试题与答案

太原理工大学软件测试技术 适用专业:软件工程2011级考试日期:2014.1 时间:120 分钟 一、判断题 1. 测试是调试的一个部分(╳) 2. 软件测试的目的是尽可能多的找出软件的缺陷。(√ ) 3. 程序中隐藏错误的概率与其已发现的错误数成正比(√ ) 4. Beta 测试是验收测试的一种。(√ ) 5. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ ) 6. 项目立项前测试人员不需要提交任何工件。(╳) 7. 单元测试能发现约80%的软件缺陷。(√ ) 8. 测试的目的是发现软件中的错误。(√ ) 9. 代码评审是检查源代码是否达到模块设计的要求。(√ ) 10. 自底向上集成需要测试员编写驱动程序。(√ ) 11. 测试是证明软件正确的方法。(╳) 12. 负载测试是验证要检验的系统的能力最高能达到什么程度。(√ ) 13. 测试中应该对有效和无效、期望和不期望的输入都要测试。(√ )验收测试是由最终用户来实施的。(√ ) 14. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ )黑盒测试也称为结构测试。(╳)集成测试计划在需求分析阶段末提交。(╳) 15. 软件测试的目的是尽可能多的找出软件的缺陷。(√) 16. 自底向上集成需要测试员编写驱动程序。(√) 17. 负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18. 测试程序仅仅按预期方式运行就行了。(╳) 19. 不存在质量很高但可靠性很差的产品。(╳) 20. 软件测试员可以对产品说明书进行白盒测试。(╳) 21. 静态白盒测试可以找出遗漏之处和问题。(√) 22. 总是首先设计白盒测试用例。(╳) 23. 可以发布具有配置缺陷的软件产品。(√) 24. 所有软件必须进行某种程度的兼容性测试。(√) 25. 所有软件都有一个用户界面,因此必须测试易用性。(╳) 26. 测试组负责软件质量。(╳) 27. 按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28. 好的测试员不懈追求完美。(×) 29. 测试程序仅仅按预期方式运行就行了。( ×) 30. 在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( √) 31. 静态白盒测试可以找出遗漏之处和问题。( √) 32. 测试错误提示信息不属于文档测试范围。( ×)

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

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (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]

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮, 就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。 6.件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验

软件测试试题及答案分析

单选 1. 属于黑盒测试的方法?( C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 2.在Assert类中断言对象为NULL是_____。(D) A.assertEquals B.assertTrue C.fail D.assertNull 3.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求(A) A.系统测试B.集成测试 C.单元测试D.功能测试 4.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B) A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖 5.软件测试的目的是___________。(C) A.表明软件的正确性B.评价软件质量 C.尽可能发现软件中的错误D.判定软件是否合格 6.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A) A.白盒测试侧重于程序结构,黑盒测试侧重于功能 B.白盒测试可以使用测试工具,黑盒测试不能使用工具 C.白盒测试需要程序参与,黑盒测试不需要 D.黑盒测试比白盒测试应用更广泛 7.软件测试类型按开发阶段划分___________。(B) A.需要测试﹑单元测试﹑集成测试 B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试 C.单元测试﹑集成测试﹑确认测试 D.调试﹑单元测试﹑功能测试 8.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B) A.private void testXXX() B.public void testXXX() C.public float testXXX() D.public int testXXX() 9.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(A)A.单元测试B.集成测试 C.目的测试D.确认测试 10.增量式集成测试有3种方式:自顶向下增量测试方法,和混合增量测试方式。(D ) A.自中向下增量测试方法B.多次性测试 C.维护D.自底向上增量测试方法 1)以下不属于软件测试的原则有(D )。 A.程序最好别让由编写该程序的程序员自己来测试

软件工程导论课后题

1-5、根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。

2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。 医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。 从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。 系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。 此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。

软件工程习题答案参考

软件工程 绪论 1.什么是软件危机为什么会产生软件危机 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化工程化生产方法与早期的程序设计方法主 要差别在哪里 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于

一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件测试练习题及答案

练习题 一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对 (03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)程序员兼任测试员可以提高工作效率。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)当软件代码开发结束时,软件测试过程才开始。错 (07)据有关数据统计,代码中60%以上的缺陷可以通过代码审查发现出来。对(08)无效等价类是无效的输入数据构成的集合,因此无需考虑无效的等价类划分。错(09)软件本地化就是将一个软件产品按特定国家或语言市场的需要翻译过来。错(10)在压力测试中通常采用的是黑盒测试方法。对 (11)软件测试员无法对产品说明书进行白盒测试。对 (12)功能测试工具主要适合于回归测试。对 (13)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (14)自底向上集成需要测试员编写驱动程序。对 (15)测试是可以穷尽的。错 (16)自动化测试相比手工测试而言,能发现更多的错误。错 (17)软件测试自动化可以提高测试效率,可以代替手工测试。错 (18)语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。对 (19)Beta测试是验收测试的一种。对 (20)软件开发全过程的测试工作都可以实现自动化。错 (21)软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。错 (22)结构性测试是根据软件的规格说明来设计测试用例。错 (23)软件测试工具可以代替软件测试员。错 (24)通过软件测试,可以证明程序的正确性。错 (25)在单元测试中,驱动程序模拟被测模块工作过程中所调用的下层模块。错(26)软件缺陷可能会被修复,可能会被保留或者标识出来。对 (27)测试用例是由测试输入数据和对应的实际输出结果这两部分组成。错(28)单元测试通常由开发人员进行。对 (29)现在人们普遍认为软件测试不应该贯穿整个软件生命周期,而应在编程完毕之后再进行,这样可以降低成本。错 (30)文档的错误不是软件缺陷。错 (31)Junit只是单元测试工具,并不能进行现回归测试。错 (32)判定表法是一种白盒测试方法。错 (33)白盒测试不考虑程序内部结构。错 (34)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对

软件测试试题及答案

一、判断题 1.测试是调试的一个部分(╳) 2.软件测试的目的是尽可能多的找出软件的缺陷。(√) 3.程序中隐藏错误的概率与其已发现的错误数成正比(√) 4.Beta测试是验收测试的一种。(√) 5.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 6.项目立项前测试人员不需要提交任何工件。(╳) 7.单元测试能发现约80%的软件缺陷。(√) 8.测试的目的是发现软件中的错误。(√) 9.代码评审是检查源代码是否达到模块设计的要求。(√) 10.自底向上集成需要测试员编写驱动程序。(√) 11.测试是证明软件正确的方法。(╳) 12.负载测试是验证要检验的系统的能力最高能达到什么程度。(√) 13.测试中应该对有效和无效、期望和不期望的输入都要测试。(√)验收测试是由最终用户来实施的。(√) 14.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√)黑盒测试也称为结构测试。(╳)集成测试计划在需求分析阶段末提交。(╳) 15.软件测试的目的是尽可能多的找出软件的缺陷。(√) 16.自底向上集成需要测试员编写驱动程序。(√) 17.负载测试是验证要检验的系统的能力最高能达到什么程度。(╳)

18.测试程序仅仅按预期方式运行就行了。(╳) 19.不存在质量很高但可靠性很差的产品。(╳) 20.软件测试员可以对产品说明书进行白盒测试。(╳) 21.静态白盒测试可以找出遗漏之处和问题。(√) 22.总是首先设计白盒测试用例。(╳) 23.可以发布具有配置缺陷的软件产品。(√) 24.所有软件必须进行某种程度的兼容性测试。(√) 25.所有软件都有一个用户界面,因此必须测试易用性。(╳) 26.测试组负责软件质量。(╳) 27.按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28.好的测试员不懈追求完美。(×) 29.测试程序仅仅按预期方式运行就行了。(×) 30.在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。(√) 31.静态白盒测试可以找出遗漏之处和问题。(√) 32.测试错误提示信息不属于文档测试范围。(×) 33.代码评审是检查源代码是否达到模块设计的要求。(√) 34.总是首先设计黑盒测试用例。(√) 35.软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(∨) 36.软件质量保证和软件测试是同一层次的概念。(x)

软件工程概述习题及答案

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

软件工程课后参考答案

第一章 1.1什么是计算机软件?软件的特点是什么? 计算机软件是指计算机系统中的程序及其文档 软件的特点: ●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。 ●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可, 但其维护的工作量大。 ●软件的使用没有硬件那样的机械磨损和老化问题。 1.2简述软件的分类,并举例说明 1.系统软件 系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。例如:编译软件、操作系统。 2.支撑软件 支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、软件工具、软件开发环境。 3.应用软件 应用软件是特定应用领域专用的软件。例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。 1.3简述软件语言的分类,并举例说明。 1.需求定义语言 是用于书写软件需求定义的语言。例如:PSL/PSA。 2.功能性语言 是用于书写软件功能规约的语言,通常又称为功能规约语言。例如:广谱语言、Z 语言。 3.设计性语言 是用于书写软件设计规约的语言。例如:PDL。 4.实现性语言 也称为程序设计语言,是用于书写计算机程序的语言。例如:C、java、PROLOG、FORTRAN、COBOL、Modula。 5.文档语言 是用于书写软件文档的语言。通常用自然语言或半形式化语言书写。 1.4什么是软件工程? 软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。 1.5简述软件工程的基本原则。 软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。 1.选取适宜的开发模型 必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。 2.采用合适的设计方法

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

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

软件测试笔试题及答案修订

1、TCP是互联网中的(1)协议,使用(2)次握手协议建立连接。当主动发出SYN连接请求后,等待对方回答(3)。这种连接的方法可以防止(4),TCP使用的流量控制协议是(5)。 (1)A.传输层B.网络层C会话层D.应用层 (2)(3),,,,ACK (4)A.出现半连接B.无法连接C.假冒的连接D.产生错误的连接 (5)A.固定大小的滑动窗口协议B.可变大小的滑动窗口协议C.后退N帧ARQ协议D.选择重发ARQ 协议 2、下列叙述中,与提高软件可移植性相关的是。 A.选择时间效率高的算法 B.尽可能减少注释 C.选择空间效率高的算法 D.尽量用高级语言编写系统中对效率要求不高的部分 D软件可移植性是指与软件可从某一环境移植到另一环境的能力有关的一组属性。高级语言具有较好的可移植性,所以可以尽量用高级语言编写系统中对效率要求不高的部分。减少注释、选择时间/空间效率高的算法都不能提高软件的可移植性。 3、用边界值分析法,假定1

相关主题
文本预览
相关文档 最新文档