Software Engineering Lecture Notes - Prof. Susan Elliott Sim, Study notes of Computer Science

These lecture notes cover various topics in software engineering, including software lifecycle models, computer-aided software engineering (case), notations, process modeling, agile processes, and extreme programming. The notes also discuss the differences between agile and traditional plan-driven methods, and provide examples of agile methods such as xp, scrum, fdd, and rup.

Typology: Study notes

Pre 2010

Uploaded on 09/17/2009

koofers-user-zm3
koofers-user-zm3 🇺🇸

10 documents

1 / 11

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
INF 111 / CSE 121:
Software Tools and Methods
Lecture Notes for Fall Quarter, 2007
Michele Rousseau
Set 2
(Some slides adapted from Susan E. Sim)
Announcements
}Labs 1,2 Due today
Lecture Notes 2 2
Previous Class…
}Brief Review of S/W Engineering
}Introduction to Tools & Methods
}Review Questions
T or F – Software Engineering can be defined as
the practice of programming a software product.
False
Lecture Notes 2 3
Why do we need software engineering?
Many reasons
To build larger systems
Reduce costs
Have some level of confidence in the quality of the system
What is a S/W Lifecycle Model?
An Abstract representation of the software process - that
defines the process from inception through maintenance
More Review Questions
What are the 3 elements that are
necessary to create a S/W product?
People
Processes
Tools
Why do we need tools?
Scaling problem
Lecture Notes 2 4
Scaling
problem
They support the process/people so that we can build
bigger systems
Why is there a gap between research and
practice?
Leaning curve
Unclear payoffs
Focus tends to be more on what and not how
Today’s Lecture
}Software Tools
}Methods & Notations
}Process Modeling
Agile Process
Lecture Notes 2 5
Agile
Process
Extreme Programming
Notations, Tools & Methods
}Tools:
Machines, Executable Programs
}Methods:
Lecture Notes 2 6
Processes, Procedures
}Notations:
Languages Used by Tools and Methods
Remember the Guitar Example ...
Tool: Guitar
Method: How I play (strum/pick/style)
Notation: Music
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Software Engineering Lecture Notes - Prof. Susan Elliott Sim and more Study notes Computer Science in PDF only on Docsity!

INF 111 / CSE 121:

Software Tools and Methods

Lecture Notes for Fall Quarter, 2007

Michele Rousseau

Set 2

(Some slides adapted from Susan E. Sim)

Announcements

} Labs 1,2 Due today

Lecture Notes 2 2

Previous Class…

} Brief Review of S/W Engineering

} Introduction to Tools & Methods

} Review Questions

● T or F – Software Engineering can be defined as
the practice of programming a software product.

◘ False

Lecture Notes 2 3

● Why do we need software engineering?

◘ Many reasons

  • To build larger systems
  • Reduce costs
  • Have some level of confidence in the quality of the system
● What is a S/W Lifecycle Model?

◘ An Abstract representation of the software process - that defines the process from inception through maintenance

More Review Questions

● What are the 3 elements that are

necessary to create a S/W product?

◘ People ◘ Processes ◘ Tools

● Why do we need tools?

Scaling problem

Lecture Notes 2 4

◘ Scaling problem ◘ They support the process/people so that we can build bigger systems

● Why is there a gap between research and
practice?

◘ Leaning curve ◘ Unclear payoffs ◘ Focus tends to be more on what and not how

Today’s Lecture

} Software Tools

} Methods & Notations

} Process Modeling

● Agile Process

Lecture Notes 2 5

● Agile Process

● Extreme Programming

Notations, Tools & Methods

} Tools :

● Machines, Executable Programs

} Methods :

Lecture Notes 2 6

● Processes, Procedures

} Notations :

● Languages Used by Tools and Methods

Remember the Guitar Example ... Tool: Guitar Method: How I play (strum/pick/style) Notation: Music

Applying Tools in SE

} Computer Aided Software Engineering

(CASE)

} Different types of CASE Products:

● A Simple Tool

◘ Supports 1 specific task

Lecture Notes 2 7

● A Toolkit

◘ A Set of Independent Tools

● A Workbench

◘ Supports a set of tasks or activities (maybe Requirements & Specs only) ◘ May be several tools that work together

● An Environment

◘ Supports the entire process ◘ May be several workbenches – integrated

} Often Focused on Some Aspect

● Language-Centered

◘ Program Structures
◘ Grammatical Descriptions

● Integrated

Environments

Lecture Notes 2 8

◘ Data Repository

● Process-Centered

◘ Development Process

Analyst Workbench or Upper CASE

} Supports Upper Part of the Waterfall

● Requirements ● Design

} Tools to Support

● Drawing Tools ◘ Simple Æ Complex ● Database

Lecture Notes 2 9

● Database ● Data Analysis Tool ◘ Consistency Checking, Completeness ● Generate Reports ◘ Adhere to Company Standards

} Examples:

● Argo UML ● Rational Rose ● TogetherJ

Programmer Workbench / Lower CASE

} Supports Lower Part of the Waterfall

● Implementation ● Testing ● Maintenance

} Tools to Support

● Language Sensitive Text Editor (WebEdit) ● Debugging

Lecture Notes 2 10

● Debugging ● Code Generators ● Syntax Checker ● Performance Analyzer ● Configuration Management ● Compiler ● Generation of Test Data ● Unit Test Tools ● Simulation ● Regression Testing ● Refactoring Tools

What is Refactoring?

} Cleaning up Code

● Does not change the output

● Renaming Variables

● Restructuring Code

● Changing Logic

Lecture Notes 2 11

} Helps with:

● Legacy Code Æ Code Atrophy

● Spaghetti Code

Management Workbench

} Supports Management of the Project

● Planning ● Control

} Tools to Support

● Configuration Control ◘ Design or Data Analysis ◘ Workflow

Lecture Notes 2 12

◘ Workflow ● Work Assignment ◘ Assigning Resources Efficiently ● Cost Estimation ● Reliability ◘ Estimates Reliability ◘ Forecasting Testing time

Petri-Net View of PSEE

Code Ready

From

Hold Review

Reviewed Code

Revised

Next Step

Update End

Lecture Notes 2 19

Review Scheduled

Coding

From Mgt

Minutes

Revised Code

Step

Some of the Tools/Environments We

Will Use

} Eclipse JDT

} JUnit

} Eclipse Plugins

Lecture Notes 2 20

} Argo UML (Or Rational Rose)

} Etc…

Remember -- Selecting a Tool?

Tools

I

T

y

p

i

Lecture Notes 2 21

Techniques

S/W Process Model

D

E

A

L

i c a l l y

Methods

} A Method is a technical prescription for how

to perform a collection of activities , focusing

on integration of techniques and guidance on

their use.

Lecture Notes 2 22

● Prescribe Æ to lay down a rule

} A Technique is a prescription of how to

perform a particular activity

● May include rules on how to describe a product of
that activity in a particular notation
● Smaller than a Method
● Example: Unit Testing

Graphically

Activity 2 Activity 1^ Activity 2
Technique –
How to perform
as specific Activity
Method –
How to perform
Many Activities

Lecture Notes 2 23

Activity 1
Activity 3 Activity 3

Tools vs. Methods

} Construction

● Tools

◘ Hammer
◘ Saw
◘ Measuring Tape

Lecture Notes 2 24

● Methods

◘ Rules for Construction

Tools vs. Methods – Take 2

} I give you a camera
} I teach you how to take a picture:

● Auto-focus P h th B tt

Lecture Notes 2 25

● Push the Button

} I teach you how to shoot a very nice picture

● Lighting ● Aperture ● Shutter Speed ● Composition

Method vs. Methodology

} A method is a description of how we do

something

} A methodology is the study of methods

} Methodology (from Wikipedia)

Lecture Notes 2 26

The common idea here is the collection, the
comparative study, and the critique of the
individual methods that are used in the given
discipline or field of inquiry

Notations

} A notation is a representation scheme (or

language)

} A process model is an abstract

description of how to conduct a collection

of activities focusing on resource usage

Lecture Notes 2 27

of activities , focusing on resource usage

and dependencies between activities

● Often expressed using a notation

Notations, Tools & Methods

} Tools:

● Machines, Executable Programs

} Methods:

Lecture Notes 2 28

● Processes, Procedures

} Notations:

● Languages Used by Tools and Methods

Remember the Guitar Example ... Tool: Guitar Method: How I play (strum/pick/style) Notation: Music

Modeling

Lecture Notes 2 29

Modeling

} A model is an abstract representation of a
specification
} Defined by a consistent set of rules

● Dictate the meaning of the components d i t ti

Lecture Notes 2 30

… and interactions

} Some Basic Principles

● Models are used for breaking down concepts ◘ Requirements or Design (Unified Modeling Language) ● Used for communicating ● Choice of the Model influences the Product ◘ Object Models ◘ Data Repository Models ◘ Pipe and Filter ◘ Etc..

We Discussed Traditional S/W Process

Models

} Waterfall

} Spiral

} Incremental

Lecture Notes 2 37

} …etc

Criticisms with Traditional Process

Models

} Generally don’t handle change well

} Implementation is delayed until

Lecture Notes 2 38

p y

uncertainties are completely

resolved

} Too mechanistic to be used in detail

The Agile Method

} Agile – “having a quick resourceful

and adaptable character” – Merriam-Webster

} Works best for smaller teams and

Lecture Notes 2 39

projects

} Quick Product Releases

Four Central Values of Agile

Methods

1. Focus on the human role of s/w dev

2. Continuously turn out tested working

software

Lecture Notes 2 40

so t a e

3. Foster the relationship with the client

(over nitpicking the contract)

4. The Development Group

What makes a Method Agile?

} Incremental

● Small software releases with rapid cycles

} Cooperative

● Customers and developers working together
constantl close comm nication

Lecture Notes 2 41

constantly - close communication

} Straightforward

● Method is easy to learn, modify and well
documented

} Adaptive

● Able to make last moment changes

How is Agile Different

} “What is new about agile methods is

not the practices they use but their

recognition of people as the primary

drivers of project success, coupled

ith i t f

Lecture Notes 2 42

with an intense focus on

effectiveness and maneuverability.

This yields a new combination of

values and principles that define an

agile world view”

Highsmith anc Cockburn (2001, p 122)

Take a break!

} Stretch, Relax

} Get some water, Use the restroom

} Get to know your classmates…

} Etc…..

When we return…

} More on the Agile Process Model

} Extreme Programming

Lecture Notes 2 43

Before Break we discussed

} Review Questions

● What is included in an Integrated Process

Support Environment ( IPSE )?

◘ Analyst Workbench
◘ Programmer Workbench

Lecture Notes 2 44

◘ Management Workbench

● What is the difference between a method and

a technique?

◘ Method: technical prescription for how to perform a
collection of activities
◘ Technique: prescription of how to perform a
particular activity

More Review Questions

● What is a model in SE?

◘ An abstract representation of a specification

● Name two characteristics of a good model?

◘ Low Coupling & High Cohesion
◘ Rigor, Separation of concerns, Anticipation of
change, Generality, Incrementality , etc…

Lecture Notes 2 45

● Name a Software Process Activity and the

associated deliverables:

◘ Check the slides.. There are several examples

● Name a key difference between the Agile

process model and Traditional process

models

◘ Several – eg, Customer is in the development team

Four Central Values of Agile Methods

1. Focus on the human role of s/w dev

● Interactions Between Developers “Communality”
● Close Team Relationships
● Close Working Arrangements
● Team Spirit

Lecture Notes 2 46

2. Continuously turn out tested working

software

● Small releases
● Frequent Intervals (Hourly Æ Monthly)
● Keep Code Simple & Technically Advanced Æ
Reduces Documentation

Four Central Values of Agile Methods

3. Foster the relationship with the client

(over nitpicking the contract)

● Short releases allow clients to see progress

4. The Development Group has specific

qualities

Lecture Notes 2 47

qualities

● Includes Developers and Customer Reps
● All should be:

◘ Informed ◘ Competent ◘ Authorized to make changes

● Contracts need to be formed with tools that
support these changes

What makes a Method Agile?

} Incremental

● Small software releases with rapid cycles

} Cooperative

C t d d l ki t th

Lecture Notes 2 48

● Customers and developers working together
constantly - close communication

} Straightforward

● Method is easy to learn, modify and well
documented

} Adaptive

● Able to make last moment changes

6 Phases Of Development

} Exploration

} Planning

} Iterations to Release

} Productionizing

Lecture Notes 2 55

} Maintenance

} Death

Exploration Phase

} Customers

● Story Cards – 1 feature per card ◘ Customer wish list for first release

} Developers

● Get familiar with

Lecture Notes 2 56

◘ Tools ◘ Technology ◘ Practices … to be used ● Architecture possibilities explored – Prototype ● Tailor process to the project

} A few weeks to months

● How familiar is tech to programmers

Planning Phase

} Prioritize Stories

● First Small release agreement

} Effort Estimate for each story

S h d l A t

Lecture Notes 2 57

● Schedule Agreement

◘ Usually < 2 months

} Takes a few days

Iterations to Release Phase

} Several Iterations before 1st^ Release

} # of Iterations determined in planning phase

} Each iteration takes 1-4 wks to implement

Lecture Notes 2 58

} Select stories wisely

● these enforce system arch. for the entire system
● Customer chooses stories for each iteration

} Functional tests created by Customer

● Run at the end of each iteration

At the end of last iteration Æ Production

Productionizing Phase

} End testing before release

} New changes may be found

● Decide whether to include in current release

Lecture Notes 2 59

● Documented for later implementation

ÆMaintenance Phase

} Iterations shortened

Maintenance and Death Phases

} Maintenance

● May need more people

◘ Maintain current production ◘ Produce new Iterations ◘ Change team structure

● Development slows

Lecture Notes 2 60

} Death Phase

Either…
● All stories complete & quality is satisfactory
● Not delivering expected outcomes
● Too expensive to continue

XP Lifecycle Model

Lecture Notes 2 61