1/30
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software design
covers the set of principles, concepts and practices that exist in the production of a device or commodity of high quality
Application architecture
lies at the software engineering technological center and is implemented irrespective of the process model used in the program
data / class architecture
converts concept models into design class realizations and the applications implementing the data structures that are needed.
architectural design
defines the relationship between major structural elements of the software, the architectural styles and design patterns that can be used to achieve the requirements defined for the system, and the constraints that affect the way in which architecture can be implemented
interface design
explains how the software interacts with applications that interact with the software, and with people using it
interface
means information flow
component-level design
turns the software architecture structural elements into a formal description of the software components
McGlaughlin
______ suggests three characteristics that serve as guide for the evaluation of a good design:
furps
Hewlett-Packard developed a set of software quality attributes that has been given the acronym _______
functionality
is assessed by evaluating the feature set and capabilities of the program, the generality of the functions that are delivered, and the security of the overall system.
usability
is assessed by considering human factors, overall aesthetics, consistency, and documentation.
reliability
is evaluated by measuring the frequency and severity of failure, the accuracy of output results, the mean-time-to-failure (MTTF), the ability to recover from failure, and the predictability of the program.
performance
is measured by considering processing speed, response time, resource consumption, throughput, and efficiency.
supportability
combines the ability to extend the program (extensibility), adaptability, serviceability—these three attributes represent a more common term, maintainability— and in addition, testability, compatibility, configurability, the ease with which a system can be installed, and the ease with which problems can be localized.
abstraction
is the act of representing essential features without including the background details or explanations. It is used to reduce complexity and allow efficient design and implementation of complex software systems
procedural abstraction
refers to a sequence of instructions that have a specific and limited function
Software architecture
alludes to “the overall structure of the software and the ways in which that structure provides conceptual integrity for a system.”
Architecture
is the structure or organization of program components (modules), the manner in which these components interact, and the structure of data that are used by the components
Structural properties
This aspect of the architectural design representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another.
Extra-functional properties
The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics.
Families of related systems.
The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design should have the ability to reuse architectural building blocks.
Structural models
Represent architecture as an organized collection of program components.
Framework models
Increase the level of design abstraction by attempting to identify repeatable architectural design frameworks that are encountered in similar types of applications.
Dynamic models
Address the behavioral aspects of the program architecture, indicating how the structure or system configuration may change as a function of external events.
Process models
Focus on the design of the business or technical process that the system must accommodate.
Functional models
Used to represent the functional hierarchy of a system. A number of different architectural description languages (ADLs) have been developed to represent these models.
pattern
According to Brad Appleton, _____ is a named nugget of insight which conveys the essence of a proven solution to a recurring problem within a certain context amidst competing concerns.
design pattern
describes a design structure that solves a particular design problem within a specific context and amid “forces” that may have an impact on the manner in which the pattern is applied and used.
Separation of concerns
is a design concept that suggests that any complex problem can be more easily handled if it is subdivided into pieces that can each be solved and/or optimized independently
concern
is a feature or behavior that is specified as part of the requirements model for the software.
object-oriented (OO) paradigm
is widely used in modern software engineering