E N D
1. Dr. Natalio Krasnogor
Natalio.Krasnogor@Nottingham.ac.uk
2. Lecture 1Administrative Information
3. Module Content
4. Assessment Schedule for G64HLL
5. Module Timetable
6. Module Support
9. Module is 100% assessed by coursework 3 courseworks, equally weighted at 33% each
You must attempt all courseworks
Courseworks *are* exams
No extensions
No cheating/copying/plagiarism tolerated
I use Turnitin to check for plagiarism among youselves and the internet!
Courseworks give you the opportunity to show off your skills and get a good mark
Lets see previous courseworks and marks attained by students
12. Coursework 2, deadline: 3 & 4 March
Based on the deliverables of the 1st coursework you will extend the UML design with the look-and-feel of the website you will implement. You will also implement all the functionality in PHP and mySQL such that every customer interaction within your subsytem is taken into account. You will not consider for this coursework the cinemas manager viewpoint
Deliverables:
XHTMLs files (source codes)
PHP files (source codes)
mySQL (tables details, populated)
Manuals (pdfs)
Updated UMLs and specifications (pdfs)
README file
15. Courseworks Submittion Procedure
16. Systems Development Life Cycle
32. The Unified Modelling Language
33. Todays Lecture
34. The Unified Modelling Language
During the 90s there were several disparate modelling methods for object oriented programming.
They used the same concepts with different notations.
This produced lots of confusion among designers and programmers.
The war of the methods
In 1994, Booch, Rumbaugh (OMT) y Jacobson (Objectory) decided to unify their methods and created:
Unified Modeling Language (UML)
This was a standardisation method promoted by OMG
35. Object Oriented Analysis Methods Booch Coad/Yourdon
OMT Champeaux
Jacobson Martin/Odell
Shlaer-Mellor OOram
Wirfs-Broks BON
Fusion Open
Catalysis
And many many more!
39. UML encompasses various methods
40. History of UML
41. Advantages of the unification Has all the strong points of each method
Promotes new ways of improving designs/analysis
Promotes stability in the software industry
Simplifies users life!
42. From the specification to the solution
43. UML and Modelling UML is a notation, not a design process
Various design processes are being design with UML in mind.
E.g. Rational created RUP, which is aunified process.
UML could be used for systems which are not necessarily software based.
44. What is UML useful for? Allows to:
Specify all the analysis, design and implementation decisions.
Build models which are precise, unambiguous and complete
Documents all the development steps (e.g. requirements, architecture, tests, versioning, etc..)
46. UML Characteristics UML is independent of the implementation language.
UML could be implemented in various languages
We will focus on UML tied to PHP, PERL
47. UML Diagrams UML defines several types of diagrams:
Use Case
Clases
Packages
Objects
Interaction
Sequence
Colaboration
States
Activities
Components
Deployment
48. Class Diagrams Notation
Class name
Attributes
Methods
Method and attributes organization
49. Advanced Concepts Class variables
Class methods
Abstract classes
Abstract methods
Miscellaneous (e.g. exceptions)
51. Class Diagrams: Relations Simple Generalisation
Is-a
52. Class Diagrams: Relations
53. Another Example
57. Associations Is a structural relation that specifies that the objects of one class are connected to those of another class.
Notacin:
Role name : role which the class plays from the others viewpoint
Visibility
Multiplicity : for each object (of the other class) specifies how many in this side could have associated.
68. Associations Restrictions
69. Dependencies
A change in the specification of one class affects the other
70. Quiz: is this right or wrong?
72. Complete Example
73. Another example:
74. Another example Lets build the class diagram for vehicles!
Consider the characteristics of:
Trucks
Cars
Motorcycles
Military Naval Vessels
Commercial sea liners
Airplanes
etc
75. Packages and UML A package is a set of interrelated classes and interfaces that provide protected access and name management
The classes and interfaces which are part of the java language are grouped in packages accordingly to function:
java.applet : Applets management.
java.io: IO management.
java.awt: GUI management.
etc
76. Why its good to define packages?
77. Complexity management by restricting access through the use of the import command
The public aspects of a package are those which it exports.
They become visible to those other packages, classes, etc that import the package.
Import is not transitive.
78. Package Diagrams: Notation 1
79. Package Diagrams: Notation 2
80. UML notation for packages is independent of programming language
You could use this notation for PHP,PERL:
Code libraries
Organize your design and hence your code
Document your code
81. We saw:
83. The Unified Modelling Language
84. Todays Lecture
85. In general a use case model contains:
Actors
Use Cases
Dependency and association relations.
<<includes>>
<<extend>>
87. Use Cases Captures a visible and clear function for the user.
That is, a use case is related to a users specific need/requirement .
One way of obtaining use cases is talking with the user and finding out what on earth (s)he wants to do with it
All use cases are about externally required functionality
That is, a use case can also relate to functions needed by other systems!
88. Systems & Subsystems
95. Use Case, another example:
102. Use Case, another example:
108. Another example: web-based retailer
110. Case Tools
111. Bibliography Software Engineering.
D. Gustafson, Schaums Outlines by McGraw-Hill
The Unified Modeling Language User Guide.
G. Booch, J. Rumbaugh, and I. Jacobson. Addison-Wesley.
The Unified Modeling Language
G. Booch, J. Rumbaugh, and I. Jacobson. Addison-Wesley
Teach Yourself UML in 24 Hours - Joseph Schmuller
UML for Java Programmers - Robert Cecil Martin
OMG Unified Modeling Language Specification (Version 1.4 September 2001)
UML Explained Kendall Scott
112. Today We Saw:
113. Next Week Next week we start with PHP
Self-Learning, lecture 1, a review of html and unix