150 likes | 326 Views
Requirements. Prototype. Design. Construction. Testing. Delivery and Installation. Software Waterfall Life Cycle. Concept Exploration. Operations and Maintenance. Software Design. From SWEBOK 2004. V-Model. Spiral Model. Agile Methods. Software Design. From SWEBOK 2004.
E N D
Requirements Prototype Design Construction Testing Delivery and Installation Software Waterfall Life Cycle Concept Exploration Operations and Maintenance
Software Design From SWEBOK 2004
Software Design From SWEBOK 2004
Software Design Principles • Abstraction • Coupling and cohesion • Minimize coupling; maximize cohesion • Decomposition and modularization • Encapsulation/information hiding • Separation of interface from implementation • Sufficiency, completeness, and primitiveness
Key Issues in Software Design • Concurrency • Events • Distribution of components • Error and exception handling • Interaction and presentation • Data persistence
Software Structure and Architecture • Model/View/Controller (MVC) • Repository • Client/server, Three-tier (four-tier) • Peer-to-peer • Pipes and filters
Patterns • Reusable solutions to common object-oriented programming problems • Creational patterns • Factory Method, Abstract Factory, Builder, Prototype, Singleton • Structural patterns • Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy • Behavioral patterns • Chain of responsibility, Observer, Strategy, Command, Interpreter, Iterator
Nonfunctional Requirements may suggest a design pattern • “manufacturer independent”, “device independent”, “must support a family of products” • Abstract Factory Pattern • “must interface with an existing object” • Adapter Pattern • “must deal with the interface to several systems, some of them to be developed in the future” • Bridge Pattern
Adapter Pattern http://sourcemaking.com/design_patterns/adapter