Title: Software Design
1Software Design
- An Introduction to Object Oriented Analysis and
Design Using the Unified Modelling Language
Bill Keller Spring 2006
2Lecture 1 Introduction
- Introduction
- What the course is about
- What the course is not about
- Aims and Outcomes
- Teaching and Assessment
- Design Case Study
- Design Task
- Recommended Reading
3What the course is about
- An introduction to object-oriented analysis and
design - The software development process
- Object-orientation
- Requirements analysis and modelling
- Software quality
- The Unified Modelling Language (UML)
- Use case diagrams
- Static structure and the class model
- Object collaboration and interaction
- Object state and behaviour
- Team-working
- Managing the process
4What the course isnt about
- To keep the course manageable, we wont cover
- Requirements capture
- Interface design and HCI Issues
- Deployment and maintenance
- Some UML dealt with only briefly or not at all
- Packages and components
- Deployment diagrams
- Object constraint language
5Course Aims
This course aims to provide first year students
with
- An introduction to fundamental concepts of
object-oriented analysis and design of software - practical experience of software modelling and
design techniques - experience of team-working
- an introduction to the Unified Modelling Language
6 Learning Outcomes
- On successful completion of the course students
should be able to - Appreciate the problems inherent in the design of
high-quality software - Demonstrate the skills needed to model software
components using basic elements of the UML - Work effectively as a part of a software design
team - Document design decisions appropriately
7Why UML?
- UML is a visual modelling language which
- supports analysis and modelling at all stages
- is an emerging standard for software modelling
- Is process neutral i.e. is not tied to any one
particular design process - We will cover core aspects of UML, including
- Use-case diagrams,
- Class diagrams,
- Interaction diagrams collaboration/sequence
- Statechart and activity diagrams
8A Little History
- Late 1960s
- Emergence of OO programming languages
- Simula-67, Smalltalk (1970)
- 1970s
- Appearance of first OOAD methodologies
- 1980s and early 1990s
- Many competing general development methods and
modelling languages (over 50) - The methods wars
9Emergence of UML
- By the mid 1990s three key methods had become
prominent - Rumbaugh Object Modelling Technique
- Booch Booch 93 OO Analysis and Design
- Jacobson OO Software Engineering
- 1995 Rumbaugh, Booch and Jacobson join forces in
Rational - Develop the (Rational) Unified Process
- Develop the Unified Modelling Language (UML)
10UML is.
- A ready-to use visual modelling language
- A language, not just a notation
- For OO analysis and design of (software) systems
- UML diagrams provide for various views of systems
- Simple and expressive
- UML has core set of expressive concepts/notations
- Extensible
- allows specialization/addition of
concepts/notations - An emerging standard for modelling systems
11UML is not
- A visual programming language
- UML is for modelling/conceptualizing/visualizing
systems, not for implementing them - Not tied to a particular programming language
- A development process
- UML is process neutral
- Not tied to a particular process (e.g. Unified
Process) - A development tool
- A guarantee of success
-
12System, Design, Model, Diagram
- Important to be clear about terminology
- System program or collection of programs meeting
user requirements end goal of the development
process - Design collection of decisions about how to
build system end product of the design process - Model abstract representation of system or
design from a particular viewpoint a product of
some stage of the design process - Diagram visual representation of (part of) model
13Models and UML Diagrams
- Use case model describes the high level
functionality of system from users point of view - UML use case diagram UML activity diagram
- Static model describes the elements of system
and their organization and relationships - UML class diagram UML package diagram
- Dynamic model describes behaviour of system over
time - UML collaboration diagram UML sequence diagram
UML statechart diagram
14UML CASE Tools
- Poseidon UML Standard Edition
- A professional UML Case tool provided on lab PCs
- Poseidon UML Community Edition
- A cut-down version of the above that is freely
downloadable from http//www.gentleware.com/ - Rational Rose
- Can be run from Sun machines? In .login file add
the line source /local/global/rational_logi
n - To run, at prompt do
rose - Eclipse Omondo plug-in
- Useful if you like Eclipse.
15UML Drawing Tools
- Some drawing tools incorporate UML diagrams
- e.g. dia http//dia-installer.sourceforge.net/
- But for small design tasks, any half-way decent
drawing package will probably do - All the UML drawing in these lectures were
produced with Windows AutoShapes - Or you could just use paper and pencil
- Remember the goal is good design rather than
pretty pictures!
16Teaching Sessions Lectures
- Generally there will be two lectures each week
- Tuesday 10.00 --11.00 in JMS Building 1A01
- Wednesday 9.00 -- 10.00 in JMS Building 1A01
17Syllabus
- What is Software Development and why is it hard?
- The Software Development lifecycle
- Object Orientation and Software Design
- Requirements Specification
- Requirements analysis and Use Cases
- Class Models and the UML Class Diagram
- Modelling Object Collaborations and Interactions
- Object Behaviour and the UML Stateflow Diagrams
- Software Quality
18Teaching SessionsDesign Workshops
- There will be a design workshop each week
- work together in small teams
- focus on a single design task
- Based around structured design exercises
- work through the development process
- hands-on experience of design techniques
- develop understanding of lecture material
19Formal Assessment
- Assessment for the course
- is based entirely on coursework
- focuses on a single software design task
- Assessed work will consist of
- two submissions of design documentation
- an oral presentation
- Assessed work will be team-based
- You will work together in teams in the design
workshops and to complete the assessment
20Design TaskOnline Bookshop
Statement of Purpose The eVersity online bookshop
allows students and staff to purchase course
books quickly and easily. A user is able to
browse the book catalogue or search for
individual items by title or author. Required
books may be added to a purchase order. Payment
is by debit card although college staff can also
pay by salary deduction. College tutors can order
in textbooks for courses that they teach.
21Why Teamwork?
- Software design is usually a team effort
- Real-world software systems too large and complex
to be tackled by a single individual - good design requires various sorts of expertise
- Successful design projects need
- planning,
- communication
- management
- Teamwork plays a central role in this course
22Some Useful Texts
- Priestly, M (2003) Practical Object-Orientated
Design with UML, (3rd Edition) McGraw-Hill - Lunn, K. (2003) Software Development with UML,
Palgrave - Bennet, S, McRobb, S, and R Farmer (2002)
Object-Oriented Systems Analysis and Design,
McGraw-Hill - Bennet, S, Skelton, J and K Lunn (2001) UML,
Schaums Outlines series, McGraw-Hill - Budgen, D (1994) Software Design, Addison-Wesley
23Other Resources
- The course web site
- Course outline information
- Lecture notes
- Seminar notes
- Details of design task and exercises
- Etc. etc.
- Look under
- Informatics home gt teaching gt course directory
24Summary
- The course covers key ideas in
- object oriented analysis and design
- UML
- Teaching is provided by a combination of
- lectures
- hands-on design workshops
- Assessment is entirely by coursework
- Based on a single design task
- Students work together in design teams
25Software Design