Service-Oriented Software Engineering - SOSE (Academic Year 2015/2016)

Similar documents
Chapter 8: Verification & Validation

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

Examen. NU reproducere mecanica ASPC, P11. Foundations of Software Engineering

Scope of OOSE. A. Starts. CMPSC 487 Lecture 01 Topics: Schach - Chap 1. The Scope of Object-Oriented Software Engineering

1 History of software engineering

VLSI Physical Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Software Maintenance Cycles with the RUP

CSE 435: Software Engineering

No Silver Bullet. CSCI 5828: Foundations of Software Engineering Lecture 02 08/27/2015

Software Testing Introduction

Gerald G. Boyd, Tom D. Anderson, David W. Geiser

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

UNIT-III LIFE-CYCLE PHASES

SWEN 256 Software Process & Project Management

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters

Computer Science: Who Cares? Computer Science: It Matters. Computer Science: Disciplines

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

COEN7501: Formal Hardware Verification

How to Keep a Reference Ontology Relevant to the Industry: a Case Study from the Smart Home

Software Testing for Developer Introduction. Duvan Luong, Ph.D. Operational Excellence Networks

Proposed Curriculum Master of Science in Systems Engineering for The MITRE Corporation

UNIT VIII SYSTEM METHODOLOGY 2014

Automated Software Engineering Writing Code to Help You Write Code. Gregory Gay CSCE Computing in the Modern World October 27, 2015

Testing the Energetic Consumption of Software: Why and How. By Paulo Jose Matos

Software Engineering

COURSE OUTLINE. School of Engineering Technology and Applied Science

What does the EUR-ACE Bachelor and Master label stay for?

Introduction to Software Engineering

MSc Chemical and Petroleum Engineering. MSc. Postgraduate Diploma. Postgraduate Certificate. IChemE. Engineering. July 2014

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

ART AND DESIGN POLICY

The Best 50 of Murphy's Law

Code Complete 2: A Decade of Advances in Software Construction Construx Software Builders, Inc. All Rights Reserved.

Quantifying Flexibility in the Operationally Responsive Space Paradigm

TEACHING PLC IN AUTOMATION --A Case Study

Software Engineering Design & Construction

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

Miguel A. Aguirre. Introduction to Space. Systems. Design and Synthesis. ) Springer

Lee, Joon-Sang LG Electronics Advanced Research Institute

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

This is a preview - click here to buy the full publication

A Discipline for Software Engineering

Experiment 9 : Pulse Width Modulation

By the end of this chapter, you should: Understand what is meant by engineering design. Understand the phases of the engineering design process.

CSE 435: Software Engineering FYI

Code Complete 2: Realities of Modern Software Construction

EE 435. Lecture 16. Compensation Systematic Two-Stage Op Amp Design

Best practices in product development: Design Studies & Trade-Off Analyses

Software-Intensive Systems Producibility

Introduction to adoption of lean canvas in software test architecture design

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to software engineering

Testing in the Lifecycle

Ten Years of Progress in Lean Product Development. Dr. Hugh McManus Associate Director, Lean Advancement Initiative Educational Network

-binary sensors and actuators (such as an on/off controller) are generally more reliable and less expensive

10. Personas. Plan for ISSD Lecture #10. 1 October Bob Glushko. Roadmap to the lectures. Stakeholders, users, and personas

Software Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow

Don t shoot until you see the whites of their eyes. Combat Policies for Unmanned Systems

Smart Grid System Selection: Best Practices and Lessons Learned

ProbabilityTestingaComponentofAdvanceSoftwareTesting

Facts and Figures. RESEARCH TEACHING INNOVATION. KIT The Research University in the Helmholtz Association

Software Is More Than Code

Electronics Prof. D. C. Dube Department of Physics Indian Institute of Technology, Delhi

Lies, Damned Lies and Hardware Verification. Mike Bartley, Test and Verification Solutions

Software Aging by D. L. Parnas

Electric Circuit Analysis Using Voltage Maps and PSpice { TC \l1 "} Introduction{ TC \l3 "}

Systems Engineering Overview. Axel Claudio Alex Gonzalez

Lecture 1. Tinoosh Mohsenin

Systems Engineering Presented at Stevens New Jersey Community College Strategic Partnership 27 th September, 2005

Handling station. Ruggeveldlaan Deurne tel

Software Engineering. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Debugging a Boundary-Scan I 2 C Script Test with the BusPro - I and I2C Exerciser Software: A Case Study

The topic for the third and final major portion of the course is Probability. We will aim to make sense of statements such as the following:

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

EE Lecture 15 (recorded Feb 9, 2011) Fri Feb 15, 2013

MECHANICAL ENGINEERING AND DESIGN 2017/18 SEMESTER 1 MODULES

Executive Summary. Chapter 1. Overview of Control

Non-Functional Requirements (NFRs) Definitions

Using Static Analysis in Medical Device Development

Status Determination of University Collections

CENTER OF BASICS SCIENCE ELECTRONIC ENGINEER (Curriculum 2012)

INTRODUCTION TO AC FILTERS AND RESONANCE

ISO ISO is the standard for procedures and methods on User Centered Design of interactive systems.

Introduction. Requirements Engineering: Why RE? What is RE? How to do RE? -> RE Processes. Why RE in SysE? Case Studies and The Standish Report

Experiment 8: Semiconductor Devices

A New Approach for Transformer Bushing Monitoring. Emilio Morales Technical Application Specialist Qualitrol

Translational scientist competency profile

40 Years of Laboratory of Media Technology of Helsinki University of Technology

Moving Innovation Forward

Game Theory Intro. Lecture 3. Game Theory Intro Lecture 3, Slide 1

Systems Engineering Prof. Deepu Philip Department of Industrial & Management Engineering Indian Institute of Technology Kanpur

Requirements Gathering using Object- Oriented Models

JOURNAL OF OBJECT TECHNOLOGY

Verification and Validation for Safety in Robots Kerstin Eder

Lean Enablers for Managing Engineering Programs

Economics and Software Engineering: Transdisciplinary Issues in Research and Education

DIGITAL LOGIC CIRCUITS

Formal Hardware Verification: Theory Meets Practice

Computer Science and Philosophy Information Sheet for entry in 2018

Self-interested agents What is Game Theory? Example Matrix Games. Game Theory Intro. Lecture 3. Game Theory Intro Lecture 3, Slide 1

Human Factors Points to Consider for IDE Devices

Transcription:

Service-Oriented Software Engineering - SOSE (Academic Year 2015/2016) Teacher: Prof. Andrea D Ambrogio Objectives: provide methods and techniques to regard software production as the result of an engineering process (software engineering) illustrate principles, standards and technologies of model-driven engineering, with application to the development of service-oriented software systems Exams: two dates at the end of the I semester one date at the end of the II semester (out of two dates planned) two dates in September Teaching Material: lecture notes (published on the website) Website: Didattica Web UniRoma2 - SOSE 1

SwEng an Unconsummed Marriage Software Engineering discipline for software production founded on wellknown engineering principles (design and validation) essential to look at software as an industrial product When missing we observe: software products of bad quality reduced competitiveness: cost overrun time overrun UniRoma2 - SOSE 2

SwEng an Unconsummed Marriage Sw Eng young discipline Electrical engineers, interested in building computers, regarded programming as something to be done by others either scientists who wanted the numerical results or mathematicians interested in numerical methods Engineers viewed programming as a trivial task, akin to using a calculator Many refer to programming as a skill, and deny that engineering principles must be applied when building software UniRoma2 - SOSE 3

SwEng Unconsummated Marriage Unconsummated marriage between computer science (programming theory) and engineering principles (design and validation) (D.L. Parnas, CACM, Sept. 1997) Software engineering should wed a subset of computer science with the concepts and discipline taught to other engineers Engineers must accept that they don t know enough computer science Computer scientists must recognize that being an engineer is different from being a scientist, and that software engineers require an education very different from their own UniRoma2 - SOSE 4

SwEng Unconsummated Marriage Examples: chemical engineering a marriage of chemistry with classical engineering areas (such as thermodynamics, mechanics, and fluid dynamics) nowadays chemical engineering is not regarded as a branch of chemistry SwEng, term conied almost 50 years ago NATO conference at Garmisch, Germany (1968) to testify the need of regarding software production as an engineering effort UniRoma2 - SOSE 5

SwEng Unconsummated Marriage Results of the NATO 1968 Conference Programming is neither science nor mathematics Programmers are not adding to our body of knowledge, they build products Using science and mathematics to build products for others is what engineers do Software is a major source of problems for those who own and use it. The problems are exactly those to be expected when products are built by people who are educated for other professions and believe that building things is not their real job UniRoma2 - SOSE 6

Typical Aspects of SW Products (1) ACCIDENTALS difficulties (can be solved by technology advancements) attitude maintenance specification and design teaming UniRoma2 - SOSE 7

SW lifecycle = 3 Stages, 6 Phases SW production = development + maintenance Development (stage 1) = 6 phases 1. Requirements definition 2. Requirements specification (or analysis) 3. Planning 4. Design (architectural and detailed) 5. Coding 6. Integration Maintenance (stage 2) covers 60% of lifecycle costs Phasing-out/Retirement (stage 3) UniRoma2 - SOSE 8

The impact of change The impact of change depends on the phase during which the change is accommodated Changes during later phases have a severe impact on cost and may be over an order of magnitude more expensive than the same change requested earlier UniRoma2 - SOSE 9

Where is Testing? Not explicitly mentioned at stage 1 Not a separate phase Activity to be carried out along the entire lifecycle Two types: Verification (at the end of each phase) Validation (at the end of development, typically) Verification = are we building the product right? Validation = are we building the right product? UniRoma2 - SOSE 10

Typical Aspects of SW products (2) ESSENTIALS difficulties (not solved by science and technology advancements) complexity conformity changeability invisibility UniRoma2 - SOSE 11

Typical Aspects of SW Products (3) COST cost vs. product size cost vs. replicas cost vs. market size UniRoma2 - SOSE 12

SW Product Cost Issues Cost proportional to the square of size (C=aS 2 ) building two products of size S/2 has a total cost lower than building a single product of S Building a replica has a null cost Putting in the market a product of double size requires a price four times greater if the market size is kept unchanged requires a market size four times greater if the price is kept unchanged UniRoma2 - SOSE 13

Definitions (1) SW product (or SW, briefly) = = Code + Documentation Artefact = intermediate SW product requirements definition document requirements analysis document design document Code = final SW product SW system = integrated set of SW products UniRoma2 - SOSE 14

Definitions (2) Customer = who commissions SW production Developer = who builds the SW product User = who uses the SW product SW types Internal SW customer and developer belong to the same organization Contract SW customer and developer belong to different organizations SW for the market the customer is the market UniRoma2 - SOSE 15

SW Reliability Issues Informally SW product credibility Formally probability that the product works correctly in a given timeframe (mission time) UniRoma2 - SOSE 16

Defect, Failure, Error Defect (Bug) anomaly present in a SW product Failure unexpected behavior of a SW product due to the presence of one or more defects Error wrong action of the developer who introduces a defect into the SW product (because of ignorance, lack of attention, etc.) UniRoma2 - SOSE 17

SW Reliability Intuitively: a SW product with many defects is not reliable It is obviuos that: SW reliability improves as long as defects are fixed UniRoma2 - SOSE 18

SW Reliability Characteristics (1) The relationship between: observed reliability and number of hidden (dormant) defects is not easy Removing defects from the product parts less used (executed) has a negligible impact on the observed reliability UniRoma2 - SOSE 19

The rule 10-90 Experiments carried out on SW programs of large size show that: 90% of the execution time is spent by executing only 10% of the program instructions Such 10% is referred to as: the core of the program UniRoma2 - SOSE 20

SW Reliability Characteristics (2) The reliability improvement due to the removal of a single defect: depends on where that defect is located (in other words, if that defect is part or not of the program core) UniRoma2 - SOSE 21

SW Reliability Characteristics (3) Then, the observed reliability depends on: how the software product is used in technical terms, the operational profile UniRoma2 - SOSE 22

SW Reliability Characteristics (4) Due to the fact that different users may use the SW product according to different operational profiles: the defects that are revealed to a user may not be revealed to a different user In conclusion, SW reliability: depends on the user UniRoma2 - SOSE 23

HW Reliability vs. SW Reliability (1) SW failures are due to: the presence of defects software does not wear out HW failures are typically due : - components wear out - components that do not behave as specificied - components damages UniRoma2 - SOSE 24

HW Reliability vs. SW Reliability (2) HW defects examples a damaged resistor a short circuit in a capacitor a logic gate that halts (on 1 or 0) To fix an HW defect: the failed component is replaced UniRoma2 - SOSE 25

HW Reliability vs. SW Reliability (3) SW defects are hidden (dormant) the SW product keeps on failing if the necessary fixes are not carried out Due to the different effects the metrics valid for HW reliability cannot be extended to SW reliability UniRoma2 - SOSE 26

HW Reliability vs. SW Reliability (4) After fixing an HW product its reliability returns to be as it was before After fixing a SW product its reliability may result improved or worsened UniRoma2 - SOSE 27

HW Reliability vs. SW Reliability (5) HW reliability objective stability (i.e., keeping failure rate constant) SW reliability objective reliability growth (i.e., decreasing failure rate) UniRoma2 - SOSE 28

HW Failure Rate (bathtub curve) early death wear-out Failure Rate Time UniRoma2 - SOSE 29

SW Failure Rate UniRoma2 - SOSE 30

SW Availability Percentage of the time that the SW product has been usable during its lifecycle Depends on the number of failures that occur the time required to fix the product UniRoma2 - SOSE 31

SW Reliability/Availability Significance Important metrics for systems in which service outages lead to economic and/or social losses (critical systems) transportation systems air traffic control systems energy production and distribution systems communication systems etc. UniRoma2 - SOSE 32

Conclusion (1) Over the last 50 years SW production has evolved according to the following periods ability period, during which SW is developed by single and creative programmers handicraft period, during which SW is developed by small groups of highly specialized professionals industrial period, during which SW production and maintenance is properly planned and coordinated, and designers/developers are supported by automated tools UniRoma2 - SOSE 33

Conclusions (2) The term «software engineering» has been coined in 1968, during the NATO conference held at Garmisch (Germany), to testify the need of regarding software production as the result of an engineering effort The IEEE Standard 610.12-1990 (glossary of software engineering terminology) defines software engineering as: 1) The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software 2) The study of approaches as in 1) UniRoma2 - SOSE 34

Conclusions (3) A SW product can be considered as a set of elements that contribute to build a configuration of: programs documents multimedia data It is built by software engineers who apply a process to eventually get products of expected quality An engineering approach has to be applied, as well as for other products SW characteristics: is engineered does not wear out is complex, must conform, is changeable and invisible UniRoma2 - SOSE 35

Conclusions (4) What can we make to meet the software quality requirements? What can we make to balance the ever increasing demand by keeping under control the allocated budget? What can we make to effectively update legacy applications? What can we make to avoid delayed product releases? What can me make to successfully apply new technologies? Software Engineering methods, tools and techniques contribute to provide an answer to the aforementioned questions, with the objective of building software products of expected/required quality UniRoma2 - SOSE 36

The SW myths (to debunk) If we get behind schedule, we can add more programmers and catch up A general statement of objectives is sufficient to begin writing programs; we can fill in the details later Once we write the program and get it to work, our job is done Until I get the program "running" I have no way of assessing its quality Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down UniRoma2 - SOSE 37