290 likes | 420 Views
Y2 eProjects. Session 2 – Static Models (or Software Structure). “Don’t learn the tricks of the trade. Learn the trade” Unknown. Objectives. Software Architecture External vs. Internal design Static Model Class Modeling Class Diagram CRC. Software Architecture.
E N D
Y2 eProjects Session 2 – Static Models (or Software Structure) “Don’t learn the tricks of the trade. Learn the trade” Unknown
Objectives • Software Architecture • External vs. Internal design • Static Model • Class Modeling • Class Diagram • CRC ACCP i7.1\Sem3_4\eProject\T2
Software Architecture • Software Architecture: The structure of a software system which comprise software components, the externally visible properties of those components, and the relationships between them • Architecture represents the ‘big picture’ of a software system • Common Architecture: • Client\Server • Distributed Computing • N-tier Architecture • Service-Oriented Architecture ACCP i7.1\Sem3_4\eProject\T2
N-tiers Architecture SEM 3 Architecture SEM 4 HTML\ASPX Presentation HTML\JSP\JSF C# Business EJB\JMS\ MDB\JavaMail MS SQL Server Data MS SQL Server ACCP i7.1\Sem3_4\eProject\T2
Package Diagram Image: Larman(2004) Package Diagram shows the structure of a complex system in term of packages (or modules) ACCP i7.1\Sem3_4\eProject\T2
Class Diagram • Class diagram describes the types of objects in the system and the various kinds of static relationships amongst them • Class Diagram can be used for various perspectives: • Conceptual (or domain model) • Specification • Implementation ACCP i7.1\Sem3_4\eProject\T2
Class and Object Object Class Class - A class is a description of a group of objects with common properties (attributes), behavior (Operations), relationships, and semantic Object - An object represents an entity, either physical, conceptual, or software
Class Names Class Attributes Class Methods Constraints Comment Class Diagram (cont’d)
Representation of Relationship Multiplicity-Multiplicity defines how many objects participate in a relationship
Multiplicity Student Schedule 1 0..* Navigation Multiplicity & Navigation
An aggregation is a stronger form of relationship where the relationship is between a whole and its parts Whole Part Student Schedule Aggregation Aggregation
Part Whole Student Schedule Aggregation Aggregation-Composition • Composition is a form of aggregation with strong ownership and coincident lifetimes of the part with the aggregate
A dependency relationship is a weaker form of relationship Aggregation-Dependency
Aggregation-Generalization A specialization/generalization relationship is one, in which objects of the specialized element (the child) are substitutable for objects of the generalized element (the parent) Superclass Subclass
Professor Professor University University Association Name Works for Role Names Class Employee Employer Association • Association is a connection between classes
Constraints of Association An association may have a name that is placed on, or adjacent to the association path The name of the association should reflect the purpose of the relationship and be a verb phrase; the name of an association can be omitted, particularly if roles names are used. Each end of an association is a role specifying the face that a class plays in the association (not a constraint). Each role must have a name, and the role names must be unique. The role name should be a noun indicating the associated object’s role in relation to the associating object. The use of association names and role names are mutually exclusive: one should not use both an association name and role name. For each association, it needs to decide as to which conveys more information.
1 99 Theatre Seat Theatre Seat Row {1,2,…9} Column {1,2,..11} 1 1 Qualified Association
Inheritance and Generalization-2 • The mechanism for sharing attributes and operations using the principle of generalization is referred to as inheritance
Object Model Language independent Notation allowing the specification of classes, their data or attributes (private) and methods (public), inheritance This diagram depicts the structural relationship and functional behavior of the classes
How to Identify Classes? • Nouns in problem statement • Knowledge of the problem domain • Use Cases • Physical entities • Devices • Events • Roles played • Operational procedures • Sites • Organisational units • Tangible things • Events • Roles played • Interactions • Location • Organizational Units • The Requirements statement • Use Cases • Application experts • Studying the system • Similar systems • Previous systems
CRC – A non-UML OOAD approach Class Collaborator Image: Beck & Cunningham CRC cards are paper index cards on which one writes the responsibilities and collaborators of classes ACCP i7.1\Sem3_4\eProject\T2
Best Practices Don’t try to model every thing, “design enough” For analysis, draw conceptual models When working with software, draw specification models For illustrating a particular implementation technique, use implementation models For testing a model, write some code ACCP i7.1\Sem3_4\eProject\T2
References and Readings Beck K. & Cunningham W., A Laboratory For Teaching Object-Oriented Thinking, (http://c2.com/doc/oopsla89/paper.html ) Fowler M. & Scott K. (1999) UML Distilled, Addison Wesley Larman, C. (2004), Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd Edition, Addison Wesley Aptech India, OOAD Course, ACCP 2003 Curriculum ACCP i7.1\Sem3_4\eProject\T2