Introduction to Software Engineering Lecture 8 André van der Hoek.

Slides:



Advertisements
Similar presentations
Design Concepts and Principles
Advertisements

Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Introduction to Software Engineering Lecture 4 André van der Hoek.
© Copyright 2011 John Wiley & Sons, Inc.
© 2009 University of California, Irvine – André van der Hoek1June 10, 2015 – 18:31:15 Informatics 122 Software Design II Lecture 2 André van der Hoek &
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
(c) 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 21:42:16 Informatics 122 Software Design II Lecture 8 André van der Hoek.
Introduction to Software Engineering Lecture 7 André van der Hoek.
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &
Introduction to Software Engineering Lecture 6 André van der Hoek.
Ch4: Software Architecture and Design. 1 What is a design?
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Oct. 9, 2003CS WPI1 CS 509 Design of Software Systems Lecture #6 Thursday, Oct. 9, 2003.
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
PVK-Ht061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
Midterm ReviewSummer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Midterm Review Partially.
(c) 2010 University of California, Irvine – André van der Hoek1June 29, 2015 – 08:55:05 Informatics 122 Software Design II Lecture 8 André van der Hoek.
PVK-Ht051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
(c) 2010 University of California, Irvine – André van der Hoek1July 16, 2015 – 13:45:31 Informatics 122 Software Design II Lecture 8 Nick Lopez Duplication.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 3 Partially based on lecture notes written by.
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
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
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
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.
+ Informatics 122 Software Design II Lecture 6 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Systems analysis and design, 6th edition Dennis, wixom, and roth
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
Dr.Basem Alkazemi
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Lecture 18: Object-Oriented Design
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Topic 8Summer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 8 Partially based on lecture.
Design. Practices Principles Patterns What are the characteristics of good design? What are good solutions to common design problems? How do we go about.
11 Software Design CSCU 411 Software Engineering.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Lecture VIII: Software Architecture
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Design Concepts ch-8
Chapter 1: Software design
Software Design.
Lecture 9- Design Concepts and Principles
Software Design and Architecture
SOFTWARE DESIGN AND ARCHITECTURE
Chapter 13 Logical Architecture.
Chapter 19: Interfaces and Components
Informatics 122 Software Design II
Informatics 122 Software Design II
Lecture 9- Design Concepts and Principles
Chapter 13 Logical Architecture.
CSE403 Software Engineering Autumn 2000 Design (Overview)
Software Design Lecture : 8
Software Design and Architecture
An Introduction to Software Architecture
Chapter 19: Interfaces and Components
Chapter 19: Interfaces and Components
Informatics 122 Software Design II
Informatics 122 Software Design II
Chapter 8, Design Patterns Introduction
Interfaces and Components
Software Design Lecture : 6
Chapter 19: Interfaces and Components
Presentation transcript:

Introduction to Software Engineering Lecture 8 André van der Hoek

Today’s Lecture USES relation IS-COMPOSED-OF relation COMPRISES diagram USES diagram

In Design, We Can Do Anything… Provided Interface Big Component Required Interface Provided Interface Tiny Component Required Interface Provided Interface B Component Required Interface Provided Interface Mr. Component Required Interface Provided Interface A Component Required Interface Provided Interface Yet Component Required Interface Provided Interface Some Component Required Interface Provided Interface One Component Required Interface Provided Interface Mrs. Component Required Interface

…Even when Restricted by Style What happened here? Provided Interface Layer 4 Required Interface Provided Interface Layer 3 Required Interface Provided Interface Layer 2 Required Interface Provided Interface Layer 1 Required Interface

Fan-in and Fan-out High fan-in Low fan-out Low fan-in High fan-out USUALLY GOOD!USUALLY BAD! Provided Interface Component Required Interface Provided Interface Component Required Interface

USES Relation Definition Level 0: those modules that do not use any other modules Level i: those modules that use at least one module at level i – 1 and use no modules at level i or greater Use Determine flexibility Determine reuse Determine incremental testability

Example Level 2 Level 1 Level 0 Provided Interface Big Component Required Interface Provided Interface A Component Required Interface Provided Interface Tiny Component Required Interface Provided Interface Yet Component Required Interface

Observations The USES relation does not necessarily form a hierarchy An acyclic directed graph is good Cycles generally are bad Indication of high coupling Indication of broken separation of concerns Rules of thumb: allow a to use b… …if it makes a simpler …if b is not only used by a but also by other components

IS-COMPONENT-OF Relation Definition Module M i IS-COMPONENT-OF module M if M is realized by aggregating several modules, one of which is M i The combined set of all modules that exhibit the IS-COMPONENT-OF relation with respect to module M are said to implement module M Use Determine hierarchical decomposition of a component in its subcomponents Abstract details

Example Compressor IS-COMPONENT-OF Audio Encoder Encoder IS-COMPONENT-OF Audio Encoder Reader IS-COMPONENT-OF Audio Encoder Compressor, Encoder, and Reader IMPLEMENT Audio Encoder Audio Encoder IS-COMPOSED-OF Compressor, Encoder, and Reader Provided Interface Audio Encoder Required Interface Compressor Provided Interface EncoderReader Required Interface

Comprises Diagram Provided Interface Yet Component Required Interface Provided Interface Tiny Component Required Interface Provided Interface B Component Required Interface Provided Interface Mr. Component Required Interface Provided Interface Required Interface Provided Interface Big Component Required Interface Provided Interface A Component Required Interface Provided Interface Required Interface Bla Component Duh Component Doh Component

USES Diagram – Step 1 Provided Interface Yet Component Required InterfaceProvided Interface Tiny Component Required Interface Provided Interface B Component Required Interface Provided Interface Mr. Component Required Interface Provided Interface Required Interface Provided Interface Big Component Required Interface Provided Interface A Component Required Interface Provided Interface Duh Component Doh Component

USES Diagram – Step 2 Provided Interface Yet Component Required Interface Provided Interface Tiny Component Required Interface Provided Interface B Component Required Interface Provided Interface Mr. Component Required Interface Provided Interface Big Component Required Interface Provided Interface A Component Required Interface

USES Diagram – Step 3 Provided Interface Yet Component Required Interface Provided Interface Tiny Component Required Interface Provided Interface B Component Required Interface Provided Interface Mr. Component Required Interface Provided Interface Big Component Required Interface Provided Interface A Component Required Interface

USES Diagram – Step 4 Provided Interface Yet Component Required Interface Provided Interface Tiny Component Required Interface Provided Interface B Component Required Interface Provided Interface Mr. Component Required Interface Provided Interface Big Component Required Interface Provided Interface A Component Required Interface

Observations Why do we identify higher-level modules in the first place? Understanding Abstraction through composition IS-COMPONENT-OF is not is-attribute-of is-inside-of-on-the-screen is-subclass-of is-accessed-through-the-menu-of

The Design Process Repeat the design process Design the internal architecture of a component Define the purpose of each module Define the provided interface of each module Define the required interface of each module Do this over and over again Until each module has… …a simple, well-defined internal architecture …a simple, well-defined purpose …a simple, well-defined provided interface …a simple, well-defined required interface Until all modules “hook up”

Techniques to Use Tools of the trade Apply information hiding Use requirements specification Determine usage patterns Anticipate change Design for generality/incrementality Design for program families Strive for Low coupling/high cohesion A clean IS-COMPOSED-OF structure A clean USES structure

Your Tasks 1. Read and study slides of this lecture