Professional Documents
Culture Documents
Software Engineering Reviewer
Software Engineering Reviewer
devastating effects.
Importance of Software Engineering
QUALITY – kailangan quality, hindi bad quality • European Space Agency spent 10 years and $7
billion to produce Ariane 5.
• Over budget – hindi sakto sa budget yung Example 3: 1992, London Ambulance Service
total nung software
• Considered the largest ambulance service in
• Unreliable – pag mali yung mga nalagay sa the world.
software like yung sources
• Overloaded problem.
• Difficult to maintain – di na mamaintain yung
software, di nauupdate on time • It was unable to keep track of the ambulances
and their statuses. Sending multiple units to
• Performed poorly - di nagana ng maayos, some locations and no units to other locations.
kulang sa test?
• Generates many exceptions messages.
• 46 deaths.
Software errors….the cost
CUSTOMIZED OR BBESPOKE PRODUCTS
pg.7 - Theory
- Fundamentals
Software Engineering
Systems Engineering
Debugging.
MODELS Testing.
Waterfall Approach
DELIVERY - Businesses are more responsive Software has become vital in our everyday life
(supporting software needs to evolve as Software programs are large complicated beasts
rapidly); software needs to be delivered in
shorter time without compromising quality. - NT started out small. Today not one
TRUST - Software is a part of many aspects of single person can grasp all of NT.
our lives (work, study, leisure); Software needs A model recognize that Software Engineering is
to demonstrate that it can be trusted by users. more than just programming
Avoids bureaucracy
A paradigm that adds discipline and order to - Limited feedback increases risk
software development - A requirement change can have a major
cost downstream
Provides a formal mechanism to clarify, track,
and modify the product requirements
throughout the product life cycle BOEHM’S SPIRAL MODEL
Provide a guideline for engineers to use in the
product life cycle
Often borrowing from one or more model is Controlling kernel stack usage is
necessary always hard
So take these models with a grain of salt and SOFTWARE ENGINEERING REQUIREMENTS
use only those parts that apply to your situation
Two words that bear repeating “Risks” and
“Constraints”
THE NT EXPERIENCE Specifying requirements
Daily builds - What makes up a requirement
- Incremental and clean builds - What is not in a requirement
- Catch build errors - Ways of specifying requirements
- Without daily builds entropy would rule - One person’s requirement is usually
someone else’s design
Dog food
Requirements change
Keep it realistic
Expect unintended side affects (i.e., customers It is an iterative process, a good requirements
will use the system in ways you can never writer bridges the gap between customer and
imagine) implementer
Languages and tools for prototyping The customer to test usage scenarios