SE Lec1 Intoduction
SE Lec1 Intoduction
2
Software engineering
Software engineering is concerned
with theories, methods and tools for
professional software development
Ranking Top 200 Jobs (2012)
1. Software Engineer 104. Airline Pilot
28. Civil Engineer 133. Fashion Designer
38. Nurse 137. High School Teacher
40. Physician 163. Police Officer
47. Accountant 173. Flight Attendant
60. Mechanical Engineer 185. Firefighter
73. Electrical Engineer 196. Newspaper Reporter
87. Attorney 200. Lumberjack
InformationWeek 5/15/12. Based on salary, stress levels, hiring outlook,
physical demands, and work environment (www.careercast.com) 4
Course Themes
1. Leadership of large software projects
Software as a product
Clients and their needs
Quality
Requirements and specification
Usability
Evolution
Project management
Personnel management
Economic, legal, and social factors
Course Themes
2. Large and very large systems
Software design
Software architecture
Object-oriented design
Dependable systems
Reliability
Verification
FAQs about software engineering
⚫ What is software?
⚫ What is software engineering?
⚫ What is the difference between software engineering
and system engineering?
⚫ What is a software process?
⚫ What is a software process model?
FAQs about software engineering
⚫ Complex complicated
Nailing Painting
Setting posts Cutting wood
[ 2 time units for unpainted; [ 5 time units for uncut wood;
[ 3 time units ] [ 2 time units ]
3 time units otherwise ] 4 time units otherwise ]
[ To answer, we need to bring the day names and the day numbers
into coordination, and for that we may need again a pen and paper ]
Software products
⚫ Generic products
• Stand-alone systems that are marketed and sold to
any customer who wishes to buy them.
• Examples – PC software such as editing, graphics
programs, project management tools; CAD
software; software for specific markets such as
appointments systems for dentists.
⚫ Customized products
• Software that is commissioned by a specific
customer to meet their own needs.
• Examples – embedded control systems, air traffic
control software, traffic monitoring systems.
13
Software
1. System software: such as compilers, editors, file management
2. Application software: stand-alone programs for specific needs.
3. Engineering/scientific software: such as automotive stress
analysis, molecular biology, orbital dynamics etc
4. Embedded software resides within a product or system. (key pad
control of a microwave oven, digital function of dashboard display in
a car)
5. Product-line software focus on a limited marketplace to address
mass consumer market. (word processing, graphics, database
management)
6. WebApps (Web applications) network centric software: remote
database and business applications.
7. AI software Robotics, expert system, pattern recognition game
playing
Software Engineering
• Software Engineering is the science and art of
building significant software systems that are:
1) on time
2) on budget
3) with acceptable performance
4) with correct operation.
1
6
Customer
Programmer
System-to-be
Environment
Software-to-be
User
1
7
4
0
2
5 3
8 6
9
Communication link
Bank’s
remote
ATM machine
datacenter
Bank
customer
2
1
Bookkeeper
Speakerphone Safe
Safe keeper
Phone
Window clerk
Datacenter
liaison
Dispenser
Bank’s
remote
datacenter
Customer
Why Study Software Engineering?
22
2
3
⚫ System to be developed
⚫ Actors
• Agents external to the system
⚫ Concepts/ Objects
• Agents working inside the system
⚫ Use Cases
• Scenarios for using the system
2
5
1
4 2
7 5 3
8 6
0 9
Waterfall Method
Requirements
Design
Implementation
Testing
Waterfall
method Deployment &
Maintenance
System and
software design
Implementation
and unit testing
Operation and
maintenance
Evolutionary Process Model
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
Spiral Process Model
Determine ob jectiv es
Ev aluate altern atives
alternatives and id en tify, resolve risk s
cons traints Risk
analys is
Risk
analys is
Risk
analys is Opera-
Prototyp e 3 tional
Prototyp e 2 protoyp e
Risk
REVIEW analysis Proto-
ty pe 1
Requirements plan Simulations, models, b en ch marks
Life-cycle plan Concept o f
Operation S/W
requirements Prod uct
design Detailed
Requirement design
Develop ment
plan valid ation Code
Design Unit tes t
Integration
and test p lan V&V Integr ation
Plan next p has e test
Accep tance
Serv ice test Develop, v erify
next-level p rod uct
3
4
Software Measurement
⚫ What to measure?
• Project (developer’s work),
for budgeting and scheduling
• Product,
for quality assessment
3
5
Course schedule
Week Lesson
1 Introduction —
2 The Software Lifecycle
3 Project Management
4 Requirements Collection
5 Waterfall lifecycle model
6 Iterative model
7 Agile model
8 Modeling Objects and Classes
9 UML
10 Software Architecture
11 User Interface Design
12 Software Metrics
13 Software Quality
Software Validation
Team Projects
⚫ Project Ideas:
Real life idea
⚫ No more than two (2) groups working on the same
topic
⚫ Email your project idea ASAP, before proposal is due,
for feedback
⚫ Y.fouad@alexu.edu.eg
4
5
Project Deliverables
Item Due week
1. Proposal 2