16
CS1001 CS1001 Lecture 11 Lecture 11

CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

CS1001CS1001

Lecture 11Lecture 11

Page 2: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

OverviewOverview

Software EngineeringSoftware Engineering Design MethodologiesDesign Methodologies Software OwnershipSoftware Ownership

Page 3: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software 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

Page 4: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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)

Page 5: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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)

Page 6: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

““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)

Page 7: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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

Page 8: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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

Page 9: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

The Development The Development PhasePhase

Page 10: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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)

Page 11: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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)

Page 12: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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)

Page 13: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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

Page 14: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

Figure 4.11:Figure 4.11: The insertion sort algorithm The insertion sort algorithm expressed in pseudocodeexpressed in pseudocode

Page 15: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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

Page 16: CS1001 Lecture 11. Overview Software Engineering Software Engineering Design Methodologies Design Methodologies Software Ownership Software Ownership

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