2nd Cycle Studies - Mestrado
Programming and Database skills.
Autonomous reading followed by in-Class discussion; Synthesis work on a chosen subject complemented by an oral presentation; Independent team work on a set of mini-projects focused on specific core topics (as much as possible, the mini-projects will address different perspectives of the same real-world problem).
A paper describing in detail the rationale for this cource can be found at:
Practical development of software requires an understanding of successful methods for bridging the gap between a problem to be solved and a working software system. In this course students will study a variety of ways to understand the problem they're solving, the various factors that constrain the possible solutions, and approaches to deciding among alternatives.
After completing this course, students will be able to:
• identify different classes of problems and their structures;
• analyze technical, organizational, usability, business, and marketing constraints on solutions;
• apply engineering approaches to frame solutions.
1. Requirements Engineering;
2. Framing problems
3. Contextual Design
4. Use Cases
5. Usability issues
6. Business, economic and policy constraints
7. An engineering approach to software development.
Nuno Alexandre Martins Seixas
Resolution Problems: 10.0%
Synthesis work: 20.0%
Mini Tests: 70.0%
1. Fred Brooks: The Mythical Man-Month, Addison-Wesley, 2005
2. Karl Wiegers: More About Software Requirements: Thorny Issues and Practical Advice Microsoft Press, 2005.
3. Donald Norman: The Design of Everyday Things; Currency/Doubleday, 1990.
4. Frank Armour and Granville Miller: Advanced Use Case Modeling: Software Systems Addison-Wesley, 2001.
5. Beyer and Holtzblat: Contextual Design: Defining Customer-Centered Systems. Morgan Kaufman, 1998