Introduction to Software Engineering

  • Systematic Disciplined Quantifiable approach to development, operation, maintenance and retirement of Software (IEEE Definition)
  • 1968 – NATO Conference in Germany
  • Multi-person construction of multi version software (parnas)
  • A discipline that deals with the building of software systems that are so large that they are built by a team or teams of engineers (Ghezzi, Jhazayeri, Mandrioli)

Definitions:

A discipline that aims at producing fault- free software that is delivered on time within budget which meets the end- user’s requirements. Furthermore, it aims in producing easily modifiable software when the user needs change. (Schach)

Historical Aspects:

• 1967, a NATO group coined the term “Software Engineering”

• 1968 NATO Software Engineering Conference concurred that “Software production should be an engineering-like activity”.

• Using philosophies and paradigms of established engineering disciplines to solve “Software Crisis: that the quality of software was generally unacceptably low and that deadlines and cost limits were not being met”.

Scope of Software Engineering:

Economic Aspects

• Software Engineering v.s. Computer Science

• The computer scientist investigates several ways

to produce software, some good and some bad.

• But the software engineer is interested in only those techniques that make sound economic sense.

For example: A coding technique that can execute very efficiently but with higher maintenance cost may not be a good choice.

Maintenance Aspects

• Software Life Cycle / Software Process

• Requirements Phase

• Specification (Analysis) Phase

• Planning Phase

• Design Phase

• Implementation Phase

• Integration Phase

• Maintenance Phase (highest cost among all these phases)

• Corrective, Perfective, and Adaptive Maintenance

• Retirement

Scope of Software Engineering

Maintenance is so important, a major aspect of software engineering consists of techniques, tools, and practices that lead to a reduction in maintenance cost.

Approximate relative costs of the phases of the software life cycle.

12

Specification and Design Aspects

• Software professionals are humans, and humans can make error.

• The fact that so many faults are introduced early in the software life cycle, highlights another important aspects of software engineering, namely, techniques that yield better specifications and designs.

• For example, reducing specification and design faults by 10% will reduce the overall number of faults by 6-7%. Scope of Software Engineering

Team Programming Aspects

• Most software being developed and maintained by a team of software engineers

• Scope of software engineering must also include techniques for ensuring that teams are properly organized and managed.

• For example, team programming leads to interface problems among code components and communication problems among team members.

Several techniques have been suggested to help solve the software crisis.

~1975-1985: Structured Paradigm

• Structured Systems Analysis, Composite/Structured Design, Structured Programming, Structured Testing

• Lead to major improvements for software industry.

• But only good for small programs (say, 5,000-50,000 lines of codes)

• Not scale well with today larger programs (say, 500.000-5,000,000 LOC)

• Not so good in software maintenance aspects, (for instance, because of the separation of action-oriented and data-oriented in structured paradigm).

Object-Oriented Paradigm

• An object is a unified software component that incorporates both data and actions that operate of those data.

Software

  • Set of instructions that run on a piece of hardware
  • Programs + documentation + test drivers + analysis and design documents

How can you systematically develop software?

How do you make this process cost-effective?

Engineering

  • Process by which tradeoffs can be analyzed.
  • Optimization in one dimension might cause some other factor to be suboptimal.

Three Major dimensions

• Project Cycle time

• Cost

• Quality of the software

For a project that is already delayed, employing more number of people further delays the process

Characteristics of Software

Does not wear out

• However it becomes obsolete

Needs to be custom built

• Software ICs – reality?

Maintenance costs are high

Software productivity

• Average to expert programmer 25:1

Bug fixing cost is nonlinear Mythical Man-month (Fred Brooks)

  • Published in 1975, republished in 1995.
  • Marge programming projects suffer management problems different in kind than smaller ones, due to division of labour
  • Critical need is the preservation of conceptual integrity of the product itself
  • The difficulties that are inherent in software development
  • Nurturing great architects and designers

8 comments:

  1. I’m excited to uncover this page. I need to to thank you for ones time for this particularly fantastic read!! I definitely really liked every part of it and i also have you saved to fav to look at new information in your site. Free FUD Crypter

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. purchase views for youtube Today I thought it was about time that I discussed the importance in fact why it is absolutely critical to get your home based small business on YouTube. Why it is crucial to the success of your home business and in the near future how your entire marketing strategy will be dead without it!

    ReplyDelete
  4. https://twitchviral.com/ Flash games never cease to be enjoyable. Despite its simplicity, flash games manage to retain the very core of the entertainment that video games provide.

    ReplyDelete
  5. precision machining I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks!

    ReplyDelete
  6. Here at this site really the fastidious material collection so that everybody can enjoy a lot. buy crypter

    ReplyDelete
  7. Medical services gadgets and instruments that can be utilized for the therapy of infections are planned by engineers. A magnificent illustration of this engineering is prosthetics, which are redone for every patient.Cost Management

    ReplyDelete
  8. You are providing good knowledge. It is really helpful and factual information for us and everyone to increase knowledge. Continue sharing your data. Thank you.
    포항출장샵
    경산출장샵
    구미출장샵
    경주출장샵
    완도출장샵
    로로출장샵

    ReplyDelete