Transcript Objectives

CS565 Advanced Software Development
(1 unit)
Lecturer: Adrian O’Riordan
Contact: email is [email protected],
Office: prefab, behind Kane Building
Lectures:
25 in total
Monday @12:00 PF1 and Thursday @ ?
Practicals:
Organised later (in PF1 also)
CS565 on-line
Webpage for course:
http://www.cs.ucc.ie/~adrian/cs565.html
This contains:
 Course overview
 Lecture slides (as we go along)
 Reading list
 On-line resources
And will contain:
 Assignments and exercise sets
 Notices
Objectives and Prerequisites
Objectives:
To become familiar with the processes and technologies used in
the construction of software systems. The focus will be on
object oriented software design and development.
The technologies covered will include analysis, design based on
UML (Unified Modeling Language), CASE (Computer Assisted
Software Engineering) and Java (example language).
Prerequisites: Basic knowledge of computing including
programming concepts.
Course Details




Relates to Project and CS560 Formal Modelling and
Implementation of Systems.
Teaching methods: notes will on slides or handouts. Reading
assignments will be also given during the year.
Assignments and exercises will be placed on the course
webpage.
No textbook covers all the material exactly. See the list of
relevant books later on.
Course Overview I
Part 1: Object Oriented Programming & Design (14 lectures)




Object Oriented Concepts – objects, classes, encapsulation,
inheritance, polymorphism, generics (2l)
Java Programming – review of fundamentals, new features in
Java 5, SWING classes (7l)
Static Modeling in UML (Unified Modeling Language) - Class
Diagrams, modelling classes, associations, attributes and
operations (3l)
Model Management in UML - Package notation (2l)
Course Overview II
Part 2: Selected Software Engineering Technologies
(10 lectures)




Development Tools, e.g. IDEs (Integrated Development
Environments), CASE (Computer Assisted Software
Engineering), SCM (Software Configuration Management) (3l)
Software Architecture – Architecture Description, Types of
Architectures, Software Frameworks (3l)
Software Engineering Process – Analysis, Design, Testing (2l)
Java Technology – J2SE; Comparison with C# and C++(2l)
Optional topics covered by handouts
 Selected Software Engineering Technologies - Client Server;
Outsourcing; Software Services & Components, Design Patterns
Practical Component

UML and Software Design





CASE tool is TogetherArchitect for Eclipse (Borland) – formerly
Together from TogetherSoft
modeling product that provides an integrated modeling
environment for designing processes and software applications,
including design and coding
built on top of Eclipse – uses plug-ins
fully supports UML 2.0 and Java 5
Java programming – using JDK to implement basic Object
Oriented System Design and demonstrate Java library and
SWING proficiency
Books to Read/Browse






Software Engineering: A Practitioner's Approach 6th ed., Roger
Pressman, McGraw-Hill, 2004.
Software Engineering, 8th edition, Ian Sommerville, Addison-Wesley,
2006.
Code Complete: A Practical Handbook of Software Construction, Steve
McConnell, Microsoft Press, 1993.
Object-Oriented and Classical Software Engineering, Stephen R.
Schach, McGraw-Hill, 2004.
Java Software Solutions, 3rd ed., Lewis and Loftus, Addison Wesley,
2003.
Objects First with Java, 2nd ed., Barnes and Koelling, Pearson, 2005.
Note there are also many excellent book available on specific topics such as the
UML but these are not listed.
Websites - Portals
Course Website contains links to useful on-line
resources.
The following are good jump off points/ portals for
general Software Engineering Information.
http://directory.google.com/Top/Computers/Software/So
ftware_Engineering/ Google Directory
http://dir.yahoo.com/Computers_and_Internet/Program
ming_and_Development/Tools/Software_Engineering/
Yahoo Directory
http://www.dmoz.org/Computers/Software/Software_En
gineering/ Open Directory Project
Software-Engineering in the Large
a concise working definition of software engineering: the
methodology, techniques and tools related to the development
and management of software from conception through
requirements, design, implementation, deployment to the final
retirement.
Large-scale Software Engineering

Project involves a team of people – need to manage process,
people and artefacts

System takes a long-time to build – need to plan

Systems Complex – need powerful tools, methods and
technologies

Need to reuse code/designs/process
Finale
Best of luck and have fun!