Eliminate enterprise software design instability - protect variations! Nickolay Kofanov
|
|
- Iris Ferguson
- 6 years ago
- Views:
Transcription
1 Eliminate enterprise software design instability - protect variations! Nickolay Kofanov
2 Owning a hammer doesn't make one an architect.
3 Responsibility-Driven-Design The way of thinking about the design of software objects (and also larger-scale components) in terms of responsibilities, roles, and collaborations
4 A critical ability in OO development is to skillfully assign responsibilities to software objects. General Responsibility Assignment Software Patterns grasp these principles to successfully design object-oriented software.
5 2 common patterns that are most often used subconsciously GRASP #1 Creator Question: Who should be responsible for creating a new instance of some class GRASP #2 Information Expert Question: What is a general principle of assigning responsibilities to objects
6 Yin und Yang of software engineering GRASP #3 Low Coupling Question: How to support low dependency, low change impact, and increased reuse? GRASP #4 High Cohesion Question: How to keep objects focused, understandable, and manageable, and as a side effect, support Low Coupling?
7 High Cohesion + Low Coupling = Code Orthogonality The killer combination in components of tightly defined responsibilities together with independence from the wider system
8 Improve coupling? GRASP #5 Indirection Question: Where to assign a responsibility, to avoid direct coupling between two (or more) things? How to de-couple objects so that low coupling is supported and reuse potential remains higher? "Most problems in computer science can be solved by another level of indirection" Improve cohesion? - GRASP #6 Pure Fabrication Question: What object should have the responsibility, when you do not want to violate High Cohesion and Low Coupling, or other goals, but solutions offered by Expert (for example) are not appropriate?
9 Poly(multiple)-morph(form)-ism GRASP #7 Polymorphism Question: How to handle alternatives based on type? How to create pluggable software components?
10 GRASP #8 Controller Question: What first object beyond the UI layer receives and coordinates ("controls") a system operation GRASP Controller!= MVC Controller && ( GRASP Controller instanceof App/Domain service GRASP Controller instanceof Domain Model )
11 GRASP #9 Protected Variation Question: How to design objects, subsystems, and systems so that the variations or instability in these elements does not have an undesirable impact on other elements? Identify points of predicted variation or instability and assign responsibilities to create a stable interface around them. Almost every software or architectural design trick/principle/pattern is a specialization of Protected Variations
12 Simple example uper Delivery! Requirement for the release v1.0: Ukraine only shipment with Requirement for the release v2.0: International shipment with
13 Arrange Delivery Use Case: 1. Create new parcel 2. Send parcel to address 3.
14 Something is wrong here Arrange Delivery Use Case: 1. Create new parcel 2. Send parcel to address 3. Coupling to concrete class
15 Do the right thing (analysis); Do the thing right (design)
16 GoF Adapter Pattern
17 Repetition is the mother of all learning: Almost every software or architectural design trick/principle/pattern is a specialization of Protected Variations
18 Maturation of a developer or architect can be seen in their growing knowledge of ever-wider mechanisms to achieve PV Craig Larman the author of GRASP
19 Data-Driven Design The system is protected from the impact of data by externalizing the variant, reading it in, and reasoning with it.
20 Reflective Design The system is protected from the impact of logic or external code variations by reflective algorithms that use introspection and metalanguage services
21 Uniform Access Principle
22 Interpreter-Driven Design The system is protected from the impact of logic variations by externalizing the logic, reading it in, and using an interpreter.
23 Service Discovery / Lookup System is protected from variations in the location of services, using the stable interface of the lookup service Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface.
24 Liskov Substitution Principle (LSP) LSP formalizes the principle of protection against variations in different implementations of an interface, or subclass extensions of a superclass. CIRCLE What s the relation ship? ELLIPSE The Circle/Ellipse Dilemma Robert C. Martin If your code works with object a of type A it should also work correctly with any object b of type B if B extends (implements) A
25
26 Liskov Substitution Principle violation: Circle is not an Ellipse in software perspective
27 Structure-Hiding Design Law Of Demeter The system is protected from the impact object structure variations. Within a method, messages should only be sent to: 1. this object 2. An attribute of this. 3. An element of a collection which is an attribute of this. 4.A parameter of the method. 5. An object created within the method. when you want a dog to walk, you do not command the dog's legs to walk directly; you command the dog which then commands its own legs
28 Incorrect Correct
29 The farther along a path the program traverses, the more fragile it is Why? because the object structure may change! (especially true in young applications or early iterations)
30 Two points of change: Variation point - variations in the existing, current system or requirements Evolution point - speculative points of variation that may arise in the future, but which are not present in the existing requirements. Protected variations mechanisms are applied to both.
31 2 dangerous software engineer diseases: 1. Pattern-itis 2. Generalize-itis suffix -itis forming names of inflammatory diseases. You aren t going to need it extreme Programming principle
32 Novice developers tend toward brittle designs. Intermediate developers tend toward overly fancy and flexible designs. Expert designers choose with insight Sometimes a simple design whose cost of change is balanced against its likelihood.
33 Links: echo "Thank you!" Error, no keyboard. Press F1 to continue _
GRASP 2. CSC 440: Software Engineering Slide #1
GRASP 2 CSC 440: Software Engineering Slide #1 GRASP Patterns General Responsibility Assignment Software Patterns Describe fundamental principles of object design and responsibility assignment. Five GRASP
More informationObject-Oriented Design II - GRASP
Object-Oriented Design II - GRASP SWEN-610 Foundations of Software Engineering Department of Software Engineering Rochester Institute of Technology Controller Creator Indirection Information expert High
More information2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)
2009 Shawn A. Bohner Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu GRASP II And Furthermore Polymorphism Indirection Pure Fabrication Protected Variations 2
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should
More informationFour More GRASP Principles CSSE 574: Session 5, Part 2
Four More GRASP Principles CSSE 574: Session 5, Part 2 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu GRASP II And Furthermore Polymorphism Indirection
More informationADVANCED SOFTWARE DESIGN LECTURE 7 GRASP
ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP Dave Clarke 1 TODAY S LECTURE We will discuss 7 of the GRASP design patterns cohesion and coupling were covered earlier. These provide principles for evaluating
More informationObject-Oriented Design I
Object-Oriented Design I SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Single responsibility High cohesion Information expert Low coupling
More informationObject-Oriented Design
Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed
More informationGRASP: MORE PATTERNS FOR
Chapter 22 GRASP: MORE PATTERNS FOR ASSIGNING RESPONSIBILITIES Luck is the residue of design. Branch Rickey Objectives Learn to apply the remaining GRASP patterns. Introduction Previously, we explored
More informationObject-Oriented Design II
Object-Oriented Design II SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Controller Pure fabrication Open/close Polymorphism Liskov substitution
More informationLast Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns
Last Time: Object Design Comp435 Object-Oriented Design Week 7 Computer Science PSU HBG The main idea RDD: Responsibility-Driven Design Identify responsibilities Assign them to classes and objects Responsibilities
More informationGRASP Design Patterns A.A. 2018/2019
GRASP Design Patterns A.A. 2018/2019 Objectives Introducing design patterns Introduzione ai design pattern Designing objects and responsibilities GRASP design patterns A long corridor A passage room Does
More informationObject-Oriented Design I - SOLID
Object-Oriented Design I - SOLID SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Single responsibility Open/close Liskov substitution
More information17. GRASP: Designing Objects with Responsibilities
17. GRASP: Designing Objects with Responsibilities Objectives Learn to apply five of the GRASP principles or patterns for OOD. Dr. Ziad Kobti School of Computer Science University of Windsor Understanding
More informationOODP Session 5a. Web Page: Visiting Hours: Tuesday 17:00 to 19:00
OODP Session 5a Next week: Reading week Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk
More informationAvancier Methods. Very basic design patterns. It is illegal to copy, share or show this document
Methods Very basic design patterns It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission of the copyright holder Copyright
More informationOODP OOAD Session 7a
OODP OOAD Session 7a Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk Web Page:
More informationPatterns and Testing
and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3
More informationPART 4 Elaboration Iteration 2 More Patterns
PART 4 Elaboration Iteration 2 More Patterns development cycle iteration phase inc. elaboration construction transition Chapter 22 UML Tools and UML as Blueprint 1 Forward, Reverse, and Round-Trip Engineering
More informationResponsibilities. Using several specific design principles to guide OO design decisions.
Designing Objects with Responsibilities Using several specific design principles to guide OO design decisions. Challenge Old-school advice on OOD After identifying i your requirements and creating a domain
More informationADVANCED SOFTWARE DESIGN LECTURE 4 GRASP. Dave Clarke
ADVANCED SOFTWARE DESIGN LECTURE 4 GRASP Dave Clarke TODAY S LECTURE We will discuss and apply the GRASP design patterns. These provide principles for evaluating and improving designs. friends User Name??
More informationTecniche di Progettazione: Design Patterns
Tecniche di Progettazione: Design Patterns Design principles 1 Plan of the lecture Your state of the art SOLID Grasp (to be continued next week) 2 Short summary of what you must know Few things on design
More informationSoftware Engineering
Software Engineering CSC 331/631 - Spring 2018 Object-Oriented Design Principles Paul Pauca April 10 Design Principles DP1. Identify aspects of the application that vary and separate them from what stays
More informationPrinciples of Software Construction: Objects, Design and Concurrency. Object-Oriented Design: Assigning Responsibilities.
Principles of Software Construction: Objects, Design and Concurrency 15-214 toad Object-Oriented Design: Assigning Responsibilities Christian Kästner Charlie Garrod School of Computer Science With slides
More informationPrinciples of Object-Oriented Design
Principles of Object-Oriented Design 1 The Object-Oriented... Hype What are object-oriented (OO) methods? OO methods provide a set of techniques for analysing, decomposing, and modularising software system
More informationFrom Design Patterns: Elements of Reusable Object Oriented Software. Read the sections corresponding to patterns covered in the following slides.
From Design Patterns: Elements of Reusable Object Oriented Software Read the sections corresponding to patterns covered in the following slides. DESIGN PRINCIPLES Modularity Cohesion Coupling Separation
More informationInformation Expert (or Expert)
Page 2 Page 3 Pattern or Principle? Information Expert (or Expert) Class Responsibility Sale Knows Sale total SalesLineItem Knows line item total ProductDescription Knows product price The GRASP patterns
More informationAbstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles
Abstraction Design fundamentals in OO Systems Tool for abstraction: object Object structure: properties and values for those properties operations to query and update those properties We refer to the collection
More informationSoftware Design and Analysis CSCI 2040
Software Design and Analysis CSCI 2040 Summarize UML Deployment and Component notation. Design a framework with the Template Method, State, and Command patterns. Introduce issues in object-relational (O-R)
More informationObject Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design
Object Analysis & Design in the textbook Chapter 2 Object Oriented Design Process Introduction to GRASP: Assigning Responsibilities to Objects CS 4354 Summer II 2016 Jill Seaman Much of the material in
More informationSoftware Engineering
Software Engineering 5. Software Design und Design Prinzipien Jonathan Brachthäuser Software Engineering Einordnung Problem Continuous Delivery & Feedback Lösung Anforderungsermittlung - (Nicht- )funktionale
More informationCSC7203 : Advanced Object Oriented Development. J Paul Gibson, D311. Design Patterns
CSC7203 : Advanced Object Oriented Development J Paul Gibson, D311 paul.gibson@telecom-sudparis.eu http://www-public.tem-tsp.eu/~gibson/teaching/csc7203/ Design Patterns /~gibson/teaching/csc7203/csc7203-advancedoo-l2.pdf
More informationIntro to: Design Principles
Intro to: Design Principles Pragmatic Programmer: Eliminate Effects Between Unrelated Things design components that are: self-contained, independent, and have a single, well-defined purpose Software Design
More informationChapter 8: Class and Method Design
Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined
More informationOO Design Principles
OO Design Principles Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-10-10 Roman Kern (ISDS, TU Graz) OO Design Principles 2018-10-10 1 /
More informationObject Oriented. Analysis and Design
OODP- OOAD Session 5 Object Oriented Analysis and Design Oded Lachish Department of Computer Science and Information Systems Birkbeck College, University of London Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded
More informationbe used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate
UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,
More informationDesign patterns. Jef De Smedt Beta VZW
Design patterns Jef De Smedt Beta VZW Who Beta VZW www.betavzw.org Association founded in 1993 Computer training for the unemployed Computer training for employees (Cevora/Cefora) 9:00-12:30 13:00-16:00
More informationCOMP 6471 Software Design Methodologies
COMP 647 Software Design Methodologies Fall 20 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-fall20.html Course Introduction Course People Course Components What the course is What the
More informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
More informationSoftware Engineering
Software Engineering 6. Design Patterns Jonathan Brachthäuser Software Engineering Einordnung Problem Continuous Delivery & Feedback Lösung Anforderungsermittlung - (Nicht- )funktionale Anf. - Anwendungsfälle
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationObject Relationships
Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of
More informationIntroduction to Testing and Maintainable code
Introduction to Testing and Maintainable code Reasons not to write unit tests 1. I don't know how to write tests. 2. Writing tests is too hard. 3. I don't have enough time to write tests. 4. Testing is
More informationRequirements and Design Overview
Requirements and Design Overview Robert B. France Colorado State University Robert B. France O-1 Why do we model? Enhance understanding and communication Provide structure for problem solving Furnish abstractions
More information1: Introduction to Object (1)
1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface
More informationHighlights of Previous Lecture
Highlights of Previous Lecture Final Project Goals 1. Set up collections of Flights 2. Maintain information about reservation availability on flights 3. Respond to reservation requests 4. Set up collections
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More information2 GRASP Patterns and basic OO Design. Roel Wuyts OASS
2 GRASP Patterns and basic OO Design Roel Wuyts OASS1 2009-2010 Patterns 2 Bit of history... Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN
More informationStudy About the Relationship Between the Model-View-Controller Pattern and Usability
Study About the Relationship Between the Model-View-Controller Pattern and Usability Author: Diogo Satoru Aihara Advisors: Xavier Ferré Grau Richard Torkar European Master on Software Engineering This
More informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More informationAssigning Responsibilities
Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub-)Systems) Assigning Responsibilities Christian Kästner Bogdan Vasilescu School of Computer Science 1 2 2 Learning
More informationSoftware Design and Analysis CSCI 2040
Software Design and Analysis CSCI 2040 Introduce a logical architecture using layers Illustrate the logical architecture with UML Package Diagrams 2 Where the class Register should be? 4 Where class Register
More informationApplying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3
Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Gang of Four (GoF) http://www.research.ibm.com/designpatterns/pubs/ddj-eip-award.htm
More informationPrinciples of Software Construction: Objects, Design, and Concurrency. Assigning Responsibilities to Objects. toad. Jonathan Aldrich Charlie Garrod
Principles of Software Construction: Objects, Design, and Concurrency Assigning Responsibilities to Objects toad Fall 2014 Jonathan Aldrich Charlie Garrod School of Computer Science Key concepts from Thursday
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Software quality and Object Oriented Principles
Ingegneria del Software Corso di Laurea in Informatica per il Management Software quality and Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal
More information17.11 Bean Rules persistent
17.10 Java Beans Java beans are a framework for creating components in Java. AWT and Swing packages are built within this framework Made to fit in with graphic development environments such as Jbuilder
More informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationReferences: Applying UML and patterns Craig Larman
References: Applying UML and patterns Craig Larman 1 2 What are patterns? Principles and solutions codified in a structured format describing a problem and a solution A named problem/solution pair that
More informationIndex. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107
A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105
More informationPrinciples of Object-Oriented Design
Principles of Object-Oriented Design Part II 1 The Law of Demeter Any object receiving a message in a given method must be one of a restricted set of objects. 1. Strict Form: Every supplier class or object
More informationExam in TDDB84: Design Patterns,
Exam in TDDB84: Design Patterns, 2014-10-24 14-18 Information Observe the following, or risk subtraction of points: 1) Write only the answer to one task on one sheet. Use only the front side of the sheets
More informationArchitectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8)
Architectural Code Analysis Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Agenda Intro to Structural Analysis Challenges addressed during traditional software development The new world
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationDesign Patterns. Paul Jackson. School of Informatics University of Edinburgh
Design Patterns Paul Jackson School of Informatics University of Edinburgh Design Patterns Reuse of good ideas A pattern is a named, well understood good solution to a common problem. Experienced designers
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the
More informationDesign Patterns V Structural Design Patterns, 2
Structural Design Patterns, 2 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Department of Computer Science The Australian National University 19.1 1 2 Formal 3 Formal 4 Formal
More informationRecap: CRC Cards Process
Com S 362: Object-Oriented Analysis and Design Recap: CRC Cards Process 1. Initial class list 2. Refined class list 3. while More use case scenarios left) 4. do 5. Take a use case scenario 6. Assign responsibilities
More informationSoftware Design And Modeling BE 2015 (w. e. f Academic Year )
Software Design And Modeling BE 2015 (w. e. f Academic Year 2018-2019) 1 The Team Prof. Ravi Patki, I 2 IT Hinjawadi Pune Prof. Sangita Jaibhaiye SCOE Prof. D.D.Londhe PICT Prof. P. A. Joshi, ZCOER 2 The
More informationLessons Learned. Johnny Bigert, Ph.D., Skype/Microsoft October 26, 2011
Lessons Learned Johnny Bigert, Ph.D., Skype/Microsoft johnny.bigert@skype.net October 26, 2011 Why do we do the things we do? Software Development Object-orientation, design principles, timeboxing, teams,
More informationCSC207H: Software Design SOLID. CSC207 Winter 2018
SOLID CSC207 Winter 2018 1 SOLID Principles of Object-Oriented Design How do we make decisions about what is better and what is worse design? Principles to aim for instead of rules. e.g. there is no maximum
More informationAssigning Responsibilities by Larman
Assigning Responsibilities by Larman Core design activity: The identification of objects and responsibilities and providing a solution in terms of an interaction diagram this is the creative part where
More informationLecture: Modular Design
Software Engineering Lecture: Modular Design Thomas Fritz Many thanks to Philippe Beaudoin, Gail Murphy, David Shepherd, Neil Ernst and Meghan Allen Reading! For next lecture: (all required) Composite
More informationSchedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model)
Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach 14:30 Case Study of Elevator Control System (problem definition, use case model) March 19th 13:00 Case Study of Elevator Control
More informationObject- Oriented Design with UML and Java Part I: Fundamentals
Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html
More informationReview Software Engineering October, 7, Adrian Iftene
Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)
More informationOO Frameworks. Introduction. Using Frameworks
OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components
More informationWhat is Software Architecture
What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements
More informationInheritance. EEC 521: Software Engineering. Dealing with Change. Polymorphism. Software Design. Changing requirements Code needs to be flexible
Inheritance EEC 521: Software Engineering Software Design Design Patterns: Decoupling Dependencies 10/15/09 EEC 521: Software Engineering 1 Inheritance is the mechanism by which one class can acquire properties/responsibilities
More informationIdioms and Design Patterns. Martin Skogevall IDE, Mälardalen University
Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang
More informationGRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4
GRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu GRASP General Responsibility Assignment
More informationApplication Oriented Networks: An SOA Perspective
Oriented s: An SOA Perspective www.thbs.com Introduction Service Oriented Architecture is the hot topic of discussion in IT circles today. So much so, in fact, that SOA is being seen by many as the future
More informationCMPT Data and Program Organization
CMPT-201 - Data and Program Organization Professor: Bill Havens Office: APSC-10828 Lectures: MWF 2:30pm - 3:20pm Venue: C-9002 WWW: http://www.cs.sfu.ca/coursecentral/201 Office Hours: Monday @3:30pm January
More informationCMPS 115 Winter 04. Class #10 (2004/02/05) Changes/Review Programming Paradigms Principles of OOD <break> Design Patterns
CMPS 115 Winter 04 Class #10 (2004/02/05) Changes/Review Programming Paradigms Principles of OOD Design Patterns Changes & Lecture 9 Takeaway Changes/Notices 2/26 may be guest after all, on design-with-frameworks
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More informationFrames and Inheritance. Winston, Chapter 9
Frames and Inheritance Winston, Chapter 9 Michael Eisenberg and Gerhard Fischer TA: Ann Eisenberg AI Course, Fall 1997 Eisenberg/Fischer 1 Programming Languages A Knowledge Representation View procedural:
More informationCOURSE 2 DESIGN PATTERNS
COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract
More informationOpen Closed Principle (OCP)
Open Closed Principle (OCP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design Principles
More informationIntegration Testing Qualidade de Software 2
Integration Testing Integration Testing Software systems are built with components that must interoperate Primary purpose: To reveal component interoperability faults so that testing at system scope may
More informationSingle Responsibility Principle (SRP)
Single Responsibility Principle (SRP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design
More informationSoftware Design and Analysis CSCI 2040
Software Design and Analysis CSCI 2040 http://data.science.uoit.ca -> Home -> Teaching -> Software Design and Analysis Software Design and Analysis CSCI 4030 2 Describe the goals. Define object-oriented
More informationADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE
ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion
More informationSoftware Design and Analysis CSCI 2040
Software Design and Analysis CSCI 2040 Introduce two important development practices in the context of the case studies: Test-Driven Development Refactoring 2 Logic is the art of going wrong with confidence
More informationGRASP: Patterns for. chapter18
GRASP: Patterns for assigning responsibility chapter18 1 Chapter Objectives Learn about design patterns Learn how to apply five GRASP patterns 2 Building Collaboration diagrams System Design: how the system
More informationObject-oriented design principles
Object-oriented design principles Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline OO concepts Single Responsibility Principle (SRP) Open/Closed Principle
More informationCredit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture
Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken
More information5. Application Layer. Introduction
Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More information