An introduction to software engineering
Upcoming SlideShare
Loading in...5
×
 

An introduction to software engineering

on

  • 569 views

An introduction to software engineering, based on the first chapter of "A (Partial) Introduction to Software Engineering

An introduction to software engineering, based on the first chapter of "A (Partial) Introduction to Software Engineering
Practices and Methods" By Laurie Williams

Statistics

Views

Total Views
569
Views on SlideShare
569
Embed Views
0

Actions

Likes
2
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

An introduction to software engineering An introduction to software engineering Presentation Transcript

  • An Introduction to Software Engineering Carlos G. Gavidia (cgavidia@acm.org)
  • Topics • Computer Science vs. Software Engineering. • Software Engineering and other Engineering disciplines. • Challenges of Software Engineering. • Software development processes.
  • An Introduction to Software Engineering WHAT’S SOFTWARE ENGINEERING?
  • Software: A definition “Software Systems are perhaps the most intricate and complex … of the things humanity makes.” -Fred Brooks
  • Software engineering • Has progressed very far in a short time: – 50 years ago, most programming were done by Scientists trying to solve mathematical problems. – Today, we build monstrous systems used everywhere. • But, software industry is in crisis: – A software project overshoots its schedule by a half. – Three quarters of all large systems are operating failures.
  • Computer Science: A definition “Computer science is a discipline that involves the understanding and design of computers and computational processes. In its most general form it is concerned with the understanding of information transfer and transformation. Particular interest is placed on making processes efficient and endowing them with some form of intelligence.” -CSAB
  • Engineering: A definition “The systematic and regular application of scientific and mathematical knowledge to the design, construction, and operation of machines, systems, and so on of practical use and, hence, of economic value. Particular characteristic of engineers is that they take seriously their responsibility for correctness, suitability, and safety of the results of their efforts. In this regard they consider themselves to be responsible to their customer (including their employers where relevant), to the users of their machines and systems, and to the public at large.” -Robert Baber
  • Software Engineering as Engineering • Practical use, economic value: – We need to determine the content and build the best product value. • Responsibility for correctness, suitability and safety: – The work you do could impact the safety, business and well being of the customer. • Regular application of scientific and mathematical knowledge: – Computer Science, psychology, economics and management
  • Software Engineering: A Definition “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” -IEEE
  • An Introduction to Software Engineering A PROCESS FOR MAKING SOFTWARE
  • Software Development Practices • Requirements engineering • High-level design • Low-level design • Coding • Integration • • • • Code reviews Testing Maintenance Project management • Configuration management
  • Software Development Practices • You will learn MANY software development practices. • You’ll find: – A practice is good for safety-critical software. – Another is better for small projects. • Engineering is about selecting the most appropriate method for a set of circumstances. • You can use the practices and build a software process with them.
  • Software Development Process The process by which user needs are translated into a software product. The process involves translating user needs into software requirements, transforming the software requirements into design, implementing the design in code, testing the code, and sometimes installing and checking out the software for operational use. Note: these activities might overlap or be performed iteratively - IEEE
  • Software process model Plan Driven The cost can be minimized by creating detailed plans and by constructing and inspecting architecture and design documents. Agile Time is spent planning and gathering requirements for small iterations throughout the entire lifecycle of the project.
  • An Introduction to Software Engineering MAKING SOFTWARE IS HARD
  • The programmer The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. -Frederick Brooks
  • Software Engineering Challenges • Tractable Medium – The constraints of physical medium can serve to simplify alternatives. • Changing requirements – It is hard for customers to express what they want in a product. • Schedule Optimism – We are an optimistic crew. • Schedule Pressure – Every product is late before it’s even started
  • Credits Based on:A (Partial) Introduction to Software Engineering Practices and Methods • By Laurie Williams • Available in: http://agile.csc.ncsu .edu/SEMaterials/C oursePack.pdf