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

Similar documents
What is the Cloud? Computer Basics Web Apps and the Cloud. Page 1

Software Engineering. Introduc)on

A Monitored Student Testing Application Using Cloud Computing

Chapter 13: Program Development and Programming Languages

This course requires students to take and pass an Adobe Certified Associate exam as part of the course.

Evaluating Enterprise Mobile Platforms Go Big or Go Small?

How To Design An Information System

So#ware Development. Overview. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

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

Chapter 13: Program Development and Programming Languages

Advanced Computing Tools for Applied Research Chapter 4. Version control

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

The So5ware Development Process (SDLC)


Chapter 1- Introduction. Lecture 1

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

THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL

Dr. Pat Mirenda. Software Design Specification Document

2. Analysis, Design and Implementation

Chapter 1- Introduction. Lecture 1


Vanguard Knowledge Automation System

Automation and Virtualization, the pillars of Continuous Testing

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 UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

SE 367 Software Engineering Basics of Software Engineering

Object-Oriented Systems Analysis and Design

NICE BACK OFFICE SOLUTIONS. Improve the Efficiency and Effectiveness of Your Back Office Operations. Insight from Interactions

How To Develop A Telelogic Harmony/Esw Project

Business Process Management Enabled by SOA

Analysis of Software Process Models and Applications

Introduction to open source software

What is a life cycle model?

Chapter 1: Introduction. What is an Operating System?

App Development Best Practices. Jonathan Sprinkle, ECE Wayne Peterson, UITS

UML for the C programming language.

A Pattern Language for Developing Web based Multi Source Data Acquisition Application 1

A Software Engineering Model for Mobile App Development

Data Analysis with MATLAB The MathWorks, Inc. 1

WHAT IS AN APPLICATION PLATFORM?

What s New With HP Service Manager and Universal CMDB December 18, 2014

Modern practices TIE-21100/

Business Analyst Interview Questions And Answers

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology


Workforce Management: Adding Value with Integrated Solutions

not think the same. So, the consumer, at the end, is the one that decides if a game is fun or not. Whether a game is a good game.

Lecture 03 ( ) Quality of the Software Development Process

Cloud Computing for SCADA

Network and Services (NETW-903)

In the case of the online marketing of Jaro Development Corporation, it

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

General Problem Solving Model. Software Development Methodology. Chapter 2A

Vmware Horizon View with Rich Media, Unified Communications and 3D Graphics

HOW THE WEB IS CHANGING EVERYTHING IN THE SIGN INDUSTRY

Business Process Management Tampereen Teknillinen Yliopisto

What is Software? The Software Development Process. Definition of Software. Why Software?

Office Automation. Industrial Automation. Information Technology and Automation Systems in Industrial Applications. Product Development.

College Public Website

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Service Virtualization:

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

Mobile Game and App Development the Easy Way

What s New in Analytics: Fall 2015

Allen Abrahamson Microsoft Communications Specialist State and Local Government

The Business Value of a Web Services Platform to Your Prolog User Community

IBM MobileFirst Hands-on Labs environment with Linux on z Systems and z/os

Comparison of Enterprise Reporting Tools

Programming and Software Development CTAG Alignments

IV. Software Lifecycles

Chapter 2 Software Processes

Business Transformation for Application Providers

FORMS-DRIVEN WORKFLOW SOLUTIONS WHITE PAPER

Multi-Platform Enterprise Mobility Management. Perfectly balancing end-user and corporate needs

Introduction to Information Technology Lesson Objectives

Visual Drag and Drop Scheduling Embedded in Dynamics NAV 2013

Integrating the Internet into Your Measurement System. DataSocket Technical Overview

Industry-Driven Testing: Past, Present, and Future Activities at Simula

Nuxeo Insights: The Evolution of Content in the Software-Defined Enterprise!

Rapid Modular Software Integration (RMSI)

Rapid Application Development

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Requirements Engineering

February 11, Megabyte Money.notebook. Megabyte Money. Electronic "money" that replaces currency & checks. Sep 18-8:51 PM

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

2. Analysis, Design and Implementation

A Correlation of Miller & Levine Biology 2014

Software testing. Objectives

Rich Internet Applications

Supporting Workflow Overview. CSC532 Fall06

Software Architecture

Competencies for Secondary Teachers: Computer Science, Grades 4-12

How To Understand The Software Development Lifecycle

COMPUTABLE DOCUMENT FORMAT

The Cloud for Insights

Chapter 4 Software Lifecycle and Performance Analysis

The Hidden Power of Apps: Unlocking the Future of Marketing

Jos Warmer, Independent

Transcription:

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 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? 3

Amateur vs. professional software development Number of developers Number of end-users Documentation Amateur software Single (or a very reduced group) Very limited Optional (though recommended) Professional software Team Many (potentially millions) Essential 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? 4

What makes good software? 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 6

Spiral software development 1. Specification & Design 2. Implementation Releases (Alpha, Beta, RC, RTM) 4. Analysis & Evolution 3. Testing & Validation 7

2 System modeling 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! 9

UML diagrams Structure diagrams Behavior diagrams Class diagram Object diagram Package diagram Composite structure diagram Component diagram Deployment diagram Profile diagram Use case diagram Activity diagram State machine diagram Interaction diagram Sequence diagram Communication diagram Timing diagram Interaction overview diagram Check http://www.uml-diagrams.org for details 10

Structure diagrams Class diagram 11

Behavior diagrams Use case diagram 12

Behavior diagrams Activity diagram 13

Behavior diagrams State machine diagram 14

Behavior diagrams Sequence diagram 15

Some UML tools Browser Desktop 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 17