cs560: formal modelling and implementation of systems ...adrian/cs560/cs560-l1.pdf · cs560 1...
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 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)