alyce brady, kalamazoo college software engineering friday, week 4
TRANSCRIPT
Alyce Brady, Kalamazoo College
Software Engineering
Friday, Week 4
Alyce Brady, Kalamazoo College
Evolution of Software Engineering
• Single-person projects:
“Back of the envelope” design followed by coding, debugging
• Multiple-person projects:
More formal design, identify modules, code modules, group debugging of whole project
Alyce Brady, Kalamazoo College
Engineering =
cost-effective solutions
to practical problems
by applying scientific knowledge
in building things
in service of mankind
Science
Production Engineering
Commercial
Craft
Mary Shaw, Carnegie Mellon University
Alyce Brady, Kalamazoo College
Evolution of Software Engineering
• Improved quality:
– formal design (e.g., structured or object-oriented design)– identify modules– develop a test plan based on the design– code modules– develop test plan of individual module based on code– test modules in isolation– test integrated whole
Alyce Brady, Kalamazoo College
Why Are All These Steps Necessary?
Writing a program is much easier than
writing a programming system, which is much easier than
writing a programming system product which is• documented thoroughly• usable in many environments• robust in its operations
F. Brooks estimated that each is at least 3 times more expensive than the previous.
Alyce Brady, Kalamazoo College
Why Software Engineering?
Barry Boehm has estimated that specification errors repaired in later stages of software development can cost as much as
100 times
more to fix than if caught at specification time.
Alyce Brady, Kalamazoo College
Evolution of Software Engineering
Software Lifecycle
– Requirements Analysis– System Specification– Design– Implementation (programming)– Unit Testing– Integration Testing
– Maintenance (fixing problems, adding enhancements)
Alyce Brady, Kalamazoo College
Waterfall Lifecycle
Requirements
System Spec.
Design
Code, Unit Test
Integration Test
Alyce Brady, Kalamazoo College
“Over-the-Wall” Lifecycle
Implementation Unit Testing Integration
Requirements System Spec. Design
Alyce Brady, Kalamazoo College
Modified Waterfall Lifecycle
Requirements
System Spec.
Design
Code, Unit Test
Integration Test
Alyce Brady, Kalamazoo College
Whirlpool Lifecycle
Req. Sys.Spec.
Design
CodeUnit Test
Integration
Alyce Brady, Kalamazoo College
Levels of Abstraction
– Requirements Analysis– System Specification
– Design
– Implementation (programming)
Alyce Brady, Kalamazoo College
Types of Testing
• “Black box” testing– based on Requirements Analysis, System Specification– test plan developed before design; run as part of
integration testing
• “Gray box” testing– based on Detailed Design– test plan developed before implementation; run as part
of integration testing (some may be part of unit testing)
• “White box” testing– based on Implementation (code)– unit testing
Alyce Brady, Kalamazoo College
Levels of Abstraction
– Requirements Analysis– System Specification
– Design
– Implementation (programming)– Unit Testing
– Integration Testing
– Maintenance (fixing problems, adding enhancements)
Alyce Brady, Kalamazoo College
Object Oriented Programming
• Based on modeling from the real world.
• It’s a way of thinking about a problem abstractly using real-world concepts, rather than computer concepts.
• JavaScript is object-based but not completely object-oriented.
Alyce Brady, Kalamazoo College
Object-Oriented
• Organize software as a collection of discrete objects that have both behavior and information.
• Objects then interact with each other to perform their tasks.
• Objects have values (or information) and operations (or behaviors).
Alyce Brady, Kalamazoo College
Object-Oriented
• The object values could be name or size.
• The object operations could be changing or displaying the values.
• The values and operations are grouped together to make a class.
Alyce Brady, Kalamazoo College
Object-oriented Example
• Class: Car• Attributes (or values)
– Color– Make– Model
• Operations:– TurnRight– TurnLeft– Accelerate– Brake– Repair
• Object - Mike’s car is a new blue, Mazda 626 Car.
• Mike’s car then has values of color (blue), a make (Mazda), a model (626).
• Mike’s car then can do operations like TurnLeft, Accelerate, Brake and TurnRight.
Alyce Brady, Kalamazoo College
In Class Exercise
• Design a class that describes a fish.
– What attributes would a fish have?
– What operations could a fish do?
• Create a new fish with attributes of its own and design a short series of actions the fish might do.