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

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

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

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

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

About Software Engineering.

Object-oriented Analysis and Design

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

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

Software Life Cycle Models

Requirements Gathering using Object- Oriented Models

R&D PROJECT MANAGEMENT IS IT AGILE?

Introduction to Software Engineering

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

UNIT-III LIFE-CYCLE PHASES

Introduction to adoption of lean canvas in software test architecture design

Practical issues. Why Software Engineering in general? Practical issues. Examen: Schriftelijk examen (70%) Materiaal: artikelen

Object-Oriented Design

Agile Software Development-- Why it is Hot.

F. Tip and M. Weintraub REQUIREMENTS

Software Project Management 4th Edition. Chapter 3. Project evaluation & estimation

Introduction. How are games similar/different from other software engineering projects? Common software engineering models & game development

Software Maintenance Cycles with the RUP

Code Complete 2: Realities of Modern Software Construction

Skylands Learning is your trusted learning advisor. That is our promise your trusted learning advisor. Four simple words.

UNIT VIII SYSTEM METHODOLOGY 2014

CompSci 101 Data into Information and Knowledge. CompSci 101 Introduction to Computer Science

Why BPM Is Unique & Important

Software Engineering

Introduc)on to So,ware Engineering

A New - Knot Model for Component Based Software Development

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

Testing in the Lifecycle

SWEN 256 Software Process & Project Management

UX CAPSTONE USER EXPERIENCE + DEVELOPMENT PROCESS

The secret behind mechatronics

The Evolution Tree: A Maintenance-Oriented Software Development Model

Prof Manjula R 1, Chakradhar Raju M 2, Sai Chand M 3 Computer Science Department, VIT University

APPLYING A NEW HYBRID MODEL OF EMBEDDED SYSTEM DEVELOPMENT METHODOLOGY ON A FLOOD DETECTION SYSTEM

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

Agile Acquisition of Agile C2

COMMERCIAL INDUSTRY RESEARCH AND DEVELOPMENT BEST PRACTICES Richard Van Atta

Migrating a J2EE project from IBM Rational Rose to IBM Rational XDE Developer v2003

Innovation in Quality

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

Thriving Systems Theory:

Lee, Joon-Sang LG Electronics Advanced Research Institute

Agile Non-Agile. Previously on Software Engineering

About MustPlay Games

Information & Communication Technology Strategy

1 Introduction and Roadmap: History and Challenges of Software Evolution

A Conceptual Model of Software Development

Game Production: testing

CONCURRENT ENGINEERING

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

Domain: Computer Science and Information Technology Curricula for the First Year (2012/2013)

Bringing Technology to the Market Successfully

The work under the Environment under Review subprogramme focuses on strengthening the interface between science, policy and governance by bridging

Artificial Intelligence and the Economy. Charles Noussair, Professor of Economics, Tilburg University Club of Amsterdam November 7, 2013

Systems Engineering Overview. Axel Claudio Alex Gonzalez

engineering In this chapter you will learn about the following 1.1 The nature of software

Foundations of Interactive Game Design

Reverse Engineering A Roadmap

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

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

Technology Roadmapping. Lesson 3

Radhika.B 1, S.Nikila 2, Manjula.R 3 1 Final Year Student, SCOPE, VIT University, Vellore. IJRASET: All Rights are Reserved

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

Internet Engineering. Jan Nikodem, Ph.D. Software Engineering

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

ChangeThis FINDING THE MAGIC IN TINY BUSINESS. Sharon Rowe

ELG3336 Introduction to Engineering Design

ACE3 Working Group Session, March 2, 2005

the role of mobile computing in daily life

Grand Challenges for Systems and Services Sciences

MODELLING AND SIMULATION TOOLS FOR SET- BASED DESIGN

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

HACETTEPE ÜNİVERSİTESİ COMPUTER ENGINEERING DEPARTMENT BACHELOR S DEGREE INFORMATION OF DEGREE PROGRAM 2012

MetaMet - A Soft Systemic Way Toward the Quality of Information Systems

DiMe4Heritage: Design Research for Museum Digital Media

1. Historical Development of SSDMs

Physics-Based Modeling In Design & Development for U.S. Defense Virtual Prototyping & Product Development. Jennifer Batson Ab Hashemi

Advancing Global Deepwater Capabilities

Digital Engineering. Phoenix Integration Conference Ms. Philomena Zimmerman. Deputy Director, Engineering Tools and Environments.

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti

Evaluating Evolutionary Prototyping for Customizable Generic Products in Industry (TAT AB)

24 Challenges in Deductive Software Verification

IMGD 1001: Programming Practices; Artificial Intelligence

Human-Computer Interaction

Original: English Rio de Janeiro, Brazil June 2012

Best Practices to Achieve Maximum Quality and Efficiency Improvements with Kodak Sonora Process Free Plates

Dr. Charles Watt. Educational Advancement & Innovation

Map of Human Computer Interaction. Overview: Map of Human Computer Interaction

FRONT END INNOVATION Multidisciplinary innovation process

ROBIN WALKER VALVE COMMUNITY AND COMMUNICATION IN GAMES-AS-SERVICES

Embracing Complexity. Gavin Walker Development Manager

WHY ACCOUNTANCY & SOCIAL DESIGN

Buskerud University College: Program Systems Engineering

Software Engineering Design & Construction

Innovation for Defence Excellence and Security (IDEaS)

Transcription:

Computer Science: Disciplines What is Software Engineering and why does it matter? Computer Graphics Computer Networking and Security Parallel Computing Database Systems Artificial Intelligence Software Engineering Original slides by Chris Wilcox, Colorado State University All kinds of interesting stuff is going on at Colorado State University! 2 Software Engineering IEEE Computer Society Definition: Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. Software Disasters Mariner Bugs Out (1962) Almost World War III (1983) Medical Machine Kills (1985) Wall Street Crash (1987) ATT Lines Dead (1990) 3 4 1

Software Engineering Doing the right thing Software that users want and need Software that benefits society Doing the thing right Following a good software process Developing your programming skills Software Engineering No Silver Bullet, but lots of progress Assembly Programming High Level Languages (Fortran, C) Object Oriented Languages (C++, Java) Card Reader Computer Terminal Bitmapped Display Command line Graphical tools (Eclipse, isual Studio) 5 6 What is software? Non-physical manifestation of information Media, genetic code, operating system, application Intellectual Property Executable software Non-executable software Problem statement, requirements document, software design, test plan, source code Software media is not software 7 Nature of Software Demand for software is high and rising, we hear about the perpetual software crisis. Untrained people can hack something together, thus software is often of poor quality. Software creation is labor intensive, must use engineering (not manufacturing) skills. Software does not wear out, but its requirements and the environment change. Software development cannot be automated, and it s easy to modify but hard to fix. 8 2

Quality Issues Information systems: Data integrity, security, availability, transaction performance, usability Distributed systems: System reliability, adaptability to network partitioning, fault tolerance Embedded systems: Response time, reliability, safety, usability Commercial Software (COTS): Reusability versus generality, cost 9 Stakeholders 1. Users Those who use the software Needs: efficiency, reliability, usability, functionality 2. Customers Those who pay for the software Needs: low cost, reliability, increased productivity, flexibility 3. Software developers Those who write the software Needs: high-quality documentation, tools, design 4. Development Managers Those who manage the project Needs: minimal development time, cost, few defects 10 The Problem Waterfall Model Programs are written by programmers, not users, how to understand requirements? Large gaps exist between the problem and solution, user and computer. Human domain is informal, computer domain is formal, translation is difficult. Key requirements can easily be expressed informally, formal specification is hard. Programs are formal (and must be in order to compile into machine instructions). The classic way of looking at software development: Series of carefully planned stages erify and validate output at each stage Allows stepping back, in a limited way Hard to handle changing requirements Gathering and Definition Specification Deployment Maintenance 11 12 3

d Release Spiral Model Introduces the idea of incremental development of software. Project is broken into separate phases. Each phase released to customers when ready. System available earlier than waterfall approach. still must be final before development. Gathering and Definition Specification Planning 1 Deployment 2 Deployment etc... Explicitly embraces prototyping and an iterative approach to software development. Start by developing a small prototype Followed by a series of waterfall processes Review software at end of each phase Repeat until software meets requirements (and beyond)! Review deployment Release 2 Release 1 Analysis of risk Prototype Specification 13 14 Incremental Development Unified Model A rapid prototype is a working model that is functionally equivalent to part of the product Inception Elaboration Construction Transition Prelim. iterations #1.. #n #n+1.. #m #m+1.. #k Rapid Prototype Specification is correct erify when client is satisfied with prototype Lessons about whatnot-to-do are learned during the prototyping Speed is of essence, prototype is eventually thrown away Specification erify erify Changed erify Test Integration Test Operations mode Retirement Analysis Amount of effort expended on the requirements phase during the first Construction iteration Test 15 16 4

The agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements to harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, shorter is better. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them. Working software is the primary measure of progress, simplicity is essential. http://agilemanifesto.org/principles.html The Mythical Man-Month Brooks s Law: Adding manpower to a late software project makes it later. 17 18 Joys of the Craft (Brooks) First is the sheer joy of making things, especially things of his own design. Second is the pleasure of making things that are useful to other people. Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles Fourth is the joy of always learning. Finally, there is the delight of working in such a tractable medium (as we shall see later, this has its own problems). 19 Woes of the Craft (Brooks) First one must perform perfectly. If one character, one pause of the incantation is not strictly in the proper form, the magic doesn t work. Next, other people set one s objectives, provide one s resources, and furnish one s information. One rarely controls the circumstances... The next woe is that designing grand concepts is fun; finding nitty little bugs is just work. The last woe is that the product over which one had labored so long appears to be obsolete upon (or before) completion. 20 5

No Silver Bullet Essence and Accidents of Software Engineering Brooks says there is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity. Brooks makes a distinction between accidental complexity and essential complexity, and asserts that most of what software engineers now do is devoted to the essential. Conclusions Software is indispensable to our modern lifestyle. Engineering discipline is needed for good software: Be good at what you do. And get ready for change. Why does it matter? So that you will prosper. For the benefit of society at large. 21 22 6