Software Engineering 1
Software Engineering 1
SOFTWARE ENGINEERING I
GRADING POLICY (TENTATIVE)
Every student has A as of today
Your future grade will be determined using the following criteria
Theory
10% Sectional-1
15% Sectional-2
50% Final
15% Assignments & Project
10% Quizzes
2
COURSE DETAILS
Books
Somerville, Ian. Software Engineering, 9th Edition, Addison-Wesley, 2006
R.S. Pressman, Software Engineering: A Practitioner's Approach, 6th ed., McGraw-Hill
Book Co., NY, 2005
Policies
Attendance policy
Mobile phone usage
Assignment submission
Quizzes
Fines
Plagiarism policy
3
LECTURE OUTCOMES
4
COURSE OUTLINE
Software Engineering I Software Engineering II
This Semester Next Semester
Evolving Role of Software
Software Process Models
Software Configuration management
Requirements Analysis
Use-Case Fundamentals
UML Notations
Requirements
Actor-Goal Lists Design and
Class Diagrams
Analysis and Implementation
Sequence Diagrams
Architecture
Architecture
Architectural Patterns
Decision Tables
User Interface Design
Facts and Fallacies of Software
Engineering
WHAT IS (NOT) S.E.?
Not just software programming
Individual vs. team
Not just a process
Field that studies several different processes
1-6
WHAT IS SOFTWARE ENGINEERING?
1-8
MICROSOFT POWERPOINT
Size: large
Interactiveness: high
Requirements: frequent new features
Reliability: moderate
Security: low (at least used to be)
Portability: high
Cost: high
1-10
ONLINE SHOPPING SOFTWARE
Size: moderate
Interactiveness: high
Requirements: frequent new features
Reliability: moderate
Security: high
Portability: low
Cost: low
1-11
YOUR EXAMPLE
Size:
Interactiveness:
Requirements:
Reliability:
Security:
Portability:
Cost:
1-12
SOFTWARE ENGINEERING
What is Software?
The programs, routines, and symbolic languages that control the
functioning of the hardware and direct its operation.
13
SOFTWARE ENGINEERING
What is Engineering?
14
SOFTWARE ENGINEERING
What is Software Engineering?
Software engineering is the application of a systematic,
disciplined, quantifiable approach to the development, operation,
and maintenance of software.
Software engineering encompasses a process, management
techniques, technical methods, and the use of tools.
15
WHY LEARN SOFTWARE ENGINEERING?
16
WHAT WILL YOU LEARN?
1. Understanding, clarifying and documenting the
requirements for a customer
17
SOFTWARE PRODUCTS (TYPES)
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.
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.
18
FREQUENTLY ASKED QUESTIONS ABOUT
SOFTWARE ENGINEERING
Question Answer
19
FREQUENTLY ASKED QUESTIONS ABOUT
SOFTWARE ENGINEERING
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 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
techniques and methods? managed 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
software engineering? and the possibility of developing highly distributed service-
based systems. Web-based systems development has led
to important advances in programming languages and
software reuse.
20
ESSENTIAL ATTRIBUTES OF GOOD
SOFTWARE
Product characteristic Description
21
APPLICATION TYPES
Data collection systems
These are systems that collect data from their environment using
a set of sensors and send that data to other systems for
processing.
Systems of systems
These are systems that are composed of a number of other
software systems.
22
SOFTWARE ENGINEERING AND THE WEB
The Web is now a platform for running application and
organizations are increasingly developing web-based systems
rather than local systems.
Web services allow application functionality to be accessed over
the web.
Cloud computing is an approach to the provision of computer
services where applications run remotely on the ‘cloud’.
Users do not buy software but pay according to use.
23
HARDWARE VS. SOFTWARE
Hardware Software
Manufactured Developed/Engineered
Wears out Deteriorates
Built using components Custom built
Relatively simple Complex
24
MANUFACTURING VS. DEVELOPMENT
Once a hardware product has been manufactured, it is difficult or
impossible to modify. In contrast, software products are routinely
modified and upgraded.
In hardware, hiring more people allows you to accomplish more
work, but the same does not necessarily hold true in software
engineering.
Unlike hardware, software costs are concentrated in design rather
than production.
25
SOFTWARE MYTHS
If we get behind schedule, we can add more programmers and catch up.
A general statement about objectives is sufficient to begin building programs.
Change in project requirements can be easily accommodated because
software is flexible.
26
CUSTOMER MYTHS
27
ASSIGNMENTS
Write down brief description of few software applications that
are being used at various organizations in Pakistan
(Deadline – 18th Feb)
Read Chapter 1 and be prepare for quiz
28
QUESTIONS?
29