SOLUTIONS RATED A+
✔✔Software Engineering Benefits - ✔✔reliable, economical, efficient, feasible
increasing reliance => need trustworthy, fast systems
cheaper in long run to use SWE methods
most costs = changing sw after gone into use
Don't practice as students
✔✔SW Project Failure - ✔✔Due to increasing system complexity
Larger, more complex systems -> demands change
Customer base requires quick solutions for larger and more complex problems
New capabilities previously thought impossible
✔✔Software Different? - ✔✔Developed/engineered rather than manufactured
Doesn't "wear out" given computer and supporting system
Moving toward component-based construction = "take off shelf" - most sw is custom-
built
✔✔"Good" SW - ✔✔Maintainability
Dependability
Efficiency
Acceptability
✔✔Maintainability - ✔✔cost stems from here
✔✔Dependability - ✔✔accurate and secure from unwanted changes
✔✔Efficiency - ✔✔functional while minimizing CPU and mem use
✔✔Acceptability - ✔✔meet customer specifications
✔✔Common SW Activities - ✔✔SW Specification
SW Development
SW Validation
SW Evolution
✔✔SW Specification - ✔✔customers and engineers define sw to be produced +
constraints on operation
✔✔SW Development - ✔✔sw is designed and programmed: coding + testing (mostly at
unit level)
✔✔SW Validation - ✔✔sw is checked to ensure is acceptable
, ✔✔SW Evolution - ✔✔sw modified to reflect customers' changing and market reqs
bug fixes, new system and functionalities
✔✔SW Engineering Diversity: 2 Types of SW Systems - ✔✔Stand-alone
Interact w/ other systems
✔✔SW Engineering Diversity - ✔✔No universal set of sw techniques applicable to all sw
systems due to diff req
methods and tools depedn of type of app, customer reqs, and team background
✔✔Summary - ✔✔all aspects of sw production
Quality Goals: maintainability, dependability, security, efficiency, and acceptability
Parts of SW Processes: specification, development, validation, and evolution
Fundamental notions are universally applicable to all sys dev while no standard across
dev
✔✔Software Process - ✔✔structured set of activities required to develop a sw system
✔✔SW Process includes: - ✔✔Specification
Design and Implementation
Validation
Evolution
✔✔SW Process Model - ✔✔an abstract representation of a process
description of a process from some particular perspective
✔✔Specification - ✔✔defining what the system should do
✔✔Design and Implementation - ✔✔defining the organization of the system and
implementing the system
✔✔Validation - ✔✔checking that it does what the customer wants
✔✔Evolution - ✔✔changing the system in response to changing customer needs
✔✔Plan-Driven Process - ✔✔All process activities are planned in advance and progress
is measured against this plan
a.k.a prescriptive processes
✔✔Agile Process - ✔✔Planning incremental and easier to change process to reflect
changing customer reqs