The Big Picture of Software Development Glenn Blank
The Big Picture of Software Development Glenn Blank Professor of Computer Science Lehigh University
National Trends n The pipeline for women and minorities entering computer science (CS) and information technology (IT) is shrinking, at a time when the projected demand for IT professionals is growing n n “We must take direct action to attract and retain more women to computing at all points in the pipeline (i. e. , K-12, undergraduate, faculty and industry)…” n n n Camp, 1997, 1999, Cohoon, 2002 Camp 1999 Do you agree? What does this situation mean for you? That’s why there’s Launch-IT!
Creating Software is like Building a House n 1. 2. 3. 4. n n n When building a house, the first thing you do is: Buy some lumber and nails to frame it Dig a hole for the foundation Get a loan from a bank to pay for it None of the above First, contractor figures out what the customer wants! Next, architect designs a blueprint Next… well, why don’t you figure it out?
How is creating software like building a house? Figure out what customer wants: Requirements n Sketch a plan: Conceptual design n Blueprint: Architectural design n Get a loan: Cost analysis/risk assessment n Subcontractors: Team with specialists; outsource n Build it: Implementation n Inspect and fix problems: Testing n Maintenance and remodeling: Maintenance (new releases and versions) n
Multimedia about software engineering
Objects n Software objects model real-world objects n n For example, trees, cars, ATMs Objects are “natural” n We interact with them all the time (vs. lines of code or functions)
Objects and Classes Objects are categorized by their type, or class n An object is an instance of a class n A software object has a current state and a set of possible behaviors n n Attributes describe properties of a class of objects n A car has an make, model, color, etc. n Methods perform behaviors of a class of objects n A car can start, accelerate, reverse, park, etc.
Objects and Classes example n Object: Sue (Class: person) Attributes: height (5’), hair. Color (blond), eye. Color (blue) n Methods: get. Height, get. Hair. Color, get. Eye. Color, set. Height, set. Hair. Color, set. Eye. Color n n Object: Mike (Class: person) Attributes: height (6’), hair. Color (black), eye. Color (hazel) n Methods: get. Height, get. Hair. Color, get. Eye. Color, set. Height, set. Hair. Color, set. Eye. Color n n What do object instances have in common?
Multimedia about Classes and objects Everyone gets a CIMEL login CIMEL means Constructive Inquiry-Based Multimedia E-Learning
JVM n Java programming language compiler (javac) n n A program that translates Java language source code into the Java Virtual Machine (JVM) byte codes JVM – Java Virtual Machine A program that interprets and executes byte codes n Can interpret and execute Java byte codes on any computer platform (PC, Mac, Unix) n
Integrated Development Environment n IDE n An environment where programmers develop software n Eclipse is an industrial strength IDE n Dr. Java is a novice-oriented IDE
Object Oriented Software Design n Design a system as a set of classes n n n OO software encourages software reuse n n n Expresses as a class diagram Unified Modeling Language (UML) is a standard For example, reuse input/output, graphics classes Java comes with a large library of reusable classes Why is reuse a good idea? n n n Avoid re-inventing the wheel—cuts costs Lets developers focus on new things Reliability: reusable software gets tested more
- Slides: 14