CS1530 Final Exam

Ace your homework & exams now with Quizwiz!

Value-Adjustment Factor

.65 + .01(summation of answers to each of the 14 questions of the GSC Function Points).

Pros of Estimation by Analogy

Based on actual project data.

Early Design Model

COCOMO II Model, Can get rough estimates before the entire architecture has been decided.

3 Classification of Gang of Four

Creational, Structural, Behavioral.

Cost Estimation Step 3

Estimate the schedule (Calendar months).

Mushroom Management

Keeping employees uninformed and misinformed (kept in the dark and fed manure).

Pros of Parkinson's Law

No Overspending.

Design by Committee

Result of having many contributors to a design, but no unifying vision.

Cons of Top - Down

Tend to overlook low level components, No detailed basis.

Integration Testing

verifies that separate systems can work together

Model-View-Controller (MVC)

A pattern of app design in which view controllers serve as the communication pipeline between views and the data model.

Cash cow

A profitable legacy product that often leads to complacency about new products.

Defect Density

A rate-metric which describes how many defects occur for each size/functionality unit of a system. Number of defects divided by System Size. System Size can be based on Lines of Code or Function Points.

Top - Down

AKA Macro Model, Derived from the global properties of the product and then partitioned into various low level components.

Stovepipe

AKA Silos. A structure that supports mostly up-down flow of data but inhibits cross organizational communication.

Software Testing

Activity to check whether the actual results match the expected results and to ensure that the software system is defect free.

Cyclomatic Complexity

Aimed at indicating a program's testability and understandability. Based on graph theory. Measures number of linearly independent paths comprising the program. Number of edges minus number of nodes plus two times the number of unconnected parts of the graph.

Observer

An object that "watches" the state of another object and takes action when the state changes in some way.

Management by perkele

Authoritarian style of management with no tolerance of dissent.

Application Composition Model

COCOMO II Model, Good for projects built using rapid application development tools.

Post-Architecture Model

COCOMO II Model, Most detailed model, used after overall architecture has been decided on.

Constructive Cost Model

COCOMO. Three different models: Organic, Embedded, and Semi-detached. Uses two equations to calculate effort in man months and the number on months estimated for project.

Expert Judgement

Capture the knowledge and experience of the practitioners and providing estimates based upon all projects to which the expert participated.

Model

Classes in your system that are related to the internal representation of the state of the system.

View

Classes in your system that display the state of the model to the user. Usually the GUI or UI, Shouldn't contain app Data.

Controller

Classes that connect model and view. Defines how user interface reacts to user input. Receives messages from View. Sends messages to Model. Sometimes part of view.

Goals of Design Pattern

Codify good design. Give design Structures explicit names. Capture and preserve design information. Facilitate restructuring/Refactoring.

Design Pattern

Common solution to recurring problems in design. 4 Parts: Name, Problem, Solution, Consequences and Trade-offs. Language and Implementation independent.

Anti-Patterns

Common solutions to common problems where the solution is ineffective and may result in undesired consequences.

Estimation by Analogy

Comparing the proposed project to previously completed similar project in the same app domain. Actual data from the completed projects are extrapolated. Can be used either by system or component level.

Bottom - Up

Cost of each software components is estimated and then combined the results to arrive the total cost for the project. Use the knowledge acquired by doing the small software components to construct estimation for system.

Factory Pattern

Create object without exposing the creation logic to the client and refer to newly created object using a common interface. Part of Creational.

Strategy Pattern

Create objects which represent various strategies and a context object whose behavior varies as per its strategy object. Decouples interface from implementation. Part of Behavioral.

Observer Pattern

Defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. Known Uses: Java Message Service. Belongs to the Behavioral .

Cost Estimation Accuracy

Determined by the rate at which estimates converge to the actual cost. Use the mean magnitude of relative error to determine this.

Analysis Paralysis

Devoting disproportionate effort to the analysis phase of a project.

Problems with LOC

Different Lines of Code based on what language and what developer was used. Calculate Lines of code after implementation. Probably not useful for getting prediction of cost and effort for management.

Cons of Facade Pattern

Does not prevent clients from accessing the underlying classes.

Singleton Pattern

Ensures a class has only one instance, and provides a global point of access to it. Known Uses: OS and Print Task Manager. Part of Creational.

Collecting Software Engineering Data

Establish Goal of Data Collection Develop List of questions Establish Data Categories Design and Test data Collection forms/programs Collect and validate data Analyse Data.

Cost Estimation Step 2

Estimate the Effort (man-months).

Cost Estimation Step 1

Estimate the size of the product. (Lines of code or function points).

GSC Function Points

Extension to Function Points because it didn't address certain functionality which systems can offer. Involves answering 14 questions about the system and modifying the original function point count accordingly.

Dependency Injection

Facilitates loosely coupled object-oriented software systems. Technique by which collaborating objects are passed to the class that needs to work with them, and the class itself codes against an interface or base class, rather than a specific implementation class.

Escalation of commitment

Failing to revoke a decision when it proves wrong.

Beta Testing

Final testing before releasing application for commercial purpose. Typically done by end users or others.

Pros of Algorithmic Model

Generate repeatable estimation. Easy to modify input data. Easy to refine and customize formulas. Objectively calibrated to experience.

Software Cost Components

Hardware, software, Travel, Training and Effort Costs (The dominant factor in most projects).

Root Cause of Anti-Patterns

Haste, Apathy, Narrow-Mindedness, Sloth, Avarice, Ignorance, Pride.

Cons of Estimation by Analogy

Impossible if no comparable project had been tackled in the past.

Moral Hazard

Insulating a decision-maker from the consequences of his or her decision.

Cost Estimation Methods

Judgement, Estimation by analogy, price to win estimation, parkinson's law, and Algorithmic (Parametric) model.

Unit Testing

Looking for errors in a subsystem in isolation.

Average Staffing

Man Months divided by Time to Develop

Cons of Bottom - Up

May overlook system level costs. More time consuming.

Function Points

Measure the functionality offered by a system. Language and developer independent. Deal with External inputs, External outputs, Logical internal Files, External Interface Files, and External Inquiries.

Cost Estimation Step 4

Meta-Step. Provide estimates in ranges and periodically refine the ranges to provide increasing precision as the project progresses.

Man Months

Mode Factor A times number of thousand lines of delivered instructions raised to Mode Factor B times Effort Adjustment Factor.

Time to Develop

Mode Factor C times Man Months Raised to the Mode Factor D.

Pros of Observer Pattern

Modularity: Subject and Observers may vary independently. Extensibility: Can define and add any number of observers. Customizability: Different observers provide different views of subject.

Pros of Bottom - Up

More Stable, More detailed, and allow each software group to hand an estimate.

Smoke Testing

Non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details

Functional Point Equation

Number of external inputs Times four plus Number of external outputs times five plus Number of logical internal files times ten plus Number of external interface files times seven plus Number of external enquiries times four.

Pros of Price to win estimation

Often rewarded with the contract.

Cons of Expert Judgment

Only as good as expert's opinion. Hard to document the factors used by the experts.

Cons of Singleton

Potential for misuse of global instance. Implementation may be less efficient than a global Concurrency issues.

Software Cost Estimation

Predicting the resources required for a software development process. Best when done throughout software life cycle.

Price to Win Estimation

Price believed necessary to win the contract.

Facade Pattern

Provides a unified interface to a set of interfaces in a subsystem. Defines a higher-level interface that makes the subsystem easier to use. Part of Structural.

Abstract Factory Pattern

Provides an interface for creating families of related or dependent objects without specifying their concrete classes. Part of Creational.

Failure Rate

Rate of defects over time. Represented by the Lambda symbol. Difference in reliability of a project at different time interval divided by the reliability at the beginning of the interval times the interval.

Pros of Singleton

Reduces namespace pollution Makes it easy to change your mind and allow more than one instance. Allow extension by subclassing.

Pros of Top - Down

Requires minimal project detail, Usually faster and easier to implement, Focus on system level activities.

Pros of Facade Pattern

Shielding clients from subsystem promotes weak coupling b/w subsystem and the clients. Simplifies porting systems to other platforms.

Mean Magnitude of Relative Error

Summation of all estimates' percentage error over the number of estimates.

Con of Parkinson's Law

System is usually unfinished.

White Box Testing

Testing based on an analysis of the internal structure of the component or system.

Regression Testing

Testing of a previously tested program following modification to ensure that defects have not been introduced or uncovered in unchanged areas of the software, as a result of the changes made. It is performed when the software or its environment is changed.

Black Box Testing

Testing, either functional or non-functional, without reference to the internal structure of the component or system.

Measurement

The process by which numbers or symbols are assigned to attributes of entities in the world according to clearly defined rules. Software Measurement deals with Product, Process and People.

Parkinson's Law

The project costs whatever resources are available.

Cons of Price to win estimation

Time and money run out before the job is done.

Alpha Testing

Type of testing a software product or system conducted at the developer's site. Usually it is performed by the end users.

Cons of Algorithmic Model

Unable to deal with exceptional conditions. Some experience and factors cannot be quantified. Sometimes Algorithms may be Proprietary.

Cons of Observer Pattern

Unexpected Updates: Observers don't know about each other. Update Overhead.

Matrix Management

Unfocused organizational structure that results in divided loyalties and lack of direction.

Algorithmic (parametric) Model

Use of mathematical equations to perform software estimation. Accuracy of model can be improved by calibrating the model to the specific environment.

Pros of Expert Judgment

Useful in absence of quantified data. Can factor difference between past experiences and project requirements. Can factor impacts caused by new tech, apps and languages.

Mean time between Failure

Useful in safety-critical applications. One divided by the Failure Rate.

Observable Object

in an observer design pattern, the object "of interest" that represents data or state that may change in the future. Often notifies the observers when its state or data changes.

Adapter Pattern

the design pattern that translates one interface for a class into a compatible interface. Part of Structural.


Related study sets

Origins of Deaf Learning in America (The Deaf Community in America: History in the Making, Ch2)

View Set

quiz questions through the semester

View Set

Anato- MUSCHII MEMBRULUI SUPERIOR

View Set

Fluid and Electrolytes NCLEX Questions, Fluid and Electrolytes NCLEX Questions, Chapter 13: Fluid and Electrolytes NCLEX

View Set

Series 7 Chapter 11: Retirement Plans

View Set

Psychopharmacology Final Study Guide

View Set

Chapter 1: The business of brands

View Set

Angiotensin-Converting Enzyme (ACE) Inhibitors (enalapril)

View Set