1 - UML

Use cases and actors

A use case is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor

A use case is a description of a scenario in which the system interacts with its users and are described as both narrative scenrios and graphical models

An actor is an external agent that must interact with the system and represents a specific role (actors are NOT part of the system)

A use case diagram is an excellent way to communicate to management, customers and other non-development people what a system will do when it is completed.

use cases diagrams are used to:

Associations between use cases and actors

An associations between use case and an actor indicates that the actor and the use case communicate with one another, each one possibly sending and reciving messages

The association describes the "channel" of interaction

The interaction is described by a narrative text outside the diagram

Relations between use cases: INCLUDE

Specifies that the source use case explicitly incorporates the behavior of the included use case

Include is used to extract use case fragments that are duplicated in multiple use cases. The included use case cannot stand alone and the original use case is not complete without the included one

Relations between use cases: EXTEND

Specifies that the target use case extends the behavior of the source use case, adding an exceptional custom logic at a location specifies by the source

Extend is used when a use case adds steps to another first class use case

Relations between use cases: GENERALIZATION

It indicates that one of the two related classes (the subclass) is considered to be a specialized form of the other (the super type) and the superclass is considered a Generalization of the subclass

System boundary

A system boundary is used to define conceptual boundaries and it helps to group logically related elements

What is a class

A class diagram describes the types of objects in the system and the various kinds of static relationships that exist among them

A class is the description of a set of objects having similar attributes operations, relationships and behavior

Relations: Association

An association between two classes specifies that the objects of one end-point "know"the objects at the other end-point, and are capable to send them messages

Association name and Role name are optional

Multiplicity is the number of istances of the class, next to which the multiplicity expression appears, that are referenced by a single istance of the class that is at the other end of the association path

Relations: Aggregation

aggregation is like "contains", "has a"

Relations: Composition

composition is quite like "part of"

Aggregation and composition describe form of containment, recognize it and distinguish it from other types of relations ( don't spend a lot of time struggling with these details)

Relations: Generalization

"is kind of" relationship

a sub-class inherits from its super-class:

Relations: Realization

a realization relationship indicates that one class implements a behavior specified by some interface

Relations: Dependency

a dependency indicates a relation between two classes although there is no explicit association

Constraints rules and notes

Costraints are semantic restrictions noted as boolean expressions

V example of the class notation V


is a general purpose grouping mechanism

Molti esempi grafici nelle slide del secondo pdf

Sequence diagram

it describes the interactions among objects involved in a specific scenario, and the whole set of objects and their mutual interactions in a specific scenario is called collaboration

Sequence diagram frame is a rectangle and it have a -sd interactionidentififier- and a -interactionidentifier- (Es. sd rotate(in degrees : int ) : BoundingBox )

Lifeline and destruction

Message and arrows

Syncronous call

closed-head arrow from caller to callee and it's labeled with the name of the service invoked

the activation time of the service is shown by a small rectangular upon the corridponding object lifeline

Return message

The return message is shown by a dashed open-head arrow

execution occurences

an operation is executing when some process is running its code; an operastion is suspended whern it sends a synchronous message and is waiting for it to return; an operation is activenwhen it is executing or suspended

Asyncronous call

The arrow is labeled with the name of the invocked service

Conditional call

Iteration message

---[for each order line]:*prepare()---->

Loop fragment

Break fragment

A complete sequence diagram example

Object-Oriented Design

Objects are autonomous: they are abstractions of real-world or system entities and manage themselfs, they are indipendent and encapsulate state and representation information. Shared data areas are eliminated. Objects communicate by message passing and they may be distributed and may execute sequentially or in parallel

the advantages of OOD are the easier maintenance, the bjects are potentially reusable components and for some system, there may be an obvius mapping for real world entities to system objects

A class represents a group(classification) of objects with the same behaviours

OOD different scales

OOD is applied at different scales:

Examples of various designing technique

ci sono parecchi esempi grafici nella slide riguardante la OOD

DON'T do it

DO it



software testability is the degree to witch a software supports testing in a given test context, if the testability of the software is high, then finding faults in the system by mean of testing is easier

Testability delves with two factors:

Software conformance

measure the conformance of a software system with respect to some internal qualities that strongly impact the overall

2 - Modelli di processi software

ingegneria del sw basata sui componenti (cbse)

3 -

4 -

5 -

7 -

8 -

9 -

10 -