y2 eprojects

Post on 14-Jan-2016

24 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

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 2

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

N-tiers Architecture

ACCP i7.1\Sem3_4\eProject\T2

Presentation

Business

Data

HTML\JSP\JSF

SEM 4

EJB\JMS\MDB\JavaMail

MS SQL Server

HTML\ASPX

SEM 3

C#

MS SQL Server

Architecture

ACCP i7.1\Sem3_4\eProject\T2

Package Diagram

Package Diagram shows the structure of a complex system in term of packages (or modules)

Image: Larman(2004)

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

Class and Object

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

ClassObject

Class Diagram (cont’d)

Class Names Class Attributes Class Methods Constraints Comment

Representation of Relationship

Multiplicity-Multiplicity defines how many objects participate in a relationship

Multiplicity & Navigation

Student Schedule

Navigation

Multiplicity

0..*1

Aggregation

An aggregation is a stronger form of relationship where the relationship is between a whole and its parts

Student Schedule

Aggregation

WholePart

Aggregation-Composition

Composition is a form of aggregation with strong ownership and coincident lifetimes of the part with the aggregate

Student Schedule

Aggregation

Whole Part

Aggregation-Dependency

A dependency relationship is a weaker form of relationship

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

Association

Association is a connection between classes

Professor University

Professor UniversityWorks for

Class

Association Name

Role Names

EmployerEmployee

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.

Association Classes

Qualified Association

Theatre Seat1 99

Theatre Seat1Row {1,2,…9}

Column {1,2,..11}

1

Recursive Association

Inheritance and Generalization-1

Inheritance and Generalization-2

The mechanism for sharing attributes and operations using the principle of generalization is referred to as inheritance

Same Association or Aggregation

Interface

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

Nouns in problem statement Knowledge of the problem

domain Use Cases Physical entities Devices Events Roles played Operational procedures Sites Organisational units

How to Identify Classes?

Tangible things Events Roles played Interactions Location Organizational Units

The Requirements statement Use Cases Application experts Studying the system

Similar systems Previous systems

Finding Candidate Classes

Candidate ClassesUse Cases

Requirement Statement

Previous System

Similar Systems

Application Experts

ACCP i7.1\Sem3_4\eProject\T2

CRC – A non-UML OOAD approach CRC cards are paper index cards on which

one writes the responsibilities and collaborators of classes

Image: Beck & Cunningham

ClassCollaborator

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

top related