Ch4: Software Architecture and Design. 1 Modules: Interface vs. Implementation (contd..)  Interface design considerations:

Slides:



Advertisements
Similar presentations
Lilian Blot Announcements Teaching Evaluation Form week 9 practical session Formative Assessment week 10 during usual practical sessions group 1 Friday.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 12 Separate Compilation and Namespaces. Abstract Data Type (ADT) ADT: A data type consisting of data and their behavior. The abstraction is that.
Modules Program is built out of components. Each component defines a set of logically related entities (strong internal coupling) A component has a public.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Programming Logic and Design Fourth Edition, Introductory
Abstract Data Types Data abstraction, or abstract data types, is a programming methodology where one defines not only the data structure to be used, but.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Ch4: Software Architecture and Design. 1 What is a design?
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
CS 104 Introduction to Computer Science and Graphics Problems Operating Systems (4) File Management & Input/Out Systems 10/14/2008 Yang Song (Prepared.
Chair of Software Engineering ATOT - Lecture 3, 7 April Advanced Topics in Object Technology Bertrand Meyer.
1 Pertemuan 6 The structure part of object data model (Lanjutan) Matakuliah: M0174/OBJECT ORIENTED DATABASE Tahun: 2005 Versi: 1/0.
Lecture 9 Concepts of Programming Languages
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
What is design? Provides structure to any artifact Decomposes system into parts, assigns responsibilities, ensures that parts fit together to achieve a.
Object Oriented Data Structures
Systems Analysis and Design in a Changing World, Fifth Edition
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Ch. 41 Design and Software Architecture. Ch. 42 Outline What is design How can a system be decomposed into modules What is a module’s interface What are.
Modularity Lecture 4 Course Name: High Level Programming Language Year : 2010.
File Systems (1). Readings r Reading: Disks, disk scheduling (3.7 of textbook; “How Stuff Works”) r Reading: File System Implementation ( of textbook)
Data Structure & File Systems Hun Myoung Park, Ph.D., Public Management and Policy Analysis Program Graduate School of International Relations International.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Object-Oriented Paradigm and UML1 Introduction to the Object- Oriented Paradigm.
Processes Introduction to Operating Systems: Module 3.
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.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Data Abstaraction Chapter 10.
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.
Software Design Process
Abstraction ADTs, Information Hiding and Encapsulation.
Chapter 10, Slide 1 ABSTRACT DATA TYPES Based on the fundamental concept of ABSTRACTION:  process abstraction  data abstraction Both provide:  information.
Views of Data Data – nouns of programming world the objects that are manipulated information that is processed Humans like to group information Classes,
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 10: Classes and Data Abstraction. Objectives In this chapter, you will: Learn about classes Learn about private, protected, and public members.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Chapter 12 Abstract Data Type. Understand the concept of an abstract data type (ADT). Understand the concept of a linear list as well as its operations.
Object Oriented Programming & Design - Abstraction Lecture 2 John Anthony RPI - Adjunct Assistant Professor Department of Engineering and Science.
COP3530 Data Structures300 Data Abstraction: The Walls Abstract Data Types (ADT) Specifying ADTs –The ADT List –The ADT Sorted List –Designing an ADT Implementation.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Chapter 10: Classes and Data Abstraction. Classes Object-oriented design (OOD): a problem solving methodology Objects: components of a solution Class:
Chapter 2 Principles of Programming and Software Engineering.
CSC 243 – Java Programming, Spring, 2014 Week 4, Interfaces, Derived Classes, and Abstract Classes.
RealTimeSystems Lab Jong-Koo, Lim
CSC 243 – Java Programming, Fall, 2008 Tuesday, September 30, end of week 5, Interfaces, Derived Classes, and Abstract Classes.
Principles of Programming & Software Engineering
Chapter 0: Introduction
Main issues: • What do we want to build • How do we write this down
Abstract Data Types and Encapsulation Concepts
ABSTRACT DATA TYPES Based on the fundamental concept of ABSTRACTION:
Software Design.
11.1 The Concept of Abstraction
About the Presentations
Lecture 9 Concepts of Programming Languages
Abstract Data Types and Encapsulation Concepts
Stack ADT & Modularity 2 implementations of the Stack abstract data type: Array Linked List Program design: modularity, abstraction and information hiding.
Abstract Data Types and Encapsulation Concepts
Review CSE116 2/21/2019 B.Ramamurthy.
Introduction to Data Structure
Programming Languages and Paradigms
Lecture 9 Concepts of Programming Languages
Presentation transcript:

Ch4: Software Architecture and Design

1 Modules: Interface vs. Implementation (contd..)  Interface design considerations:

2 Module: Interface vs. Implementation (contd..) Symbol table GET(Varname) returns (int,POS) PUT(Varname,value) returns POS CREATE(Varname,size) Retrieve value Store new value New entry creation size = #of entries it represents

3 Module: Interface vs. Implementation (contd..)  Module symbol table hides:

4 Modules: Interface vs. implementation (contd..)  Support for prototyping:

5 Modules: Interface vs. Implementation (contd..)  Separation of interface and implementation supports information hiding:

6 Modules: Interface vs. Implementation (contd..)  Secrets that may be hidden in the module:  How the algorithm works (quicksort, bubble sort, etc.)  Data formats (Binary, ASCII, etc.)  Data structure (linked list, array etc.)  User interfaces (AWT)  Texts (language specific grammars, spellings, etc.)  Details of interfacing with input/output devices

7 Modules: Interface vs. Implementation (contd..) openFile() closeFile() readFile() File I/O module Unix O/SAIX O/SWindows O/S

8 Advantages of modular designs

9 Properties of modular designs  Cohesion:  Coupling:

10 Top-down design strategy General Specific

11 Bottom-up design strategy Pieces Compose

12 Top-down vs. bottom-up design strategy  Which choice is better?  How should documentation be structured?

13 IS_COMPONENT_OF revisited M 1 M M M M MM M M 3 M M MM M M 2 M 3 M 4 M 1 (IS_COMPONENT_OF) (COMPRISES) What design strategy do the relations IS_COMPONENT_OF & COMPRISES depict?

14 Design notation  Why do we need a design notation?  What are the different types of design notation?

15 Textual Design Notation (TDN)  Textual design notation loosely based on Ada  Interface description  Module may export:  Comments are used to describe

16 TDN (contd..)

17 TDN (contd..)  Uses  Implementation  An entity E exported by module M is denoted by M.E

18 TDN (contd..) R T YX X Export section: Consistency and completeness analysis:

19 Graphical design notation (GDN) Graphical notation: Y Z Module X A B R T C B

20 Categories of modules  Advantages of categorization into modules:  Categories of modules:

21 Categories of modules: Standard categories  Functional modules:  Libraries:  Common pools of data:

22 Categories of modules (contd..)  Abstract objects  Abstract data types

23 Abstract objects  What is an abstract object:  Difference between an abstract object and a library module:

24 Abstract objects  Example of an abstract object: stack

25 Abstract objects (contd..) Public Interface User PUSH POP TOP EMPTY Private Implementation Designer Head: Int; ST: Array[100] of Int; Push(X Int) … End; Int Pop() … End; TOP PUSH ST

26 Motivating ADTs  All built in types are ADTs  Use of ADTs:

27 Motivating ADTs (contd..)  Applications may require multiple abstract objects of one “type”.  Abstract data types (ADTs) introduced to address these issues.

28 ADT definition

29 ADT examples  Set:  Multiset:  Sequence:  Graph:

30 Abstract data types: Stack example Stack ADT indicates that details of the data structure are hidden to clients

31 Abstract objects vs. ADTs O K O K T H I S G O I S O D Module object Single instance Has state Multiple instances ADT has no state Stack S1, S2, S3; STACK of chars STACK

32 Abstract data types: Summary  Proposed by B. Liskov (MIT) in 1975  Abstract data type:  ADTs and OO