Title: INTROSE Introduction to Software Engineering
1INTROSE Introduction to Software Engineering
Software Definitions, Myths, and Process Models
- Raymund Sison, PhD
- College of Computer Studies
- De La Salle University
- sisonr_at_dlsu.edu.ph
2Question
3What is software?
- Software is a set (configuration) of computer
programs and associated documentation and data. - (Sommerville, 2001)
4What is software?
- Software can be
- System software
- Business software
- Engineering and scientific software
- Embedded software
- Personal productivity software
- Web-based software (Web apps)
- Artificial intelligence software
5What is software?
- Software
- Is engineered, not manufactured
- Doesnt wear out, but it does deteriorate (see
next slide) - Is still usually custom-built, though reusable
components that are reliable and easy to use are
steadily increasing
6Wear vs. Deterioration
From (Pressman, 2001)
7Software Myths
- Management myths
- All that my people need to develop good software
are state-of-the-art computers. - All that my people need to develop good software
are documented in a book of standards and
procedures. - If we get behind schedule, we simply add more
programmers. - If I decide to outsource a software development
project to another firm, I can just relax and let
that firm do it.
8Software Myths
- Customer myths
- A general statement of objectives is sufficient
to begin writing programs we can fill in the
details later. - Project requirements continually change, but
change can be easily accommodated because
software is flexible.
9Software Myths
- Practitioners myths
- Once we write the program and get it to work, our
job is done. - Until I get the program running, I have no way
of assessing its quality. - The only deliverable work product for a
successful project is the working program. - Software engineering will make us create
voluminous and unnecessary documentation and will
invariably slow us down.
10What is software engineering?
- Software engineering is the production of quality
software (and the study of approaches to all
aspects thereof).
11Software Process
- A software process is a set of activities that
produce a software product.
12Generic Software Activities
- Specification
- Planning
- Requirements analysis
- Development
- Design
- Coding
- Verification and validation
- Maintenance (a.k.a. Evolution)
- Correction
- Adaptation
- Enhancement
13Support Software Activities
- Complementing the generic software activities are
the following umbrella activities - Software project tracking and control
- Formal technical reviews
- Software quality assurance
- Software configuration management
- Document preparation and production
- Measurement
- Risk management
14Software Process Model
- A software process model is a simplified
description of a software process.
15Some Software Process Models
- Some software process models
- Linear
- Iterative
- Evolutionary
- Incremental
- Spiral
- Unified Process
- Agile
- Formal
16Some Software Process Models
- Linear (a.k.a. Waterfall) oldest and most
widely used
From (Sommerville, 2001)
17Some Software Process Models
- Drawbacks of the Waterfall model
- It is often difficult for customers to state all
requirements explicitly. - Accommodating change is difficult in Waterfall.
- Therefore this model is appropriate only when
requirements are well understood. - The customer must have patience.
18Some Software Process Models
- Evolutionary (Iterative)
From (Pressman, 2001)
19Some Software Process Models
- Incremental (Iterative)
From (Pressman, 2001)
20Some Software Process Models
From (Boehm, 1988)
21Some Software Process Models
- Unified Process (Iterative)
From (Jacobson, Booch Rumbaugh, 1999)
22Some Software Process Models
- Agile, e.g.,Scrum (Iterative)
23Some Software Process Models
- XP Sidebar (from ADVANSE slides)
24Some Software Process Models
- Other generic process models
- Formal methods used when a mathematical
specification is to be developed - Component assembly used when reuse is a
development objective
25Impact of Process Model
- If appropriate,
- can improve
- development speed
- quality
- tracking control
- client relations
- can minimize
- overhead
- risk exposure
- If inappropriate,
- can make some work
- slow
- unnecessary
- redundant
- frustrating
26Brooks No Silver Bullet
- Software engineering involves
- Essential tasks
- The fashioning of the complex conceptual
structures that compose the abstract software
entity - Accidental tasks
- The representation of these abstract entities in
programming languages and the mapping of these
onto machine languages within space and speed
constraints
27Brooks No Silver Bullet
- For accidental tasks, increase productivity
through automation - For essential tasks, increase productivity
through - Great designers
- Rapid prototyping
- Evolutionary development
- Software reuse