Post on 27-Dec-2015
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