Section 1
Section Goals
- To define the scope, sources, and characteristics of software design.
- To discuss the key issues in software engineering.
Learning Objectives
Learning Objective 1
- Define the role and scope of software design.
- Define the sources of the software design process for large systems.
- Define continuous design in software.
Objective Leading Questions
- Define the role and the scope of software design.
- What is the software design process?
- Which enabling techniques are primarily used in software design?
- Why is software design used to develop large software systems?
- Explain continuous software design, and its main challenges.
Objective Readings
Required Readings
Chapter 2: "Introduction" and "Section 1: Software Design Fundamentals" of SWEBOK [Bourque and Fairley 2014].
Curtis, B., H. Krasner and N. Iscoe (1988), "A Field Study of the Software Design Process for Large Systems," Communications of the ACM 31, 11, 1268-1287. https://doi.org/10.1145/50087.50089
Shore, J. (2004), "Continuous Design," IEEE Software 21, 1, 20-22. https://doi.org/10.1109/MS.2004.1259183
Learning Objective 2
- Define the key concepts of software design, including concurrency, control and handling of events, distribution of components, error and exception handling, fault tolerance, interaction and presentation, and data persistence.
Objective Leading Questions
- Explain the key concepts of software design, and describe why these concepts are important to software design.
Objective Readings
Required Readings
Chapter 2: "Section 2: Key Issues in Software Design" of SWEBOK [Bourque and Fairley 2014].