CPSC 4175 Intro to Software Engineering - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

CPSC 4175 Intro to Software Engineering

Description:

To provide a view of process-oriented software engineering ... Process postmortem Your metrics in Spreadsheet! Week 16. Expectations. Rules of Engagement ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 30
Provided by: nealr
Category:

less

Transcript and Presenter's Notes

Title: CPSC 4175 Intro to Software Engineering


1
CPSC 4175Intro to Software Engineering
  • Fall 2006
  • Neal L. Rogers, PhD

2
What is engineering?
How can we engineer software?
3
Course description
  • Catalog
  • CPSC4175 Intro to Software Engineering
  • Credits 3 (3 hours lecture)
  • Official Description Process models of the
    software life cycle as well as methods and tools
    for software development.
  • Prerequisite CPSC2108 (C or better), Senior
    Standing
  • Strategic Objectives
  • To provide a view of process-oriented software
    engineering
  • To provide exposure to common engineering
    processes
  • To provide an insight into personal software
    skills

4
Syllabus
  • Software engineering raison dêtre (1)
  • Process foundations (1)
  • Common process elements (3)
  • Conceptual design (4)
  • Size estimation (4)
  • Task decomposition (1)
  • Scheduling (4)
  • Measurements (2)
  • Reviews (2)
  • Technical templates (4)
  • Scaling up (4)
  • Misc processes (4)
  • Process descriptions (4)
  • Infrastructure (2)
  • Retrospective (1)

5
Course objectives
  • understand the purpose and reason for processes
  • know the processes identified as being necessary
    for successful software production
  • understand the what a life cycle is, its
    component parts, and how it affects the software
    production process
  • understand the planning process
  • understand how to define size, measure it, and
    estimate it
  • understand how to decompose work units
  • understand task dependencies, be able to
    construct and analyze a dependency chart
  • be able to estimate software cost understand the
    process of risk management
  • understand the purpose and function of status
    reviews
  • understand process/product measurement, be able
    to measure and analyze a sample project
  • understand own personal performance

6
Who?
  • Instructor Neal L. Rogers, PhD
  • Office TECH 425
  • Voice (706) 565-4095
  • E-mail Rogers_Neal_at_colstate.edu
  • WWW http//csc.colstate.edu/rogersOffice
    Hours MW 430 700, TR 300 700
  • Drop-ins OK, but subject to preemption
  • Course Site http//cougarnet.colstate.edu

7
What?
  • Course materials
  • Course notes
  • Class slides (.ppt format)
  • available via course site
  • slides will be posted by 1000 AM the day of
    class
  • Other
  • Excel-compatible spreadsheets
  • Programming languages (Java, C/C, C, COBOL,
    etc.)
  • Humphrey, Watts S. 2005. PSP A
    Self-Improvement Process for Software Engineers.
    Addison Wesley, ISBN 0-321-30549-3
  • Humphrey, Watts S. 1995, A Discipline for
    Software Engineering, Addison Wesley, ISBN
    0-201-54610-8

8
Expectations
  • Grading
  • Instructor Evaluation (On Time, Etc.) 10
  • Quizzes (pop and announced) 10
  • Out-of-class assignments (Programs) 80
  • Submitting work
  • MUST be your own work!
  • Programs must be working.
  • Submit assignments on time. 10 penalty per day
    late
  • Attendance
  • Be here!
  • You are responsible for obtaining missed lectures

9
Expectations
  • Assignment forecast

Subject Area Mastery Demonstrated by
Due Baseline process Rudimentary statistics
program Week 2 Estimation Size counting
program Week 4 Defect analysis Proxy counting
program Week 6 Estimation LOC Added Week
8 Scheduling LOC Deleted Week 10 Design Measurem
ent LOC Modified Week 14 Process postmortem Your
metrics in Spreadsheet! Week 16
10
Expectations
  • Rules of Engagement
  • The basic pedagogical precept ... is that all
    genuine learning arises from the activity of the
    learner's own mind. It may be assisted, guided,
    and stimulated by the activity of teachers. But
    no activity on the part of teachers can ever be a
    substitute and become the sole cause of a
    student's learning. When the activities
    performed by the teachers render students
    passive, the latter cease to be learners --
    memorizers, perhaps, but not learners.
    Mortimer Adler
  • Your Responsibilities
  • Be present (mentally and physically) and on
    time
  • Be receptive to new ideas
  • Interact
  • Get involved
  • Get excited
  • My Responsibilities
  • Be present (mentally and physically) and
    prepared
  • Guide
  • Facilitate
  • Assess
  • Excite

11
What is engineering?
12
Engineering
  • is the profession in which knowledge of the
    mathematical and natural sciences gained by
    study, experience, and practice, is applied with
    judgment to develop ways to use, economically,
    the materials and forces of nature for the
    benefit of mankind. - ABET (formerly,
    Accreditation Board for Engineering and
    Technology)
  • entails responsibilities
  • knowing things
  • developing judgment
  • applying knowledge via judgment realistically
  • acting responsibly

13
What is software engineering?
  • Attendant questions
  • Can software be engineered?
  • How can we engineer software?
  • Is software engineering a legitimate engineering
    field?
  • Do software engineers really live on Twinkies and
    Ding-Dongs?

14
Challenges
  • B. Reid on building software
  • the first engineering discipline in which the
    complexity of the objects created is limited
    solely by the skill of the creator, not by the
    strength of the raw material.
  • F. Brooks on inherent properties of software
    systems
  • complexity Many of the classic problems of
    developing software products derive from ...
    essential complexity and its nonlinear increases
    with size. From the complexity comes the
    difficulty of communications ... of understanding
    ...
  • conformity The software engineer must master
    arbitrary complexity, forced without rhyme or
    reason.
  • changeability Software is pure thought-stuff,
    infinitely malleable.
  • invisibility Software remains inherently
    unvisualizable.

Brooks, F. P., Jr. 1987. No Silver Bullet.
Computer 20, 4, 10-19.
15
What makes a project successful?
  • User Perspective
  • project team understood needs
  • vital changes accommodated
  • progress reported
  • product timely
  • product useful
  • Executive Perspective
  • not oversold or overcommitted
  • milestones achieved
  • costs controlled
  • customer enthusiastic
  • Project Team Perspective
  • involved in planning and execution
  • policies well communicated
  • adequate tools provided
  • humane treatment by management and user
  • Project Leadership Perspective
  • determined user needs
  • resources available
  • schedules realistic
  • change controlled
  • progress tracked
  • management supportive

16
Classic Mistakes
  • People-related Process-related Product-related Tec
    hnology-related
  • Undermined Overly optimistic Requirements
    Silver-bulletmotivation schedule gold-plating
    syndrome
  • Weak personnel Insufficient
    risk Feature Overestimation of
  • Uncontrolled management creep savings from
    toolsproblem people Contractor
    failure Developer Switching tools
  • Heroics Insufficient planning gold-plating
    midstream
  • Adding people Abandonment Push-me, Lack
    of automatedto late project of planning in
    crisis pull-me source control
  • Poor work Wasted time during negotiationenv
    ironment fuzzy front end
  • etc etc etc etc

How can we minimize these mistakes?
McConnell, S. 1996. Rapid Development.
Microsoft Press
17
Our goal this semester
  • ... is to examine the aspects of software
    production that will give the greatest
    probability of success
  • develop engineering heuristics
  • identify processes unique to software production
    (production maintenance or development)

18
Software engineering is ???
Using software
Understanding computers
19
Software engineering is ???
Writing programs
20
Software engineering is ???
design
CASE
coding
maintenance
architecture
structured analysis
KLOC
software quality assurance
control structure diagrams
testing
project management
dataflow diagrams
requirements
object-oriented technology
metrics
configuration management
structure charts
verification and validation
21
Software engineering is ???
the discipline of producing software Schach
the set of tasks that comprise development,
operation, and maintenance of software
IEEE
22
Software engineering is
  • ... the business of developing working solutions
    through software. Umphress

Our Vision
23
Software Engineering Perspective
  • Laws of physics
  • time lags, weight
  • Laws of software
  • sorting, halting, NP,
  • Challenge of algorithms
  • compression, knowledge representation,
  • Difficulty of distribution
  • Deutsch fallacies
  • Problems of design
  • rise in levels of abstraction, discovery of
    patterns
  • Importance of organization
  • team organization, multiple stakeholders
  • Impact of economics
  • PerformanceComplexityProcess ? Teams ? Tools
  • Influence of politics
  • mgmt-worker misalignment, software-as-pawn
  • Limits of imagination

traditional of CS
traditional of SwE
G. Booch. Keynote. Software Technology
Conference 2002.
24
Software Engineering Perspective
  • Software development is fundamentally hard
  • Software dis-economy cost doesnt decrease with
    volume, but increases
  • Our task to create illusion of simplicity, but
    in so doing, we trade simplicity at one level of
    abstraction for complexity at another

cost/schedule
performance
function
compatibility
capacity
scalability
reliability
interoperability
technology churn
security
etc
G. Booch. Keynote. Software Technology
Conference 2002.
25
But
  • no matter how you slice it
  • Mathematical principles involved
  • Engineering discipline employed
  • Managerial and technical facets orchestrated via
    defined processes to sustain a viable solution

Identify
Synthesize
Articulate
Interpret
Technical
TOOLS
People
Organize
Staff
Direct
Plan
Control
Process
Product
Property
Success
Lifecycle
Infra
26
Technical facets
  • ... activities that require special knowledge and
    skills in working with computers
  • Identify
  • determine what the problem space is
  • Synthesize
  • map the problem into a solution space
  • Articulate
  • communicate the solution space
  • Interpret
  • validate/verify the product of the solution
    process

Technical
Identify
Synthesize
Articulate
Interpret
27
People facets
  • ... activities that require special skills for
    directing the wetware
  • Plan
  • determine actions needed to produce product
  • Organize
  • determine who does what when
  • Staff
  • determine who
  • Direct
  • motivate and lead
  • Control
  • direct effort, measure outcome

People
Organize
Staff
Direct
Plan
Control
28
Process facets
  • ... the system of all enterprise tasks involved
    in production and evolution of a software product
    through the life cycle
  • Life cycle model
  • sequence of technical tasks required to produce a
    product (e.g., analysis, design, testing, etc.)
  • Product model
  • tasks needed to produce an artifact in a specific
    form
  • Property model
  • tasks needed to attain desired cost, schedule,
    security, reuse
  • Success model
  • tasks needed to assure and assess correctness
  • Infrastructure model
  • support mechanisms needed to engineer a solution

Process
Product
Property
Success
Lifecycle
Infra
29
Summary
Topics
Key Points
  • Course overview
  • Software engineering raison detre
  • Software engineering defined
  • Software engineering is the business of
    developing solutions through software
  • Producing software solutions is difficult
  • Difficult activities require structure
  • Engineering discipline enforces structure
Write a Comment
User Comments (0)
About PowerShow.com