The real exam that is, the real measure
of what you have learned doesnt
happen, indeed cant happen, in the
classroom. Evidence of what you have
learned really happens out there in daily
practice, and the exam typically lasts not
for two hours a
1.2 What is Software Engineering?
The process of solving customers problems
by the systematic development and evolution
of large, high-quality software systems within
cost, time and other constraints
Solving customers problems
This is the goal
Software Engineering and the
Coined in 1968
People began to realize that the principles of
engineering should be applied to software development
Engineering is a licensed profession
In order to
Short-Term vs. Long-Term Quality
Does the software meet the customers immediate
Is it sufficiently efficient for the volume of data we have
Customers future needs
Requirements and specification
Defining the problem
Obtaining input from as many sources as possible
Organizing the information
Writing detailed i
(continued.) Directing Being a technical leader Reviewing and approving decisions made by others Building morale and supporting staff Monitoring and controlling Co-ordinating the work with managers of other projects Reporting Continually strivi
It explicitly embraces prototyping and an iterative
approach to software development.
Start by developing a small prototype.
Followed by a mini-waterfall process, primarily to gather
Then, the first prototype is reviewed.
Principle 1: Divide and conquer.
To make a better estimate, you should divide the project up
into individual subsystems.
Then divide each subsystem further into the activities that
will be required to develop it.
Next, you make a series of
Hierarchical manager-subordinate structure: Each individual reports to a manager and is responsible for performing the tasks delegated by that manager. Suitable for large projects with a strict schedule where everybody is well-trained and has a
Principle 4: Be sure to account for differences when
extrapolating from other projects.
Different software developers
Different development processes and maturity levels
Different types of customers and users
Different schedule demands