Presentation is loading. Please wait.

Presentation is loading. Please wait.

Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.

Similar presentations


Presentation on theme: "Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build."— Presentation transcript:

1 Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build reliable software that does no harm to other people. n Software engineers view "software" as being made up of the programs, documents, and data. n Software users are only concerned with whether or not software products meet their expectations and make their tasks easier to complete.

2 Important Questions for Software Engineers n Why does it take so long to get software finished? n Why are development costs so high? n Why can't we find all errors before we give the software to our customers? n Why do we continue to have difficulty in measuring progress as software is being developed?

3 Defining Software n Software is both a product (applications) and a vehicle for delivering a product (OS, network control, software tools/IDEs, etc.) n Software is developed/engineered not manufactured. n Software does not wear out, but it does deteriorate. n Currently, most software is still custom-built.

4 Software Application Types n System software n Application software n Embedded software n Engineering/Scientific software n Product software n Web Applications n Artificial intelligence software

5 New Software Challenges n Ubiquitous computing  Creating software to allow machines of all sizes to communicate with each other across vast networks n Net sourcing  Architecting simple and sophisticated applications that benefit targeted end-user markets worldwide n Open Source  Distributing source code for computing applications so customers can make local modifications easily and reliably n New economy  Building applications that facilitate mass communication and mass product distribution using evolving concepts

6 Legacy software n Many programs still provide a valuable business benefit, even though they are one or even two decades old. n These programs must be maintained and this creates problems because their design is often not amenable to change.

7 Software Evolution n Process by which programs change shape, adapt to the marketplace, and inherit characteristics from preexisting programs n Law of continuing change  Systems must be continually adapted or they become progressively unsatisfactory n Law of increasing complexity  As system evolves its complexity increases unless work is done to reduce the complexity

8 Software Evolution n Law of declining quality  System quality will appear to decline unless the system is rigorously maintained and adapted to environment changes n Feedback system law  System evolution processes must be treated as multi-level, multi-loop, multi-agent feedback systems to achieve significant improvement

9 Software Myths: n Management: standards exist, tools available, more programmers to catch up n Customer: general objectives ok, software can easily accommodate changes in requirements because it is flexible n Practitioner: done when program works, can’t quality assess non-running program, only deliverable is program, documentation slows us down

10 Software Myths  Still believed by many managers and practitioners  Insidious because they do have elements of truth  Every practitioner and manager should understand the reality of the software business.

11 Software Creation n Almost every software project is precipitated by a business need (e.g., correct a system defect, adapt system to changing environment, extend existing system, create new system) n Many times an engineering effort will only succeed if the software created for the project succeeds n The market will only accept a product that has the software embedded when it meets the customer's stated or unstated needs

12 What is Software Engineering?  Establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines (Bauer, 1972) => techniques/methods to develop large systems because must work in teams  Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them => training in notation, standards; communicate via documentation; standards: UML

13 Software Engineering n Software engineering is the establishment and application of sound engineering principles to obtain reliable and efficient software in an economical manner. n Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. n Software engineering encompasses a process, management techniques, technical methods, and the use of tools.

14 Engineering or Science? n Scientific view: study of phenomena that affect the production of software (identify new knowledge, invent) n Engineering view: concerned with developing quality software efficiently and economically (use proven existing techniques to solve everyday problems)

15 Software Engineering Problem Solving Aids: method/technique (guideline for activity) Exs: CMM, ERD, DFD, Review Methods set of tools for developing software Examples: Rational rose, TogetherSoft procedure (pre-selected methods and tools used together Exs. Structure A/D, OOP; defined within organization process (phases you go through) Examples: waterfall, spiral, prototyping, PSP

16 Factors behind Emergence of SE  Inability to predict time, effort, costs  Inability to deliver quality (defect free)  Changes in ratio of HW to SW costs  Important role of maintenance  Demand for more complex SW (average people can solve simple problems, so we look for more complex ones)  Distributed systems

17 What makes SW Development difficult?  Novelty of application  Communication  Sequential nature of development  Constraints on behavior add to complexity  Change is more difficult than it appears (ripple effects, different models)  Problems not well-defined  Desired qualities may not coincide


Download ppt "Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build."

Similar presentations


Ads by Google