chapter 3 Flashcards
(49 cards)
What is Software Architecture?
Defines the overall structure of the system, including major components and their interactions. Focuses on non-functional requirements such as scalability, security, performance, and maintainability.
What does Software Architecture decide?
Decides technology stack, deployment strategy, and data storage solutions.
What is the purpose of Software Architecture?
Provides a high-level blueprint before any actual coding begins. Helps teams understand the ‘what’ and ‘where’ of the system’s major parts.
What is Software Design?
Describes the detailed implementation of individual components. Focuses on functional requirements, such as how features and operations will be implemented.
What does Software Design specify?
Specifies class structures, methods, interfaces, and their responsibilities.
What does Software Design answer?
Answers the ‘how’ of the software development process at the code level.
What is the significance of the design phase in software development?
Design is the highly significant phase in software development where the designer plans how software should be produced to make it functional, reliable, and reasonably easy to understand, modify, and maintain.
What does the design process take into account?
The design takes into account the requirements specified in the SRS document and complies with the software architecture, components, algorithms, interfaces, and other details necessary to realize the desired system functionality.
What is Software Design?
The process of transforming user requirements into a suitable form that assists programmers in coding and implementing the software.
What does the software design phase involve?
Involves the creation of a design document that is based on the customer requirements specified in the Software Requirement Specifications (SRS) document.
What is the primary objective of the software design phase?
To convert the SRS document into a comprehensive design document (Software design document) that provides a blueprint for developing the software system.
What is the role of the designer in the design process?
The designer, in collaboration with the users, engages in a process of exploration and analysis, utilizing their professional expertise and knowledge, to find a solution that meets the requirements.
What does the Software Requirement Specifications (SRS) document provide?
Information about ‘what’ a system is intended to do, outlining the functional and non-functional requirements.
What does the SRS serve as in the design process?
Acts as input to the design process, which focuses on determining ‘how’ the software system will work and be implemented.
What does the SRS typically include?
An introduction, functional requirements, non-functional requirements, system features, external interfaces, and other relevant details.
What is the importance of the SRS in the development process?
It acts as a roadmap for the development process, guiding design, implementation, testing, and maintenance activities.
What do functional requirements outline?
The fundamental services, features, and capabilities expected from a software system.
What do functional requirements articulate?
The primary operations, inputs, outputs, computations, data handling, and interactions that the system is obligated to carry out.
How are functional requirements typically derived?
Derived from the business requirements and user stories, defining the system’s intended behavior from the user’s perspective.
What do non-functional requirements describe?
The comprehensive characteristics, attributes, limitations, and features that are imperative for the software system to possess.
What aspects do non-functional requirements outline?
The level of performance expected from the system’s functions and the restrictions within which it is obliged to function.
What are some examples of non-functional requirements?
Performance, security, usability, reliability, maintainability, portability, and compliance with industry standards, regulations, and legal requirements.
What is modularization in software development?
The procedure of dividing software into several compact modules, each capable of functioning autonomously.
What are the benefits of modularization?
Enhances software comprehensibility, promotes reusability, and simplifies the testing process.