SWE102 - 7 - Design and Implementation ( Object-oriented design using UML…
SWE102 - 7 - Design and Implementation
Open Source Development
Object-oriented design using UML
Design the system architecture.
Understand and define the context and the external interactions with the system
Develop design models.
State Machine Models
User Case Models
Identify the principal objects in the system
Object class identification
There are a variety of different object-oriented design processes that depend on the organization using the process.
They require a lot of effort for development and maintenance of these models and, for small systems, this may not be cost-effective.
However, for large systems developed by different groups design models are an important communication mechanism.
Structured object-oriented design processes involve
developing a number of different system models.
System context and interactions
Understanding the relationships between the software that is being designed and its external environment is essential for deciding how to provide the required system functionality and how to structure the system to communicate with its environment.
Understanding of the context also lets you establish the boundaries of the system. Setting the system boundaries helps you decide what features are implemented in the system being designed and what features are in other associated systems.
Context and interaction models
A system context model is a structural model that demonstrates the other systems in the environment of the system being developed.
An interaction model is a dynamic model that shows how
the system interacts with its environment as it is used.
You identify the major components that make up the system and their interactions, and then may organize the components using an architectural pattern such as a layered or client-server model.
The weather station is composed of independent subsystems that communicate by broadcasting messages on a common infrastructure.
Once interactions between the system and its environment have been understood, you use this information for designing the system architecture
Object Class Identification
Approach to identification
Base the identification on tangible things in the
Use a behavioural approach and identify objects based
on what participates in what behaviour.
Use a grammatical approach based on a natural language description of the system (used in Hood OOD method).
Use a scenario-based analysis. The objects, attributes
and methods in each scenario are identified.
Object identification is an iterative process. You are
unlikely to get it right first time.
Identifying object classes is often a difficult part of object
There is no 'magic formula' for object identification. It relies on the skill, experience and domain knowledge of system designers.
Static models describe the static structure of the system
in terms of object classes and relationships.
Dynamic models describe the dynamic interactions
Design models show the objects and object classes and
relationships between these entities.
Sequence models that show the sequence of object
State machine models that show how individual objects
change their state in response to events.
Subsystem models that show logical groupings of
objects into coherent subsystems
Other models include use-case models, aggregation
models, generalisation models, etc.
Designers should avoid designing the interface
representation but should hide this in the object itself.
Objects may have several interfaces which are
viewpoints on the methods provided.
Object interfaces have to be specified so that the objects
and other components can be designed in parallel.
The UML uses class diagrams for interface specification
but Java may also be used.
understand some of the different models that may be used to document an object-oriented design;
know about the idea of design patterns and how these are a way of reusing design knowledge and experience;
understand the most important activities in a general, objectoriented design process;
have been introduced to key issues that have to be considered when implementing software, including software reuse and open-source development.
Software design and implementation activities are
Software design and implementation is the stage in the software engineering process at which an executable software system is developed.
Implementation is the process of realizing the design as a
Software design is a creative activity in which you identify software components and their relationships, based on a customer’s requirements.