COSC 319 Chapter #4

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/19

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 11:43 AM on 10/6/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

20 Terms

1
New cards

Why is software architecture important?

It affects the performance, usability, security, reliability, and maintainability of a software.

2
New cards

What is the IEEE definition of software architecture?

Architecture is the fundamental organization of a software system embodied in its components, their relationships to each other, and to the environment and the principles guiding its design and evolution.

3
New cards

What are the differences between a centralized and a distributed security architecture?

In a centralized security architecture, all assets are stored in one place with layers of security protection around them. In a distributed architecture, assets are stored in different places so that a single successful attack does not gain access to all assets.

4
New cards

List the most important architectural issues for product development.

Non-functional product characteristics, product lifetime, software reuse, number of users, and software compatibility.

5
New cards

What architectural choice is likely to increase system maintainability?

Constructing a system from a number of fine-grain interacting components where each component has a single responsibility.

6
New cards

Explain what is meant by system availability.

The percentage of time when a system is up and running and available to deliver its services.

7
New cards

What are the three fundamental questions you should consider during the architectural design process?

How should a system be organized as a set of architectural components? How should components be distributed and communicate? What technologies should be used to build the system?

8
New cards

List 4 types of software component relationships.

"Part-of", "uses", "is-located-with", and "shares-data-with".

9
New cards

Suggest three ways of controlling architectural complexity.

Components should focus on implementing a single concern, functionality should not be duplicated at different places in a system, and component interfaces should be stable.

10
New cards

Why is it sometimes impossible to localize component interactions within a single layer?

Some concerns are cross-cutting and cannot be localized within a layer.

11
New cards

What are cross-cutting architectural concerns?

Concerns, such as security and performance, that cannot be localized to a single layer in the system architecture.

12
New cards

What types of integration are possible when multiple services are included in a software product?

Full integration where services can communicate with other services through their API, partial integration where services share components and databases but do not interact directly, and independent where there are no shared services or databases.

13
New cards

Why do you need to consider the technologies used in a layered architecture when decomposing a system into components?

The choice of technologies used in a layer affects the components in the layer above.

14
New cards

Briefly describe the notion of a client-server architecture.

A user interacts using a client (computer or mobile device) which hosts the user interface; system functionality is implemented on a remote server. Communication now is usually based on the HTTP protocol.

15
New cards

What is the function of the fundamental components of the MVC pattern?

Model, which manages the data that is to be displayed; View, which manages the representation of the data as presented to the user; Controller, which manages changes made to the model and communicates with the View to ensure the representations are updated.

16
New cards

What is JSON, and how does it differ from XML?

JSON is a language for describing data. It differs from XML in that it is based on a structured organization without the need for explicit tags for every data item.

17
New cards

What is a service-oriented architecture?

An architecture where the fundamental software components are stateless, independent software services.

18
New cards

List 5 technology choices that you have to make when designing a software architecture.

Database, platform, server, open source, and development tools.

19
New cards

What factors have to be considered when implementing a mobile product?

Intermittent connectivity, processor power, power management, and on-screen keyboard.

20
New cards

What are the advantages and disadvantages of using open-source software?

Advantages: lower cost, tested software, and faster time to market; Disadvantages: lack of control over software evolution, lack of competitive edge, and possibly restrictive license conditions.