Software Engineering II

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

1/72

flashcard set

Earn XP

Description and Tags

Lecture 1: Software Design Concepts and Principles

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

73 Terms

1
New cards

Software Design

It encompasses the set of principles, concepts, and practices that lead to the development of a high-quality system or product.

Design principles establish and override the philosophy that guides the designer as the work is performed.

Design concepts must be understood before the mechanics of design practice are applied.

practices change continuously as new methods, better analysis, and broader understanding evolve

2
New cards

Data/Class Design

transform analysis classes into implementation classes and data structures.

3
New cards

Architectural Design

defines relationships among the major software structural elements

4
New cards

Interface Design 

defines how software elements, hardware elements, and end-users communicate

5
New cards

Component-level design 

transform structural elements into a procedural description of software components 

6
New cards

Design and Quality

The design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements

7
New cards

Design and Quality

It should be a readable, understandable guide for those who generate code and for those who test and subsequently support the software.

8
New cards

Quality Guidelines

A design should be modular

9
New cards

Quality Guidelines

A design should contain distinct representations of data, architecture, interfaces and components

10
New cards

Quality Guidelines

A design should lead to data structures that are drawn from recognizable data patterns

11
New cards

Quality Guidelines

A design should contain functionally independent components

12
New cards

Quality Guidelines

A design should lead to interfaces that reduce the complexity of connections between the components and the external environment.

13
New cards

Quality Guidelines

A design should be derived using a repeatable method that is driven by software requirements analysis

14
New cards

Quality Guidelines

A design should be represented using meaningful notation.

15
New cards

Abstraction

data (named collection of data describing a data object) and procedural (named sequence of instructions with a specific and limited function).

16
New cards

Architecture 

data (named collection of data describing a data object), procedural (name sequence of instructions with a specific and limited function). 

17
New cards

Design Patterns

Describe a design structure that solves a well-defined design problem within a specific context.

18
New cards

Separation of concerns 

Any complex problem can be more easily handled if it’s subdivided into pieces. 

19
New cards

Modularity

Compartmentalization of data and function

20
New cards

Information Hiding

controlled interfaces that define and enforce access to the component procedural

detail and any local data structure used by the component.

21
New cards

Functional Independence

single-minded (high cohesion) components with aversion to excessive interaction with other components (low coupling).

22
New cards

Stepwise Refinement 

incremental elaboration of detail for all abstractions 

23
New cards

Refactoring

A reorganization technique that simplifies the design without changing functionality.

24
New cards

Design Classes

provide design detail that will enable analysis classes to be implemented.

25
New cards

Complete

includes all necessary attributes and methods, and is sufficient (contains only thos

26
New cards

Primitiveness 

each class method focuses on providing one service

27
New cards

High cohesion

small, focused, single-minded classes

28
New cards

Low coupling

class collaboration to kept to minimum

29
New cards

Principle #1

Design should be traceable to the requirements model

30
New cards

Principle #2

Always consider the architecture of the system to be built

31
New cards

Principle #3

Design of data is as important as the design of processing functions. 

32
New cards

Principle #4

Interfaces (both internal and external) must be designed with care

33
New cards

Principle #5

User interface design should be tuned to the needs of the end-user and stress ease of use

34
New cards

Principle #6

Component-level design should be functionally independent

35
New cards

Principle #7

Components should be loosely coupled to each other rather than the environment

36
New cards

Principle #8

Design representation(models)should be easily understandable.

37
New cards

Principle #9

The design should be developed iteratively.

38
New cards

Principle #10 

Creation of a design model does not preclude using an agile approach.

39
New cards

Data Model

data objects and database architectures. It also examines data objects independently of processing.

40
New cards

Data Object

can be an external entity, a thing, an event, a place, a role, an organizational unit, or a structure. 

41
New cards

Interface

A set of operations that describes the externally observable behavior of a class and provides access to its public operations.

42
New cards

UI/User Experience (UX)

is a major engineering action to ensure the creation of usable software products. 

43
New cards

Deployment Design Elements 

Indicates how software functionality and subsystems will be allocated within the physical computing environment. 

44
New cards

Descriptor form deployment diagrams

Shows the computing environment but does not indicate configuration details

45
New cards

Instance form deployment diagrams 

Identify specific hardware configurations that are developed in the latter stages of design. 

46
New cards

Software Architecture

The architecture is not the operational software; it is a representation that enables a software engineer to: 
> Analyze the effectiveness of the design in meeting its stated requirements 

>Consider architectural alternatives at a stage when making design changes is still relatively easy, and 

>Reduce the risks associated with the construction of the software. 

47
New cards

set of components

that performs a function required by a system

48
New cards

set of connectors

that enable “communication, coordination and cooperation” among components

49
New cards

constraints 

that define how components can be integrated to form the system 

50
New cards

semantic models

that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.

51
New cards

Data Centered Architecture

knowt flashcard image
52
New cards

Data Flow Architecure

knowt flashcard image
53
New cards

Call Return Architecture

knowt flashcard image
54
New cards

Object-Oriented Architecture

knowt flashcard image
55
New cards

Layered Architecture

knowt flashcard image
56
New cards

Model View Controller Architecture

knowt flashcard image
57
New cards

Economy

software is uncluttered and relies on abstraction to reduce unnecessary detail

58
New cards

Visibility

architectural decisions and their justifications should be obvious to software engineers who review

59
New cards

Spacing

separation of concerns in a design without introducing hidden dependencies

60
New cards

Symmetry

Architectural symmetry implies that a system is consistent and balanced in its attributes

61
New cards

Emergence 

Emergent, self-organized behavior and control are key to creating scalable, efficient, and economic software architectures. 

62
New cards

Archetype

is an abstraction (similar to a class) that represents one element of system behavior.

63
New cards

User Experience Design 

We’re not just referring to how the software looks, but also how it feels and functions from the user perspective 

64
New cards

by accident”

UX ensures that no part of the software exists ____.

65
New cards

Strategy

identifies user needs and customer business goals, which form the basis for all UX design work.

66
New cards

Scope

includes both the functional and content requirements needed to realize a feature set consistent with the project strategy.

67
New cards

Functional Requirements

These describe what the system should do — the specific features, actions, or behaviours it must perform.

68
New cards

Non-functional requirements

These describe how the system should perform its tasks.

69
New cards

Structure

consists of the interaction design

70
New cards

interaction design

how the system reacts to user actions

71
New cards

information architecture

how the information is organized

72
New cards

Skeleton

compromising three components: information design, interface design, navigation design. Think of this as your wireframe

73
New cards

Surface

presents visual design, or the appearance of the finished project, to its users. The final visual design— the overall look and feel of your app.

Explore top flashcards