Unit I Oose
Unit I Oose
UNIT I
Learning Objectives
• Object Oriented Concepts- Review of Object and Classes, Links and association,
Generalization and specialization, Inheritance and Grouping concepts,
Aggregation and Composition, Abstract Classes and Polymorphism, Metadata,
Constraints, Reuse.
• The idea of object-oriented programming gained momentum in the 1970s and in the
early 1980s.
• Bjorn Stroustrup integrated object-oriented programming into the C language. The
resulting language was called C++ and it became the first object-oriented language to
be widely used commercially.
• In the early 1990s a group at Sun led by James Gosling developed a simpler version of
C++ called Java that was meant to be a programming language for video-on-demand
applications.
• This project was going nowhere until the group re-oriented its focus and marketed Java
as a language for programming Internet applications.
• The language has gained widespread popularity as the Internet has boomed, although
its market penetration has been limited by its inefficiency.
Evolution of Object Orientation
1. Monolithic Programming Approach: In this approach, the program consists of
sequence of statements that modify data.
a. All the statements of the program are Global throughout the whole program.
The program control is achieved through the use of jumps i.e. go to statements.
b. In this approach, code is duplicated each time because there is no support for
the function. Data is not fully protected as it can be accessed from any portion
of the program.
c. So this approach is useful for designing small and simple programs. The
programming languages like ASSEMBLY and BASIC follow this approach.
2. Procedural Programming Approach: This approach is top down approach. In this
approach, a program is divided into functions that perform a specific task.
a. This approach avoids repetition of code which is the main drawback of
Monolithic Approach.
b. The basic drawback of Procedural Programming Approach is that data is not
secured because data is global and can be accessed by any function.
c. This approach is mainly used for medium sized applications. The
programming languages: FORTRAN and COBOL follow this approach.
3. Structured Programming Approach: The basic principal of structured programming
approach is to divide a program in functions and modules.
• The use of modules and functions makes the program more comprehensible
(understandable). It helps to write cleaner code and helps to maintain control over
each function. This approach gives importance to functions rather than data.
• It focuses on the development of large software applications. The programming
languages: PASCAL and C follow this approach.
4. Object Oriented Programming Approach: The basic principal of the OOP approach is
to combine both data and functions so that both can operate into a single unit. Such a
unit is called an Object.
• This approach secures data also. Now a days this approach is used mostly in
applications. The programming languages: C++ and JAVA follow this approach.
Using this approach we can write any lengthy code.
Object Orientation Paradigm
• An approach to the solution of problems in which all computations are performed in
context of objects.
• The objects are instances of programming constructs, normally called as classes which
are data abstractions with procedural abstractions that operate on objects.
• A software system is a set of mechanism for performing certain action on certain data
Algorithm + Data structure = Program
• Data Abstraction + Procedural Abstraction
Object Orientation
• Object orientation refers to a special type of programming paradigm that combines
data structures with functions to create re-usable objects.
• The object-oriented (OO) paradigm is a development strategy based on the concept
that systems should be built from a collection of reusable components called objects.
• Instead of separating data and functionality as is done in the structured paradigm,
objects encompass both.
Why object orientation?
To create sets of objects that work together concurrently to produce s/w that better, model
their problem domain that similarly system produced by traditional techniques.
Object Orientation Adaptation
Object orientation adapts to the following criteria's-
1. Changing requirements
2. Easier to maintain
3. More robust
4. Promote greater design
5. Code reuse
6. Higher level of abstraction
7. Encouragement of good programming techniques
8. Promotion of reusability
Object Orientated Features
Object orientation adapts to the following criteria's-
1. Changing requirements
2. Easier to maintain
3. More robust
4. Promote greater design
5. Code reuse
6. Higher level of abstraction
7. Encouragement of good programming techniques
8. Promotion of reusability
• CLASS - Class is a collection of objects of similar type. Objects are variables of the type
class. Once a class has been defined, we can create any number of objects belonging
to that class. Classes are user define data types. A class is a blueprint for any functional
entity which defines its properties and its functions.
• DATA ENCAPSULATION – Combining data and functions into a single unit called class
and the process is known as Encapsulation. Class variables are used for storing data
and functions to specify various operations that can be performed on data. This
process of wrapping up of data and functions that operate on data as a single unit is
called as data encapsulation. Data is not accessible from the outside world and only
those function which are present in the class can access the data.
• DATA ABSTRACTION- Abstraction (from the Latinn abs means away from and trahere
means to draw) is the process of taking away or removing characteristics from
something in order to reduce it to a set of essential characteristics. Advantage of data
abstraction is security.
• INHERITANCE- It is the process by which object of one class acquire the properties or
features of objects of another class. The concept of inheritance provide the idea of
reusability means we can add additional features to an existing class without
modifying it. This is possible by driving a new class from the existing one. Advantage
of inheritance is reusability of the code.
• MESSAGE PASSING - The process by which one object can interact with other object is
called message passing.
• POLYMORPHISM - A greek term means ability to take more than one form. An
operation may exhibit different behaviours in different instances. The behaviour
depends upon the types of data used in the operation.
• PERSISTENCE - The process that allows the state of an object to be saved to non-
volatile storage such as a file or a database and later restored even though the original
creator of the object no longer exists.
Benefits of OOPs
• Code Reuse and Recycling:
Objects created for Object Oriented Programs can easily be reused in other programs.The
code and designs in object-oriented software development are reusable because they are
modeled directly out of the real-world problem-domain.
• Design Benefits:
Large programs are very difficult to write. Object Oriented Programs force designers to go
through an extensive planning phase, which makes for better designs with less flaws.
• Ease out development:
In addition, once a program reaches a certain size, Object Oriented Programs are actually
easier to program than non-Object Oriented ones.
• Data is more stable than functions
Functions are not the most stable part of a system, the data is. Over a period of time, the
requirements of a system undergo radical change. New uses and needs for the software
are discovered; new features are added and old features are removed. During the course
of all this change, the underlying heart- data of the system remains comparatively
constant.
• Software Maintenance:
Legacy code must be dealt with on a daily basis, either to be improved upon or made to
work with newer computers and software. An Object Oriented Program is much easier to
modify and maintain. So although a lot of work is spent before the program is written, less
work is needed to maintain it over time.
Application Areas of OOPS
➢ Multimedia Design.
➢ CIM/CAD/CAM Systems.
Attributes
Data Abstraction
• General: Focus on the meaning
Suppress irrelevant “implementation” details
• It refers to the act of representing essential features without including the
background details or explanations.
• Through the process of abstraction, a programmer hides all but the relevant
data about an object in order to reduce complexity and increase efficiency.
• Abstraction tries to minimize details so that the programmer can focus on a few
concepts at a time. This programming technique
separates the interface and implementation.
• Once you have modelled your object using Abstraction , the same set of data could
be used in different applications.
Data Abstraction- The Motivation
• Client/user perspective (Representation Independence)
– Interested in what a program does, not how.
– Minimize irrelevant details for clarity.
Inheritance
• Inheritance allows the reusability of an existing operations and extending the
basic unit of a class without creating from the scratch.
• Inheritance is the capability of one class of things to inherent properties from other
class.
• Supports the concept of Hierarchical classification.
• Ensures the closeness with real world models.
• Provides Multiple Access Specifiers across the modules (Public, Private & Protected)
• Supports Reusability that allows the addition of extra features to an existing class
without modifying it.
Inheritance : Sub-classing
• Code reuse derive Colored-Window from Window (also adds fields/methods)
• Specialization: Customization derive bounded-stack from stack (by
overriding/redefining push)
• Generalization: Factoring Commonality – code sharing to minimize duplication –
update consistency
• Using two concepts of inheritance, subclassing (making a new class based on a
previous one) and overriding (changing how a previous class works), you can
organize your objects into a hierarchy.
SOLID Design Principles
Traditional paradigm:
◻ Jolt between analysis (what) and design (how)
Object-oriented paradigm:
◻ Objects enter from very beginning
Paradigm Shift
• Ternary Association: The association which contain the degree of three classes is
called ternary association. The ternary Association is an atomic unit and cannot be
subdivided into binary association without losing information.
Degree of Association
• Quaternary Association: The Quaternary Association exists when there are four
classes associated.
• Higher degree Association: The higher order association are more complicated to
draw , implement because when more than four class need to be associated then it
seems a hard task.
Association Classes
• Association classes may be applied to both binary and n-ary associations.
• Similar to how a class defines the characteristics of its objects, including their
structural features and behavioural features, an association class may be used to
define the characteristics of its links, including their structural features and
behavioural features. These types of classes are used when you need to maintain
information about the relationship itself.
• In a UML class diagram, an association class is shown as a class attached by a dashed-
line path to its association path in a binary association or to its association diamond
in an n-ary association.
• The name of the association class must match the name of the association.
Binary Association Classes
The following example shows association classes for the binary associations in the most
basic notation for binary association classes.
The association classes track the following information:
• The reason a worker is responsible for a work product
• The reason a worker performs a unit of work
• A description of how a unit of work consumes a work product
• A description of how a unit of work produces a work product.
III. Multiplicity
• Multiplicity (which is optional) indicates how many objects of a class may relate to the
other classes in an association. Multiplicity is shown as a comma-separated sequence
of the following:
▪ Integer intervals
▪ Literal integer values
• Intervals are shown as a lower-bound .. upper-bound string in which a single asterisk
indicates an unlimited range. No asterisks indicate a closed range.
• For example- 1 means one, 1..5 means one to five, 1, 4 means one or four, 0..* and *
mean zero or more (or many), and 0..1 and 0,1 mean zero or one.
• There is no default multiplicity for association ends. Multiplicity is simply undefined,
unless you specify it.
III. Multiplicity Indicators
III. Multiplicity
• Multiplicity is the number of instances of one class relates to instance of another
class.
• For the following association, there are two multiplicity decisions to make, one for
each end of the association.
▪ For each instance of Professor, many Course Offerings may be taught.
▪ For each instance of Course Offering, there may be either one or zero
Professor as the instructor.
Labelling Associations
Reflexive Associations
• It is possible for an association to connect a class to itself.
• There are two main types:
• Symmetric and Asymmetric.
• Asymmetric Reflexive Associations: The ends of the association are semantically
different from each other, even though the associated class is the same. Examples
include parent-child, supervisor-subordinate and predecessor-successor.
• Symmetric Reflexive Associations: There is no logical difference in the semantics of
each association end. In other words, students who have taken one course cannot take
another in the set. Umple uses the keyword 'self' to identify this case.
Association Nomenclature
Association- Further more!
• The most abstract way to describe static relationship between classes is using the
Association link, which simply states that there is some kind of a link or a dependency
between two classes or more.
• Weak Association - ClassA may be linked to ClassB in order to show that one of its
methods includes parameter of ClassB instance, or returns instance of ClassB.
• Strong Association - ClassA may also be linked to ClassB in order to show that it holds
a reference to ClassB instance.
Aggregation Scenario
Generalisation Hierarchy
Specialization
• Specialization means creating new subclasses from an existing class.
• If it turns out that certain attributes, associations, or methods only apply to some of
the objects of the class, a subclass can be created.
• The most inclusive class in a generalization/specialization is called the superclass and
is generally located at the top of the diagram.
• The more specific classes are called subclasses and are generally placed below the
superclass.
Specialization Example
Inheritance
• The generalization/specialization relationship is implemented in object oriented
programming languages through inheritance.
• Object-oriented programming allows classes to inherit commonly used state and
behaviour from other classes.
• A class that is derived from another class is called a subclass (also a derived class,
extended class, or child class). The class from which the subclass is derived is called a
superclass (also a base class or a parent class).
• When you want to create a new class and there is already a class that includes some
of the code that you want, you derive it.
• A subclass inherits all the members (fields, methods, and nested classes) from its
superclass.
• Constructors are not members, so they are not inherited by subclasses, but the
constructor of the superclass can be invoked from the subclass.
• Models "kind of" hierarchy
• Powerful notation for sharing similarities among classes while preserving their
differences
• UML Notation: An arrow with a triangle
Inheritance Hierarchy
• The generalized class at the top and the specialized classes below.
• The specialized class names should reflect the class they were specialized from.
• For example, employee was specialized from Person.
Aggregation vs Inheritance
• Both associations describe trees (hierarchies)
▪ Aggregation tree describes a-part-of relationships (also called and-
relationship, Has –a Relationship, containership)
▪ Inheritance tree describes "kind-of" relationships (also called or-relationship,
is-a relationship)
• Aggregation relates instances (involves two or more different objects)
• Inheritance relates classes (a way to structure the description of a single object)
Realization
• Realization is a relationship between the blueprint class and the object containing its
respective implementation level details.
• This object is said to realize the blueprint class.
• In other words, you can understand this as the relationship between the interface and
the implementing class.
• Example: A particular model of a car ‘GTB Fiorano’ that implements the blueprint
of a car realizes the abstraction.
Dependency
• Change in structure or behaviour of a class affects the other related class, then
there is a dependency between those two classes. It need not be the same vice-
versa.
• When one class contains the other class it this happens.
Constraints
• To restrict ways in which a class can operate we add constraints.
• OCL is a specification language designed to formally specify constraints in software
modules.
• Types of constraints
▪ Invariant
✓ Defined on a method
✓ Defined on a method
OOLCM- Analysis
• Object Modelling is based on identifying the objects in a system and their
interrelationships.
• As in any other system development model, system analysis is the first phase of
development in case of Object Modelling too.
• In this phase, the developer interacts with the user of the system
to find out the user requirements and analyses the system to understand the functioning.
• Based on this system study, the analyst prepares a model of the
desired system.
• This model is purely based on what the system is required to do.
• At this stage the implementation details are not taken care of. Only the model of
the system is prepared based on the idea that the system is made up of a set of
interacting objects.
The important elements of the system are emphasized.
OOLCM- Design
• System Design is the next development stage where the overall architecture of the
desired system is decided.
• The system is organized as a set of sub systems interacting
with each other.
• While designing the system as a set of interacting subsystems,
the analyst takes care of specifications as observed in system analysis as well as what is
required out of the new system by the end user.
• As the basic philosophy of Object-Oriented method of system analysis is to
perceive the system as a set of interacting objects,
a bigger system may also be seen as a set of interacting smaller subsystems that in turn are
composed of a set of interacting objects.
• While designing the system, the stress lies on the objects comprising the system
and not on the processes being carried out in the system as in the case of
traditional Waterfall Model where the processes form the important part of the
system.
Object Orientation in Design
• In this phase, the details of the system analysis and system design are
implemented.
• The Objects identified in the system design phase are designed.
• Here the implementation of these objects is decided as the data structures get
defined and also the interrelationships between
the objects are defined.
• Object Oriented Philosophy is very much similar to real world and
hence is gaining popularity as the systems here are seen as a set of interacting objects as in
the real world.
• To implement this concept, the process-based structural
programming is not used; instead objects are created using data structures.
• Just as every programming language provides various data types and various
variables of that type can be created, similarly, in case of objects certain data
types are predefined.
• For example, we can define a data type called pen and then create and use
several objects of this data type. This concept is known as creating a class.
• Class: A class is a collection of similar objects. It is a template where certain
basic characteristics of a set of objects are defined.
The class defines the basic attributes and the operations of the objects of that type.
Defining a class does not define any object, but it only creates a template. For objects
to be actually created instances of the class are created as per the requirement of the
case.
• Abstraction: Classes are built on the basis of abstraction, where a
set of similar objects are observed and their common characteristics are listed. Of all
these, the characteristics of concern to the system under observation are picked up
and the class definition is made. The attributes of no concern to the system are left
out. This is known as abstraction.
The abstraction of an object varies according to its application. For instance, while
defining a pen class for a stationery shop, the attributes of concern might be the pen
color, ink color, pen type etc., whereas a pen class for a manufacturing firm would be
containing the other dimensions of the pen like its diameter, its shape and size etc.
• Inheritance: Inheritance is another important concept in this regard.
This concept is used to apply the idea of reusability of the objects. A new type of class
can be defined using a similar existing class with a few new features. For instance, a
class vehicle can be defined with the basic functionality of any vehicle and a new class
called car can be derived out of it with a few modifications. This would save the
developers time and effort as the classes already existing are reused without much
change.
OOLCM- Implementation
• During this phase, the class objects and the interrelationships of these classes are
translated and actually coded using the programming language decided upon.
• The databases are made and the complete system is given a
functional shape.
• The complete OO methodology revolves around the objects
identified in the system.
• When observed closely, every object exhibits some
characteristics and behaviour.
• The objects recognize and respond to certain events.
• For example, considering a Window on the screen as an object, the size of the
window gets changed when resize button of the window is clicked.
• Here the clicking of the button is an event to which the window responds by
changing its state from the old size to the new size. While developing systems based
on this approach, the analyst makes use of certain models to analyse and depict these
objects. The methodology supports and uses three basic Models:
• Object Model - This model describes the objects in a system and their
interrelationships. This model observes all the objects as static and does
not pay any attention to their dynamic nature.
• Dynamic Model - This model depicts the dynamic aspects of
the system. It portrays the changes occurring in the states of various objects with the
events that might occur in the system.
• Functional Model - This model basically describes the data
transformations of the system. This describes the flow of data and
the changes that occur to the data throughout the system.
OOLCM- Detailing!
➢ The objects in the system are immune to requirement changes. Therefore, allows
changes more easily.
➢ Object Oriented Methodology designs encourage more re-use. New applications can
use the existing modules, thereby reduces the development cost and cycle time.
➢ Object Oriented Methodology approach is more natural. It provides nice structures
for thinking and abstracting and leads to modular design.
Software Development- Industrial Process
• Process must yield a foreseeable result, irrespective of which individual performed
the job.
• Volume of output doesn’t effect the process.
• Possibility to allocate parts of the process to several manufacturers and
subcontractors.
• Possible to make use of pre-defined building blocks and components.
• Possible to plan and calculate the process with great precision.
• Each person trained for an operation must perform it in a similar manner.
Rational Enterprise Philosophy
Unified Approach
RUP implements best practices
Disciplines of RUP
1. Business Modelling
2. Requirements
3. Analysis and Design
4. Implementation
5. Test
6. Deployment
System Development Characteristics
❑ System development
❑ Parties interested in system development are customer, direct and indirect users, etc.
System Development
Responsibility-Driven Design
• In Responsibility-Driven Design, a model is developed from the requirements
specification by the extraction of nouns and verbs from the specification.
• This provides a basis for the actual implementation.
• In RDD, for each class, different responsibilities are defined which specify the roles of
the objects, and their actions.
• In order to fulfill these responsibilities, classes need to collaborate with each other.
Collaborations are defined to show how the objects will interact.
• The responsibilities are further grouped into contracts which define a set of requests
that objects of the class can support.
• These contracts are further refined into protocols, which show the specific signature
of each operation.
Responsibility-Driven Design
• The RDD modelling process includes two phases:
• Exploratory: The exploratory phase has three goals-- finding the classes, determining
responsibilities, and identifying collaborations. This is commonly done with the CRC
Cards.
• Analysis: The analysis phase involves refining the object’s behaviour and the service
definitions specified in the exploratory phase. These activities include defining
interfaces (protocols) and constructing implementation specifications for each class.
Class Responsibility Collaboration
Classes
- Extract noun phrases from the specification and build a list
- Identify candidates for abstract super classes
- Use categories to look for missing classes
- Write a short statement for the purpose of each class
Responsibilities
- Find responsibilities
- Assign responsibilities to classes
- Find additional responsibilities by looking at the relationships between classes
Collaborations
- Find and list collaborations by examining responsibilities associated with classes
- Identify additional collaborations by looking at relationships between classes
- Discard and classes that take part in no collaboration (as client or server)
Object-Oriented Software Engineering
• Object-oriented software engineering (OOSE) is an object modeling language and
methodology.
• Object-Oriented Software Engineering (OOSE) is a software design technique that is
used in software design in object-oriented programming.
• OOSE is developed by Ivar Jacobson in 1992. OOSE is the first object-oriented design
methodology that employs use cases in software design. OOSE is one of the precursors
of the Unified Modeling Language (UML), such as Booch and OMT.
• It includes a requirements, an analysis, a design, an implementation and a testing
model.
• Interaction diagrams are similar to UML's sequence diagrams. State transition
diagrams are like UML statechart diagrams.
Jacobson OOSE
• Object-Oriented Software Engineering (OOSE) is a software design technique that is
used in software design in object- oriented programming.Originated from
Objectory (Object Factory for software development)
• OOSE is developed by Ivar Jacobson in 1992. OOSE is the first object-oriented
design methodology that employs use cases in software design. OOSE is one of
the precursors of the Unified Modeling Language (UML), such as Booch and OMT.
• It includes a requirements, an analysis, a design, an implementation and a testing
model.
• Interaction diagrams are similar to UML's sequence diagrams. State transition
diagrams are like UML statechart diagrams.
• Aim to fit the development of large real-time system
• Stress traceability among the different phases (Backward & forward)
• Supports OO concepts of classification, encapsulation and inheritance.
• Abstraction is promoted by levels.
• Adds “use cases” to the OO approach.
• Composite data and activity definition is not strongly enforced and services are
also regarded as objects.
• Reuse is supported by component libraries.
• Guidance for analysis is less comprehensive.
• Target applications: like HOOD real-time systems and engineering systems.
Jacobson’s Use Case Model
Objectory
• Discipline process for the industrialized development of software, based on a use
case driven design
• Built around several different models
▪ Requirement Model
▪ Domain object model
▪ Analysis Model
▪ Design Model
▪ Implementation model
▪ Test model
OOSE Models
Instantiation - Example
Inheritance
Classes with similar attributes and operations may be organized hierarchically
Common attributes and operations are factored out and assigned to a broad superclass
(generalization)
▪ Generalization is the “is-a” relationship
▪ Super classes are ancestors, subclasses are descendants Classes iteratively refined into
subclasses that inherit the attributes and operations of the superclass (specialization)
OMT Inheritance Notation
V. Promotes Re-use
Design Method Evolution
UML Origin
A product of the “design wars” of the 1980’s
Grady Booch, James Rumbaugh, and others had competing styles.
`94: Rumbaugh leaves GE to join Booch at Rational Software “Method wars over. We won.”
Others feared achieving standardization the Microsoft way.
’95: Rational releases UML 0.8; Ivars Jacobson (use cases) joins Rationalà“The Three Amigos”
’96: Object Management Group sets up task force on methods
’97: Rational proposed UML 1.0 to OMG. After arm twisting and merging, UML 1.1 emerges
’99: After several years of revisions and drafts, UML 1.3 is released Now UML 1.5….
What is UML
• “The Unified Modeling Language is a family of graphical notations, that help in
describing and designing software systems, particularly software systems built
using the object- oriented style.”
• UML first appeared in 1997
• UML is standardized. Its content is controlled by the Object Management Group
(OMG), a group of companies.
• UML can be applied to diverse application domains (e.g., banking, finance, internet,
aerospace, healthcare, etc.) It can be used with all major object and component
software development methods and for various implementation platforms (e.g., J2EE,
.NET).
• UML stands for Unified Modelling Language
• The UML combines the best of the best from
• Data Modelling concepts (Entity Relationship Diagrams)
• Business Modelling (work flow)
• Object Modelling
• Component Modelling
• The UML is the standard language for visualizing, specifying, constructing, and
documenting the artifacts of a software- intensive system
• It can be used with all processes, throughout the development life cycle, and across
different implementation technologies
How it all begun…
UML Contributors
UML Supports
Goals of UML
1) Provide users with a ready-to-use, expressive visual modeling language
2) Provide extensibility and specialization mechanisms to extend the core concepts.
3) Be independent of particular programming languages and development processes.
4) Provide a formal basis for understanding the modeling language.
5) Encourage the growth of the OO tools market.
6) Support higher-level development concepts such as collaborations, frameworks,
patterns and components.
7) Integrate best practices.
UML
UML- A language for…
• The UML is a language for
▪ visualizing
▪ specifying
▪ constructing
▪ documenting
a software-intensive system
• UML can also be applied outside the domain of software development.
1. Visual Modelling
‘A picture is worth a thousand words’
• Use standard graphical notations
• Semi-formal
• Captures business processes from enterprise information systems to
distributed web-based applications and even to hard real time embedded
systems.
2. Specifying
• Building models that are
▪ Precise
▪ Unambiguous
▪ Complete
• Symbols are based upon
• Well-defined syntax
• semantics
• Addresses the specification of all important analysis, design and implementation
decisions.
3. Constructing
• Models are related to object oriented programming languages
• Round-trip engineering requires tools and human invention to information
loss.
▪ Forward engineering- direct mapping of a UML model into code.
▪ Reverse engineering- reconstruction of a UML model from an
implementation.
▪ Re-engineering- Understanding existing software and modifying it.
4. Documenting
• Architecture
• Requirements
• Tests
• Activities
▪ Project Planning
▪ Release Management
3 basic building blocks of UML
Why model?
• Analyse the problem-domain
▪ simplify reality
▪ capture requirements
▪ visualize the system in its entirety
▪ specify the structure and/or behaviour of the system
✓ Packages
▪ Annotational things
✓ Notes
• Relationships: dependency, association, generalization ,composition,link ,aggregation
etc..
• Diagrams: class, object, use case, sequence, collaboration, statechart, activity,
component and deployment.
I. Structural Things- 7 Things
II. Behavioral Things
• Verbs of UML Model
• Dynamic parts of UML models- behaviour over time and space.
• Usually connected to structural things in UML.
✓ Understandability
• Logical View
✓ Functionality
• Process View
✓ Performance
✓ Scalable
✓ Throughput
• Implementation View
✓ Software management
• Deployment View
✓ System topology
✓ Delivery
Installation
I. Use Case View(User View)
II. Design View(Logical View)
Architecture
System Architecture
• System development includes the development of different models of a software
system
• Aim is to find powerful modeling language, notation or modeling technique for each
model
• Set of modeling techniques defines architecture upon which the system development
method is based
• The architecture of a method is the denotation of its set of modeling techniques
• Modeling technique is described by means of syntax, semantics and pragmatics
• Syntax (How it looks)
• Semantics (What it means)
• Pragmatics (rules of thumb for using modeling technique)
System Development
• System development is the work that occurs when we develop computer support to
aid an organizational procedures.
• System development is model building.
• Commences with identification of requirements.
• Specification can be used for contract and to plan and control development process.
• Complex processes are often handled poorly. OOSE steps in from start to end of system
life cycle.
Objectory Models
• Discipline process for the industrialized development of software, based on a use-
case driven design
• Built around several different models
▪ Requirement Model
▪ Domain object model
▪ Analysis Model
▪ Design Model
▪ Implementation model
▪ Test model
System development is Model Building
Model Architecture
Five different models
▪ The requirement model
üAims to capture the functional requirements
▪ Analysis model
üGive the system a strong and changeable object structure
▪ Design model
üAdopt and refine the object structure to the current implementation environment
• Implementation model
▪ Implement the system designed so far
• Test model
▪ Verify whether the right system has been built or not
Model Architecture
The Analysis Model
• Consisting of various object classes: control object, entity objects, and interface
objects.
• The purpose of this model is to find a robust and extensible structure for the system
as a base for construction.
• Each of the object types has its own special purpose for this robustness, and together
they will offer the total functionality that was specified in the Requirements Model.
The Construction Model
▪ We build our system through construction based on the Analysis Model and the
Requirements Model created by the analysis process.
▪ The construction process lasts until the coding is completed and the included units
have been tested.
▪ There are three main reasons for a construction process:
1) The Analysis Model is not sufficiently formal.
2) Adaptation must be made to the actual implementation environment.
3) We want to do internal validation of the analysis results.
• The construction activity produces two models, the Design Model and the
Implementation Model.
• Construction is thus divided into two phases; design and implementation, each of
which develops a model.