• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/31

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

31 Cards in this Set

  • Front
  • Back
Name three advantages of thinking of design as problem solving?
1. Information may be partitioned between the problem and the solution.
2.The perspective it gives on design.
3. Suggests the use of problem solving techniques.
What is abstraction and why is it important in software design?
the suppression of some properties to provide problem simplification and structured problem solving.
Explain the difference between software product design and software engineering design?
software product design is for software components and software engineering design is for the basis that the software operates on.
Explain the difference between static and dynamic design models.
dynamic represents what happens at run time, while static represents aspects that do not change during execution.
What is the main difference between stepwise refinement and structured design, which were mostly used before the 1990s, and the design methods we use today?
stepwise is a top-down development cycle that decomposes procedures until programming level operations are reached. OOP development is used today that represents components as classes that use and share information between each other.
Make a list of the different kinds of nodes that may appear in a UML activity diagram, and explain what each node does.
Initial Node: small filled circle.
Activity Final Node: small filled circle within another circle.
Decision Node: diamond.
Merge Node: Several edges entering a diamond with only one edge leaving.
Fork Node: Thick line with one edge entering and multiple leaving.
Join Node: Thick line with multiple edges entering and one edge leaving.
Flow Final Node: Circled X, one or more edges entering but none leaving.
Object Nodes: Rectangle containing data or object names.
What are activity diagram tokens? What sorts of tokens are there? What do tokens have to do with activity diagram execution?
Data and Control tokens model the flow of data or control from one procedure to the next. Tokens display the information used to evaluate process activity and how processes and objects interact.
How can deadlock occur in activity diagrams?
When a data token does not provide the information necessary for a decision node to allow further execution of the program.
What is the difference between analysis and resolution?
Analysis is the understanding of the problem and the resolution is the solution to it.
What are the two essential aspects an effective design process?
Analysis and Design.
What are the inputs and outputs of engineering design analysis?
Input: Product Idea
Output: Design Document
Name and define the three types of class models used in engineering design analysis and resolution.
Conceptual Model: Rep. the important entities or concepts in the problem.
Design Model: Rep. the classes in a software system and their attributes, operations, and associations.
Implementation Model: Rep. the classes in a software system and include some or all of the implementation details left out in the Design Models.
Summarize features of UML class diagrams: names, class symbols and their parts, attribute and operation syntax, associations, and multiplicities.
names: character string that identifies a model element.
class symbols:
attribute syntax: name : type [mult.] = value
operation syntax: name(param) : return
associations: lines indicating relation between class instances.
multiplicities: on the association line with range *
State four UML class diagram heuristics.
1. name class, attributes, and roles with nouns.
2. name operations and associations with verbs.
3. prefer associations names to rolenames.
4. Capitalize class names but not anything else.
5. place line association names, multiplicities, & rolenames on opp. sides.
Explain the difference between architectural and detailed design.
architectural design is the higher level layout of the major parts and their major components. And detailed design is the lower level specification of internal elements of all major program components.
What does the acronym DeSCRIPTR stand for and why is it worth knowing?
Decomposition
States
Collaborations
Responsibilities
Interfaces
Properties
Transitions
Relationships

these are all of the things that could be in an architectural specification.
What are design principles?
statements about characteristics that make designs better.
Explain what a box-and-line diagram is and what it is used for.
components of a system connected by lines to show associativity. they are used for static and dynamic modeling which models interaction/relationships.
Explain what quality attributes are in architectural design and give examples of common quality attributes.
the design must uphold quality assurance standards that ensure that the product will be implemented as planned.
ex) maintainability, reusability, reliability, availability, security, performance.
Explain the distinctions among syntax, semantics,and pragmatics, and give examples to illustrate these distinctions.
syntax: what are valid combinations of lexical elements in the language.
semantics: the meaning of a statement.
pragmatics: how messages are used in context to accomplish a certain task.
Explain four heuristics for making box-and-line diagrams.
1. only use when no other standard notation meets needs.
2. keep it simple
3. make symbols for different things obvious.
4. be consistent
5. don't mix static and dynamic elements.
State and explain five ways to generate software architectures.
1. determine functional components
2. determine components based on quality attributes
3. modify an existing architecture
4. elaborate an architectural style
5. transform a conceptual model
Explain what device interface modules are used for.
segregate the code that deals with complex interfaces to devices or other systems.
State and explain three ways to improve architectural alternatives.
1. combine alternatives
2. impose an architectural style
3. apply a mid-level design pattern
Explain what scenarios, profiles, and utility trees are, and how to use them to evaluate a software architecture.
scenario: interaction between a product and particular individuals.
profiles: set of scenarios used to evaluate whether a product is likely to meet a set of req.
utility tree: tree whose sub-trees are profiles and whose leaves are scenarios.
Define the term software pattern.
a general reusable solution to a commonly occurring problem.
Explain the difference between architectural styles, mid-level design pattern, data structures and algorithms, and programming idioms.
mid-level: specifying software at the class level defining their properties, relationships, and interactions.
data struct and algo: the way in which data is stored and accessed.
prog. idioms: the constructs that different languages share in accomplishing a problem.
What is the uses relation? Give examples to illustrate this relation.
The relationship between classes that call each other.
1. A uses B if a correct version of B must be present for A to execute correctly.
2. A calls B if A triggers B.
Where do semicolons appear in T programs?
after a statement.
What are identifiers used for in T programs?
a non-empty sequence of letters and digits beginning with a letter.
What rules govern the formation of trigger sets in a T program?
A transition specification contains a set expression that designates a string set that triggers a state change.