SOFTWARE DESIGN AND ARCHITECTURE

Slides:



Advertisements
Similar presentations
Revealing the Secrets of Self-Documenting Code Svetlin Nakov Telerik Corporation For C# Developers.
Advertisements

Lecture 6: Software Design (Part I)
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
4. Object-Oriented Programming Procedural programming Structs and objects Object-oriented programming Concepts and terminology Related keywords.
1 OBJECT-ORIENTED CONCEPTS. 2 What is an object?  An object is a software entity that mirrors the real world in some way.  A software object in OOP.
Chapter 13 Design Concepts and Principles
An Introduction to Programming and Object Oriented Design using Java 2 nd Edition. May 2004 Jaime Niño Frederick Hosch Chapter 0 : Introduction to Object.
Classes & Objects Computer Science I Last updated 9/30/10.
Concepts of Systems Theory
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Data Abstraction: The Walls
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
1 CSc 131 Computer Software Engineering Fall 2012 Lecture # 7 Object-Oriented Design & UML Class Models.
Introduction to Object-oriented programming and software development Lecture 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
Object Oriented Programming Key Features of OO Approach Data encapsulation –data and methods are contained in a single unit, object –promotes internal.
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
© S Ramakrishnan, Monash University oops1.ppt 1 Object-Oriented Programming Systems SFT3021 Semester Lecturer: Sita Ramakrishnan
Object-Oriented Programming (OOP) CSC-2071 (3+1=4 Credits) Lecture No. 1 MBY.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
GRASP: Designing Objects with Responsibilities
1 Class Diagrams: Advanced Concepts. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are the most commonly used diagrams.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Abstraction ADTs, Information Hiding and Encapsulation.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
Chapter 1 Data Abstraction: The Walls CS Data Structures Mehmet H Gunes Modified from authors’ slides.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Object- oriented Design Principles
Basic Characteristics of Object-Oriented Systems
Chapter 11: Abstract Data Types Lecture # 17. Chapter 11 Topics The Concept of Abstraction Advantages of Abstract Data Types Design Issues for Abstract.
CompSci 280 S Introduction to Software Development
Algorithms and Problem Solving
Object-Oriented Modeling
Software Engineering Lecture 4 System Modeling The Analysis Stage.
CHAPTER 5 GENERAL OOP CONCEPTS.
Chapter ? Quality Assessment
Chapter 2 Succeeding as a Systems Analyst
Software Engineering Design
OOP What is problem? Solution? OOP
Object Oriented Concepts -II
Software Quality Engineering
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Abstract descriptions of systems whose requirements are being analysed
object oriented Principles of software design
Software Modules in Software Design
Perspectives on the Unified Modeling Language semantics
CSC 205 – Java Programming II
John D. McGregor C8 - Tactics
UML Diagrams: The Static Model Class Diagrams
Software Engineering Lecture #9.
DESIGNING YOUR SYSTEM.
Chapter 0 : Introduction to Object Oriented Design
Software Design and Architecture
PPT6: Object-oriented design
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
The Object Paradigm Classes – Templates for creating objects
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Presentation transcript:

SOFTWARE DESIGN AND ARCHITECTURE LECTURE#2

DESIGN PRICIPLES ABSTRACTION ENCAPSULATION DECOMPOSITION GENERALIZATION

ABSTRACTION Abstraction breaks a concept down into a simplified description that ignores unimportant details and emphasizes the essentials needed for the concept, within some context. Rule of astonishment Choose abstraction that is more appropriate to the context If situation changes, Reconsider your abstractions.

Encapsulation The ability to “bundle” attribute values (or data) and behaviours (or functions) that manipulate those values, into a self-contained object. The ability to “expose” certain data and functions of that object, which can be accessed from other objects, usually through an interface The ability to “restrict” access to certain data and functions to only within the object.

Data and functions that manipulate that data are “bundled” into a self-contained object. Data and functions of the object can be exposed or made accessible from other objects. Data and functions of the object can be restricted to only within the object

Decomposition It consists of taking a whole thing, and dividing it into different parts. The general rule for decomposition is to look at the different responsibilities of a whole and evaluate how the whole can be separated into parts that each have a specific responsibility “Lifetimes” of whole and part classes should be well defined.

Decomposition Three types of relationship in decomposition Association Aggregation Composition

Generalization Generalization helps reduce redundancy when solving problems. In coding, algorithmic behaviors are often modelled through methods object-oriented modelling achieves generalization by classes through inheritance

Design Principles(cont’d) Evaluating Design Complexity Design complexity applies t both classes and methods Metrics for complexity is Coupling Cohesion