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

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

Jun 04, 2018

Download

Documents

vocong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 1. Introduction to software engineering - IIT … · Chapter 1. Introduction to software engineering Jaime Boal Martín-Larrauri Rafael Palacios Hielscher . Advanced Computing

Chapter 1. Introduction to software engineering

Jaime Boal Martín-Larrauri Rafael Palacios Hielscher

Advanced Computing Tools for Applied Research

Academic year 2014/2015

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

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

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

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?

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

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?

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

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?

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

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

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

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)

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

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

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

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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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