Software Engineering

Summary

This subject is focused on providing students with an enough overview of theoretical and practical aspects of Software Engineering such as: software process, project planning, requirements engineering, design strategies, informal/formal specification, analysis techniques, model-driven development, testing techniques, software product lines, prototyping and presentation.

Syllabus and material

Find syllabus here. (Spanish version here) Full course material (link).

Recommended textbooks

[1] Sommerville, I., Software Engineering, 9th Ed, 2011, Pearson Pressman.

[2] Roger S. & Maxim, B. Software Engineering: a Practitioner's Approach, 8th Ed., 2015, McGraw-hill.

[3] Oestereich, B., Developing Software with UML: Object-oriented analysis and design in practice, 2002, Pearson Education.

Find material at the bottom of the web page.

Invited professors

Héctor Mora - hmorapaz@gmail.com - https://sdas-group.com/member/49/

Martín Granja - promartingranja@gmail.com -

Luz Marina Sierra - lsierra@unicauca.edu.co - https://sdas-group.com/member/81/

Lorena Guachi - lguachi@yachaytech.edu.ec - http://sdas-group.com/member/40/

Ana Umaquinga - anacristinaucr@gmail.com - https://sdas-group.com/member/2/

Juan Antonio Castro - juan.castro@usco.edu.co - http://sdas-group.com/member/27/

Teaching assistant

Luis Eduardo Murillo - luis.murillo@yachaytech.edu.ec

Advisories

TBD. Via internet upon timely reservation.

Evaluation policies

26 - 11 - 2020 (10 %) Project idea(s) and tentative requirements: Presentation/One-page document (title, abstract, list of requirements)

09 - 12 -2020 (30 %) First delivery of the project.

  • Project's SRS document Guide Feasibility study Guide

  • Project's SRS and feasibility presentation (30 minutes)

  • Find here some examples

- - 2020 (40 %) Final delivery of the project.

  • 15 minutes presentation, final document (100 %).

  • Methodology, cost estimation, software spotlight.

  • Find here some examples

  • Recommended book: link

Lectures

09-12-2020 SRS and feasibility study

Talk by Luis Murillo (teaching assistant)

03-12-2020 Project idea presentation

  • Introduction to modelling (Invited professor)

02-12-2020 SRS and feasibility study

  • Project's SRS document Guide Feasibility study Guide

26-11-2020 Work meeting

25-11-2020 Work meeting

Talk by Luis Murillo (teaching assistant)

19-11-2020 Introduction to Requirements Engineering (Invited professor) (slides video)

User and system requirements

Functional requirements

18-11-2020 Brainstorming

Ideas for projects

12-11-2020 Work meeting

Work teams & project ideas

11-11-2020 Software Process (Part I) (slides)

Software process models

Process activities

04-11-2020 Brainstorming

Ideas for projects

Work teams

29-10-2020 Introduction to Software Engineering (Lecture 2)- Part II (slides)

Software Cost

Software Product

22-10-2020 Introduction to Software Engineering (Lecture 2)- Part I (slides)

What is a good software?

Product Specification

Software engineering

21-10-2020 Introduction to Software Engineering (Lecture 1) - Part II (slides)

Risk

Work team activities

15-10-2020 Introduction to Software Engineering (Lecture 1) - Part I (slides)

Software expenses

14-10-2020 Course presentation (Slides)

Course description and objectives

Evaluation policies

General topics

Teaching strategy (PDF)

Previous lectures

--------------------------------------------------------------------------------------

18-06-2020 Final delivery of the project

09-06-2020 Work meeting

04-06-2020 Student presentations

WT 1: Distributed software enginnering

WT 2: Embedded systems

02-06-2020 Work meeting

28-05-2020 Work meeting

26-05-2020 Work meeting

21-05-2020 Software engineering: Advances and technologies (Invited lecturer) (link)

19-05-2020 Work meeting

14-05-2020 First delivery of the project

Feasibility and SRS document

Presentation

12-05-2020 Work meeting

07-05-2020 Reading day

05-05-2020 Work meeting

30-04-2020 Software cost estimation (Invited professor) (slides)

Cost management case (PDF)

28-04-2020 Reading day

23-04-2020 Modelling (Second professor) (Invited professor)

Sofware required: Virtual paradigma (Installer link)

Diagrams:

Structure: Component diagram, class, deployment diagram

Behavior: Use case diagram, activity, state machine

Interaction: Sequence diagram, collaboration diagram, interaction

21-04-2020 Software development processes (Invited professor)

Scrum

16-04-2020 Exam I - Modelling (Invited professor)

Exam I

Sofware required: Virtual paradigma (Installer link)

Diagrams:

Structure: Component diagram, class, deployment diagram

Behavior: Use case diagram, activity, state machine

Interaction: Sequence diagram, collaboration diagram, interaction

14-04-2020 Exam preparation

Introduction to SE, what is software?, sotware processes

09-04-2020 Project checkpoing

Work meetings

07-04-2020 Feasibility study and SRS

Feasibility study Guide

SRS Guide

Mapping out a path: Project outlining

02-04-2020 Project idea

Project idea presentation

31-10-2020 Project checkpoint

Brain storming

Work groups

26-03-2020 Requirements engineering (slides)

Initial considerations

Requirements vs triple restriction of projects

Functional and non-functional requirements

The software requirements document

Requirements specification

Requirements engineering processes

Requirements elicitation and analysis

Requirements validation

Requirements management

24-03-2020 Software Architectures (slides) (Invited professor)

What is an architecture?

Design structures in architecture

Functional Architecture

Modular Design

Decomposition

Functional Decomposition

Software architecture patterns

05-03-2020 Software Process (Part II) (slides) (Invited professor)

Coping with change

The Rational Unified Process

An example of a modern software process.

Example of project ideas (link)

05-03-2020 Software Process (Part I) (slides) (Invited professor)

Software process models

Process activities

05-03-20 Introduction to Software Engineering - Part II (slides) (Invited professor)

What is a good software?

Product Specification

Software engineering

Software Cost

Software Product

03-03-2020 Introduction to Software Engineering - Part I (slides)

Software expenses

Risk

Work team activities

Ideas for projects

27-02-2020 Course presentation (Slides)

Course description and objectives

Evaluation policies

General topics

Teaching strategy (PDF)

--------------------------------------------------------------------------------------

03-12-2019 Quiz II: Agile methodologies and software cost estimation

21-11-2019 Work meetings

19-11-2019 Cost estimation (Invited professor)

Script-code-line-based approach

Software project cost estimation

14-11-2019 Mid-term evaluation

SRS and feasibility study

12-11-2019 Agile methodologies (Invited professor) (link)

SCRUM

DevOps

07-11-2019 Agile methodologies

XP

05-11-2019 Agile methodologies (Invited professor)

Concepts

XP

31-10-2019 Project checkpoint

Work meetings

29-10-2019 Modelling (Invited professor)

Diagrams:

Structure: Component diagram, class, deployment diagram

24-10-2019 Project checkpoint

Work meetings

22-10-2019 Modelling (Invited professor)

Diagrams:

Behavior: Use case diagram, activity, state machine

Interaction: Sequence diagram, collaboration diagram, interaction

17-10-2019 SRS (Second session)

Feasibility study

SRS document

15-10-2019 SRS (First session)

Feasibility study

SRS document

26-09-2019 Project checkpoint

Project idea presentation

24-09-2019 Requirements engineering (Part II) (slides)

Requirement specification

Project idea (Examples)

19-09-2019 Requirements engineering (Part I) (slides) (Invited professor)

17-09-2019 Software architectures (Part II) (slides) (Invited professor)

12-09-2019 Software architectures (Part I) (slides)

Quiz 1

Software architectures

Project idea

10-09-2019 Software Process (Part II) (slides)

Coping with change

The Rational Unified Process

An example of a modern software process

Brainstorming for final projects

03-09-2019 Software Process (Part I) (slides)

Software process models

Process activities

29-08-2019 Introduction to Software Engineering - Part II (slides)

What is a good software?

Product Specification

Software engineering

Software Cost

Software Product

26-08-2019 Introduction to Software Engineering - Part I (slides)

Software expenses

Risk

Work team activities

Ideas for projects

22-08-2019 Course presentation - Second part (Slides)

Course description and objectives

Evaluation policies

General topics

Teaching strategy (PDF)

20-08-2019 Course presentation (Slides)

Course description and objectives

Evaluation policies

General topics

Teaching strategy (PDF)

22-05-2019 Final exam

Final project delivery

Final exam

15-05-2019 Work meeting

Project progress checkpoint

13-05-2019 Work meeting

Project progress checkpoint

08-05-2019 Work meeting

Project progress checkpoint

06-05-2019 Work meeting

Project progress checkpoint

01-05-2019 Work meeting

Project progress checkpoint

29-04-2019 Quiz and Intelligent systems (Invited professor link)

Quiz

Intelligent agents in an information system

24-04-2019 Software architectures (Invited professor link)

Languages and web implementations

Web design

22-04-2019 Work meeting

Project progress checkpoint

17-04-2019 Software cost estimation (Invited professor slides)

Approaches

Cost per coding line

COCOMO II (Link)

Softstars Systems (link)

15-04-2019 Life cycle and Agile architectures (Invited professor slides)

Context

Life cycles (LC) for software development

Predictive, Incremental, Iterative and Agile LC

09-04-2019 First delivery of the project (Fourth session)

Project's SRS document

Feasibility study

20 minutes presentation

08-04-2019 First delivery of the project (Third session)

Project's SRS document

Feasibility study

20 minutes presentation

02-04-2019 First delivery of the project (Second session)

Project's SRS document

Feasibility study

20 minutes presentation

01-04-2019 First delivery of the project (First session)

Project's SRS document

Feasibility study

20 minutes presentation

27-03-2019 Architectural design (First part slides)

Architectural design decisions

Architectural views

Architectural patterns

Application architectures

25-03-2019 Software Modelling (slides part2 )

Model-driven engineering

20-03-2019 Software Modelling (slides part1 )

Context models

Interaction models

Structural models

Behavioral models

18-03-2019 Quiz and workmeetings

Quiz 2

Quiz 1 delivery

Work meetings

13-03-2019 Software Modelling (slides)

Practical excercises

Context models

Interaction models

Structural models

Behavioral models

Model-driven engineering

11-03-2019 Work meetings

Discussion on project's progress

06-03-2019 Software modelling

Initial considerations

27-02-2019 Requirements engineering (slides)

Initial considerations

Requirements vs triple restriction of projects

Functional and non-functional requirements

The software requirements document

Requirements specification

Requirements engineering processes

Requirements elicitation and analysis

Requirements validation

Requirements management

25-02-2019 Software Architectures (slides)

Functional Architecture

Modular Design

Decomposition

Functional Decomposition

Software architecture patterns

20-02-2019 Software Architectures (slides)

What is an architecture?

Design structures in architecture

18-02-2019 Brainstorming for projects

Quiz

Project description (spotlight) presentations

13-02-2019 Software Architectures (slides)

What is an architecture?

Design structures in architecture

Functional Architecture

Modular Design

Decomposition

Functional Decomposition

Software architecture patterns

11-02-2019 Software Process (Part II) (slides)

Coping with change

The Rational Unified Process

An example of a modern software process.

Example of project ideas (link)

06-02-2019 Software Process (Part I) (slides)

Software process models

Process activities

04-02-2019 Introduction to Software Engineering - Part II (slides)

What is a good software?

Product Specification

Software engineering

Software Cost

Software Product

30-01-2019 Introduction to Software Engineering - Part I (slides)

Software expenses

Risk

Work team activities

Ideas for projects

28-01-2019 Course presentation (Slides)

Course description and objectives

Evaluation policies

General topics

Teaching strategy (PDF)

--------------------------------------------------------------------------------------