Software Engineering 2 - Lecture 1

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

1/52

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.

53 Terms

1
New cards

Software Design

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

2
New cards

Principles, concepts, and practices

Software Design encompasses the set of _______, _______, and _______ that lead to the development of a high quality system or product.

3
New cards

Design principles

This establish an overriding philosophy that guides the designer as the work is performed.

4
New cards

Design concepts

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

5
New cards

Change continuously

Software design practices ________ as new methods, better analysis, and broader understanding evolve.

6
New cards

Data/Class design
Architectural design
Interface design
Component-level design

Software Engineering Design:

7
New cards

Data/Class design

Transforms analysis classes into implementation classes and data structures.

8
New cards

Architectural design

Defines relationships among the major software structural elements.

9
New cards

Interface design

Defines how software elements, hardware elements, and end-users communicate.

10
New cards

Component-level design

Transforms structural elements into procedural descriptions of software components.

11
New cards

Design; explicit requirements; implicit requirements

The _____ must implement all of the_________ contained in the analysis model, and it must accommodate all of the ________ desired by the customer.

12
New cards

Readable; understandable

The design should be a _______, ________ guide for those who generate code and for those who test and subsequently support the software.

13
New cards

Complete picture of the software

This should be provided in a design, addressing the data, functional, and behavioral domains from an implementation perspective.

14
New cards

Architectural styles or patterns
Well designed components
Evolutionary fashion

A design should exhibit an architecture (a) created using recognizable _________, (b) composed of _______ (c) implemented in an _________.

15
New cards

Modular

A design should be ______.

16
New cards

Distinct representations

A design should contain _______ of data, architecture, interfaces, and components.

17
New cards

Recognizable data patterns

A design should lead to data structures that are drawn from ________.

18
New cards

Functionally independent components

A design should contain_________.

19
New cards

Reduce the complexity of connection

A design should lead to interfaces that ___________ between components and the external environment.

20
New cards

Repeatable method

A design should be derived using a ________ that is driven by software requirements analysis.

21
New cards

Meaningful notation

A design should be represented using ________

22
New cards

Heuristics and notions

Each new software design methodology introduces unique ______

23
New cards

Mechanism
Notation
Heuristics
Guidelines

Common Design Characteristics:

24
New cards

Mechanism

This is for translating the requirements model into a design representation.

25
New cards

Notation

This is for representing functional components and their interfaces.

26
New cards

Heuristics

This is for refinement and partitioning.

27
New cards

Guidelines

This is for quality assessment.

28
New cards

Abstraction
Architecture
Design Patterns
Separation of concerns
Modularity
Information Hiding
Functional independence
Stepwise Refinement
Refactoring
Design Classes

Design Concepts:

29
New cards

Abstraction

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

30
New cards

Architecture

The overall structure or organization of software components, ways components interact, and structure of data used by components.

31
New cards

Design Patterns

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

32
New cards

Separation of concerns

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

33
New cards

Modularity

Compartmentalization of data and function.

34
New cards

Information Hiding

Controlled interfaces which define and enforces access to component procedural detail and any local data structure used by the component.

35
New cards

Functional independence

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

36
New cards

Stepwise Refinement

Incremental elaboration of detail for all abstractions.

37
New cards

Refactoring

A reorganization technique that simplifies the design without changing functionality.

38
New cards

Design Classes

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

39
New cards

Complete
Primitiveness
High cohesion
Low coupling

Design Class Characteristics

40
New cards

Complete

This includes all necessary attributes and methods and sufficient (contains only those methods needed to achieve class intent).

41
New cards

Primitiveness

Each class method focuses on providing one service.

42
New cards

High cohesion

Small, focused, single-minded classes.

43
New cards

Low coupling

Class collaboration kept to minimum.

44
New cards

Data model

Data objects and database architectures.

45
New cards

Data object

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

46
New cards

Data objects

Contain a set of attributes that act as an quality, characteristic, or descriptor of the object.

47
New cards

Interface

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

48
New cards

User interface (UI)
External interfaces to other systems
Internal interfaces between various design components

Important elements of interface design:

49
New cards

UI or User Experience (UX

Is a major engineering action to ensure the creation on usable software products.

50
New cards

Internal and external interface

These should incorporate both error checking and appropriate security features.

51
New cards

Deployment Design Elements

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

52
New cards

Descriptor form deployment diagrams

Show the computing environment but does not indicate configuration details.

53
New cards

Instance form deployment diagrams

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