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.
-
Contact Hours
60 -
Recommended U.S. Semester Credits4
-
Recommended U.S. Quarter Units6
Hours & Credits
-
Overview
DESCRIPTION
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.
OBJECTIVES
- 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.CONTENTS
0. About Teamworking. Group Dynamics and Effective Teams. Roles in a Team. Conflict
Management.
1. Architecture and UML Modeling. The Design stage in the Software Development Life Cycle.
Concept of Architecture and Components. UML Component and Deployment diagrams
notation.
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.
Antipatterns.METHODOLOGY
The teaching-learning strategy will be implemented by means of the following methods and
techniques:
- 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.ASSESSMENT
- Knowledge test: 40%
- Teamwork project: 50%
- Peer-to-Peer Assessment (teamwork): 10%READINGS
* 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.
References:
* 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-
0201633856.
* 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.