![Page 1: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/1.jpg)
INTROSE Introduction to Software Engineering
Raymund Sison, PhDCollege of Computer Studies
De La Salle University
Software: Definitions, Myths, and Process Models
![Page 2: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/2.jpg)
What is software?
Software is a set (configuration) of computer programs and associated documentation and data.
(Sommerville, 2001)
![Page 3: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/3.jpg)
What 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
![Page 4: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/4.jpg)
What is software?
Software… Is engineered, not manufactured Doesn’t 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
![Page 5: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/5.jpg)
Wear vs. Deterioration
From (Pressman, 2001)
![Page 6: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/6.jpg)
Software 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.
![Page 7: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/7.jpg)
Software 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.
![Page 8: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/8.jpg)
Software Myths
Practitioner’s 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.
![Page 9: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/9.jpg)
What is software engineering?
Software engineering is the production of quality software (and the study of approaches to all aspects thereof).
![Page 10: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/10.jpg)
Software Process
A software process is a set of activities that produce a software product.
![Page 11: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/11.jpg)
Generic Software Activities
Specification Planning Requirements analysis
Development Design Coding Verification and validation
Maintenance (a.k.a. Evolution) Correction Adaptation Enhancement
![Page 12: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/12.jpg)
Support Software Activities
Complementing the generic software processes 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
![Page 13: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/13.jpg)
Software Process Model
A software process model is a simplified description of a software process.
![Page 14: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/14.jpg)
Some Software Process Models
Some software process models: Linear Evolutionary Iterative
• Incremental
• Spiral
• Unified Process
• Agile
Formal
![Page 15: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/15.jpg)
Some Software Process Models
1. Linear (a.k.a. Waterfall) – oldest and most widely used
Requirementsdefinition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
From (Sommerville, 2001)
![Page 16: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/16.jpg)
Some 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.
![Page 17: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/17.jpg)
Some Software Process Models
2. Evolutionary
From (Pressman, 2001)
![Page 18: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/18.jpg)
Some Software Process Models
Drawbacks of the Evolutionary Prototyping model
• The customer might think that only a few fixes need to be made to transform the working prototype to a working product.
• The developer might get so used to hastily made prototype implementation decisions (e.g., an inefficient algorithm) that he becomes lazy to change these to more appropriate/efficient ones.
![Page 19: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/19.jpg)
Some Software Process Models
3. Incremental (Iterative)
From (Pressman, 2001)
![Page 20: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/20.jpg)
Some Software Process Models
4. Spiral (Iterative)
From (Boehm, 2006)
![Page 21: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/21.jpg)
Some Software Process Models
5. Unified Process (Iterative)
![Page 22: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/22.jpg)
Some Software Process Models
6. XP (Iterative)
![Page 23: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/23.jpg)
Some Software Process Models
6. XP (Iterative)
![Page 24: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/24.jpg)
Some 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
![Page 25: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/25.jpg)
Impact 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
![Page 26: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/26.jpg)
Brooks’ “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
![Page 27: INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University sisonr@dlsu.edu.ph Software: Definitions,](https://reader035.vdocuments.us/reader035/viewer/2022062321/56649e195503460f94b06646/html5/thumbnails/27.jpg)
Brooks’ “No Silver Bullet”
For “accidental” tasks, increase productivity through automation
For “essential” tasks, increase productivity through:• Great designers
• Rapid prototyping
• Evolutionary development
• Software reuse