quiz 4

Ace your homework & exams now with Quizwiz!

Multi-version

- Each version has some shared files, and some files specific to that version - Versions may replace each other over time - a prior version may need to be examined or modified

what is the current trend?

from monolithic to microservices architecture

Omg is...

object management group

software design

requirements -> architecture and design -> code

Software Design Goals/Activities

- Making system-wide decisions - Architecture, languages, libraries, platforms Making lower-level decisions in an iterative manner: 0. Studying the problem 1. identifying solutions 2. Creating abstractions 3. Evaluating

what do we care about during software design there are 4!

- structure - behaviour - interaction - non-functional properties we focus on the how!

some examples of evolution provided on the slides

- the change the youtube front page made, the changes Netflix had to make as it had to accommodate a greater number of users - adding new overdrafting rule, adding new filter, ie only recording names that start with a - l - adding another trader - adding more users -

what other uml diagrams can we have? There are 6

- user interface mockups - pseudo code - entity relationship diagrams - architecture diagrams - storyboards - sketches

Multiplicity values and their indicators:

- 0..1 one or one - 1 one only - 0... zero or more - nothing: zero or more - 1..*: one or more - 3 only - 0...5 zero to five - 5..15 five to fifteen

Abstraction

- Abstractions are formed by removing irrelevant information and retaining/highlighting relevant information - Every design notation supports a certain kind of abstraction - Software engineering is all about constructing and elaborating abstractions/models

Inheritance in uml class diagrams

- Refers to the ability of one class to inherit the functionality and the variables of another class - To model inheritance on a class diagram, a solid line is drawn from the child class (the class inheriting the behavior) with a closed, unfilled arrowhead (or triangle) pointing to the super class

approaches to software design

- Software architecture - Functional decomposition - Relational database design - Object-oriented design and UML - User interface design

UML

- Unified Modeling Language - Industry standard for software design/modeling - Different types of UML diagrams are used to represent different aspects (structure, behavior, interactions) of a system 0. Class diagrams 1. Activity diagrams 2. Sequence diagrams 3. Use case diagrams•...

UML Class Diagrams

- Used in decomposing a system into modules known as classes - Typically used to - model domain concepts - create a detailed, object oriented design of the code

what are microservices architecutre?

A microservices architecture consists of a collection of small, autonomous services. Each service is self-contained and should implement a single business capability.

what are monolithic architecture systems?

A monolithic application has single code base with multiple modules. Modules are divided as either for business features or technical features. It has single build system which build entire application. It also has single executable or deployable binary.

purpose of designs

Designs to think Designs to talk Designs to prescribe Designs are developed iteratively

new definition of software engineering

Software engineering is the process of building a set of related models that represent the system-to-be.

how to create classes?

The set of nouns in the description of the problem (e.g., student, staff, bill, event, profile, message, account...)• The set of verbs in the description of the problem (e.g., login, logout, create event, freeze account, search, sort...) •Go through some more detailed use cases to further flesh out the flow and objects necessary •UI mockups• A little bit of programming? •Refer to, add to, and revise design as necessary

An architectural style is

a named collection of architectural design decisions that result in beneficial qualities in each resulting system

Version Control Software

a.k.a. "Revision control," "Source control" - Manages changes over time by multiple people

what can we say Software architectural styles

- mixing styles is often necessary

Evolution

- All successful software evolves! - Essential part of software development - Must be accommodated/planned as much as possible - Architecture is a key tool in accommodating evolution in summary: All successful software evolves•We must plan for this•Architecture helps us do so

Object-oriented design and UML

- An "object" contains both data and methods - A "class" is a blueprint for making objects

Association

- Certain objects are related to each other - Biconditional association - Linkage between two classes - Both classes are aware of each other and their relationships - Line between the two

Multi-person

- What if people "step on each other's toes?" I think what he meant is, what if people step in each others shoes? - What if people need to access each other's files?

what part of the class uml diagram is optional

- all things except the name -

what are the five ages of software systems?

0. monolithic 1. distributed monoliths 2. internet-connected 3. internet is system 4. intelligent connected - in each age, the software architects met new challenges by changing and expanding on how they do software architecture work

Design notations

By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect increases the mental power of the race."

software developement languages

Different languages are used at different stages: - english at reqs - uml/diagrams - java


Related study sets

Lecture 6: Research & Null Hypothesis

View Set

AcDec Economics Section 2: Microeconomics

View Set

Unit 12: Immunology; Lesson 1: Innate Immunity: Nonspecific Defense Mechanisms

View Set

3: Microsoft Windows 10 OS Features

View Set

ART-104: Unit 3 Study Guide (Ch.8-9-10) PART 1

View Set