Podcast
Questions and Answers
What is the primary focus at the end of the Design Analysis phase?
What is the primary focus at the end of the Design Analysis phase?
- Database schema and data modeling.
- Implementation details and coding standards.
- Detailed internal logic of the system.
- External behavior and characteristics of the system as a black box. (correct)
What is the main deliverable or outcome of the Design Resolution phase?
What is the main deliverable or outcome of the Design Resolution phase?
- A prototype of the user interface.
- A design document from which code implementation can be performed. (correct)
- A detailed project plan with timelines and resource allocation.
- A set of user stories and acceptance criteria.
What are the two main parts that constitute the Design Resolution?
What are the two main parts that constitute the Design Resolution?
- Architectural Design and Detailed Design. (correct)
- Front-end Development and Back-end Development.
- User Interface Design and Database Design.
- System Analysis and Requirements Gathering.
In Architectural Design, what aspects of the system are defined?
In Architectural Design, what aspects of the system are defined?
In Detailed Design, what aspects of the system are defined?
In Detailed Design, what aspects of the system are defined?
Decomposition in software architecture involves breaking down the system into what?
Decomposition in software architecture involves breaking down the system into what?
What are the key specifications that define the architecture's main components?
What are the key specifications that define the architecture's main components?
In the context of software architecture, what does 'properties' refer to regarding main components?
In the context of software architecture, what does 'properties' refer to regarding main components?
What are the two dimensions of relationships among components when specifying the architecture?
What are the two dimensions of relationships among components when specifying the architecture?
What does the acronym 'DeSCRIPTR' stand for in the context of architectural design considerations?
What does the acronym 'DeSCRIPTR' stand for in the context of architectural design considerations?
Which of the following is NOT a consideration included in the acronym DeSCRIPTR for Architectural Design?
Which of the following is NOT a consideration included in the acronym DeSCRIPTR for Architectural Design?
In Detailed Design, what is the role of a refined 'DeSCRIPTR'?
In Detailed Design, what is the role of a refined 'DeSCRIPTR'?
Besides a refined DeSCRIPTR
, what are the four additional considerations in Detailed Design?
Besides a refined DeSCRIPTR
, what are the four additional considerations in Detailed Design?
Which of the following describes the 'Feasibility' principle in basic design?
Which of the following describes the 'Feasibility' principle in basic design?
What does the 'Adequacy' principle refer to in the context of basic design principles?
What does the 'Adequacy' principle refer to in the context of basic design principles?
What key aspect does the 'Economy' principle address in software design?
What key aspect does the 'Economy' principle address in software design?
Which of the following describes the 'Changeability' principle in software design?
Which of the following describes the 'Changeability' principle in software design?
Why is assessing 'Feasibility' sometimes difficult in basic design?
Why is assessing 'Feasibility' sometimes difficult in basic design?
How might 'Adequacy' be measured in a software design?
How might 'Adequacy' be measured in a software design?
What are some metrics that can be used to assess the 'Economy' of a design?
What are some metrics that can be used to assess the 'Economy' of a design?
Which of the following can be used to gauge 'Changeability' in a design?
Which of the following can be used to gauge 'Changeability' in a design?
Which basic design principles are design criteria shown to satisfy?
Which basic design principles are design criteria shown to satisfy?
What are the three categories of Constructive Design Principles?
What are the three categories of Constructive Design Principles?
What is the benefit of self-contained modules with well-defined interfaces?
What is the benefit of self-contained modules with well-defined interfaces?
What does 'Construct' mean in the context of modularity in design?
What does 'Construct' mean in the context of modularity in design?
Which of the following is NOT an advantage of a 'clearly-defined' modular design?
Which of the following is NOT an advantage of a 'clearly-defined' modular design?
What is the main idea behind the Principle of Information Hiding?
What is the main idea behind the Principle of Information Hiding?
Which of the following describes 'Low Coupling' in software design?
Which of the following describes 'Low Coupling' in software design?
What does 'High Cohesion' refer to in software design?
What does 'High Cohesion' refer to in software design?
Which level of coupling is considered the worst?
Which level of coupling is considered the worst?
What type of cohesion involves a module performing multiple, unrelated tasks?
What type of cohesion involves a module performing multiple, unrelated tasks?
A module performs exactly one task to achieve a single goal. What level of cohesion is this?
A module performs exactly one task to achieve a single goal. What level of cohesion is this?
What does it mean to "balance" high cohesion and low coupling?
What does it mean to "balance" high cohesion and low coupling?
In the context of Implementability Principles, what is the primary focus?
In the context of Implementability Principles, what is the primary focus?
What constitutes 'simplicity' within Implementability Principles?
What constitutes 'simplicity' within Implementability Principles?
According to Gelernter of Yale, what two traits characterize beauty in design?
According to Gelernter of Yale, what two traits characterize beauty in design?
Flashcards
Decomposition in design
Decomposition in design
The act of dissecting a system into its components to understand or design its structure.
Decomposed System
Decomposed System
Breaking down the system into major components.
States
States
Describes various states in the major components.
Collaboration
Collaboration
Signup and view all the flashcards
Relationships
Relationships
Signup and view all the flashcards
Interfaces
Interfaces
Signup and view all the flashcards
Properties
Properties
Signup and view all the flashcards
Transitions
Transitions
Signup and view all the flashcards
Responsibilities
Responsibilities
Signup and view all the flashcards
DeSCRIPTR
DeSCRIPTR
Signup and view all the flashcards
Detailed Design
Detailed Design
Signup and view all the flashcards
Component Packaging
Component Packaging
Signup and view all the flashcards
Implementation Specifications
Implementation Specifications
Signup and view all the flashcards
Algorithms
Algorithms
Signup and view all the flashcards
Data Structures
Data Structures
Signup and view all the flashcards
Design Principles
Design Principles
Signup and view all the flashcards
Feasibility
Feasibility
Signup and view all the flashcards
Adequacy
Adequacy
Signup and view all the flashcards
Economy
Economy
Signup and view all the flashcards
Changeability
Changeability
Signup and view all the flashcards
Constructive Design Principles
Constructive Design Principles
Signup and view all the flashcards
Modularity Principles
Modularity Principles
Signup and view all the flashcards
Implementability Principles
Implementability Principles
Signup and view all the flashcards
Aesthetic Principles
Aesthetic Principles
Signup and view all the flashcards
Construct
Construct
Signup and view all the flashcards
Small Modules
Small Modules
Signup and view all the flashcards
Information Hiding
Information Hiding
Signup and view all the flashcards
Least Privilege
Least Privilege
Signup and view all the flashcards
Coupling
Coupling
Signup and view all the flashcards
Cohesion
Cohesion
Signup and view all the flashcards
Contention Coupling
Contention Coupling
Signup and view all the flashcards
Common Cuopling
Common Cuopling
Signup and view all the flashcards
Control Coupling
Control Coupling
Signup and view all the flashcards
Stamp Coupling
Stamp Coupling
Signup and view all the flashcards
Data Coupling
Data Coupling
Signup and view all the flashcards
Study Notes
- At the end of Design Analysis, requirements and system are viewed as a black box with external behavior and characteristics, with initial potential internals explored through class diagrams
- Software Engineering Design Resolution aims to develop a design solution for the problem stated in the requirements
- Design Resolution consists of Architectural and Detailed Design
- The result is a design document from which code implementation can proceed
Design Levels
- Architectural design defines major components, their high-level structure (responsibilities, properties, interfaces), and their relationships and interactions
- Detailed design defines and "opens" the internal elements of major components, their structures, relationships, interactions, processing algorithms, and attribute (data) structures
Main Parts of Software Architecture
- Decomposition/Composition of main components
- Assignment of responsibilities/functionalities to those components
- Specification of properties, including states and transitions
- Specification of relationships, including collaboration and interfaces
Architectural Design Considerations (DeSCRIPTR)
- Decomposed system into major components
- States that the major components may exist in
- Collaboration among components
- Relationships among the major components in terms of dependencies and communications
- Interfaces among the components that have relationships
- Properties that the major components must possess or satisfy
- Transitions of components' states
- Responsibilities of the major components
- Architectural Design may contain all or parts of this list.
Detailed Design Considerations
- Detailed Design is a refinement of Architecture Design, starting with detailed decomposition of major components and subsequent refinements with smaller elements
- Refined DeSCRIPTR is part of detailed design
- Packaging of components and related elements
- Implementation specifications for the packaged components
- Algorithms to implement services/functionalities
- Data structures and data types
Basic Design Principles
- Design Principles improve design, sharing similarities with other disciplines but some are specific to SE
- Basic Design Principles improve satisfying product specification
- Feasibility: Design can be technically implemented
- Adequacy: Meets stakeholders' needs and expectations
- Economy: Can be implemented within reasonable cost (resource and time)
- Changeability: System is easily modifiable
Observations About Basic Principles
- Feasibility may require time to assess
- Adequacy may not be binary
- Economy has easy and difficult parts to assess
- Changeability can be measured with modular size, documentation, external interfaces, and use of abstract classes and inheritance
Design Criteria
- Constructive (Construction) Design Principles lead to a good quality product and satisfy Basic Design Principles
- Modularity: modules with well-defined interfaces lead to high quality
- Implementability: easier to implement lead to high quality
- Aesthetic: beauty and ease of use please users.
Modularity in Design
- Construct the design via decomposition and reconstruction in the form of well-defined, independent modules/units that perform clear services and have clear interfaces
- A module may be a Class
- Definition is not clear, can be based on size or complexity
- Advantages of modular design include ease of understanding, documentation, change, test, reuse, and performance improvement
Modularity Principles
- Principle of Small Modules: Design with smaller ones -Physical size and mental states
- Principle of Information Hiding: shields internal details of a Module's Structure and Processing -Clearly defined interfaces
- Principle of Least Privilege: Doesn't allow access to unneeded resources -Restricts modules from accessing unneeded resources
Low Coupling and High Cohesion
- Coupling reflects the degree of relatedness among modules which should be kept to a minimum
- Cohesion is the degree of relatedness of parts within a module which should be maximized
Levels of Coupling
- Content: worst, high coupling (module directly references content of another)
- Common: modules use common "global" data
- Control: module passes information to control logic of another
- Stamp: module passing complete structure to another
- Data: best, low coupling (only necessary items passed)
Levels of Cohesion
- Coincidental: worst, weakest (module performs unrelated tasks)
- Logical: module performs series of related functionalities
- Temporal: module tasks related in time
- Procedural: module performs related procedures that should be done separately
- Communicational: module tasks on same data where sequence is based on a procedure
- Sequential: module performing related tasks where output of one is the input to the next
- Functional: best, strongest (module performs one task to achieve a singlegoal)
Balancing the Design
- Design small, single-purpose, cohesive modules which causes a lot of data being passed.
- Designers should balance low coupling and high cohesion
- Low coupling and high cohesion can improve: understandability, documentation, changeability, ease of testing and debugging, re-usability, and improvement
Implementability Principles
- After having an implementable design, designers address how easy it is to implement.
- Simple designs are often the easiest to understand and implement with the least steps
- Reuse existing artifacts
- Design with re-use
Aesthetic Principles
- Gelernter of Yale states that beauty is simplicity and powerful functionality
- User-Oriented Design deligths users and matches/exceeds their expectations
Other Principles
- Design to "delight" the users by matching or exceeding expectations and staying within users' knowledge and experience contexts
- Design to "improve the user experience" by matching users' past experience and extending the experience by extrapolating and improving some part of the interaction
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.