Software Design

Universidad de Deusto - Bilbao

Course Description

  • Course Name

    Software Design

  • Host University

    Universidad de Deusto - Bilbao

  • Location

    Bilbao, Spain

  • Area of Study

    Computer Engineering

  • Language Level

    Taught In English

  • Prerequisites

    Basic skills about thinking in objects, skills about programming using Java and basic concepts about RDBS.

    Hours & Credits

  • Contact Hours

  • Recommended U.S. Semester Credits
  • Recommended U.S. Quarter Units
  • Overview


    One of the key roles of graduates in Computing is the design and implementation of software solutions. If we analyse the life cycle of a software system, the second fundamental step is the design of the product to be built. In this course, students acquire the skills necessary for the design of distributed object-oriented software solutions, using UML as modeling notation and applying well-known design patterns, as well as heuristics and best practices. Therefore, this subject's contribution to the professional profile (from a competence perspective) is related to problem solving skills and system, component and application design, using a systemic approach (as well as creative and innovative), starting from existing requirements and taking into consideration different criteria for the evaluation of alternative solutions.

    - Design and evaluate alternative solutions to a software problem, applying patterns and
    design best practices.
    - Document software designs, correctly using suitable UML diagrams and notation.
    - Implement a software design, based on patterns, using distributed technologies.

    0. About Teamworking. Group Dynamics and Effective Teams. Roles in a Team. Conflict
    1. Architecture and UML Modeling. The Design stage in the Software Development Life Cycle.
    Concept of Architecture and Components. UML Component and Deployment diagrams
    2. Client-Server Applications. Characteristics. Distributed Objects: RMI. Persistence and
    Object-Relational Mappers: JDO.
    3. Design Heuristics, Best Practices and UML Modeling. Design principles, Riel´s Heuristics,
    GRASP Patterns, Best Practices and Refactorings. UML Sequence Diagrams.
    4. Design Patterns. Enterprise Application Patterns, GoF Patterns, MS and J2EE Patterns.

    The teaching-learning strategy will be implemented by means of the following methods and
    - Lectures: Driven by the professor, who will introduce the contents listed in the subject
    syllabus in a detailed and structured way in the classroom. Lecture materials, to be used during
    the lessons, will be previously available for students to read them in advance (slides, scripts,
    web links, etc.), organized by units.
    - Case Study: Development of case studies, in order to assess alternatives and discuss design
    options. The most suitable alternative will be selected, depending on the context of the problem.
    During the development of those case studies, the notation of UML Sequence, Component and
    Deployment diagrams will be introduced.
    - Personal Experimentation. Students will be provided with small problem statements so they
    can practice their modeling skills. On the other hand, lab sessions will be conducted in order to
    run basic RMI and JDO working examples, as well as get first-hand experience about design
    pattern implementation examples.
    - Teamwork: Given a requirement specification, students will be requested to design a software
    solution based in patterns. They will have to use the UML notation to communicate and
    document their design and they will have to implement it using distributed technologies, RMI in
    particular, and use JDO for persistence.

    - Knowledge test: 40%
    - Teamwork project: 50%
    - Peer-to-Peer Assessment (teamwork): 10%

    * Materials for the correct progress in the subject are on the e-learning platform.
    * The basic mean of communication will be the News and Forums in the platform; every event
    and news related to this subject will be posted on the platform.
    * Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software. AddisonWesley
    Professional, ISBN-13: 978-0201633610.
    * A. Riel, Object-Oriented Design Heuristics, Addison-Wesley Professional, ISBN-13: 978-
    * Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and
    Design and Iterative Development, Prentice Hall, ISBN: 978-0131489066.

Course Disclaimer

Courses and course hours of instruction are subject to change.

Eligibility for courses may be subject to a placement exam and/or pre-requisites.

Credits earned vary according to the policies of the students' home institutions. According to ISA policy and possible visa requirements, students must maintain full-time enrollment status, as determined by their home institutions, for the duration of the program.

Please note that some courses with locals have recommended prerequisite courses. It is the student's responsibility to consult any recommended prerequisites prior to enrolling in their course.