CIS 350 Final
Composition in UML Class Diagrams
Represented by a closed diamond, shows when an object is dependent on the existence of a super object
Dependency in UML Class Diagrams
Represented by a dashed arrow. Shows some sort of relationship between the two, like how one uses methods from another.
Actual Cost of Work Performed (ACWP)
Sum of the effort actually expended on work tasks that have been completed by a point in time on the project schedule
Iterative Process Flow
Take steps back during Definition, Development, and Verification steps to make sure software meets expectations
Slack Time
Available time subtracted by the real time(actual time)
Three Strategies for Risk Reduction
- Avoiding the Risk: Change requirements for performance or functionality - Transference of Risk: Transfer to other system or buy insurance - Assuming the risk: accept and control it
Capabilities of Traceability
- Create/delete links between requirements - Perform analysis in both directions, show impacted requirements, and show original requirements
Software Development Phases
- Definition - Development - Verification - Maintenance - Umbrella Activities
Reasons for Inaccurate Estimates
- Frequent changes by users - Overlooked tasks - User's lack of understanding of requirements - Insufficient analysis - Lack coordination
Three ways to incorporate quality into Software Engineering
- Quality of the product - Quality of the process - Quality of the product in a business enviornment
Problems of Software Engineering
- Software is difficult to maintain - Schedule and cost estimation is difficult - Many projects fail - Issues can lead to project cancellation
Types of Estimation Costs
-Facilities: hardware, space, furniture, telephone, ect - Software tools for designing software - Staff (effort): bulk of cost
Rich Traceability
???
*Mis*use case
A Use Case from the point of view of an Actor hostile to the system under design. They can *threaten* use-cases, and others can *mitigate* them
Failure
A departure from the system's required behavior
Agile Model
A development model that emphasizes continuous feedback, speed, and cross-functional teamwork.
Traceability Matrix
A matrix of high level requirements and detailed requirements showing the relationship between the two
Actor
A role with three traits: - External to the system - Interacts with the system - Achieves some goal
Process
A series of steps involving activities, constrains, and resources that produce an intended output of some kind
Use Case *Extends*
A use case similar to another but does a little more
UML Object Diagram
An object diagram shows a set of objects and their relationships at a point in time.
Parallel Process Flow
Be Maintaining software as you go through from Communication to Deployment
Development Synthesis
Build (compose) a software from smaller building blocks
Use Case
Captures some visible function and achieves a discrete goal for the user. Examples: -"Close out loan" - "Generate late notice"
Evolutionary Process Flow
Circle thought from Communication to Deployment until it meets expectations, then move to Maintenance
Shaw's Model of Engineering Evolution
Craft and Production lead to Commercial, Commercial and Science lead to Engineering
Development Analysis
Decompose a larger problem into smaller understandable pieces using abstraction
Phased Model
Evolutionary model which builds smaller releases which eventually make the final product
Textual Traceability Representation
First list all higher level requirements followed by modifying system level requirements in parentheses. Then describe all system level requirements.
Use Case Description
Formatted as follows: Actors: Type: (primary, includes, extends) Description: Cross Refs: Use Cases: (example: pre existing requirements)
Linear Process Flow
Go straight through from Communication to Maintenance
Requirements Elicitation
Identifying requirements or obtaining requirements from stakeholders and other sources. Typically includes refining the requirements into additional detail
Work Breakdown Structure
Project development can be separated into a succession of phases which are composed of steps, which are composed of activities
Spiral Model
Iterative model which loops through planning, modeling, construction, deployment, and communication stages continuously until product is finished
Waterfall Model
Linear model which travels from Definition to Maintenance
Most expensive/time consuming Engineering phase
Maintenance
Earned Value Analysis
Measure of the progress in a project
Critical Path Method
Minimum amount of time it takes to complete a project
UML Class Diagram
Notation for describing a class graphically. contains 3 parts: 1) class name at top 2) member variables and their data types 3) member functions and their parameters
Fault
Occurs when a human makes a mistake, called an error, in performing some software activities
*Non* Functional Requirements
Overall qualities or attributes of the resulting system, can be viewed as restrictions or constraints placed on a service offered by the system. Another way to think about it: specifics criteria *about* the system
V Model
Parallel model which travels in a V; tests form the second part of the V and verify the left parts of the development cycle
System Context
Part of the system environment that is relevant for the definition (and understanding) of the requirements of a system. Modeled by *Use Case* diagram
Use Case *Includes*
Piece of behavior shared among multiple use cases, so there are related
UML Class Diagram Visibility Modifiers
Private: - Public: + Protected: # Package: ~
Realization Relationship in UML Class Diagrams
Represented by a dashed line with an open arrowhead. A realization is a relationship between two things where one thing (an interface) specifies a contract that another thing (a class) guarantees to carry out by implementing the operations specified in that contract
Multiplicity of UML Class Diagrams
Represented by a number next to whatever relationship you are describing, it shows the amount of that object you can have with regards to its' parent. Examples: Zero to one: 0..1 Specific number: n Zero to many: 0..n One to many: 1..n Range: n..m
Association in UML Class Diagrams
Represented by a simple line connecting two class with a label, it shows a simple relationship with no actual dependency
Inheritance in UML Class Diagrams
Represented by an arrow with an open, white tip pointing at the superclass
Aggregation in UML Class Diagrams
Represented by an open diamond. Shows that a class could be part of another class, but doesn't have to be
Context Boundary
Separates the relevant part of the environment of a system to be developed from the irrelevant part, i.e., the part that does not influence the system to be developed and, thus, does not have to be considered during requirements engineering
System Boundary
Separates the system to be developed from its environment, or it separates the part of the reality that can be modified or altered by the development process from aspects of the environment that cannot be changed or modified by the development process
Functional Requirements
Specific services that an actor can accomplish using the application, the main product features/services. Another way to think about it: specifies what the system *is*
Budget at Completion (BAC)
Sum of BCWS values for all work tasks in a project
Budgeted Cost of Work Performed (BCWP)
Sum of the BCWS values for all work tasks that have actually been completed by a point in time on the project schedule
Budgeted Cost of Work Scheduled (BCWS)
Sum of the cost budgeted for each work task scheduled for completion by a point in time
Traceability
The ability to link product requirements back to stakeholders' rationales and forward to corresponding design artifacts, code, and test cases. In other words, user requirements are decomposed into system requirements
Ethics
The discipline dealing with what is good and bad and with moral duty and obligation
Software Engineering
The study of systematic and effective processes and technologies for supporting all software lifecycle activities in order to support improved quality and reduced cost
Risk
Unwanted event that has negative consequences
Symbolic Execution
Using symbols as inputs of a function to see the ranges of values that can be returned for each input
Activity Graph
Work breakdown structure that shows dependency among activities with nodes to show milestones and line to show involved activities