COMPONENT LEVEL DESIGN 1 Lecture 16 COMPONENT LEVEL

  • Slides: 12
Download presentation
COMPONENT LEVEL DESIGN 1 Lecture 16

COMPONENT LEVEL DESIGN 1 Lecture 16

COMPONENT LEVEL DESIGN Component-level design occurs after the first iteration of architectural design has

COMPONENT LEVEL DESIGN Component-level design occurs after the first iteration of architectural design has been completed The intent is to translate the design model into operational software 2

QUICK LOOK What is it? A complete set of software components is defined during

QUICK LOOK What is it? A complete set of software components is defined during architectural design. But the internal data structures and processing details of each component are not represented Component-level design defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each software component. 3

QUICK LOOK Who does it? A software engineer performs component-level design Why is it

QUICK LOOK Who does it? A software engineer performs component-level design Why is it important? You have to be able to determine whether the software will work before you build it The componentlevel design represents the software in a way that allows you to review the details of the design for correctness and consistency 4

QUICK LOOK What is the work product? The design for each component, represented in

QUICK LOOK What is the work product? The design for each component, represented in graphical, tabular, or text-based notation, is the primary work product produced during componentlevel design. 5

WHAT IS A COMPONENT? A component is a modular building block for computer software

WHAT IS A COMPONENT? A component is a modular building block for computer software Unified Modeling Language Specification defines a component as “. . . a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces. ” 6

AN OBJECT-ORIENTED VIEW In the context of object-oriented software engineering, a component contains a

AN OBJECT-ORIENTED VIEW In the context of object-oriented software engineering, a component contains a set of collaborating classes. It may be a single class or a set of classes 7

AN OBJECT-ORIENTED VIEW Each class within a component has been fully elaborated to include

AN OBJECT-ORIENTED VIEW Each class within a component has been fully elaborated to include all attributes and operations that are relevant to its implementation All interfaces that enable the classes to communicate and collaborate with other design classes must also be defined. 8

AN OBJECT-ORIENTED VIEW 9

AN OBJECT-ORIENTED VIEW 9

THE TRADITIONAL VIEW A traditional component, also called a module A component contains processing

THE TRADITIONAL VIEW A traditional component, also called a module A component contains processing logic, the internal data structures interface that enables the component to be invoked and data to be passed to it. 10

THE TRADITIONAL VIEW 11

THE TRADITIONAL VIEW 11

BASIC DESIGN PRINCIPLES The Open-Closed Principle (OCP) “A module [component] should be open for

BASIC DESIGN PRINCIPLES The Open-Closed Principle (OCP) “A module [component] should be open for extension but closed for modification” 12