1 / 17

HNDIT23082

www.hndit.com. HNDIT23082. Week 6: Software Design. Software Engineering Software Design. www.hndit.com. Learning Outcomes Understand the activities involved in the Design process Understand the principles of good design Identify Software design techniques

juliettec
Télécharger la présentation

HNDIT23082

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. www.hndit.com HNDIT23082 Week 6: Software Design

  2. Software Engineering Software Design www.hndit.com Learning Outcomes • Understand the activities involved in the Design process • Understand the principles of good design • Identify Software design techniques • Identify possible software architecture

  3. www.hndit.com Software Design - Objectives Design is a meaningful engineering representation of something that is to be built. In software Engineering context, design focuses on transforming requirements into implementable version of the software system.

  4. www.hndit.com Design activities • Identification of the sub-systems • Identification of the software components • Identification of the software architecture • Data design • Interface design • Algorithm design • Data structure design • Design specification

  5. Software Design – Why it is important? www.hndit.com A good design is the key for a successful software system  A good design allows easy maintenance of a system A good design allows to achieve non-functional requirements such as reliability, performance, reusability, portability. • A good design facilitates the development and management processes of a software project.

  6. www.hndit.com Some important software design principles • Abstraction • Modularity • Information Hiding (Encapsulation) • Polymorphism

  7. www.hndit.com Abstraction • This is an intellectual tool (a psychological notion) which permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details • Abstraction allows us to proceed with the development work without been held up in low-level implementation details (yet to be discovered)

  8. Modularity • Software is divided into separately named, addressable components called modules. • Complexity of a program depends on modularity www.hndit.com

  9. Modularity Ctd.. www.hndit.com Modularity facilitates • the development process • the maintenance process • the project management process • reusability

  10. How many modules? www.hndit.com Cost of effort Interface cost Cost per module No. of modules

  11. Module Coupling • A measure of the strength of the interconnections between system components. • Loose(Low) coupling means component changes are likely to affect other components. • Shared variables or control information exchange lead to tight(High) coupling. • Loose coupling can be achieved by component communication via parameters or message passing. www.hndit.com

  12. Levels of Coupling • Data Coupling Data is passed from one module to another using arguments Stamp Coupling More data than necessary is passed via arguments. Eg. Pass the whole record instead of just the field being changed. Control Coupling A flag is passed from one module to another affecting the functionality of the second module • External Coupling Coupling with the environment (eg. Data files, other programs etc.). www.hndit.com

  13. www.hndit.com

  14. Levels of Coupling (Cont..) • Common Coupling Occurs when modules access the same global data. www.hndit.com MODULE- A MODULE- B MODULE- C MODULE -D

  15. www.hndit.com Levels of Coupling (Cont..) • Content Coupling One module directly affects the working of another. Calling module can modify the called module or refer to an internally defined data element. Global Data area A C Content Coupling B Common Coupling D E

  16. Levels of Coupling (Contd..) www.hndit.com Object oriented systems are loosely coupled. No shared state and objects communicate using message passing, but • Object Coupling Occurs when an object class inherits attributes and methods of another class. Changes to super-class propagate to all sub-classes. Student PG Student UG Student

  17. Coupling should be minimised. Loosely coupled modules facilitate: • Maintenance • Development • Reusability www.hndit.com

More Related