150 likes | 329 Views
COMP 2007. R J Walters. Introduction. Try to place this course in context A bit of history “Engineering”?. Software Engineering: Who cares?. I do Its what this course is about I don’t really trust the way we make software these days It should lead to better software (I’m being paid to).
E N D
COMP 2007 R J Walters
Introduction • Try to place this course in context • A bit of history • “Engineering”?
Software Engineering:Who cares? • I do • Its what this course is about • I don’t really trust the way we make software these days • It should lead to better software • (I’m being paid to)
Who cares? • You do • You need it to pass this course • You need it for the group project, and your own project next year • It’s what real developers get paid to do • It might help you get a job • I’ll be marking some of this course and COMP 2012
What Am I talking about? • Compare Software with Hardware • Characteristics of the activity of building Software • It is new • It isn’t constrained by the “real world” • It can be very big (complex)
Where are we now? • Clever systems are everywhere • Many of them are a bit suspect • Describing the way we build software as Engineering is still stretching things a bit
How did we get into this mess? • Initial concentration on hardware • Complacency • Tolerance • Crisis? What crisis?
Where have we been? • Rats nest • Machine language and assembler • The flow-chart and the goto • Structured programming • Modules, dataflow, SSADM, Jackson (JSD) and all the rest • Objects • Java, UML
A few asides • “Proprietary” methods • Formal methods • Extreme programming • Prototyping • Component based systems
Where will it end? • OO might be it • Or it might not • Engineering software is what we ought to be doing
Engineering? • Build things in such a way that we know: • It will do the job and how reliable it will be • How much it will cost and how long it will take to make • What we did and how to make another (better) one
Engineering? • There is more to Software Engineering than the programming paradigm • Requirements and Specification • Design • Testing • Maintenance • Documentation • Process • Standards?
To sum up • Software Engineering is something we have to worry about • It is more than the programming language we use • It is what enables teams to build big systems • We don’t have all the answers
Questions? • Suggested reading • Your UML reference • Software Engineering, 7th Edition, Ian Sommerville • Software Engineering: A Practitioner's Approach, Roger Pressman