SE 616 – Introduction to Software Engineering

Lecture 2

 

Unified Process Model (Chapter 3, Pressman, 6th ed)

Unified Process—a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML)

Description: up2

 

 

UP Phases

 

Description: up

 

UP Work Products

Description: upwp

 

 

Chapter 4 -Agile Development (Pressman, 6th ed)

The Manifesto for Agile Software Development

“We are uncovering better ways of developing software by doing it and helping others do it.  Through this work we have come to value:

That is, while there is value in the items on the right, we value the items on the left more.” - Kent Beck et al

 

What is “Agility”?

Yielding …

 

An Agile Process

 

Extreme Programming (XP)

The most widely used agile process, originally proposed by Kent Beck

 

XP Planning

 

XP Design

XP Coding

XP Testing

 

Description: xp1

 

 

Adaptive Software Development

 

Description: xp2

 

 

Dynamic Systems Development Method

Promoted by the DSDM Consortium (http://www.dsdm.org/)

 

DSDM—distinguishing features

 

Description: lifecycle

 

 

Scrum

Originally proposed by Schwaber and Beedle

 

Distinguishing features

 

 

Description: scrum

 

 

 

Crystal

Proposed by Cockburn and Highsmith

 

Crystal—distinguishing features

 

Feature Driven Development

Originally proposed by Peter Coad et al (PDF)

 

FDD—distinguishing features

total the value of the sale
calculate the interest for the bank account
total the hours worked for the pilot

 

Description: fdd

 

 

Agile Modeling

Originally proposed by Scott Ambler  - http://www.agilemodeling.com/

 

Suggests a set of agile modeling principles

 

 

Chapter 5 - Practice: A Generic View

What is “Practice”?

The Essence of Practice

 

Core Software Engineering Principles

 

Software Engineering Practices

The generic process framework

 

Communication Practices

Principles

 

Initiation

 

An abbreviated task set

 

Planning Practices

Principles

 

Initiation

Questions to ask

 

Planning Practices

Abbreviated task set

 

Modeling Practices

We create models to gain a better understanding of the actual entity to be built

 

Analysis Modeling Practices

Analysis modeling principles

n

Design Modeling Practices

Principles

  • Design must be traceable to the analysis model
  • Always consider architecture
  • Focus on the design of data
  • Interfaces (both user and internal) must be designed
  • Components should exhibit functional independence
  • Components should be loosely coupled
  • Design representation should be easily understood
  • The design model should be developed iteratively

 

Elements of the design model

  • Data design
  • Architectural design
  • Component design
  • Interface design

 

Construction Practices

Preparation principles:

Before you write one line of code, be sure you:

 

Coding principles:

As you begin writing code, be sure you:

 

Validation Principles: 

After you’ve completed your first coding pass, be sure you:

 

Testing Principles

·         All tests should be traceable to requirements

 

Deployment Practices

Principles