Transcript CHAPTER 1
Lecture Set 3E
Introduction Basic Software
Development Issues
1.
2.
Notes on Software Development
Intro to Software Development Tools
7/18/2015 2:05 AM
Objectives
Explain the software development life cycle
Describe selected tools used to help design
software systems
Develop some ability to use UML Activity
Diagrams in mapping out the behavior of a
software system
7/18/2015 2:05 AM
Introduction to Software Development
The software development life cycle consists
of a sequence of well-defined steps
Problem identification
System design
System implementation
System documentation
System testing
System deployment
Post-implementation audit
Missing from this “picture” are the “feedback”
loops (What does this mean?)
7/18/2015 2:05 AM
Software Design Methodologies and Tools
Software systems should be designed before
they are implemented
As software systems become more complex, the
design process becomes increasingly important
Several methodologies exist to design software
systems
The choice of methodology is often subjective
Design tools apply some type of model to
describe the software system
7/18/2015 2:05 AM
System Analysis Methodologies
Pseudocode uses English-like statements to
depict an application’s actions
Top-down design is used to subdivide general
tasks into more specific tasks
Flowcharting uses graphical symbols to depict
an application’s actions
The Unified Modeling Language (UML)
supplies several graphical templates to model
a system
7/18/2015 2:05 AM
Pseudocode
Pseudocode uses English-like statements to
describe a particular task
Pseudocode is not exact
Different developers may write pseudocode differently
Pseudocode characteristics
The words “start” and “stop” denote the beginning and
end of a process
The word “if” indicates a decision
Decisions can be nested
Pseudocode used mainly for small algorithms
design – sorts, searches etc
7/18/2015 2:05 AM
Top-Down (Hierarchical) Design
Steps
Define general tasks first
Decompose general tasks into more specific
tasks
Continue decomposing sub-tasks, as needed
Hierarchical Input Process Output
(HIPO) charts are used to visualize the topdown design process
7/18/2015 2:05 AM
HIPO chart for an ATM withdrawal
7/18/2015 2:05 AM
Expanded HIPO chart
7/18/2015 2:05 AM
Flowcharting
A flowchart consists of graphical symbols
that depict the processing in an application or
part of an application – you’ve seen these
before
Each graphical symbol denotes a specific type
of operation
Flowcharting also most suitable for small
algorithms design – not for modeling more
complex systems
Even this ATM model is not quite accurate
7/18/2015 2:05 AM
Generic flowchart
7/18/2015 2:05 AM
ATM withdrawal flowchart
7/18/2015 2:05 AM
The Unified Modeling Language (UML)
The Unified Modeling Language (UML) is
used to model complex software systems in a
visual way
It's one of the premier design methodologies
in use today
The UML consists of several diagrams to
model specific parts of a system
Most important because it facilitates modeling
of data and processes together
7/18/2015 2:05 AM
Common UML Diagrams
Class diagrams model the conceptual and
physical aspects of a system
Use case diagrams model the actors (users)
of a system
Activity diagrams show the actions performed
by the system and the order in which those
actions are performed
UML activity diagrams are similar to flowcharts
7/18/2015 2:05 AM
UML Class Diagrams
UML class diagrams are made up of three
sections
The top section contains the name of a class
The middle section contains the attributes of a
class (data)
The operations (class methods) appear in the
bottom section
The data passed to an operation appears in
parentheses
7/18/2015 2:05 AM
UML Class Diagram
7/18/2015 2:05 AM
UML Use Case Diagrams
Use case diagrams model the actors (users) of
the system
A rectangular box defines the boundaries of the
system
Stick figures define the actors
Lines connect the actors with the system's
elements
We will not get too wrapped up in UML formalisms but we will adhere to the spirit of UML
Activity Diagrams
Class Diagrams
7/18/2015 2:05 AM
UML Use Case Diagram
7/18/2015 2:05 AM
UML Activity Diagrams
UML activity diagrams resemble a flowchart
A solid black circle at the top of the diagram
represents the activity’s initial state
Arrows connect activities together
A horizontal bar represents a decision
In UML terms, this is called a fork transition
A bordered black circle represents the
activity's ending state
7/18/2015 2:05 AM
UML Activity
Diagram
7/18/2015 2:05 AM
“Relaxed” Activity diagram
Activity diagrams hold the key to our
projects.
You will need to use them in understanding
the behavior of the systems you will build
ATM project
Game project
Transaction Processing project
I will use a relaxed version of an activity
diagram (a behavior diagram) in class
7/18/2015 2:05 AM
MVC Modeling – Rudiments of MVC
The MVC design rubric defines three kinds of software
components and the interactions between them.
Controller –
sends commands to associated view to change the view's
presentation of the model It can also
send commands to the model to update the model's state
These commands are transmitted via function calls in C#.
Model - notifies associated views and controllers of
a change in its state. This allows the views to
produce updated output, and the controllers to
change the available set of commands.
View - requests from model the information needed
to generate an output representation to the user.
7/18/2015 2:05 AM