Is 553 advanced systems development practices
This presentation is the property of its rightful owner.
Sponsored Links
1 / 52

IS 553 Advanced Systems Development Practices PowerPoint PPT Presentation


  • 63 Views
  • Uploaded on
  • Presentation posted in: General

IS 553 Advanced Systems Development Practices. James Nowotarski 30 March 2004. Today’s Objectives. Understand what the course is about (i.e., course objectives) Understand how the course will achieve its objectives Get acquainted Level set:

Download Presentation

IS 553 Advanced Systems Development Practices

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Is 553 advanced systems development practices

IS 553Advanced Systems Development Practices

James Nowotarski

30 March 2004


Today s objectives

Today’s Objectives

  • 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 agenda

Today’s Agenda

Topic Duration

  • Questionnaire & Intros20 minutes

  • Core Concepts45 minutes

    *** Break10 minutes

  • Core Concepts (cont.)30 minutes

  • Course Overview30 minutes

  • SD Process: Why or why not?30 minutes

  • Marketplace Snapshot30 minutes


Today s agenda1

Today’s Agenda

Topic Duration

  • Questionnaire & Intros20 minutes

  • Core Concepts45 minutes

    *** Break10 minutes

  • Core Concepts (cont.)30 minutes

  • Course Overview30 minutes

  • SD Process: Why or why not?30 minutes

  • Marketplace Snapshot30 minutes


Core concepts

Core Concepts

  • 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 concepts1

People

Process

Technology

Core Concepts

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


Core concepts2

IS 553

Core Concepts

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

People

Process

Technology


Core concepts3

Core Concepts

  • 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 concepts4

Core Concepts

  • 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 concepts5

Core Concepts

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

  • method/Methodology

  • A systematic way of doing something

  • Typically consists of these key content pieces:

    • Processes (what)

    • Deliverables (what)

    • Techniques (how)

    • Roles (who)

    • Estimating guidelines (how long)


Is 553 advanced systems development practices

Example: Analysis phase

Key Question:

Deliverables

Functional requirements

Quality requirements

Data model

Process model

What does the system need to do?

Steps

Techniques

1.Gather requirements

2. Create data model

3. Create process model

Interviewing

Observation

Entity-relationship modeling

Normalization

Data flow modeling


Is 553 advanced systems development practices

Example: Implementation

Key Question:

Deliverables

Programs

Databases

Converted data

End user training

Operations processes

Does the system work?

Steps

Techniques

1.Build the programs

2. Build the databases

3. Test the system

4. Develop and conduct training

5. Convert the data

6. Migrate to production status

Code walkthroughs

White box testing

Stress testing

Parallel testing


Core concepts6

Core Concepts

  • Broad categories of methods

  • Structured methods

  • Information engineering

  • Object-oriented methods

  • Lightweight/Agile methods


Core concepts7

Core Concepts

  • 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


Is 553 advanced systems development practices

Planning

Analysis

Design

Implementation

Core Concepts

Systems development life cycle (SDLC)

  • A description of the phases of an information system

Example


Core concepts8

Core Concepts

  • Life cycle model

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

  • Examples

    • Waterfall

    • Iterative/Evolutionary/Spiral

    • Incremental


Is 553 advanced systems development practices

Core Concepts

The waterfall model is the granddaddy of life cycle models


Is 553 advanced systems development practices

Version 1

A

D

I

Version 2

A

D

I

Version 3

A

D

I

Core Concepts

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


Is 553 advanced systems development practices

Version 1

A

D

I

Version 2

A

D

I

Version 3

A

D

I

Core Concepts

Incremental life cycle models advocate delivering the end product piecemeal


Core concepts9

Core Concepts

  • 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 concepts10

Core Concepts

  • 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 concepts11

Traditional

User

Design

Tech

Design

Req’ts

Analysis

Construct

RAD

User

Design

Req’ts

Construct

Core Concepts

RAD vs. Traditional


Core concepts12

Core Concepts

  • Techniques

  • Provide detailed how-to guidelines

  • Fall into 2 main categories:

    • Process techniques

    • Modeling/Diagramming techniques


Is 553 advanced systems development practices

Core Concepts

Process for Building Data Models

  • Review existing data models

  • Define entities

    • Independent

    • Dependent, including Intersection entities

  • Define attributes and keys (primary, foreign)

  • Define relationships

  • Finalize ERD

  • Normalize

  • Integrate data models as required

  • Verify completeness of the data model

  • Validate the data model

    • With users

    • With the enterprise’s data administrator

  • Diagramming technique available

    Process technique available


    Is 553 advanced systems development practices

    Core Concepts

    Modeling/Diagramming

    Technique


    Is 553 advanced systems development practices

    Core Concepts

    Normalization (Process Technique)

    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)


    Core concepts13

    Core Concepts

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

      • Processes (what)

      • Deliverables (what)

      • Techniques (how)

      • Roles (who)

      • Estimating guidelines (how long)


    Is 553 advanced systems development practices

    Optimizing

    Level

    Managed Level

    Defined Level

    Repeatable Level

    Initial Level

    Core Concepts

    Capability Maturity Model (CMM)

    • 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


    Core concepts14

    Core Concepts

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

    People

    Process

    Technology


    Today s agenda2

    Today’s Agenda

    Topic Duration

    • Questionnaire & Intros20 minutes

    • Core Concepts45 minutes

      *** Break10 minutes

    • Core Concepts (cont.)30 minutes

    • Course Overview30 minutes

    • SD Process: Why or why not?30 minutes

    • Marketplace Snapshot30 minutes


    Is 553 advanced systems development practices

    Course Objectives

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

    Specific Objectives

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

    • 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.

    • 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.

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

    • Explore implications of distributed systems development teams

    • Explore implications of other IT trends


    Is 553 advanced systems development practices

    Your grade

    Homework Assignments25%

    Quizzes25%

    Term Paper25%

    Class Participation25%

    --------

    100%


    Is 553 advanced systems development practices

    Course Map

    Underpinnings

    . Introduction

    . Essentials

    Content

    . Rational Unified Process

    . Agile

    Implementation

    . Metrics

    . CMM

    . Distributed development

    . Tools & training

    Briefings (Term Papers)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    Week

    Assignments

    Quizzes

    (Distr. Dev.)

    (RUP)

    (Agile)

    (CMM)


    Is 553 advanced systems development practices

    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


    My role

    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


    My coordinates

    My coordinates

    • email: [email protected]

    • phone: 312-261-3838

    • office hours: Tuesdays, 4:00-5:30, CTI room 703


    Your role

    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 . . .”)


    Class participation

    Class Participation

    Subjective evaluation of participation:

    AConsistently asks good questions, makes valuable observations, and answers questions effectively

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

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

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

    FDisplays no sign of life, or absent for entire class


    Today s agenda3

    Today’s Agenda

    Today’s agenda

    Topic Duration

    • Questionnaire & Intros20 minutes

    • Core Concepts45 minutes

      *** Break10 minutes

    • Core Concepts (cont.)30 minutes

    • Course Overview30 minutes

    • SD Process: Why or why not?30 minutes

    • Marketplace Snapshot30 minutes


    Is 553 advanced systems development practices

    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?


    Is 553 advanced systems development practices

    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)


    Methodology who needs it

    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


    Today s agenda4

    Today’s Agenda

    Today’s agenda

    Topic Duration

    • Questionnaire & Intros20 minutes

    • Core Concepts45 minutes

      *** Break10 minutes

    • Core Concepts (cont.)30 minutes

    • Course Overview30 minutes

    • SD Process: Why or why not?30 minutes

    • Marketplace Snapshot30 minutes


    Is 553 advanced systems development practices

    What does a methodology product consist of?

    • 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


    Is 553 advanced systems development practices

    Methodology Marketplace

    No single vendor dominates this market

    • 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


    Is 553 advanced systems development practices

    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


    Is 553 advanced systems development practices

    Methodologies from Software Development Tool Vendors

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


    Is 553 advanced systems development practices

    Methodologies from Industry Consortia or Gurus

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


    Is 553 advanced systems development practices

    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


    Is 553 advanced systems development practices

    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


    Is 553 advanced systems development practices

    Mapping Computing Eras to Technology Maturity Curve

    • Mainframe

    • Decentralized

    High

    • Distributed

    Degree of Take-up

    • Internet

    • Mobile

    • ???

    Incubation

    Maturity

    Adaptation

    Take Up

    Time

    Life Cycle Stage

    Key SD

    Process

    Change

    Content Dev

    Components

    Iterative Dev

    GUI Design

    Bus Process Redesign

    ???


    Is 553 advanced systems development practices

    For April 6

    • Read Royce article

    • Assignment 1- Critique the Royce article


  • Login