Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword or section
Like this
34Activity
×

Table Of Contents

0 of .
Results for:
No results containing your search query
P. 1
Software Engineering II

Software Engineering II

Ratings:

5.0

(3)
|Views: 8,412|Likes:
Published by Asif javed
Virtual University of Pakistan Handouts on Software Engineering-2, management related issues and solutions
Virtual University of Pakistan Handouts on Software Engineering-2, management related issues and solutions

More info:

Published by: Asif javed on Dec 09, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, DOC, TXT or read online from Scribd
See More
See less

03/12/2013

pdf

text

original

 
Software Engineering-II (CS605)
Software Engineering II
Fakhar Lodhi
© Copy Right Virtual University of Pakistan
1
 
Software Engineering-II (CS605)
Lecture No. 1Introduction to Software Engineering
This course is a continuation of the first course on Software Engineering. In order toset the context of our discussion, let us first look at some of the definitions of softwareengineering.Software Engineering is the set of processes and tools to develop software.
Software Engineering is the combination of all the tools, techniques, and processes that used in software production.
Therefore Software Engineering encompasses all those thingsthat are used in software production like:
Programming Language
Programming Language Design
Software Design Techniques
Tools
Testing
Maintenance
Development etc.So all those thing that are related to software are also related to software engineering.Some of you might have thought that how programming language design could berelated to software engineering. If you look more closely at the software engineeringdefinitions described above then you will definitely see that software engineering isrelated to all those things that are helpful in software development. So is the case with programming language design. Programming language design is one of the major successes in last fifty years. The design of Ada language was considered as theconsiderable effort in software engineering.These days object-oriented programming is widely being used. If programminglanguages will not support object-orientation then it will be very difficult toimplement object-oriented design using object-oriented principles. All these effortsmade the basis of software engineering.
Well-Engineered Software
Lets talk something about what is well-engineered software. Well-engineeredsoftware is one that has the following characteristics.
It is reliable
It has good user-interface
It has acceptable performance
It is of good quality
It is cost-effective© Copy Right Virtual University of Pakistan
2
 
Software Engineering-II (CS605)
Every company can build software with unlimited resources but well-engineeredsoftware is one that conforms to all characteristics listed above.Software has very close relationship with economics. When ever we talk aboutengineering systems we always first analyze whether this is economically feasible or not. Therefore you have to engineer all the activities of software development whilekeeping its economical feasibility intact.The major challenges for a software engineer is that he has to build software withinlimited time and budget in a cost-effective way and with good qualityTherefore well-engineered software has the following characteristics.
Provides the required functionality
Maintainable
Reliable
Efficient
User-friendly
Cost-effectiveBut most of the times software engineers ends up in conflict among all these goals. Itis also a big challenge for a software engineer to resolve all these conflicts.
The Balancing Act!
Software Engineering is actually the balancing act. You have to balance many thingslike cost, user friendliness, Efficiency, Reliability etc. You have to analyze which oneis the more important feature for your software is it reliability, efficiency, user friendliness or something else. There is always a trade-off among all theserequirements of software. It may be the case that if you try to make it more user-friendly then the efficiency may suffer. And if you try to make it more cost-effectivethen reliability may suffer. Therefore there is always a trade-off between thesecharacteristics of software.These requirements may be conflicting. For example, there may be tension among thefollowing:
Cost vs. Efficiency
Cost vs. Reliability
Efficiency vs. User-interfaceASoftware Engineer is required to analyze these conflicting entities and tries to strike a balance.© Copy Right Virtual University of Pakistan
3

Activity (34)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
sbr11 liked this
chanala1 liked this
chanala1 liked this
prince_book123 liked this
warezisgr8 liked this
akbisoi1 liked this
adddata liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->