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