17
Chapter 1. Introduction to software engineering Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Advanced Computing Tools for Applied Research Academic year 2014/2015

Chapter 1. Introduction to software engineering - IIT … · Chapter 1. Introduction to software engineering Jaime Boal Martín-Larrauri Rafael Palacios Hielscher . Advanced Computing

  • Upload
    vocong

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

Chapter 1. Introduction to software engineering

Jaime Boal Martín-Larrauri Rafael Palacios Hielscher

Advanced Computing Tools for Applied Research

Academic year 2014/2015

2 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

1

Introduction

3 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Types of software developers

Many people write programs • Amateur

Business people Spreadsheets

Scientists and engineers Simulation and data analysis tools

Hobbyists…

• Professional Application suites (productivity software, graphic design, IDEs…)

Mobile and web app developers

Video game developers…

What are the fundamental differences between amateur and professional software?

4 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Amateur vs. professional software development

Software is more than code • Program design documentation, user guides…

Software engineering intends to support professional software development

Amateur software Professional software

Number of developers

Single (or a very reduced group) Team

Number of end-users Very limited Many

(potentially millions)

Documentation Optional (though recommended) Essential

What kind of software should you be developing? Why?

5 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

What makes good software?

6 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Types of applied research applications

Industrial • Embedded, real-time, safety-critical • E.g. Data collection and control systems

Interactive transaction-based • Databases, distributed access, communications, HMI • E.g. Web applications

Scientific and technical • Simulation, optimization, planning • E.g. Modeling tools

You typically need to combine elements from all of them

7 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Spiral software development

2. Implementation

3. Testing & Validation

1. Specification & Design

4. Analysis & Evolution

Releases (Alpha, Beta, RC, RTM)

8 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

2

System modeling

9 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Unified Modeling Language (UML)

Start coding right away is a bad idea • In the long run you need to rewrite most of it

UML is a set of universally standard diagram types to model software systems from different perspectives

These diagrams are used throughout the development process • Facilitate discussion during requirements elicitation • A detailed description makes implementation easier • Technical documentation when the project is over They need to be kept up-to-date!

DESIGN BEFORE CODING!

10 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

UML diagrams

Check http://www.uml-diagrams.org for details

Structure diagrams Behavior diagrams

Class diagram

Object diagram

Package diagram

Composite structure diagram

Component diagram

Deployment diagram

Profile diagram

Interaction diagram

Use case diagram

Activity diagram

State machine diagram

Sequence diagram

Communication diagram

Timing diagram

Interaction overview diagram

11 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Structure diagrams | Class diagram

12 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Behavior diagrams | Use case diagram

13 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Behavior diagrams | Activity diagram

14 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Behavior diagrams | State machine diagram

15 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Behavior diagrams | Sequence diagram

16 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Some UML tools

Browser

Desktop

17 Escuela Técnica Superior de Ingeniería (ICAI) Universidad Pontificia Comillas

Chapter 1. Introduction to software engineering Advanced Computing Tools for Applied Research | MRE

Takeaways

Software is much more than code • Remember what makes good software

Software development should be incremental

Not all applications are the same • Always bear in mind your particular requirements

Modeling your tool before you start coding is worth the effort • Prevents misunderstandings of the specification • Improves communication within the development team