Title: Cmpe 589
1Cmpe 589
2Software Engineering
- Definition
- A strategy for producing high quality software.
3Software Engineering
- Definition Of High Quality Software
- It must be useful (to the original customer).
- It must be portable (work at all of the
customers sites). - It must be maintainable.
- It must be reliable.
- It must have integrity (produces correct results,
with a high degree of accuracy). - It must be efficient.
- It must have consistency of function (it does
what the user would, reasonably expect it to do).
- It must be accessible (to the user).
- It must have good human engineering (easy to
learn and easy to use).
4Software Development Models
- Systems Approach
- Definition of a system (a collection of
things) - A set of entities.
- A set of activities.
- Descriptions of entity relationships.
- System boundaries.
- Distinguish between activities (processes,
methods) and objects (data). - Determine the relationships between the objects.
5Software Development Models
- Advantages Of Bounded Systems
- Makes problem identification easier.
- (It is often useful to think of a system as a
sub-system, for the purpose of extension).
6Software Development Models
- Software Engineering Approach
- The art of producing systems involves the craft
of programming. - Fabricating software using "off the shelf"
components. - Why Doesnt This Work Well
- Customers are not capable of describing their
needs completely or precisely. - Customers change the specifications.
7Software Lifecycle Models
- Phases
- Requirements, analysis, and design phase.
- System design phase.
- Program design phase.
- Program implementation phase.
- Unit testing phase.
- Integration testing phase.
- System testing phase.
- System delivery phase.
- System delivery.
- Maintenance.
8Software Lifecycle Models
- Waterfall Model
- Errors require at least one step back in the
cycle. - Change Failure.
9Software Lifecycle Models
- Rapid Prototyping Model
- Start with user interface (probably most
important to customer). - When customer is happy with that, then work on
the behind the scenes stuff. - Customer is involved throughout the entire
process.
10Software Lifecycle Models
- Spiral Model
- Prototyping is used to reduce risk.
11Software Lifecycle Models
- Fourth Generation Techniques
- (Usually a tool that generates the code, through
the use of a graphical interface). - Non-procedural data-base query languages.
- Some type of report generator.
- Often capable of high-level graphics.
- Spreadsheets.
12Capability Maturity Model
- (A Strategy For Improving The Software Process).
- Maturity Models
- Level One Initial Process
- Ad-hoc approach to software design.
- Inputs are ill defined.
- Outputs are expected (transitions not defined or
controllable).
13Capability Maturity Model
- Level Two Repeatable Process
- Requirements are input.
- Code output.
- Constraints - budget time.
- Metrics - project related
- Software size.
- Personnel effort.
- Requirement validity.
- Employee turnover.
14Capability Maturity Model
- Level Three Defined Process
- The activities of the process have clearly
defined entry exit conditions. - Intermediate products - well defined and easily
visible. - Metrics
- Requirements complexity.
- Code complexity.
- Failures discovered.
- Code defects discovered.
- Product defect density.
- Pages of documentation.
15Capability Maturity Model
- Level Four Managed Process
- Information from early process activities can be
used to schedule later process activities. - Metrics
- Defined and analyzed to suit the development
organization. - Data
- Process type.
- Producer reuse.
- Consumer reuse.
- Defect identification mechanism.
- Defect density - model for testing.
- Configuration management scheme.
- Module completion rates over time.
16Capability Maturity Model
- Level Five Optimizing Processes
- Measures from activities are used to improve
processes.
17Capability Maturity Model
- How Are Metrics Used?
- Assess the process level.
- Determine metrics to use.
- Recommend metrics, tools, techniques.
- Estimate project costs and schedule.
- Collect metrics at the appropriate level.
- Construct a project database.
- Evaluate cost and schedule.
- Evaluate productivity and quality.
- Form a basis for future estimates.
18Capability Maturity Model
- Benefits Of Process Maturity And Metrics
- Enhanced understanding of the process.
- Increased control over the process.
- Clear migration path to a more mature process.
- More accurate estimates of cost and scheduling of
staff. - More objective evaluation of changes needed
(techniques, tools, methods, ect.). - More accurate estimation of changes on project
cost and schedule.