Software Requirements and Architectures

Objectives

  • To apply requirements engineering methods to elicit, prioritize and document requirements. - To use techniques to refine quality attributes.
  • To analyse architectural alternatives based on problem domain and quality attributes.
  • To describe architectures using views, patterns and styles.
  • To use languages of architectural description.

Program

  1. Requirements: (a) definition, (b) functional requirements, (c) non-functional requirements, (d) user requirements, (e) related concepts.
  2. Requirements elicitation: (a) process, (b) stakeholder identification, (c) techniques.
  3. Requirements documentation: (a) writing in natural language, (b) modelling.
  4. Risk
  5. Design patterns: (a) creational patterns, (b) structural patterns, (c) behavioral patterns, (d) anti-design patterns.

Bibliography

  • João M. Fernandes and Ricardo J. Machado; “Requirements in engineering projects”, Lecture Notes in Management and Industrial Engineering, Springer, 2016. [Portuguese version: João M. Fernandes e Ricardo J. Machado; “Requisitos em projetos de software e de sistemas de informação”, Novatec, São Paulo, Brazil, 2017].
  • George Fairbanks; “Just-enough software architecture: a risk-driven approach”, Marshall & Brainerd, 2010.
  • Len Bass, Paul Clements, and Rick Kazman; “Software architecture in practice”, Addison-Wesley, 1998. - Ian Gorton; “Essential software architecture”, 2nd ed., Springer, 2011.

Updated: