Understanding Software Engineering: Characteristics, Myths, and Paradigms

Classified in Computers

Written at on English with a size of 4.28 KB.

Software Characteristics:
1.Software is a logical rather than a physical system element. 2.Software is developed or engineered rather than manufactured. 3.Software does not wear out. How do we measure software reliability? 4.Most software is customer-built rather than assembled from existing components.
  Software is often termed as a high-cost, low-quality product.

Software Crisis:

1.Software projects always run overtime and over budget. 2.Software is delivered with a high number of defects. 3.Software maintenance has been extremely difficult and awfully expensive. 4.It is difficult to keep pace with the growing demand for more software.

Software Myths:Management Myths:

1.Why should we change our approach to software development? We are doing the same kind of programming now that we did ten years ago. 2.If we fall behind schedule, we can add more programmers and catch up with the schedule.

Customer Myths:

1.A general statement of objectives is sufficient to begin writing programs.
2.Project requirements continually change, but change can be easily accommodated since software is flexible.

Practitioner’s Myths:

1.There weren't really any methods for analysis, design, and testing that work. I will just start to code. 2.Once we write the program and make it work, our job is done. 3.Until I get the program running, I have really no way to assess its quality. 4.Once software is in use, maintenance is minimal.

Traditional View of Software:

Software is an art as opposed to engineering. The application of an engineering approach to large-scale software development.

Software Engineering: A Definition:

The establishment and use of sound engineering principles to obtain economically reliable software that works efficiently on real machines – Fritz Bauer.

Software Engineering Paradigm:

1.There is no single best approach to a solution for the software crisis.
2.By combining comprehensive methods for all phases in software development: better tools for automating these methods, more powerful building blocks for software implementation, better techniques for software quality assurance, an overriding philosophy for coordination, control, and management, we can achieve a discipline for software development – a discipline called “software engineering”.
Software Engineering is everything you can think of that will increase software productivity and assure on-time development/delivery of large-scale software under budget with high quality.
Professor E. J Dijkstra said that “Software Engineering” is an attempt to teach those who cannot program to program – the key lies in the development/choice of an appropriate Programming Language.

Scope of Software Engineering: (not limited to this list)

1.Software team management 2.Software process and process management 3.Software project management 4.Approaches/techniques for effective execution of software development phases.
Tools and software development environment – Syntax-directed editor, pretty printer, and
MS Visual Studio development environment, UNIX SCCS source code control system, CASE.
Specification/modeling techniques and tools.
Development of programming paradigms and associated programming languages.
Programming complexity, standard, and anomaly detection.
Software modeling and measurements
Software quality assurance approaches and standards
Software organization effectiveness/maturity – CMM (capability maturity model)

Entradas relacionadas: