Software Engineering 2014-15

Similar documents
Masters of Science in Software & Information Systems

COMP61532 Pattern-based Software Development Liping Zhao John Sargeant Comments. Please see the attached.

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

AGILE SOFTWARE DEVELOPMENT AND UML. John O. Iyaniwura BSc (Hons), MSc New Vision Labs Thursday 11 th October, 2012

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

CS314: Course Summary

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS?

توصيف مقرر دراسي Description Course

Basic Trends of Modern Software Development

Object Oriented Design

Extreme Programming and Rational Unified Process Contrasts or Synonyms?

School of Computer Science

Software Engineering

POSTGRADUATE CONSTRUCTION PROGRAMME

SOFTWARE PROCESS MODELS

CS 4240: Principles of Software Design. Course Introduction. Tom Horton

SYLLABUS. Software Engineering

Organization. Introduction to Software Engineering

Introduction to Agile Software Development. EECS 690 Agile Software Development


Some Research on Agile Software Development

Programming and Software Development CTAG Alignments


CS4507 Advanced Software Engineering

System development lifecycle waterfall model

Electronic Healthcare Design and Development

CLOUD SUPPORT COMPONENT: CASE STUDY BASED ON ENCAPSULATED COMPONENT MODEL

School of Computer Science

Software Engineering and Scientific Computing

Studying

Agile and Enterprise Architecture

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

How To Understand Software Engineering

Real Time Embedded Software Development Using Agile Technology An Experience Report

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

COMP 354 Introduction to Software Engineering

Agile Software Development

IT3205: Fundamentals of Software Engineering (Compulsory)

Chapter 1 The Systems Development Environment

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Agile Methods in Software Development (SE 470) Course Details

Agile Software Development

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Agile Development with C#

How To Get A Degree In Computer Science Online

Agile Modeling and Design of Service-Oriented Component Architecture

Software Requirements and Specification

School of Computer Science

A New MSc Curriculum in Computer Science and Mathematics at the University of Zagreb

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Agile Software Engineering Practice to Improve Project Success

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Introduction to Software Engineering (ESE : Einführung in SE)

PROGRAMME DETAIL SPECIFICATION. Programme Summary

Advanced Software Engineering. Software Development Processes

Introduction to Agile Software Development

Software Composition Technologies Helping People Gain Control of Software Development

BUSINESS TECHNOLOGY (BTE)

Incorporation of an online tutoring tool into programming courses. Abstract

SAPM Overview Semester Summary

The Open University s repository of research publications and other research outputs. Learning software engineering at a distance

Subject Experience Survey Instrument Questions

LONDON SCHOOL OF COMMERCE. Programme Specification for the. Cardiff Metropolitan University. BSc (Hons) in Computing

Programme Study Plan

Agile Testing and Extreme Programming

BBIM611 Strategic Web Design and Development

Product Derivation Process and Agile Approaches: Exploring the Integration Potential

SOFTWARE ENGINEERING TEAM STUDIOS. Jaime Niño Computer Science, University of New Orleans New Orleans, LA

Business Process (BPMN) Course

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

City University of Hong Kong Course Syllabus. offered by Department of Computer Science with effect from Semester A 2015/16

Real-World Object-Oriented Design Experience for Computer Science Students

Alternative Development Methodologies

Strategic Planning and Investment MSc

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

N/A. Computing, Engineering

Chapter 1 - From Beginning to End: An Overview of Systems Analysis and Design Lecture Notes

IOM433 Creative Information Systems Analysis and Design Spring 2006 T/Th 2-3:50 HOH406 (Labs meet in HOH401)

A Comparison of SOA Methodologies Analysis & Design Phases

Course Title: ITAP 4371: E-Commerce. Semester Credit Hours: 3 (3,0)

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

Extreme Programming. As software organizations continue to move

Agile for Product Owners


Quality Consistency Flexibility Affordability

Valid from: September 2012 Faculty of Technology, Design and Environment

COURSE OUTLINE. Prerequisites: Course Description:

A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

Computer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes

Making the Most of the Software Development Process

Object-Oriented Design Guidelines

Laboratório de Desenvolvimento de Software

Agile Web Engineering (AWE) Process

The Structure of a Software Development Team

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Transcription:

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?