21
Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Embed Size (px)

Citation preview

Page 1: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Lecture Set 3E

Introduction Basic Software Development

Issues

1. Notes on Software Development2. Intro to Software Development

Tools 7/31/2008 2:43PM

Page 2: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 2

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

Page 3: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 3

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 Postimplementation audit

Missing from this “picture” are the “feedback” loops (What does this mean?)

Page 4: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 4

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

Page 5: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 5

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

Page 6: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 6

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

Page 7: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 7

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 top-down design process

Page 8: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 8

HIPO chart for an ATM withdrawal

Page 9: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 9

Expanded HIPO chart

Page 10: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 10

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

Page 11: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 11

Generic flowchart

Page 12: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 12

ATM withdrawal flowchart

Page 13: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 13

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

Page 14: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 14

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

Page 15: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 15

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

Page 16: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 16

UML Class Diagram

Page 17: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 17

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 this

aspect of UML until near the end of the course

Page 18: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 18

UML Use Case Diagram

Page 19: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 19

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

Page 20: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 20

UML ActivityDiagram

Page 21: Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM

Slide 21

“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

8/13/2008 10:35 PM