INF 43 Midterm
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