CS6310 SWEBOK Reading
Software design plays an important role in developing software:
during software design, software engineers produce various models that form a kind of blueprint of the solution to be implemented. We can analyze and evaluate these models to determine whether or not they will allow us to fulfill the various requirements.
Design
is defined as both "the process of defining the architecture, components, interfaces, and other characteristics of a system or component" and "the result of that process"
Viewed as a process, _______________ _____________ is the software engineering life cycle activity in which software requirements are analyzed in order to produce a description of the software's internal structure that will serve as the basis for its construction. A software design (the result) describes the software architecture -- that is, how software is decomposed and organized into components-- and the interfaces between those components. It should also describe the components at a level of detail that enables their construction
software design
What are the parts of "Software Structure and Architecture"?
Architectural Structures and Viewpoints Architectural Styles Design Patterns Architecture Design Decisions Families of Programs and Frameworks
What are the "Key Issues in Software Design"?
Concurrency Control and Handling of Events Data Persistence Distribution of Components Error and Exception Handling and Fault Tolerance Interaction and Presentation Security
The Software Design knowledge area (KA) does not discuss every topic that includes the word "design". The topics discussed in this KA deal mainly with ________________________, the goal of which is to map software into component pieces
D-design (decomposition design)
However, because of it's importance in the field of software architecture, we will also address _______________________, the goal of which is to establish exploitable commonalities in a family of software products
FP-design (family pattern design)
What are the "Software Design Fundamentals"?
General Design Concepts Context of Software Design Software Design Process Software Design Principles
What are the "Software Design Strategies and Methods"?
General Strategies Function-Oriented (Structured) Design Object-Oriented Design Data Structure-Centered Design Component-Based Design (CBD) Other Methods
What are the parts of "User Interface Design"?
General User Interface Design Principles User Interface Design Issues The Design of User Interaction Modalities The Design of Information Presentation User Interface Design Process Localization and Internationalizations Metaphors and Conceptual Models
What are the parts of "Software Design Quality Analysis and Evaluation"?
Quality Attributes Quality Analysis and Evaluation Techniques Measures
What is the breakdown of topics for software design?
Software Design Fundamentals Key Issues in Software Design Software Structure and Architecture User Interface Design Software Design Quality Analysis and Evaluation Software Design Notations Software Design Strategies and Methods Software Design Tools
Software design consists of two activities that fit between software requirements analysis and software construction:
Software architectural design (sometimes called high-level design): develops top-level structure and organization of the software and identifies the various components Software detailed design: specifies each component in sufficient detail to facilitate its construction
What are the "Software Design Notations"?
Structural Descriptions (Static View) Behavioral Descriptions (Dynamic View)
