32
SEA Side Software Engineering Annotations • Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development. • Professor Sara Stoecklin Director of Software Engineering- Panama City Florida State University – Computer Science [email protected] [email protected] 850-522-2091 850-522-2023 Ex 182

SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Embed Size (px)

Citation preview

Page 1: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

SEA Side Software Engineering Annotations

• Annotation 3: UML

• One hour presentation to inform you of new techniques and practices in software

development.

• Professor Sara Stoecklin• Director of Software Engineering- Panama City

• Florida State University – Computer Science

[email protected]

[email protected]

• 850-522-2091

• 850-522-2023 Ex 182

               

Page 2: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

UML UMLUML UML

UML

Page 3: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

The Unified Modeling Language (UML) is a modeling language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process.

Page 4: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

It was originally conceived by Rational Software Corporation and three methodologists in the information systems and technology industry, Grady Booch, James Rumbaugh, and Ivar Jacobson (the Three Amigos).

•Grady Booch’s Booch ’93 method (from Booch ’91)

•James Rumbaugh’s Object Modeling Technique (OMT) -2 (from OMT-1), which was coauthored with Mike Blaha, Bill Premerlani, Fred Eddy, and Bill Lorensen

•Ivar Jacobson’s Object-Oriented Software Engineering (OOSE) method

•Wirfs-Brock, Ward, Cunningham, Rubin, Harel, Gamma, Vlissides, Helm, Johnson, Meyer, Odell, Embley, Coleman, Coad, Yourdon, Schlaer, and Mellor.

Page 5: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

These are the commonly use modeling diagrams use in UML which each diagram gives a different view of a software system:

•Use Case Diagram

•Class Diagram

•State Diagram

•Sequence Diagram

•Collaboration Diagram

•Activity Diagram

•Component Diagram

•Deployment Diagram

Page 6: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

The UML models which can be used to abstract the system include:

•A use case model with all the use cases and their relationships to users.

•An analysis model, which has two purposes: to refine the use cases in more detail and to make an initial allocation of the behavior of the system to a set of objects that provides the behavior.

•A design model that defines a) the static structure of the system as subsystems, classes, and interfaces and b) the use cases realized as collaborations among subsystems, classes and interfaces.

•An implementation model, which includes components (representing source code) and the mapping of the classes to components.

•A deployment model, which defines the physical nodes of computers and the mapping of the components to those nodes.

•A test model, which describes the test cases that verify the use cases.

Page 7: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

use case model analysis model design model mplementation model

Video Rental System

Rent video

Customer

Rent video

Corporate

Order new videos

Video Rental System

Rent video

Rent video

Corporate

Order new videos

Order new videos

Order new videos

Order new videos

Video Rental System

Rent video

Rent video

Corporate

Order new videos

Order new videos

Order new videos

Order new videos

Rent video

Rent video

Rent video

Rent video

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()Cus

erCID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

CuserC

ID()

Video Rental System

Rent video

Customer

Rent video

Corporate

Order new videos

Order new videos

Order new videos

Order new videos

Rent video

Rent video

Rent video

Rent video

Rent video

Page 8: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

1. Because you wish to represent the user interaction with the system in a manner than communicates with users that you understand the system scenarios (business).

Why use UML?

Video Rental System

Rent video

Customer

Return video

CorporateOrder new videos Use Case

Actor

System

Page 9: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

USE CASES describe a sequence of actions (processes).

USE CASES graphically depict interactions between the system and external actors.

USE CASES identify high level services (processes, routines, methods).

USE CASES specify behavior.

USE CASES may have specialized use cases as extensions of generalized use cases.

Use Case Definition:

The specification of actions, including variant sequences and error sequences that a system, subsystem, or class can perform by interacting with outside actors.

Page 10: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Good way to begin defining the system through scenarios.

Test plan can be written from the users point of view with use cases.

Begins traceability.

Has extensions such as:

<<extends>> for extending the functionality of a use case

<<uses>> for using one use case within another and

<<includes>> for inner use cases and

<<calls>> for invocation of other use cases.

Page 11: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Difficult to determine the correct granularity.

Difficult to determine the correct use case.

Knowledge elicitation on use cases can cause an explosion of use cases.

Often too informal.

No techniques for polymorphic behavior.

Page 12: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

No semantic soundness.

While they are an integral part of specification of a system, they have only a small linkage to the other 8 diagrams.

Question:

Do these use cases aid in the presentation of a GOOD SRS.

Page 13: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

GOOD

Organized (yes)

Modifiable (yes)

Traceable (yes)

Design Independent (yes)

Annotated (yes)

BAD

Correct (maybe)

Complete (maybe)

Unambiguous (sometime)

Understandable (not always)

UGLY

Precise (no)

Verifiable (no, dataflows)

Consistent (granularity)

Concise (no)

Page 14: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

2. Because you wish to define the domain (conceptual) objects or classes of the system so that domain rules (ex: business rules) can be encapsulated in these domain objects.

Why use UML?

Video Rental System

attributes

methods

ClassName

Cassette

cassetteID: int

cassetteVolumeNo: int

rentMovie()

Customer

CID: int

name: String

authenticateCustomer ()

relationship

rents

1..*1..*

Multiplicity

Page 15: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Type of Relationship Diagramming Technique

association

generalization

realization (interface)

instanceOf

refines

…….

<<instanceOf>>

<<refines>>

Page 16: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Good way to begin defining the system through abstractions with attributes, business rules, methods.

Good way to document conceptual objects.

Allows depiction of relationships between objects.

Allows modeling of inheritance.

Is integrated with some other diagrams.

Has potential for soundness.

Acts as a communication tool regarding the system.

Serves as an abstraction for complex systems.

Page 17: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Deceptive in correctness.

Requires a network of classes.

Can be confused with ERD.

Is RADICALLY different in each phase.

Is difficult to maintain manually.

Page 18: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

NOT semantically sound.

Resembles semantically sound ERD, NOT sound.

Integration between use cases and class diagrams requires yet another diagram.

Page 19: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

3. Because you wish to define the use case scenarios to show how the classes/objects interact in the scenario.

Why use UML?

Customer Rental Cassette

ClassesvalidateCustomer()

rentCassette(CID)checkIfRentable(CID)

method calls

Page 20: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Good method of discussing a use case with another developer.

God way to document which classes go with which use case.

Helps to identify methods not yet discovered and sometimes classes.

Acts as a high level specification for programmers.

Helps new OO programmers to see class interaction problems.

Page 21: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Can become very complex without adding value.

Can consume time without adding value.

Automatically generated ones help in maintenance.

Page 22: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Looks FAR more correct than is actually.

Correctness is always questionable.

Completeness is always questionable.

Page 23: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

GOOD

Organized (yes)

Modifiable (yes)

Traceable (yes)

Design Independent (yes?)

Annotated (yes)

BAD

Understandable (not always)

Verifiable (somewhat)

UGLY

Precise (no)

Concise (no)

Correct (not sure)

Unambiguous (sometime)

Consistent (somewhat)

Complete (no)

Page 24: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

4. Because you wish to identify the states of the variables and classes within the software domain.

Why use UML?

state

activities

availablerent

rentedreturn

overduepayAR

Checked

transitions

Page 25: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Helps to identify methods

Drives out scenario definitions better.

Most valuable in real-time systems.

Page 26: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

Formal Correctness is available in State Diagrams but UML did not include most of this formality.

Page 27: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

UML notation provides a variety of diagrams for different purposes, like dynamic or static system views.

UML is powerful and feature-rich.

UML is suitable for representing workflow management systems.

UML is the established (generally accepted) notational standard in the software community.

UML can be used on a general level, where implementation details are suppressed.

UML diagram semantics are defined clearly.

Page 28: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

UML is graphic taking advantage of a picture is worth 1000 words.

UML enables is a use-case driven, architecture-centric.

UML is extensible.

UML is implementation independent.

UML is process independent.

UML supports abstractions.

UML is scaleable.

UML is widely applicable and usable.

Page 29: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

UML is a often complicated notation.

UML contains imprecise elements.

UML is overwhelmingly complex.

UML is full of added extensions to correct problems, these are not consistent or well known.

37 things wrong with UML (inconsistencies, wrong modeling, …)

UML notation is perhaps too rich to be intuitive and user-friendly.

Page 30: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

UML is NOT semantically sound.

UML diagrams are NOT specific to a particular abstraction (conceptual, design, implementation).

UML diagrams ARE NOT integrated.

Page 31: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

UML should be used to AID in software development.

Use it to incrementally document items that are unclear.

Use it to develop code in teams to define classes, use cases.

Use it to communicate with users.

Use it as a discussion/review deliverable.

Don’t just require it.

Don’t expect to keep it up manually.

Do choose IDEs that integrate UML with tools.

Page 32: SEA Side Software Engineering Annotations Annotation 3: UML One hour presentation to inform you of new techniques and practices in software development

 1..

a.Rational Rose. market leader, expensive, not aesthetically pleasing diagrams. b.Embarcadero Describe. Interoperability with Java , presentable diagrams, $$c.ILogix Rhapsody. Inexpensive, free version, geared toward embedded systemsd.Visio inexpensive general-purpose drawing tool. e.SmartDraw cheapest but solid drawing tool f.Dia free, runs under Linux, clunky diagrams, metadata in XMLg.Kivio beautiful diagrams h.JAVisioni.VAJj.Cafék.Borland