
SOFTWARE ARCHITECTURE AND DESIGN PATTERNS/17IS72 Department of ISE BMS Institute of Technology and Mgmt Course Outcomes CO1 Understand the basic concepts to identify state & behaviour of real world objects. CO2 Apply Object Oriented Analysis and Design concepts to solve complex problems. CO3 Construct various UML models using the appropriate notation for specific problem context. CO4 Design models to Show the importance of systems analysis and design in solving complex problems using case studies. CO5 Study of Pattern Oriented approach for real world problems. Program Outcomes COS/P OS PO PO PO PO1 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 2 3 4 CO1 3 - - - - - - - - - - - - - CO2 3 - - - - - - - - - - - - - CO3 - 3 - - - - - - - - - - 2 - CO4 - - 3 - - - - - - - - 3 - DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt CO5 - - 3 - - - - - - - - - - Syllabus and Text Books Module-1: Introduction: what is a design pattern? Describing design patterns, the catalog of design pattern, organizing the catalog, how design patterns solve design problems, how to select a design pattern, how to use a design pattern. What is object-oriented development? , key concepts of object oriented design other related concepts, benefits and drawbacks of the paradigm Module-2: Analysis a System: overview of the analysis phase, stage 1: gathering the requirements functional requirements specification, defining conceptual classes and relationships, using the knowledge of the domain. Design and Implementation, discussions and further reading. Module-3: Design Pattern Catalog: Structural patterns, Adapter, bridge, composite, decorator, facade, flyweight, proxy. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt Module-4: Interactive systems and the MVC architecture: Introduction , The MVC architectural pattern, analyzing a simple drawing program , designing the system, designing of the subsystems, getting into implementation, implementing undo operation , drawing incomplete items, adding a new feature , pattern based solutions. Module-5: Designing with Distributed Objects: Client server system, java remote method invocation, implementing an object oriented system on the web (discussions and further reading) a note on input and output, selection statements, loops arrays. Text Books: 1. Object-oriented analysis, design and implementation, brahma dathan, sarnath rammath, universities press,2013 2. Design patterns, erich gamma, Richard helan, Ralph johman , john vlissides ,PEARSON Publication,2013. Reference Books: 1. Frank Bachmann, RegineMeunier, Hans Rohnert “Pattern Oriented Software Architecture” –Volume 1, 1996. 2. William J Brown et al., "Anti-Patterns: Refactoring Software, Architectures and Projects in Crisis", John Wiley, 1998. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt Module-1 : Introduction What Is a Design Pattern? 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 the same thing twice.” Borrowed from Civil and Electrical Engineering domains. A technique to repeat designer success. A (Problem, Solution) pair DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt Essential Elements A pattern has four essential elements: The pattern name that we use to describe a design problem, The problem that describes when to apply the pattern, The solution that describes the elements that make up the design, and The consequences that are the results and trade-offs of applying the pattern. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt Design Patterns Are Not About Design • Design patterns are not about designs such as linked lists and hash tables that can be encoded in classes and reused as is. • Design patterns are not complex, domain-specific designs for an entire application or subsystem. • One person's pattern can be another person's primitive building block. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt What is and isn’t a design pattern The design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt What is and isn’t a design pattern • A design pattern names, abstracts, and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. • The design pattern identifies the participating classes and instances, their roles and collaborations, and the distribution of responsibilities. • Each design pattern focuses on a particular object-oriented design problem or issue. • It describes when it applies, whether it can be applied in view of other design constraints, and the consequences and trade-offs of its use. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt What is and isn’t a design pattern • Although design patterns describe object-oriented designs, they are based on practical solutions that have been implemented in mainstream object-oriented programming languages like Smalltalk and C++ rather than procedural languages(Pascal, C, Ada) or more dynamic object-oriented languages (CLOS, Dylan, Self) • The choice of programming language is important because it influences one's point of view. Our patterns assume Smalltalk/C++-level language features, and that choice determines what can and cannot be implemented easily. • We might have included design patterns called "Inheritance", "Encapsulation," and "Polymorphism." DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt Design Patterns in Smalltalk MVC The Model/View/Controller (MVC) triad of classes is used to build user interfaces in Smalltalk-80. MVC consists of three kinds of objects 1. Model is the application object, 2. View is its screen presentation, 3. Controller defines the way the user interface reacts to user input. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt MVC decouples them to increase flexibility and reuse. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt MVC decouples them to increase flexibility and reuse. 1. MVC decouples views and models by establishing a subscribe/notify protocol between them. 2. A view must ensure that its appearance reflects the state of the model. 3. Whenever the model's data changes, the model notifies views that depend on it. 4. In response, each view gets an opportunity to update itself. 5. This approach lets you attach multiple views to a model to provide different presentations. 6. We can also create new views for a model without rewriting it. 7. The model contains some data values, and the views defining a spreadsheet, histogram, and pie chart display these data in various ways. 8. The model communicates with its views when its values change, and the views communicate with the model to access these values. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt Describing Design Patterns Describing the design patterns in graphical notations, simply capture the end product of the design process as relationships between classes and objects. • In order to reuse the design, one must record decisions, alternatives and trade-offs. • Also need some concrete examples, • Describe design pattern using consistent format. DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt A common way to describe a design pattern is the use of the following template: 1. Pattern Name and Classification 2. Intent 3. Also Known As 4. Motivation (Problem, Context) 5. Applicability (Solution) 6. Structure (a detailed specification of structural aspects) 7. Participants, Collaborations (Dynamics) 8. Implementation 9. Sample code 10. Known Uses 11. Consequences 12. Related patterns DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt The Catalog of Design Patterns (23 patterns) Pattern Name purpose Abstract Factory Provide an interface for creating families of related or (87) dependent objects without specifying their concrete classes. Adapter ( 139 ) • Convert the interface of a class into another interface clients expect. • Lets classes work together with incompatible interfaces. Bridge(1 51) • Decouple an abstraction from its implementation so that the two can vary independently. Builder (97) • Separate the construction of a complex object from its representation • So that the same construction process can create different representations. Chain of • Avoid coupling the sender of a request to its receiver by Responsibility giving more than one object a chance to handle the (223) request. • Chain the receiving objects and pass the request along the DepartmentDepartment of of ISE ISE BMSBMS Institute Institute of of Technology Technology and and Mgmt Mgmt chain until an object handles
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages384 Page
-
File Size-