www hndit com HNDIT 23082 Week 6 Software

  • Slides: 17
Download presentation
www. hndit. com HNDIT 23082 Week 6: Software Design

www. hndit. com HNDIT 23082 Week 6: Software Design

Software Engineering www. hndit. com Software Design Learning Outcomes · Understand the activities involved

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

Software Design - Objectives www. hndit. com Design is a meaningful engineering representation of

Software Design - Objectives www. hndit. com 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.

Design activities Identification of the sub-systems Identification of the software components Identification of the

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 www. hndit. com

Software Design – Why it is important? www. hndit. com A good design is

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.

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

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

Abstraction www. hndit. com This is an intellectual tool (a psychological notion) which permits

Abstraction www. hndit. com 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)

Modularity • Software www. hndit. com is divided into separately named, addressable components called

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

Modularity Ctd. . Modularity facilitates • the development process • the maintenance process •

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

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

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

Module Coupling • www. hndit. com A measure of the strength of the interconnections

Module Coupling • www. hndit. com 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.

Levels of Coupling • www. hndit. com Data Coupling Data is passed from one

Levels of Coupling • www. hndit. com 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 with the environment (eg. Data files, other programs etc. ).

www. hndit. com

www. hndit. com

Levels of Coupling (Cont. . ) • www. hndit. com Common Coupling Occurs when

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

Levels of Coupling (Cont. . ) www. hndit. com • Content Coupling One module

Levels of Coupling (Cont. . ) www. hndit. com • 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. A Content Global Data area C B Common Coupling D E Coupling

Levels of Coupling (Contd. . ) www. hndit. com Object oriented systems are loosely

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 UG Student PG Student

Coupling should be minimised. Loosely coupled modules facilitate: • Maintenance • Development • Reusability

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