Lecture 1 - Intro To SE
Lecture 1 - Intro To SE
Software Engineering
Lecture 1
2
CUSTOMER
Sponsors system
development
$$
$ DEVELOPER
Co nee ,
USER ob nt ds
lig rac
Uses at tu
io al Builds
system n
system
Needs
Software system
System Design
SOFTWARE DEVELOPMENT STEPS
DESIGNER
Program Implementation
Integration Testing
System Testing
TRAINER
System Delivery
Maintenance
CHANGES IN
Desktop computing
SOFTWARE Time to market
ENGINEERING
6
Software engineering
7
FAQs about software engineering
• What is software?
• What is software engineering?
• What is the difference between software engineering and
computer science?
• What is the difference between software engineering and
system engineering?
• What is a software process?
• What is a software process model?
8
FAQs about software engineering
9
What is software?
• Computer programs and associated documentation
such as requirements, design models and user
manuals.
• Software products may be developed for a particular
customer or may be developed for a general market.
• Software products may be
• Generic ‐ developed to be sold to a range of different customers e.g.
PC software such as Excel or Word.
• Bespoke (custom) ‐ developed for a single customer according to
their specification.
11
Categories of Software Product
Categories of client and software product:
• Generic (e.g., Microsoft Excel)
• Packages (e.g., Mathematica)
• Customized versions of generic packages (e.g.,
UTeM's payroll system)
• Bespoke (customized) (e.g., IRS internal system)
• Demonstration, prototype, research, …
12
What is software engineering?
13
Computer Science Customer
Computer
Theories Problem
Functions
Software
Engineering
Tools and
Techniques to
Solve
Problem 14
What is the difference between software
engineering and computer science?
15
What is the difference between software
engineering and system engineering?
16
What is a software process?
17
What is a software process model?
18
can lead to can lead to
19
Software costs
20
What are the costs of software
engineering?
21
What is CASE (Computer‐Aided
Software Engineering)
22
Traceability
Correctness Completeness
Reliability Consistency
Accuracy
Maintainability Training
Communicativeness
Testability Simplicity
Conciseness
Flexibility Instrumentation
Self‐descriptiveness
Portability Expandability
Generality
Reusability Modularity
Software System Independence
Interoperability Machine Independence
Communications commonality
Data commonality
Figure 1.5 McCall’s quality model. 23
What are the attributes of good software?
24
What are the key challenges facing
software engineering?
Heterogeneity, delivery and trust.
26
Key points
27