Software Engineering Tools and Methods



Similar documents
CHAPTER 10 SOFTWARE ENGINEERING TOOLS AND METHODS

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

To introduce software process models To describe three generic process models and when they may be used

Weighted Total Mark. Weighted Exam Mark

IT3205: Fundamentals of Software Engineering (Compulsory)

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

SWEBOK Knowledge Area Jump-Start Document for Requirements Analysis Larry H. Reeker, U.S. National Institute of Standards and Technology

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

An integrated life cycle quality model for general public market software products

EVALUATING SOFTWARE ENGINEERING PRACTICES IN PALESTINE

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object

Clarifying a vision on certification of MDA tools

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Change Pattern-Driven Traceability of Business Processes

A Process Model for Software Architecture

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Project Management and Support - Practical Support for CMMI -SW Project Documentation: Using IEEE Software Engineering Standards

R I T. IEEE Computer Society Certified Software Development Professional (CSDP) Exam. Buenos Aires, Argentina Junio de Software Engineering

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

An Overview of Software Engineering Process and Its Improvement

How To Write A Software Engineering Project Document Template

A Tool to Support Knowledge Based Software Maintenance: The Software Service Bay

How To Understand Software Engineering

Title: Topic 3 Software process models (Topic03 Slide 1).

Umbrella: A New Component-Based Software Development Model

I.3 Quality Management

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

CREDENTIALS & CERTIFICATIONS 2015


A UML 2 Profile for Business Process Modelling *

A Proposal for Constructing Relational Database from Class Diagram

CHAPTER 7 SOFTWARE CONFIGURATION MANAGEMENT

Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

A Framework of Model-Driven Web Application Testing

Configuration Management in Software Development Life Cycle

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

analytic technique (Software Quality -- Methods for SQA and V&V) -- See analysis. See also technique.

CHAPTER 7 Software Configuration Management

Elite: A New Component-Based Software Development Model

Foundations of Model-Driven Software Engineering

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Chap 1. Introduction to Software Architecture

Formalization of Functional Requirements and Their Traceability in UML Diagrams A Z Notation Based Approach

Software Configuration Management Draft Version 0.5

Software Configuration Management - A Review

Requirements for Software Process Modeling Tools

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011,

SWEBOK Certification Program. Software Engineering Management

Analysis of Software Process Models and Applications

CHAPTER 2 LITERATURE SURVEY

An Effective Requirement Engineering Process Model for Software Development and Requirements Management

TOWARDS AN AUTOMATED EVALUATION PROCESS FOR SOFTWARE ARCHITECTURES

Improving Software Engineering Practice with HCI Aspects

Research Topics in Software Engineering

Component visualization methods for large legacy software in C/C++

TOOLS FOR SOFTWARE ENGINEERS

Round-Trip Software Engineering Using UML: From Architecture to Design and Back

CS4507 Advanced Software Engineering

Karunya University Dept. of Information Technology

A Visual Language Based System for the Efficient Management of the Software Development Process.

Software change management Technological dimension

Chapter 3. Software Processes

Quality Ensuring Development of Software Processes

Modeling Practices in Open Source Software

Viewpoint Modeling. Agenda. 1. Viewpoint Modeling 2. ODS, Enterprise Architecture, Viewpoints, Models 3. Modeling approaches and standards

SOFTWARE DEVELOPMENT PLAN

Lecture 3 Software Development Processes

CREDENTIALS & CERTIFICATIONS 2016

Agile Model-Based Systems Engineering (ambse)

Frank Tsui. Orlando Karam. Barbara Bernal. State. University. Polytechnic. Ail of Southern JONES & BARTLETT LEARNING

Evaluating OO-CASE tools: OO research meets practice

Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models?

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

Syllabus. REQB Certified Professional for Requirements Engineering. Foundation Level

CMS Policy for Configuration Management

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

DO-178B compliance: turn an overhead expense into a competitive advantage

RETRATOS: Requirement Traceability Tool Support

A Comparison of Computer Science and Software Engineering Programmes in English Universities

Software Process and Models

UML-based Conceptual Design Approach for Modeling Complex Processes in Web Application

The Software Engineering Competency Model (SWECOM)

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Agile Software Engineering Practice to Improve Project Success

today 1,700 special programming languages used to communicate in over 700 application areas.

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Semantic Object Language Whitepaper Jason Wells Semantic Research Inc.

An Introduction to Software Engineering

Architecture Centric Development in Software Product Lines

Thesis seminar THE7TF007

COMPARATIVE STUDY OF SOFTWARE TESTING TOOLS ON THE BASIS OF SOFTWARE TESTING METHODOLOGIES

Generating Aspect Code from UML Models

Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study

VDM vs. Programming Language Extensions or their Integration

Transcription:

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 Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality Software Engineering / Fernando Brito e Abreu 2 1

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 3 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 Software Engineering / Fernando Brito e Abreu 4 2

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 Software Engineering / Fernando Brito e Abreu 5 Software Requirements Tools Requirements modeling tools Used for eliciting, analyzing, specifying, and validating software requirements Examples include: Requisite Pro, IBM / Rational Caliber, TBI Software Engineering / Fernando Brito e Abreu 6 3

Software Requirements Tools Requirements modeling tools Case study: Software Engineering / Fernando Brito e Abreu 7 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 Software Engineering / Fernando Brito e Abreu 8 4

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 Software Engineering / Fernando Brito e Abreu 9 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 Software Engineering / Fernando Brito e Abreu 10 5

Software Design Tools UML tools IBM / Rational Rose Objecteering Together Control Center Argo UML Software Engineering / Fernando Brito e Abreu 11 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 Software Engineering / Fernando Brito e Abreu 12 6

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 13 Software Construction Tools Compilers and code generators Traditionally, compilers have been noninteractive 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 Software Engineering / Fernando Brito e Abreu 14 7

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 15 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 Software Engineering / Fernando Brito e Abreu 16 8

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 Software Engineering / Fernando Brito e Abreu 17 Software Testing Tools Test generators Assist in the development of test cases Software Engineering / Fernando Brito e Abreu 18 9

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 19 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 Software Engineering / Fernando Brito e Abreu 20 10

Software Testing Tools Test management tools Provide support for all aspects of the software testing process Software Engineering / Fernando Brito e Abreu 21 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) Software Engineering / Fernando Brito e Abreu 22 11

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 Software Engineering / Fernando Brito e Abreu 23 Software Maintenance Tools Comprehension tools Assist in the human comprehension of programs Examples include visualization tools such as animators and program slicers Software Engineering / Fernando Brito e Abreu 24 12

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 25 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 Software Engineering / Fernando Brito e Abreu 26 13

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 Software Engineering / Fernando Brito e Abreu 27 Sw Configuration Management Tools Defect and enhancement tracking tools Used in connection with the problem-tracking issues associated with a particular software product Software Engineering / Fernando Brito e Abreu 28 14

Sw Configuration Management Tools Version management tools Involved in the management of multiple versions of a product Software Engineering / Fernando Brito e Abreu 29 Sw Configuration Management Tools Release and build tools Used to manage the tasks of software release and build Software Engineering / Fernando Brito e Abreu 30 15

Sw Configuration Management Tools Installation tools Used for configuring the installation of software products Software Engineering / Fernando Brito e Abreu 31 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 Software Engineering / Fernando Brito e Abreu 32 16

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 33 Sw Engineering Management Tools Risk management tools Used in identifying, estimating, and monitoring risks Software Engineering / Fernando Brito e Abreu 34 17

Sw Engineering Management Tools Measurement tools Assist in performing the activities related to the software measurement program Software Engineering / Fernando Brito e Abreu 35 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 Software Engineering / Fernando Brito e Abreu 36 18

Software Engineering Process Tools Process modeling tools Used to model and investigate software engineering processes Software Engineering / Fernando Brito e Abreu 37 Software Engineering Process Tools Process management tools Provide support for software engineering management Software Engineering / Fernando Brito e Abreu 38 19

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 39 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 Software Engineering / Fernando Brito e Abreu 40 20

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 Software Engineering / Fernando Brito e Abreu 41 Software Quality Tools Review and audit tools Used to support reviews and audits Software Engineering / Fernando Brito e Abreu 42 21

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 43 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 Software Engineering / Fernando Brito e Abreu 44 22

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 45 Miscellaneous Tools Issues Meta-tools Meta-tools generate other tools; compilercompilers are the classic example. Software Engineering / Fernando Brito e Abreu 46 23

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 47 Summary Software Engineering Tools Software Engineering Methods Heuristic Methods Formal Methods Prototyping Methods Software Engineering / Fernando Brito e Abreu 48 24

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 49 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 and Software Design This is perhaps the worst part of the SWEBOK Software Engineering / Fernando Brito e Abreu 50 25

Summary Software Engineering Methods Heuristic Methods Formal Methods Prototyping Methods Software Engineering / Fernando Brito e Abreu 51 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 realtime, safety, or security aspects Software Engineering / Fernando Brito e Abreu 52 26

Summary Software Engineering Methods Heuristic Methods Formal Methods Prototyping Methods Software Engineering / Fernando Brito e Abreu 53 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 Software Engineering / Fernando Brito e Abreu 54 27

Summary Software Engineering Methods Heuristic Methods Formal Methods Prototyping Methods Software Engineering / Fernando Brito e Abreu 55 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 Software Engineering / Fernando Brito e Abreu 56 28

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 57 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. Software Engineering / Fernando Brito e Abreu 58 29