Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 11 Component-Level Design
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Chapter 25 GRASP: More Objects with Responsibilities 1CS6359 Fall 2011 John Cole.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 11 Component-Level Design
Introduction To System Analysis and design
Design Concepts "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright.
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
Systems Analysis and Design in a Changing World, Fifth Edition
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Chapter 9 Design Engineering
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Unified Modeling Language, Version 2.0
Chapter :11 Component-Level Design
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Systems Analysis and Design in a Changing World, 3rd Edition
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
1 Chapter 11 Component-Level Design. 2 What is a Component? OMG Unified Modeling Language Specification [OMG01] defines a component as “… a modular, deployable,
Computing and SE II Chapter 6: Software Design
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
Elements of OO Abstraction Encapsulation Modularity Hierarchy: Inheritance & Aggregation 4 major/essential elements3 minor/helpful elements Typing Concurrency.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Programming Techniques Lecture 10 Component-Level Design Based on: Software Engineering, A Practitioner’s Approach, 6/e, R.S. Pressman Software Engineering.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Chapter 11 CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Five design principles
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Chapter 14 컴포넌트-수준 설계 Component-Level Design
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
SOLID Design Principles
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : 8 Design Concepts
Basic Characteristics of Object-Oriented Systems
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Requirements Models Representing the Product in Ways Other than Text.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
Design Concepts ch-8
Chapter 14 Component-Level Design
Component-Level Design
Design and Implementation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Quality Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 10 Component-Level Design
Component-Level Design
Component-Level Design
Component-Level Design
Object-Oriented Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Design Tips.
A (partial) blueprint for dealing with change
Some principles for object oriented design
COSC 4406 Software Engineering
Chapter 10 – Component-Level Design
Presentation transcript:

Component Design Elaborating the Design Model

Component Design Translation of the architectural design into a detailed (class-based or module- based) design appropriate for code development Architecture: a.k.a. preliminary design Component: a.k.a. detailed design

Components Defn: modular, deployable, replaceable part of system the encapsulates implementation (function) and exposes an interface OO Design Components are classes (or a package of classes) Nouns within a description of the problem space Conventional Design Components are algorithms (functions) and data structures to support them Types: control, problem domain, infrastructure (also interface) Process (Reuse) View Components are libraries or packages of capability

Design Principles Open-closed Principle: open for extension, closed for modification Liskov Substitution Principle: Derived classes should adhere to conventions of base class Dependency Inversion Principle: Depend on abstractions rather than concretions Interface Segregation Principle: Many specific interfaces are better than one common interface Release Reuse Equivalency Principle: Reuse increases with release support Common Closure Principle: Classes that change together should be packaged together Common Reuse Principle: Classes that are used together should be packaged together

Steps for Component-Level Design Identify design classes in problem domain Identify design classes in infrastructure (support) domain Elaborate design classes (i.e., refine to provide detail) Specify message details between collaborative classes Specify interfaces for components Elaborate class attributes (names and data types) Elaborate operations (including control flow) Describe persistent data sources/sinks Specify infrastructure classes to support data stores Ensure external (user-level) behavior of problem domain classes models requirements Define deployment characteristics (e.g., host environment (h/w, o/s, databases, network constraints), support library versions, deployment mechanism (e.g., install script, zip file) Re-factor design representations considering alternatives

Additional Points of Emphasis We attempt to be systematic in design process and notation to avoid introducing errors in the code (pg 277 7/e, pg 292 6/e) Levels of cohesion (pgs /e, pgs /e) Levels of coupling (pg 289 7/e, pgs /e)