CUSEC 20021 Changing Software Engineering Peter Grogono Department of Computer Science Concordia University.

Slides:



Advertisements
Similar presentations
Copyright 2006 by Lockheed Martin Corporation. CURRENCY NOTICE: A hard copy of this document may not be the document currently in effect. The current version.
Advertisements

Engineering & Mechatronics
Omnibus: A clean language and supporting tool for integrating different assertion-based verification techniques Thomas Wilson, Savi Maharaj, Robert G.
Great Theoretical Ideas in Computer Science.
Presentation II History of Computers By Teacher Julio Cesar Peñaloza Castañeda.
DAAD project “Joint Course on OOP using Java” Development in teaching Design Patterns in the course OOP with Java Ana Madevska Bogdanova Faculty of Computer.
Programming Creating programs that run on your PC
What is Software Engineering? And why is it so hard?
E 2 ESQuaReD Time Management Balancing Research, Teaching and Service Matthew Dwyer Laboratory for Empirically-based Software Quality Research Department.
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Computer Science at Queen Mary, University of London Matthew Huntbach.
Cody Clifton KU GSO/AWM joint meeting April 29, 2014.
This year 315 students are learning automobile mechanics and automobile electrician specialties in Transport department. Student’s qualification - automobile.
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
Comp1004: Introduction I Welcome!. Welcome to Programming Principles Dr. David Millard Dr. Julian Rathke Dr.
CS-0401 INTERMEDIATE PROGRAMMING USING JAVA Prof. Dr. Paulo Brasko Ferreira Fall 2014.
DR HOSSEIN AGHILY1. VENTURE CAPITAL IN INNOVATION RISK FACTORS FOR INNOVATION 2DR HOSSEIN AGHILY.
Ideas for Using Technology In Core Mathematics Courses Lawrence E. Levine.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
Additional Materials1 Other Languages C and C++: Languages used by Systems Programmers. Heavy use by Computer Scientists. COBOL: An ancient Business oriented.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Bienvenue à l'atelier de Sakai.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
1 Welcome to CS 362 Applied Software Engineering What happens after (and during) design? Testing, debugging, maintaining programs Lessons for software.
University of Toronto Department of Computer Science CSC444 Lec05- 1 Lecture 5: Decomposition and Abstraction Decomposition When to decompose Identifying.
Compsci 06/101, Fall Compsci 6/101: Sept 6-10 l We've looked at the language Python  Names and types: int, float, long, String, file, …  Operations:
Computer Science 101 Preparing programmers to be architects Michael Huth, Computing, Imperial College.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAM DESIGN WITH C++ Templates.
Computer Concepts 2014 Chapter 12 Computer Programming.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
SUPERCOMPUTING CHALLENGE KICKOFF 2015 A Model for Computational Science Investigations Oct 2015 © challenge.org Supercomputing Around.
Coding is a language that programmers use in order to give computers instructions. Some examples of code using technology are: Cars Computers Websites.
CSC 395 – Software Engineering Lecture 5: Teams -or- How to Motivate and Manage the Unwashed Masses.
Always be Prepared for class - Bring two Pencils - Bring an eraser - Bring a Binder with loose leaf paper - Bring yourself - Oh yeah and don’t forget.
Towards the better software metrics tool motivation and the first experiences Gordana Rakić Zoran Budimac.
Strategies for Developing Visualizations of Parallel Algorithms for Dense Matrix Operations on Interconnected SIMD Computers by : Justin C. Miller 1/12.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Introduction to Engineering
Chapter 12: Computer Programming 1 Computer Programming Chapter 12.
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
COMPUTER SCIENCE Computer science (CS) is The systematic study of algorithmic.
Alexander the Great. After the Peloponnesian War… Alliances were made by different city-states to aid each other –Didn’t last long –Each city-state put.
Expert System Participants
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
1
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Languages and Data Organization
Why is software engineering worth studying?
What is STEAM? STEAM is a mix of interrelated subjects that are taught together in an integrated way. STEAM is an acronym for science, technology, engineering,
What is Wrong with Models?
The Software Development Cycle
Software Design & Implementation
Comp Sci 200 Programming I Jim Williams, PhD.
PowerPoint Primer Matt Yedlin December 2, /11/2018.
Computer Programming.
New Engineering Educational Transformation (NEET)
Chapter 12: Computer Programming
Subprograms and Programmer Defined Data Type
Ada – 1983 History’s largest design effort
Programming Language Design
For further school friendly materials visit
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Design & Implementation
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
Object Oriented Programming (OOP)- Assist. Prof. Dr
The Software Development Cycle
Computer Science Department
WHY DO CHOOSE ELECTRICAL ENGINEERING?
Presentation transcript:

CUSEC Changing Software Engineering Peter Grogono Department of Computer Science Concordia University

CUSEC Software Engineering is changing

CUSEC Making changes to Software Engineering

CUSEC The Engineering of changing Software

CUSEC 20025

6

7

8

9

10

CUSEC

CUSEC

CUSEC

CUSEC If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. Jerry Weinberg

CUSEC

CUSEC

CUSEC

CUSEC Paradigm shifts Structured design Abstract data types Information hiding Object oriented design Aspect oriented design Learner centered design

CUSEC Programming languages COBOL FORTRAN C Pascal C++ Java C#

CUSEC But, as we look to the horizon of a decade hence, we see no silver bullet. Fred Brooks

CUSEC I find myself more and more exasperated with great inflexible sets of rules that many companies try to pour into concrete and sanctify as rules. The idea that a single method should govern even two different projects is highly suspect: the differences between projects are much more important than the similarities. Tom DeMarco

CUSEC Progress Cancelled31%23% Challenged53%49% Successful23%16% Overrun12%2.5% Cost of failure$81 billion$75 billion Cost overrun$59 billion$22 billion

CUSEC void qsort ( char *base, unsigned count, int size, int (*compar) (void *px, void *py) );

CUSEC template< typename RandomAccessiterator, typename Compare> void sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp );

CUSEC

CUSEC

CUSEC BMW Series 7 has 65 microprocessors One for each headlight One for each airbag One for the rear-view mirror Transmission talks to mirrors ABS talks to the radio GPS talks to the cell phone

CUSEC

CUSEC BMW hires automotive engineers and teaches them to program Boeing hires aeronautical engineers and teaches them to program Software engineers must learn to speak the jargon

CUSEC

CUSEC Software Engineers

CUSEC

CUSEC What Software Engineers have to do: Learn to talk to other engineers Be familiar with lots of tools and techniques Know how to choose the best tools Be prepared to learn local practices Stop being scared by mathematics Accept professional responsibilities

CUSEC What Software Engineering educators have to do: Identify basic principles Relate principles to practice Be active researchers Be leaders, not followers Keep improving the curriculum Insist on high standards

CUSEC Training = how to use a tool Education = how to choose the best tool

CUSEC What Software Engineering researchers have to do: Empirical research: find out what works, what doesn’t work, and why Theoretical research: discover the basic principles that underlie software engineering Stop selling snake oil

CUSEC But, in our enthusiasm, we could not resist carrying out a complete overhaul of the system, during which weaknesses were exposed, analyzed, and replaced with new weaknesses. Bruce Leverett

CUSEC Logic, like whiskey, loses its beneficial effect when taken in too large quantities. Lord Dunsany ( )

CUSEC You are not here to worship what is known, but to question it. Nancy Leveson

CUSEC Rules are my very humble, obedient servants. Josef Haydn ( )

CUSEC