You are on page 1of 22

Software Engineering I

Software Design

Jeisson Andrés Vergara Vargas, M.Sc.


Departamento de Ingeniería de Sistemas e Industrial
http://colswe.unal.edu.co/~javergarav/
javergarav@unal.edu.co

2019-I
©
Software Design

Introduction

Jeisson Vergara-Vargas Software Engineering I, 2019-I 2


Software Design

Definition

Software design is the software engineering life cycle


activity in which software requirements are analyzed in
order to produce a description and representation of the
software’s external and internal structures that will serve
as the basis for its construction.

Jeisson Vergara-Vargas Software Engineering I, 2019-I 3


Software Design

Software Design

Architectural (High-Level) Design Detailed (Low-Level) Design

Jeisson Vergara-Vargas Software Engineering I, 2019-I 4


Software Design

Architectural Design

Jeisson Vergara-Vargas Software Engineering I, 2019-I 5


Software Design

Architectural Design

Software Architecture

Jeisson Vergara-Vargas Software Engineering I, 2019-I 6


Software Design

Software Architecture
The software architecture of a software system is the structure or
structures of the system, which comprise software elements, the
externally visible properties of those elements, and the relationships
among them.

Component Connector Component

Jeisson Vergara-Vargas Software Engineering I, 2019-I 7


Software Design

Software Architecture

Architectural Styles Architectural Patterns Architectural Views

Component Connector Component

• Security
• Interoperability
Quality Attributes • Performance and Scalability
• High Availability and Resilience
• Usability

Jeisson Vergara-Vargas Software Engineering I, 2019-I 8


Software Design

Software Architecture
Models and Diagrams

Decomposition View Data Model View Layered View

Jeisson Vergara-Vargas Software Engineering I, 2019-I 9


Software Design

Software Architecture
Models and Diagrams

Component-and-Connector View Deployment View

Jeisson Vergara-Vargas Software Engineering I, 2019-I 10


Software Design

Detailed Design

Jeisson Vergara-Vargas Software Engineering I, 2019-I 11


Software Design

Detailed Design

The detailed design of a


software system is the
specification of each
component in sufficient
detail to facilitate its
construction. It focuses on
all of the implementation
details necessary to
implement the software
architecture.

Jeisson Vergara-Vargas Software Engineering I, 2019-I 12


Software Design

Data
Detailed Design

Jeisson Vergara-Vargas Software Engineering I, 2019-I 13


Software Design

Programming Paradigms
Detailed Design

Object-Oriented Programming

Functional Programming

Logic Programming

Parallel Programming

Concurrent Programming

Aspect-Oriented Programming

Jeisson Vergara-Vargas Software Engineering I, 2019-I 14


Software Design

Data Structures & Algorithms


Detailed Design

Push Pop

Top

Jeisson Vergara-Vargas Software Engineering I, 2019-I 15


Software Design

Design Patterns
Detailed Design

Design patterns provide a foundation to building maintainable and


scalable software.

Creational Patterns
Used to construct
Behavioral Patterns
objects such that they Used to manage
can be decoupled from Structural Patterns algorithms,
their implementing Used to form large relationships, and
system. object structures responsibilities between
between many disparate objects.
objects.

Jeisson Vergara-Vargas Software Engineering I, 2019-I 16


Software Design

User Interfaces (UI)


Detailed Design

User interface design should ensure that interaction between the


human and the machine provides for effective operation and control of
the machine.

Jeisson Vergara-Vargas Software Engineering I, 2019-I 17


Software Design

User Interfaces (UI)


Detailed Design

Jeisson Vergara-Vargas Software Engineering I, 2019-I 18


Software Design

Detailed Design
Models and Diagrams

Jeisson Vergara-Vargas Software Engineering I, 2019-I 19


Software Design

Detailed Design
Models and Diagrams

Class Diagram Package Diagram Object Diagram

Jeisson Vergara-Vargas Software Engineering I, 2019-I 20


Software Design

Detailed Design
Models and Diagrams

Activity Diagram Sequence Diagram Communication Diagram

Jeisson Vergara-Vargas Software Engineering I, 2019-I 21


Software Design

Bibliography
• [BOURQUE] P. Bourque and R. E. Fairley, SWEBOK V3.0: Guide to the Software
Engineering Body of Knowledge. 2014.
• [SEIDL] M. Seidl, M. Scholz, C. Huemer, and G. Kappel, UML @ Classroom: An
Introduction to Object-Oriented Modeling. 2015.
• [STEPHENS] R. Stephens, Beginning Software Engineering. 2015.

Jeisson Vergara-Vargas Software Engineering I, 2019-I 22

You might also like