CS 411 Final

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Fitt's Law

"The time to acquire a target is a function of the distance to and size of the target."

parkinsons law

"Work expands so as to fill the time available for its completion" A corollary: If you wait until the last minute, the task only takes a minute to do

Direct Costs

Costs that are clearly chargeable to a specific work package. Labor, materials, equipment, and other

Structural patterns:

Deal with decoupling interface and implementation of classes and objects Design Patterns that ease the design by identifying a simple way to realize relationships between entities.

what are some micro (bottom-up approaches to budgeting?

Template method Parametric Procedures Applied to Specific Tasks Detailed Estimates for the WBS Work Packages Phase Estimating: A Hybrid

Bottom-up (micro) estimates:

Project is broken down into work packages Low level managers price out each work package Overhead and profits are added to develop the budget

list some design issues

Response time Help facilities Error handling Menu and command labeling Application accessibility Internationalization

Hofstadter's law

"It always takes longer than you expect, even when you take into account Hofstadter's Law." From his classic book Escher, Goedel Bach; An Eternal Golden Braid

Learnability-design principle

A Web or Mobile App interface should be designed to minimize learning time, and once learned, to minimize relearning required when the App is revisited.

Anticipation

A Web or Mobile App should be designed so that it anticipates the use's next move.

Time-Phased Budgets

A cost estimate is not a budget unless it is time-phased. Time phasing begins with the time estimate for a project. Time-phased budgets mirror how the project's cash needs (costs) will occur or when cash flows from the project can be expected. Budget variances occur when actual and forecast events do not coincide.

what is a pattern

A pattern is a recurring solution to a standard problem, in a context. Patterns support reuse of software architecture and design

what is budgeting, what does it imply?

A plan for the costs of project resources A budget implies constraints Thus, it implies that managers will not get everything they want or need

Human interface objects

A vast library of reusable human interface objects has been developed for Web or Mobile Apps.

how can you maintain backwards compatibility?

A very simple way to handle this is with an adapter pattern that provides legacy interfaces on one side and translates the calls to the new platform

Visible navigation

A well-designed Web or Mobile App interface provides "the illusion that users are in the same place, with the work brought to them."

Maintain work product integrity

A work product (e.g., a form completed by the user, a user specified list) must be automatically saved so that it will not be lost if an error occurs.

name some creational patterns

Abstract Factory: Factory for building related objects Builder: Factory for building complex objects incrementally Factory Method: Method in a derived class creates associates Prototype: Factory for cloning new instances from a prototype Singleton: Factory for a singular (sole) instance Ensure that a class has only one instance and provide a global point of access to it

structural patterns

Adapter: Translator adapts a server interface for a client Bridge: Abstraction for binding one of many implementations Composite: Structure for building recursive aggregations Decorator: Decorator extends an object transparently Facade: Simplifies the interface for a subsystem Flyweight: Many fine-grained objects shared efficiently. Proxy: One object approximates another

Give an example of using a design language on a web page

Bold text might mean a waring, yellow boxes might be tips, etc

what are some behavior patterns

Chain of Responsibility: Request delegated to the responsible service provider Command: Request or Action is first-class object, hence re-storable Iterator: Aggregate and access elements sequentially Interpreter: Language interpreter for a small grammar Mediator: Coordinates interactions between its associates Memento: Snapshot captures and restores object states privately Observer: Dependents update automatically when subject changes State: Object whose behavior depends on its state Strategy: Abstraction for selecting one of many algorithms Template Method: Algorithm with some steps supplied by a derived class Visitor: Operations applied to elements of a heterogeneous object structure

name some macro (top down) approaches to budgeting

Consensus methods Ratio methods Apportion method Function point methods for software and system projects Learning curves

What is meant by a contextual UI?

Contextual UIs hide options when they are not needed. For example, no need to show graphics options when working on strictly text

Direct (Project) Overhead Costs

Costs incurred that are directly tied to an identifiable project deliverable or work package. Salary, rents, supplies, specialized machinery

what are the 3 types of patterns?

Creational patterns: Structural patterns: Behavioral patterns:

what are design patterns not

Data structures that can be encoded in classes and reused as is (i.e., linked lists, hash tables) Complex domain-specific designs (for an entire application or subsystem) If they are not familiar data structures or complex domain-specific subsystems, what are they? They are: "Descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context."

Behavioral patterns:

Deal with dynamic interactions among societies of classes and objects How they distribute responsibility These design patterns are specifically concerned with communication between objects. design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication. command - queue commands so you can undo them redo etc

Creational patterns:

Deal with initializing and configuring classes and objects Abstract Factory: Factory for building related objects Singleton: Factory for a singular (sole) instance

what are the benefits of design patterns?

Design patterns enable large-scale reuse of software architectures and also help document systems Patterns explicitly capture expert knowledge and design tradeoffs and make it more widely available Patterns help improve developer communication Pattern names form a common vocabulary

what is the formula for calculating the estimated time for a software engineering process?

Estimated Time = (Toptimistic + 4Tlikely + Tpessimistic) / 6

why is it important to estimate time and cost?

Estimates are needed to support good decisions. Estimates are needed to schedule work. Estimates are needed to determine how long the project should take and its cost. Estimates are needed to determine whether the project is worth doing. Estimates are needed to develop cash flow needs. Estimates are needed to determine how well the project is progressing. Estimates are needed to develop time-phased budgets and establish the project baseline.

explain the migration strategy - modify

If the gap is small, and the infrastructure can support the end state, it might make sense to use this approach Incremental upgrades carry relatively low risk, and it's easy to back out if something goes wrong A downside - you are usually stuck with whatever the existing technologies are There might be opportunities to improve existing functionality as part of the upgrade

how can you improve the process of cost estimating?

Inputs from a lot of areas are required to estimate a project May have a professional cost estimator to do the job Project manager will work closely with cost estimator when planning a project We are primarily interested in estimating direct costs Indirect costs are not a major concern

observer pattern

Intent: Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically Used in Model-View-Controller framework Model is problem domain View is windowing system Controller is mouse/keyboard control

proxy pattern

Proxy-structural pattern Proxy: acts as convenient surrogate or placeholder for another object. Remote Proxy: local representative for object in a different address space Virtual Proxy: represent large object that should be loaded on demand Protected Proxy: protect access to the original object

what are reasons for why you need to adjust estimates?

Reasons for Adjusting Estimates Interaction costs are hidden in estimates. Normal conditions do not apply. Things go wrong on projects. Changes in project scope and plans.

explain the wrap migration strategy pros and cons

The third approach is to leave the existing system in place and running, and add a layer that provides additional capabilities This is becoming more popular, since the sunk cost is preserved and the additional functionality can be provided in just about any technology For one thing, you've just dug a hole and planted your legacy application firmly in it by building things on top of it Basically you are gaining in the short term by deploying a simpler solution, but in the long run it might cost significantly more (maintenance, replacement cost, etc) Performance might suffer either here or downstream...you are asking a system to do more work than perhaps it has been designed for

Consistency

The use of navigation controls, menus, icons, and aesthetics (e.g., color, shape, layout)

upstream and downstream testing

There will be processes upstream from the new system providing inputs, and processes downstream taking its outputs Testing the new system requires testing both upstream and downstream processes in addition to the new system

what are the 4 interface design steps:

Using information developed during interface analysis, define interface objects and actions (operations). Define events (user actions) that will cause the state of the user interface to change. Model this behavior. Depict each interface state as it will actually look to the end-user. Indicate how the user interprets the state of the system from information provided through the interface.

what is ETL?

extract, transform, load

QWAN

good UI has it Quality without a name

what are the four phases of RUP?

inception, elaboration, construction, transition

estimating the budget is difficult because

lots of people have input on the budget, there may not be historical info about similar costs, even with similar projects there can be significant differences

the more standardize the project and components, the more experienced the cost estimator, the ______ the uncertainty for the budget estimate

lower

what are some motivations for migration?

market pressure, our system is slow/not flexible/end-of-life, someone offers us a deal on a new system,

what is the formula for estimating project budgets:

material + labor + equipment + capital + overhead + profits = bid aka resources + profits = bid

what are the three approaches to migration

modify, wrap, scrap

migration involves _______

moving from something that we have to something that we want/need

planning fallacy

people tend to underestimate the time of work necessary to complete a task, but not if the estimates are submitted anonymously (Kahneman and Tversky)

what is the design evaluation cycle?

preliminary design -> build prototype interface -> user evaluates interface -> evaluation is studied by designer -> design modifications are made -> build prototype # n interfaceuser evaluates interface -> evaluation is studied by designer -> modifications are made or design is complete

what are dependencies

programs are dependent on others and any changes in platform or application might introduce a nightmarish tangle of dependencies

what are some factors that estimate the quality of the estimates?

project duration, people, padding estimates, project structure and organization

there are two types of errors

random and bias - need to eliminate systematic errors

patterns support ___ of software architecture and design

reuse - its cheaper

multiple paths, good or bad?

the temptation is to provide lots of ways to accomplish a task but don't do that, pick one and be consistent; figure out what users expect that path to be with focus groups; don't be afraid to change UI based on user feedback

learning curve calculations

the total time = Time for first unit * the sum from n=1 to n of the number of units raised to (log decimal rate/ log 2)

what is the future state?

this is the next step after gap analysis, you must describe as closely as possible what the future state should be

how should you test the green field/new system?

Typically the old system is kept running and work is routed to both the old and new systems For example, a trading application would feed trading floor data to both systems, operating in parallel, and at the end of the day they should produce identical results Another approach is to generate data on the old system and feed it to the new system

What are the four steps of Polya's problem-solving approach?

Understand the problem Plan a solution Carry out the plan Examine the result for accuracy

According to the heat maps we looked at, what area does the user's eye spend the most time looking at?

Upper left quadrant

skip

higher

some guidelines for good UI:

-Keep it simple i.e. Steve Jobs remotes -keep it consistent: users learn a page so menus etc should appear in the same place -no surprises- it should just work without much thought and without unexpected results

what are the guidelines for estimating time, cost, resources

Have people familiar with the tasks make the estimate. Use several people to make estimates. Base estimates on normal conditions, efficient methods, and a normal level of resources. Use consistent time units in estimating task times. Treat each task as independent, don't aggregate. Don't make allowances for contingencies. Adding a risk assessment helps avoid surprises to stakeholders.

Focus

The Web or Mobile App interface (and the content it presents) should stay focused on the user task(s) at hand.

Readability

All information presented through the interface should be readable by young and old.

what is an anti-pattern?

An anti-pattern is an architecture that you should not implement it is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive. Busy waiting Inner platform God object Big pile o' poop

whats the point of contingency funds and time buffers

Are created independently to offset uncertainty. Reduce the likelihood of cost and completion time overruns for a project. Can be added to the overall project or to specific activities or work packages. Can be determined from previous similar projects.

some tips for aesthetic design

Don't be afraid of white space. Emphasize content. Organize layout elements from top-left to bottom right. Group navigation, content, and function geographically within the page. Don't extend your real estate with the scrolling bar. Consider resolution and browser window size when designing layout.

what does the ETL tool do?

ETL tools Extract data from a database, apply rules to Transform the data into another format or schema, and finally Load the data into a new database

according to Bruce Tognozzi effective interfaces are

Effective interfaces are visually apparent and forgiving Effective interfaces do not concern the user with the inner workings of the system. Effective applications and services perform a maximum of work, while requiring a minimum of information from users.

what did the GoF do?

Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides (Addison-Wesley, 1995) Design Patterns book catalogs 23 different patterns as solutions to different classes of problems, in C++ & Smalltalk The problems and solutions are broadly applicable, used by many people over many years GOF presents each pattern in a structured format

describe the iterative budgeting process- negotiation in action

Most projects use some combination of top-down and bottom-up budgeting Both are prepared and compared once you calculate the expected time for each task create a preliminary schedule, you do a forward pass and a backward pass the forward pass finds out the earliest times the activity can start and finish the backward pass says how late the activity can start and finish follow early start to the early finish, then do it from late finish to late start

General and Administrative Overhead Costs

Organization costs indirectly linked to a specific package that are apportioned to the projectFront office and sales salaries, wages, and commissions Office supplies Outside legal and audit fees Administration and sales office lease Administration and sales utilities Administration and sales telephones Administration and sales travel and entertainment

develop a design language:

Part of being consistent is to create a language for your app based in design For example Bold text might always mean a tip or hint A yellow box in the upper right might mean caution Carry the language elements throughout not only the app, but its packaging, marketing and so on

what are the 4 essential elements of design patterns?

Pattern name: increases vocabulary of designers Problem: intent, context, when to apply Solution: UML-like structure, abstract code Consequences: results and tradeoffs

what are some reasons why a company may not have a good handle on the type of systems they have:

Systems grow organically over a period of time Staff comes and goes The company might have lots of stovepiped apps

Latency reduction

The Web or Mobile App should use multi-tasking in a way that lets the user proceed with work as if the operation has been completed.

Why is it important to keep menu items in the same place on each page?

The consistency helps train the user on how to use the application

Efficiency

The design of the Web or Mobile App and its interface should optimize the user's work efficiency, not the efficiency of the software engineer who designs and builds it or the client-server environment that executes it.

Communication

The interface should communicate the status of any activity initiated by the user

Controlled autonomy

The interface should facilitate user movement throughout the Web or Mobile App, but it should do so in a manner that enforces navigation conventions that have been established for the application.

what is estimating?

The process of forecasting or approximating the time and cost of completing project deliverables. The task of balancing the expectations of stakeholders and the need for control while the project is implemented

gap analysis:

The real work is to answer the question, "how do we get from here to there?" That's the gap analysis What you want to produce is a strategy, a series of steps, that will move you toward the desired end state in a timely manner The gap analysis becomes a project plan for the migration

Top-down (macro) estimates:

Top managers estimate/decide on the overall budget for the project These trickle down through the organization where the estimates are broken down into greater detail at each lower level The process continues to the bottom level

Track state

When appropriate, the state of the user interaction should be tracked and stored so that a user can logoff and return later to pick up where she left off.

the interface should let the user know what three things:

Where am I? The interface should provide an indication of the Web or Mobie App that has been accessed inform the user of her location in the content hierarchy. What can I do now? The interface should always help the user understand his current options what functions are available? what links are live? what content is relevant? Where have I been, where am I going? The interface must facilitate navigation. Provide a "map" (implemented in a way that is easy to understand) of where the user has been and what paths may be taken to move elsewhere within the Web or Mobile App.

explain the scrap migration strategy

You might have no choice...sunsetting hardware, end-of-life software, or the gap is so large that it makes sense to start over This approach usually has the most constraints...you typically need to preserve the functionality of the old system while you are at the same time dropping it off a cliff Even though constrained, there's significant opportunity to future-proof the system by using newer methods and technologies For green field projects there's a lot of up-front analysis to do When modifying, you usually can get away with slacking off on the as-built analysis of existing functionality, since it isn't going away For green field designs each piece of functionality must be recreated exactly and so must be exhaustively documented

who was Christopher Alexander?

a professor of architecture he figured out how patterns can be helpful

apportion method

top down method Overall project budgets can be set/controlled very accurately A few elements may have significant error Management has more control over budgets Small tasks need not be identified More difficult to get buy in Leads to low level competition for larger shares of budget ed individually

name the 3 types of estimates

top down(macro), bottom up(micro), negotiated

testing UI should involve _____ users

untouched

where should important information and functionality go?

upper left hand corner or web based apps

creativity in the UI is constrained by

usability

what does UX stand for

user experience

what does UI stand for

user interface

what is the present state?

when you must establish a baseline for where your system is now; The first step, then, is to do a thorough inventory of all of the physical components Once that's in place we must do the same for the business processes and flows The goal is to be able to document fairly precisely the current situation

student syndrome

you don't focus on the task until the task is due for completion

what is function of point count method?

you figure out the number of inputs, outputs, inquiries, how many of them there are and figure out a total for the complexity factor More likely to catch unusual expenses People tend to overstate their budget requirements Management tends to cut the budget

contextual UI

your app should understand or learn what features are used when and use that knowledge to simplify the interface


Ensembles d'études connexes

C# Relational and Logical Operators

View Set

Management 80 Chapter 9: International Financial Markets

View Set

Class 16 B - Disaster and Emergency Management

View Set

Anatomy & Biomechanics Final- Muscles

View Set

APUSH Chapter 2 - Europeans Encounter the New World

View Set