Unit 1 - Unit 3 Flashcards
Midterm Exam Preparation.
As society moves from personal computer systems to web-based computer systems, what has increased?
- System and network heterogeneity
- Connectivity and diversity
What does cloud computing allow us to utilize the web as a service provider?
Computing and Storage.
Cloud applications make computing a utility.
What is necessary for data in a distributed system?
- Security
- Data integrity
- Privacy
What are the key operational expectations of software systems?
- Changeability
- Durability
What are some factors that significantly affects a software’s stability?
- Number of Software Bugs
- Severity of the software bugs
- Modularity and Reliability
What is the goal when it comes to making changes in the software, how should changes be accommodated?
The objective is to accommodate changes with minimum or no affect to the stability of the software
How do end users quantify software quality?
End users are more interested in the Usability and Accuracy of the software.
How do software designers quantify software quality?
Software designers are more interested in Modularity and Modifiability.
What was introduced in order to accommodate different stakeholder’s viewpoints on software quality?
Software quality Frameworks were introduced.
- ISO-9126
- SEI-CMM
- etc.
List the Six Software Quality Factors of ISO-9126
- Functionality
- Reliability
- Usability
- Maintainability
- Portability
- Efficiency
ACRONYM - FRUMPE
Define Functionality
The set of properties of the software that satisfy stated or implied behaviors of the software system.
Where are the properties defined for a software system Functionality?
In the software system’s specifications and requirements.
Define Reliability
The ability to maintain the stated set of performance for the expected time period or the repeated use of the same functionality.
Which of the Six Software Quality Factors in ISO-9126 depend on the properties of Fault Tolerance and Recoverability?
Reliability.
Which of the Six Software Quality Factors in ISO-9126 depend on the properties;
- Learnability
- Understandability
- Operability
Usability
Define Usability
The characteristics of a software system that define how well someone can learn and use the software.
What is Efficiency of a software system?
The timed and resource usage behavior of the system
What part of software designing affects the timed behavior?
This affected by Algorithm design, component interactions, the code, etc.
What part of software designing affects the resource usage?
- Data Structures
- Memory Management
- Algorithms.
What is defined by how well a software system can accommodate change?
The system’s modifiability which affects the system’s Maintainability
What are some of the key features needed to be relatively easy for a system to be considered to have good Maintainability?
- Ease in the ability to change the design.
- Ease in the ability to add new code modules.
- Ease in the ability to adapt to new technologies.
- Ease of the system to be tested after modifications are made.
A system that can be run in different hardware, software and runtime environments, can be said to have what characteristic?
Portability.
Tell what the acronym FRUMPE stands for?
F - Functionality
R - Reliability
U - Usability
M - Maintainability
P - Portability
E - Efficiency
True or False? Software systems just have Functional requirements.
False.
Software Systems have both Functional and Non-Functional requirements.
True or False? Software quality factors are important considerations that may not have been specified in formal specificatons.
True.
What are some of the characteristics of Modern Software System?
- Large Code Base
- Heterogeneous Resources
- New Programming Languages
- Distributed Resources.
Where can most failures in a Software System be traced back to?
Poor Software Design and Architecture.
What are some of the responsibilities of a Software Designer?
- Constantly Being aware of advances in Technology
- Modifying Code while keeping Integrity.
- Evaluation of quality factors.
- Addressing Functional and Non-Functional requirements.
What pair of factors are Software Engineers most interested in ?
Modularity and Modifiability
Which operational expectation should deal with technological advancements in modern software systems
Changeability which is part of Maintainability.
Consider the safety critical software that is used in chemotherapy devices to control radiation level. What factor is the main concern in such systems
Functionality.
Which ensures that specified behaviors are in place.
Fault tolerance and Recover-ability are two key properties under which software quality factor?
Reliability
What does the efficiency of a software system can be characterized by?
Resource and Timed Usage of the system
Where Can Most Software Failures Be Traced To?
Software Design and Software Architecture
True or False? Software Design and Software Architecture are the same.
False.
True or False? Software Architecture focuses system structure and connections between components
True.
What is done first, Software Design or Software Requirement Analysis
Software Requirement Analysis is completed before Software Design.
What is the focus in Software Architecture?
The focus is the organization of different software components and the methods that components will communicate with each other
Which quality factor of software systems is related to the timed behavior and resource usage behavior?
Efficiency
What is Software Architecture?
Software architecture is a collection of structures and connections among the structures that depict the layout of the software system
Requirements and Risk Analysis is the Viewpoint of which stakeholder?
Customers/End Users
As a stakeholder, what viewpoint is the development team focused on?
- Detail Design
- Implementation Details
- Testing
Hardware and Software Configurations are the viewpoint of what stakeholder?
Deployment Team
What should be the key characteristic of components in a software system?
Loosely Coupled and Highly Cohesive.
What technologies were invented for the web?
- HTML
- URI
- HTTP
From software architecture design perspective, what are some factors that will lead to a better software architecture design initially?
- Design that doesn’t depend on the code that implements it
- Focus on the key elements and their relationship of the software system independent from the technology
Who is best known as the inventor of the World Wide Web?
Sir Tim Berners-Lee.
What idea was proposed that lead to the development of HTML, URI, and HTTP?
Information Managment.
What are some of the observations that can be found in the architecture of the World Wide Web?
- Initial design does not depend on the program code that implement it.
- Initial design represents key design elements and their relationships.
- Relationships are represented as protocols and data exchange/presentation rules are independent of the technology.
Which operational expectation should deal with technological advancements in modern software systems?
Changeability, which leads to Maintainability.
What are the two main sources of development challenges in modern software systems?
Distributed Resources and System Size
What are some factors that directly impact the stability of changeable software systems?
- Satisfying quality factors. (Ex. Modularity)
- Software Bugs.
- Severity of Software Bugs.
List some software requirement in the software development process?
- UI Requirements
- Deployment Requirements
- Performance Requirements
In what viewpoint are customers or end users directly involved?
- Requirements
- Risk Analysis
True or False? Only functional requirements are taken into consideration during the software architecture design process
False
What are the key technologies that make the foundations of WWW?
- HTTP
- URI
- HTML / Markup Language
True or False? If a software is durable, then it cannot be changeable.
False.
Software can be both durable and changeable.
What are the key diagnostics for a usable software system?
- Learnability
- Operablity
- Understandability
What does an object represent in Software Engineering?
An object represents a collection of related
functionality and data.
What is an Object?
An object is a computational entity that encapsulate data
and related methods.
In large systems, objects are related to each other and
communicate with each other at runtime, while performing
system operations.
What is Abstraction?
Is the concept of hiding background details or implementation details of an object.
How is Data Abstraction implemented?
Data abstraction is implemented as a Data Structure. These are the variables that describe the object.
How is Procedural Abstraction Implemented?
Procedural abstraction is implemented by the use of methods, which help abstract the behavior of the object.
List some benefits of Information Hiding.
- Limits the Global impact of local design decisions.
- Emphasizes communication through controlled interface.
- Discourages the use of global data.
- Leads to encapsulation.
What is encapsulation?
It is the bundling of data along with the methods that operate on the data into a single unit.
What does the data or attributes of an object provide?
It provides a means of describing the object.
What do the methods of an object provide?
It provides a means of describing the behavior of the object.
When designing objects using Object-Oriented programming, what are underlying concepts of design?
- Modularity
- Abstraction
- Architecture
What does Information Hiding discourage the use of?
It discourages the use of “global” data.
In Object-Oriented system, what models the behavior of an object?
The methods model the behavior of an object.
While the Variables and attributes describe the characteristics of an object.
The three artifacts are (1) use cases, (2) use case diagrams, and (3) class responsibility collaborator diagrams. When do these three artifacts effectively become the communication medium among the stakeholders
At the beginning of the project cycle.
What is the main objective of analysis modeling?
To Bridge the requirement and the design of a software project
Why are artifacts useful?
The generally can be understood by both technical and non-technical stakeholders.
What are the steps in analysis modeling?
- Scenario-Based Models
- Class Models
- Flow Models
- Behavioral Models
List the Three Broad Classifications of Objects
- Boundary
- Entity
- Control
Explain what are Boundary Classes
- Serve as interface between the system and environment.
Explain what are Entity Classes
- They are independent of the system’s interface, they correspond to real-world entities such as the interfaces with databases.
Explain what are Control Classes
- They are responsible for coordinating boundary and entity classes. They would receive and handle system events.
In Object-Oriented Analysis Modeling, what does a Use Case Diagram do?
- Depicts main functionalities, their relationships, and the actors that invoke the functionalities.
- Represents a high-level dynamic view of the system
- Has Actors and Use Cases
List the relationships when trying to draw Use Cases through iterative process
- Include: Base case is not complete by itself. This relationship completes the needed functionalities of the Base Case.
- Extend: Base case is complete. However, this relationship adds extra functionality.
- Generalization: Base case has common functionalities that are shared with other cases. Looks like an inheritance relationship.
Explain the Basic Flow that is written in a Use Case Scenario?
It is the sequence of events and actions that are in the use case.
Within a CRC Diagram what does the class portion provide?
It provides the name of the class and a brief description.
Within a CRC Diagram what does the Responsibility portion contain or provide?
It contains all the main functionalities that is provided by the class.
Method Names
Within a CRC Diagram what does the Collaborator portion contain or provide?
The collaborator portion provides the names of the other classes that interact with the CRC’s class.
What does CRC Mean?
Class Responsibility Collaborator.
When identifying objects what are some potential objects?
- External Entities
- Structures
- Things
- Occurrences or Events
- Roles
- Organizational Units
- Places
- Structures
How can noun extraction assist in the process of software analysis?
It assists the users in identifying potential objects in they system.
When we are documenting objects and object relationships, which relationships can be used as structural relationships?
- Association
- Aggregation
- Composition
- Generalization/Inheritance
When we are documenting objects and object relationships, which structural relationship can we consider an “is-a-kind of” relationship?
Generalization/Inheritance
When we are documenting objects and object relationships, which structural relationship is considered a “whole-to-part” relationship, where A consists of B, and if A is removed, so is B?
Composition
When we are documenting objects and object relationships, which structural relationship is considered a “whole-to-part” relationship, where B cannot exist without being associated with A, but A
can exist without B, A Contains B?
Aggregation
When we are documenting objects and object relationships, which structural relationship is represented when One needs access to the other and their relationship can be explained by verbs?
Association.