Software Design Life Cycle Flashcards
SDLC
Software Design Life Cycle
What are the 7 stages of SDLC
Planning Analysis Design Development Test Deployment Operations and Maintenance
What are Functional requirements?
Describes a function the software must perform.
Helps capture intended behaviour.
Requirements stated by the user which can be seen directly in the final product
What are non-functional requirements?
Quality attributes of a software system. Helps ensure good UX. Portability Security Maintainability Reliability Flexibility Scalability Performance Reusability
TDD - Technical Design Document
written by development team.
describes in detail the entire or parts of design:
interface, data types and structures, detailed designs
SRS - Software Requirement Specification
Assessing user requirements.
More specific and details requirements in software terms.
Output can be directly used into implementation in programming languages
SSD - System Sequence diagram
shows the events that external actors generate, their order, and possible inter-system events of a particular scenario of a use case
SRS
Software Requirement Specification
SSD
System Sequence Diagram
TDD
Technical Design Document
Actor
Anyone who interacts with the system
Objects
Are entities with attributes and methods.
Classes
Generalised description of an object. Defines attributes and methods an object can have.
Messages
Consist of the identity of the target object, the name of the requested method and any other action needed (arguments)
Abstraction
an abstraction relates to the observable behaviour - how an object and its behaviours are presented to the user
Handles complexity by hiding internal implementation details. Just need to know what methods are available and which input parameters are needed.
Encapsulation
encapsulation is the implementation which helps create the experience of abstraction
Data and methods bundles into a single unit e.g. class Also refer to a mechanism of restricting direct access to components of an object
Inheritance
one class gaining properties of another class. Allows programmers to create a new class that reuses variables and functions from another class
Polymorphism
refers to the ability of variable, function or object to take on multiple forms.
Multi-tier architecture
where a program is separated into three or more computers in a distributed network.