Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering--Introduction

Similar presentations


Presentation on theme: "Software Engineering--Introduction"— Presentation transcript:

1 Software Engineering--Introduction

2 Course Administration
Syllabus, grading, schedule--class + lab--will all be reachable at: Contact information: C. Purdy 3. Java--to be learned in lab--you will develop basic skills, “expert” status not required 4. teams--3-4 per team (TURN IN SURVEY please) 5. project--most will be done in lab 6. passing 493/495: you must pass both classes; if you fail one, you will receive an F in both; otherwise you will receive a separate grade in each of these classes 7. grading: | 495—explained on web pages 8. cell phones--for each call you get in class, you lose 3 points on your final grade 9. Electronic communication (text messages, laptops, etc.): NOT ALLOWED in lecture as these distract from class discussions 10. Reading assignments: please read BEFORE class & be ready to discuss in class (there may be quizzes for these) Group work / individual work: we will do a lot of each--follow rules for each assignment.

3 Course Themes The lectures and assignments in this course will focus on developing knowledge and skills for: effective teamwork project management software development "lifelong learning" In this course we will be concentrating on the process of developing software, not on technical skills in specialized areas such as database management, wireless computing, etc. The skills we will learn can also be applied to hardware projects and to mixed hardware / software projects.

4 People, Product, Process--> Project
what is "software engineering"?: the "art" of building and maintaining software systems "…software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user’s needs.” Schach, Object-Oriented and Classical Software Engineering, 5th ed., Mc-Graw-Hill 2002, p. 4

5 People, Product, Process--> Project
Importance of “fault-free” … Software bugs can be lethal. The 2003 North America blackout was triggered by a local outage that went undetected due to a race condition – 55 million people were without power Smart ship USS Yorktown was left dead in the water in 1997 for nearly 3 hours after a divide by zero error Y2K problem … similarly problem … many Unix systems calculate the time in seconds since 1 January 1970, and store this figure as a 32-bit signed integer, for which the maximum possible value is (2,147,483,647).

6 People, Product, Process--> Project
"…software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user’s needs.” Schach, Object-Oriented and Classical Software Engineering, 5th ed., Mc-Graw-Hill 2002, p. 4 components of software system construction (“4 P’s”): people product process project

7 Software Life Cycle

8 People (Stakeholders)—Roles, Goals, Functions
Role Responsibility Customer High level requirements, project scope User What tasks must system carry out? What is level of expertise? Software salesperson Get requirements; delivery dates, cost Business Manager Organize, track work Technical Manager Manage technical issues Developer Design, implement, test Technical Writer Documentation, manuals Goals / Functions – conflicts?

9 Questions to Think About
some points to ponder: "software crisis"--systems become more and more complex: --what can we automate? --how can we verify/ test such complex systems? "hardware/software" boundary --how can we do "co-design"? --where is the boundary? types of software systems --how do important application-specific systems differ? --what impact do differences have on development? --which systems will be most important in the coming years?

10 Important System Types
Some Common System Types—what is the same/different? Databases Communication systems Entertainment systems Web-based applications Medical systems Manufacturing / transportation systems Simulation programs to support engineering and science Parallel/distributed applications Embedded systems Intelligent systems / robots - Utility software for computer systems (compilers, e.g.) Utility software for general users (spreadsheets, e.g.)

11 References

12 Dilbert

13 Dilbert – Powerpoint Poisoning

14 Mythical Man-month La Brea Tar Pits

15 “Mythical Man-Month”

16 Why is Managing Programming Hard?

17 Architect --conceptual integrity
System Architect Architect --conceptual integrity Process Model --have a plan and follow it III. Productivity – develop strategies that enhance productivity

18 System Architect 18 18

19 Separate Architecture, Implementation

20 Process Model

21 Productivity

22 Welcome to class – (and… turn in your surveys!)
What did we do today? Welcome to class – (and… turn in your surveys!) It’s a “process course” -- teamwork, methodology, lifelong learning ALL in the context of good code development The 4 P’s -- people, product , process, project Plethora of models … plan, do, fix Fred Brooks , et. al – Mythical Man Month


Download ppt "Software Engineering--Introduction"

Similar presentations


Ads by Google