Professional Documents
Culture Documents
CS6231 SWEngineering Lecture 1b SE Introduction
CS6231 SWEngineering Lecture 1b SE Introduction
Fall 2023
Jon Walter McKeeby, D.Sc.
Based on Slides by
Stephen H. Kaisler, D.Sc.
Introduction
To
Software Engineering
Lecture 1
CSCI 6231. Software Engineering.
3 Credits.
Process
Infrastructure
• Networking People
• Hardware
Information
System
Data
Software
Databases
• User Devices
User • Connectivity/Network
• Applications
Software • Operating System
• Databases
• Data Warehouses
Data • Files
• Dashboards
• Hardware
Infrastructure • Network
– What are other ways data from the system can be used?
Axiom:
Success is defined by the beholder (user), not the designer!
09/16/2023 CSCI 6231 - Software Engineering 1-22
Stephen H. Kaisler, D.Sc.
Software Engineering
• A Problem-Solving Activity:
– Analysis: Understand the nature of the problem and break the
problem into pieces
– Synthesis: Put the pieces together into a coherent structure.
Customer
Programmer
System-to-be
Environment
Software-to-be
User
Des
c ribe
s ne e Software Engineer’s task:
d
To understand how the system-to-be needs to interact with
the user or the environment so that customer’s requirement is met
and design the software-to-be
They typically come from the funding sponsor of the project. The acquiring
customer, the manager of the actual users, the marketing department, or a
product visionary. (Think Steve Jobs)
Functional requirements specify the functionality that the software should have
to satisfy the user’s business operations.
They specify what features the system developers should build into the
product to enable users to accomplish their tasks.
They also define and describe external interfaces to the real world, and
design and implementation constraints.
User requirements describe user goals or tasks that the user must be able to
perform with the product.
Ex: “ I must be able to make a reservation for ….”
They describe what the user will be able to do with the system, e.g., what tasks
s/he can do.
Domain
Prioritization
understanding
Process
entry
Requirements Conflict
collection resolution
Classification
During
detailed
design
Note: the term “module” has many definitions. Here we use it to describe
subsets of functional requirements specifications that are to be implemented in
an executable entity in the resulting system.
Top-down approach:
Roots of
Cubic Equation
|
|
---------------------------------------------------------------------
| | | | |
Input Test for Find Classify Output
Coefficients singular roots roots roots and
A,B,C,D cases classification
Bottom-up: Work can begin based on detailed specifications only for the crucial
modules
2. Design mistakes
Top-down: If made at a high level and not found until later, they can necessitate
major rewriting. If made at a low level (e.g., early in the design), the impact will
be small. Only a single small module will be affected.
Bottom-up: More tolerant of early errors since they only represent redesign of a
single module in most cases.
Top-down: Top-down testing requires test stubs but not test drivers.
Bottom-up: Bottom-up testing requires test drivers, but not test stubs.
4. Standardization
Top-down: One can delay details of data structures wholly contained in lower
levels during the initial stages of design.
Bottom-up: One must decide on all data structures which the module interfaces
with before proceeding.
Top-down: Both top-down and bottom-up methods must be used; often called
the middle-out approach.
Top-down: Requires a different approach from that previously used. Can pose a
threat to the less skilled designers and programmers. Not for the "hacker"
mentality.
Top-down: Many designers and programmers are now being trained this way. May be a
novel approach to old-timers. Military regulations force many corporations to retrain their
personnel.
Bottom-up: As long as they aren't "computer enthusiasts" who revel in bit juggling and
assembly language tricks, the illogic of poorly chosen bottom-up designs should be clear.
Top-down: It may take time to educate top-level managers about what to expect at
various stages. Structure charts or pseudo-code for all levels of design are completed
first before code is written.
Bottom-up: It is easy to convince top-level managers that you are making progress if you
cite the percentage of code completed (though it is hard to justify just how much must be
written!).
Bottom-up: Size is set by the module being designed. May be very large or very
small.
Top-down: Easy to include because they generally represent added modules or redesign
of a few modules, but retain the same control structure. If they can be anticipated, the
test stubs and interfaces can be coded and left in for future use.
Database Systems:
Design, Implementation,
and Management.
Edition: 13th (2018)
Author: Coronel, Morris
Publisher: Cengage
Learning Book ISBN:
978-1337627900
http://www.bing.com/images/search?
q=waterfall+lifecycle&qpvt=waterfall+lifecyc
le&FORM=IQFRML#view=detail&id=E96B
357E311613453DEAB5A36C3B5E181E20
B02B&selectedIndex=1