Interactive Powerpoint_How to Master effective communication
Lect 01
1. IT – 3901-3
Software Engineering
for BS(IT)
Lecture 1: Introduction
Hareem Aslam
Hareem.aslam@pucit.edu.pk
Punjab University College of Information Technology (PUCIT)
2. 2
Course Objectives
Importance and need of software engineering
To discuss software development models appropriate for the development
and maintenance of software products
To introduce basic project management concepts
To impart comprehensive knowledge regarding software development
lifecycle
To demonstrate, with justification, an appropriate set of tools to support the
development of a range of software projects
3. Scope of Software
Engineering:
Definition Motivation and Need, Software characteristics and
Applications.
Software Process: Intro to SDLC, Software Process Models.
Project Management
Concepts
Essentials, 4P’s(Product, People, Project, Process).
Software Measurement
concepts:
Project, process and product and software Quality metrics.
Software Cost Estimation techniques
Project Scheduling: Gantt chart, Critical Path Method.
Requirement Engineering: Definition, Requirement Elicitation, Requirement Traceability ,
Requirement Analysis and Specification.
Course Outline
4. 4
Course Outline
Software Designing: elementary concepts, data design, software Architecture,
Functional Independence, Interface Design, Component-level
Design, Coding Standards.
Software Testing: Fundamentals, Verification & Validation, Testing Plan, Testing
Techniques, White Box Testing and Black Box Testing, Test Case
Design, Unit Testing, Integration Testing, Validation Testing,
System Testing, Debugging practices
13. Problems in software development
Common issues
The final software does not fulfill the needs of the
customer
Hard to extend and improve: if you want to add a
functionality later its mission impossible
Bad documentation
Bad quality: frequent errors, hard to use, ...
More time and costs than expected
22. Software Engineering: Basic Definitions
22
Software:
A product that is built by computer professionals that
encompasses programs that execute within a computer of
any size.
The textbook description of software is
Instructions that when executed provide desired function and
performance
Data structures that enable the programs to adequately
manipulate information
23. 23
Software Engineering Defined
Engineering:
A set of practices followed to build a product using the
knowledge of Basic Science. For example, mechanical
engineering and electrical engineering use the knowledge of
Physics.
Software Engineering:
It’s a process, a collection of methods (practice) and an array
of tools that allow professionals to build high quality computer
software.
24. Software Engineering
IEEE [IEEE93]: Software Engineering:
(1) The application of systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software; that is, the application of engineering to software
25. Software Engineering
Objective is to produce software that is:
On-time: is deliver at the established date.
Reliable: does not crash.
Complete: good documentation, fulfill customer needs.
26. Nature of Software
“Software is developed or engineered; it is not manufactured
in the classical sense”
“Software doesn’t wear out”
Why software deteriorate?(due to changes)
Software is complex
Software is expensive
Software is risky
Component based construction.
Well Engineered Software
26
27. Failure curve for hardware
(bathtub curve)
S/W characteristics different from H/W
( high failure rate in the beginning,
then drop to steady state, then
cumulative effects of dust, vibration,
abuse occurs).
28. 28
Failure curve for software
(every failure indicate error in design)
S/W characteristics different from H/W
29. Software poses challenges
How do we ensure the quality of the software
that we produce?
How do we meet growing demand and still
maintain budget control?
How do we upgrade an aging "software
plant?"
How do we avoid disastrous time delays?
How do we successfully institute new
software technologies?
29
30. Software Application Domains
System software
Application software
Scientific software
Embedded software
Legacy software
Web/Mobile Apps
AI software
30
Provides platform for other s/w to run e.g, OS, compiler
Serve a particular purpose e.g, payroll s/w, MS word
Solve scientific problems like Genetic analysis
Induce human like intelligence in machines e.g, Robotics
Run on browser or mobile
Provide limited features and functionalities e.g,
Microwave ovens
Very old & traditional software MS-DOS
31. Attributes of a good software
What is a well Engineered Software?
Product
Characteristics
Description
Maintainability Software should be written in such a way that it may evolve to meet the changing
needs of customers. This is a critical attribute because software change is an
inevitable consequence of a changing business environment.
Dependability Software dependability has a range of characteristics, including reliability, security
and safety. Dependable software should not cause physical or economic damage
in the event of system failure.
Efficiency Software should not make wasteful use of system resources such as memory and
processor cycles. Efficiency therefore includes responsiveness, processing time,
memory utilization, etc.
Usability Software must be usable, without undue effort, by the type of user for whom it is
designed. This means that it should have an appropriate user interface and
adequate documentation.
33. Professional and Legal Responsibility
Organizations put trust in software developers:
Competence: Software that does not work effectively can destroy an
organization.
Confidentiality: Software developers and systems administrators may
have access to highly confidential information (e.g., trade secrets,
personal data).
Legal environment: Software exists in a complex legal environment
(e.g., intellectual property, obscenity).
Acceptable use and misuse: Computer abuse can paralyze an
organization (e.g., the Internet worm).
33
34. 34
Legacy Software
Developed decades ago and have been
continually modified to meet changes
Issues
Non existent documentation
Inextensible code
Test cases and results missing
Poorly managed changed history
35. 35
Software Myths
Management
We have standards
We have new computers
We’ll add more people to catch up
I outsourced it, I’m done
Customer
We have general objectives, let’s start
Change is easily accommodated
36. 36
Software Myths
Practitioner
We’ll write it and be done
I can’t assess quality until it is running
The only deliverable is the working code
Software engineering is about meaningless
documents