Software Engineering I
Software Design
Miguel Morales – Computer Science and Software Engineering Department
Copyright By PowCoder代写 加微信 powcoder
• Remember the OO pillars.
• Identify and use different types of relationships.
• Understand and remember the concept of design pattern.
Object-oriented Design
• Object-oriented design is a paradigm based on the concept of objects and classes.
Images taken from the book “Dive into Design Patterns” by
Inheritance
Classes can be derived from other classes, thereby inheriting fields and methods from those classes.
Interfaces
• An interface specifies required methods.
• Interface separates specification from implementation.
• Denoted on class diagrams by stereotype <
Relationships
• Dependency • Association • Aggregation • Composition
In many contexts …
Guanajuato, Mexico
Cinque Terre, Italy
Buenos Aires, Argentina
Design Patterns
• In software engineering, a software design pattern is…
– a reusable solution
– to a commonly occurring problem
– within a given context.
• Patterns are formalized best practices that programmers can use to solve common problems when designing an application or system.
– It is not a finished design that can be implemented directly.
– It is a description or template for how to solve a problem.
Design Patterns
It is not a finished design!
Design Patterns
– A reusable solution
– To a commonly occurring problem
– Within a given context
Design Patterns in SE
• Creational
– Abstract Factory
– Dependency injection – Factory method
– Lazy initialization
– Object pool
– Prototype
– Singleton
• Structural
• Behavioural – Blackboard
– Chain of responsibility – Interpreter
– Iterator
– Mediator
– Observer – State
– Strategy –…
– – – – – – – –
Adapter (Wrapper) Bridge
Composite Decorator
Flyweight Proxy
• Remember the OO pillars.
• Identify and use different types of relationships.
• Understand and remember the concept of design pattern.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com