0% found this document useful (0 votes)
3 views

Chapter 1 Introduction

The document provides an overview of software modeling and design methods, emphasizing the importance of UML as a standardized graphical language for object-oriented analysis and design. It discusses various perspectives on software architecture, including multiple views and the evolution of modeling techniques over time. The COMET method is introduced as a UML-based approach for software development, focusing on requirements, analysis, and design phases.

Uploaded by

Cường Lê
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Chapter 1 Introduction

The document provides an overview of software modeling and design methods, emphasizing the importance of UML as a standardized graphical language for object-oriented analysis and design. It discusses various perspectives on software architecture, including multiple views and the evolution of modeling techniques over time. The COMET method is introduced as a UML-based approach for software development, focusing on requirements, analysis, and design phases.

Uploaded by

Cường Lê
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Chapter 1: Introduction

Contents
2. Object-oriented
3. Software
1. Software methods and the
Why design? architectural
modeling unified modeling
design
language

5. Comet: a uml-based
7. Multiple views
4. Method and software modeling and 6. Uml as a
of software
notation design method for standard
architecture
software applications

8. Evolution of 9. Evolution of
software modeling object-oriented
and design analysis and design
methods methods
Why design?
• Build a pet house
Why design?
• High building
Why design?
Why design?
1. SOFTWARE MODELING
• Modeling is widely used in science and engineering to provide abstractions of
a system at some level of precision and detail
• According to the Object Modeling Group (OMG), “modeling is the designing of
software applications before coding.”
• In model-based software design and development, software modeling is used
as an essential part of the software development process.
• A better understanding of a system can be obtained by considering it from
different perspectives (multiple views): requirements models, static models,
and dynamic models of the software system
• A graphical modeling language such as UML helps in developing,
understanding, and communicating the different views.
2. OBJECT-ORIENTED METHODS AND
THE UNIFIED MODELING LANGUAGE
• Object-oriented methods are based on the concepts of
information hiding, classes, and inheritance.
• With the proliferation of notations and methods for the
object-oriented analysis and design of software applications
the Unified Modeling Language (UML) was developed to
provide a standardized graphical language and notation for
describing object-oriented models. However, because UML is
methodology-independent, it needs to be used together with
an object-oriented analysis and design method.
2. OBJECT-ORIENTED METHODS AND
THE UNIFIED MODELING LANGUAGE
• Modern object-oriented analysis and design methods are model-based and
use a combination of use case modeling, static modeling, state machine
modeling, and object interaction modeling.
• Almost all modern object-oriented methods use the UML notation for
describing software requirements, analysis, and design models.
• In use case modeling, the functional requirements of the system are
defined in terms of use cases and actors.
• Static modeling provides a structural view of the system. Classes are
defined in terms of their attributes, as well as their relationships with other
classes.
• Dynamic modeling provides a behavioral view of the system. The use
cases are realized to show the interaction among participating objects.
Object interaction diagrams are developed to show how objects
3. SOFTWARE ARCHITECTURAL
DESIGN
• A software architecture (Bass, Clements, and Kazman 2003; Shaw and
Garlan 1996) separates the overall structure of the system, in terms of
components and their interconnections, from the internal details of the
individual components.
• A software architecture can be described at different levels of detail. At a
high level, it can describe the decomposition of the software system into
subsystems. At a lower level, it can describe the decomposition of
subsystems into modules or components.
• The software quality attributes of a system should be considered when
developing the software architecture. These attributes relate to how the
architecture addresses important nonfunctional requirements, such as
performance, security, and maintainability.
4. METHOD AND NOTATION
• A software design notation is a means of describing a software
design either graphically or textually or both.
• UML is a graphical notation for object-oriented software applications.

class CardAccount
{
cardId: String;
account tNumber: String;
accountType: String
}
4. METHOD AND NOTATION
• A software design concept is a fundamental idea that can be applied to
designing a system. For example, information hiding is a software design concept.
• A software design strategy is an overall plan and direction for developing a
design. For example, object-oriented decomposition is a software design strategy.
• Software structuring criteria are heuristics or guidelines used to help a
designer in structuring a software system into its components. For example, object
structuring criteria provide guidelines for decomposing the system into objects.
• A software design method is a systematic approach that describes the
sequence of steps to follow in order to create a design, given the software
requirements of the application
• The Collaborative Object Modeling and Design Method, or COMET, uses the UML
notation to describe the design. COMET is based on the design concepts of
information hiding, classes, inheritance, and concurrent tasks. It uses a design
strategy of concurrent object design.
5. COMET: A UML-BASED SOFTWARE MODELING AND
DESIGN METHOD FOR SOFTWARE APPLICATIONS

• This book describes a UML-based software modeling and


architectural design method called COMET (The Collaborative
Object Modeling and Design Method). COMET is an iterative use
case driven and object-oriented software development method that
addresses the requirements, analysis, and design modeling phases
of the software development life cycle.
• In a requirements model, the functional requirements of the system
are defined in terms of actors and use cases.
• In an analysis model, the use case is realized to describe the objects
that participate in the use case and their interactions.
• In the design model, the software architecture is developed,
addressing issues of distribution, concurrency, and information
6. UML AS A STANDARD
• UML: a standard modeling language and notation for describing object-oriented
designs.
• The OMG (Object Management Group) maintains UML as a standard. The first
adopted version of the standard was UML 1.3. There were minor revisions with UML
1.4 and 1.5. A major revision to the notation was made in 2003 with UML 2.0. The
latest books on UML conform to UML 2.0.

Latest version 2.5.1,


published Dec/2017
6.1 Model-Driven Architecture with UML

• According to the OMG, UML is methodology-independent; UML is a


notation for describing the results of an object-oriented analysis and
design developed via the methodology of choice.
• A UML model can be either a platform-independent model (PIM) or a
platform-specific model (PSM). The PIM is a precise model of the
software architecture before a commitment is made to a specific
platform.
• Developing the PIM first is particularly useful because the same PIM
can be mapped to different middleware platforms, such as COM,
CORBA, .NET, J2EE, Web Services, or another Web platform.
7. MULTIPLE VIEWS OF SOFTWARE
ARCHITECTURE
• A software architecture can be
considered from different
perspectives, which are referred
to as different views.
• Kruchten (Kruchten 1995)
introduced the 4+1 view model
of software architecture, in
which he advocated a multiple-
view modeling approach for
software architectures, in which
the use case view is the unifying
7. MULTIPLE VIEWS OF SOFTWARE
ARCHITECTURE
• Logical view: functionality of the
system; Static modeling view;
• Process view:concurrent process
or task view;
• Development view: architecture;
subsystem and component design
view.
• Physical view: deployment view
• Scenarios (Use Case View): set of
use cases, or scenarios
7. MULTIPLE VIEWS OF SOFTWARE
ARCHITECTURE
Hofmeister et al. (2000) describe an industrial perspective on
applied software architecture consisting of four views:
• A conceptual view, which describes the main design elements
and the relationships between them;
• A code view, which consists of the source code organized into
object code, libraries, and directories;
• A module view, which consists of subsystems and modules;
• An execution view, which is a concurrent and distributed
execution perspective.
7. MULTIPLE VIEWS OF SOFTWARE
ARCHITECTURE
In this book, we will describe and depict the different modeling views of the
software architecture in UML. The views are as follows:
• Use case view. This view is a functional requirements view, which is an input
to develop the software architecture. Each use case describes the sequence of
interactions between one or more actors (external users) and the system.
• Static view. The architecture is depicted in terms of classes and relationships,
which can be associations, whole/part relationships (compositions or
aggregations), or generalization/specialization relationships. Depicted on UML
class diagrams.
• Dynamic interaction view. This view describes the architecture in terms of
objects as well as the message communication between them. This view can
also be used to depict the execution sequence of specific scenarios. Depicted
7. MULTIPLE VIEWS OF SOFTWARE
ARCHITECTURE
• Dynamic state machine view. The internal control and sequencing of a
control component can be depicted using a state machine. Depicted on UML
statechart diagrams.
• Structural component view. The software architecture is depicted in terms of
components, which are interconnected through their ports, which in turn
support provided and required interfaces. Depicted on UML structured class
diagrams.
• ■ Dynamic concurrent view. The software architecture is viewed as
concurrent components, executing on distributed nodes, and communicating by
messages. Depicted on UML concurrent communication diagrams.
■ Deployment view. This depicts a specific configuration of the distributed
architecture with components assigned to hardware nodes. Depicted on UML
8. EVOLUTION OF SOFTWARE MODELING
AND DESIGN METHODS
• In the 1960s, programs were often implemented with little or no systematic requirements analysis and
design. Graphical notations – in particular, flowcharts – were often used, either as a documentation
tool or as a design tool for planning a detailed design prior to coding

• Subroutines were originally created as a means of allowing a block of code to be shared by calling it from different parts of a
program

• Dijkstra developed one of the first software design methods with the design of the T.H.E. operating
system (Dijkstra 1968), which used a hierarchical architecture. This was the first design method to
address the design of a concurrent system, namely, an operating system.

• In the mid- to late 1970s, two different software design strategies gained prominence: data flow–
oriented design and data structured design.

• An alternative software design approach was that of data structured design. This view was that a full
understanding of the problem structure is best obtained from consideration of the data structures.

• In the database world, the concept of separating logical and physical data was key to the development
of database management systems. Various approaches were advocated for the logical design of
databases, including the introduction of entity relationship modeling by Chen
9. EVOLUTION OF OBJECT-ORIENTED ANALYSIS
AND DESIGN METHODS
• In the mid- to late 1980s, the popularity and success of object-oriented
programming led to the emergence of several object-oriented design methods,
including Booch, Wirfs-Brock, Wilkerson, and Wiener (1990), Rumbaugh et al.
(1991), Shlaer and Mellor (1988, 1992), and Coad and Yourdon (1991, 1992).
• The emphasis in these methods was on modeling the problem domain,
information hiding, and inheritance.

You might also like