Introduction To Software Engineering
Introduction To Software Engineering
Lecture – 01
19th September 2019
1
Course Information
• Introduction to Software Engineering---
– CS 2113
– 4 Credit hours
– Pre-requisite
• Any Programing Course
• Assessment Criteria (tentative)
– Project ------25%
– Quiz ------ 10%
– Midterm -----20%
– Class activity ----15%
– Final ------ 30%
*Please note: The mentioned criteria can be changed
2
Course Information
• Text Books
– Software Engineering 9th Edition by Sommervill,
Addison Wesley, 2011
– Software Engineering: A Practitioner’s Approach,
7th Edition by Roger Pressman, McGraw-Hill, 2009
– “The Unified Software Development Process”, by
Jacobson, Booch, and Rumbaugh, 2000
– Papers from scholar.google
3
Course Information
• Course Objectives
– Understand basic concepts of software engineering, various
software process models and how to choose between them
– Understand all phases of software engineering that includes
• Requirement Engineering (elicitation , analysis , specification , validation
• Design (architecture, modules and interface design)
Implementation (coding practices)
• Testing (process and techniques)
• Project Management
– Putting software process in practice and creating essentials
artifacts of all phases.
– Work in Teams
4
By the End of Lecture
Understand what software engineering is?
Understand why software engineering is
important?
Know answers to key questions related to the
software engineering discipline.
5
6
Activity
Virtually all countries
depend on complex
Think about all the devices and systems computer-based
.systems
that you encounter in your everyday life
…which have software controlling them
Projects were:
• Late.
• Over budget.
• Unreliable.
• Difficult to maintain.
• Performed poorly.
9
Software Crisis
Example 1: 2009,Computer glitch delays flights
Saturday 3rd October 2009-London, England (CNN)
• Dozens of flights from the UK were delayed Saturday after a
glitch in an air traffic control system in Scotland, but the
problem was fixed a few hours later.
• The agency said it reverted to backup equipment as
engineering worked on the system.
• The problem did not create a safety issue but could cause
delays in flights.
• Read more at:
http://edition.cnn.com/2009/WORLD/europe/10/03/uk.flight
s.delayed
11
Software Crisis
Example 2: Ariane 5 Explosion
Software Crisis
Example 3: 1992, London Ambulance Service
• Overloaded problem.
• 46 deaths.
13
Therefore…
A well-disciplined approach to software
development and management is
necessary. This is called engineering.
14
Software Engineering
What is Software?
Programs
Software
System
Documentation
Data Documentation
User
Documentation
17
Types of Software
• Generic products.
• Stand-alone systems that are marketed and sold to any customer who wishes to buy them.
• Examples – PC software such as graphics programs, project management tools; CAD
software; software for specific markets such as appointments systems for dentists.
• The specification of what the software should do is owned by the software developer and
decisions on software change are made by the developer.
Systems Engineering:
Interdisciplinary engineering field (computer, software, and process eng.).
Focuses on how complex engineering projects should be designed and managed.
What are the attributes of good software? Good software should deliver the required functionality and
performance to the user and should be maintainable, dependable
and usable.
What is the difference between software System engineering is concerned with all aspects of computer-based
engineering and system engineering? systems development including hardware, software and process
engineering. Software engineering is part of this more general
process.
20
Frequently asked questions about software
engineering
Question Answer
What are the key challenges facing software Coping with increasing diversity, demands for reduced delivery
engineering? times and developing trustworthy software.
What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are
testing costs. For custom software, evolution costs often exceed
development costs.
What are the best software engineering While all software projects have to be professionally managed
techniques and methods? and developed, different techniques are appropriate for
different types of system. For example, games should always be
developed using a series of prototypes whereas safety critical
control systems require a complete and analyzable specification
to be developed. You can’t, therefore, say that one method is
better than another.
What differences has the web made to The web has led to the availability of software services and the
software engineering? possibility of developing highly distributed service-based
systems. Web-based systems development has led to important
advances in programming languages and software reuse.
21
22
Component-Based Software
Waterfall approach Iterative development
Engineering CBSE
Depends on:
The process used, and
The type of software being developed.
Roughly 60% of costs are development costs, 40% are testing costs.
Cost distribution
Custom software development (Bespoke)
Waterfall Model
Software Model
Cost units 0 25 50 75 100
Cost distribution
Software development activity Specification Design Development Integration and testing
Iterative Development
0 25 50 75 100
Cost distribution
Generic software development
0 25 50 75 100
What is CASE?
Activity
What are the key attributes for..
Cardiac monitor in an ICU
Interactive game Banking system
unit
Players, score, scenes, Client accounts, stocks heart rate, temperature,
theme. bonds, money transfers. blood pressure.
31
References
IEEE Standards Collection: Software Engineering, IEEE standard 610.12-1990, IEEE 1993.