F29SM1         Software Engineering Methodologies

 

Aims

 

·                To instill understanding of the concepts and benefits of advanced software engineering methods.

·                To impart effective knowledge of the use of patterns, metrics and quality assurance in software engineering

·                To equip participants with the skills to use UML in state-of-the-art software engineering

·                To give practical experience of appropriate methods to use in software engineering project planning and management

Syllabus

Methodologies in software engineering practice;

Unified Modeling Language;

Design patterns;

Component architectures;

Software metrics;

Quality assurance and risk assessment;

Project planning and management in software engineering;

Comparison of agile and plan driven approaches;

Case studies in software engineering.


Learning Outcomes

Subject Mastery

Understanding, Knowledge and Subject-Specific Skills

·               To demonstrate a critical understanding of modern software engineering practice and be able to evaluate the strengths and weaknesses of current  software engineering methods and techniques

·               To be able to choose appropriate metrics to measure software quality and quantity in a modern software engineering environment

·               To be able to choose a suitable software development environment and development methodology for specific software development tasks and justify the choice

·               To be able to apply a good range of UML modelling skills to the design of a good range of software systems

Personal Abilities

Cognitive skills, Core skills and Professional Awareness

·               Taking responsibility for own work, taking responsibility in the development of resources, critical reflection on development process and work undertaken by self.

·                Effective appreciation of professional standards in modern software engineering practice.

·               Showing initiative, creativity and team working skills in collaborative software development

Assessment Methods

Exam                         2 hours          100%

Coursework                                     100% (assessed separately)


Preliminary timetable

 

Week 1                                   Background

Thursday 5th Oct          Lecture 1          Course structure and overview. Coursework.

Friday  6th Oct             Lecture 2          Software Engineering and Information Systems

Background

                                    Structured approaches

Week 2                                   Object oriented approach

Monday 9th Oct            Lecture 3          Definitions and terms. Properties and

relationships. Simple example in Java

Week 3                                   UML

Thursday 19th Oct        Lecture 4          Simple example 1a

Friday  20th Oct           Lecture 5          Simple example 1b

Week 4                                   UML

Monday 23rd Oct          Lecture 6          Classes and how to find them

Thursday 26th Oct        Lecture 7          States and how to play them

Friday 27th Oct Seminar 1         Presentation on objects and classes

Week 5                                   Patterns and architectures

Monday 30th Oct          Lecture 8          The idea of patterns - examples

Thursday 3rd Nov         Lecture 9          Finding patterns and anti-patterns

Friday 4th November    Seminar 2         Patterns and anti-patterns

Week 6                                   Information systems and socio-technical approaches

Monday 6th Nov           Lecture 10        Systems thinking and soft systems

Thursday 9th Nov         Lecture 11        Socio-technical systems

Friday 10th Nov            Seminar 3         Picturing information systems

Week 7                                   Quality and capability maturity

Monday 13th Nov         Lecture 12        Ideas of quality – products and processes

Thursday 16th Nov       Lecture 13        CMMI and capability

Friday 17th Nov            Seminar 4         Managing projects       

Week 8                                   Metrics and project planning

Monday 20th Nov         Lecture 14        Thinking about metrics

Thursday 23rd Nov       Lecture 15        Non-functional properties

Friday 24th Nov            Seminar 5         Scoping and planning

Week 9                                   Contemporary approaches

Monday 27th Nov         Lecture 16        MDA and Agile approaches

Week 10                                 Summing up

Monday 4th Dec           Seminar 6         New approaches in software engineering

Thursday 7th Dec          Lecture 17        Guest lecture ?

Friday 8th Dec              Lecture 18        Summing up


Reading

 

This is a preliminary list. Most of the books should be in the library or can be ordered from the bookshop. I will try to give a selection for each seminar, but you should get used to searching the library and online sources for further reading.

 

Books

 

  • Avison and Shah The information systems development life cycle, McGraw Hill 1997
  • Brooks F. The Mythical Man-Month, Addison-Wesley, 1975

 

  • Jackson M. A., Principles of Program Design, Academic Press, 1975
  • Jackson M.A., System Development, Prentice-Hall, 1983
  • Stevens with Pooley Using UML Updated edition), Addison-Wesley 1999,
  • Pressman R.S. Software Engineering: A Practitioner's Approach, (6th Edition),  McGraw Hill, 2005
  • Somerville, I. Software Engineering (8th. Edition), Addison-Wesley, 2006.
  • Rob Pooley and Pauline Wilcox,  Applying UML,  Springer, 2003
  • Yourden E. Managing the Structured Techniques, Prentice-Hall, 1979

 

Papers

 

  • Boehm B., “A spiral model for software development”, IEEE Computer Vol 21 No 5, May 1988, pp 61-72
  • Dijkstra E., “Goto statement considered harmful”, CACM Vol 11, pp 80-86, 1968
  • Parnas D.L., “On the criteria to be used when decomposing systems into modules”, CACM Vol. 15, pp. 1052-1058, 1972
  • Royce W.W. “Managing the development of large software systems”, in proceedings of WESTCON, San Francisco, 1970

 

Online articles and presentations

 

 


Coursework

 

There are two parts to the coursework. One requires you to read and prepare a short presentation on various topics. The other is an exercise in applying UML to modelling and designing a simple system, where you will work as a team.

 

Seminar presentations

 

You will see from the schedule of lectures that there are six seminars. Each of these will work as follows.

 

You all have to research and write a short report on these six topics. The report should be between 500 and 1000 words long. You will be penalised for your reports being too long or too short. The reports should be handed in one week before the seminar and copies circulated to the others in the class.

 

You will take it in turns to present your report to the others in the class, using slides or whatever means you wish. Your talk should last 15-20 minutes. They will be expected to ask questions and to comment on your presentation, having had your report to look at.  At least three questions will be expected from each listener.

 

UML Exercise

 

Working as a group you will prepare a full UML model for a simple example. This must include:

 

A Use Case model (not just a diagram).

One or more Class diagrams.

An Activity diagram.

At least one interaction diagram for each Use Case.

A Statechart for each class.

 

Working on your own, write a short (300-500 word) report on how well the exercise went and how the team performed.

 

The case study will be based on the requirements given in Chapter 4 of  Practical Object oriented Design by Mark Priestley, pub. McGraw Hill 1997