52
James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

James Nowotarski

30 March 2004

IS 553Advanced Systems

Development Practices

Page 2: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

2

Understand what the course is about (i.e., course objectives)

Understand how the course will achieve its objectives Get acquainted Level set:

What is a software development methodology/process Why use a methodology/process Who are the key players and products in the marketplace What are the key vocabulary terms to understand

Today’s Objectives

Page 3: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

3

Topic Duration

Questionnaire & Intros 20 minutes

Core Concepts 45 minutes

*** Break 10 minutes

Core Concepts (cont.) 30 minutes

Course Overview 30 minutes

SD Process: Why or why not? 30 minutes

Marketplace Snapshot 30 minutes

Today’s Agenda

Page 4: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

4

Topic Duration

Questionnaire & Intros 20 minutes

Core Concepts 45 minutes

*** Break 10 minutes

Core Concepts (cont.) 30 minutes

Course Overview 30 minutes

SD Process: Why or why not? 30 minutes

Marketplace Snapshot 30 minutes

Today’s Agenda

Page 5: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

5

Software Engineering

• The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines (Fritz Bauer, 1969)

• Computer science discipline that covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting (webopedia.com)

Core Concepts

Page 6: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

6

Technology

ProcessPeople

The software engineering discipline consists of people, process, and technology components

Core Concepts

Page 7: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

7

Technology

ProcessPeople

The focus of IS 553 is the process component of software engineering

IS 553

Core Concepts

Page 8: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

8

Process

• Sequence of steps performed for a given purpose

• “A specific ordering of work activities across time and place with a beginning, an end, and clearly identified inputs and outputs” -- Tom Davenport

• An overloaded term, can apply at multiple levels (macro, micro)

Core Concepts

Page 9: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

9

method

• Within the context of software engineering, a formalized approach or series of steps for performing some significant portion of software development

Methodology

• A collection of methods based on a common philosophy that fit together in a framework called the systems development life cycle

-- Ken Orr

Core Concepts

Page 10: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

10

method/Methodology

• A systematic way of doing something

• Typically consists of these key content pieces:

1. Processes (what)2. Deliverables (what)3. Techniques (how)4. Roles (who)5. Estimating guidelines (how long)

In IS 553, we will use the terms method and Methodology interchangeably

Core Concepts

Page 11: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

11

Key Question: Deliverables

Steps Techniques

What does the system need to do?Functional requirementsQuality requirementsData modelProcess model

1. Gather requirements2. Create data model3. Create process model

InterviewingObservationEntity-relationship modelingNormalizationData flow modeling

Example: Analysis phase

Page 12: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

12

Key Question: Deliverables

Steps Techniques

Does the system work?ProgramsDatabasesConverted dataEnd user trainingOperations processes

1. Build the programs 2. Build the databases3. Test the system4. Develop and conduct training5. Convert the data6. Migrate to production status

Code walkthroughsWhite box testingStress testingParallel testing

Example: Implementation

Page 13: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

13

Broad categories of methods

• Structured methods• Information engineering• Object-oriented methods• Lightweight/Agile methods

Core Concepts

Page 14: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

14

Methods engineering

• Developing and/or selecting and/or tailoring methodology for a particular business situation

• “Configuring one-of-a-kind methodology from common building blocks” -- Gezinus Hidding, Loyola University

Core Concepts

Page 15: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

15

Systems development life cycle (SDLC) A description of the phases of an

information system

Planning Analysis Design Implementation

Example

Core Concepts

Page 16: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

16

Life cycle model

• The iteration and control strategy adopted by a systems development organization

• Examples- Waterfall- Iterative/Evolutionary/Spiral- Incremental

Core Concepts

Page 17: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

17

The waterfall model is the granddaddy of life cycle models

Core Concepts

Page 18: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

18

Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases

A D IVersion 1

A D IVersion 2

A D IVersion 3

Core Concepts

Page 19: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

19

Incremental life cycle models advocate delivering the end product piecemeal

A D IVersion 1

A D IVersion 2

A D IVersion 3

Core Concepts

Page 20: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

20

Routes

• A “route” is a preconfigured specialization of a methodology, depending on a variety of factors:

- custom vs. packaged solution- degree of project team distribution- project team size- technology platform- application type

• Examples- Custom Client/Server: Large Project- Custom Client/Server: Small Project- Rapid Application Development (RAD)- Packaged Systems Development- Data Warehouse- SAP implementation

Core Concepts

Page 21: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

21

Rapid Application Development (RAD)

• A shortened route with the following characteristics:- high degree of development tool usage and code

generation- Joint Application Development (JAD) workshops

instead of interviewing- assumes reuse of existing technical architecture and

standards- time-boxing (90-day implementation schedule)- highly iterative

Core Concepts

Page 22: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

22

RAD vs. Traditional

Traditional

Req’ts Analysis UserDesign

ConstructTechDesign

RAD

Req’ts UserDesign

Construct

Core Concepts

Page 23: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

23

Techniques

• Provide detailed how-to guidelines• Fall into 2 main categories:

- Process techniques- Modeling/Diagramming techniques

Core Concepts

Page 24: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

24

1. Review existing data models2. Define entities

a. Independentb. Dependent, including Intersection entities

3. Define attributes and keys (primary, foreign)4. Define relationships5. Finalize ERD6. Normalize7. Integrate data models as required8. Verify completeness of the data model

9. Validate the data model a. With usersb. With the enterprise’s data administrator

Process for Building Data Models

Process technique availableDiagramming technique available

Core Concepts

Page 25: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

25

Modeling/DiagrammingTechnique

Core Concepts

Page 26: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

26

1NF = No repeating groups

2NF = 1NF + no partial dependencies (non-key attribute dependent on portion of primary key)

3NF = 2NF + no transitive dependencies (non-key attribute dependent on another non-key attribute)

Normalization (Process Technique)

Core Concepts

Page 27: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

27

Draw a high-level data model to show how these components of a methodology relate to one another:

1. Processes (what)2. Deliverables (what)3. Techniques (how)4. Roles (who)5. Estimating guidelines (how long)

Core Concepts

Page 28: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

28

A framework for: Judging the maturity of an organization’s software processes Identifying key practices required to increase the maturity of these

practices Levels of maturity

Capability Maturity Model (CMM)

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimizing Level

Core Concepts

Page 29: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

29

Technology

ProcessPeople

CMM applies to all aspects of software engineering, not just process

Core Concepts

Page 30: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

30

Topic Duration

Questionnaire & Intros 20 minutes

Core Concepts 45 minutes

*** Break 10 minutes

Core Concepts (cont.) 30 minutes

Course Overview 30 minutes

SD Process: Why or why not? 30 minutes

Marketplace Snapshot 30 minutes

Today’s Agenda

Page 31: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

31

Course Objectives

1. Define the components of a software development process (content, tools, roles, meta-processes).

2. Analyze key players, products, and philosophies in the software development process "space" (past, present, and future). The course will analyze two current processes -- the Rational Unified Process (RUP), and Agile Methods (exemplified by Extreme Programming (XP)) -- in depth.

3. Identify key success factors to optimize continuous improvement of a software development process. The course will examine the use of software metrics and the Capability Maturity Model (CMM) in this context.

4. Examine two key systems development “enablers”: tools and training

5. Explore implications of distributed systems development teams

6. Explore implications of other IT trends

IS 553 will enable you to develop, use, and improve systems development practices

Specific Objectives

Page 32: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

32

Your grade

Homework Assignments 25%

Quizzes 25%

Term Paper 25%

Class Participation 25%

--------

100%

Page 33: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

33

Course Map

Underpinnings. Introduction. Essentials

Content. Rational Unified Process. Agile

Implementation. Metrics. CMM. Distributed development. Tools & training

Briefings (Term Papers)

1 2 3 4 6 7 8 9 10 115

Assignments

Quizzes

Week

(RUP) (Agile) (CMM) (Distr. Dev.)

Page 34: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

34

Course Assignments

• Assignment 1 – Critique of article on the spiral approach to systems development

• Assignment 2 - Deliverable view of RUP

• Assignment 3 – Proposal and rough outline for term paper

• Assignment 4 – Risk mitigation plan for offshore development

• Assignment 5 - Summary of marketplace development

Page 35: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

35

My role

Facilitate learning Plan, prepare, and conduct lectures and learning activities

Assess student progress and provide feedback

Relate concepts to real-world problems Provide classroom environment conducive to learning

Clearly state expectations Gather and implement suggestions for improving the class Keep it fun

Page 36: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

36

email: [email protected] phone: 312-261-3838 office hours: Tuesdays, 4:00-5:30,

CTI room 703

My coordinates

Page 37: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

37

Your role

Be proactive

Share your experience

Come to class prepared

Collaborate with other students as appropriate

Ask if you don’t understand or if I’m not clear

Provide constructive feedback (“This class would be better if . . .”)

Page 38: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

38

Class Participation

Subjective evaluation of participation:

A Consistently asks good questions, makes valuable observations, and answers questions effectively

B Frequent participant, but not all questions, answers, and observations are effective, or not consistently active

C Participates infrequently, or questions/answers do not reflect adequate preparation, or late to class

D Very rare participation, or questions/answers reflect little or no preparation, or very late to class

F Displays no sign of life, or absent for entire class

Page 39: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

39

Topic Duration

Questionnaire & Intros 20 minutes

Core Concepts 45 minutes

*** Break 10 minutes

Core Concepts (cont.) 30 minutes

Course Overview 30 minutes

SD Process: Why or why not? 30 minutes

Marketplace Snapshot 30 minutes

Today’s agendaToday’s Agenda

Page 40: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

40

Justifying a Methodology

• Vendors and consultants have not done much to substantiate quantitatively the value of their methodologies

• What would you say if asked to provide justification?

Page 41: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

41

Common Drivers Behind Methodology Adoption

• Project failure leads to realization that “we need a more formal process”

• Codify best practices, so as to increase predictability and reliability of software development process

• especially as IT organization grows

• Continued pressure on time to market and quality (web services)

• Certification (e.g., Capability Maturity Model)

• Desire to stay current and/or sustain/develop competitive edge

• Need to support distributed development teams (multi-site and/or multi-organization)

Page 42: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

42

Methodology - Who needs it?

“Any first attempt at converting folklore into knowledge, and a guessing game into a discipline, is liable to be misread as a downgrading of individual ability and its replacement by a rule book. Any such attempt would be nonsense, of course. No book will ever make a wise man out of a donkey or a genius out of an incompetent. The foundation in a discipline, however, gives to today’s competent physician a capacity to perform well beyond that of the ablest doctor of a century ago, and enables the outstanding physician of today to do what the medical genius of yesterday could hardly have dreamt of. No discipline can lengthen a man’s arm. But it can lengthen his reach by hoisting him on the shoulders of his predecessors. Knowledge organized in a discipline does a good deal for the merely competent; it endows him with some effectiveness. It does infinitely more for the truly able; it endows him with excellence.”

From Managing for Results, by Peter F. Drucker

Page 43: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

43

Topic Duration

Questionnaire & Intros 20 minutes

Core Concepts 45 minutes

*** Break 10 minutes

Core Concepts (cont.) 30 minutes

Course Overview 30 minutes

SD Process: Why or why not? 30 minutes

Marketplace Snapshot 30 minutes

Today’s agendaToday’s Agenda

Page 44: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

44

Content processes, deliverables, etc. pre-defined routes

Delivery vehicle (e.g., browser) Tools for authoring and publishing content Tools for applying the methodology to a specific project

project planning and estimating tools process management tools project management tools

Deliverable templates tightly coupled with a development and/or execution platform Training and support Maintenance

What does a methodology product consist of?

Page 45: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

45

IBM’s Rational Software is collecting a fair amount of mindshare 3 key categories to consider:

methodologies developed and delivered by consultants methodologies from software tool vendors methodologies from industry consortia or other groups

Tremendous variability among the products Content Delivery vehicles Integration with development tools

Methodology Marketplace

No single vendor dominates this market

Page 46: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

46

Methodologies Developed and Delivered by Consultants

Consulting firms methodologies have greatest depth and breadth of content, but not all sell their methodology as a standalone product

Consultant Methodology

Sold as Standalone Product?

IBM Consulting (formerly PWC) Summit Ascendant Yes

Headstrong gantthead.com Yes

Fujitsu Macroscope Yes

Accenture Accenture Delivery Methods No

AMS No

EDS No

Keane No

Page 47: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

47

Methodologies from Software Development Tool Vendors

Customers are increasingly demanding (and receiving) process guidance from their tool vendors

Vendor Methodology Notes

Rational Software Rational Unified Process (RUP)

Many vendor and consulting partners

Computer Associates CA ProcessContinuum Focus on large accounts

Allen Systems Group (ASG) Visual Process

Client/Server Connection CS 10,000 Easy to use

Aonix Select ProcessDirector Strong coverage of Component-Based Development (CBD)

Page 48: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

48

Methodologies from Industry Consortia or Gurus

There is a growing interest among large corporate shops in so-called “agile” methods from industry gurus

Guru/Consortium Methodology Notes

Kent Beck

Martin Fowler

Extreme Programming (XP) Many vendor and consulting partners

Alistair Cockburn Crystal Focus on large accounts

Jim Highsmith Adaptive software development

Peter Coad Feature driven development

Dynamic Systems Development Method (DSDM) Consortium

DSDM More RAD than agile Used in Europe more

than U.S.

Page 49: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

49

Key Trends: Content

• Component-based development (CBD)• Software reuse• Agile processes• Development of mobile applications• Development with/for web services• Distributed development teams, especially

offshore• Attention to security

Page 50: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

50

How Does a Methodology Stay Fresh?

• Experience• New technologies that cause changes in

development processes• Consortia/Gurus• Academics

“ . . . those looking for true best practices and leading edge methodologies should turn to the consulting industry rather than tool or software vendors” -- Giga Information Group

Page 51: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

51

TimeIncubationAdaptationTake Up Maturity

Mapping Computing Eras to Technology Maturity Curve

Degree of Take-up

High

Life Cycle Stage

• Mainframe• Decentralized

• Distributed

• Internet

• Mobile• ???

Key SD ProcessChange

GUI DesignBus Process Redesign

Content DevComponentsIterative Dev

???

Page 52: James Nowotarski 30 March 2004 IS 553 Advanced Systems Development Practices

52

Read Royce article Assignment 1- Critique the Royce article

For April 6