CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,

Slides:



Advertisements
Similar presentations
Lecture 2 1 Introduction to Software Engineering.
Advertisements

CS487 Software Engineering Omar Aldawud
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
CS3773 Software Engineering Lecture 01 Introduction.
Systems Development Life Cycle:
What is Software Engineering? And why is it so hard?
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering II
SWE Introduction to Software Engineering
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Chapter 6 Systems Development.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
CMSC 345 Fall 2000 Software Design and Development.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
An Introduction to Software Engineering (Chapter 1 from the textbook)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Development Life Cycle (SDLC)
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Advanced Software Engineering Dr. Cheng
Software Development.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Fundamentals of Information Systems, Sixth Edition
Software Design and Architecture
Software Engineering and Best Practices
Software What Is Software?
DEFECT PREDICTION : USING MACHINE LEARNING
Software Engineering (CSE 314)
Software Myths Deep Mann.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Testing and Maintenance Maintenance and Evolution Overview
CMPE 412 Software Engineering
Introduction To software engineering
Software Process Models
Rekayasa Perangkat Lunak
Presentation transcript:

CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman, Chapter 1 HP Software Engineering via Martin Griss “Code Complete” McConnell, Chapters 1-3

CS 3500 SE - 2 Software Eras (Pressman Figure 1.1) Early years l Batch l Limited distribution l Custom software Second era l Multiuser l Real-time l Database l Product software Third era l Distributed systems l Embedded “intelligence” l Low cost hardware l Consumer impact Fourth era l Powerful desk-top systems l OOP l Parallel l Internet x Increasing Amounts of Software The fifth era? Cloud computing Smart phones Multi-core

CS 3500 SE - 3 The 50+ Year “Software Crisis” l Hardware advances faster than the ability of software to take advantage of the hardware l Demand for new programs exceeds our ability to produce them l Computers are pervasive; reliability is key; major damage is possible on failure l We struggle to build reliable, high quality software l Support and enhancement of existing programs is expensive and error prone due to poor design and inadequate resources l Many, many projects are started but never finished

CS 3500 SE - 4 Aspects of Software Crisis l Techniques that work for small programs don’t scale l Big systems live on beyond original author(s) l Most effort expended after first release l Requirements change rapidly l User expectations increase rapidly l Most software late, expensive, buggy or inadequate l Last minute testing can’t ensure quality l What can you add to this list?

CS 3500 SE - 5 Software vs. Hardware Hardware failure rates (Pressman 1.2) Idealized software failure rates (Pressman 1.3) Why the difference?

CS 3500 SE - 6 Software Failure Rates Idealized software failure rates (Pressman 1.3) Actual software failure rates (Pressman 1.4) Why the difference?

CS 3500 SE - 7 Software Myths l Management Myths – We have books of standards. – I work very hard to put the latest, greatest, fastest, state-of-the-art hardware in front of all my programmers. – We have the greatest CASE tools around. – If we get behind, we can just add more programmers. l Customer myths – A general statement of objectives is sufficient to start coding, we can fill in the details later – Project requirements change constantly, but change is easy because software is flexible. l Programmer myths – Once the program is written and working, our job is done. – Until the program is running, there is no way to assess quality. – The only deliverable for a successful project is the working program.

CS 3500 SE - 8 Solution: Disciplined Software Engineering Computer Science Psychology, HCI Systems Management, Sociology Software Engineering “More than just programming and algorithms”

CS 3500 SE - 9 Software Lifecycle l Development phases: – Analysis [What do we need?] (14-22%) – Design [How do we do it?] (16-21%) – Coding [Implement it] (30-39%) – Testing [Make sure it works] (25-37%) l Relative time to fix defect after release depends on origin: – Analysis >> design >> coding >> test l Average time in maintenance – Only 25-45% of entire lifecycle spent in development – Fixing defects is 20-30% of lifecycle; enhancing the program is 35-45% of lifecycle – Half of maintenance time is spent figuring things out

Software Development Processes l Traditional Waterfall Process - Address each step completely before moving to the next - Each step might take many months - Premium on getting things right the first time - Emphasis on management hierarchies and written reports l Agile Process - Iterate repeatedly through each step, gradually growing the system - Each iteration produces an incomplete but usable system - Design changes and code refactoring are the norm - Premium on frequent and rapid interactions among clients and developers - Emphasis on face-to-face interactions

CS 3500 SE - 11 What Will We Study? l C# Programming using Visual Studio 2010 l Software Construction Tools and Techniques – Version control (SVN) – Testing – Debugging – Performance profiling – Code inspections – Object-oriented design patterns – Program organization and coding style – Documentation – UML (Unified Modeling Language) – Scripting

What Will We Study? l Software Architectures – Pipe and filter – Object-oriented – Client/server – Event-driven – Model-view-controller l Working Individually, in Pairs, in Small Groups – Via programming projects l Other Topics – Requirement gathering – High-level design – Intellectual property – Professional ethics