cs560: formal modelling and implementation of systems ...adrian/cs560/cs560-l1.pdf · cs560 1...

17
CS560 1 CS560: Formal Modelling and Implementation of Systems (Term II) Lecturer: Adrian O’Riordan Office: Computer Science Prefab, Kane Building Email: [email protected] Course Webpage: http://www.cs.ucc.ie/~adrian/cs560.html

Upload: vandien

Post on 19-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

CS560 1

CS560: Formal Modelling and Implementation of Systems (Term II)

Lecturer: Adrian O’RiordanOffice: Computer Science Prefab, Kane Building

Email: [email protected]

Course Webpage: http://www.cs.ucc.ie/~adrian/cs560.html

CS560 2

CS560 Term II Overview

5 Credits – approx 22 lectures• 2 lectures a week – Tuesdays 11-12 And Wednesday 11-12• Practicals – to be announced• Tutorials – as required

Assessment will consist of an end-of-year written examination (80%) and continuous assessment during the year (20%).

You have to pass combined total. There is a re-sit in the autumn – your continuous assessment mark is carried forward.

CS560 3

CS560 On-line

Webpage at http://www.cs.ucc.ie/~adrian/cs560.html

Will contain:• Course Overview - Syllabus, etc.• Notices• Lectures slides (as course progresses)• Reading list and web links• Assignments and Exercises

CS560 4

CS560 Learning Outcomes

• Be able to design software in a modern object oriented manner using UML notation

• Be able to use object oriented abstractions and methods in an appropriate way

• Be able to apply design patterns and software architecture in software design

• Become familiar with a object oriented software development process

• Be able to use software tools to design UML diagrams

CS560 5

Teaching Methods

It is important that you attend both the lectures and any labs.

• Lecture notes will on slides and handouts.• Labs: Software Design in UML using CASE tools (ArgoUML and

Borland Together)• Assignments and exercises will be placed on the course webpage

during the year.• No textbook covers all the material exactly. See the list of relevant

books later on.• Readings will also be assigned during the year.

CS560 6

Course Contents

Part 1: Software Development Overview (5 lectures)• Software Engineering, Development Process and Software Design• CASE Tools, Documentation

Part 2: OO Design in UML (9 lectures)• The Unified Modeling Language (UML): class diagrams; use cases; activity

diagrams; sequence diagrams; state diagrams; package notation –subsystem specification

• Object Oriented Design in UML

Part 3: Software Architecture and Design Patterns (8 lectures)• Software Architecture – Client Server; 3-Tier; MVC• Design Patterns and Refactoring

CS560 7

CS560 Useful Books

Many more listed on course Webpage.

• Applying UML and Patterns, C. Larman, Prentice Hall, 2002• UML Distilled: A brief guide to the standard object modeling

language, 3rd ed., Fowler, Addison-Wesley, 2000• Practical Software Engineering: A Case-Study Approach, Leszek

Maciaszek, Addison Wesley, 2004• The Unified Modeling Language User Guide, Booch, Rumbaugh and

Jacobson, Addison Wesley, 1999• Software Engineering, 8th edition, Ian Sommerville, Addison-

Wesley, 2006.

CS560 8

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 development • 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

CS560 9

Software Engineering Discipline

• Software Engineering is relatively new field of engineering– The term software engineering was coined in 1967 at a NATO study

group. The first conference was held in Germany in 1968.• it is commonly perceived that the quality of software is not

acceptable:– buggy– behind schedule – not enough reuse

• Large-scale disasters attributed to software defects offer sober warnings: – The explosion of the Ariane 5 rocket– Patriot missile failure during the Gulf War

Ariane 5

CS560 10

The Software Development Lifecycle I

A large software application can be seen as having the followingdevelopment steps:

Requirements– Customers and suppliers work together to identify actual problems for

which a solution is sought.

Software Architecture– A broad systems specification of "What is to be done".

Software Design– Produce a design specification for the new system. Alternative ways of

satisfying the specification are explored. This is the "How".

CS560 11

The Software Development Lifecycle II

Implementation– The chosen design is translated into executable programs. Here is

where issues such as the choice of programming language are decided.Integration

– The completed system is assembled and checked to see if it meetsinitial requirements.

Maintenance– Manage the day-to-day support of system operation as well as provision

of any future upgrades.• Management of new releases• Operations/Maintenance (patches, etc.)

CS560 12

UML

• The Unified Modeling Language (UML) is general-purposespecification language for object modeling. UML includes a graphical notation used to create an abstract model of a system.

• UML is controlled by the Object Management Group (OMG) and is the industry standard for graphically describing software.

• The current version of UML (2007) is Version 2.1.1.

• UML is not a method by itself although it is compatible with theleading object-oriented software development methods.

CS560 13

Example: UML Class Diagram

CS560 14

Computer Aided Software Engineering

Computer tool to assist developers with modelling and documentation -Sometimes can generate system implementation

In the 1980s separate tools became prominent for analysis and design which entailed manual conversion of the output of one tool to provide the input of another. This lead to CASE tool integration.

Many CASE tools simply act as repositories of models and documents. They do not assist in the creative part of modelling.

Some CASE tools attempt to provide more assistance, ranging fromsimple prompts through to syntax/model checking.

CS560 15

UML-supported CASE tools

Commercial– Rational/IBM XDE Java Edition and .NET Edition – Borland’s Together– Telelogic’s System Architect 10– Microsoft’s Enterprise Architect– Ilogix’s Rhapsody– Gentleware’s Poseidon for UML

Free– Tigris ArgoUML (Open Source)– EclipseUML (Open Source)– StarUML (Open Source)

CS560 16

Example: ArgoUML

CS560 17

Example: Together