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 (


DSDM—distinguishing features


Description: lifecycle




Originally proposed by Schwaber and Beedle


Distinguishing features



Description: scrum





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  -


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





An abbreviated task set


Planning Practices




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


Design Modeling Practices


  • 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