Software Engineering 1 FINAL Review
What is a subsystem?
A component that performs major service, contains highly coupled objects, and is relatively independent of other subsystems
What does a coordinator object do?
A decision making object
What is a test case?
Input to test the system, which results in real output which is then compared to predicted output
What does a boundary object do?
Interfaces to an external object
What does a proxy object do?
Interfaces to and communicates with an external system or subsystem
What does a user interaction object do?
Interfaces to and interacts with a human user
What is a unique feature of the Spiral Process Model (SPM)?
It analyzes risk in the second quadrant and is very risk focused
List the different ways to write system requirement specifications:
Natural language Structured natural language Design description language Graphical notations Mathematical specifications
What is the goal of Verification and Validation (V&V)?
Establish confidence that the system is 'fit for purpose'
What is Black Box Testing?
Functional testing based on system specification
Define abstract class:
Has no instances Template for creating subclasses Only used as superclass Defines common interface for subclasses
What are some characteristics of the Waterfall model?
No iteration in a software life cycle Only appropriate when the requirements are well understood Each phase clearly separated without overlap
What is requirement specification?
The process of writing down the requirements in a requirements document
What is verification?
The software should conform to its specification is: "Are we building the product right?"
What is validation?
The software should do what the user really requires ie: "Are we building the right product?"
What is the software development process?
A set of activities and associated results which produce a software product
What is UML?
A standardized visual and modeling notation for an object-oriented software system
What is inheritance?
Allows sharing of properties between classes Allows adaptation of superclass to form subclass
What is incremental development?
An approach to software development where the software is delivered and deployed in increments
What is software engineering?
An engineering discipline concerned with all aspects of software production
Which is stronger, Node Coverage or Edge Coverage?
Edge coverage is slightly stronger than node coverage
What are some disadvantages of Incremental development?
Applicable for well understood requirements
What is Dynamic Interaction Modeling?
Approach to determine how objects interact with each other to support use case
What are the different categorizations of application classes by stereotypes?
Boundary Entity Control Application logic
What does an application logic object do?
Contains details specific to the application
What does a state dependent control object do?
Controls other objects and is defined by a finite state machine or state transition table
What is coverage criteria?
Criteria used to decide which test inputs to use
What does business logic object do?
Defines business specific application logic (rules)
What is the objective of object structuring criteria?
Determine all software objects and classes in system
How is formal systems development different from the Waterfall methd?
Development processes are replaced by transformation processes, and requirements specification is refined into a detailed formal specification
What is Software Testing?
Dynamic V & V technique concerned with executing the system with test data and observing operational behavior
What does a timer object do?
Performs some action activated periodically
What does a service object do?
Provides a service to other objects
What does a control object do?
Provides overall coordination for execution of a group of objects
What does a device I/O object do?
Provides the software interface to the hardware I/O device
What is a Test Requirement?
Requirement that a test case must satisfy or cover
What are some advantages of Incremental development?
Software can be immediately used Lower risk of overall project failure Highest priority system services receive the most testing
What are some limitations of the Waterfall method?
Software requirements are tested late in life cycle Operational system is available late in life cycle
What are the two approaches to V&V?
Sofware testng and Software inspectons
What is a functional requirement? Give an example.
Statements of services the system should provide. This may include what the system should not do Ex: User shall be able to transfer funds Ex:Each staff member should be identifiable by their 8 digit employee number
What is Software Inspection?
Static V & V technique concerned with analysis of the system representation to discover problems
What does a entity object do?
Stores information
What is a non-functional requirement? Give an example.
System properties and constraints as well as any development process requirements. Ex: User information should be cleared from the screen when they are finished Ex: System should not be down during working hours
What is Edge Coverage (EC) as it pertains to graph based testing?
TR contains each reachable path of length up to 1 in G.
What is White Box Testing?
Testing based on the structure of the program; applied to relatively small programs
What is defect testing?
Tests designed to discover system defects
Why do we need object and class structuring criteria?
To determine all software objects and classes in the system
What is the goal of defect testing?
To discover defects in programs
What is the goal of software engineering?
To increase software productivity and quality
What are the different software development process models?
Waterfall model Prototyping Formal systems development Reuse‐oriented development Spiral process model (SPM) Capability maturity Model Agile software development
What is integration testing?
When we integrate unit functions and test them using either a top-down or bottom-up approach
What is Software Architectural Design?
When you make decisions about overall software structure, decide subsystems, and make decisions about communication between subsystems
What is Node Coverage (NC) as it pertains to graph based testing?
contains each reachable node in G
What are the advantages and disadvantages of a client-server architecture?
• Advantages - Easy to add new servers or upgrade existing servers • Disadvantages - No shared data model - Redundant management in each server - No central register of names and services
What are the advantages and disadvantages of layered architecture?
• Advantages - Easy to change services - Operating and networking systems • Disadvantage - Difficult to structure systems in this way - Low performance
What are the advantages and disadvantages of repository architecture?
• Advantages - Efficient way to share large amounts of data - Sub‐systems need not to be concerned with • Disadvantages - Conformance to repository data model. - Difficult to evolve and expend data - Difficult to meet sub‐systems' different requirements
List some architectural patterns:
• Pipe and Filter Architecture • Layered Architecture • Repository (Blackboard) Architecture • Client‐Server Architecture • Broker Architecture • Model‐View‐Controller (MVC) Architecture