Purdue CS 307 Midterm Study Guide

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

What is UML?

"General purpose" modeling language, provides standard method for designing a system.

What is a sprint?

"Heart of the scrum", usually a month or less, consistent development throughout.

What is the multilayer pattern?

"Stack of boxes" Problem: System needs to be built and tested independently. Solution: Define layers and allow relation among them. Separate Layer for UI, general services at bottom.

What are the different types of UML diagrams?

*Static* (structural) view: Class Diagrams *Dynamic* (behavioral) view: Sequence, Activity, State machine

What are the weaknesses to the waterfall method? When should we use it?

*Weakness*: Difficult to measure real progress, pushes analysis and design feedback to maintenance, assumes unrealistic sequential progression. *When?*: Well understood systems, small products, teaching, *never?*

What are some traits of software?

*intangible*, hard to understand the development effort required. *reproducible*, cost is in development.

What is the goal of a daily scrum meeting?

15 minutes to synchronize and plan for next 24 hours. Same time, same place. Questions: What was accomplished, what will be done, what obstacles are in the way?

What is scrum?

A development model that involves a product owner, a scrum master, and a development team.

What is a good UML model?

A model that uses standard notation, is understandable, provides abstraction.

What is a distributed system? What are the key aspects?

A system of discrete networked components. Aspects: Concurrency Lack a global clock Independent failure

What are ethics?

A theory of system of moral values, that help govern an individual or group.

What is a use case?

A typical sequence of actions that a user performs to complete a task. [as independent as possible from UI]

What are use case inclusions?

Allow one to express commonality between several use cases. Represents the performing of a lower *level task* with a lower level goal. (e.g. Browse for file)

How does systematic development and evolution relate to software?

An engineering *process* involves *well-understood techniques* in an *organized* and *disciplined* way. Most development is evolutionary.

What are some types of software?

Applications (CAD, video games) System (OS, drivers) Embedded (microcode) Real Time (safety critical)

What makes a design pattern good?

As general as possible, contains an effective solution.

What is a fat client?

As much work as possible delegated to clients, server can thus handle more clients.

What are the traits of the development team (scrum)?

Assumes members are cross functional, only title *developer*, "optimal team": 3-9

What are some scrum criticisms?

Assumes you can estimate task duration, many meetings, difficult to collaborate with outside groups

What does the term greenfield mean?

Building a project from scratch.

What is a framework slot?

Certain classes or methods are missing, required.

What is internal quality?

Characterizes aspects of the design of the software (e.g. amount of code, complexity, use of software patterns)

What is a thin client?

Client as small as possible, most work done on server.

What is the code-and-fix model?

Code a little, fix a lot. "Bumper car" coding. GL HF

What codes of ethics govern software engineering?

Code of ethics described by ACM/IEEE Join Task Force

What is software?

Computer programs, procedures, and associated documentation pertaining to the *operation* of a *computer system*.

What is player-role pattern?

Context: An object has a particular set of properties (*role*). P: Ability to change role. Force: Improve encapsulation, avoid multiple inheritance. S: Create a Player class, create an association to AbstractRole (which has varying sub classes).

What is the singleton pattern?

Context: Classes for which only one instance should exist. P: Ensure it is impossible to make more. Force: Public construction cannot guarantee this. S; Private class variable that stores the only instance. Public method getInstance()

What is abstraction-occurrence pattern?

Context: Domain model contain sets of related objects. P: Find best way to represent. Force: Avoid duplication S: Create Abstraction and Occurrence classes that contain data common to members. *One-to-many* (e.g. Abstraction: TVSeries, Occurrence, Episode)

What is the immutable pattern?

Context: Object that contains a state which never changes after creation. P: Creating immutable instance. F: No loophole. S: No setters, all modifications done in constructor.

What is general hierarchy pattern?

Context: Objects form hierarchy. Problem: Represent hierarchy with limits. Force: Objects may have common properties. S: Create Node class, SuperiorNode, and NonSuperiorNode.

What is the delegation pattern?

Context: Two classes, one provides service and other desires it. P: Make use of method in another class. F: Inheritance not appropriate. S: Create Delegator class with method that calls another method in Delegate. (e.g. Delegator: Stack, Delegate: LinkedList... push() --> list.addFirst())

How can we classify software that is being developed?

Custom (for a specific customer) Generic (sold on open market) Embedded (tied closely to hardware)

What is design?

Deciding how the requirements should be implemented using available technology.

What are the traits of a project owner (scrum)?

Defines the features of the product, decides on release date. Prioritizes features, accepts or rejects results.

What do class diagrams describe?

Describe the system classes attributes, operations, and relationships.

What is prototyping?

Determine requirements, build prototype, partial design, evaluate, engineer. *throw away the prototype*

What is the waterfall model?

Develop an installation plan. *Analysis* (identify the what) *Design* (how, identify specifications) *Implementation* (build & test) *Test* (test all portions, acceptance, intergration) *Maintain* (fix defects, enhance)

What is the vicious cycle in terms of reusability?

Developers take short cuts to save time, which sacrifices quality. The cycle costs money, and it is important to pay attention to quality.

What are some of the important details about engineering?

Engineering is a licensed profession, with a goal of protecting the public. Thus, ethical practices is also a key tenet of the profession.

How is software engineering different from other forms of engineering?

Focused on *CS*, rather than natural sciences. [discrete rather than continuous] Concentrates on *abstract/logical* ideas rather than *concrete/physical* ones. Maintenance is evolution, not wear and tear.

Why do software engineers have so much responsibility?

Have significant opportunities to do good or cause harm, as well as *enable* or *influence* others to do the same

Why use a UML diagram?

Help create designs, analyze and review, documentation

Why are user stories helpful?

Help define the scope of a system, help plan, form basis for tests.

What is a fork?

In an activity diagram, when there is one incoming transition and multiple outgoing ones.

What is a system model?

Include classes for UI and system, utility, etc. (more complete)

What is the spiral model?

Incremental (evolutionary), risk oriented. Pros: Reduce risk of failure Early feedback Cons: Complex Risk analysis requires expertise

What are the transition attributes?

Interoperability (how much effort to link this program to another?) Portability Reusability

Who's job is it to ensure quality?

It is everyone's business to ensure quality, do it right the first time.

What is client-server architecture?

Kind of distributed system. Server provides services, client provides access to these servers. (e.g. email, DNS, www)

What is a generalization set? How is it denoted?

Labeled group of generalizations with a common super class. It is denoted by a triangle.

What is an architectural pattern?

Like software, there are architectural patterns with context, problem, solution.

What are use case extensions?

Make optional interactions explicit, handle exceptional cases. (e.g. File not found error)

What is revision control (or version control)?

Mechanism for managing changes made to files, supports collaborations.

What are the aspects of the evolutionary development models?

Modern version of code and fix, product evolves over time as requirements become known.

What is a rendezvous?

Multiple incoming and multiple outgoing transition.

What is a join?

Multiple incoming transitions, one outgoing.

What does brownfield mean?

Must work with existing systems.

How do you explore the requirements?

Need to determine what the system is compared to the world. Can change --> System Can influence --> Boundary Cannot change --> World

What is distributed model revision control?

No authoritative copy, only working ones. Each repo contains all branches, pull/push changes (git)

Should we always stick to the life cycle?

No! It is there to help, like a roadmap. It is not the vehicle.

Should you rebase commits that exist outside of your repo?

No, somebody else may have made something based on those commits.

Is there a perfect process model?

No.

How do you gather requirements?

Observation (read documents and discuss with users), Interviewing, and Prototype (draw pictures, develop mock-up)

What is the retrospective?

Opportunity to reflect and plan for improvements during the next sprint.

What are swim lanes?

Partition activities among classes.

What is the goal of the sprint review meeting?

Present accomplishments, demo features

What is domain analysis?

Process by which software engineer learns about the domain to better understand the problem. Benefits: Faster Development Better System Easy to anticipate future modifications

What are deliverables?

Product owners presents a list of items to complete, teams develop a goal considering: backlog, capacity, performance.

Who are the development managers?

Project coordinators, those who *supervise* the development process

What are the eight principals of the ethics code?

Public Client/Employer Product Judgement Management Profession Colleagues Self

What are the different types of requirements?

Real [functional/performance] Constraints [nonfunctional] (all software must be in C) Possible [non-measureable] (look good, designed in Sen X state)

What are design patterns?

Recurring aspects of design. A pattern is a general, reusable, solution.

What is the purpose of exploring requirements?

Reduce uncertainty about what is needed and not requested, and what is asked for and not needed.

What is the git working directory?

Refers to the currently checkout out version of the project

What are the traits of the scrum master?

Represents the management to the project, protects scrum policies, removes impediments, *shields team from external interference*

What is part of the software *development* cycle?

Requirements Design Implementation Test Installation

What is a framework?

Reusable software that implements a generic solution to a generalized problem.

What are some commonalities between the forms of engineering?

Series of decision, need to perform a trade off analysis, work as part of a team. Use *tools* that apply to *processes* systematically.

What is a product line?

Set of products built on a common technology base. (e.g. Windows 10 Home, Ultimate, Business, etc)

What are user stories?

Short, simple descriptions of a feature told from a certain perspective. As a <type>, I want <goal>

What is an association?

Shows how two or more classes relate to eachother.

What is a composite structure diagram?

Shows internal structure. Port: connects classifiers with their parts and env. Connector: Binds two or more entities together.

What is centralized model revision control?

Single authoritative repository, all code checked into/out from this location (e.g. VCS)

What is part of the software *life* cycle?

Software Dev Cycle Operation/Maintenence Retirement

What are aggregations? How are they represented in UML?

Special associations representing "part-whole". Whole is referred to as aggregate. Denoted by a diamond (e.g. Vehicle <>-- VehiclePart)

What is multiplicity?

Symbols that indicate the varying levels of association. (one-to-one, many-to-one, etc)

What is in the sprint backlog?

Tasks with estimated time to complete each item, assigned to a team member.

What is a domain?

The general field of business or technology in which the software will be used.

Who are the software developers?

Those who *create* and *maintain* the software

Who are the customers?

Those who *pay* for the software (e.g. Gmail, we are not the customers, advertisers are [we're users])

Who are the users?

Those who *use* the software

What is the goal of software engineering?

To solve problems! Within: *cost* *time* *customer* *others*

Why prototype?

User is not computer literate, not able to specify needs, not sure if design will work.

Who are the different stakeholders?

Users, Customers, Software Developers, Development Managers

What are the advantages of distributed systems?

Work can be balanced more effectively, communicate from distance, design can be separate (simpler)

What is a sprint planning meeting?

Work to be performed in the upcoming sprint is planned. Suggested 8 hours for a one month sprint. Parts: What will be delivered? How will work get done?

Should software developers avoid re-developing software?

Yes! Reuse and design for reusability should be part of the culture of software development organizations.

What is a system domain model?

omits many classes needed for complete system, developed & used independently.

What is a framework hook?

optional functionality, allowance made for the dev to provide it


Kaugnay na mga set ng pag-aaral

North Africa and Middle East Study Guide

View Set

MedSurg-Chapter 24- Chronic Pulmonary Disease

View Set

Physical Anthropology Quiz & Exploration HW Questions

View Set

✖️Multiplication Facts 6x6 to 9x9

View Set

Structure and Function of Key Organelles (Mitochondria, Chloroplast, Cell Membrane)

View Set

E.1.3 Analyze various sentence structures

View Set

What did you learn?? Organ transplant

View Set

Vision and the Structure of the Eye (Psychology 8)

View Set

Chapter 19 Practice Test Questions

View Set