Software Design

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/157

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

158 Terms

1
New cards

Software Design

A process of defining the architecture components interfaces and other characteristics of a system or component and planning for a software solution

2
New cards

Software Architectural Design

Describing software's top-level structure and organization and identifying the various components also called top-level design

3
New cards

Software Detailed Design

Describing each component sufficiently to allow for its construction and specific behavior

4
New cards

Abstraction

A design principle that focuses on essential characteristics while hiding unnecessary details

5
New cards

Coupling

The degree of interdependence between software modules - low coupling is preferred

6
New cards

Cohesion

The degree to which elements within a module belong together - high cohesion is preferred

7
New cards

Decomposition

Breaking down a complex system into smaller more manageable components

8
New cards

Modularization

Organizing software into separate independent modules

9
New cards

Encapsulation

Hiding internal details of a component and exposing only necessary interfaces also called information hiding

10
New cards

Separation of Interface and Implementation

Keeping the interface definition separate from its implementation details

11
New cards

SWEBOK

Software Engineering Body of Knowledge - ISO/IEC TR 19759:2005 standard specifying guide to generally accepted software engineering knowledge

12
New cards

Programming Paradigm

A style or way of programming that defines how to structure and write code

13
New cards

Procedural Programming

Programming paradigm based on procedure calls with step-by-step instructions also called imperative programming - top-down approach

14
New cards

Logical Programming

Programming paradigm based on mathematical logic with facts and rules - declarative approach rather than imperative

15
New cards

Functional Programming

Programming paradigm treating computation as evaluation of mathematical functions avoiding changing state and mutable data

16
New cards

Object-Oriented Programming

Programming paradigm based on objects that encapsulate state and behavior with features like encapsulation inheritance abstraction and polymorphism

17
New cards

Sequence Construct

Programming construct where statements execute one after another in order

18
New cards

Selection Construct

Programming construct that provides choice between alternatives based on conditions like if-then-else

19
New cards

Repetition Construct

Programming construct that causes statements to execute repeatedly until end condition is met like loops

20
New cards

Software Process

A set of related activities that leads to production of a software system

21
New cards

Software Specification

Fundamental activity defining what services are required and constraints on operation

22
New cards

Software Development

Fundamental activity of designing and programming the software

23
New cards

Software Validation

Fundamental activity of checking software meets customer requirements

24
New cards

Software Evolution

Fundamental activity of modifying software to meet changing customer and market needs

25
New cards

Sequential Life Cycle Model

Linear systematic approach to software development progressing through communication planning modeling construction and deployment - also called Waterfall Model

26
New cards

Waterfall Model

Sequential life cycle model with distinct phases flowing downward like a waterfall

27
New cards

Incremental Life Cycle Model

Development broken into mini projects with partial systems successively built - highest priority requirements tackled first

28
New cards

Evolutionary Life Cycle

Combination of iterative and incremental models allowing system to evolve

29
New cards

Spiral Model

Combination of iterative model and SDLC model with execution in cyclic process - focuses on risk analysis

30
New cards

V-Model

SDLC model where execution happens sequentially in V-shape - also known as Verification and Validation model with testing phase for each development stage

31
New cards

Big Bang Model

Simplest model requiring little planning lots of programming and lots of funds - suitable for small projects

32
New cards

Agile Model

Software development approach based on iterative development - swift and versatile

33
New cards

Scrum

Agile framework focused on managing tasks in team-based development with sprints and daily standups

34
New cards

Extreme Programming XP

Agile framework for higher quality software and quality of life - specific engineering practices like pair programming and test-driven development

35
New cards

RAD Model

Rapid Application Development - process based on prototyping without specific planning - less attention to planning more to development

36
New cards

Use Case Modeling

Interaction modeling approach to model interactions between system and external agents

37
New cards

Sequence Diagram

Interaction modeling to show interactions between system components over time

38
New cards

Class Diagram

Structural model showing classes in system and associations between them in object-oriented design

39
New cards

Data Flow Diagram DFD

Graphical representation of flow of data in business information system showing processes data stores flows and external entities

40
New cards

Process in DFD

Receives input data and produces output with different content or form - named with verb followed by singular noun

41
New cards

Data Flow in DFD

Path for data to move from one part of information system to another - can be single element or data structure

42
New cards

Data Store in DFD

Represents data at rest - situation when system must retain data for later use by processes

43
New cards

External Entity in DFD

Person department or outside organization that provides data to system or receives outputs - also called terminators

44
New cards

Context Diagram

Highest level DFD containing only one process representing entire system - Level 0

45
New cards

Level 0 DFD

Context diagram showing system as single process with external entities and major data flows

46
New cards

Level 1 DFD

Explosion of context diagram showing major processes of system - also called Diagram 0

47
New cards

Level 2 DFD

Further decomposition of Level 1 processes showing more detailed sub-processes

48
New cards

Balancing DFD

Ensuring inputs and outputs are conserved between levels of DFDs during decomposition

49
New cards

Top-Down Decomposition

Technique to show more detail in lower-level DFDs - also called leveling

50
New cards

Logical DFD

Describes flow of data to perform business functions - what system does

51
New cards

Physical DFD

Describes implementation of logical data flow - how system does it

52
New cards

HIPO Diagram

Hierarchical Input Process Output - represents hierarchy of modules in software system

53
New cards

IPO Diagram

Input Process Output - depicts flow of control and data in a module

54
New cards

Data Dictionary

Centralized collection of information about data - metadata repository with rigorous definitions

55
New cards

Metadata

Data about data - information describing data characteristics

56
New cards

Data Dictionary Contents

Information about data flows data structures data elements data stores and data processing

57
New cards

Algebraic Notation in Data Dictionary

Equal sign means is composed of - Plus sign means and - Braces for repetitive elements - Brackets for either or - Parentheses for optional

58
New cards

Data Structure

Made up of smaller structures and elements described using algebraic notation

59
New cards

Data Element

Smallest unit of data that has meaning - base or derived

60
New cards

Base Element

Data element initially keyed into system

61
New cards

Derived Element

Data element created by process usually from calculation or decision-making

62
New cards

Structural Record

Group of related data elements like customer name address and telephone

63
New cards

Software Tool

Program that automates labor in management design coding testing inspection or maintenance of programs

64
New cards

Preprocessor

Software tool performing preliminary work on draft program before complete testing

65
New cards

Program Analyzer

Tool that modifies or monitors operation of program to collect information about operating characteristics

66
New cards

Test Data Generator

Tool that analyzes program and produces files of data needed to test program logic

67
New cards

Structured Programming

Developing programs in certain style with standard constructs for easier understanding and maintenance

68
New cards

Top-Down Development

Designing coding and testing by building modules from general level to specialized detailed level

69
New cards

Chief Programmer Team

Team with skilled chief programmer backup programmer and programming librarian

70
New cards

Standard

Published document ensuring reliability of materials products methods or services - establishes requirements specifications and guidelines

71
New cards

ISO

International Organization for Standardization - world's largest developer of international standards

72
New cards

ISO 9001

Standard for quality management systems - can be applied to any organization

73
New cards

Quality Management

What organization does to ensure products satisfy customer quality requirements and comply with regulations

74
New cards

Generic Standard

Standard that can be applied to any organization regardless of size product or sector

75
New cards

Management System

What organization does to manage processes so products meet objectives like customer satisfaction and regulatory compliance

76
New cards

ISO 9000-3

Guideline on how to use ISO 9001 for software development

77
New cards

ISO/IEC/IEEE 12207

International standard for software life cycle processes defining all processes for developing and maintaining software

78
New cards

IEEE 1074

Standard for developing software project life cycle process

79
New cards

Design Constraint

Restriction on design of system or development process that must be fulfilled to meet technical business or contractual obligations

80
New cards

Sources of Design Constraints

Restriction of design options - Conditions on development process - Regulations and imposed standards

81
New cards

Business Constraint

Limits decisions about people processes costs and schedules

82
New cards

Technical Constraint

Limits decisions about technology used in software system

83
New cards

FDA

Food and Drug Administration - regulatory body imposing standards on medical products

84
New cards

FCC

Federal Communications Commission - regulatory body for communications

85
New cards

DOD

Department of Defense - imposes standards on defense systems

86
New cards

UL

Underwriters Laboratory - safety certification organization

87
New cards

Confidentiality

Professional responsibility to respect confidentiality of employers or clients

88
New cards

Competence

Professional responsibility not to misrepresent level of competence or accept work outside competence

89
New cards

Intellectual Property Rights

Professional responsibility to protect patents copyright and IP of employers and clients

90
New cards

Computer Misuse

Professional responsibility not to use technical skills to misuse others computers

91
New cards

ACM IEEE Code of Ethics

Software Engineering Code of Ethics and Professional Practice - standard for teaching and practicing software engineering

92
New cards

Software Engineering Activities

Software specification development validation and evolution

93
New cards

Version Control

Tool for managing changes to source code over time

94
New cards

Building Software

Tools for compiling and creating executable programs

95
New cards

Automated Testing

Tools for automatically testing software for bugs and issues

96
New cards

Deployment Tools

Tools for releasing and installing software in production environments

97
New cards

Monitoring Tools

Tools for tracking software performance and issues in production

98
New cards

Integration Tools

Tools for combining different software components and systems

99
New cards

Context Level Diagram Rules

Must fit on one page - Process name should be system name - Gets number 0

100
New cards

DFD Numbering Convention

Use unique reference numbers - hierarchy of 1 2 3 then 1.1 1.2 1.3 then 1.1.1 1.1.2