• No results found

Software Engineering Tools and Methods

N/A
N/A
Protected

Academic year: 2021

Share "Software Engineering Tools and Methods"

Copied!
29
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Engineering Tools and Methods

Fernando Brito e Abreu ([email protected])

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

„

Software Design

„

Software Construction

„

Software Testing

„

Software Maintenance

„

Software Configuration Management

„

Software Engineering Management

„

Software Engineering Process

(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

Tool advantages

„ Automation of repetitive, well-defined actions

…

making software engineering more systematic

„ Reducing the cognitive load on the sw engineer

(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 Requirements Tools Requirements modeling tools

„ Used for eliciting, analyzing, specifying, and validating software requirements

„ Examples include:

…

Requisite Pro, IBM / Rational

…

Caliber, TBI

(4)

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

Software Requirements Tools Requirements modeling tools

„ Case study:

Software Requirements Tools Requirement traceability tools

„ Become increasingly important as the complexity of software grows

„ Are relevant in other life cycle processes

(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 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

(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

„ …

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

(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 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

(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 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

(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 Testing Tools Test generators

„ Assist in the development of test cases

(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 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

(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 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)

(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 Maintenance Tools Comprehension tools

„ Assist in the human comprehension of programs

„ Examples include visualization tools such as

animators and program slicers

(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 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

(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

Sw Configuration Management Tools Defect and enhancement tracking tools

„ Used in connection with the problem-tracking

issues associated with a particular software

product

(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 of a product

Sw Configuration Management Tools Release and build tools

„ Used to manage the tasks of software release

and build

(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

Summary

„ Software Engineering Tools

…

Software Requirements Tools

…

Software Design Tools

…

Software Construction Tools

…

Software Testing Tools

…

Software Maintenance Tools

(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

Sw Engineering Management Tools Risk management tools

„ Used in identifying, estimating, and monitoring

risks

(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

Summary

„ Software Engineering Tools

…

Software Requirements Tools

…

Software Design Tools

…

Software Construction Tools

…

Software Testing Tools

…

Software Maintenance Tools

(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 Process Tools Process management tools

„ Provide support for software engineering

management

(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 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

(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 Quality Tools Review and audit tools

„ Used to support reviews and audits

(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

Summary

„ Software Engineering Tools

…

Software Requirements Tools

…

Software Design Tools

…

Software Construction Tools

…

Software Testing Tools

…

Software Maintenance Tools

(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

Miscellaneous Tools Issues

Meta-tools

„ Meta-tools generate other tools; compiler-

compilers are the classic example.

(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

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

(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 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

of previous KA’s, namely Software Requirements

(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

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

(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

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

(28)

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

Summary

„ Software Engineering Methods

… Heuristic Methods

… Formal Methods

… Prototyping Methods

Prototyping Methods

Include the following aspects:

„

Prototyping styles

…

Throwaway, evolutionary, and executable specification

„

Prototyping target

…

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

(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.

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

„ (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.

References

Related documents

Source: International Monetary Fund, 2011... Real GDP

Once ESCAT is implemented, the appropriate military authority (see section 3 of this enclosure) will consult regularly with the Department of Transportation (DOT) (through the

Emissions Coefficient A unique value for scaling emissions to activity data in terms of a standard rate of emissions per unit of activity (e.g., pounds of carbon dioxide emissions

2012 Leap of Sight, Galleri Olsson, Stockholm, Sweden 2011 Hide-outs, The Company, Los Angeles, CA 2010 Video Screenings , Inman Gallery, Houston, TX.. Sigrid Sandström,

Thus, the goal of the research is to define the effective ways of students’ foreign language communicative competence formation by means of reading and speaking activities within

Difficult problem: How can the search engine tell what the user need or intent for a particular query is?.. User intent: Answering the need behind

The prevalence of scrotal calculi was 2.65%, and a minority of patients had other abnormalities, reflecting the generally benign etiology of these “pearls.” To date, no infor- mation

These experiments demonstrated that SATB2 binds to the AT-rich region of the ENK gene in vivo in the developing brain, along with three other proteins that are part of