Software Engineering
Introduction to the module
2013
Module details
Module code
FIT330
Module name
Software Engineering
Credits
Five (5)
Prerequisites
FIT324, FIT523
2013
Java programming required
FIT330 Software Engineering
Outline
What is it about?
Objectives
Structure
Assessment
References
Study method
2013
FIT330 Software Engineering
What is this module about?
A practical introduction to software engineering
Consists of two parts:
2013
Part I: Object oriented programming
concepts and techniques in Java
Part II: Software engineering method
a disciplined software development
process
apply to a small software development
project
FIT330 Software Engineering
Java or not Java
Why Java?
pre-requisites and experience
an object oriented programming language
Applicable to other OO (-related) programming
languages:
2013
e.g. C++, C#, PHP
FIT330 Software Engineering
Module objectives
Apply core OOP concepts, techniques, and
design patterns
Understand software architecture modelling
Apply a software engineering method
Apply a practical and relatively formal
requirement engineering technique
Apply UML to analyse and design software
2013
FIT330 Software Engineering
Part I: OOP
More OOP: higher-level abstractions:
Type hierarchy
Iteration & Polymorphic
Code safety: exceptions
Testing & debugging:
2013
unit-level
FIT330 Software Engineering
Types of abtraction
Procedural abstraction
Data abstraction
Iteration abstraction
Object
Oriented
Programming
(e.g. Java,C++)
Type hierarchy
2013
FIT330 Software Engineering
Types of abstraction
Procedural abstraction: to define new
procedures
Data abstraction: to define new data types
Iteration abstraction: to generalise access to a
collection of objects
Type hierarchy: to generalise types
2013
FIT330 Software Engineering
Part II: Software engineering
Software engineering method
a structured and well-defined process
Requirement engineering
focus: requirement analysis
Architectural modelling
Design and patterns
Implementation
Testing:
2013
system-level
cont'd from Part I
FIT330 Software Engineering
10
Assessment
Assessments
Mid-term test
Weights
15%
Assignment
25%
Final Test
60%
2013
Brief Descriptions
Validate OO programming knowledge
and skill in Part I
Design, code [and test] an extension of
a keyword search engine program
Covers all the materials that have been
studied during the semester
FIT330 Software Engineering
11
Self-assessment
Home works: include
tutorial answers
additional exercises (depends)
Submit each week to FIT
No marks but important for progress check
2013
FIT330 Software Engineering
12
Software engineering assignment
To understand how a software is developed
and to develop an extension for it
Development approach:
incremental and in-line with the lectures
finish the software in the last week!
Scope: (in pairs) individually
Deliverables:
2013
a software
a technical report
FIT330 Software Engineering
13
References
Prescribed text book:
Liskov B. and Guttag J., Program Development
in Java: Abstraction, Specification, and Object
Oriented Design, Addison Wesley, 2001
Supplementary:
Sommerville I., Software engineering, 9th ed,
Addison Wesley, 2011
Larman C., Applying UML And Patterns: An
Introduction to Object-Oriented Analysis and
Design and the Unified Process, 2001
2013
FIT330 Software Engineering
14
References (2)
Java:
Savitch W., Absolute Java, 2009
Java (>= 1.5) tutorials and API documentation
(URL: [Link])
2013
FIT330 Software Engineering
15
Study approach
Learn by doing: practice makes perfect!
try the code examples
do the exercises
Self study: you must put in effort!
read the lectures and related resources
submit home works each week
Get help: don't delay your problems!
2013
ask questions in lectures
make the most of the tutorials!
use forums (for other issues)
FIT330 Software Engineering
16
Last but not least!
In my lectures...
2013
FIT330 Software Engineering
17
Questions?
2013
FIT330 Software Engineering
18