Sunteți pe pagina 1din 3

Chapter 5-11 Chapter 5 A system architecture is the conceptual model that defines the structure, behavior, and other

views of the system. Decompositions read about the types Views read about the different views Architectural Styles ways to design your solutions, read more Quality Attributes Modifiability o Design must be easy to change o Reduce dependencies to minimize affected software unites Performance o Response time: how fast does our software respond to requests? o Throughput: how many requests can it process per minute? o Load: how many users can it support before response time and throughput suffer? Security o Immunity: ability to thwart an attempted attack o Resilience: ability to recover quickly and easily from an attack Reliability o The software system must correctly perform its required functions under assumed conditions o Software is made more reliable by preventing or tolerating faults o Include exception handling in design to handle exception and return system to acceptable state Robustness o They system must include mechanisms for accommodating or recovering form problems in the environment or in another uni Usability o The ease of use

Exam Question #1 Answer: Pipe and filter example: compilers Client server example: the internet is the server and the browser is the client. Multiplayer online games Peer-to-peer: torrent, instant messaging Publish-subscribe: GUI based application, RSS feed Repositories: Business intelligence applications Layering: IP/TCP

#2 Answer: Repository architecture Publish-subscribe Pipe-and-filter Client-server

Chapter 6 Coupling: the dependence between two or more modules Content coupling (tightest level, i.e. least preferred) o One component modifies an internal data item in another component, OR o On component branches into the middle of another component E.X GOTO Common coupling o Multiple modules share the same data item, changing this item means tracing back to all of the components that access it in order to evaluate the effects of that change e.g. global variables Control coupling o One module calls a function thats in a different module Stamp couple o Complex data structures are passed between mules (AKA PASS-BY-REFERENCE)

Cohesion: Coincidental o Parts are unrelated of each other Logical o Parts are related, but only by the logic structure of the code Temporal o The modules data and functions are related because they are used at the same time in an execution Procedural o Similar to temporal cohesion, but the functions pertained Functional o All elements essential to a single function are contained in one mule, and all of the elements are essentials to the performance of the function Informational (HIGHEST level, MOST preferred) o Functional cohesion, but with data abstraction and object-oriented design

#3 Answer Component that prints the current time or directly listing depending on the users input Logical component prints document to file Temporal component: logs user into system Procedural: reads a users data base query and searches for the requested information Communicational: collects users disk access housekeeping data while accessing user data

Functional: component that validates user password and nothing else Content coupling: component one reads in stream of characters and updates a variable and component two keeps track of number of lines read and when a new page should be loaded Common coupling: line counting variable is a shared variable so it can be shared between components Control coupling: component one reads in a stream of characters, which invokes component two Stamp coupling: component one performs visibility check and passes that check to component two to perform a check on that structure Data coupling: component one performs a viability check and passes

#4 Example Addword(French: word, engilsh: word) //adds English and French words and their associations to the dictionary Requres: French is a French word and english is an English word not associated in the dictionary Ensures: adds French and English if not in the dictionary, associates French and English

#6 Example Chapter 8 Statement testing- ensures that every statement of the module is run atleast once Brach testing- examines each decision point (if/else statements) to make sure each brach is chose at least once Path testing- identifies every possible path within the module and makes sure each one is executed at least once Bottom-up-start testing at bottom modules and then work your way up Top-down-start testing at highest level modules and work your way down Modified top-down each levels components are tested individually just before the merger takes place Examples of each testing Bottom-up: ???

Chapter 9 Question 8 Answer o Performance testing is concerned with security, speed, and accuracy. In order to be testable specifications must be acceptable

S-ar putea să vă placă și