Final Exam Review - MIS 566 - Chilton

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

When is the most logical time to use a Packaged System?

When the Business Need is Common.

When is the most logical time to use Outsourcing?

When the Business Need is Not Core to the Business.

When is the most logical time to use Custom Development?

When the Business Need is Unique.

What are some things to Remember when Balancing Functional and Structural Models?

- A Class on a Class Diagram must be Associated with at least one Use-Case. - An Activity in an Activity Diagram and an Event in a Use-Case Description should be related to one or more Operations on a Class Diagram. - An Object Node on an Activity Diagram must be Associated with an instance or an Attribute on a Class Diagram. - An Attribute or an Association/Aggregation Relationship on a Class Diagram should be related to the Subject or Object of a Use-Case.

What is a Package in regards to System Design?

- A General Construct that Groups units together. - Used to Reduce Complexity of models.

Describe Coupling in Regards to Design Criteria?

- A Relationship with Close Coupling means that Changes in One Part of the design may Require Changes in another part.

Describe the Convention Type of Connascence?

- A class has an attribute in which a range of values has a semantic meaning (Example: Account Numbers whose values range from 1000 to 1999 are assets). - If the range would change, then every method that used the attribute would have to be modified.

Describe the Content or Pathological Type of Interaction Coupling?

- A method of one object refers to the inside (hidden parts) of another object. - This violates the principles of encapsulation and information hiding. However, C++ allows this to take place through the use of "friends".

Describe the Functional Type of Method Cohesion?

- A method performs a single problem-related take. - Example: Calculate Current GPA.

What are Implications and Benefits of Custom Development?

- Allows for meeting Highly Specialized Requirements. - Allows Flexibility and Creativity in Solving Problems. - Easier to Change Components. - Builds Personnel Skills. - May Excessively Burden the IT staff. - May add Significant Risk.

What is a Potential/Common Inheritance Conflict?

- An attribute or method in a sub-class with the same name as an attribute or method in the super-class. ----- The cause is a poor classification of sub-classes: ---------- Generalization semantics are violated, OR ---------- Encapsulation and information hiding principle is violated. ----- May also occur in cases of multiple inheritances.

What are some things to Remember about Partitions?

- Base partitions on patterns of activity. ----- Example: Collaborations found in a communication diagram. - Greater coupling among classes may identify partitions. ----- Example: More messages passed between objects suggests that they belong in the same partition. - Identifying Partitions and Collaborations determines which Classes should be Grouped together.

What is System Integration in regards to System Design?

- Building a New System by Combining Packages, Legacy Systems, and New Software. - Not Uncommon to Purchase off the shelf software and Outsource its Integration to Existing Systems.

What are Characteristics of Object-Oriented Systems Analysis and Design (OOSAD)?

- Classes. - Encapsulation & Information Hiding. - Polymorphism & Dynamic Binding. - Inheritance.

What are some Methods to Reduce Coupling?

- Minimize Interaction Coupling by Restricting Messages (Law of Demeter). - Minimize Inheritance Coupling by using inheritance to support only Generalization/Specialization and the Principle of Substitutability.

What are the Design Criteria to check for?

- Coupling: Refers to the Degree of the Closeness of the Relationship between Classes. - Cohesion: Refers to the Degree to which Attributes and Methods of a class Support a Single Object. - Connascence: Refers to the Degree of Interdependency between Objects.

What is Refinement in regards to Factoring?

- Creating a detailed class. ----- EXAMPLE: Creating a secretary or bookkeeper from the Employee class.

What is Abstraction in regards to Factoring?

- Creating a higher level class. ----- EXAMPLE: Creating an Employee Class from a set of job positions.

What are some Design Strategies?

- Custom Development. - Purchase Packaged Software. - Hire an External Vendor (Outsource).

What are the Ideal Proposed Layers?

- Foundation. ----- Example: Container Classes. - Problem Domain. ----- Example: Encapsulation, Inheritance, Polymorphism. - Data Management. ----- Example: Data storage and Retrieval. - User Interface. ----- Example: Data Input Forms. - Physical Architecture. ----- Example: Specific computers and networks.

What are the Types of Method Cohesion?

- Functional - Sequential - Communicational - Procedural - Temporal or Classical - Logical - Coincidental

Describe the CRUDE Analysis?

- Helps to identify object collaborations. - It Labels object interactions in 5 possible ways: ----- CREATE: Can one object create another? ----- READ: Can one object read the attributes of another? ----- UPDATE: Can one object change values in another? ----- DELETE: Can one object delete another object? ----- EXECUTE: Can one object execute the operations of another? - Utilizes a matrix to represent objects and their interactions. - Most useful as a system-wide representation.

What are the Types of Class Cohesion?

- Ideal. - Mixed-Role. - Mixed-Domain. - Mixed Instance.

Describe the Type or Class Type of Connascence?

- If a class has an attribute of Type A, it is tied to the Type of the attribute. - If the type of the attribute changes, the attribute declaration will have to change.

Describe the Name Type of Connascence?

- If a method refers to an attribute, it is tied to the name of the attribute. - If the attribute's name changes, the content of the method will have to change.

What does a Generalization represent or imply?

- Inheritance. - Represents a specialized Use-Case to a more generalized one. - When a Use-Case is a child of a Generalization relationship, it inherits the functionality/information from its parent Use-Case.

Things to Remember about Classes?

- Instantiated Classes are Objects. - Classes are Defined by Attributes, States & Methods. - Classes Communicate through Messages.

What are Types of Coupling?

- Interaction Coupling: Which is measured through Message Passing. - Inheritance Coupling: Deals with the inheritance Hierarchy of Classes.

Describe the Final State in regards to a Behavioral State Machine (BSM)?

- Is shown as a circle surrounding a small, filled-in circle (bull's eye). - Represents the completion of the Activity.

Describe the Initial State in regards to a Behavioral State Machine (BSM)?

- Is shown as a small, filled-in circle. - Represents the point at which an Object begins to exist.

Describe a Generalization Relationship within a Structural Model?

- It enables inheritance of attributes and operations. - It Represents relationships that are "a-kind-of".

Describe a Transition in regards to a Behavioral State Machine (BSM)?

- It indicates that an Object in the first state will enter the second state. - It is triggered by the occurrence of the event labeling the transition. - It is shown as a solid arrow from one state to another, labeled by the event name.

Describe a Frame in regards to a Behavioral State Machine (BSM)?

- It indicates the context of the Behavioral State Machine (BSM).

Describe an Event in regards to a Behavioral State Machine (BSM)?

- It is a noteworthy occurrence that triggers a change in state. - It can be a designated condition becoming true, the receipt of an explicit signal from one object to another, or the passage of a designated period of time. - It is used to label a transition.

Describe a State in regards to a Behavioral State Machine (BSM)?

- It is shown in a rectangle with rounded corners. - Has a name that represents the state of an object.

What is the Key Challenge in System Integration?

- Key Challenge is Integrating Data. ----- May Require Data Transformations. ----- New Package may Need to Write Data in the Same Format as a Legacy System. - Develop "Object Wrappers". ----- Wraps the Legacy System with an API to allow Newer Systems to Communicate with it. ----- Protects the Investment in the Legacy System.

What are Layers used for in System Design?

- Layers are used to Represent and Separate Elements of the Software Architecture. - Layers help with making it easier to understand a complex system. - Example: ----- Model-View-Controller (MVC) Architecture. ----- Separates Application Logic from User Interface.

What are the Types of Cohesion?

- Method Cohesion: ----- Does a method perform more than one operation? ----- Performing more than one operation is more difficult to understand and implement. - Class Cohesion: ----- Do the attributes and methods represent a single object? ----- Classes should not mix class roles, domains or objects. - Generalization/Specialization Cohesion: ----- Classes in a hierarchy should show "a-kind-of" relationship, not associations or aggregations.

Describe Dynamic Binding in regards to Object-Oriented Systems Analysis and Design?

- Methods: The specific method used is selected at run-time. - Attributes: The data type is chosen at run-time. - Implementation of Dynamic Binding is language specific. -Example: ----- The Program chooses Salary, Hourly, etc.

Good Programming Practice should do what?

- Minimize overall Connascence. ----- However, when combined with encapsulation boundaries, you should: ---------- Minimize across encapsulation boundaries (less interdependence between or among classes). ---------- Maximize within encapsulation boundary (greater interdependence within a class). ----- A sub-class should never directly access any hidden attribute or method of a super-class.

What are the Types of Connascence?

- Name. - Type or Class. - Convention. - Algorithm. - Position.

What are the Types of Interaction Coupling?

- No Direct Coupling - Data. - Stamp. - Control. - Common or Global. - Content or Pathological.

What are some things to Remember when Balancing Structural and Behavioral Models?

- Objects in a CRUDE Matrix must be Associated with Classes. - Behavioral State Machine must be Associated with Objects on a Class Diagram. - Objects in Sequence and Communication Diagrams must be Associated with Objects on a Class Diagram. - Messages on Sequence and Communication Diagrams and Transitions on Behavioral State Machines must be Associated with Operations in a Class. - States in a Behavioral State Machine must Match the different values of an Attribute of an Object.

Describe Behavioral State Machines (BSM's)?

- Objects may change state in response to an event. - Different states are captured in this model. ----- Shows the different states through which a single object passes during its life. ----- May include the object's responses and actions. - Example: Patient states. ----- New patient: Has not yet been seen. ----- Current patient: Is now receiving treatment. ----- Former patient: No longer being seen or treated. - Typically used for only complex objects.

What are Examples of Packaged Software?

- Office Suites. ----- Example: Word Processors, Spreadsheets, etc. - Enterprise Systems. ----- Example: SAP, PeopleSoft.

What does a Package Diagram do?

- Package Diagrams show the Packages and their Relationships. ----- Aggregation & Association Relationships are possible. ----- Packages may be Dependent upon one another. ---------- If one Package is Modified, Others that Depend on it may also Require Modification.

What are Packages used for in System Design?

- Packages Group together Similar Components. ----- Example: Use-Cases, Class Diagrams.

Describe an Aggregation Relationship within a Structural Model?

- Relates parts to wholes. - Represents relationships that are "a-part-of".

What are Implications of Outsourcing?

- Requires extensive two-way coordination, information exchange, and trust. - Disadvantages include loss of control, compromise confidential information, transfer of expertise. - You should carefully choose your vendor. - You should carefully prepare the contract and method of payment.

What are some things to Remember when Balancing Functional and Behavioral Models?

- Sequence & Communication Diagrams must be Associated with a Use-Case. - Actors on Sequence & Communication Diagrams or CRUDE Matrices must be Associated with Actors within a Use-Case. - Messages on Sequence & Communication Diagrams, Transitions on Behavioral State Machines and Entries in a CRUDE Matrix must Relate to Activities on an Activity Diagram and Events in a Use-Case. - All Complex Objects in Activity Diagrams must be Represented in a Behavioral State Machine.

What are the Types of Inheritance?

- Single Inheritance: One Parent Class. - Multiple Inheritance: Multiple Parent Classes (Not supported by all programming languages). - Redefinition of Methods and/or Attributes. ----- Not Supported by All Programming Languages. ----- May cause Inheritance Conflict. Note: Designers must know what the chosen programming language supports.

What are Implications and Benefits of Packaged Software?

- Software that was already written. Example: Accounting Software. - It may be more Efficient. - It may be more thoroughly Tested and Proven. - It may range from Components to Tools to entire Enterprise Systems. - You must Accept Functionality provided. - May Require Change in how the firm does business. - May Require Significant "Customization" or "Workarounds".

What are the Components of Behavioral State Machines (BSM's)?

- States: Values of an object's attributes at a point in time. - Events: The cause of the change in values of the object's attributes. - Transitions: Movement of an object from one state to another. ----- May include a guard condition to flag that a condition is true and allow the transition.

What are some Non-Functional Requirements?

- System Performance. - System Environment Issues: ----- Distributed VS. Centralized Processing ----- User Interface. ----- Database. - The system must be maintainable and affordable, efficient and effective.

What is Polymorphism in regards to Object-Oriented Systems Analysis and Design?

- The Ability to take on Several Different Forms. - When the same message triggers different methods in different objects. - Example: ----- CalcPay(Salary) and CalcPay(Hourly).

What two phases are Highly Interrelated?

- The Analysis and Design phases. ----- These two phases may require much going back and forth between the two. Example: Prototyping may uncover additional information.

Describe the Mixed-Domain Type of Class Cohesion?

- The class has one or more attributes that relate objects of the class to other objects on a different layer. - As such, they have nothing to do with the underlying semantics of the thing that the class represents. - In these cases, the offending attribute(s) belongs in another class located on one of the other layers. ----- For Example: A Port Attribute located in a problem domain class should be in a System Architecture class that is related to the Problem Domain class.

Describe the Mixed-Instance Type of Class Cohesion?

- The class represents two different types of objects. - The class should be decomposed into two separate classes. - Typically, different instances only use a portion of the full definition of the class.

Describe the Sequential Type of Method Cohesion?

- The method combines two functions in which the output from the first one is used as the input to the second one. - Example: Format and Validate Current GPA.

Describe the Communicational Type of Method Cohesion?

- The method combines two functions that use the same attributes to execute. - Example: Calculate Current and Cumulative GPA.

Describe the Temporal or Classical Type of Method Cohesion?

- The method supports multiple related functions in time. - Example: Initialize all attributes.

Describe the Logical Type of Method Cohesion?

- The method supports multiple related functions, but the choice of the specific function is chosen based on a control variable that is passed into the method. ----- For Example, the called method could open a checking account, open a savings account, or calculate a loan, depending on the message that is sent by its calling method.

Describe the Procedural Type of Method Cohesion?

- The method supports multiple weakly related functions. ----- For Example, the method could calculate student GPA, print the student record, calculate cumulative GPA, and print cumulative GPA.

Describe the Coincidental Type of Method Cohesion?

- The purpose of the method cannot be defined or it performs multiple functions that are unrelated to one another. ----- For example, the method could update customer records, calculate loan payments, print exception reports, and analyze competitor pricing structure.

What are the Contract Types involved with Outsourcing?

- Time-and-Arrangement: Pay for all time and expenses. - Fixed-Price: Pay an agreed upon price. - Value-Added: Pay a percentage of benefits.

What are Guidelines for Creating a Behavioral State Machine (BSM)?

- Use only for complex objects. - Draw the initial state in the upper left corner. - Draw the final state in the bottom right corner. - Use simple, but descriptive names for states. - Look out for "black holes" and "miracles". - Ensure guard conditions are mutually excessive. - Ensure transitions are associated with messages and operations.

What are Guidelines to Remember for Building Package Diagrams?

- Use them to Logically Organize your Design. - Observe Semantic Relationships. ----- Vertical Positioning indicates Inheritance. ----- Horizontal Positioning indicates Aggregation and Association. - Dependency Relationships should also Observe Semantic Relationships. - For Use-Case Package Diagrams, include the Actors. - Use Simple but Descriptive Names for each package. - Make Packages Cohesive.

Describe the Data Type of Interaction Coupling?

- When the calling method passes a variable to the called method. - If the variable is composite (ex: an object), the entire object is used by the called method to perform its function.

What does it mean to Utilize Encapsulation and Information Hiding?

----- Combine Data and Operations into a Single Object. ----- Reveal only how to make use of an Object to other Objects. ----- This is the Key to Reusability.

What are the Steps when Building a Package Diagram?

1) Set the Context. 2) Cluster Classes together Based on Shared Relationships. 3) Create Packages from the Clusters. 4) Identify Dependency Relationships among Packages. 5) Layout and Draw the Diagram including Only the Packages and their Dependencies. 6) Verify and Validate the Package Diagram.

What are the Steps for Building a Behavioral State Machine (BSM)?

1) Set the context. 2) Identify the states of the object. ----- Initial. ----- Final. ----- Stable states during its lifetime. 3) Layout the diagram: Use a left to right sequence. 4) Add the transitions. ----- Identify the triggers (events that cause the transition). ----- Identify the actions which execute. ----- Identify the guard conditions. 5) Validate the model - ensure all states are reachable

Describe Cohesion in regards to Design Criteria?

A Cohesive Class, Object or Method refers to a Single thing.

What is Design Criteria in Object-Oriented Systems Analysis and Design?

A Set of Metrics to Evaluate the design.

What is the Problem Domain?

Anything and everything that is needed to define the area under analysis, fully understand the inputs and outputs of its processes, and achieve the goals of the area under analysis, but nothing more.

What does BSM stand for?

Behavior State Machine.

What is Custom Development?

Building a software in-house from scratch.

What's an Important thing to Remember in System Design?

Class & Method Design Must Precede Coding.

Describe Connascence in Regards to Design Criteria?

Classes are so interdependent that a change in one necessitates a change in the other.

What is Factoring in regards to System Design?

Creating Modules that Account for Similarities and Differences between units of interest.

What is a Partition in regards to System Design?

Creating a Sub-system of closely collaborating classes.

What is Outsourcing?

Hiring an External Firm to Create the System.

When is a Use-Case classified as Complex?

If it supports more than seven transactions.

What is Inheritance in regards to Object-Oriented Systems Analysis and Design?

It Permits reuse of existing classes with extensions for new attributes or operations.

What does Analysis determine?

It determines business needs.

When is a Behavioral State Machine created?

It is created only for Complex Objects.

What causes, "Black Holes"?

It is when Activities have no outflows, they are referred to as Black Hole activities.

What causes, "Miracles"?

It is when an Activity has no flow to the next point or to the endpoint (Final-Activity node).

What does the Law of Demeter say?

Messages should be Sent ONLY by an OBJECT: - To itself. - To Objects contained in Attributes of itself or a super-class. - To an Object that is Passed as a Parameter to the Method. - To an Object that is Created by the Method. - To an Object that is Stored in a Global Variable.

What does OOSAD stand for?

Object-Oriented Systems Analysis and Design.

What is Packaged Software?

Software Already Written.

What are the Elements of a Behavioral State Machine (BSM)?

States, Initial State, Final State, Events, Transitions, Frames.

Analysis Models must accurately portray what?

The Problem Domain.

Describe the Stamp Type of Interaction Coupling?

The calling method passes a composite variable (ex: an object) to the called method, but the called method only uses a portion of the object to perform its function.

Describe the Control Type of Interaction Coupling?

The calling method passes a control variable whose value will control the execution of the called method.

Describe the Mixed-Role Type of Class Cohesion?

The class has one or more attributes that relate objects of the class to other objects on the same layer (Example: The Problem Domain Layer), but the attribute(s) have nothing to do with the underlying semantics of the class.

What is the Goal of Design Activities?

The goal is to create a Blueprint for the Design that makes sense to implement.

Describe the No Direct Coupling Type of Interaction Coupling?

The methods do not relate to one another; that is, they do not call one another.

Describe the Common or Global Type of Interaction Coupling?

The methods refer to a "Global Data Area" that is outside the individual objects.

What do Design Activities focus on?

They focus on how to build the system.

Describe the Ideal Type of Class Cohesion?

This class has none of the mixed cohesion types.


Set pelajaran terkait

Hinkle Chapter 34: Management of Patients With Hematologic Neoplasms

View Set

TERM 4 Ch 28 Care of Patients Requiring Oxygen Therapy or Tracheostomy

View Set

Introduction to Computers Module 7

View Set