1 cse 2102 cse 2102 cse 2102: introduction to software engineering ch9: software engineering tools...

12
1 CSE 2102 CSE 2102: Introduction to CSE 2102: Introduction to Software Engineering Software Engineering Ch9: Software Engineering Ch9: Software Engineering Tools and Environments Tools and Environments

Upload: james-shannon-benson

Post on 27-Dec-2015

259 views

Category:

Documents


3 download

TRANSCRIPT

1

CSE

2102

CSE

2102

CSE 2102: Introduction to Software CSE 2102: Introduction to Software EngineeringEngineering

Ch9: Software Engineering Tools and Ch9: Software Engineering Tools and EnvironmentsEnvironments

2

CSE

2102

CSE

2102

2

Outline How did the field evolve? How can tools and environments be classified and

compared? What are the main categories? How can tools be integrated? What motivates new tools/environments?

3

CSE

2102

CSE

2102

Historical evolution Dominant factors affecting evolution

Technological developments Made certain tools necessary or possible

Better understanding of software engineering processes

3

4

CSE

2102

CSE

2102

Examples of technological developments Advances in graphical displays and user interfaces

Graphical editors Graphical user interfaces (GUIs) Visual languages

Advances in distributed systems Tools supporting distributed configuration

management and teams (groupware)

4

5

CSE

2102

CSE

2102

Evolution Individual tools developed to support single activities

(e.g.,compilation, debugging) Integrated environments, i.e., tools that work together

E.g., environment supporting one programming language

Example for Java? Open environments

Tools have public interfaces which allow them to communicate and cooperate with other tools which respect those interfaces

5

6

CSE

2102

CSE

2102

Dimensions for comparison Interaction mode

Batch-oriented tools Interactive tools

Interface format Level of formality

Syntax/semantics of documents produced Dependency on phase of life cycle Degree of standardization

6

7

CSE

2102

CSE

2102

Dimensions of comparison (contd..) Static vs. dynamic Language dependency Development tools vs. end-product components Single-user vs. multi-user Single-machine vs. network-aware

7

8

CSE

2102

CSE

2102

Types of tools Editors:

Textual or graphical Formal or informal Monolingual, multiple languages

Linkers: Combine object code fragments into a larger

program Interpreters:

Interpret the programming language constructs Code generators:

Translate high-level specification into low-level code

Debuggers: Inspect the intermediate state of variables during

execution 8

9

CSE

2102

CSE

2102

Types of tools (contd..) Software testing tools:

Aid bookkeeping of testing activities Automatically generate test cases from

specification Assess the quality of testing

Static analysis tools: Aid in code inspection and review

User interface management systems: Build user interfaces from various abstractions. Common abstractions include pull-down menu,

screens, forms, etc.

9

10

CSE

2102

CSE

2102

Types of tools (contd..) Configuration management:

Manage collaboration among geographically distributed members

Release management – which versions of files make up a release

Repository – store code, test cases, documentation, etc.

Tracking tools: Track the progress of a process Defect tracking tools

10

11

CSE

2102

CSE

2102

Tool integration Data integration approach

Store all process artifacts in a repository Common data representation for artifacts that

different tools can use to communicate with each other

Control integration approach Different tools can communicate with each other

through control messages

11

12

CSE

2102

CSE

2102

Forces influencing tool evolution To support new technology To support new software processes To support a particular method or methodology

12