Software Design Flashcards

1
Q

What is the importance of software principle?

A

The principles of software engineering offer engineers a set of guidelines to follow when writing code, aiming to achieve error free, easily understandable, and manageable code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

List some software principles

A
  1. Modularity
  2. Avoid ambiguity
  3. Avoid incorporating unnecessary features or functionality
  4. Abstraction
  5. Encapsulation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

SOLID

A

*Single Responsibility principle:Class or module should have only one reason to change
*Open closed principle: Software entities should be open for extension but closed for modification
*Liskov substitution principle: Objects of a superclass should be substitutable by objects if its subclass without affecting the correctness of the program.
*Interface segregation principle: Clients should not be forced to depend on interfaces that they do not use.
*Dependency inversion principle: High level modules should not depend on low level modules

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is encapsulation?

A

Encapsulation is an approach employed to hinder users from directly accessing the state values of all variables within an object. Data members and data functions or methods connected to an instantiated class or object can both be hidden as well.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is abstraction?

A

Abstraction is when a programmer hides any irrelevant data about an object or a constructed class In order to simplify a program and make user interaction with it more effective. hiding implementation details from the user providing information about what the object does instead of how it does it

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is modularity?

A

Breaking down the software into smaller modules
These Modules must be independent and reusable more comprehensible, testable, and maintainable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What’s TDD?

A

Test Driven Development: This is used by software developers by first writing automated test scripts before producing functional code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are software principles?

A

These help guide the design and development of software to ensure that it is efficient, reliable and easy to maintain.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly