Software Engineering
The Analysis Workflow

Agenda


Modeling and Simulation Model

 

Ways of using UML

  1. UML class diagrams as sketch - result of requirement analysis
  2. UML class diagrams as blueprint - result of a design process based on class sketches
  3. UML as programming language - UML diagrams are compiled directly to executable code

Analysis Artifacts - Metamodel

Analysis modeling is strategic as we are trying to model the system's essential behavior.


Analysis Workflow Detail


Architectural Analysis


Analyze a Use Case

"Analyze a use case" involves creating analysis classes and use case realization.


Analysis Model - Rules of Thumb


Abstractions

Abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time.

Abstraction in SE is the facility to define objects that represent abstract "experts" that can perform work, report on and change their state, and "communicate" with other objects in the system. The term data encapsulation refers to the hiding of expert structure, but extending the concept of data type from earlier programming languages to associate behavior most strongly with the data, and standardizing the way that different data types interact. When abstraction proceeds into the operations defined, enabling objects of different types to be substituted, it is called polymorphism. When it proceeds in the structure of the types or classes, structuring them to simplify a complex set of relationships, it is called delegation or inheritance.


What are analysis classes?


Anatomy of an Analysis Class

A minimal form of an analysis class consists of the following:


A Paradigm for Finding Analysis Objects and Classes

A class describes the features of set of objects. Every object is an instance of exactly one class. Finding the right classification scheme is one of the keys to successful OO analysis.

Instead

CRC (Class, Responsibility, Collaboration) Modeling

Original CRC paper

CRC is brainstorming technique in which you capture on sticky notes the important things in the problem domain

Difficulties with OOP:

CRC card - a standard index card divided into three sections showing the name of the class, the responsibilities of the class, and the collaborators of the class.


CRC Cards

Model, view, controller (MVC) Paradigm


CRC Process

  1. Explain that this is a true brainstorm
  2. Explain the CRC modeling technique
  3. Interactively perform the following modeling steps:
  4. Perform use-case scenario

Finding Classes by Using RUP Stereotypes