1 / 8

Design

Design. Design and Software Architecture. The design phase. The analysis phase describes what the system should be doing The design phase describes how the system will do it We’re working at the level of designing the code itself (in part). Different types of design.

calix
Download Presentation

Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design Design and Software Architecture

  2. The design phase • The analysis phase describes what the system should be doing • The design phase describes how the system will do it • We’re working at the level of designing the code itself (in part)

  3. Different types of design • Architecture design (SWE 443) • Layers of the software (e.g. model, view, controller (MVC)) • Categories of classes (e.g. UI, Business logic, interfaces) • Component design (SWE 332) • Individual classes • UI design (SWE 205) • Sample screens • UI guidelines • Data design • Database design • Data structure design

  4. Good design • Design principles • What you should try to do • Design patters • What other people have done and found successful • Design metrics • How do you measure what you have done, to decide if it is good?

  5. Bad design • Software that is rigid • Hard to change because every change affects a large part of the system. Example? • Fragility • When you make a change, unexpected bad things happen. Example? • Immobility • Can’t reuse components successfully. Example?

  6. Design principle examples • Single responsibility principle • Interface segregation principle • Open-closed principle • Liskov substitution principle • Many more that we have talked about other classes related to OO concepts of abstraction and information hiding

  7. Design pattern examples • Singleton • Factory • Flyweight • Visitor • Many many more

  8. Design metrics • Class size • Methods per class • Lack of cohesion (too many methods with dissimilar purpose) • Coupling between classes (we want to keep this low) • Depth of inheritance tree • Method complexity

More Related