Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS223: Software Engineering Lecture 2: Introduction to Software Engineering.

Similar presentations


Presentation on theme: "CS223: Software Engineering Lecture 2: Introduction to Software Engineering."— Presentation transcript:

1 CS223: Software Engineering Lecture 2: Introduction to Software Engineering

2 Objective After the end of the class students should be able to o Define software engineering o Explain different attributes of a good software o State different methods of software development o Identify different components of software development cost

3 What is software engineering? It is an engineering discipline that is concerned will all aspects of software production Software production consist of developed programs and associated documentation. Basic software activities o Software specification, o Development, o Validation and o Evolution.

4 Example: ATM Machine Understanding the money-machine problem: 4

5 How ATM Machine Might Work Domain model created with help of domain expert

6 Cartoon Strip : How ATM Machine Works

7 The Role of Software Engineering Customer Programmer A bridge from customer needs to programming implementation First law of software engineering Software engineer is willing to learn the problem domain (problem cannot be solved without understanding it first)

8 Software Development Process A set of activities whose goal is the development or evolution of software. Generic activities in all software processes are o Specification - what the system should do and its development constraints o Development - production of the software system o Validation - checking that the software is what the customer wants o Evolution - changing the software in responses to changing demands

9 Attributes of a Good Software Maintainability o Software must evolve to meet changing needs Dependability o Software must be trustworthy; e.g. reliability, security, safety. Efficiency o Software should not make wasteful use of system resources Usability o Software must accepted by the users for what it was designed. o Appropriate user interface & adequate documentation.

10 Legacy Software Many programs still provide a valuable business benefit Even though they are one or even two decades old. Software systems need to be continually updated if they are to remain useful to their customers. These programs must be maintained and this creates problems Because their design is often not amenable to change.

11 Legacy Software Why must it change? o Software must be adapted to meet the needs of new computing environments or technology. o Software must be enhanced to implement new business requirements. o Software must be extended to make it interoperable with other more modern systems or databases. o Software must be re-architected to make it viable within a network environment.

12 Software Evolution Continuing Change o A program that is used in a real-world environment changes o It become less and less useful in that environment Increasing Complexity o As an evolving program changes, its structure becomes more complex o Unless active efforts are made to avoid this phenomenon

13 Software Evolution Program Evolution o Program evolution is a self-regulating process o Measurement of system attributes  size,  time between releases,  number of reported errors etc. o Reveals statistically significant trends and in-variances

14 Software Evolution Conservation of Organizational Stability o Over the lifetime of a program,  The rate of development of that program is approximately constant  Independent of the resources devoted to system development

15 Software Evolution Implications o Change is inevitable, plan for it o Don’t attempt to make very big changes in a single increment o Adding staff to a project will have a limited effect on project recovery

16 Software Engineering Costs Distribution of costs in computing projects is changing o Software rather than hardware is the largest single cost item. Software costs more to maintain than it does to develop. For systems with a long life o Maintenance costs may be several times development costs Software engineering is concerned with o Cost-effective software development

17 Software Myths Affect managers, stakeholders, and practitioners Are believable because they often have elements of truth Invariably lead to bad decisions, Insist on reality as you navigate your way through software engineering

18 Management Myths ‘We already have books full of standards and procedures for building software. That will provide my people with everything they need to know’ ‘My people do have state-of-the-art software development tools. After all, we buy them the latest computers’ ‘If we get behind schedule we can add more programmers and catch up’ ‘If I decide to outsource the software project to a third party, I can just relax and let that firm build it’

19 Customer Myths ‘A general statement of objectives is sufficient to begin writing software - we can fill in the details later’ ‘Project requirements continually change but change can be easily accommodated because software is flexible’

20 Practitioner’s Myths ‘Once we write the program and get it to work our job is done’ ‘Until I get the program running I really have no way of assessing its quality’ ‘The only deliverable for a successful project is the working program’

21 Key Challenges Heterogeneity o Developing techniques for building software that can cope with heterogeneous platforms and execution environments Delivery o Developing techniques that lead to faster delivery of software Trust o Developing techniques that demonstrate that software can be trusted by its users.

22 Key Challenges An accompanying shift from a concern with Whether a system will work towards how well it will work. Components are selected and purchased ‘off the shelf’ (COTS) Development effort being refocused on configuration and interoperability

23 Thank you Next Lecture: Introduction to Development Models


Download ppt "CS223: Software Engineering Lecture 2: Introduction to Software Engineering."

Similar presentations


Ads by Google