midterm

Ace your homework & exams now with Quizwiz!

well-known agile methods

Dynamic systems development method (DSDM) feature driven development (FDD) scrum extreme programming crystal clear lean dev

which of the following are appropriate outcomes of system analysis activities? a) A better understanding of the real-world system b) A modular design that can form a basis for a development plan c) User interface specifications d) A high-level, logical database design e) All of the above

a. a better understanding of the real-world system

In which of following development processes is pair programming commonly practiced? a) Agile b) Spiral c) Evolutionary Prototyping d) Incremental

a. agile

in which of the following development processes is pair programming commonly practiced? a. agile b. spiral c. evolutionary prototyping d. incremental

a. agile

in which of the following development processes is pair programming commonly practiced? a. agile b. spiral d. evolutionary prototyping e. incremental

a. agile

which of the following certifications addresses the ability of organizations to deliver quality software products? a. capability maturity model b. unified software development process c. unified modeling language d. constructive cost model e.function point process

a. capability maturity model

PSP (personal software process)

concentrated on improving the software process on an individual level as opposed to a team format

Which of the following is an agile process/method? a) Spiral model b) Waterfall model c) Transformative model d) Extreme programming

d. extreme programming

which of the following process model cant be used effectively in connection with rapid prototyping? a. spiral b. unified process c. agile process. d. waterfall e. incremental process

d. waterfall

operation

defines behaviors of class objects

attribute

defines properties of class or objects

software architecture

defines the way the individual parts of a software is connected to each other to form the system

encapsulation

defining and storing together properties and behavior or class/object

software methodology

details the steps of how to perform a software process (implementation)

Which of the following might be included in a system release a)executable code b) configuration files c) documentation d) data files e) all of the above

e. all of the above

which of the following is not a logic error? a. requirement error b. design error c. detailed design error d. coding error e. large number of page faults

e. large number of page faults

Software Architecture considerations

ease of change and maintenance system performance (process real-time data, large volume of transactions) reliability security recovery

data abstraction

encapsulation, an object is a self-contained data type with its own operations behavior abstraction

types of systems

interactive subsystems event-driven systems transformational subsystems object-persistence systems

information hiding

shielding implementation detail to reduce change impact to other parts of program

Software Architecture importance

significant impact on system performance, efficiency, security, primary artifact for conceptualization, construction, managing system

waterfall merits

simple, straight sequence simplifies project management supports function-oriented projects good for tame problems

why domain modeling

software engineers need to work on different domains and need domain knowledge to develop a system

agile development

software mythologizes that promotes adaptive planning, customer value (normally requires the customer onsite), and rapid response to change. has short (1-3 week) releases. it is not plan-driven and has self-organizing teams. works best for small projects and teams, requires highly skilled workers

waterfall

straight through development with a minimum of rework and change; document driven

order 4 activities from earliest to latest requirement analysis feasible study requirement specification requirement definition

study analysis definition specification

software architecture

style of design of the structure of the system including interfacing and interaction among its subsystems

architectural design

style of design of the structure of the system including interfacing and interaction among its subsystems and components

waterfall process cycle

system engineering software requirement analysis software design coding and unit testing integration and integration testing acceptance testing maintence

recursive view of subsystems

systems and subsystems are relative to each other

extreme programming

the first agile process, business-value driven (customers can see product soon early on), has rapid iterations and short span releases, democratic management, team has collective ownership of code, uses clean simple code, test-driven. arose from "hacker" culture C

personal software process PSP

training software engineers helps software engineer identify areas of improvement prepares software engineer ot work in a team

regression testing

type of software testing that provides a general assurance that no additional errors were introduced in the process of fixing other problems (retesting a modified program)

TSP (team software process)

used to implement CMM key tasks and activities, increase quality and profitability of a project, improve control and vision to multiple participants in the project, model of organization management

which formalism best describes requirements elicited in an extreme programming project?

user stories

requirements

user stories that customers write about features they want in the project, does not use computer language and is easy to understand.

software paradigm- procedural

world is a network of processes. processes are refined by lower level processes. building blocks are processes

software paradigm- OO

world is interrelated and interacting objects building blocks are objects.

software paradigm- data-oriented

world is interrelated data entities processed by transactions. building blocks are data entities and relationships

unified process

object-oriented methodology based on iterative and incremental process

Iterative and Incremental Development

(IID), can be a part of agile and plan-driven development. have planned increments until customer is satisfied, have long time boxes (given time to work on a part of the project), feature/success driven (only after completing a feature do you continue on). also has early risk management analysis

inheritance

IS-A

class

a type. an abstraction of objects with similar properties and behavior

which of the following certifications address the ability of organizations to deliver quality software products? a. capability maturity model b. unified software development process c. unified modeling language d. constructive cost model e. function point process

a. Capability maturity model

five steps of domain modeling

collecting info about app domain brainstorming classifying brainstorming results UML class diagram performing inspection and review

Domain modeling

a conceptualization process to help the development team understand app domain

daily build

a development activity where a complete system is compiled and linked every day (usually overnight), so that a consistent system is available at any time including all latest changes. (synchronization points)

state machine

a diagram that shows the state of software then its action which changes it to another state.

Object and attribute

a non can be a class or an attribute. attributes describe objects or store state information. attributes formed from keyboard(enter value). object formed from invoking constructor

what is domain modeling

a process that helps the team understand app domain and establishes common understanding

Imagine you are working for a scientific computing firm with a small development team. Several of the developers are very familiar with the domain and development tools, but have poor people skills. Depending on the project, the development group follows either a spiral or incremental development process. If this group needed to start a new mission critical project that had some tight deadlines, which of the following team structures would be most appropriate. a) Chief Programmer - The team is organized around a highly skilled developer, in an attempt to ensure that this developer is as productive as possible. Team members beside the chief programmer play supporting roles such user-interface specialist, customer liaison, librarian, etc. There may be a backup chief programmer in case the chief programmer disappears. b) Hierarchical - The team structure may parallel a functional breakdown of the software. Developers report to team leaders, who in turn report to higher-level team leaders. Developers can make decisions for their own code. Team leader can make decision pertaining to their areas. c) Democratic - There is team leader, but all major decisions are made through a democratic process. d) Anarchistic - There is no team leader. Team members freely pick assignments that need to be done

a. chief programmer

which of the following is mainly for promoting reusability? a. design patterns b. use case c. COCOMO d. system analysis e. CASE

a. design patterns

Complete problem-domain models should include design details of the software system being developed. a) False b) True

a. false

Cohesion within a module is the degree to which communication takes place among the module's elements. Coupling is the degree to which modules communicate with other modules. What are the properties of good modular decompositions of software? a) High cohesion and low coupling. b) High cohesion and high coupling. c) Low cohesion and high coupling d) Low cohesion and low coupling.

a. high cohesion, low coupling

Which of the following design patterns is most suitable for printing all the elements in a linked list? a) Iterator b) Facade c) Interpreter d) Observer

a. iterator

which of the following activities was the waterfall model created to avoid? a. rework b. testing c. planning d. documentation e. communication

a. rework

Which of the following activities should occur soonest in a software development project? a) Risk analysis b) Specification c) Documentation d) Cost estimation

a. risk analysis

which of the following activities should occur soonest in a software development process? a. risk analysis b. specifications c. documentation d. cost estimations

a. risk analysis

Modeling use cases can be a effective tool for eliciting and describing key requirements. a) True b) False

a. true

what type of UML diagram best captures user goals? a. user case diagrams b. class diagrams c. interaction diagrams d. state charts

a. user case diagrams

Which of the following process models can't be used effectively in connection with rapid prototyping? a) Waterfall b) Spiral c)Unified process d)Agile process e)Incremental process

a. waterfall

brainstorming: constituents

aggregation

brainstorming: posession

aggregation

polymorphism

allowing a single function to be used with different types of data (specifically, different classes of objects). i.e. a polymorphic function definition can replace several type-specific ones, and a single polymorphic operator can act in expressions of various types, it is a particular kind of association of subclasses with a superclass and a client class.

decomposition

also known as factoring, refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain.

object

an instance of a class

extreme programming (XP)

anyone can change any code anywhere at any time integration and build many times a day whenever task is completed less than 40 hrs a week exploration (collect info and feasibility about app) planning (determine stories for next release) iteration to first release (define/modify architecture, select and implement stories for each iteration) prodctionizing (evaluate and improve system performance) maintenance (improve current release) death (produce system doc, replace system if maintenance is too costly)

OOD

approach to systems development that uses the object as the basic unit of systems analysis and design. The system is modeled as a collection of objects and the relationship between them (messages being passed and performance of the activity communicated), began with C++, its structuring is based on abstraction

brainstorming: transitive verbs

association relationships

brainstorming: containment

association/ aggregation

brainstorming: "X of Y" (color of car)

attribute

brainstorming: adjectives

attribute

brainstorming: numeric

attribute

which of the following are appropriate outcomes of systems analysis activities? a. a modular design that can form a basis for development plan b. a better understanding of the real-world system c. user interface specifications d. a high-level, logical database design

b. a better understanding of the real world system

Which of the following is true? A An attribute has an independent existence in the application B An application domain object has an independent existence in the application

b. an application domain object has an independent existence in the app

The C function that can be used to ensure an invariant is ___________? a) assert b) assert() c) asert d) asert() e) assurt f) assurt() g) asurt h) asurt()

b. assert()

Consider a small group of developers, all of whom are experts in their respective areas and have been working together for two years. In general, they communicate well with each other and all get along. Which of the following would be most efficient team structure? a) Anarchistic - There is no team leader. Team members freely pick assignments that need to be done. b) Democratic - There is team leader, but all major decisions are made through a democratic process. c) Chief Programmer - The team is organized around a highly skilled developer, in an attempt to ensure that this developer is as productive as possible. Team members beside the chief programmer play supporting roles such user-interface specialist, customer liaison, librarian, etc. There may be a backup chief programmer in case the chief programmer disappears d) Hierarchical - The team structure may parallel a functional breakdown of the software. Developers report to team leaders, who in turn report to higher-level team leaders. Developers can make decisions for their own code. Team leader can make decision pertaining to their areas.

b. democratic

in general, they communicate well with each other and all get along. Which of the following would be most efficient team? a. anarchist (no leader) b. democratic (major decisions are made through democratic process) c. chief programmer (team is organized around a skilled developer) d. hierarchical

b. democratic

which architecture is most appealing for modeling a mouse click action? a. client server architecture b. event system architecture c. layered architecture d. data flow architeture

b. event system architecture

if this group needed to start a new mission critical project and had some tight deadlines, which of the following team structures would be most appropriate? a. chief programmer b. hierarchical c. democratic d. anarchistic

b. hierarchical

Which method is associated with sprints? a) Dynamic systems development method b) Scrum c) Extreme programming d) Rational Unified process

b. scrum

What does the part of relation between an object and another object indicate? a) inheritance b) polymorphism c) aggregation/composition d) behavior

c. aggregation/ composition

which of the following concerns PSP but not TSP? a) Productivity tracking b) Time management c) Personal improvement d) Effort Projection

c. personal improvement

tame problems

can be completely specified there are stopping rules solution is right or wrong finite number of moves in problem solving solution can be tested immediately if problem is not solved, try again

inheritance

class can use another class' properties, methods, variables, ect. one of the main ways of constructing new classes in OOD

brainstorming: nouns/noun phrases

classes or attributes

CRC

classes, responsibilities, and collaborations. it allows for efficient communication between teams

association

expresses general relationship. instructor teaches course.

aggregation

expresses the fact something is part of another

feature driven dev (FDD)

feature/model driven config management, review and inspect on regular builds suitable for agile and plan-driven

collecting info about app domain

focus on functional requirements, consider other requirements and documents, consider business descriptions

dynamic systems development method (DSDM)

framework that works with rational unified process and XP based on the 80-20 principle suitable for agile and plan-driven projects

plan-driven development

have predictability and assurance as its goals, does well with larger teams and projects, focus on contract provisions rather than customer interaction, culture thrives on order and procedure, refactoring is expensive but can make use of less experienced workers (Cockburn 1B level) 1

construction of domain model

helps dev team understand app domain, lets team members communicate their understanding of app domain, provides basis for design and implementation

you are asked to come up with an appropriate software process. describe what considerations must be taken to choose between agile and plan-driven

if its mission critical, if the agile risks dominate, go plan driven, if the plan-driven dominate, go for agile

spiral process model

if risk remains, plan next phase and conduct prototyping else if risk resolves, proceed as waterfall else if prototype works, proceed as evolutionary

unified process model

inception (1-2 iterations, produces simple use case model and project plan) elaboration (next n iterations, produces architectural design and implements critical use cases) construction (remaining use cases iteratively implemented) transition (system is deployed, users are trained, defects corrected)

waterfall problems

inflexible to requirement changes long development duration means outdated when delivered users cannot experiment and provide early feedback customer has to wait until entire system is done to reap benefits customer may lose entire investment if project fails

brainstorming: x is a y

inheritance

interactive subsystems

interaction between system and actor is fixed sequence of actor requests and system responses (actor normally human) "client-server" relationship

function-oriented development

its system was a collection of functions, focus was an algorithm use due to lack of computing power, used an invocation hierarchy for structuring, only had a single thread of control, simultaneous function operations were not supported

evolutionary process model

lets prototype evolve into production system most suited for dev of exploratory types of stuff like research and environmental interacting systems not suitable for projects that require predictable schedule

in the feature team within Microsoft, what type of people are involved? a. marketing b. software developers c. rocket scientists d. testers

marketing, software developers, testers

transformational subsystems

network of info-processing activities, transforms activity input to output little interaction between system and actor (batch process), stateless, performs number crunching/computational transactions

evolutionary

no firm specifications, work until it seems okay

polymorphism

one thing can assume more than one form

agile process model

phases in iteration requirement analysis design implementation testing deployment

wicked problems

problems complex enough to have no simple solution and whose very nature changes over time no definite formulation, no stopping rule (always can do better), evaluated subjectively, infinite number of solutions, unique

process vs. methodolgy

process framework of phased activities, establishes milestones (waterfall, spiral, prototyping, agile) methodology is cook-book for tasks (HOW) (OMT, scrum, XP)

spiral

process model that combined elements of both design and prototyping in stages it is intended for large, expensive, and complicated projects. its diagram shows four quadrants that represent four standard periods in each cycle. it encourages prototyping, focuses on risks, enables rework, and incorporates existing models.

prototyping process model

prototypes constructed to acquire and validate requirements, asses feasibility and constraints prototypes classified into throwaway or evolutionary

software process models

prototyping process model evolutionary process model spiral process model unified process model personal software process model team software process model agile process model

object persistence systems

provides object storage and retrieval capabilities to other subsystems hides implementation from rest of system

event-driven subsystems

recieves events from and controls external entities, does not respond to each eent, interacts with many external entities, may need time constraints

aggregation

reference to an object

spiral

repeated cycles concentrate on identifying and resolving risks

scrum

scrum master, product owner, team roles, 15 min daily status meeting release planning meeting (identify and prioritize req. (product backlog), identify sprint dev activities) sprint iteration (plan what and how to build next) sprint review meeting (increment demo, team retrospect) deployment

code and fix

traditional process model where programmers, without much design, begin producing code while testing along the way. problems: it was poorly structured, user-unfriendly, and unmaintainable.

software process

the phases of activities or what need to be performed to construct a software system. each activity produces some artifacts which are input into other phases. each phase has a set of entrance criteria and exit criteria

refactoring

the process of changing a computer program's internal structure without modifying its external functional behavior or existing functionality, in order to improve internal quality attributes of the software

encapsulation

the process of combining a data structure's data with the methods that act upon the data inside the same module

transform

traditional process model that takes abstract requirements as input and transforms them step by step to executable code through stepwise refinements, the problems included many limitations, tool-intensive, may not support unanticipated evolution, and was quickly outdated. it does have stable requirements and tool availability

evolutionary

traditional process model where a project is separated into smaller waterfall models. allowed for good customer support problems: produced spaghetti code, makes products un-integratable, fosters wrong and unchangeable decisions, makes migrating to new systems difficult.

waterfall

traditional process model where programers follow strict phases and should not return to an already completed phase. review is done before moving onto a new phase but return to a phase is highly discouraged. problems:minimized prototyping, wastes effort on elaborate but incorrect designs and codes (reduces risk). it was replaced by the evolutionary (incremental process)


Related study sets

Controllable and Uncontrollable risk factors

View Set

CPS Chapter 3 MC/TF/Short Answer

View Set

Health Law and Policy (Chapter 9)

View Set

RN study (Evolve) - Med Surg - Cardio+Medication

View Set

ADN 125 Chapter 2: Theory, Research, and Evidence-Informed Practice

View Set