Principios de Ingenieria de Software Flashcards

Como desarrollador de software, es importante tener en cuenta los principios básicos de ingeniería de software, ya que estos guían el desarrollo de aplicaciones robustas, eficientes y mantenibles. (10 cards)

1
Q

Modularidad:

A

Dividir el sistema en módulos o componentes independientes que realicen funciones específicas. Esto facilita la mantenibilidad y reutilización del código.

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

Abstracción:

A

Ocultar los detalles complejos y mostrar solo las funcionalidades esenciales. Esto ayuda a reducir la complejidad y permite a los desarrolladores centrarse en los aspectos más importantes del sistema.

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

Encapsulamiento:

A

Agrupar datos y métodos que operan sobre esos datos dentro de una unidad (como una clase en la programación orientada a objetos) y controlar el acceso a los mismos. Esto promueve la protección de los datos y la modularidad.

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

Acoplamiento bajo y alta cohesión:

A

Acoplamiento bajo: Los componentes o módulos de un sistema deben tener la menor dependencia posible entre ellos.
Alta cohesión: Las partes de un módulo deben estar altamente relacionadas en su funcionalidad. Un módulo debe hacer solo una cosa, pero hacerlo bien.

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

Principio DRY (Don’t Repeat Yourself):

A

Evitar la duplicación de código. Cada pieza de información o funcionalidad debe tener una única representación dentro del sistema.

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

Principio KISS (Keep It Simple, Stupid):

A

Mantener las soluciones tan simples como sea posible. La complejidad innecesaria aumenta la probabilidad de errores y hace que el código sea difícil de mantener.

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

Principio SOLID

A

Single Responsibility Principle (Principio de Responsabilidad Única): Una clase debe tener una sola responsabilidad.

Open/Closed Principle (Principio Abierto/Cerrado): El software debe ser abierto para extensión pero cerrado para modificación.

Liskov Substitution Principle (Principio de Sustitución de Liskov): Los objetos de una clase derivada deben poder sustituir a los objetos de la clase base sin alterar el comportamiento del programa.

**Interface Segregation Principle (Principio de Segregación de Interfaces): **Es mejor tener muchas interfaces específicas que una interfaz general.

Dependency Inversion Principle (Principio de Inversión de Dependencias): Los módulos de alto nivel no deben depender de módulos de bajo nivel, sino de abstracciones.

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

Pruebas y Validación:

A

Es esencial probar el código continuamente para asegurarse de que funcione correctamente. Esto incluye pruebas unitarias, de integración y de regresión.

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

Refactorización:

A

Mejorar continuamente el código sin alterar su comportamiento externo. La refactorización busca mejorar la legibilidad, mantenibilidad y rendimiento del código.

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

Gestión de la configuración:

A

Controlar y gestionar las versiones del código fuente, las dependencias y la infraestructura. Esto permite mantener la trazabilidad de los cambios y facilita la colaboración entre desarrolladores.

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