CSE 435: Software Engineering

Similar documents
CSE 435: Software Engineering FYI

Electrical, Computer and Software Engineering - a historical perspective -

Electrical, Computer and Software Engineering - a historical perspective -

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

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

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

Software-Intensive Systems Producibility

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

Distributed Systems Programming (F21DS1) Formal Methods for Distributed Systems

Hardware-Software Co-Design Cosynthesis and Partitioning

Teleoperation and System Health Monitoring Mo-Yuen Chow, Ph.D.

Executive Summary. Chapter 1. Overview of Control

Research on the Integration and Verification of Foundational Software and Hardware

Automated Test Summit 2005 Keynote

SAFETY CASES: ARGUING THE SAFETY OF AUTONOMOUS SYSTEMS SIMON BURTON DAGSTUHL,

Electrical, Computer and Software Engineering

ULS Ecosystem Design Research Area: Design

UNIT-III LIFE-CYCLE PHASES

AES - Automotive Embedded Systems

THE NEW GENERATION OF MANUFACTURING SYSTEMS

AGENTS AND AGREEMENT TECHNOLOGIES: THE NEXT GENERATION OF DISTRIBUTED SYSTEMS

What is a Simulation? Simulation & Modeling. Why Do Simulations? Emulators versus Simulators. Why Do Simulations? Why Do Simulations?

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

Industry 4.0: the new challenge for the Italian textile machinery industry

Cross Linking Research and Education and Entrepreneurship

Systems Engineering Overview. Axel Claudio Alex Gonzalez

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

About Software Engineering.

A Theory about the Structure of GTSEs

William Milam Ford Motor Co

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

Socio-cognitive Engineering

Embracing Complexity. Gavin Walker Development Manager

Road Traffic Estimation from Multiple GPS Data Using Incremental Weighted Update

Intelligent Power Economy System (Ipes)

06 March Day Date All Streams. Thursday 03 May 2018 Engineering Mathematics II. Saturday 05 May 2018 Engineering Physics

Verification of Autonomy Software

MODELING COMPLEX SOCIO-TECHNICAL ENTERPRISES. William B. Rouse November 13, 2013

IEEE IoT Vertical and Topical Summit - Anchorage September 18th-20th, 2017 Anchorage, Alaska. Call for Participation and Proposals

Modeling Enterprise Systems

Electronics the hidden sector. Dr Kathryn Walsh Director, Electronics-enabled Products KTN

System Architecture An Overview and Agenda

EIE 528 Power System Operation & Control(2 Units)

By Mark Hindsbo Vice President and General Manager, ANSYS

Strategies for Research about Design: a multidisciplinary graduate curriculum

interactive IP: Perception platform and modules

Stream Profiles Career Opportunities

Development and Integration of Artificial Intelligence Technologies for Innovation Acceleration

Digital Disruption Thrive or Survive. Devendra Dhawale, August 10, 2018

A Discipline for Software Engineering

Cyber-Physical Systems: Challenges for Systems Engineering

Building a comprehensive lab sequence for an undergraduate mechatronics program

GALILEO Research and Development Activities. Second Call. Area 3. Statement of Work

ISCW 2001 Tutorial. An Introduction to Augmented Reality

AI Application Processing Requirements

GUIDE TO SPEAKING POINTS:

ENGINEERS, TECHNICIANS, ICT EXPERTS

Dr Daniela Cancila. Laboratoire des composants logiciels pour la Sécurité et la Sûreté des Systèmes (L3S)

Computer Science as a Discipline

A Multi-Level Curriculum in Digital Instrumentation and Control based on Field Programmable Gate Array Technology

LEARN REAL-TIME & EMBEDDED COMPUTING CONFERENCE. Albuquerque December 6, 2011 Phoenix December 8, Register for FREE

Energy autonomous wireless sensors: InterSync Project. FIMA Autumn Conference 2011, Nov 23 rd, 2011, Tampere Vesa Pentikäinen VTT

EXPERT GROUP MEETING ON CONTEMPORARY PRACTICES IN CENSUS MAPPING AND USE OF GEOGRAPHICAL INFORMATION SYSTEMS New York, 29 May - 1 June 2007

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

AI in Europe How could the EC help European society and economy to make the best of this revolution?

Learning and Using Models of Kicking Motions for Legged Robots

Software Computer Vision - Driver Assistance

WHITEPAPER. A comparison of TETRA and GSM-R for railway communications

AGENT PLATFORM FOR ROBOT CONTROL IN REAL-TIME DYNAMIC ENVIRONMENTS. Nuno Sousa Eugénio Oliveira

Computer Science at James Madison University

A Balanced Introduction to Computer Science, 3/E

The Role of Computer Science and Software Technology in Organizing Universities for Industry 4.0 and Beyond

IEEE Internet of Things

15 th Annual Conference on Systems Engineering Research

Fundamental Research in Systems Engineering: Asking Why? rather than How?

Dr. Cynthia Dion-Schwartz Acting Associate Director, SW and Embedded Systems, Defense Research and Engineering (DDR&E)

Lecture 1. Tinoosh Mohsenin

Electrical Engineering Graduate Programs

CPE/CSC 580: Intelligent Agents

Welcome to 6.S084! Computation Structures (special)

23270: AUGMENTED REALITY FOR NAVIGATION AND INFORMATIONAL ADAS. Sergii Bykov Technical Lead Machine Learning 12 Oct 2017

RoboCup. Presented by Shane Murphy April 24, 2003

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

Adopting Standards For a Changing Health Environment

Leveraging Simulation to Create Better Software Systems in an Agile World. Jason Ard Kristine Davidsen 4/8/2013

EECS 270 Schedule and Syllabus for Fall 2011 Designed by Prof. Pinaki Mazumder

Cyber-Physical Systems Design: Foundations, Methods, and Integrated Tool Chains.

EXTENDED TABLE OF CONTENTS

Computer Aided Design of Electronics

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

Why do we need standards?

STRATEGIC INNOVATION GREEN BELT WORKSHOP

Hardware/Software Codesign of Real-Time Systems

Formation and Cooperation for SWARMed Intelligent Robots

Learning and Using Models of Kicking Motions for Legged Robots

Advanced FPGA Design. Tinoosh Mohsenin CMPE 491/691 Spring 2012

Trends Report R I M S

Strategic Considerations when Introducing Model Based Systems Engineering

The Key to the Internet-of-Things: Conquering Complexity One Step at a Time

Degree Programme in Electrical and Automation Engineering

Transcription:

CSE 435: Software Engineering Dr. James Daly 3501 Engineering Building Office: 3501 EB, by appointment dalyjame at msu dot edu TAs: Vincent Ragusa and Mohammad Roohitavaf Helproom Tuesday: 2-4 pm, Wednesday 3-5 pm ragusavi, roohitav at msu dot edu CSE 435: Software Engineering

FYI Ph.D. Computer Science at Michigan State University (2017) Previous courses taught Introduction to Programming II (CSE 232) Discrete Structures (CSE 260) Data Structures and Algorithms (CSE 331) Software Engineering (CSE 435) Research areas: Computer network algorithms o Packet classification Industry Experience MIT Lincoln Laboratory TechSmith CSE 435: Software Engineering

High-Assurance Autonomic Computing Autonomic computing [2001]: Promises self-managed and longrunning systems with limited human guidance. Systems must continue to operate correctly during exceptional situations, upgrades, and evolution under uncertain conditions Need for assurance hardware component failures network outages software faults security attacks

New Scale High-Assurance Cyberphysical Systems Intelligent Transportation and Vehicle Systems Requires increasingly complex systems Thousands of platforms, sensors, decision nodes, complex systems Connected through heterogeneous wired and wireless networks. Ultra-Large-Scale Systems Linda Northrop, ICSE 2007 2007 Carnegie Mellon University 21

The future 5

Now Advanced Driver-Assistance Systems Onboard Autonomous Features Safety Convenience 6

Objectives of this course Introduce industrial-strength software development: formal processes/artifacts for planning, specifying, designing, implementing, and verifying Individual and team-based development life-cycle issues and umbrella activities Introduce key foundations underlying these activities E.g., requirements engineering E.g., software modeling E.g., assurance CSE 435: Software Engineering

Overview of Course Emphasis on analysis and design Learn/apply new techniques for software development Learn to work with a group Improve technical writing skills Become up to date on current trends in SE Explore presentation media and techniques

Structure of Course (Short) assignments over readings In lab assignments (various SE tools) Group projects (prototype, analysis, design): modeling and documentation Two exams (middle and final) Presentations: oral presentations, prototype demos

How different is this course? Quite! Not a programming course Exercises aim to facilitate problem understanding, solutions, tradeoffs, and sensitivity to challenges that affect industrial software development Written and oral communication skills will be exercised, improved, and assessed Team work is critical and will be assessed CSE 435: Software Engineering

Relation to other courses? Not a design/programming course (ala CSE 335) Much higher-level coverage of notations More emphasis on process than design methods Not a capstone design experience (ala CSE 498) Smaller, more constrained project Smaller teams Projects will be industry-based Ideal pre-capstone course: CSE 335 CSE 435 CSE 498 (coding, design) (design, reqts, process) (synthesis) CSE 435: Software Engineering

PAUSE Syllabus HW1 due next Wednesday Survey due Sept 12 13

What is Software Engineering??? The study of systematic and effective processes and technologies for supporting software development and maintenance activities Improve quality Reduce costs

Historical Perspective 1940s: computers invented 1950s: assembly language, Fortran 1960s: COBOL, ALGOL, PL/1, operating systems 1969: First conference on Software Eng 1970s: multi-user systems, databases, structured programming

Historical Perspective (cont.) 1980s: networking, personal computing, embedded systems, parallel architectures 1990s: information superhighway, distributed systems, OO in widespread use. 2000s: virtual reality, voice recognition, video conferencing, global computing, pervasive computing... 2010s: EMRs, autonomous vehicles, new security awareness,...

Hardware Costs vs Software Costs (% of overall costs) h/w costs s/w costs Time

Why is software so expensive? Hardware has made great advances But, software has made great advances... We do the least understood tasks in software. When task is simple & understood, encode it in hardware Why? Demand more and more of software Consider your cell phone

Size of programs continues to grow Trivial: 1 month, 1 programmer, 500 LOC, Intro programming assignments Very small: 4 months, 1 programmer, 2000 LOC Course project Small: 2 years, 3 programmers, 50K LOC Nuclear power plant, pace maker Medium: 3 years, 10s of programmers, 100K LOC Optimizing compiler

Size of programs continues to grow Large: 5 years, 100s of programmers, 1M LOC MS Word, Excel Very large: 10 years, 1000s of programmers, 10M LOC Air traffic control, Telecommunications, space shuttle Very, Very Large: 15+ years, 1000s programmers, 35M LOC W2K Ultra-Large Scale:? years,? developers distributed, 1000s of sensors, decision units, heterogeneous platforms, decentralized control Intelligent transportation systems; healthcare systems

New Scale Ultra-Large Scale SW-Intensive Systems Healthcare Infrastructure Ultra-Large-Scale Systems Linda Northrop, ICSE 2007 2007 Carnegie Mellon University 21

New Scale Intelligent Transportation and Vehicle Systems Ultra-Large-Scale Systems Linda Northrop, ICSE 2007 2007 Carnegie Mellon University 22

The ULS Ecosystem Key elements: Computing devices Business and organizational policies Environment (including people) Forces: Competition for resources Unexpected environmental changes Decentralized control Demand for assurance

Context: Sufficient System Health High-level Objective: How to design a safe adaptive system with incomplete information and evolving environmental conditions Execution environment How to model environment How to effectively monitor changing conditions Adaptive monitoring Decision-making for dynamic adaptation Decentralized control Assurance guarantees (functional and non-functional constraints) Adaptation mechanisms: Application level Middleware level

What s the problem? Software cannot be built fast enough to keep up with H/W advances Rising expectations Feature explosion Increasing need for high reliability software

What s the problem? Software is difficult to maintain aging software Difficult to estimate software costs and schedules Too many projects fail Ariane-5 Missile Denver Airport Baggage System Therac-25

Why is software engineering needed? To predict time, effort, and cost To improve software quality To improve maintainability To meet increasing demands To lower software costs To successfully build large, complex software systems To facilitate group effort in developing software

Shaw s model of engineering evolution [Shaw-IEEE-Computer90] Production Commercial Science Engineering Craft CSE 435: Software Engineering

Characteristics: Craft Virtuosos and talented amateurs Intuition and brute force Haphazard progress Casual transmission of knowledge Extravagant use of available materials Manufacture for use rather than sale Examples: woodworking, artists CSE 435: Software Engineering

Characteristics: Commercial production Skilled crafts Established procedure Pragmatic refinement Training in specific domain (e.g., mechanics-- automotive technicians, structures-- construction worker, electricians) Economic concern for cost and supply of materials Manufacture for sale Examples: automotive parts, chip manufacturing CSE 435: Software Engineering

Characteristics: Professional engineering Educated professionals Analysis and theory Progress relies on science Educated professional class New applications enabled through analysis Market segmentation by product variety Examples: civil engineering (bridges, buildings), automotive engineers (electronics, mechanical engineering) CSE 435: Software Engineering

Evolution of Civil Engineering 1700: Statics, strength of materials Craft Production Commercial 1st century: Romans Science Engineering 1750: Material Properties 1850: Bridge Analysis CSE 435: Software Engineering

Civil Engineering Basis in theory. Actually two theories: ostatics: composition of forces. omaterial strength: bending of a beam. Theories preceded real CE by 150 years! Underlying science emerged 1700 years after commercial production evolved! CSE 435: Software Engineering

Software Engineering Evolution (circa 1990) Science: algorithms, logic, 1965-70: databases, algorithms languages 1980-85: ADTs Production Craft Commercial Science 1980 s: Development Methodologies Engineering Isolated Examples (5ESS, Shuttle) CSE 435: Software Engineering

Two pillars of SE education Basis in: production processes and process frameworks rigorous theories addressing design problems that attend to the various phases of these processes This course: organized around first pillar structured so that process issues will motivate introduction of theoretical content CSE 435: Software Engineering

Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities: Throughout lifecycle

Definition Requirements definition and analysis Developer must understand oapplication domain orequired functionality orequired performance ouser interface

Definition (cont.) Project planning Allocate resources Estimate costs Define work tasks Define schedule System analysis Allocate system resources to o Hardware o Software o Users

Software design Development User interface design High-level design odefine modular components odefine major data structures Detailed design odefine algorithms and procedural detail

Development (cont.) Coding Develop code for each module Integration Combine modules System testing Unit testing

Maintenance Correction - Fix software defects Adaptation - Accommodate changes New hardware New company policies Prevention - make more maintainable Enhancement - Add functionality

Umbrella Activities Reviews - assure quality Documentation - improve maintainability Version control - track changes Configuration management - integrity of collection of components

Software Engineering Costs

Relative Costs to Fix Errors This is why software process pays off