Objectives

advertisement

CS565 Advanced Software Development

(1 unit)

Lecturer: Adrian O’Riordan

Contact: email is a.oriordan@cs.ucc.ie

,

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, 3 rd ed., Lewis and Loftus, Addison Wesley,

2003.

Objects First with Java, 2 nd 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!

Download