cs4 542 software engineering n.
Skip this Video
Loading SlideShow in 5 Seconds..
CS4/542- Software Engineering PowerPoint Presentation
Download Presentation
CS4/542- Software Engineering

Loading in 2 Seconds...

play fullscreen
1 / 30

CS4/542- Software Engineering - PowerPoint PPT Presentation

  • Uploaded on

CS4/542- Software Engineering. Software Design and Development Required Text -- Code Complete by Steve McConnell (Focuses on the problems of designing programs that WORK!) Recommended Text -- UML Distilled Second Edition by Martin Fowler. Software Engineering. CSE 4/542A

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'CS4/542- Software Engineering' - jenibelle-perez

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs4 542 software engineering
CS4/542- Software Engineering
  • Software Design and Development
  • Required Text -- Code Complete by Steve McConnell
  • (Focuses on the problems of designing programs that WORK!)
  • Recommended Text -- UML Distilled Second Edition by Martin Fowler
software engineering
Software Engineering
  • CSE 4/542A
  • Lec; MWF 2:00-2:50, 4 Knox
  • A1: F 11:00-11:50, 216 NSC
  • A2: R 15:30-16:20, 322 Clemens
  • Recitations meet irregularly, they are team meeting times.
  • TA -- Joshua Kershner
helene g kershner
Helene G. Kershner
  • Assistant Chairman
  • Office: 209 Bell Hall
  • Office Hours
  • To be determined
  • By Appointment
  • Login name: kershner@cse.buffalo.edu
course environment
Course Environment
  • CSE4/542 is a Team-based course.
  • “Real-world” simulation
  • Real project for a Customer
  • Writing course
  • “Programming” course
  • Programming Languages & Experience designing Algorithms
  • Senior/Graduate Course
  • Consider yourself -- Computer Professionals
  • Effective Communicator
  • Consider yourself an experienced Programmer
software design and development
Software Design andDevelopment

better known as:


software engineering1
Software Engineering

The body of theory and practical techniques involved in the process of developing large scale software

why software engineering se to answer these
Why Software Engineering (SE)? To Answer these:
  • Why does it take so long to get programs finished?
  • Why are costs so HIGH?
  • Why can’t we find all the errors before we release software to our customers?
  • Why do we have such difficulty measuring progress as software is being developed?
software is like entropy
“Software is like Entropy,

It is difficult to grasp, weighs nothing and obeys the Second Law of Thermodynamics;

i.e., It ALWAYS increases.”

programming is
Programming is:

" a young person's skill. It requires intense concentration. To do a good job, you have to have your mind wrapped around the whole program. It's very easy to get distracted. You do things and forget about other things and end up with bugs. It's like running a marathon. You have to be constantly focused on the goal." NY Times

we do more than program
We do more than PROGRAM!

We DESIGN and DEVELOP software to solve problems.

writing software design
Writing Software (Design):

" is figuring out the real problem people are trying to solve and the best way to solve the problem, which is not always the way they suggest."

software design
Software Design

Software Development is Technology in Crisis!

Writing Large-Scale Software is Problematic!

the central debate
The Central Debate

Is the creation of software

  • an art,
  • a science, or
  • a discipline ???
what is software engineering in 1969 nato conference
What is Software Engineering? In 1969 NATO Conference:

"the establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines."

what is software engineering
What is Software Engineering?

"fabrication that takes away the uniqueness and magic of programming."

designing software is difficult
Designing software is difficult.

The larger the project, the more difficult the solution.

what is software engineering1
What is Software Engineering?
  • Software Engineering is "the systematic approach to the development, operation, maintenance, and retirement of software." IEEE Glossary
  • Software is " computer programs, procedures, rules and possibly associated documentation and data pertaining to the operation of a computer system."
what is software engineering2
What is Software Engineering?
  • Software Engineering is " the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed on time and within cost estimates."(Fairley)
there is a crisis in technology
There is a crisis in Technology!

1) How does one design large-scale software?

2) We have an Aging Software Plant.

aging software
Aging Software
  • Across the nation, and the world, software is AGING!
  • AND-- Little is done to rewrite and redesign the software!


  • " The application STILL works?"
  • "It is not 'economical' to commit the resources to make them better!"
what is the software crisis
What is the Software Crisis?
  • What does it "look like"?
software crisis
Software Crisis?
  • Hardware sophistication has outpaced our ability to build software that can tap hardware's potential.
  • Our ability to build new programs cannot keep pace with the demand for new programs.
  • Our ability to maintain existing programs is threatened by poor design and inadequate resources.
software crisis1
Software Crisis?
  • Our inability to complete current work on time and within budget; -- means -- needed maintenance and new development efforts pile up.
  • Our techniques for managing software development projects are usually inadequate. Products are often late, inefficient, expensive, or unsatisfactory to users.
software crisis2
Software Crisis?

Some believe:

  • Programmers cannot even begin to use the tools that are available
  • Programmers cannot be trusted to test their own programs adequately
why software engineering
Why Software Engineering?
  • Why does it take so long to get programs finished?
  • Why are costs so high?
  • Why can't we find all errors before we give the software to our customers?
  • Why do we have difficulty in measuring progress as software is being developed?

The primary challenge of the new century will be to improve the quality of computer-based solutions, while simultaneously reducing the time required to “create”them.

- these “solutions” are those implemented with software!