james nowotarski 30 march 2004 is 553 advanced systems development practices
Post on 22-Dec-2015
215 Views
Preview:
TRANSCRIPT
James Nowotarski
30 March 2004
IS 553Advanced 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
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
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
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
6
Technology
ProcessPeople
The software engineering discipline consists of people, process, and technology components
Core Concepts
7
Technology
ProcessPeople
The focus of IS 553 is the process component of software engineering
IS 553
Core Concepts
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
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
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
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
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
13
Broad categories of methods
• Structured methods• Information engineering• Object-oriented methods• Lightweight/Agile methods
Core Concepts
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
15
Systems development life cycle (SDLC) A description of the phases of an
information system
Planning Analysis Design Implementation
Example
Core Concepts
16
Life cycle model
• The iteration and control strategy adopted by a systems development organization
• Examples- Waterfall- Iterative/Evolutionary/Spiral- Incremental
Core Concepts
17
The waterfall model is the granddaddy of life cycle models
Core Concepts
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
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
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
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
22
RAD vs. Traditional
Traditional
Req’ts Analysis UserDesign
ConstructTechDesign
RAD
Req’ts UserDesign
Construct
Core Concepts
23
Techniques
• Provide detailed how-to guidelines• Fall into 2 main categories:
- Process techniques- Modeling/Diagramming techniques
Core Concepts
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
25
Modeling/DiagrammingTechnique
Core Concepts
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
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
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
29
Technology
ProcessPeople
CMM applies to all aspects of software engineering, not just process
Core Concepts
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
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
32
Your grade
Homework Assignments 25%
Quizzes 25%
Term Paper 25%
Class Participation 25%
--------
100%
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.)
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
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
36
email: jnowotarski@cti.depaul.edu phone: 312-261-3838 office hours: Tuesdays, 4:00-5:30,
CTI room 703
My coordinates
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 . . .”)
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
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
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?
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)
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
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
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?
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
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
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)
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.
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
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
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
???
52
Read Royce article Assignment 1- Critique the Royce article
For April 6
top related