Software Design Lecture : 8

Slides:



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

Chapter 13 Review Questions
Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
Understanding Networked Applications: A First Course Midterm one review by David G. Messerschmitt.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
SWE Introduction to Software Engineering
Oct. 9, 2003CS WPI1 CS 509 Design of Software Systems Lecture #6 Thursday, Oct. 9, 2003.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Design Fundamentals Design Principles
CSE 303 – Software Design and Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Coupling and Cohesion Source:
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Architectural Design Identifying system components and their interfaces.
Cohesion and Coupling CS 4311
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.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Software Design Process
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Lecture 18: Object-Oriented Design
1 Introduction to Design. 2 Outline Basics of design Design approaches.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
CS223: Software Engineering Lecture 14: Architectural Patterns.
BTS430 Systems Analysis and Design using UML
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
Software Design.
7. Modular and structured design
CompSci 280 S Introduction to Software Development
Metrics of Software Quality
Coupling and Cohesion Rajni Bhalla.
CS 325: Software Engineering
Coupling and Cohesion 1.
IS301 – Software Engineering Dept of Computer Information Systems
Lecture 9- Design Concepts and Principles
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Software Design and Architecture
Software Design Mr. Manoj Kumar Kar.
Part 3 Design What does design mean in different fields?
Software Quality Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Improving the Design “Can the design be better?”
Software Engineering Lecture #8.
CS223: Software Engineering
Software Architecture
Lecture 9- Design Concepts and Principles
Starting Design: Logical Architecture and UML Package Diagrams
Software Design Lecture : 9.
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Cohesion and Coupling.
Software Design Lecture : 6
Presentation transcript:

Software Design Lecture : 8 00.26-00.32

02.11-02.40

Complete Each component has all relevant features within the abstraction; a general interface can be reused. 03.02-03.20

Plausible The decomposition of modules can be easily and intuitively be understood Complexity is not a criteria for a good software design. 07.00-07.04,07.28-07.31,07.39-07.43

Homogeneous All the layers / subsystems should focus in same problem set. Example: While calculating the annual interest on savings bank should not include details about customer Education!!! 09.29-09.32,09.50-10.03,10.07-10.27,10.50-10.57

3-Tier Architecture Presentation Layer Business Logic Data Layer 11.45-11.56,12.15-12.32,14.00-14.06,15.44-14.52,16.36-16.40 Data Layer

Focused Separation of concerns Principle Decomposition according to the responsibilities within the system Components working on different tasks should be separated 22.06-22.12,22.33-22.40,23.46-23.54

Separation of Concern Separation of concerns is a recognition of the need for human beings to work within a limited context The important factor is minimization of interaction points to achieve high cohesion and low coupling 25.39-25.54,27.16-27.46

Example of Separation of Concern Web Content Management HTML represents abstract structure of the document over the internet. CSS is used to separate data from style Two separate files are maintained i-e one for Data (HTML) and other for style (CSS) 28.20-28.30,29.56-30.02,31.20-31.50,32.02-32.08

Loosely coupled / Highly Cohesive Coupling This refers to how many dependencies there are between modules and the nature of the links.  A module which is highly coupled means that it has to use many other modules for its own functionality to work. 33.37-33.49,35.00-35.22,

Coupling: Degree of dependence among components Loosely coupled-some dependencies No dependencies High coupling makes modifying parts of the system difficult, e.g., modifying a component affects all the components to which the component is connected. 35.42-36.58 Highly coupled-many dependencies

Desired Coupling The Components should “Loosely Coupled” Loose Coupling promotes “Separation of concern” 38.58-39.10,39.18-39.28

Coupling Example For example, if both component A and B need to access a database, it would be sensible to put the functionality to handle a database in a single module and allow A and B to use it, rather than building in that functionality to both A and B. 40.00-40.20

Range of Coupling High Coupling Content Common Control Stamp Data Uncoupled Loose 42.12-43.02 Low

Content coupling – Highest Coupling Component directly modifies another’s data Component refers to local data of another component in terms of numerical displacement 45.12-45.22,45.20-45.43,46.48-47.04,

Example of Content Coupling-1 Part of program handles lookup for customer. When customer not found, component adds customer by directly modifying the contents of the data structure containing customer data. 48.03-49.13

Example of Content Coupling-2 Part of program handles lookup for customer. When customer not found, component adds customer by directly modifying the contents of the data structure containing customer data. Improvement: When customer not found, component calls the Add Customer() method that is responsible for maintaining customer data rather than directly modifying data structure. 52.50-53.20