COMS W3156: Software Engineering, Fall 2001 Lecture #24: The End…? Janak J Parekh

Slides:



Advertisements
Similar presentations
Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Advertisements

Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
HCI in the software process Chapter 6
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Introduction to Software Engineering Lecture 3 André van der Hoek.
The Mythical Man-Month by Fred Brooks (I) Published 1975, Republished 1995 Experience managing the development of OS/360 in Central Argument –Large.
No Silver Bullet “There is no single development, in either technology or management technique, which by itself promises even one order-of magnitude improvement.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Software Development Software Life Cycle UML Diagrams.
No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
IS 421 Information Systems Management James Nowotarski 16 September 2002.
Transitioning to XP or The Fanciful Opinions of Don Wells.
The Mythical Man-Month Due Today: Code & Coding Standards Due Next Class: Quiz #3; see webpage Mythical Man-Month I Bio Break Mythical Man-Month II Questions.
Midterm ReviewSummer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Midterm Review Partially.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
COMS W3156: Software Engineering, Fall 2001 Lecture #10: Planning and Estimation Janak J Parekh
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
COMS W3156: Software Engineering, Fall 2001 Lecture #6: Objects I Janak J Parekh
Feb. 27, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #13 Tuesday, Feb. 27, 2001.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
Software Engineering Dec-01 #24: Review Phil Gross.
CSIS-116: Survey of Information Technology Dr. Eric Breimer.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Essence and Accident in Software Engineering By: Mike Hastings.
CIS 321—IS Analysis & Design
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Software processes COSC 420 – Software Engineering Brian Toone.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
“No Silver Bullet” - refired
SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA.
Slide TMMM.1/28 The Mythical Man-Months. Slide TMMM.2/28 Overview Fred Brooks and OS/360 The Mythical Man-Month What has and has not changed? No Silver.
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Software Engineering Management Lecture 1 The Software Process.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
CSE 219 Computer Science III Program Design Principles.
10/20/2015 ©2007 Scott Miller, University of Victoria. 1 SENG130 Engineering Software Systems Introduction Rev. 2.1.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
Information System Design (IT60105) Lecture 26 Object-Oriented System Testing.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
No Silver Bullet – Essence and Accident “Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will.
Software Waterfall Life Cycle
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Pertemuan 1 Introduction to Software Engineering Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Summary CGS 3460, Lecture 43 April 26, 2006 Hen-I Yang.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
CASE Tools CSC 532 : Advance Topics CSC 532 : Advance Topics Software Engineering Software Engineering Dr. box Dr. box Moayad Almohaishi Moayad Almohaishi.
Lectures 2 & 3: Software Process Models Neelam Gupta.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
Advanced Software Engineering Dr. Cheng
Software Design Refinement Using Design Patterns
Software Engineering Management
Review for Final, Fall 2010 Close book, Close notes
EECE 310 Software Engineering
Why Object-oriented Programming?
UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11
CSC 354 – System Development Life Cycles & Processes, Fall 2013
Presentation transcript:

COMS W3156: Software Engineering, Fall 2001 Lecture #24: The End…? Janak J Parekh

Administrativia Good seeing some of you last night… *cough* Course evaluations up and running HW’s here –Solutions have been posted HW4 is up –Must, must, must include a README Demo…

Demos Your entire team should sign up for one of the two scheduled final dates –Mon., Dec. 17 th, 1:10pm-4:00pm –Thu., Dec. 20 th, 4:10pm-7:00pm We’ll have signup forms available tomorrow, as well as details of what to demo If whole team can’t make either of the two final dates (or if you have little to demo) you can schedule for reading week instead I’ll buy pizza for everyone

Demos: Bonus Points! Up to 10 extra points for added functionality that was missing from the full implementation –Not extras… Integration bonus –+3 points if you use someone else code (max +6) –+1 point if your code is used by someone else (max +4)

Next class Final exam

Today’s class A bit more design patterns MMM review Final exam review

Observer Very common GUI programming paradigm Leads directly to event programming (which in itself is a relatively recent construct) Define a one-to-many dependency between objects so that when the parent changes state, dependents are notified

Proxy Provide a “surrogate” or placeholder for another object to control access to it Useful for cost, abstraction “Sophisticated pointer” Can be extrapolated to the common network programming paradigm –RMI, CORBA use “proxy” objects –Web proxy

Adapter Convert interface of a class into another interface Swing Adapters are actually a bit different from this: they’re partial implementations –Interestingly, other Swing classes can be considered Adapters –JTextPane is an “adapter” from the JComponent to a “Document”

About Mythical Man-Month Fred Brooks wrote it in 1975, after his experiences in OS/360 design Which means that much of the book’s context is dated

Mythical Man-Month Major themes in chapters 1-15 (see Ch18): –Brooks’ Law –The “black hole” of large project design: getting stuck and getting out –Organizing large project teams, and communication –Documentation, documentation, documentation –When to keep and throw away code –Dealing with limited machine resources (outdated?) –Most supplemented with practical experience

After 20 years… (Ch 19) Much of the book still applies –Conceptual integrity most important step towards product quality –Brooks’ law still seems to apply Admissions –Hypocrisy between chapters 5 and chapter 11, but mostly linguistic –Incremental build is better than throwing away the first version entirely –Information hiding necessary (ch7) –Millions of computers today: much less timesharing, much more shrinkwrap

No Silver Bullet (Ch 16) Paper written in 1986, became huge “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.” Why? The essence of software is that inherently complex, irrespective of accidental issues, such as language –Even autogenerating code isn’t enough

Still No Silver Bullet (Ch 17) Lots of people disagreed –No-one has come up with proof of a counterargument People are too pessimistic: Brooks’ point is that there is no revolution… but there is an evolution of software development –“Optimism is an occupational disease of our craft” OO: brass bullet –Does improve encapsulation and reuse, but still has its own problems, and can still lead to complexity

Postmortem Did you learn anything? Did I learn anything? –Yes, never to teach a class on one week’s notice

Final exam review Probably around 4 questions, give or take One of them will be a set of true/false, short-answer The rest will be “medium-answer”: no essays

Course intro Inherent complexity of software –Bridges vs. operating systems Need to be able to organize a software project Numerous ways of doing this Examples of success/failure: –Mars Rover –Therac-25

Basic model 7 basic lifecycle model phases: name ‘em! Teams –Modern, chief programmer, democratic, XP, MS Models –Build-and-fix, waterfall, rapid prototyping, incremental, XP, synchronize-and-stabilize, spiral

RPIS Reusability Interoperability Portability Scalability

Requirements “Rapid” prototyping Requirements elicitation

OOA/UML Use-cases Class diagrams Sequence diagrams State diagrams

Design UML diagrams Stepwise refinement Data-flow analysis (eh…) –Cohesion vs. coupling Psuedocode, documentation

Implementation Languages –Java vs. C/C++ Commenting code –Javadoc Testing –Black-box vs. glass-box –Integration vs. isolation

Integration Top-down, bottom-up, “sandwich” Stubs and drivers Testing: incremental

Maintenance Life sucks Techniques to simplify maintenance Formalize the process

Tools, advanced programming CVS XML –JDOM –Schema Concurrency –Threads Regular expressions Databases Swing (minimal) C, OS (minimal) Design patterns (minimal)

Networking TCP/IP basics: IP, TCP, DNS HTTP LDAP/JNDI Event models (Siena) Distributed objects (RMI) Socket programming Security/crypto

What does this mean for you? I don’t think I need this slide anymore Exam is open-book, but that doesn’t mean you read the books during the exam Good luck See you on Thursday –and one more time…