0% found this document useful (0 votes)
8 views17 pages

Chapter 1. Introduction To Software Engineering: Advanced Computing Tools For Applied Research

Intro to Software engineering

Uploaded by

My Own
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views17 pages

Chapter 1. Introduction To Software Engineering: Advanced Computing Tools For Applied Research

Intro to Software engineering

Uploaded by

My Own
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Advanced Computing Tools

for Applied Research

Chapter 1. Introduction to
software engineering
Jaime Boal Martín-Larrauri
Rafael Palacios Hielscher

Academic year 2014/2015


1

Introduction

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 2
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?

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 3
Amateur vs. professional software development
Amateur software Professional software
Number of Single (or a very
Team
developers reduced group)
Number of Many
Very limited
end-users (potentially millions)
Optional
Documentation Essential
(though recommended)

 Software is more than code


• Program design documentation, user guides…

 Software engineering intends to support professional software


development

What kind of software should


you be developing? Why?

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 4
What makes good software?

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 5
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

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 6
Spiral software development

1. Specification &
2. Implementation
Design

Releases
(Alpha, Beta, RC, RTM)

4. Analysis & 3. Testing &


Evolution Validation

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 7
2

System modeling

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 8
Unified Modeling Language (UML)
 Start coding right away is a bad idea
• In the long run you need to rewrite most of it

DESIGN BEFORE CODING!

 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!

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 9
UML diagrams

Structure diagrams Behavior diagrams

Use case diagram


Class diagram

Object diagram Activity diagram

Package diagram State machine diagram

Composite structure diagram Interaction diagram

Component diagram Sequence diagram


Communication diagram
Deployment diagram
Timing diagram
Profile diagram Interaction overview diagram

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

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 10
Structure diagrams | Class diagram

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 11
Behavior diagrams | Use case diagram

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 12
Behavior diagrams | Activity diagram

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 13
Behavior diagrams | State machine diagram

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 14
Behavior diagrams | Sequence diagram

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 15
Some UML tools
 Browser

 Desktop

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 16
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

Chapter 1. Introduction to software engineering Escuela Técnica Superior de Ingeniería (ICAI)


Advanced Computing Tools for Applied Research | MRE Universidad Pontificia Comillas 17

You might also like