Software Engineering 2014-15 Theme leader Kung-Kiu Lau Today s presenter John Sargeant
Course Units: ACS: Software Engineering COMP61511 Software Engineering Overview ( Overview ) COMP61521 Component-based software development ( Components ) COMP61532 Pattern-based software development ( Patterns ) COMP61542 Agile and test-driven development ( Agile ) In periods 1-4 respectively
COMP61511 Software Engineering Overview John Sargeant Overview of important concepts and practices in OO SE. Focus on object-oriented design observation: many good programmers are poor designers Strong emphasis on teamwork, with some Agile practices Philosophy: teach it because I have evidence that it works, not just because it s in a book.
Object-oriented SW development Iterative development: example process, the Agile Unified Process Requirements capture and dealing with change Software design with GRASP principles (e.g. high cohesion, low coupling) Small but useful subset of UML notation Testing and other SE basics Prerequisites for Patterns and Agile.
COMP61521 Component-based Software Development A software component is a unit of composition with an interface that specifies its contractual dependencies. Objects as in object-oriented programming are not good for composition. For component-based software development, we need to go beyond object-oriented programming.
COMP61521 Component-based Software Development Kung-Kiu Lau Basic concepts components, composition, component models Component life cycle Survey of current component models Categories of component models Component models based on objects Enterprise JavaBeans, JavaBeans Component models based on architectural units Acme, UML2.0 Component models based on encapsulated components Web services, X-MAN
COMP61532: Pattern-based Software Development Liping Zhao and John Sargeant Builds on the OO design material in the Overview. John: Gang of four design patterns - best practice solutions to recurring design problems. Liping: Other software patterns, including architectural patterns and e-business patterns. Mix of individual and group assessment.
Design Patterns Non-obvious solutions to software design problems Based on GRASP principles (in Overview) Capture best practice in software design Form a language for communication between SW developers Idea first arose in architecture, popularised for software development by the Gang of Four book, design patterns. Indispensible in modern software development
COMP61542 Agile and Test-driven Embrace change! development Caroline Jay and Robert Stevens Believed by many to represent current best practice in software development Extremely popular in industry at present Guest lectures from industry e.g. the BBC, Thoughtworks and Web Applications UK These companies are very interested in hiring Manchester students.
Agile methods: some concepts Not just hacking agile methods are actually quite prescriptive. Teamwork, and self-improving teams, are central Physicality body language and use of physical artefacts is important Specific practices include Test Driven Development (writing the tests before the code) and Programming in Pairs Some of these will be in the overview, much more in the Agile course itself. Google The Agile Manifesto for more.
In-course organisation See individual courses for details but generally: Lectures in the mornings, labs in the afternoon (e.g. COMP61511 9.30-12.30 and 2-5). Strong emphasis on practical work, you will spend most of the other 1.5 days a week on this. Assessment 50% coursework 50% exam. Coursework will be in fewer, larger, units than for other themes. Very strong emphasis on teamwork in Overview and Agile.
Overall organisation Prerequisite: reasonable programming ability (talk to me if you re not sure). Two themes: SE1, semester 1, Overview and Components SE2, semester 2, Patterns and Agile For the SE pathway you need to do both; otherwise SE1 only is a standard choice.
Other options If you already have significant OO SE experience, the Overview may be boring. In that case, talk to me. Possibilities, subject to timetabling: Do SE2 but not SE1. Do SE2 + Components (3 CUs total) Do Components + 1 of Agile, Patterns But: the second and third options break the theme structure, so a special case will need to be made.
Questions?