1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design  implementation.

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
By Philippe Kruchten Rational Software
Design Concepts and Principles
Design Phase What’s design?
Software Requirements Engineering
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Copyright W. Howden1 Lecture 11: UML Terminology and Additional Models and Notation.
Software Architecture and Specification Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga Fall 2010.
Establishing the overall structure of a software system
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 6: Architectural Design
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
Chap 8. Architectural Design
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CSE 303 – Software Design and Architecture LECTURE 4.
CSC480 Software Engineering Lecture 11 September 30, 2002.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
CMSC 345 Fall 2000 Design. What is Design? Verb: The creative process of transforming the problem into the solution Noun: The description of the solution.
Dr.Basem Alkazemi
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Introduction to OOAD and the UML
Lecture 18: Object-Oriented Design
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
CS223: Software Engineering Lecture 13: Software Architecture.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Basic Characteristics of Object-Oriented Systems
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Design Concepts ch-8
Systems Analysis and Design With UML 2
Lecture 9- Design Concepts and Principles
Part 3 Design What does design mean in different fields?
Object Oriented Concepts -I
CIS 375 Bruce R. Maxim UM-Dearborn
Object-Oriented Design
Lecture 9- Design Concepts and Principles
Analysis models and design models
An Introduction to Software Architecture
Design Yaodong Bi.
Introduction to OOAD and the UML
Presentation transcript:

1 Software Design Lecture 09

2 What’s Design It’s a representation of something that is to be built. i.e. design  implementation

3 Example Designs in Real Life Blue Prints for a building architecture - manifests in the actual building A Plan for conducting a workshop - Workshop is executed as per plan Course Syllabus - Course is taught to cover the syllabus

4 Design in Software Engineering Process Design -Design for the process of carrying out software development. Product Design - Design of the product to be built

5 Examples of Process Design Methodology Selection Project Planning/ Execution Plans Process & Documentation Standards Resource allocation charts Quality and Reliability methods

6 What is covered in Product Design? Product Architecture Subsystems, Interconnections Modules, Packages and Libraries Components and Classes

7 What is covered in Product Design? Files and Executable Binaries Functions, Data Structures and Algorithms Tables Interfaces

8 What is covered in Product Design? Concurrency, Parallelism and Distribution Networking, Security Architecture…..

9 From Analysis to Design Analysis produces analysis model such as –Entity Relationship Model –Dataflow Model –Use Case Model Design models are built from the analysis models Design Models then easily map to actual implementation of the software

10 Factors to be considered in design Does it meet the functional specification first of all? Is it complete? How close is the design to the problem domain Is it best possible design from performance point of view within given constraints?

11 Factors to be considered in design Is the analysis model traceable into the corresponding design model? Is the seamlessness? Is there reuse? Is it well-structured?

12 Factors to be considered in design Is it evolvable ? Is it well documented? –No dark matter in software Has it been reviewed?

13 Process of Complex System Design Decomposition (Partitioning) –Split the system into many components –Separation of concerns Composition (coupling) –Connect the components and let them collaborate to achieve the system’s overall functionality.

14 Top-Down Vs. Bottom-up Approach Start from Higher levels and decompose downwards identifying connections / collaborations at every stage. Start from lower modules and then compose them upwards. Or even Iterate upwards and downwards for refinements

15 Decomposition Separate the concerns through modular decomposition Structured Decomposition –Hierarchical Structures Part Whole hierarchy Inheritance hierarchy Instance of hierarchy Focus of attention hierarchy (Zoom)

16 Composition / Interconnections How do modules correspond with each other? –What’s the best way? –How good is a given modular decomposition Different ways of interconnecting –E.g. Peer to peer, Client Server, Specialization, Generalization, aggregation, messaging, signals….

17 Basic Principles to be applied during design Abstraction Encapsulation Refinement Communication

18 Abstraction An external view of a given system To understand the lower level system through abstraction that is easy to comprehend To manipulate a system/operate on a system through an obj interface

19 Example Abstraction Types and Variables Functions Classes and Objects Files and Processes Control Constructs Packages

20 Describing Abstractions Abstract Data types Interfaces Exceptions Messaging Protocols Contracts Preconditions and Post conditions

21 Encapsulation Hiding Lower Layers –Security –Enforces abstraction Examples: Local state within local scope, invisible variables, private member functions

22 Refinement Iterative refinement of a given concept should be easy to achieve without much redo work E.g. A Software Process with revisitable design phase

23 Refinement Inheritance and Refinement Open-Close Principles for components –Implementation is open to refinement –Interface is closed e.g. Next version of a component may b refined w.r.t. implementation, or specialized through inheritance.

24 Refinement Another application of refinement is in zooming (macroscopic Vs. Microscopic model) The microscopic model is a refined model E.g. State diagrams cam be zoomed to blow up a sate into a separate state diagram

25 Refinement Generic description to specific description –Different from inheritance Example: Template class or Generic Packages

26 Refinement and Change Process Change processes are provided to carry out refinements Examples –Inheritance mechanism –Encapsulation and separate compilation enables refinement of implementation –UML support for hierarchical state diagrams for microscopic refinements

27 Communication Different kinds of interconnection –Also called connectors –For the components to collaborate and solve a common problem of the system Interclass connectors (pointers, references), inter-process connectors (sockets, proxies), inter-machine connectors (TCP/IP, Internet)

28 Other kinds of communication Shared memories/black boards Synchronization –Message Queues –Monitors –Signals and actions Filters and Pipes

29 Summary What’s Design? Some example designs Analysis is to be converted into design Factors to be considered during design Top-Down Process of design Basic Principles to be applied during design