the big picture of software development glenn blank professor of computer science lehigh university
TRANSCRIPT
The Big PictureThe Big Pictureof Software of Software
DevelopmentDevelopmentGlenn BlankGlenn Blank
Professor of Computer Professor of Computer ScienceScience
Lehigh UniversityLehigh University
National TrendsNational Trends The pipeline for women and minorities entering The pipeline for women and minorities entering
computer science (CS) and information technology computer science (CS) and information technology (IT) is shrinking, at a time when the projected (IT) is shrinking, at a time when the projected demand demand for IT professionals is growingfor IT professionals is growing Camp, 1997, 1999, Cohoon, 2002Camp, 1997, 1999, Cohoon, 2002
““We must take direct action to attract and retain We must take direct action to attract and retain more women to computing at all points in the more women to computing at all points in the pipeline (i.e., K-12, undergraduate, graduate, faculty pipeline (i.e., K-12, undergraduate, graduate, faculty and industry)…”and industry)…” Camp 1999Camp 1999
Do you agree? What does this situation mean for Do you agree? What does this situation mean for youyou?? That’s why there’s Launch-IT!That’s why there’s Launch-IT!
Creating Software is like Creating Software is like Building a HouseBuilding a House
When building a house, the first thing you do When building a house, the first thing you do is:is:
1.1. Buy some lumber and nails to frame itBuy some lumber and nails to frame it
2.2. Dig a hole for the foundationDig a hole for the foundation
3.3. Get a loan from a bank to pay for itGet a loan from a bank to pay for it
4.4. None of the aboveNone of the above First, contractor figures out what the First, contractor figures out what the
customer wants!customer wants! Next, architect designs a blueprintNext, architect designs a blueprint Next… well, why don’t you figure it out?Next… well, why don’t you figure it out?
How is creating software How is creating software like building a house?like building a house?
Figure out what customer wants: Figure out what customer wants: Requirements Requirements
Sketch a plan: Conceptual designSketch a plan: Conceptual design Blueprint: Architectural designBlueprint: Architectural design Get a loan: Cost analysis/risk assessmentGet a loan: Cost analysis/risk assessment Subcontractors: Team with specialists; Subcontractors: Team with specialists;
outsourceoutsource Build it: ImplementationBuild it: Implementation Inspect and fix problems: TestingInspect and fix problems: Testing Maintenance and remodeling: MaintenanceMaintenance and remodeling: Maintenance
(new releases and versions)(new releases and versions)
Multimedia about Multimedia about software engineeringsoftware engineering
Objects Software objects model real-world Software objects model real-world
objectsobjects For example, trees, cars, ATMsFor example, trees, cars, ATMs
Objects are “natural”Objects are “natural” We interact with them all the time We interact with them all the time
(vs. lines of code or functions)(vs. lines of code or functions)
Objects and Classes Objects are categorized by their type, Objects are categorized by their type,
or or classclass An object is an An object is an instanceinstance of a class of a class A software object has a current A software object has a current statestate
and a set of possible and a set of possible behaviorsbehaviors AttributesAttributes describe properties of a class describe properties of a class
of objects of objects A car has an make, model, color, etc.A car has an make, model, color, etc.
MethodsMethods perform behaviors of a class of perform behaviors of a class of objectsobjects
A car can start, accelerate, reverse, park, etc.A car can start, accelerate, reverse, park, etc.
Objects and Classes Objects and Classes exampleexample
Object: Sue (Class: person)Object: Sue (Class: person) Attributes: height (5’), hairColor (blond), eyeColor (blue)Attributes: height (5’), hairColor (blond), eyeColor (blue) Methods: getHeight, getHairColor, getEyeColor, Methods: getHeight, getHairColor, getEyeColor,
setHeight, setHairColor, setEyeColor setHeight, setHairColor, setEyeColor Object: Mike (Class: person)Object: Mike (Class: person)
Attributes: height (6’), hairColor (black), eyeColor (hazel)Attributes: height (6’), hairColor (black), eyeColor (hazel) Methods: getHeight, getHairColor, getEyeColor, Methods: getHeight, getHairColor, getEyeColor,
setHeight, setHairColor, setEyeColor setHeight, setHairColor, setEyeColor What do object instances have in common? What do object instances have in common? How are objects instances different?How are objects instances different?
Multimedia about Multimedia about Classes and objectsClasses and objects
Everyone gets a CIMEL Everyone gets a CIMEL loginlogin
CIMEL means CIMEL means Constructive Inquiry-Based Multimedia Constructive Inquiry-Based Multimedia
E-LearningE-Learning
JVMJVM Java programming language Java programming language compilercompiler
(javac)(javac) A program that translates Java language A program that translates Java language
source code into the Java Virtual Machine source code into the Java Virtual Machine (JVM) byte codes(JVM) byte codes
JVM – Java Virtual Machine JVM – Java Virtual Machine A program that interprets and executes A program that interprets and executes
byte codes byte codes Can interpret and execute Java byte codes Can interpret and execute Java byte codes
on any computer platform (PC, Mac, Unix)on any computer platform (PC, Mac, Unix)
Integrated Development Integrated Development EnvironmentEnvironment
IDEIDE An environment where An environment where
programmers develop software programmers develop software Eclipse is an industrial strength Eclipse is an industrial strength
IDEIDE DrJava is a novice-oriented IDEDrJava is a novice-oriented IDE
Object Oriented Software Design
Design a system as a set of classesDesign a system as a set of classes Expresses as a class diagramExpresses as a class diagram Unified Modeling Language (UML) is a standardUnified Modeling Language (UML) is a standard
OO software encourages software OO software encourages software reusereuse For example, reuse input/output, graphics classesFor example, reuse input/output, graphics classes Java comes with a large library of reusable classesJava comes with a large library of reusable classes
Why is reuse a good idea?Why is reuse a good idea? Avoid re-inventing the wheel—cuts costsAvoid re-inventing the wheel—cuts costs Lets developers focus on new thingsLets developers focus on new things Reliability: reusable software gets tested moreReliability: reusable software gets tested more