- StudyBlue
- Indiana
- Purdue University
- Computer Science
- Computer Science 307
- Dunsmore
- Midterm Practice Exam
Midterm Practice Exam
Computer Science 307 with Dunsmore at Purdue University
About this deck
By: Reid Starn
Textbook:
Object-Oriented Software Engineering: Practical Software Development using UML and Java
Created: 2012-03-22
Size: 42 flashcards
Views: 37
Textbook:
Object-Oriented Software Engineering: Practical Software Development using UML and JavaCreated: 2012-03-22
Size: 42 flashcards
Views: 37
About StudyBlue
STUDYBLUE makes things that make you better at school.
Things like online flashcards with photos and audio.
Things like personalized quizzes and friendly reminders about when (and what) to study next.
Think of it as a digital backpack™: access to all of your study materials online and on your phone.
STUDYBLUE exists to make studying efficient and effective for every student, for free. Join us.
“I have used this website for three exams, and I see a huge difference in my test results.”
Naj
Naj
Sign up (free) to study this.
Why do some Software Engineering projects NOT involve writing software?
Sometimes the solution is to assemble from existing components, not build from
scratch.
Sometimes the solution is to buy, not assemble or build.
(Either answer is ok.)
What are Software Quality Attributes
The Functional Requirements describe what the system should do.
Software Quality Attributes are constraints on the design to meet specified levels
of quality.
Give an example of two (or more) Software Quality Attributes that may
conflict.
Security and Performance.
Efficiency and any of Maintainability, Reusability, Usability, Modifiability.
What is Scalability?
Can the software handle increasingly large volumes of data from the current
configuration up through the largest possible?
What does it mean to say that an advantage of a client-server system is that
both the client and server can be simpler?
Client: Does not need to know how computation is done or service is provided.
Server: Does not need to know what will be done with resulting computation or
service.
What is the objective of Use Case analysis?
To model the system from the point of view of how users interact with the system
when trying to achieve their objectives.
In a Use Case the steps are divided into two columns. What are these?
Actor actions and System response
A Requirement is a statement. What does that statement describe?
An aspect of what the proposed system must do, or a constraint on the system's
development.
Based on your team's project, create a UML diagram showing two related
classes:
a) Label each class with the class name.
b) For each class, include the names of two or more class attributes (instance
variables).
c) Label the association between the two classes.
d) Indicate whether that association is 1-to-1, 1-to-many, many-to-many, etc.
slide 67
What problem does the Singleton Pattern solve?
Ensures that it is never possible to create more than one instance of a class.
In User Interface Design, what is the difference between Utility and Usability?
Utility -- Does the system provide the raw capabilities to allow users to achieve
their goal regardless of how easy it is to use?
Usability -- Does the system allow the users to learn and to use the raw
capabilities easily?
n a Sequence Diagram, what does the vertical dimension (top to bottom)
represent?
Time
Draw an Activity Diagram (involving at least 2 classes and 2 activities) that
represents some use case(s) for your project.
Chapter 8, slide 34 or 38
In an Activity Diagram what do Swimlanes show?
The partitioning of activities among classes.
What does it mean to say that a module has "high cohesion"?
It contains things that are related to each other and keeps out unrelated things.
Design Principle 3 is "Reduce coupling where possible". What is Coupling
and why is it generally a bad thing?
Coupling occurs when there are interdependencies between one module and
another. When interdependencies exist, changes in one place will require
changes somewhere else.
What is Software Architecture?
The high-level structure of a software system including how the software will be
divided into subsystems, deciding how these will interact, and determining their
interfaces. The architecture will often constrain the overall efficiency, reusability and
maintainability of the system.
In the Multi-Layer architectural pattern, why can each layer only
communicate with the layer immediately below it?
So that details of the lower levels can be completely hidden from this layer.
What is the difference between White-box and Black-box testing?
White-box -- Testers have access to the system design. They can examine the
design documents, view the code, and observe at run time the steps taken by
algorithms and their internal data.
Black-box -- Testers provide the system with inputs and observe the outputs.
They can see none of the source code, the internal data, or any of the design
documentation describing the system's internals .
Define Equivalence Classes as they are used in Testing.
You should divide the possible inputs into groups which you believe will be
treated similarly by all algorithms. Such groups are called Equivalence Classes. A
tester needs only to run one test per equivalence class.
What is Regression Testing and why should you do it?
It tends to be far too expensive to re-run every single test case every time a
change is made to software. Hence only a subset of the previously-successful test
cases is actually re-run. The tests that are re-run are called regression tests.
What is an Inspection and why is this important?
An Inspection is an activity in which one or more people systematically examine
source code or documentation, looking for defects. There is a growing consensus
that it is most efficient to inspect software before any testing is done.
What are the communication differences between a Chief Programmer (CP)
Team and a Strict Hierarchy (SH) Team?
In an SH team, software engineers can only communicate up and down the
hierarchy chart.
In a CP team, software engineers can communicate with all their co-workers.
What is one characteristic of an Egoless Software Engineering team?
In such a team everybody is equal, and the team works together to achieve a
common goal.
Decisions are made by consensus.
Most suited to difficult projects with many technical challenges.
(Any answer above is ok.)
One axis of a Gantt chart shows time. What does the other axis show?
The activities that will be performed.
Explain why Software Engineering is NOT the same as Programming.
Sometimes the solution is to buy, not build.
Teamwork and coordination are required.
Most projects are evolutionary or maintenance projects, involving work on legacy
systems.
For some projects, no software is written. It is obtaine
Explain how Software Quality Attributes put constraints on software over and
above functional correctness.
Functional requirements describe what the system should do.
Software Quality Attributes are constraints on the design to meet specified levels
of quality
What are some advantages of the Client-Server Architecture?
The work can be distributed among different machines.
The clients can access the server's functionality from a distance.
The client and server can be designed separately.
They can both be simpler.
All the data can be kept centrally at the server.
Conversely, data can be distributed among many different geographicallydistributed clients or servers.
The server can be accessed simultaneously by many clients.
What is the objective of Use Case analysis?
To model the system from the point of view of how users interact with the system
when trying to achieve their objectives.
In a Use Case the steps are divided into two columns. What are these?
Actor actions and System responses
Explain how UML diagrams can be useful in each of (a) Design, (b) Project Plan,
and (c) Implementation.
(a) Design -- represent high level decisions
(b) Project Plan -- document to stakeholders and team members how the project
will be implemented
(c) Implementation -- provide road map for writing classes
In the Singleton Design Pattern what does the public class method often called
getInstance() do?
The first time this method is called, it creates the object.
Subsequent calls simply return theInstance singleton object
Design Principle 3 is "Reduce coupling where possible". What is Coupling and
why is it generally a bad thing?
Coupling occurs when there are interdependencies between one module and
another. When interdependencies exist, changes in one place will require
changes somewhere else.
How does the Multi-Layer architectural pattern work?
Each layer communicates only with the layer immediately below it.
Each layer has a well-defined interface used by the layer immediately above.
The higher layer sees the lower layer as a set of services.
Why does increasing Security affect Performance?
Because the measures taken for increased Security often slow down a software system.
How does the Object-Oriented concept "Encapsulation" help us in Software Engineering?
In Encapsulation details can be hidden in classes. I do not need to know any of the details of what you are doing to develop my part of the project.
In a Framework explain the difference between a "slot method" and a "hook method".
A "slot method" is missing (abstract) and must be provided by you. A "hook method" is optional and can be provided if you like or if you want to override the default method.
In our design so far, we have a class FileServers with attributes serverName1, serverAddress1, serverName2, serverAddress2, serverName3, and serverAddress3. But, we may add more servers. What is a better design?
Create a new class SpecificServer that contains the serverName and serverAddress. Then, create a 1-to-many relationship between FileServers and SpecificServer.
What problem does the Delegation Pattern solve?
How can you most effectively make use of a method that already exists in another class?
What is the most important benefit of having several stakeholders review a Design Document?
Changes may be suggested and the design may be improved.
Why is the defect deadlock hard to detect just by testing?
Deadlock usually occurs due to an unusual combination of conditions that are hard to anticipate in a test case.
Why is the Delphi technique a better cost estimation technique than just averaging individual estimates?
People explain why they made the estimate they did. Other people can adjust their estimate based on those explanations.
About this deck
By: Reid Starn
Textbook:
Object-Oriented Software Engineering: Practical Software Development using UML and Java
Created: 2012-03-22
Size: 42 flashcards
Views: 37
Textbook:
Object-Oriented Software Engineering: Practical Software Development using UML and JavaCreated: 2012-03-22
Size: 42 flashcards
Views: 37
About StudyBlue
STUDYBLUE makes things that make you better at school.
Things like online flashcards with photos and audio.
Things like personalized quizzes and friendly reminders about when (and what) to study next.
Think of it as a digital backpack™: access to all of your study materials online and on your phone.
STUDYBLUE exists to make studying efficient and effective for every student, for free. Join us.
“I have used this website for three exams, and I see a huge difference in my test results.”
Naj
Naj