Title: Software Engineering Program Information
1Software Engineering Program Information
For New Students Summer 2007
Save these notes for future reference!
2SENG Program Info
Program Coordinator Jim Mooney Lane Dept. of
CSEE Rm 941 ESB PO Box 6109 Morgantown WV
26506-6109 (304) 293-0405 X2562 jdm_at_csee.wvu.edu
3SENG Program Info
SENG Program website http//www.lcsee.cemr.wvu.ed
u/grad/degree-info.php?degreemsse
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!
4SENG Program info
Whats on the website?
1. General information about the program
- Admission Requirements
- Application Procedures
- Program Requirements
- Graduation Procedures
5SENG 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)
6SENG 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)
7SENG 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
8SENG 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.
9SENG Program info
Registration notes
- Allow enough time -- request your PIN early!
- You cannot register online after classes start!
10SENG 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.
11SENG 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.
12SENG 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
transferred!
13SENG 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!
14SENG 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
15SENG 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
address - Complete the online transfer form
-
16SENG 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
17SENG 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
18SENG 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.
19SENG Program info
Good Luck! Save these notes! Use the website!
Most common questions will be answered there!
20SENG 540Software Evolution
- The Evolution of Software Systems
21SENG 540
- Syllabus
- Assignments and Testing
- Objectives
22Syllabus
- 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 Kenneth.Costello_at_gmail.com (or
Kenneth.A.Costello_at_nasa.gov ) - 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
approval. - Academic Dishonesty
23Assignments 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
24Resources and Assignments
- Class website
- http//elearn.cerc.wvu.edu/540/default.htm
- Assignments
- Goal is 3 projects
- Focus on understanding software
- Documenting software
- Understanding software evolution concepts
- Studying real-time systems
- Essays
- Developing communication skills
25Schedule
- 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
26Course 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
involving - The capture and retention of knowledge about a
system and its software - Analyzing and understanding software
27Some Specific Topics
- Engineering versus Programming
- The laws of Software Evolution
- Attributes of software and software intensive
systems - Understandability
- Software evolution, migration and reengineering
28Lecture Outline
- Software challenge
- Software Process
- Development Maturity
29Challenges in Software
- How do you build software that does what you
want? - 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
30Software 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
31Software Characteristics (2)
- Software is developed logically or engineered
- Not a manufacturing process
- Cost distribution is different than a physical
item - 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
home - There are not design specs for software
32Software 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
33Software 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
34Reliability
- Allows the software to meets its specification
- Allows the software to respond to failures
- Crashing is not a response
35Maintainability (Modifiability)
- Allows software to adapt to different usage
- Environmental changes
- Changing requirements
- Design to isolate the effects of change
- Coupling
- Cohesion
36Understandability
- Allows follow-on developers to understand the
system implementation details - Write once, read many
- Supports different levels of understanding
37Efficiency
- 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
38Programming vs Engineering
39Software Processes
40Software 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
41Software 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
products
42Defined 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
43Characteristics of Process
- Understandable
- Visible
- Supportable
- Acceptability
44Characteristics of Process (2)
- Reliability
- Robust
- Maintainability
- Rapidity
45Generic 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
problem - Maintenance or Evolution
- Keep the solution viable
- CHANGE
- Reapplies definition and development within the
context of existing software
46Process Model
- Clearly defines each phase
- Tasks and activities to be performed
- Tasks -- user requirements operation
- Activities
- project management
- validation and verification
- configuration management
- maintenance
47Process Activities
- Project tracking and control
- Formal technical reviews
- Quality assurance
- Software configuration management
- Documentation preparation and production
- Reuse management
- Measurement
- Risk management
48Process Structures
- Organizational Level
- Fundamental elements to be incorporated into each
project - Defined relationship between elements
- Process tasks
- Approved life-cycles
- Tailoring and elaborating guidelines
- Database and library
49Process 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
50Software Crisis
- Fundamental problem is the inability to manage
the software process
51Improving Process
- Return on investment of improving process is
- 500
52Organization and Process Maturity
- As an organization matures, software process
becomes better defined and more consistently
implemented throughout the organization
53Immature 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
54Mature Software Organizations
- Defined processes
- Communicated to existing and new staff
- Processes are updated when necessary
- Roles and responsibilities are clear within a
project - Quality is correctly monitored
- Schedules and budgets are based on historical
performance
55Software Process Capability
- The range of expected results that can be
achieved by following a software process
56Software Process Performance
- Represents the actual results achieved by
following a software process
57Process 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
58Institutionalization
- As an organization gains in process maturity it
institutionalizes its process via policies,
standards and organizational structures - The organization outlives those who leave it
59Capability Maturity Model
- Developed at SEI
- Organized strategy for improvement of process
- Evolutionary path that increases an
organizations software process maturity in
stages - Framework for continuous software process
improvement
60Five Levels of Software Process Maturity
- Initial
- Repeatable
- Defined
- Managed
- Optimized
61Level 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
62Level 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
63Level 2 -- Repeatable
- Basic project management processes are
established to track cost, schedule, and
functionality - Repeat earlier successes on projects with similar
applications - Problems in meeting commitments are identified
when they arise - Standards are defined and it is ensured that they
are followed
64Level 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
milestones
65Level 3 -- Defined
- Process for both management and engineering
activities is documented, standardized and
integrated into a standard process for the
organization - All projects use an approved, tailored version of
the organizations standard process
66Level 3 -- Defined (2)
- An organization wide training program is
implemented - Process includes readiness criteria, inputs,
standards and procedures for performing the
activities, verification mechanisms, outputs and
completion criteria - Management has good insight into technical
progress
67Level 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
68Level 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
69Level 5 -- Optimizing
- Continuous process improvement
- Innovative ideas and technologies are piloted, in
a controlled manner - Organization identifies weaknesses and
strengthens the process proactively
70Level 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
71Key Process Areas
- Maturity level is decomposed into Key Process
Areas - Each area identifies the issues that must be
addressed to achieve that maturity level
72Key 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
73Common Features
- Commitment to perform
- Ability to perform
- Activities performed
- Measurement and analysis
- Verifying implementation
74Commitment 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
75Ability to Perform
- The preconditions that must exist in the project
or organization to implement the software process
completely - Typically involves resources, organizational
structures, and training.
76Activities 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
77Measurement 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
78Verifying Implementation
- Steps to ensure that the activities are performed
in compliance with the process that has been
established - Typically encompasses reviews and audits by both
management and SQA.
79KPA -- Level 2
- Requirements Management
- Software Project Planning
- Software Project Tracking
- Software Subcontractor Management
- Software Quality Assurance
- Software Configuration Management
80Requirements 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
managing - Control of the relationship depends on following
an effective change control process (SCM)
81Requirements 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
82RM -- 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.
83RM -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
84RM -- 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
85RM - Measurement and Analysis
- Measurements are made and used to establish the
status of the activities for managing the
allocated reqs.
86RM -Verifying Implementation
- Activities for managing the allocated reqs. are
reviewed with senior management on a regular
basis - 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
87Software 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
88Software 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
plan - track and review accomplishments, compare against
documented estimates - adjust plan when necessary
89Software Subcontractor Management
- Select qualified software subcontractors and
manage them effectively - establish commitments with subcontractor
- tracking and reviewing the subcontractors
performance - document work to be done and the plan of that work
90Software 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
91Software Configuration Management
- Establish and maintain the integrity of the
products of the software project throughout the
life-cycle - Identify the configuration of software work
products and descriptions - Control change to the configuration
92KPA -- Level 3
- Organization Process Focus
- Organization Process Definition
- Training Program
- Integrated Software Product Engineering
- Intergroup Coordination
- Peer Reviews
93Organization 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
94Organization 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
95Training 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
96Integrated 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
97Software Product Engineering
- Consistently perform a well-defined engineering
process - Use the defined software process and appropriate
tools
98Intergroup Coordination
- Establish a means for the software engineering
group to participate actively with the other
engineering groups
99Peer 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
100KPA -- Level 4
- Quantitative Process Management
- Software Quality Management
101KPA -- Level 5
- Defect Prevention
- Technology Change Management
- Process Change Management
102Uses of CMM
- Identify improvements
- Identify risks with sub-contractors
- Implement a process improvement program
- Guide definition and development of the software
process
103Uses 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
104Software 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
105Software Qualities