Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "COMS W3156: Software Engineering, Fall 2001 Lecture #24: The End…? Janak J Parekh"— Presentation transcript:

1 COMS W3156: Software Engineering, Fall 2001 Lecture #24: The End…? Janak J Parekh janak@cs.columbia.edu

2 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…

3 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

4 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)

5 Next class Final exam

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

7 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

8 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

9 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”

10 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

11 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

12 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

13 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

14 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

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

16 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

17 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

18 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

19 RPIS Reusability Interoperability Portability Scalability

20 Requirements “Rapid” prototyping Requirements elicitation

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

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

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

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

25 Maintenance Life sucks Techniques to simplify maintenance Formalize the process

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

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

28 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…


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

Similar presentations


Ads by Google