INF 43 Midterm

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

Imagine that you are one of the original developers of UCI's WebReg (or similar course enrollment system) and you are designing a use case model for the system. a. "Student," "Administrator," "UCI Net ID Login System" would all be examples of ______ in your use case model. b. "Enroll in class," "Drop class," "Search for courses" would all be examples of __________ in your use case model.

Actors, use cases

Underlying most software principles, as well as most of what we do in software engineering, is the need to manage the ___________ of software

Complexity

Peer-to-peer

Components ("peers") are equals and can act as either clients or servers - Data and behavior are distributed among peers Connectors are network protocols Key benefits: - Highly robust in the face of failure of any given node

Architectural Style is described as a pattern of decisions that work well together. A named, commonly used set of _______ and _______

Components and connectors

Client-Server

Components are clients and servers A server has computational resources that it provides to one or more clients Clients make requests of servers Generally used in distributed systems Key benefits: - Centralized security - Centralized data access and management EX. Email

Pipe-and-filter

Components are filters - Transform input data streams into output data streams Connectors are pipes - Conduits for data streams Key Benefits: - Easy filter addition, replacement, and reuse

Model-view-controller

Components are models, views, and controllers Models store info about the state of the program View components present info to the user Controllers allow user to control model/view and tell models (views) to update Key benefits: ---> Modularity, anticipation of change EX. Websites, web applications

Object Oriented

Components are objects - Containing all the data and behavior relevant to the object Connectors are messages and function calls - Objects expose a certain interface to other objects - An object's internal representation is hidden from other objects - Objects in sw are used to model real-world objects

Layered

Components are organized in hierarchical layers Connectors are protocols of layer interaction Multi-level client server: each layer acts as a - Service: service provider to layers above - Client: service consumer of layers below Key benefits: - Increasing abstraction levels - Changes in a layer affect at most the adjacent two layers - Lower layers are easily reusable

Publish-Subscribe

Components are publishers or subscribers - Subscribers register/deregister to receive specific messages/content Connectors are network protocols Key benefits - Efficient one-way dissemination of info EX. Stock market

SA consists of _________ and ____________, and arranged into ___________

Components, Connectors Configurations

Nonfunctional Requirements

Define additional requirements other than what the behavior the system supports

Wasserman's Principles of Software Engineering

Divide and conquer, modularity, separation of concerns, abstraction

Water Fall Method Example

Example: Separation of Concerns: Each phase of the waterfall model is devoted to a different concern (eliciting the user's needs, writing code), and the concern in that phase is completely separated from the other phases

A ___________ remains between the prescriptive architecture, which concerns decisions, and the descriptive architecture, which concerns programmatic elements

Gap

In Brooks' "No Silver Bullet' essay, which one of the following was not a "Promising attack" ( or "potential silver bullet") on the essential difficulties of software?

High-level Languages

Recall the software failure reading about Shopa, the shopping/social media website that shut down. According to the source quoted in the article, what was the main reason Shopa shut down?

No one in the company could figure out what product they were building

Class Names

Only required tag in the graphical representation of a class

What are the three "essential ingredients" of Software Engineering

People Processes Tools

Examples of Non-functional requirements

Performance, scalability, availability, security, privacy, reliability, portability

______ Implies a degree of importance that grants a design decision "architectural status"

Principal

The Mythical Man-Month: What is the problem with many software projects, as discussed in this paper? What is the "common disaster" that Brooks speaks of? (one sentence)

Projects go awry because of a LACK OF CALENDAR TIME

A software system's architecture is the set of principal design decisions about the system is ________

Software Architecture

Parnas & Randell SE Definition:

The multi-person construction of multi-version software.

Functional Requirements

The specific behavior of the system

Which of the following statements in not true? a.Use cases are textual descriptions of major functions the system will perform for its users b. Use cases can help ensure a common understanding of the requirements among the developers, customers, and users c. Use cases can be used to specify all of the requirements for a system d. Use cases can help in verifying that certain requirements have been captured e. All of the above statements are true

a. - Use cases can be used to specify all of the requirements for a system

Which of the following is not a cause of late software projects, as suggested by Brooks in "The Mythical Man month?" a. lack of skilled software engineers b. poorly developed estimating techniques c. adding manpower to an already late project d. poor monitoring of schedule progress e. confusing effort with progress

a. lack of skilled software engineers

Which of the following statements is not true about use cases? a. use cases can be used to specify all of the requirements for a system. b. use cases are textual descriptions of major functions the system will perform for its users. c. use cases can help in verifying that all requirements of been captured. d. use cases can help ensure a common understanding of the requirements among the developers customers and users

a. use cases can be used to specify all of the requirements for a system

Components of a system are grouped so that those in one section only communicate with those immediately above or below. This is a description of which architectural style? a. Model-view-controller b. Layered c. Client-server d. Pipe-and-filter e. Publish-subscribe

b. Layered

Within the context of requirements engineering, what is the primary purpose of creating a (rapid) prototype? a. To determine the optimal programming language for the desired system b. To assist in understanding the user's needs c. To assist in choosing the most appropriate software life cycle model d. To assist in planning the schedule of the project e. To fulfill the structure of the spiral process model

b. To assist in understanding the user's needs

Which of the following is not a definition of software architecture given in class? a. the set of principal design decisions about a system b. the set of principles and best practices guiding the software process c. the blueprint for construction and evolution of a software system d. the clear definition of multiple components that, when working together, form your system and solve your problem. e. all of the above were definitions given in class

b. the set of principles and best practices guiding the software process

On the Unix or Linux command line, you can start with a file of record, then filter them, sort them, and remove duplicate records. This architectural style is called: a. filter-and-pipe b. publish-subscribe c. pipe-and-filter d. layered e. none of the above

c. pipe and filter

Which of the following is not defined by a software process model, according to the textbook? a. A set of tasks that need to be performed. b. The input to and output from each task. c. The preconditions and postconditions for each task. d. The number of people assigned to each task. e. The sequence and flow of these tasks.

d. the number of people assigned to each task

Which of the following is not an Informatics 43 software principle? a. Generality b. Rigor and formality c. Separation of concerns d. Anticipation of change e. These are all software principles

e. These are all software principles

Brooks uses the analogy of a silver bullet that kills the werewolf to describe something in software that a.will have the impact of Ada and other high level languages. b.will make digital computer systems conform to the laws of nature. c.makes the invisible visible. d.provide opportunities for growing designers to interact with and stimulate each other. e.makes software costs drop as rapidly as computer hardware costs do.

e. makes software costs drop as rapidly as computer hardware costs do

If you add three more people to a project team of five, how many more communication channels will you add?

formula = n(n-1)/2 18

A system's _____________ architecture captures the design decisions made prior to the system's construction it is the as-conceived or as-intended architecture

prescriptive

Architectural Views (textbook)

run time ---> ADD MORE

NSB - Invisibility

- "The reality of software is not inherently embedded in space" - Hinders both understanding and communication among minds

Classes

- A blueprint for a set of objects that share the same attributes, operations, relationships, and semantics - Graphically, usually rendered as a rectangle, including its name, attributes, and operations in separate, designated compartments.

Scenarios

- A sequence of steps describing an interaction between a "user" and a "system" - A use case describes a set of scenarios/flows that together accomplish a specific user "goal"

Design Diagrams

- A statement in a language that has syntax

Use Case

- A textual depiction of a requirement +Basic functionality/goal + Any precondition for the functionality + Flow of events (scenarios) for the functionality + Any postcondition for the functionality + Any error condition and alternative flow

"Brooks Law"

- Adding manpower to a late software project makes it later

Object-Oriented Design and UML

- An object contains both data (name, medical record, number, email) and method (editRecord, checkin, etc,) - A class is a blueprint for making object that have the same kinds of data and the same methods

Perspectives of SE

- Business - Engineering - Design

Relational Database Design

- Design tables where data is stored and relationships between them

Functional Decomposition

- Identify tasks/functions, sub-tasks, sub-sub-tasks, etc. - Decomposing tasks/functions/modules/system into smaller tasks/ - May result in the same sub-sub-task appearing more than once in the tree

UML (Unified Modeling Language)

- Industry standard for software design/modeling - A set of dozen or so visual languages for specifying object-oriented systems - Different types of UML diagrams are used to represent different aspects (structure, behavior, interactions) of a system

Davis' Principles of SE

- Make quality #1 - Give products to customers early - Use an appropriate process model - Get it right before you make it faster - Good management is more important than good tech

Why use cases?

- Map well to design and implementation constructs (especially object-oriented) - 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 responses

NSB- Complexity

- No two parts alike: no production phase like autos, each part customized for the specification nonlinear increase with size because of complex interaction between multiple parts difficulty of communication because of complexity -unreliability: can't understand and anticipate all possible states of the program (bc of complexity) hard to use because of complexity difficulty of extending without creating side effects (bc of complexity) unvisualized states -> security trapdoors (bc of complexity)

NSB - Changeability

- Pressure for extended function - Software can be changed more easily - Successful software survives beyond the life of the hardware it was written for

Approaches to Software Design

- Software Architecture - Functional decomposition - Relational database design - Object-oriented design and UML - User interface design

NSB- Conformity

- Software must conform to human institutions and systems - No way to "simplify out" this complexity by redesigning the software alone

Design Phase of SE

- Something usually needs to be done AFTER the user's requirements are specified and BEFORE coding starts, especially on larger tasks

UML Class Diagrams

- Used in a decomposing system into modules known as classes ---> SHOW: - what the classes of the system are - How they are related - The attributes (data) and operations (behavior) of each class --> MOST COMMON WAY TO REPRESENT AN OBJECT-ORIENTED DESIGN <----

The Mythical Man-Month: What are the five reasons or causes for the "disaster"?

1) Optimism 2) Man-Month 3) Systems Test 4) Gutless estimating 5) Regenerative Schedule Disaster

5 Causes of the Disaster == "Common" Disaster"

1) Poorly developed estimating techniques coupled with developer optimism 2) Estimating techniques confuse efforts with progress 3) Managers being uncertain about estimates so frequently change in line with what the customer wants 4) Poor monitoring of schedule progress 5) Adding manpower to an already late project.

What are the "Inherent" properties of the "Irreducible essence of modern software systems"

1. Complexity 2. Conformity 3. Changeability 4. Invisibility

Major steps in requirement engineering:

1. Elicitation 2. Documentation (and definition) 3. Specification 4. Prototyping 5. Analysis 6. Review and validation 7. Agreement and acceptance

Break throughs that only solved accidental difficulties

1. High-level languages 2. Time-sharing 3. Unified programming languages

Top TWO software failure causes

1. Incomplete requirements 2. Change in requirements

Waterfall method

1. Requirements 2. Design 3. Implementation 4. Verification 5. Maintenance

Top Failure software causes

6 TOTAL 1. Lack of user input/involvement 2. Incomplete requirements and specification 3. Changing requirements and specifications 4. Lack of discipline in development processes 5. Lack of methodical usage of metrics 6. Lack of resources


Kaugnay na mga set ng pag-aaral

7.05 Testing Tips: Misconceptions and Timed Testing

View Set

Anatomy and Physiology 1: Chapter 15 Part 3 (Hearing and Balance)

View Set

Fetal Assessment for Risk Factors (Exam 3)

View Set

(PrepU) Mood & Affect / Mental Health Concepts: Nursing Concepts

View Set