Title: Top: 1 Software and Software Engineering
1Top 1Software and Software Engineering
2Softwares Dual Role
- Software is a product
- Produces, manages, acquires, modifies, displays,
or transmits information - Software is a vehicle for delivering a product
- Supports or directly provides system
functionality - Controls other programs (e.g., an operating
system) - Effects communications (e.g., networking
software) - Helps build other software (e.g., software tools)
3What is Software?
Software is a set of items or objects that form
a configuration that includes
programs documents data ...
4What is Software?
- software is engineered
- software doesnt wear out
- software is complex
5Software Applications
- system software
- application software
- engineering/scientific software
- product-line software
- WebApps (Web applications)
- AI software
6Legacy Software
Why must it change?
- software must be adapted to meet the needs of new
computing environments or technology. - software must be enhanced to implement new
business requirements. - software must be extended to make it
interoperable with other more modern systems or
databases. - software must be re-architected to make it viable
within a network environment.
7Software Evolution
- The Law of Continuing Change (1974) E-type
systems must be continually adapted else they
become progressively less satisfactory. - The Law of Increasing Complexity (1974) As an
E-type system evolves its complexity increases
unless work is done to maintain or reduce it. - The Law of Self Regulation (1974) The E-type
system evolution process is self-regulating with
distribution of product and process measures
close to normal. - The Law of Conservation of Organizational
Stability (1980) The average effective global
activity rate in an evolving E-type system is
invariant over product lifetime. - The Law of Conservation of Familiarity (1980) As
an E-type system evolves all associated with it,
developers, sales personnel, users, for example,
must maintain mastery of its content and behavior
to achieve satisfactory evolution. - The Law of Continuing Growth (1980) The
functional content of E-type systems must be
continually increased to maintain user
satisfaction over their lifetime. - The Law of Declining Quality (1996) The quality
of E-type systems will appear to be declining
unless they are rigorously maintained and adapted
to operational environment changes. - The Feedback System Law (1996) E-type evolution
processes constitute multi-level, multi-loop,
multi-agent feedback systems and must be treated
as such to achieve significant improvement over
any reasonable base.
8Software Engineering A Layered Technology
Software Engineering
tools
methods
process model
a quality focus
9A Process Framework
Process framework Framework activities work
tasks work products milestones deliverables QA
checkpoints Umbrella Activities
10Framework Activities
- Communication
- Planning
- Modeling
- Analysis of requirements
- Design
- Construction
- Code generation
- Testing
- Deployment
11Umbrella Activities
- Formal technical reviews
- Software quality assurance
- Software configuration management
- Work product preparation and production
- Reusability management
- Measurement
12The Process ModelAdaptability
- the framework activities will always be applied
on every project ... BUT - the tasks (and degree of rigor) for each activity
will vary based on - the type of project
- common sense judgment concurrence of the project
team
13Process Patterns
- Process patterns define a set of activities,
actions, work tasks, work products and/or related
behaviors - A template is used to define a pattern
- Typical examples
- Analysis (an action)
- Requirements gathering (a process task)
- Reviewing a work product (a process task)
- Design model (a work product)
14Process Assessment
- The process should be assessed to ensure that it
meets a set of basic process criteria that have
been shown to be essential for a successful
software engineering. - The CMMI defines each process area in terms of
specific goals and the specific practices
required to achieve these goals. -
- Specific goals establish the characteristics
that must exist if the activities implied by a
process area are to be effective. - Specific practices refine a goal into a set of
process-related activities.
15Assessment and Improvement
16Personal Software Process (PSP)
- Recommends five framework activities
- Planning
- High-level design
- High-level design review
- Development
- Postmortem
- stresses the need for each software engineer to
identify errors early and as important, to
understand the types of errors
17Team Software Process (TSP)
- Each project is launched using a script that
defines the tasks to be accomplished - Teams are self-directed
- Measurement is encouraged
- Measures are analyzed with the intent of
improving the team process
18The Primary Goal of Any Software Process High
Quality
Remember High quality project
timeliness Why? Less rework!