0% found this document useful (0 votes)
54 views

Week 1 Software Engineering

The document provides an introduction and overview of a Software Engineering I course. The objective is to familiarize students with fundamental software engineering concepts, techniques, processes, methods and tools to develop high-quality software. Topics covered include software processes and models, analysis modeling, design techniques, software architecture, testing, maintenance, quality assurance, and business/ethics. The motivation discusses the pervasiveness of software and common problems in development like not meeting needs, being difficult to improve or maintain, and exceeding costs/timelines. Software engineering aims to produce software that is delivered on time, reliable, complete with documentation, and fulfills customer needs.

Uploaded by

Hassam Shahid
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Week 1 Software Engineering

The document provides an introduction and overview of a Software Engineering I course. The objective is to familiarize students with fundamental software engineering concepts, techniques, processes, methods and tools to develop high-quality software. Topics covered include software processes and models, analysis modeling, design techniques, software architecture, testing, maintenance, quality assurance, and business/ethics. The motivation discusses the pervasiveness of software and common problems in development like not meeting needs, being difficult to improve or maintain, and exceeding costs/timelines. Software engineering aims to produce software that is delivered on time, reliable, complete with documentation, and fulfills customer needs.

Uploaded by

Hassam Shahid
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 25

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://
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