final review

अब Quizwiz के साथ अपने होमवर्क और परीक्षाओं को एस करें!

use case scope

"what", audience-friendly terminology, how use case starts/ends, sequential interactions between use case/actors, data needed/exchanged during use case, basic flow, alternative/exception flows

incrementality

add features over time

composition relationships

aggregation with existence dependency

http

all communication between user agents and origin servers, self-contained

static analysis

analyzes source code for possible defects without running code

layered architecture

application built in layers, can edit one layer instead of whole program

user interface

approximate ui

anticipation of change

awareness that software always changes, people want latest technology

usability design

based on psychology, cognitive science, aesthetics, art

assumptions

believed to be true during project life cycle, if changed project negative outcome (end-user characteristics, known technology infrastructure, resource/funding availability

ux designer

beyond programming

test cases

black-box testing, combinatorial testing, white-box models

boundary value

boundaries tend to have more errors than normal values

"potential silver bullets"

buy vs build, requirements refinement/rapid prototyping, incremental development, great designers

bugs

cannot be proven that there none (cannot reject null)

client server architecture

clients request servers, centralized data/security/access, browser -> www -> server -> memcache -> database

rigor and formality

coding standard, creates common ground for everyone

www

collection of unique resources (URL), make requests of servers for resources

essential properties of software

complexity, conformity, changeability, invisibility

software failure

complexity, conformity, progress hard to measure, "legacy" systems, "hubble psychology"

software architecture elements

components/connectors arranged into configurations

error

computed result different from correct result

peer-to-peer architecture

computers connected each other, no central source, efficient/robust

software qualities (nonfunctional requirements)

correctness, reliability, efficiency, usability, maintainability, portability, reusability, interoperability, robustness, security, scalability

other requirements

cost, documentation, manuals, tutorials, on-the-job training, miscellaneous

usage data techniques

data analytics, A/B testing, prototyping, market research used to create/prioritize/analyze/evaluate requirements

test oracle

decide if test case succeeds/fails, difficult to automate

requirements specification

defines "what", environmental requirements/constraints on software, software qualities, source of all future steps in software life cycle

glossary

definitions of terms used throughout requirements document

requirements phase

describe what not how, most costly phase, customer wants ≠ needs

functional decomposition

design process by breaking down functionality

prescriptive architecture

designed implementation

acceptance test plan

determines how each requirement is met, customer to accept delivered system if pass test

url

determines identity of machine on internet where resource is obtained

equivalence class partitioning

divide input into several classes considered equivalent, if fails/passes for one member, same for all members of class, determined by requirements specification/tester's intuition, should cover complete input domain/should not overlap

introduction

document summary/outline, audience and creators

no silver bullets by fred brooks

don't expect large improvement just through languages and tools, invest in growing great designers, accurately capture client needs with prototyping, build software in small/iterative chunks

control flow graph

entry and exit node, every line of code is another node, an paths based on branches, directional arrows

reference documents

existing processes/tools used, other similar existing software, literature

actor

external entities interacting with the system, represented by a stick figure

persona

fictional potential user to make user-centered decisions

pipe-and-filter architecture

filter components, pipe connectors, modularity, reusability, anticipation of change

testing goals

find/fix failures/faults/errors, improve confidence passes verify/validate, accurate, thorough, repeatable, systematic, reveal as many faults as possible given time period/budget, meet quality requirements for project

black-box testing (specification-based testing)

functional, specification based, "cannot see code", typical/boundary values, special cases, invalid input/combinations values

components

functionality

potential risks

future uncertain events, new methodology, new requirements, special skills/resource shortage, aggressive schedule, tight funding, security, ethicalness

alternative flow

goal achieved in another way

exception flow

goal unachieved

high cohesion low coupling

group related functionality, ungroup unrelated functionality

relational database design

grouping data and relationships between them

mistake

human action produces incorrect result, both coder and user

basic flow

ideal scenario

functional requirements

identify all concepts/functions/features/information provided to users, abstraction/characterization of properties and functions relevant to user

inspections and reviews

improve code quality/understandability, find defects, transfer knowledge, explore alternative solutions, improve development process, avoid breaking builds, increase team awareness, share code ownership, team assessment

user testing

improve designs and interfaces before showing to users

failure

incorrect result of a fault, externally visible

fault/bug

incorrect step/process/data definition

descriptive architecture

inferred from implementation

schedule

initial delivery date, acceptance period, final delivery date, prototype delivery, architecture/design/implementation/testing completion, sprint/increment completion

architecture

intellectual control, conceptual integrity, effective project communication, reusability, maintainability

connector

interaction between components

use case

interactions between actor and system, includes basic functionality/goal, precondition, flow of events, postcondition, error condition/alternative flow

user perspective

interface

engineering perspective

internal quality of software

requirements analysis techniques

interview/observe customer, create use cases/scenarios/user stories, prototype solutions, identify important objects/roles/functions/goals, perform research, construct models, data

user-oriented methods

interviews/observations of end users, personas, scenarios, storyboards, wireframes and mockups, design guidelines, heuristic evaluation, user testing

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

software failure causes

lack of user input/involvement, incomplete/changing/lack of discipline in requirements and specifications, lack of methodical usage of metrics, lack of resources

generality

make code versatile

model-view controller architecture

model stores data/data structures, view is what user sees, controller computes info and updates model

separation of concerns

modularity, divide and conquer, abstraction

business perspective

money

specificiation methods

natural language, diagrams, formal language, models

UML class diagram

object oriented design of code (classes) and relationships

aggregation relationships

one object contains set of other objects, transitive and assymetric

three essential ingredients of software engineering

people, processes, tools

environmental requirements

platforms (hardware, software), programming languages, standards

abstraction

presents simple interface and hides logic processes underneath

software engineering

process of constructing software, phases of development other than programming, principles/qualities of enduring value

future changes

project changes over time, structure document to easily absorb changes (define concepts once, partition separate concerns, avoid redundancy)

publish-subscribe architecture

publishers push message to connector, connector pushes to subscribers, only notifies resources you are subscribed to

waterfall method

requirements analysis, requirements specification, design, implementation, verification, maintenance must complete fully before next

recurring/fundamental principles

rigor and formality, separation of concerns, anticipation of change, generality, incrementality

storyboard

sequence of drawings, visualize user experience/interaction

flow

sequence of steps describing user-system interaction

design guidelines

set of common ui components/patterns/styles, promotes reuse and consistent user experience

software architecture

set of principal design decisions about system

executive summary

short description of product, identify main goals, key features/risks/obstacles

observations (of document)

should address fundamental principles

application context

situation of application use, identify what system affects

ziv's law

software development unpredictable, documented artifacts will never be fully understood, uncertainty inherent/inevitable in software engineering processes/products

configuration

specific arrangement of components and connectors

white-box testing

structural, code based, "can see code", statement/node coverage, branch/edge coverage, condition/method/method-call/path coverage

architectural erosion

system (descriptive architecture) evolves and prescriptive architecture not updated

combinatorial testing

treat each parameter as equivalence class partitioning, determine partitions/representative/boundary values, devise combinations for values of each parameter

levels of testing

unit testing, functional/integration testing, system/acceptance testing

heuristic evaluation

using principles based on research to access usability of system

quality assurance

verify (conform to specification) and validate (serve purpose), formal methods, static analysis of program properties, reviews and inspections, testing

nielsen heuristic evaluation

visibility of system status, match system words to real world, user control/freedom, consistency/standards, error prevention, recognition over recall, accelerators, minimalist design, help users recognize/recover from errors, help/documentation

most common software engineering job in the us

writing company software within company


संबंधित स्टडी सेट्स

Geometry Midterm Exam Review - Unit 2

View Set

ATI Video Case Study Pediatric Asthma

View Set

Unidad IX - El Proceso de Desarrollo de Sistemas de Información.

View Set

7th Grade Math: Benchmark Assessment #1 Review 20-21

View Set

Final Assessment Chapter 17 Abdomen

View Set