Informatics 43 Study Guide

¡Supera tus tareas y exámenes ahora con Quizwiz!

What are benefits of publish-subscribe ("pub-sub") architecture?

Efficiency, scalability

What are some examples of architecture in action?

Email, WWW, Client Server Architecture

What are examples of client-server architecture?

Email, web browser-based programs

What language is used in the requirements stage?

English

Software is

Everywhere; exciting; fun, doing a lot, saving a lot of lives, helpful, harmful, visually studied very extensively

What is a scenario?

Fictional representation of scenarios that personas are in that you can use to help guide decisions about product, features, navigation, visual design...

What are examples of peer-to-peer architecture?

File sharing systems, Skype, Google Hangouts, Internet of Things, Bitcoin, Blockchain

What are the phases of the classic OSS model?

First, develop the initial version; second, maintain (evolve)

What are some QA techniques?

Formal methods; status analysis of program properties; reviews and inspections; testing; using a mixture of techniques

How do you use subdomains in equivalence class partitioning/boundary value analysis?

From each subdomain, select a representative(s) to be a test case input(s). Test for each subdomain; use normal values, boundary or edge input values.

What are the strengths of the spiral model?

Good for new projects with uncertain, complex requirements

What are the strengths of the build-and-fix software model?

Good for small programs that do not require much maintenance or many developers

How is software used in cars

Hackers can cut the breaks, shut down the engines; self-driving cars

What are examples of some "false" silver bullets?

High-level languages Time-sharing Unified programming environments Object-oriented programming AI Expert systems Automatic/graphical programming Program verification Environments/tools Workstations

What is an error?

Human mistake in programmer's mind

What is HCI?

Human-Computer-Interaction

What are inspections and reviews (testing)?

Humans read documents and look for defects. It's surprisingly effective

How does a real world scenario compare to an ideal world scenario?

Ideal world scenarios assume that everything is formal and verified. In real world scenarios, however, aspects are mixed and not necessarily according to what is "correct"

What does the functional requirements of a requirements document consist of?

Identifies all concepts, functions, features, and information that the system provides to its users Provides an abstraction for each of those, characterizing the properties and functions that are relevant to the user

What is verification?

Implement the idea properly

What is validation?

Implement the proper idea

What should you do before testing with real users?

Improve designs and interfaces with checklists, Heuristic Evaluation, or Cognitive Walkthrough

Why is architecture a very powerful tool in SE?

Intellectual control Conceptual integrity Effective project communication Reusability Maintainability (management of a set of variant systems)

Software Engineering definition (Tsui, Karam, Bernal)

"A broad field that touches upon all aspects of developing and supporting a software system."

Software Engineering definition (Ghezzi, Jazayeri, Mandrioli)

"A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers."

Software Engineering definition (Schach)

"A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user's needs. Furthermore, the software must be easy to modify when the user's needs change."

What is a basic flow?

"Happy day" scenario

Software Engineering definition (Navarro)

"Managing the complexity of both a problem and its solution, to create a software product that successfully solves the problem."

Software Engineering definition (Parnas)

"Multi-person construction of multi-version software."

How is software used in politics

"The higher a politician ranks on the internet, the more likely people will vote for them"; speeches written by AI programs

What does the requirements analysis consist of?

Interview customer Create use cases/scenarios Prototype solutions Observe customer Identify important objects/roles/functions/goals Perform research Construct models ... (Data)

What does the Agile Manifesto state?

"We have come to value": Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

What is static analysis?

A computer program analyzes source code and finds defects (w/o running the code); results are reviewed by a person b/c many "errors" are not errors at all.

What are characteristics of the architect?

A distinctive role and character in a project Broad training Extensive experience A keen sense of aesthetics Deep understanding of the domain

What are test oracles?

A mechanism for deciding whether a test case execution succeeds or fails

Architectural style?

A named collection of architectural design decisions that: Are applicable in a given development context Constrain architectural design decisions Result in beneficial qualities in each resulting system A named, commonly used set of components/connectors/configurations

What are some user-oriented (user-centered) methods?

Interviews and observations of end users; personas; scenarios; storyboards; swimming lane diagrams; site maps; wireframes and mockups; design guidelines; Heuristic evaluation; user testing

What is a diagram?

A statement in a language that has syntax

What is the structure of a requirements document?

Introduction; executive summary; application context; environmental requirements; Functional requirements; software qualities; other requirements; time schedule; potential risks; assumptions; future changes; glossary; reference documents

What are some ways to choose test cases?

Intuition, specification, code, existing test cases, faults

Why does software change/evolve?

It's all about the user

Why does UCD work?

It's simple, inexpensive, yields higher sales and higher satisfaction

How are designs developed?

Iteratively

What language is used during coding/testing?

Java, Python

What are the weaknesses of Agile?

Lack of documentation Unstable requirements Bad for projects with large teams Bad for projects in which customer involvement is not possible

What are top software failure causes?

Lack of user input/involvement; incomplete requirements and specifications; changing requirements and specifications; lack of discipline in development processes; lack of methodical usage of metrics; lack of resources

How are classes determined?

Looking at the requirements specification; tester's intuition

Software Principles (Davis, 1994)

Make quality #1; Give products to customers early; Understand the problem first; Use an appropriate process model; Get it right before you make it faster; Good management is more important than good technology; People are the key to success; And more!

What are software design goals/activities?

Making system-wide decisions (architecture, languages, libraries, platforms), making lower-level decisions in an iterative manner (studying the problem, identifying solutions, creating abstractions)

What is version control software?

Manages changes over time by multiple people; AKA revision control, source control

Of lesser interest

Managing and scheduling software development teams; money - business models; software's impact on users, organization, society

What are use cases good for?

Map well to design implementation constructs Make it easy to verify/validate a design and implementation against user goals Framed in terms of user goals and flows of events, user requests and system

Software Principles (Wasserman, 1996)

Modularity Abstraction User interface (UI) prototyping Reuse Metrics

What are the benefits of layered architecture?

Modularity, abstraction, anticipation of change, reuse

What are the key benefits of model-view-controller architecture?

Modularity, anticipation of change

What are the benefits of pipe-and-filter architecture?

Modularity, reuse, anticipation of change

What is Extreme Programming (XP)?

More "extreme" reaction to waterfall, other heavyweight/traditional processes

What are the weaknesses of the OSS model?

Not appropriate for proprietary software or software with strict requirements and/or tight deadlines Technical support/maintenance can be iffy Developers are often not compensated financially

What are use cases not good for?

Not good for specifying: User interfaces Data formats Business rules Non-functional requirements

What are the weaknesses of the build-and-fix software model?

Not rigorous enough for non-trivial projects

What is an acceptance test plan?

Often accompanies a requirements specification; specifies how it will be determined that each requirement is met; good to base this off requirements and before the code; binds a customer to accept the delivered system if it passes all the tests

What are examples of layered architecture?

Operating systems, networks

What are some reasons, according to Brooks, why software projects are so delayed?

Our techniques of estimating are poorly developed; our estimating techniques confuse effort with progress; managers lack stubbornness of Antoine's chef; schedule progress is poorly monitored; when behind schedule, we add more manpower; we're too optimistic/confident

What are the essential ingredients of software?

People + Processes + Tools

Software architecture analogy?

Plan, design, build, done

What do environmental requirements of a requirements document refer to?

Platforms (hardware, software), programming language(s), standards

Who does the testing?

Programmers, testers, users

What are the strengths of the waterfall model?

Promotes understanding of requirements first Disciplined, rigorous, formal Lots of documentation Easy to track progress Good for short, simple projects will well-understood requirements Provided a starting point for other software process models Better than nothing Very much like other engineering practices

What are formal methods of testing?

Proof of correctness, usually done w/ formal specifications

How does quality assurance relate to project management?

Quality assurance and development are dependent on each other. Both depend on project management.

Why is QA so difficult?

Real needs are confused between "correct" specification and actual specification; software qualities;complex data communications; distributed processing; stringent performance objectives; complex processing

What are actors?

Represent external entities that interact with system: human, hardware, another software system; a use case is initiated by an actor (primary actor) to invoke certain functionality in the system

Process of construction software (waterfall model)

Requirements -> Design -> Implementation -> Verification -> Maintenance

Phases of development other than programming

Requirements document; flow charts of delivery, service, features

What is the incremental software model?

Requirements phase (verify) -> Architectural design (verify) -> For each increment: Perform detailed design, implementation, and integration. Test. Deliver to client. -> Operations mode -> Retirement

What is the waterfall model?

Requirements phase -> Design phase -> Implementation phase -> Integration phase -> Testing phase -> Operations mode -> Retirement

What are the phases of requirement engineering?

Requirements phase; requirements analysis; requirements specification

What are the weaknesses of the waterfall software model?

Rigid, not amenable to change Limited user input Bad for long-term projects with any ambiguity in requirements "The waterfall model amounts to a pledge by all parties not to learn anything while doing the actual work." (Clay Shirky) Hard to backtrack

Software Principles (recurring, fundamental)

Rigor and formality Separation of concerns(Modularity, Divide and conquer, Abstraction) Anticipation of change Generality Incrementality

What are the strengths of the RUP model?

Risk-driven, incremental Lots of tool support Provides a lot of guidance

What are benefits of peer-to-peer architecture?

Robustness, efficiency

What is condition coverage?

Select test cases such that all conditions are tested. Ex, if (a > b || c > d)

What is edge coverage?

Select test cases such that every edge in the graph is visited. It's more thorough than node coverage, and more likely to reveal logical errors. Also known as branch coverage.

What is loop coverage?

Select test cases such that every loop boundary and interior is tested.

What is node coverage?

Select test cases such that every node in the graph is visited; the minimal number of test cases is chosen. Also known as statement coverage

What is path coverage?

Select test cases such that every path in the graph is visited. Loops are a problem, though. This coverage is most thorough, but is it feasible?

What does the requirements specification consist of?

Serves as the fundamental reference point between customer and software producer

What should classes do in regards to testing?

Should cover the complete input domain; should never overlap

What are some possible bases for equivalence class partitioning/boundary value analysis?

Size/magnitude, structure, correctness, your creative thinking

What are design guidelines?

Smart, common-sense ways to implement something

What are some approaches to software design?

Software architecture, functional decomposition, relational database design, object-oriented design and UML, user interface design, sketching

What are the limitations of the analogy?

Software serves a much broader range of purposes We know much more about buildings than software Software is much more malleable than physical materials Software is a machine; a building is not The nature of software is different from that of building architecture

What is black-box testing?

Specification-based testing

What are examples of publish-subscribe ("pub-sub") architecture?

Stock market, news

What is white-box testing?

Structural testing

Describe software design

Structure, behavior, interaction, functional properties are all encompassed by design decisions and architectural decisions, the latter of which is the principle

What are the principal design decisions of a software system's architecture?

Structure, behavior, interaction, non-functional properties

What should you plan for user testing?

Subjects; the system; tasks; the session; measures taken

How is software used in the medical field

Surgery can be done remotely

How does quality assurance uncover the faults?

Taps developers on their fingers; creates image of "competition"

What kind of test cases should you choose in white-box testing?

Test cases that are covered by node/statement coverage, edge/branch coverage, loop coverage, condition coverage, or path coverage

What is unit testing?

Testing of a single code unit

What is system/acceptance testing?

Testing of complete system for satisfaction of requirements

What is functional/integration testing?

Testing of interfaces among integrated units

What are the benefits of object-oriented architecture?

Abstraction, anticipation of change, understandability

What are the strengths of the OSS model?

Accessibility -> huge user base -> novel features, higher quality code Some of the greatest minds, motivated and working together to solve hard problems can result in huge advances

What is the manner of testing?

Accurate, thorough, repeatable, systematic

What is requirements specification?

Activity of describing/documenting customer's needs

What is requirements analysis?

Activity of discovering/observing/gathering customer's needs

What is test-driven development?

Add tests -> see tests fail -> write code -> run tests -> refactor -> rinse and repeat

What is Brook's law?

Adding manpower to a late project makes it later

How do we know when we're done testing?

Aim to reveal as many faults as possible in a fixed budget; aim to meet the quality requirements established; pepper the code with defects and observe how many of the seeded defects are discovered

What is Scrum?

Another Agile development methodology that is lighter in prescriptions than XP; iterative, based on short iterations called "sprints" (one month or less in duration), and ideally a potentially shippable product is produced at the end of each spring

What is a use case?

Textual description of a set of actions defining interactions between an actor and the system to achieve a goal; describes a set of scenarios/flows that together accomplish a specific user "goal"; includes: Basic functionality/goal Any precondition Flow of events (scenarios) Any postcondition Any error condition and/or alternative flow

What is an alternative flow?

The goal is achieved, but in some alternate way

What is an exception flow?

The goal is not achieved

How are bugs and code related?

The more code there is, the harder it gets for someone else to understand what you did and to maintain your code, which leads to more bugs

What is software engineering in relation to diagrams?

The process of building a set of related models that represent the system-to-be

Informatics 43 definition of software engineering

The process of constructing software; phases of development other than programming; principles and qualities of enduring value

Why did the CA payroll system and DWP billing system upgrades fail?

The tasks were too large and complex; inadequate programming languages required to be used; flawed management structure; etc.

What does No Silver Bullet basically say?

There are essential qualities of software and accidental qualities, and breakthroughs so far address accidental qualities. There is no silver bullet to remove what's essential.

What is the purpose of designs?

To think, talk, prescribe

What test cases guarantee a wide range of coverage?

Typical values; boundary values; special cases; invalid input values

What are examples of pipe-and-filter architecture?

UNIX shell, compilers

What is UML?

Unified Modeling Language, an industry standard for software design/modeling

Why is usability engineering so hard?

Usability design is based on psychology, cognitive science, aesthetics, and art. Software engineers are generally not the audience of the software they develop

Software Principles (Royce, 1998)

Use a risk-driven, iterative process Use component-based development (buy vs. build) to reduce the coding effort Use change management Show the customer preliminary versions of the software frequently Have incremental releases

What does a use case model consist of?

Use case diagrams (one or more): actors, use cases, relationships, system boundary Descriptions of use cases: textual sometimes using a template

What is the Rational Unified Process (RUP) software model?

Use case driven Architecture centric Iterative and incremental

What is the corporate version of the OSS model?

Use open source software to save money and provide business agility; sponsor open source projects; make corporate software open source

How do you derive test cases in white-box testing?

Use source code to derive test cases. Build a graph model of the system and state test cases in terms of graph coverage.

How do you use a basis in equivalence class partitioning/boundary value analysis?

Use the basis to divide the set of all possible inputs into classes/subdomains

What are UML Class diagrams?

Used in decomposing a system into modules (classes) to model domain concepts and create a detailed, object-oriented design of the code

What are some other kinds of diagrams?

User interface mockups, pseudo code, entity relationship diagram, architecture diagram, storyboard, sketches

What is a persona?

User-archetype; a fictional representation of target users you can use to help guide decisions about product, features, navigation, visual design

What is UCD?

User-centered design

What is boundary value analysis?

Uses the same classes as equivalence partitioning, but tests at the boundaries of the classes, rather than just any element from the class. Experience has shown that many errors are made at the "boundaries" rather than under normal conditions

What are requirements?

WHAT the software should do (without saying HOW to do it)

What is the scope of a use case?

WHAT, not HOW; use audience-friendly terminology; include: How the use case starts and ends The interactions (in sequence) between use case and actors What data is needed by/exchanged during the use case Basic flow Alternative/exception flows (if applicable)

What are examples of model-view-controller architecture?

Web applications

What is the Agile Software Model?

Welcome change in requirements Business people and developers work together daily throughout project Build projects around motivated individuals Face-to-face conversation is the best way to convey information Documentation is just a means to an end Continuous delivery

What does the introduction of a requirements document consist of?

What is this document about? Who was it created for? Who created it? Outline

What is architectural erosion?

When a system evolves, ideally its prescriptive architecture is modified first; in practice, the system - and thus its descriptive architecture - is often directly modified

What are the practices and principles of XP?

Whole team Planning game Small releases Customer tests Simple design Pair programming Test-driven development Design improvement Continuous integration Collective code ownership Coding standards Metaphor Sustainable pace/developer welfare Open source Shared understanding Rapid, fine feedback

What is the open-source software (OSS) model (classic)?

You can be Open-source and another process model at the same time Source code is freely available and (usually) re-distributable Many contributors working in a distributed manner Heavy reliance on software tools Scales up amazingly well

How does quality assurance lay out the rules?

You will check in your code every day; you will comment your code; you will...

What is man-month?

a hypothetical unit of work representing the work done by one person in one month

What is the spiral software model?

a spiral lol; driven by risk analysis

What is quality assurance (QA)?

all activities designed to measure and improve quality in a product

What are characteristics of object-oriented design (and UML)?

an "object" contains both data and methods, and a "class" is a blueprint for making objects

What is prescriptive architecture?

as-designed/as-intended architecture

What is descriptive architecture?

as-implemented/as-realized architecture

Software is in

cars, medical field, politics, military, space, disaster response, refugee crisis, siri, movies (Star Wars), games, law enforcement, GANGSTA RAP, college must-haves

Principles and qualities of enduring value

correctness; reliability; adaptability; modularity; efficiency ; usability

Design describes the what of software?

how

What is a systematic approach to equivalence class partitioning/boundary value analysis?

identify the domain; identify a basis for subdividing the set of inputs; use the basis to divide the set of all possible inputs into classes/subdomains; from each subdomain, select a representative(s) to be a test case input(s)

What parts of software does society see?

impact, output, trends, dangers

Blind men elephant metaphor

miss a lot of things about the elephant; no idea what's going on inside the elephant

What are the benefits of more numbers for software?

moneyz

What is the group intercommunication formula?

n(n-1)/2

Does software have a lot of degrees of freedom?

no

What does the glossary of a requirements document consist of?

precise definitions of terms used throughout the requirements document

What is "Hubble Psychology"?

Bad. It states that it doesn't matter how we get there, as long as we get there.

How are test cases produced in test-driven development?

Based on the developer's intuitions and experience

What is the rapid prototyping software model?

Build and discard simple prototype -> Design phase -> Implementation phase -> Integration phase -> Testing phase -> Operations mode -> Retirement

What is the build-and-fix software model?

Build first version -> modify until client is satisfied -> operations mode -> retirement

What are examples of object-oriented architecture?

Business applications

Perspectives on software engineering

Business; Medical Systems; Game Dev

What are some potential silver bullets?

Buy vs. build Requirements refinement and rapid prototyping Incremental development Great designers

How are abstractions formed?

By removing irrelevant information and retaining relevant information

What are principles of minimalist design?

Contrast; repetition; alignment; proximity

What does the application context of a requirements document consist of?

Describes the situation in which the software will be used; identifies all things that the system affects

Parallels of software architecture to real architecture?

Design before build Satisfaction of customer's needs Specialization of labor Multiple perspective of the final product Intermediate points where plans and progress are reviewed

What is the basic process of testing?

Detect and correct errors in a software product; exercise a module, collections of modules, or system (devise test case, run test case, capture actual output, compare expected output to actual output)

What are the steps of XP?

Determine the desired features; implement/deliver each task; follow values and principles

Why does architectural erosion happen?

Developer sloppiness Short deadlines Lack of (documented) prescriptive architecture Code optimizations Inadequate techniques or tool support

What are the weaknesses of the spiral model?

Developers have to be competent at risk analysis

What language is used in the design stage?

Diagrams/UML

What is equivalence class partitioning?

Divide the input into several classes that are considered "equivalent" for the purpose of finding errors; if it fails/passes for one member of the class, it is likely to fail/pass for all members

What are the three core roles of Scrum?

product owner (customer), development team, Scrum Master (coach but not project lead)

What parts of software do software designers see?

product, structure

What parts of software do business people see?

profits, costs, required training

What are the benefits of using HCI and UCD well?

sales double; traffic count more than doubles; user performance cuts time by more than half

What are inspection methods of Heuristic Evaluation?

select tasks; someone pays the user; evaluators focus on an aspect; someone takes notes

What parts of software do electrical engineers see?

semiconductors, transistors, power supply

What does the executive summary of a requirements document consist of?

short, succinct, to-the-point description of software; identifies main goals, key features, key risks/obstacles

Engineering components

skill and knowledge; application of scientific principles; trade-offs, cost/benefit analysis

What parts of software do programmers see?

source code

What must you have in a Scrum framework?

team roles, events, artifacts, rules

What parts of software do software project managers see?

teams, budgets, timetables

What are some benefits of test-driven coverage?

usually leads to writing more tests and simpler code; usually achieves at least node coverage

According to Nielsen, what are the principles of Heuristic Evaluation?

visibility of system status; match system words to the real world; user control and freedom; consistency and standards; error prevention; recognition rather than recall; accelerators; minimalist design; help users recognize and recover from errors; help and documentation

Why do first impressions matter for software?

would you wanna use a shady-ass lookin app or some complicated Newton-type shit

Software components

Code; documentation, user manuals; designs, specifications; test cases; plans and schedules

According to Fred Brooks, what are the essential properties of software?

Complexity, conformity, changeability, invisibility

What are the weaknesses of the RUP model?

Complicated

Software architecture's elements

Components (data, processing) Connectors (interaction); components and connectors are arranged into configurations

What are the benefits of client-server architecture?

Centralized control

What are some challenges w/ white-box testing?

Can be useful for identifying under-tested parts of a program; can cover all nodes or edges w/o revealing obvious faults; some nodes, edges, or loop combinations may be infeasible

What are software qualities?

Correctness Reliability Efficiency Usability Maintainability Portability Reusability Interoperability Robustness Security Scalability ...

What matters most?

Cost of developing (purchasing) software; time to market of product; profit that will be made from sale of software

What are the strengths of Agile?

Customer satisfaction Adaptable to changing circumstances Good for projects with unclear, changing requirements Good for small teams

What parts of software do users see?

buttons, cons, menus, etc.

What is a fault/defect?

discrepancy in code

What are some testing goals?

find and fix failures/faults/errors; improve confidence that a system performs as specified (verification) and as desired (validation)

All successful software...

evolves

What is a failure?

external behavior/execution/output is incorrect


Conjuntos de estudio relacionados

Subtopic gastrointestinal system

View Set

Communications Final exam: Chapter 9

View Set

Ultimate The Notorious Jumping Frog of Calaveras County

View Set

Alcohol edu college exam answers

View Set

Post WW2 and Civil Rights Movement

View Set

Affirmative Defenses / Ex post facto laws

View Set

CITI IRB (Conflicts of Interest & Basics of Info Security)

View Set

Nurs 4 - NCLEX EAQ's - Nursing Process: Implementation (2022)

View Set