Software Engineering Tools and Methods Fernando Brito e Abreu - - PDF document

software engineering tools and methods
SMART_READER_LITE
LIVE PREVIEW

Software Engineering Tools and Methods Fernando Brito e Abreu - - PDF document

Software Engineering Tools and Methods Fernando Brito e Abreu (fba@di.fct.unl.pt) Universidade Nova de Lisboa (http://www.unl.pt) QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR) SWEBOK: the 10 Knowledge Areas Software Requirements


slide-1
SLIDE 1

1

Software Engineering Tools and Methods

Fernando Brito e Abreu (fba@di.fct.unl.pt) Universidade Nova de Lisboa (http://www.unl.pt)

QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR)

Software Engineering / Fernando Brito e Abreu 2 17-May-05

SWEBOK: the 10 Knowledge Areas

Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality

slide-2
SLIDE 2

2

Software Engineering / Fernando Brito e Abreu 3 17-May-05

Summary

Sw Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Software Configuration Management Tools Software Engineering Management Tools Software Engineering Process Tools Software Quality Tools Miscellaneous Tools Issues

Sw Engineering

Methods

Heuristic Methods Formal Methods Prototyping Methods

Software Engineering / Fernando Brito e Abreu 4 17-May-05

Tool advantages

Automation of repetitive, well-defined actions

making software engineering more systematic

Reducing the cognitive load on the sw engineer

who is then free to concentrate on creative aspects

slide-3
SLIDE 3

3

Software Engineering / Fernando Brito e Abreu 5 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools

  • Software Design Tools

Software Design Tools Software Design Tools

  • Software Construction Tools

Software Construction Tools Software Construction Tools

  • Software Testing Tools

Software Testing Tools Software Testing Tools

  • Software Maintenance Tools

Software Maintenance Tools Software Maintenance Tools

  • Software Configuration Management Tools

Software Configuration Management Tools Software Configuration Management Tools

  • Software Engineering Management Tools

Software Engineering Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

Software Engineering / Fernando Brito e Abreu 6 17-May-05

Software Requirements Tools

Requirements modeling tools

  • Used for eliciting, analyzing, specifying, and

validating software requirements

  • Examples include:
  • Requisite Pro, IBM / Rational
  • Caliber, TBI
slide-4
SLIDE 4

4

Software Engineering / Fernando Brito e Abreu 7 17-May-05

Software Requirements Tools

Requirements modeling tools

  • Case study:

Software Engineering / Fernando Brito e Abreu 8 17-May-05

Software Requirements Tools

Requirement traceability tools

  • Become increasingly important as the

complexity of software grows

  • Are relevant in other life cycle processes

besides requirements modeling

slide-5
SLIDE 5

5

Software Engineering / Fernando Brito e Abreu 9 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools

  • Software Construction Tools

Software Construction Tools Software Construction Tools

  • Software Testing Tools

Software Testing Tools Software Testing Tools

  • Software Maintenance Tools

Software Maintenance Tools Software Maintenance Tools

  • Software Configuration Management Tools

Software Configuration Management Tools Software Configuration Management Tools

  • Software Engineering Management Tools

Software Engineering Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

Software Engineering / Fernando Brito e Abreu 10 17-May-05

Software Design Tools

Aimed at creating and checking software designs Variety of such tools is a consequence of the

diversity of sw design notations and methods

However, UML is becoming dominant and so is

the UML tool marketplace

slide-6
SLIDE 6

6

Software Engineering / Fernando Brito e Abreu 11 17-May-05

Software Design Tools

UML tools

IBM / Rational Rose Objecteering Together Control Center Argo UML …

Software Engineering / Fernando Brito e Abreu 12 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools

  • Software Testing Tools

Software Testing Tools Software Testing Tools

  • Software Maintenance Tools

Software Maintenance Tools Software Maintenance Tools

  • Software Configuration Management Tools

Software Configuration Management Tools Software Configuration Management Tools

  • Software Engineering Management Tools

Software Engineering Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

slide-7
SLIDE 7

7

Software Engineering / Fernando Brito e Abreu 13 17-May-05

Software Construction Tools

Program editors

Used for the creation and modification of

programs, and possibly the documents associated with them

Can be general purpose text or document

editors, or they can be specialized for a target language

Software Engineering / Fernando Brito e Abreu 14 17-May-05

Software Construction Tools

Compilers and code generators

Traditionally, compilers have been non-

interactive translators of source code, but there has been a trend to integrate compilers and program editors to provide integrated programming environments

This topic also covers preprocessors,

linker/loaders, and code generators

slide-8
SLIDE 8

8

Software Engineering / Fernando Brito e Abreu 15 17-May-05

Software Construction Tools

Interpreters

These tools provide software execution through

emulation

They can support software construction activities

by providing a more controllable and observable environment for program execution

Software Engineering / Fernando Brito e Abreu 16 17-May-05

Software Construction Tools

Debuggers

These are considered a separate category since

they support the software construction process, but they are different from program editors and compilers

slide-9
SLIDE 9

9

Software Engineering / Fernando Brito e Abreu 17 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools

  • Software Maintenance Tools

Software Maintenance Tools Software Maintenance Tools

  • Software Configuration Management Tools

Software Configuration Management Tools Software Configuration Management Tools

  • Software Engineering Management Tools

Software Engineering Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

Software Engineering / Fernando Brito e Abreu 18 17-May-05

Software Testing Tools

Test generators

Assist in the development of test cases

slide-10
SLIDE 10

10

Software Engineering / Fernando Brito e Abreu 19 17-May-05

Software Testing Tools

Test execution frameworks

Enable the execution of test cases in a controlled

environment where the behavior of the object under test is observed

Software Engineering / Fernando Brito e Abreu 20 17-May-05

Software Testing Tools

Test evaluation tools

Support the assessment of the results of test

execution, helping to determine whether or not the observed behavior conforms to the expected behavior

slide-11
SLIDE 11

11

Software Engineering / Fernando Brito e Abreu 21 17-May-05

Software Testing Tools

Test management tools

Provide support for all aspects of the software

testing process

Software Engineering / Fernando Brito e Abreu 22 17-May-05

Software Testing Tools

Performance analysis tools

Used for measuring and analyzing software

performance, which is a specialized form of testing where the goal is to assess performance behavior rather than functional behavior (correctness)

slide-12
SLIDE 12

12

Software Engineering / Fernando Brito e Abreu 23 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools

  • Software Configuration Management Tools

Software Configuration Management Tools Software Configuration Management Tools

  • Software Engineering Management Tools

Software Engineering Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

Software Engineering / Fernando Brito e Abreu 24 17-May-05

Software Maintenance Tools

Comprehension tools

Assist in the human comprehension of programs Examples include visualization tools such as

animators and program slicers

slide-13
SLIDE 13

13

Software Engineering / Fernando Brito e Abreu 25 17-May-05

Software Maintenance Tools

Reengineering tools

Support the examination and alteration of the

subject software to reconstitute it in a new form, and the subsequent implementation of the new form

Software Engineering / Fernando Brito e Abreu 26 17-May-05

Software Maintenance Tools

Reverse engineering tools

Assist the process by working backwards from

an existing product to create artifacts such as specification and design descriptions, which then can be transformed to generate a new product from an old one

slide-14
SLIDE 14

14

Software Engineering / Fernando Brito e Abreu 27 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Software Configuration Management Tools

  • Software Engineering Management Tools

Software Engineering Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

Software Engineering / Fernando Brito e Abreu 28 17-May-05

Sw Configuration Management Tools

Defect and enhancement tracking tools

Used in connection with the problem-tracking

issues associated with a particular software product

slide-15
SLIDE 15

15

Software Engineering / Fernando Brito e Abreu 29 17-May-05

Sw Configuration Management Tools

Version management tools

Involved in the management of multiple versions

  • f a product

Software Engineering / Fernando Brito e Abreu 30 17-May-05

Sw Configuration Management Tools

Release and build tools

Used to manage the tasks of software release

and build

slide-16
SLIDE 16

16

Software Engineering / Fernando Brito e Abreu 31 17-May-05

Sw Configuration Management Tools

Installation tools

Used for configuring the installation of software

products

Software Engineering / Fernando Brito e Abreu 32 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Software Configuration Management Tools Software Engineering Management Tools

  • Software Engineering Process Tools

Software Engineering Process Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

slide-17
SLIDE 17

17

Software Engineering / Fernando Brito e Abreu 33 17-May-05

Sw Engineering Management Tools

Project planning and tracking tools

Used in software project effort measurement and

cost estimation, as well as project scheduling

Software Engineering / Fernando Brito e Abreu 34 17-May-05

Sw Engineering Management Tools

Risk management tools

Used in identifying, estimating, and monitoring

risks

slide-18
SLIDE 18

18

Software Engineering / Fernando Brito e Abreu 35 17-May-05

Sw Engineering Management Tools

Measurement tools

Assist in performing the activities related to the

software measurement program

Software Engineering / Fernando Brito e Abreu 36 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Software Configuration Management Tools Software Engineering Management Tools Software Engineering Process Tools

  • Software Quality Tools

Software Quality Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

slide-19
SLIDE 19

19

Software Engineering / Fernando Brito e Abreu 37 17-May-05

Software Engineering Process Tools

Process modeling tools

Used to model and investigate software

engineering processes

Software Engineering / Fernando Brito e Abreu 38 17-May-05

Software Engineering Process Tools

Process management tools

Provide support for software engineering

management

slide-20
SLIDE 20

20

Software Engineering / Fernando Brito e Abreu 39 17-May-05

Software Engineering Process Tools

Integrated CASE environments

Cover multiple phases of the software

engineering life cycle

Perform multiple functions and hence potentially

interact with the software life cycle process being executed

Software Engineering / Fernando Brito e Abreu 40 17-May-05

Software Engineering Process Tools

Process-centered sw engin. environments

Tools that incorporate information on the

software life cycle processes and guide and monitor the user according to the defined process

slide-21
SLIDE 21

21

Software Engineering / Fernando Brito e Abreu 41 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Software Configuration Management Tools Software Engineering Management Tools Software Engineering Process Tools Software Quality Tools

  • Miscellaneous Tools Issues

Miscellaneous Tools Issues Miscellaneous Tools Issues

Software Engineering / Fernando Brito e Abreu 42 17-May-05

Software Quality Tools

Review and audit tools

Used to support reviews and audits

slide-22
SLIDE 22

22

Software Engineering / Fernando Brito e Abreu 43 17-May-05

Software Quality Tools

Static analysis tools

Used to analyze software artifacts, such as

syntactic and semantic analyzers, as well as data, control flow, and dependency analyzers

Are intended for checking software artifacts for

conformance or for verifying desired properties

Software Engineering / Fernando Brito e Abreu 44 17-May-05

Summary

Software Engineering Tools

Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Software Configuration Management Tools Software Engineering Management Tools Software Engineering Process Tools Software Quality Tools Miscellaneous Tools Issues

slide-23
SLIDE 23

23

Software Engineering / Fernando Brito e Abreu 45 17-May-05

Miscellaneous Tools Issues

Tool integration techniques

Tool integration is important for making individual tools

cooperate

This category potentially overlaps with the integrated

CASE environments category where integration techniques are applied

Typical kinds of tool integration are platform,

presentation, process, data, and control

E.g. XMI is used for UML models interchange in design tools

Software Engineering / Fernando Brito e Abreu 46 17-May-05

Miscellaneous Tools Issues

Meta-tools

Meta-tools generate other tools; compiler-

compilers are the classic example.

slide-24
SLIDE 24

24

Software Engineering / Fernando Brito e Abreu 47 17-May-05

Miscellaneous Tools Issues

Tool evaluation

Due to the continuous evolution of software

engineering tools, tool evaluation is an essential topic

Software Engineering / Fernando Brito e Abreu 48 17-May-05

Summary

Software Engineering Tools

Software Engineering Methods

  • Heuristic Methods

Heuristic Methods Heuristic Methods

  • Formal Methods

Formal Methods Formal Methods

  • Prototyping Methods

Prototyping Methods Prototyping Methods

slide-25
SLIDE 25

25

Software Engineering / Fernando Brito e Abreu 49 17-May-05

Software Engineering Methods

Heuristic methods - informal approaches Formal methods - mathematically based

approaches

Prototyping methods - approaches based on

various forms of prototyping

Software Engineering / Fernando Brito e Abreu 50 17-May-05

Software Engineering Methods

The previous three topics are not disjoint; rather

they represent distinct concerns

E.g, a OO method may incorporate formal techniques

and rely on prototyping for verification and validation

There is a large overlap of this section with that

  • f previous KA’s, namely Software Requirements

and Software Design

This is perhaps the worst part of the SWEBOK

slide-26
SLIDE 26

26

Software Engineering / Fernando Brito e Abreu 51 17-May-05

Summary

Software Engineering Methods Heuristic Methods

  • Formal Methods

Formal Methods Formal Methods

  • Prototyping Methods

Prototyping Methods Prototyping Methods

Software Engineering / Fernando Brito e Abreu 52 17-May-05

Heuristic Methods

Structured methods

The system is built from a functional viewpoint, starting with a high-level

view and progressively refining this into a more detailed design

Data-oriented methods

The starting points are the data structures that a program manipulates

rather than the function it performs

Object-oriented methods

The system is viewed as a collection of objects that integrate data and

behavior

Domain-specific methods

Includes specialized methods for developing systems which involve real-

time, safety, or security aspects

slide-27
SLIDE 27

27

Software Engineering / Fernando Brito e Abreu 53 17-May-05

Summary

Software Engineering Methods Heuristic Methods Formal Methods

  • Prototyping Methods

Prototyping Methods Prototyping Methods

Software Engineering / Fernando Brito e Abreu 54 17-May-05

Formal Methods

Include the following aspects:

Specification languages and notations

Specification languages can be classified as model-oriented,

property-oriented, or behavior-oriented

Refinement

Refers to how the specification is refined (or transformed) into

a form which is closer to the desired final form of an executable program

Verification/proving properties

Refers to theorem proving and model checking

slide-28
SLIDE 28

28

Software Engineering / Fernando Brito e Abreu 55 17-May-05

Summary

Software Engineering Methods Heuristic Methods Formal Methods Prototyping Methods

Software Engineering / Fernando Brito e Abreu 56 17-May-05

Prototyping Methods

Include the following aspects:

Prototyping styles

Throwaway, evolutionary, and executable specification

Prototyping target

E.g. requirements, architectural design, or the user interface

Prototyping evaluation techniques

Covers the ways in which the results of a prototype exercise

are used

slide-29
SLIDE 29

29

Software Engineering / Fernando Brito e Abreu 57 17-May-05

Bibliography

[Cla96] E.M. Clarke et al., “Formal

Methods: State of the Art and Future Directions,” ACM Computer Surveys, vol. 28, iss. 4, 1996, pp. 626-643.

[Dor97] M. Christensen, M. Dorfman

and R.H. Thayer, eds., Software Engineering, IEEE Computer Society Press, 1997.

[Dor02] M. Christensen, M. Dorfman

and R.H. Thayer, eds., Software Engineering, Vol. 1 & Vol. 2, IEEE Computer Society Press, 2002.

[Pfl01] S.L. Pfleeger, Software

Engineering: Theory and Practice, second ed., Prentice Hall, 2001.

[Pre04] R.S. Pressman, Software

Engineering: A Practitioner's Approach, sixth ed., McGraw-Hill, 2004.

[Rei96] S.P. Reiss, Software Tools

and Environments in The Computer Science and Engineering Handbook, CRC Press, 1996.

[Som05] I. Sommerville, Software

Engineering, seventh ed., Addison-Wesley, 2005.

[Was96] A.I. Wasserman, “Toward a

Discipline of Software Engineering,” IEEE Software, vol. 13, iss. 6, November 1996, pp. 23-31.

Software Engineering / Fernando Brito e Abreu 58 17-May-05

Related standards

(ECMA55-93) ECMA, TR/55

Reference Model for Frameworks of Software Engineering Environments, third ed., 1993.

(ECMA69-94) ECMA, TR/69

Reference Model for Project Support Environments, 1994.

(IEEE1175.1-02) IEEE Std 1175.1-

2002, IEEE Guide for CASE Tool Interconnections—Classification and Description, IEEE Press, 2002.

(IEEE1209-92) IEEE Std 1209-

1992, Recommended Practice for the Evaluation and Selection of CASE Tools, (ISO/IEC 14102, 1995), IEEE Press, 1992.

(IEEE1348-95) IEEE Std 1348-

1995, Recommended Practice for the Adoption of CASE Tools, (ISO/IEC 14471), IEEE Press, 1995.

(IEEE12207.0-96) IEEE/EIA

12207.0-1996//ISO/IEC12207:1995, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology — Software Life Cycle Processes, IEEE Press, 1996.