Software Engineering Fall 2014

Similar documents
Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Software Engineering Fall 2014

Software Engineering Fall 2014

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

Chapter 8, Object Design: Reusing Pattern Solutions

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Chapter 8, Object Design: Reuse and Patterns

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 08/27/2015

Chapter 6 System Design: Decomposing the System

Software Engineering

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

May Comp-B 11, Advanced Software Design. 3 hours duration

Inheritance and object compatibility

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

Software Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software

Chapter 5, Analysis: Dynamic Modeling

Object Design II: Design Patterns

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

INTERNAL ASSESSMENT TEST III Answer Schema

Object Design I: Reuse

Design Patterns. An introduction

Chapter 2, Modeling with UML: UML 2 Hightlights

Introduction to Software Engineering. 5. Modeling Objects and Classes

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

Chapter 5, Analysis: Dynamic Modeling

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Fault, Error, and Failure

Goals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming

Chapter 2, Modeling with UML, Part 2

GRASP Design Patterns A.A. 2018/2019

Chapter 11, Testing, Part 2: Integration and System Testing

Chapter 5, Object Modeling

Chapter 8: Class and Method Design

Inheritance (Chapter 7)

Object-Oriented Design

ADVANCED LINK AND ASSOCIATION CONCEPTS

Software Engineering CSC40232: SOFTWARE ENGINEERING. Guest Lecturer: Jin Guo SOLID Principles sarec.nd.edu/courses/se2017

Object Design: Reuse

Chapter 10, Mapping Models to Relational Schema

Lecture Notes on. Object Design. Object Design. Bill Scherlis / Bernd Brügge Software Engineering Fall October November 1999

Unified Modeling Language (UML) Class Diagram

Object Design: Reuse, Part 2

Chapter 5, Analysis: Dynamic Modeling

Foundations of Software Engineering Design Patterns -- Introduction

Object-Oriented Software Engineering Using UML, Patterns, And Java (3rd Edition) By Bernd Bruegge READ ONLINE

Chapter 4 Requirements Elicitation

Chapter 11, Testing, Part 2: Integration and System Testing

Type Hierarchy. Lecture 6: OOP, autumn 2003

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

CSCU9T4: Managing Information

Chapter 7, System Design: Addressing Design Goals

Test Driven Development Building a fortress in a greenfield (or fortifying an existing one) Dr. Hale University of Nebraska at Omaha

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

CS 520 Theory and Practice of Software Engineering Fall 2018

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Study of Component Based Software Engineering

Software Engineering

An end-user s perspective What system? I haven t seen a new system

Requirements Elicitation

EINDHOVEN UNIVERSITY OF TECHNOLOGY

Lecture 13: Design Patterns

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

Chapter 7, System Design: Addressing Design Goals

Department of Computer Science Undergraduate Events

Chapter 5, Analysis: Object Modeling

Pattern Resources. Lecture 25: Design Patterns. What are Patterns? Design Patterns. Pattern Languages of Programming. The Portland Pattern Repository

Chapter 8, Design Patterns Visitor

New Programming Paradigms

Object-Oriented Software Engineering Practical Software Development using UML and Java

Java Object Oriented Design. CSC207 Fall 2014

Index. : (colon), 80 <<>> (guillemets), 34, 56

Principles of Object-Oriented Design

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

Page 1. Dynamic Modeling. How do you find classes? Dynamic Modeling with UML. UML Interaction Diagrams. UML State Chart Diagram.

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1

Conceptual Design with ER Model

A Reconnaissance on Design Patterns

Object-Oriented Software Engineering: Using UML, Patterns And Java (2nd Edition) By Allen H. Dutoit, Bernd Bruegge

Components vs. Objects

Chapter 10 Object-Oriented Design Principles

Introduction to OO Concepts

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Chapter 8: Enhanced ER Model

12 Tutorial on UML. TIMe TIMe Electronic Textbook

Design Engineering. Dr. Marouane Kessentini Department of Computer Science

Chapter 7, System Design: Addressing Design Goals

CHAPTER 9 DESIGN ENGINEERING. Overview

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation

OO Design Principles

Design Patterns. Gunnar Gotshalks A4-1

Appendix A - Glossary(of OO software term s)

Top Down Design vs. Modularization

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli

Advanced JML Erik Poll Radboud University Nijmegen

Transcription:

Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/03/2014

Re Cap - Object Design Close the gap between the application objects and the off-the shelf components. Identify additional solution objects. Refine the existing objects. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 2

Object Design includes (4 Groups of Activities) 1. Reuse (Component Selection) 2. Service Specification 3. Object Model Restructuring 4. Object Model Optimization Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 3

1. Reuse or off-the-shelf components Off-the-Shelf components are identified during system design. Class Libraries and additional components are selected for basic data structures and services. Design patterns are selected for solving common problems. Classes are protected from future changes. Buy-versus-Build trade off Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 4

2. Service Specification The subsystem services identified during the system design are specified in terms of : [Class Interfaces, Operations, arguments, type signatures and exceptions]. Additional operations and objects needed for data transfer among subsystems are identified. The subsystem service specification is also called API (Application Programmer Interface) Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 5

3. Object Model Restructuring In this phase the focus is more on the reuse of the code. Revisit the N-ary Association of classes and see if we can get it to Binary association Look for Merging 2 similar classes, 2 similar subsystems. Attribute merging. Complex class decomposition for simple inheritance. Maintainability, Readability, Understandability Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 6

4. Object Model Optimization This phase addresses the performance requirements of the system model. Efficiency of algorithms, Memory management is a focus. Techniques like simplicity vs multiplicity Rearrange Execution order for efficiency Adding redundancy / derived attributes for speedup. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 7

Solution Objects, Inheritance and Design Patterns Christopher Alexander says, Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it same way ever twice. Objects and interfaces instead of Walls and doors Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 8

Reuse Concepts: (Main Ideas) Solution Objects, Inheritance, and Design Patterns Application Objects and Solution Objects Specification Inheritance and Implementation Inheritance Delegation The Liskov Substitution Principle Delegation and Inheritance in Design Patterns Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 9

Application Objects & Solution Objects During analysis, we identify entity objects and their relationships, attributes, and operations. Most entity objects are application objects that are independent of any specific system. During analysis, we also identify solution objects that are visible to the user, such as boundary and control objects representing forms and transactions defined by the system. During system design, we identify more solution objects in terms of software and hardware platforms. During object design, we refine and detail both application and solution objects and identify additional solution objects needed to bridge the object design gap. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 10

Specification Inheritance and Implementation Inheritance Superclass, Subclass The focus of inheritance during object design is to reduce redundancy and enhance extensibility. By factoring all redundant behavior into a single superclass, we reduce the risk of introducing inconsistencies during changes (e.g., when repairing a defect) since we have to make changes only once for all subclasses By Providing abstract classes interfaces that are used by the application, we can write new specialized behavior by writing new subclasses that comply with the abstract interfaces. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 11

Example: Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 12

Inheritance meta-model (UML class diagram) Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 13

Delegation Delegation is the alternative to implementation inheritance that should be used when reuse is desired. A class is said to delegate to another class if it implements an operation by resending a message to another class. Delegation makes explicit the dependencies between the reused class and the new class. The use of inheritance for the sole purpose of reusing code is called implementation inheritance. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 14

The Liskov Substitution Principle Liskov Substitution Principle If an object of type S can be substituted in all the places where an object of type T is expected, then S is a subtype of T. Interpretation In object design, the Liskov Substitution Principle means that if all classes are subtypes of their superclasses, all inheritance relationships are specification inheritance relationships. In other words, a method written in terms of a superclass T must be able to use instances of any subclass of T without knowing whether the instances are of a subclass. Consequently, new subclasses of T can be added without modifying the methods of T, hence leading to an extensible system. An inheritance relationship that complies with the Liskov Substitution Principle is called strict inheritance. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 15

Design pattern 4 Essential Elements 1. A name that uniquely identifies the pattern from other patterns. 2. A problem description that describes the situations in which the pattern can be used. Problems addressed by design patterns are usually the realization of modifiability and extensibility design goals and nonfunctional requirements. 3. A solution stated as a set of collaborating classes and interfaces. 4. A set of consequences that describes the trade-offs and alternatives to be considered with respect to the design goals being addressed. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 16

Cataloging of the Design Patterns Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 17

Example Adapter Design Pattern Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 18

Example Adapter Design Pattern Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 19

Natural language heuristics for selecting design patterns Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 20

Object Design: Specifying Interfaces The interface specification activities of object design include identifying missing attributes and operations specifying type signatures and visibility specifying invariants specifying preconditions and post conditions. Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 21

Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 22

Questions? Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 23

References Use Cases Combined with BOOCH, OMT UML Process and Products - Putnam P Texel, Charles B Williams Object-Oriented Software Engineering Using UML Patterns, and JAVA -Bernd Bruegge & Allen H. Dutoit Software Engineering 9th Edition - Ian Sommerville Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 24