Lee, Joon-Sang LG Electronics Advanced Research Institute

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

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

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

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

Process Planning - The Link Between Varying Products and their Manufacturing Systems p. 37

Software-Intensive Systems Producibility

ENGINEERING SERVICE-ORIENTED ROBOTIC SYSTEMS

Engineering Autonomy

Appendix A: Glossary of Key Terms and Definitions

Making your ISO Flow Flawless Establishing Confidence in Verification Tools

Model-Based Systems Engineering Methodologies. J. Bermejo Autonomous Systems Laboratory (ASLab)

University of Massachusetts Amherst Libraries. Digital Preservation Policy, Version 1.3

William Milam Ford Motor Co

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

CSE 435: Software Engineering

Why It All Matters. Emergence Economics, Adaptive Policymaking, and the Virtues of Tinkering Without Tampering. Richard S. Whitt Google Inc.

Basics of SW Architecture

SOFTWARE ARCHITECTURE

Introduction to co-simulation. What is HW-SW co-simulation?

Grundlagen des Software Engineering Fundamentals of Software Engineering

A SERVICE-ORIENTED SYSTEM ARCHITECTURE FOR THE HUMAN CENTERED DESIGN OF INTELLIGENT TRANSPORTATION SYSTEMS

A Conceptual Model of Software Development

UNIT-III LIFE-CYCLE PHASES

Lecture 1: Introduction to Digital System Design & Co-Design

Towards a Design Theory for Trustworthy Information

Module Role of Software in Complex Systems

Thriving Systems Theory:

HUMAN COMPUTER INTERFACE

Software Life Cycle Models

EXTENDED TABLE OF CONTENTS

The Privacy Case. Matching Privacy-Protection Goals to Human and Organizational Privacy Concerns. Tudor B. Ionescu, Gerhard Engelbrecht SIEMENS AG

Behaviour-Based Control. IAR Lecture 5 Barbara Webb

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

Óbuda University Donát Bánki Faculty of Mechanical and Safety Engineering. TRAINING PROGRAM Mechatronic Engineering MSc. Budapest, 01 September 2017.

Component Based Mechatronics Modelling Methodology

Years 9 and 10 standard elaborations Australian Curriculum: Digital Technologies

ARTEMIS The Embedded Systems European Technology Platform

Strategis Groep.

Methodology for Agent-Oriented Software

Reverse Engineering A Roadmap

CSTA K- 12 Computer Science Standards: Mapped to STEM, Common Core, and Partnership for the 21 st Century Standards

- Basics of informatics - Computer network - Software engineering - Intelligent media processing - Human interface. Professor. Professor.

Software verification

Research on the Integration and Verification of Foundational Software and Hardware

Introduction to Computer Science - PLTW #9340

On-demand printable robots

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal

UPGRADE YOUR MPT NETWORK THE SMART WAY. harris.com #harriscorp

Chapter 2 Theory System of Digital Manufacturing Science

Cover Page. The handle holds various files of this Leiden University dissertation.

AN AUTONOMOUS SIMULATION BASED SYSTEM FOR ROBOTIC SERVICES IN PARTIALLY KNOWN ENVIRONMENTS

UNIT VIII SYSTEM METHODOLOGY 2014

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

Architecting Systems of the Future, page 1

DESIGN AND CAPABILITIES OF AN ENHANCED NAVAL MINE WARFARE SIMULATION FRAMEWORK. Timothy E. Floore George H. Gilman

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

ICT4 Manuf. Competence Center

Swarm Intelligence W7: Application of Machine- Learning Techniques to Automatic Control Design and Optimization

First steps towards a mereo-operandi theory for a system feature-based architecting of cyber-physical systems

About Software Engineering.

Socio-cognitive Engineering

Component Based Design for Embedded Systems

PERSONAS, TAXONOMIES AND ONTOLOGIES MAPPING PEOPLE TO THEIR WORK AND WORK TO THEIR SYSTEMS (DATE)

OpenGL ES. August Khronos Chairman. Copyright Khronos Group, Page 1

ENGINEERING THE ENTERPRISE

Autonomy, how much human in the loop? Architecting systems for complex contexts

Stevens Institute of Technology & Systems Engineering Research Center (SERC)

AOSE Technical Forum Group

Railway Training Simulators run on ESRI ArcGIS generated Track Splines

Preliminary Report on Technology and REsearch for Cognitio

Development of a guideline authoring tool with PROTÉGÉ II, based on the DILEMMA Generic Protocol and Guideline Model

Topics in Development of Naval Architecture Software Applications

Hardware-Software Co-Design Cosynthesis and Partitioning

Activities at SC 24 WG 9: An Overview

Low cost microscope automation hardware and embedded software development. J. Ramirez A. Villa M. Toscani

An Integrated Modeling and Simulation Methodology for Intelligent Systems Design and Testing

The AMADEOS SysML Profile for Cyber-physical Systems-of-Systems

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

Software Is More Than Code

Automotive Applications ofartificial Intelligence

Rethinking CAD. Brent Stucker, Univ. of Louisville Pat Lincoln, SRI

Application of EuroSim in the F-35 Joint Strike Fighter Embedded Training solution

Creating the Right Environment for Machine Learning Codesign. Cliff Young, Google AI

Technology Transfers Opportunities, Process and Risk Mitigation. Radhika Srinivasan, Ph.D. IBM

Strategic Considerations when Introducing Model Based Systems Engineering

An Agent-based Heterogeneous UAV Simulator Design

Where does architecture end and technology begin? Rami Razouk The Aerospace Corporation

Strategy for a Digital Preservation Program. Library and Archives Canada

The Future is Now: Are you ready? Brian David

Systems Engineering Overview. Axel Claudio Alex Gonzalez

Real-Time Testing Made Easy with Simulink Real-Time

The WURDE Robotics Middleware and RIDE Multi-Robot Tele-Operation Interface

in the New Zealand Curriculum

Using Existing Standards as a Foundation for Information Related to Factory Layout Design

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

Copyright 2003 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J.

This list supersedes the one published in the November 2002 issue of CR.

Transcription:

Competencies needed to Software Engineers in the Forthcoming IT Industries Lee, Joon-Sang LG Electronics Advanced Research Institute

Contents What makes software difficult? Future competencies 2

What Makes Software Difficult? 3

Current Status of Software Engineers Negative phenomena at IT work places No precise estimation of effort and schedule Instant coding from unwritten requirements Low reusability, and no trust on SW from others Repeated & overtime work (6 code lines a year) Frequent changes in requirements Side work for hardware system? None asks about SW quality seriously (even end-users) Always being dreadful about any little change No time buffer to consider maintainability or robustness Is learning programming language all? No objective & systematic qualification criteria on experts Is software so inherently easy and simple to be not worthy? There s been no matured software engineering yet? SW is the most creative, complex, and difficult work, but too easy to startup and partially demonstrate with no concept of quality! HW engineers < SW developers < SW engineers 4

Aristotle s Metaphysics Theories about what exists and how we know that is exists notice that software is invisible. Essential or accidental characteristics? this horse is white vs. this horse is a kind of brute fact How to define SW s beings & their behaviors form & matter via state-based lifecycle model 5

Philosophical Approach What exist in the computational space Ontology process or object? aggregate of them? Epistemology What do components know about one another? Scoping rule? Or connectivity via naming server? Protocols Dictations of how to interact among components? Synchronous or asynchronous? with a type of IPC? Lexicon Vocabulary of component interactions 6

Essences and Accidents Invisibility No geometric abstraction e.g. land (map), silicon chips (diagrams), computers (connectivity schema), building (floor plan) Just superimposed directed graphs on upon another control/data flow, data dependency, time sequence, name-space relationships, module structure, etc. Even planar so inherently hierarchical 7

Essences and Accidents Complexity No repeated elements are abound Scaling-up does not merely mean a repetition of the same elements Order-of-magnitude more states than digital computers Flow-like architecture vs. invocation-like architecture No black-box abstraction; low reusability & optimizability The most complex entities than any other human construct, for its size Inherently hierarchical structure Non-linear increase with size Not only technical problem, management problems come 8

Essences and Accidents Conformity No unifying principles as with Physics there must be simplified explanations of nature, because God is not capricious or arbitrary said Einstein Arbitrary complexity caused by various people last arrival on the scene & most conformable Changeability Infinitely malleable and easy for change SW is hero or zero? Embedded in a cultural matrix of applications Various stakeholders with different interests and knowledge 9

Essences and Accidents Infinitely malleable enforced rework Invisibility no geometric abstraction order or magnitude Changeability Complexity no unified principles arbitrary complexity Conformity no repeated building blocks no scalability 10

Essences and Accidents Breakthroughs against accidents High-level languages conceptual constructs: operations, data types, sequences, and communication Unified programming environments Integrated libraries, file format, tool benches, testing & debugging, Hopes for the silver Object-Oriented Programming ADT & hierarchical types Automatic programming (since 1985) Graphical programming Program verification 11

No Silver Bullet Revolutionary or incremental advances towards essences and accidents? Productivity equation time_of_task = å n Î i (frequency) i (time) i Promising attacks on Conceptual Essence Buy vs. build Firstly mentioned in the NATO Software Engineering Conferences, 1968 Requirements refinement and rapid prototyping Great designers 12

Evolution of SW Development Methods structural modularity assembly hardcoded structured Computational Reflection serviceoriented featureoriented modeldriven collaboration -based Open Implementation Meta-object protocol proprietary platformized business logic & roles high-level construction 2) NON-FUNCIOTNAL QUALITY 13 DSSA objectoriented architecturebased aspectoriented subjectoriented productlined 3) RAPID PROTOTYPING domain-specific industry-wide platformized future SW platform 1) PRODUCTIVITY core-functionality-proven (buy) usability-centric (refinement/rapid prototyping) fully-customizable UI/UX/Look-and-Feel architecture-level optimization (great designer) OS-integrated UIMS + app.

Computational Reflection Definition a computational process that is able to reason about itself by Brian Smith (1982) self-referential behaviors in computational process Analogies program expression Û program data metaphor Û object control program Û robot arm Û the Matrix 14

Computational Reflection In view of Instruction Set Architecture (ISA) L1 L2 load r10, [pc+6] i-code r11, add cmp b0, r10, r11 br b0, L2 i-code r10, br L1 store [pc+1], r10 add r01, r02 In high-level programming Class cls = Class.forName("Foo"); Object foo = cls.newinstance(); Method method = new Method("hello() { System.out( hello ); } ); cls.add(method); cls.invoke(foo, hello, null); // ok? 15

Computational Reflection For further evolvability Dynamically evolvable Autonomously adaptable Context-aware For higher modularity & reusability Separation of cross-cutting concerns Late binding to non-functional requirements Building blocks with black-box abstraction 16

Future Competencies 17

What s Major Volume in SW industries 18

Classic Embedded Software Resource-constrained development and usage environments e.g. an objective function of cost, memory, performance, and physical dimension Targeted at single or restricted tasks shorter obsolescence cycle and no general scheme for SW/HW optimization (e.g. router software) HW replacement for flexibility or cost Mostly small-sized but manually optimized Embedded to infrastructures, utilities, or automotive mechanics Mostly, quality can not be compromised for cost 19

Modern Embedded Software Smart products available resources as in desktop application e.g. TI s OMAP3430 (ARM v7, 800MHz) general-purposed and open platform e.g. Windows mobile, Android, LiMo, Symbian major part of system in both function and size major volume of market: mobile, home & work Needs for seamless cooperation (IT convergence) Change in priority precedence time-to-market >> cost > quality getting generous about system shut-down (Microsoft) contributed to a fast growth in the market? 20

Future s Embedded Software Life-care products embedded in all types of living spaces brains, skins, bones, internal organs, artificial muscles, clothes, glasses, personal vehicle, healthcare or medical assistant, etc. endow-able, or printable software system? commoditized and standardized platform of IT convergence Further change in priority precedence quality >> time-to-market > cost Liability to show certifications in quality 21

Needed Roles & Activities Requirements engineer modeling & analysis Usability engineer system modeling in a usability view usability evaluation Software architect architectural design & analysis trade-off optimization Software system tester integration/system testing formal verification of protocol non-functional quality analysis Software developer communication-enabling technology system or infra software (e.g. OS or platform) 22

Closing Remarks Software is still high for its age, difficulty, and importance The point is to prepare software competencies demanded in future 23

References 1. Edward A. Lee, What s Ahead for Embedded Software?, IEEE Computer, pp. 18-26, Sept. 2000. 2. "No Silver Bullet - Essence and Accidents of Software Engine ering", Brooks, F. P., IEEE Computer, vol. 20, no. 4, pp. 10-19, April 1987. 3. Robert L. Glass, "Software: Hero or Zero?," IEEE Software, vol. 25, no. 3, pp. 96, 95, May/June 2008 4. Kiczales, G, Beyond the black box: open implementation, IEEE Software, vol. 13, no. 1, Jan 1996. 24