Presenter: Dong hyun Park

Similar documents
10조 이호진 이지 호

Unit 1 Introduction to Software Engineering

CHAPTER 9 DESIGN ENGINEERING. Overview

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

What is Software Architecture

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Architectural Blueprint

Software Architectures. Lecture 6 (part 1)

Software Architectures

09. Component-Level Design

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

WHAT IS SOFTWARE ARCHITECTURE?

Software Architecture. Lecture 5

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity

Software Architecture and Design I

UNIT-I Introduction of Object Oriented Modeling

Chapter 1: Principles of Programming and Software Engineering

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Chapter 1: Programming Principles

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

Darshan Institute of Engineering & Technology for Diploma Studies

Object Oriented Analysis and Design - Part2(Design)

Element: Relations: Topology: no constraints.

UNIT III. Software Design

Ch 1: The Architecture Business Cycle

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

CASE TOOLS LAB VIVA QUESTION

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

Software Architecture

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

Architectural Decomposition & Representations Reid Holmes

Software Architecture

Responsibilities. Using several specific design principles to guide OO design decisions.

Minsoo Ryu. College of Information and Communications Hanyang University.

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Software Design Report

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Topic : Object Oriented Design Principles

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

Chapter : Analysis Modeling

Object-Oriented Design

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

Architectural Design

Managing Change and Complexity

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Lecture 16: (Architecture IV)

Recalling the definition of design as set of models let's consider the modeling of some real software.

Software Reuse and Component-Based Software Engineering

Chapter 8: Class and Method Design

The Analysis and Design of the Object-oriented System Li Xin 1, a

Business Process Modelling

Systems Analysis and Design in a Changing World, Fourth Edition

Software Architecture

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

1 Executive Overview The Benefits and Objectives of BPDM

Lecture 2: Software Engineering (a review)

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Design Patterns. An introduction

Architectural Decomposition Reid Holmes

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Appendix A - Glossary(of OO software term s)

Coordination Patterns

Quality-Driven Architecture Design Method

Software Service Engineering

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

COMP 6471 Software Design Methodologies

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Best Practices for Model-Based Systems Engineering

Chapter 6 Architectural Design. Chapter 6 Architectural design

Software Engineering (CSC 4350/6350) Rao Casturi

Creating and Analyzing Software Architecture

Ch 1: The Architecture Business Cycle

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

SDC Design patterns GoF

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Designing Component-Based Architectures with Rational Rose RealTime

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Architectural Design

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Lecture 8: Chapter 8!

Architecture and Design Evolution

UNIT III DESIGN CONCEPTS AND PRINCIPLES

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam

Requirements and Design Overview

Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

Object-Oriented Design

CS487 Midterm Exam Summer 2005

Transcription:

Presenter: 200412325 Dong hyun Park

Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components to a level of detail that enables their construction Blueprint of the solution to be implemented Usually not unique

DeMarco s terminology: Decomposition design ( D design ): mapping of a system into its component pieces Family Pattern design (FP Design): goal is to establish exploitable commonalities over a family of systems Not covered: User Interface design, Invention design (I design): a conceptualization of a system to satisfy discovered needs and constraints

Design key concepts Goals Constraints Alternatives Representations Solutions

Software design is bounded to: Requirement analysis Construction (coding and unit testing) Integration and qualification testing Linear or Incremental life cycle models

Software architectural design Software detailed design

Definition of software architecture: The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and principles guiding its design and evolution. Reuse of generic design knowledge: Architectural Styles Design Patterns Product Lines

Key purpose of software architecture is communication among stakeholders Design View: A collection of models that represent an aspect of an entire system. Represent a partial aspect of software architecture that shows specific properties of a software system Overall organization at o of an SDD is composed posedof anumber of design views each of which contains a subset of the various attributes describing design entities View model by IEEE: Decomposition, Dependency, Interface, detailed description 4+1 view model by RUP: Logical, Implementation, Process,Deployment,Use case

Views can be classified into 3 categories called Viewtypes: Module viewtype Component and connector viewtype Allocation viewtype Software architecture is a multifaceted artifact produced by the design process and composed of a set of relatively independent and orthogonal views

A pattern is a common solution to a common problem in a given context Goal is to codify and document recurring solutions to typical problems Attributes to ensure transferability: Pattern name The context in which the pattern may apply Example illustrating need Essence of the general problem Underlying solution Implementation guidelines Related patterns Advantages and disadvantages

Pattern Classification based on scope and level of abstraction: act Architectural Styles Design Patterns Coding Idioms ( part of software construction not explained in this paper)

An architectural style expresses a fundamental structural organization schema for software systems. It provides a rich set of predefined subsystems, specifies their responsibilities, and includes rules and guideline for organizing the relationship between them Major Architectural Styles: General structure Distributed systems Interactive ti systems Adaptable systems Other Styles Choice depends on quality attributes that must be satisfied. Heterogeneous Choice depends on quality attributes that must be satisfied. Heterogeneous styles are possible.

Gamma et al. : Creational patterns Structural patterns Behavioral patterns Buschmann et al. : Structural decomposition patterns Organization of work patterns Access control patterns Management patterns Communication patterns

Based on software product lines and software components Software production line : A collection of systems sharing a managed set of features constructed from a common set of core software asset Building a common set of software assets involves identifying the key commonalities encountered among the various members of the possible family of product done through hdomain analysis as well as accounting for their possible variability done by identifying and defining reusable and customizable components In an object oriented context, a related notion is that of framework, a partially complete software subsystem that can be extended by instantiating specific plug ins or hot spots

Software Quality: The totality of features and characteristics of a software product or service that bear on its ability to satisfy stated or implied needs Properties of Software Quality Functionality Usability Efficiency Maintainability i portability

4.1 Design Quality Attributes Run time qualities Development time qualities Impact of architectural choices Conceptual integrity which concerns the architecture s intrinsic quality : architecture reflects one single set of design ideas leading to simplicity, consistency and elegance 4.2 Measures (quantitative estimates) Depends on selected design approach Function oriented oriented (structured) measures Objected oriented measures 4.3 Quality Analysis and Evaluation Tools Quality attributes are hard to quantify Software design reviews Simulation and prototyping

Budgen categorization: Black box notation : external properties of the elements of a design model White box notation : describing some aspect of the detailed realization of a design element Alternative categorization: Structural/Static properties Behavioral/dynamic i properties 5.1 A selection of Design Notations (UML) Classand and object diagrams Component diagrams Deployment diagrams Structure charts Structure (Jackson) diagrams

52B 5.2 Behavioral ld Descriptions (Dynamic view) Activity diagrams Interaction i diagrams : sequence and collaboration diagrams Data flow diagrams State transition diagrams and statechart diagrams Pseudo code and program design languages (PDLs)

Coherency of the design documentation depends on many aspects: stakeholders, software development methods Key ypractice is selection of an appropriate p set of views which satisfies different stakeholders needs Project manager: detailed allocation views Developer: detailed module and component andconnector views

View documentation ti also involves describing interfaces of the element from that view A key characteristic of any interface specification : must be two way which means what the element provides and what it requires Another key idea: design should be presented and documented in a rational way: the rationale behind the key decisions should also recorded ex. The design alternatives that were considered and rejected should be described

6.1 General Strategies and Enabling Techniques Software design strategies can be described in terms of enabling techniques : independent of specific software development method Abstraction ti Coupling and cohesion Divide and conquer Information hiding and encapsulation Sufficiency

62F 6.2 Function oriented i t d(structured) t Design Divide and conquer approach toward identifying major system function in a top down approach. Structured analysis produces DFDs of the various system functions together with associated process descriptions, that is, descriptions of the processing performed by each subtask, usually using informal Pseudocode. Entity relationship diagrams describing the data stores can also be used. Key strategies to help derive a software architecture from a DFD Transaction analysis: triggers Transformation analysis : identifying the central transform, structure chart Key concept of structured design are those of coupling and cohesion: restrict coupling to normal types: data, stamp, control coupling. Avoid common and contest coupling

Additional Heuristics to improve the quality of resulting design Fan in/fan out: high / low or moderate ( 5 7 7max) Decision splitting (avoid separating them into files) Balanced systems: top level modules deal with logical and abstract data independent d of the implementation format

6.3 Object oriented Design Object based (no inheritance or polymorphism) Vs object oriented design OO design (solution domain) Vs requirement analysis ( problem domain) Class diagrams Vs Integration diagrams (sequence or elaboration diagrams) 6.4 Data structured oriented Design (Jackson Structured Programming) Emphasis is on the data that a program manipulates rather than the functions it performs Motivated by stability in data rather then functions that need to be performed Restricted to the design of data processing programs using sequential ( batch style) files and processes Jackson System Development (JSD) : approach similar il to OOD to address more complex interacting processes

Comprehensive overview which does not get the reader lost Gets the reader motivated to read the following design papers Lack of references to sources that expand on topics