Midterm Flashcards
Kick ass on midterm!
a model or pattern, an archetype, for solving
problems.
Defines or structures how
problems are approached.
Constrain the way that we think about problems,
and guide the way problems are solved.
paradigm
a specific implementation of a paradigm.
methodology
- Function oriented
- State oriented
Computational Paradigms
– Procedural
– Object Oriented
– Logic
– Functional
Programming Paradigms
– Waterfall Model
– Iterative/Incremental Development
– Agile Processes
– The Quality Paradigm
Development and Process Paradigms
Understanding paradigms helps the problem solver avoid _____.
biases
- Cost estimation, budgeting, scheduling.
- Requirements analysis.
- Design.
- Implementation.
- Testing.
- Deployment.
- Measuring products and processes.
- Quality improvement.
- Maintenance.
- And so on …
These are qualities of what?
Software Development
Which viewpoint are these questions from?
- What functionality is provided?
• What performance characteristics are required
for the functions provided?
• What is the user interface?
• What are the intended uses of the product?
• What are the customer’s expectations
regarding the product?
• How will the product be maintained over time?
Does the system use resources wisely?
• How many defects are present in the product?
• How serious are the defects?
• What quality attributes are important for the
product?
• How will the important quality attributes be
assessed?
Product Viewpoint
What type of viewpoint do these questions fall under?
Who is involved? What roles do individuals
have?
• How many individuals are involved?
• What are their individual abilities and
characteristics?
• What are the tasks they perform? How are
tasks allocated to individuals?
• Is there a match between individual’s
characteristics and their assigned tasks? How do you know when a task is complete?
• How long does each task take?
• Are there dependencies such that some tasks must
be complete before other tasks are begun?
• Can some tasks be performed concurrently?
• How is the process coordinated, managed, and
controlled?
• What communications support is required?
• What work products does the process produce?
Process Viewpoint
Which part of software lifecycle shown to cost the most?
Maintenance
Which part of software lifecycle shown to cost the least?
Requirements
What type of current concerns are these?
Programming in the large
– Multi-person teams work for several years to specify
and implement a system.
– Collaboration and communication may be required
between individuals who are separated by space and
time.
– Systems may comprise several programs, possibly
written in different languages and running on different
platforms.
• The efficiency of the process is as important as
the efficiency of the product.
• Solving the right problem!
Current Process Concerns
• Hardware continues to advance faster than our
ability to write software to take advantage of it.
• Demand for software outpaces production.
• Existing software is difficult to maintain.
• Industry continues to produce poor quality
software.
• All segments of society are increasingly
dependent on software.
Current Product Concerns
True or False:
Software is more complicated than other
artifacts constructed by human beings.
True
What characteristic of software do the following statements reflect?
Software is not usually isolated in the world.
• Software is typically an integral part of more
intricate systems. Software, therefore, must
interface with existing systems and conform to the
way existing systems behave.
• Since software is not physical it is seen as the
most flexible.
• If existing hardware and software are
incompatible, nobody ever suggests modifying the
hardware to conform to the software!
Software Conformity
What characteristic of software do the following statements reflect?
There will always be pressure to change software.
• Software is intended to contribute to people’s
ability to cope and manage their worlds, and their
worlds change.
• When the requirements for a software system are
defined, they are based largely on the nature of
the world before the system is built. When the
new system is introduced, the world is
immediately changed.
Software Changeability
What characteristic of software do the following statements reflect?
We have yet to achieve an adequate
representation for systems.
• We certainly have various graphical and
textual representations for systems, but we do
not as yet have any way to capture an overview
of the product that allows us to reason or
communicate about the system.
Software Invisibility
What characteristic of software do the following statements reflect?
Various software products often have very little in
common. What are the similarities between a
word processor, a web server, and an air traffic
control system?
• Software companies are constantly asked to create
novel products unlike anything seen before.
• Compare this situation to the automobile industry
which gradually refines what is essentially the
same product over many years.
Software Variety and Novelty
On average, professional coders make ___ to
___ errors in every thousand lines of code.
100 to 150
In almost any phase of tests roughly what percentage of defects are found?
Less than half
What do these factors represent?
- Number of functions performed • Novelty of application • Concurrency • Multitasking • Real-time constraints • Parallel and distributed processing • Amount and structure of data • Criticality • Security • Interaction with other systems • Hardware constraints • Stability of specification • User sophistication
Influencers of difficulty in software engineering
What are the 4 Ps of Software Development?
People
Problem
Process
Product
a hypothetical machine
that can be in only one of a given number of
states at a specific time.
In response to a stimulus, the machine performs an action (possibly generating output) and changes state.
Finite state machine
What type of diagrams capture the behavior of finite state machines?
State diagrams
The following are characteristics of what?
• Actions are processes that occur “quickly” and
are not interruptible.
• A single state in a state diagram may be
decomposed into several states in a less
abstract view.
State Machines
The specification of the external behavior of a
system is primarily a description of how the
system outputs relate to the system inputs.
The classic example for is the mathematical function.
Function-Oriented model
F3(F2(F1(X))) = Y
Function-Oriented Model
In a Data Flow Diagram, how is a source or destination of data represented?
Double Square
In a Data Flow Diagram, how is the flow of data represented?
Arrow
In a Data Flow Diagram, how is a process which transforms the flow of data represented?
Rounded Rectangle
In a Data Flow Diagram, how is a store of data represented?
Open-ended Rectangle
These:
• Define the basic elements of a process model
and how they relate to each other.
• Define how process models are decomposed
into greater detail.
Process Frameworks
In an IDEF0/SADT process model, how is input represented?
– Arrow entering the leT side of the box are inputs. Inputs are
transformed or consumed by the func(on to produce outputs.