Software Engineering (Week-1)
Software Engineering (Week-1)
Software Engineering (Week-1)
(Week-1)
USAMA MUSHARAF
MS-CS (Software Engineering)
LECTURER (Department of Computer Science)
FAST-NUCES PESHAWAR
COURSE CONTENT
Text Books
◼ Software Engineering, Sommerville I., 10th Edition, Pearson Inc.,
2014
◼ Software Engineering, A Practitioner’s Approach, Pressman R.
S.& Maxim B. R., 8th Edition, McGraw-Hill, 2015.
OBJECTIVE OF THIS COURSE
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
A clever person solves a
problem.
A wise person avoids it.
- Albert Einstein
SOLUTION
SOFTWARE ENGINEERING
SE HISTORY
Software is:
“Computer programs, procedures, and possibly
associated documentation and data pertaining to the
operation of a computer system”.
THE ROLE OF SOFTWARE ENGINEERING
A bridge from customer needs to programming implementation
Customer
Programmer
⦿ Maintainability
◼ Software must evolve to meet changing needs
⦿ Dependability
◼ Software must be trustworthy
⦿ Efficiency
◼ Software should not make wasteful use of system resources
⦿ Usability
◼ Software must be usable by the users for which it was designed
and much more....
WELL ENGINEERED SOFTWARE?
It is reliable
It is of good quality
It is cost-effective
WHAT ARE THE KEY CHALLENGES FACING SOFTWARE
ENGINEERING?
◼ Legacy systems
◼ Old, valuable systems must be maintained and updated.
◼ Heterogeneity
◼ Systems are distributed and include a mix of hardware and software.
◼ Delivery
◼ There is increasing pressure for faster delivery of software.
QUESTIONS ADDRESSED BY SOFTWARE ENGINEERING
⚫ Software Integration
◼ Coding
◼ Testing
SOFTWARE DEVELOPMENT
SOFTWARE DEVELOPMENT
SOFTWARE DEVELOPMENT
Construction
Management
SOFTWARE DEVELOPMENT
Construction
Construction activities are related to the development of
software.
❖ Requirement Gathering
❖ Design Development
❖ Coding
❖ Testing
SOFTWARE DEVELOPMENT
Management
Management activities are kind of umbrella activities that
are used to smoothly and successfully perform the
construction activities
◼ Definition: What?
◼ Development: How?
◼ Application domain
◼ Required functionality
◼ Required performance
◼ User interface
DEFINITION (CONT.)
◼ System analysis
◼ Project planning
◼ Allocate resources ◼ Allocate system
resources to
◼ Estimate costs
◼ Hardware
◼ Define work tasks
◼ Software
◼ Define schedule
◼ Users
DEVELOPMENT
SOFTWARE DESIGN
◼ User interface design
◼ High-level design
◼ Define modular components
◼ Define major data structures
◼ Detailed design/Low level Design
◼ Define algorithms and procedural detail
DEVELOPMENT (CONT.)
◼ Coding ◼ Integration
◼ New hardware
◼ Communication
Between customer and developer
Changing requirements
◼ 5 x cost during development
◼ up to 100 x cost during maintenance
◼ Hardware/software configuration
◼ Security requirements
◼ Real time requirements
◼ Reliability requirements
WHY IS SOFTWARE DEVELOPMENT DIFFICULT? (CONT.)
◼ Management issues
◼ Personnel characteristics
◼ Cost estimation
◼ Ability
◼ Scheduling
◼ Prior experience
◼ Resource allocation
◼ Communication skills
◼ Quality assurance
◼ Team cooperation
◼ Version control
◼ Training
◼ Contracts
MAJOR PROBLEMS IN SOFTWARE DEVELOPMENTS
SOFTWARE MYTHS
⦿ Management myths
Customer myths
◼ A general description of objectives enough to start
coding.
◼ Project requirements continually change, but change
can be easily accommodated because software is
flexible.
SOFTWARE MYTHS
Practitioner myths
◼ Once we write the program and get it to work, our
job is done.
◼ Until I get the program "running" I have no way of
assessing its quality.
◼ The only deliverable work product for a successful
project is the working program.
◼ Software engineering will make us create voluminous
and unnecessary documentation and will invariably
slow us down.
HAVE A GOO DAY!