SE - Lecture 1-2
SE - Lecture 1-2
Engineering
An Introduction
1
Software Engineering
2
Grading Scheme
• Four Assignments.
• Four Quiz
• Midterm exam:
• Project:
– Presentation: 10%
– Report: 10%
• Final Exam:
3
4
!"#$%&'()*+),"-./(0
• Complex ≠ complicated
• Complex = composed of many simple parts related to one another
• Complicated = not well understood, or explained
5
Hutchins, Cognition in the Wild, The MIT Press, 1995.
More Complexity
A self-driving train?
It is a complex problem : it will have many systems on board to open and close
doors, control the temperature inside, detect obstacles, recognize station
Course Overview
This course covers a range of Software Engineering (SE) materials. The
emphasis is on the knowledge needed to be able to model, design,
implement and evaluate diverse software systems effectively. The
content starts with development lifecycle models and then continues to
cover requirements specification; the Unified Modeling Language
(UML), software architecture, object-oriented, design patterns and
testing. The students will obtain knowledge about software engineering
concepts such as software processes models, methods and techniques
for architectural design, testing, planning, configuration management
and software quality management. Consequently, students undertake
a substantial group project, working through a number of stages of the
development of a larger software application.
7
Topics to be covered
• Introduction, History and Economics
• Software Life cycle and Documentation Techniques
• Design Techniques and Unified Modeling language
• Estimating, planning and scheduling
• Agile and real-time development
• Software testing, review and estimation strategies
• Software maintenance and configuration management
• Legal aspects of software engineering
• The Future of Software Development
8
What is…..
9
What is a Software
A collection of instructions
that enable the user to
interact with a computer, its
hardware, or perform tasks.
10
What is a Engineering
11
What is Software Engineering?
• There’re serious problems in the cost, timeliness, maintenance, and quality of many
software products.
12
Software Engineering Definition
15
Historical Aspects
• In July 1940, construction of a suspension
bridge over the Tacoma Narrows, in
Washington State, was completed. Soon after,
it was discovered that the bridge swayed and
buckled dangerously in windy conditions.
• Approaching cars would alternately disappear
into valleys and then reappear as that part of
the bridge rose again.
• on November 7, 1940, the bridge collapsed in
a 42 mile per hour wind; fortunately, the
bridge had been closed to all traffic some
hours earlier
18
Historical Aspects
• Despite many software success stories, an unacceptably
large proportion of software products still are being
delivered late, over budget, and with residual faults
19
Project Failure Percentage
• Khan, Ahmed. (2011). Cloud services for collaborative web based project management system. 6. 4. 20
!"#$%&'()123*2(('*23
Programmer
Customer
22
4'"3'&--*23)
5'
)!"#$%&'()123*2(('*23
6
23
Core steps to build a Restaurant App
24
Core steps to build a Restaurant App
4. Define Specs.
25
HR requirement
To implement such a project, you will need a
team of at least 5 specialists:
• Designer
• iOS developer
• Android developer
• Backend developer
• QA specialist
• Project manager to coordinate the teamwork
(Optional but recommended)
26
Why Software Engineering?
Non-productive
Activities
30%
Interaction
Work alone 50%
20%
https://searchsoftwarequality.techtarget.com/photostory/4500271451/Measuring-software-developer-productivity-one-task-at-a-time/3/Whats-good-for-software- 28
development-productivity-and-whats-not
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) is a process used by the
software industry to design, develop and test high quality software.
The life cycle defines a methodology for improving the quality of software and the
overall development process.
29
The six phases of the classical SW life-cycle
SDLC Models
1. Waterfall Model
2. Iterative Model
3. Spiral Model
4. V-Model
Davis, Alan M., Edward H. Bersoff, and Edward R. Comer. "A strategy for comparing alternative software development life cycle 30
models." IEEE Transactions on software Engineering 14.10 (1988): 1453-1461.
Classical View of Maintenance
31
Barry Boehm, Software Engineering Economics, © 1981, p. 40. Adapted by permission of Prentice Hall, Inc., Englewood Cliffs, NJ.
789)!7)&2:)!1)*+);-."'$&2$6
• The economies of ALL developed nations are dependent on software.
32
Questions
Q01. S/W engineering aims to develop software
A. On time and within budget.
B. which is fault-free.
C. which meets the client’s needs.
D. All of A–C.
33
Q03. The analysis phase of Software engineering
34
Q04: SDLC means
35
Q05: The individual or organization who wants a
product to be developed is known as the:
A. Developer
B. User
C. Contractor
D. Initiator
E. Client.
36
37
38