Software Engineering Program Information - PowerPoint PPT Presentation

1 / 105
About This Presentation

Software Engineering Program Information


Jim Mooney. Lane Dept. of CSEE. Rm 941 ESB. PO Box 6109. Morgantown WV 26506-6109 ... Check this site for up-to-date program information. ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 106
Provided by: elearnC


Transcript and Presenter's Notes

Title: Software Engineering Program Information

Software Engineering Program Information
For New Students Summer 2007
Save these notes for future reference!
SENG Program Info
Program Coordinator Jim Mooney Lane Dept. of
CSEE Rm 941 ESB PO Box 6109 Morgantown WV
26506-6109 (304) 293-0405 X2562
SENG Program Info
SENG Program website http//www.lcsee.cemr.wvu.ed
Check this site for up-to-date program
information. This should be your primary
reference for the program! If you find anything
incorrect or missing please let me know!
SENG Program info
Whats on the website?
1. General information about the program
  • Admission Requirements
  • Application Procedures
  • Program Requirements
  • Graduation Procedures

SENG Program info
Whats on the website?
2. Course information
  • Course Info and syllabi (general course info for
    current and upcoming semesters)
  • Current Classes (link to current class slides and
    web resources, password protected)

SENG Program info
Whats on the website?
3. Online forms
  • Plan of Study (download and edit)
  • Transfer from Non-degree status (complete online)
  • Certificate Request (complete online)

SENG Program info
Registration notes
  • Register online using the STAR system
  • A term PIN number is required for each student
    every term except your first.
  • E-mail me courses you are planning to take
  • I will e-mail you your PIN number

SENG Program info
Registration notes
  • A new PIN is needed every term!
  • EXCEPTION PINs are the same for each summer
    and the following fall.
  • E-mail me in case of any problems.

SENG Program info
Registration notes
  • Allow enough time -- request your PIN early!
  • You cannot register online after classes start!

SENG Program info
Registration notes
Out of state students may pay in-state fees only
if you register exclusively for web-based
courses! There is an extended learning fee
required for all students taking extended
learning courses. There are no tuition waivers
available for SENG students.
SENG Program info
Registration notes
For questions on costs, tuition, fees and
payments, etc. contact Extended Learning
(1-800-2LEARN2). I do not have answers to other
financial questions.
SENG Program info
Are you presently a non-degree student?
  • If you wish to transfer to the MSSE program, you
    should apply during the semester in which you
    will be completing 12 credits.
  • Do not delay -- only 12 non-degree credits can be

SENG Program info
Are you presently a non-degree student?
  • Your transfer will be processed by the end of the
    term. Check your status on STAR -- if your major
    is listed as Software Engineering, your transfer
    is complete.
  • This may be the only confirmation you receive!

SENG Program info
Applying from non-degree status
  • To apply, please do all of the following
  • If you have not already done so, submit a resume
    that documents at least 3 years experience in
    software development to
  • Jim Mooney -- MSSE
  • Lane Dept. of CSEE
  • PO Box 6109
  • Morgantown WV 26506-6109

SENG Program info
Applying from non-degree status (cont.)
  • If you have not already done so, submit three
    work-related letters of reference to the same
  • Complete the online transfer form

SENG Program info
Are you interested in the SENG Certificate?
  • The certificate is optional for MSSE students!
  • Complete 5 required classes
  • Complete the experience paper (see website link
    for details)
  • Apply for the certificate in the semester you
    complete these requirements, or later

SENG Program info
Are you interested in the SENG Certificate?
  • You may obtain the certificate at the end of the
    semester in which you qualify
  • Certificate recipients need not complete the MSSE
  • The certificate designation will appear on your
    transcript when/if you graduate

SENG Program info
Tools and Resources Adobe Connect (formerly
Macromedia Breeze)
The Adobe Connect distance learning system is
used for live interactive class participation or
later class playback. Classes are accessed
through the CURRENT CLASSES link on the MSSE main
web page.
SENG Program info
Good Luck! Save these notes! Use the website!
Most common questions will be answered there!
SENG 540Software Evolution
  • The Evolution of Software Systems

SENG 540
  • Syllabus
  • Assignments and Testing
  • Objectives

  • SENG 540-- Software Evolution
  • Tuesday 6 - 820 PM
  • Policies and Procedures
  • Summer 2007
  • Instructor Kenneth Costello
  • Office S7 IVV Facility
  • Phone 304 367 8343
  • E-mail (or )
  • Office Hours by appointment
  • Text Notes
  • Grading
  • The requirements for the semester will be
    midterm and final examinations along with some
    assignments throughout the semester. The grade
    breakdown is as follows
  • Midterm -- 20 Final -- 35
    Assigned work -- 45
  • There will be NO makeup exams without prior
  • Academic Dishonesty

Assignments and Testing
  • Generally assignments and tests will be due by
    the end of the Tuesday due date
  • The late penalty is 20 per week
  • The late penalty becomes 20 at the end of class
    on Tuesday
  • Extensions can be granted but you need to tell me
    as soon as possible

Resources and Assignments
  • Class website
  • http//
  • Assignments
  • Goal is 3 projects
  • Focus on understanding software
  • Documenting software
  • Understanding software evolution concepts
  • Studying real-time systems
  • Essays
  • Developing communication skills

  • Twelve class meetings
  • Assignments
  • Assignment 1
  • 12 June 2007
  • Assignment 2
  • 10 July 2007
  • Assignment 3
  • 31 July 2007
  • Midterm
  • 26 June 2007
  • Final
  • 7 August 2007

Course Objectives
  • Provide you with an understanding of system and
    software development processes with a focus on
    seeing how those processes are used to control
    the development process
  • Examine the different types of software evolution
    and how program comprehension affects the ability
    to effectively evolve a software system
  • Examine how change affects a software system over
    long periods of time
  • Understand the difference between maintenance and
    reengineering and portability
  • Examine the role of configuration management
    within the evolution of the system
  • Study methods, tools and techniques for
    controlling software and system evolution
  • The capture and retention of knowledge about a
    system and its software
  • Analyzing and understanding software

Some Specific Topics
  • Engineering versus Programming
  • The laws of Software Evolution
  • Attributes of software and software intensive
  • Understandability
  • Software evolution, migration and reengineering

Lecture Outline
  • Software challenge
  • Software Process
  • Development Maturity

Challenges in Software
  • How do you build software that does what you
  • Build the right software
  • Build the software right
  • The demand for software continues to grow
  • Consumer electronics
  • Complex systems
  • Distributed systems
  • Real time systems
  • Collision of systems and software engineering
  • When developing a system the driving cost is more
    often than not software
  • Need to maintain and manage the volume of
    software currently out there
  • Optimize your system for the software

Software Characteristics
  • Software has inherent flexibility
  • Software is not a physical element
  • Not bound by physical laws (in most cases)
  • Can not wear out though it can degrade
  • Bathtub curve

Software Characteristics (2)
  • Software is developed logically or engineered
  • Not a manufacturing process
  • Cost distribution is different than a physical
  • Cost is in engineering not manufacturing
  • Management approach (maintenance approach) is
    different than a physical item
  • Most software is custom built
  • Generally you can not pick up a catalog of
    software components and order some to assemble at
  • There are not design specs for software

Software Characteristics
  • Software can not be visually examined
  • Compare with structural examination of a bridge
  • Only by executing software can you see how it
    will behave
  • Software causes change
  • Inserting software into a process will change
    that process
  • Maintenance costs can be 60-90 of the total cost
    of the system

Software Engineering
  • Developing complex systems with critical software
    components, software intensive systems
  • Generally takes more than one person and may
    require several releases
  • Software engineering as a discipline is concerned
    with the study of software processes, principles
    of development and evolution and specific
    techniques and methods
  • Goals
  • Reliability
  • Maintainability
  • Understandability
  • Efficiency

Engineering Requires Measurability
  • Allows the software to meets its specification
  • Allows the software to respond to failures
  • Crashing is not a response

Maintainability (Modifiability)
  • Allows software to adapt to different usage
  • Environmental changes
  • Changing requirements
  • Design to isolate the effects of change
  • Coupling
  • Cohesion

  • Allows follow-on developers to understand the
    system implementation details
  • Write once, read many
  • Supports different levels of understanding

  • Allows the software to run quickly in the
    targeted environment
  • Designed to balance space versus time
  • Memory usage versus response time
  • Minimize power consumption
  • Consumer electronics
  • Space missions

Programming vs Engineering
Software Processes
Software Process
  • Set of activities and associated results which
    produce a software product
  • Framework for the tasks that are required to
    build high quality software
  • Organizations infrastructure and support

Software Process (2)
  • Webster
  • Process - a system of operations in producing
    something... a series of actions, changes, or
    functions that achieve an end or result
  • IEEE
  • Software Process - a set of activities, methods,
    practices, and transformations that people use to
    develop and maintain software and the associated

Defined Software Process
  • Well-characterized, documented and understood
  • Defined in terms of standards, procedures, tools
    and methods
  • Needed to control, coordinate, and improve the
    activities of numbers of people in complex tasks

Characteristics of Process
  • Understandable
  • Visible
  • Supportable
  • Acceptability

Characteristics of Process (2)
  • Reliability
  • Robust
  • Maintainability
  • Rapidity

Generic Process
  • Definition
  • Define what the problem is problem analysis
  • WHAT does the user want?
  • Development
  • Develop solutions for the problem
  • HOW will you create something to solve the
  • Maintenance or Evolution
  • Keep the solution viable
  • Reapplies definition and development within the
    context of existing software

Process Model
  • Clearly defines each phase
  • Tasks and activities to be performed
  • Tasks -- user requirements operation
  • Activities
  • project management
  • validation and verification
  • configuration management
  • maintenance

Process Activities
  • Project tracking and control
  • Formal technical reviews
  • Quality assurance
  • Software configuration management
  • Documentation preparation and production
  • Reuse management
  • Measurement
  • Risk management

Process Structures
  • Organizational Level
  • Fundamental elements to be incorporated into each
  • Defined relationship between elements
  • Process tasks
  • Approved life-cycles
  • Tailoring and elaborating guidelines
  • Database and library

Process Structures (2)
  • Project Level
  • Set of standards procedures tools and methods to
    be used on this project
  • Life cycle chosen
  • Stages
  • Tasks
  • Activities
  • Work products
  • Software products

Software Crisis
  • Fundamental problem is the inability to manage
    the software process

Improving Process
  • Return on investment of improving process is
  • 500

Organization and Process Maturity
  • As an organization matures, software process
    becomes better defined and more consistently
    implemented throughout the organization

Immature Software Organizations
  • Process is improvised by practitioners and
    management during the course of project
  • If process has been specified it is not
    rigorously followed or enforced
  • Organization is reactionary
  • No basis for judging quality
  • Reviews etc. are often curtailed or eliminated
    when projects fall behind schedule
  • Testing suffers

Mature Software Organizations
  • Defined processes
  • Communicated to existing and new staff
  • Processes are updated when necessary
  • Roles and responsibilities are clear within a
  • Quality is correctly monitored
  • Schedules and budgets are based on historical

Software Process Capability
  • The range of expected results that can be
    achieved by following a software process

Software Process Performance
  • Represents the actual results achieved by
    following a software process

Process Maturity
  • Extent to which a specified process is explicitly
    defined, managed, controlled and effective
  • Software Process Assessment Questionnaire
    questions to determine the presence or absence of
    key process areas

  • As an organization gains in process maturity it
    institutionalizes its process via policies,
    standards and organizational structures
  • The organization outlives those who leave it

Capability Maturity Model
  • Developed at SEI
  • Organized strategy for improvement of process
  • Evolutionary path that increases an
    organizations software process maturity in
  • Framework for continuous software process

Five Levels of Software Process Maturity
  • Initial
  • Repeatable
  • Defined
  • Managed
  • Optimized

Level 1 -- Initial
  • Software process is characterized as ad hoc and
    possibly even chaotic
  • Few processes are defined
  • Success depends on the efforts of individuals
  • Organization does not provide a stable environment

Level 1 -- Initial (2)
  • Good software engineering practices are
    undermined by ineffective planning and reaction
    driven commitment systems
  • Managers have a difficult time establishing the
    status of a projects progress and activities

Level 2 -- Repeatable
  • Basic project management processes are
    established to track cost, schedule, and
  • Repeat earlier successes on projects with similar
  • Problems in meeting commitments are identified
    when they arise
  • Standards are defined and it is ensured that they
    are followed

Level 2 -- Repeatable (2)
  • Baseline software products and work products and
    their integrity is controlled
  • Documented procedures provide the foundation for
    consistent processes that can be
    institutionalized across the organization with
    the aid of training and quality assurance
  • Project status is defined by a series of

Level 3 -- Defined
  • Process for both management and engineering
    activities is documented, standardized and
    integrated into a standard process for the
  • All projects use an approved, tailored version of
    the organizations standard process

Level 3 -- Defined (2)
  • An organization wide training program is
  • Process includes readiness criteria, inputs,
    standards and procedures for performing the
    activities, verification mechanisms, outputs and
    completion criteria
  • Management has good insight into technical

Level 4 -- Managed
  • Detailed measures of software process and product
    quality are collected
  • Both are quantitatively understood and controlled
  • Organization wide database is used to collect and
    analyze data available from projects defined
    software processes

Level 4 -- Managed (2)
  • Process capability is predictable because the
    process is measured and operates within limits
  • Managers are able to measure progress and
    problems and have a basis for making decisions

Level 5 -- Optimizing
  • Continuous process improvement
  • Innovative ideas and technologies are piloted, in
    a controlled manner
  • Organization identifies weaknesses and
    strengthens the process proactively

Level 5 -- Optimizing (2)
  • Goal is the prevention the of defects
  • Data on effectiveness is used to perform cost
    benefit analysis of new technologies and proposed
    changes to the organizations process
  • Change impact is estimated and its effectiveness
    is tracked

Key Process Areas
  • Maturity level is decomposed into Key Process
  • Each area identifies the issues that must be
    addressed to achieve that maturity level

Key Process Areas (2)
  • Cluster of related activities when performed
    collectively achieve a set of goals to enhance
    process capability
  • When goals are accomplished on a continuing basis
    across projects they have been institutionalized

Common Features
  • Commitment to perform
  • Ability to perform
  • Activities performed
  • Measurement and analysis
  • Verifying implementation

Commitment to Perform
  • The actions the organization must take to ensure
    that the process is established and will endure
  • Typically involves establishing organizational
    policies and senior management sponsorship

Ability to Perform
  • The preconditions that must exist in the project
    or organization to implement the software process
  • Typically involves resources, organizational
    structures, and training.

Activities Performed
  • A description of the roles and procedures
    necessary to implement a KPA
  • Typically involves establishing plans and
    procedures, performing the work, tracking it, and
    taking corrective actions as necessary

Measurement and Analysis
  • Description of a need to measure the process and
    analyze the measurements
  • Typically includes examples of the measurements
    to be taken to determine the status and
    effectiveness of the activities performed

Verifying Implementation
  • Steps to ensure that the activities are performed
    in compliance with the process that has been
  • Typically encompasses reviews and audits by both
    management and SQA.

KPA -- Level 2
  • Requirements Management
  • Software Project Planning
  • Software Project Tracking
  • Software Subcontractor Management
  • Software Quality Assurance
  • Software Configuration Management

Requirements Management
  • Establish a common understanding between the
    customer and the software project of the
    customers requirements that will addressed by
    the software project
  • Agreement will be the basis for planning and
  • Control of the relationship depends on following
    an effective change control process (SCM)

Requirements Management - Goals
  • System requirements allocated to software are
    controlled to establish a baseline for software
    engineering and management use
  • Software plans, products, and activities are kept
    consistent with the system requirements allocated
    to software

RM -- Commitment to Perform
  • The project follows a written organizational
    policy for managing the system requirements
    allocated to software
  • Policy specifies
  • allocated reqs. are documented
  • allocated reqs. are reviewed
  • software plans, work products and activities are
    changed to be consistent with changes to
    allocated reqs.

RM -Ability to Perform
  • Responsibility is established for analyzing the
    system requirements and allocating them to
    hardware, software and other system components
  • Allocated requirements are documented
  • Adequate resources and funding are provided for
    managing the allocated reqs.
  • Members of groups are trained

RM -- Activities Performed
  • Reviews are conducted before the allocated reqs.
    are incorporated into the project
  • Allocated reqs. are used as a basis for software
    plans, work products, and activities
  • Changes to the allocated reqs. are reviewed and
    incorporated into the software project

RM - Measurement and Analysis
  • Measurements are made and used to establish the
    status of the activities for managing the
    allocated reqs.

RM -Verifying Implementation
  • Activities for managing the allocated reqs. are
    reviewed with senior management on a regular
  • Reviewed with project manager on both a periodic
    and event driven basis
  • SQA reviews and/or audits the activities and work
    products for managing the allocated reqs. and
    reports the results

Software Project Planning
  • Establish reasonable plans for performing the
    software engineering and managing the project
  • Involves developing estimates for
  • Size of work to be performed
  • Resources needed
  • Produce a schedule
  • Identify risks
  • Negotiate commitments

Software Project Tracking and Oversight
  • To provide adequate visibility into actual
    progress so that effective action can be taken if
    the performance deviates significantly from the
  • track and review accomplishments, compare against
    documented estimates
  • adjust plan when necessary

Software Subcontractor Management
  • Select qualified software subcontractors and
    manage them effectively
  • establish commitments with subcontractor
  • tracking and reviewing the subcontractors
  • document work to be done and the plan of that work

Software Quality Assurance
  • Provides visibility
  • Involves review an/or audit of the products and
    activities to verify that they comply with
    applicable procedures and standards
  • Results are supplied to management

Software Configuration Management
  • Establish and maintain the integrity of the
    products of the software project throughout the
  • Identify the configuration of software work
    products and descriptions
  • Control change to the configuration

KPA -- Level 3
  • Organization Process Focus
  • Organization Process Definition
  • Training Program
  • Integrated Software Product Engineering
  • Intergroup Coordination
  • Peer Reviews

Organization Process Focus
  • Establish the organizational responsibility for
    the process activities
  • Develop and maintain an understanding of the
    organizations and projects process
  • Coordinate activities to assess, develop,
    maintain and improve these processes

Organization Process Definition
  • Develop and maintain usable set of software
    process assets
  • Descriptions of life-cycles
  • Process tailoring guidelines
  • Process database
  • Library of process related documentation

Training Program
  • Develop the skills and knowledge of individuals
  • Identifying the training needed by the
    organization as a whole and on a project basis
  • Procuring or developing the needed training

Integrated Software Management
  • Integrate software engineering and management
    activities into a coherent, defined process
  • Defining the projects process by tailoring the
    organizations standard process to the specifics
    of the project

Software Product Engineering
  • Consistently perform a well-defined engineering
  • Use the defined software process and appropriate

Intergroup Coordination
  • Establish a means for the software engineering
    group to participate actively with the other
    engineering groups

Peer Reviews
  • Purpose is to remove defects from software work
    products early and efficiently
  • Develop a better understanding of the work
    products and the defects that might be prevented

KPA -- Level 4
  • Quantitative Process Management
  • Software Quality Management

KPA -- Level 5
  • Defect Prevention
  • Technology Change Management
  • Process Change Management

Uses of CMM
  • Identify improvements
  • Identify risks with sub-contractors
  • Implement a process improvement program
  • Guide definition and development of the software

Uses of CMM (2)
  • Process improvement and evaluation
  • Assessments
  • Organizations use maturity model to study own
    operations and to identify the highest priority
    areas for improvement
  • Evaluations
  • Acquisition agencies use maturity model to
    identify qualified bidders and to monitor
    existing contracts

Software Process Assessment Questionnaire
  • Identify strengths, weaknesses and existing
    improvement activities
  • Obtain organizational buy-in to process
    improvement effort
  • Identify key areas for improvement
  • Baseline process
  • Initiate improvement

Software Qualities
Write a Comment
User Comments (0)