Dr. Naveed Ahmad: Software Engineering I

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 25

Dr.

Naveed Ahmad

Software Engineering I
Introduction
Objective
• To familiarize students to the fundamental
concepts, techniques, processes, methods and tools
of Software Engineering,
• To help students to develop basic skills that will
enable them to construct software of high quality
– software that is reliable, and that is reasonably
easy to understand, modify and maintain
• To foster an understanding of why these skills are
important
Topics Description
1 Introduction to Lay out of the course and overall introduction of the
the Course and discipline of Software Engineering and what we will
Software cover in the course.
Engineering

2 Software General introduction of processes and software


Processes & engineer processes. Discussion of different process
Software Process models and their practical implications. These process
Models models include Waterfall model, evolutionary models
and incremental models.

3 Software Process Software process models will be completed in the first


Models lecture of this week. Analysis phase of software
(continued); engineering will be introduced.
Analysis modeling

4 Scenario based Analysis modeling approaches (Object oriented


modeling analysis; Flow oriented analysis).Topics will include
requirement gathering using use case diagrams,
Activity diagrams, Swim lane diagrams.
5 Flow oriented Data flow diagrams, Control flow diagrams,
modeling processing narratives

6 Behavioral State diagrams, Sequence diagrams


modeling
7 Class Diagrams How to create initial domain model and how to
develop conceptual class diagram. Usefulness of
domain model.
8 Software Design General Introduction of Object Oriented Design
techniques and methods
9 Software Discussion of need of explicitly defining software
Architecture architecture and its benefits. What are important
determinant of selection of certain architecture or
architecture style. Cost and benefit analysis of well
know architectural style
10 Source Code What are coding standards how essential they are?
Management Discussion of software configuration management
process
11 Software Testing What is software testing process, what methods, tools
and techniques are use to verify and validate the
software. How software testing process is distributed
over entire life cycle of software development.

12 Software What happen between software is deployed till the


Maintenance time it is retired. How software evolution occurs and
how it is managed.
13 Software Quality What is software quality, how can we ensure that
software we develop is of acceptable quality. Software
quality assurances imperatives.
14 Software Business Business of software is fast become a major GNP
and Ethics producer. Many rules and regulation are there to
guide software industry. How business and regulation
software engineering practices. (Special Reading)
Motivation
Software can have huge impact in
any aspect of our society
Where can we find software?
Some popular ones…
Some popular ones…
And even in…
Conclusion

Software is almost everywhere!!!


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
http://www.projectcartoon.com
But

that never
happens?

right?
Wrong!
Ariane 5 Flight 501
• Cause: design errors in the software
• http://www.youtube.com/watch?v=kYUrqdUy
EpI
Conclusion
• Programming is NOT enough!

It is not enough to do your best: you must Know


what to do, and THEN do your best. -- W.
Edwards Deming
And Since…
A clever person solves a problem.
A wise person avoids it.
- Albert Einstein
Solution
Software Engineering
1) The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software; that is
the application of engineering to software.
2) The study of approaches as in (1)
-- IEEE Definition (1993)
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.
Recommended Books
• Text Books
– Roger S. Pressman, Software Engineering,
A Practitioner’s Approach, Latest Edition,
2005.
– Ian Sommerville, Software Engineering,
2000.

You might also like