View
217
Download
0
Embed Size (px)
Citation preview
CS1001CS1001
Lecture 11Lecture 11
OverviewOverview
Software EngineeringSoftware Engineering Design MethodologiesDesign Methodologies Software OwnershipSoftware Ownership
AnnouncementsAnnouncements
Homework Pickup: Fri. 2-3pm in Homework Pickup: Fri. 2-3pm in TA Room (or on Monday)TA Room (or on Monday)
Midterm: Mar 24Midterm: Mar 24thth, in class, in class Apr 19Apr 19thth: Final Paper due: Final Paper due May 3May 3rdrd: Technical Project: Technical Project Final (Projected): Wed, May 12Final (Projected): Wed, May 12thth
4:10pm-7pm 4:10pm-7pm
GoalsGoals
Understand the basics of the Understand the basics of the typical software development typical software development cyclecycle
Design MethodologiesDesign Methodologies Understand Introductory Understand Introductory
Algorithm Analysis (evaluate how Algorithm Analysis (evaluate how good/bad an algorithm is)good/bad an algorithm is)
AssignmentsAssignments
Brookshear: Ch 6.1,6.2; Ch 4 Brookshear: Ch 6.1,6.2; Ch 4 (Read)(Read)
Read linked documents on these Read linked documents on these slides (slides will be posted in slides (slides will be posted in courseworks)courseworks)
““Learn to Program in Learn to Program in 24 Hours”24 Hours” Building large, critical software systems Building large, critical software systems
is an engineering disciplineis an engineering discipline Challenges:Challenges:
– In traditional engineering, you can use “off the shelf” In traditional engineering, you can use “off the shelf” parts (interchangeable parts). Software has tried parts (interchangeable parts). Software has tried repeatedly to mimic this… somewhat successfullyrepeatedly to mimic this… somewhat successfully
– Tolerances: Mechanical systems can fail, but in doing Tolerances: Mechanical systems can fail, but in doing so they rarely wreak complete havoc on their so they rarely wreak complete havoc on their surroundings. A software crash surroundings. A software crash often often can bring down can bring down an operating system or cluster of computersan operating system or cluster of computers
– Metrics: How do you evaluate whether software is Metrics: How do you evaluate whether software is performing well? (refer to previous lecture on performing well? (refer to previous lecture on usability)usability)
ParallelsParallels
Software is a fundamentally different Software is a fundamentally different engineering discipline, engineering discipline, butbut software software systems still must be reliable.systems still must be reliable.
We have PE (Professional Engineering) We have PE (Professional Engineering) certifications for Engineers, MLEs, the certifications for Engineers, MLEs, the BAR, Architecture licenses, yet no BAR, Architecture licenses, yet no standardized software licensestandardized software license
Once methods and metrics Once methods and metrics established, software engineering can established, software engineering can become a more structured fieldbecome a more structured field
Iterative Software Iterative Software DevelopmentDevelopment
Continually build and test your workContinually build and test your work Similar to how one might undergo a Similar to how one might undergo a
physical engineering projectphysical engineering project
The Development The Development PhasePhase
TrendsTrends
The waterfall model of developmentThe waterfall model of development Throwaway vs evolutionary programmingThrowaway vs evolutionary programming Extreme programming (enforced Extreme programming (enforced
teamwork)teamwork)
Figure 4.10:Figure 4.10: Sorting the list Fred, Alice, David,Sorting the list Fred, Alice, David,Bill, and Carol alphabetically Bill, and Carol alphabetically
(continued)(continued)
Figure 4.10:Figure 4.10: Sorting the list Fred, Alice, David,Sorting the list Fred, Alice, David,Bill, and Carol alphabetically Bill, and Carol alphabetically (continued)(continued)
Figure 4.10:Figure 4.10: Sorting the list Fred, Alice, Sorting the list Fred, Alice, David, David, Bill, and Carol alphabeticallyBill, and Carol alphabetically
Figure 4.11:Figure 4.11: The insertion sort algorithm The insertion sort algorithm expressed in pseudocodeexpressed in pseudocode
Figure 4.19:Figure 4.19: Graph of the worst-case Graph of the worst-case analysis analysis of the insertion sort of the insertion sort algorithmalgorithm
LicensesLicenses
Buy the software for unlimited Buy the software for unlimited useuse
Lease the software as a serviceLease the software as a service GPL (General Public License) and GPL (General Public License) and
other free licensesother free licenses