Anda di halaman 1dari 34

Software Engineering I

Introduction
Lecture 1 Click to edit Master subtitle style 14th February, 2013 Dr. Gul-E-Saman

2/20/13

What is a Software?

Computer programs and associated documentation

2/20/13

Application Types

Stand-alone applications

These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network.

Interactive transaction-based applications


Applications that execute on a remote computer and are accessed by users 2/20/13 from their own PCs or terminals. These

Application Types...

Batch processing systems

These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. These are systems that are primarily for personal use and which are intended to entertain the user.

Entertainment systems

2/20/13

Application Types...

Data collection systems

These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing. These are systems that are composed of a number of other software systems.

Systems of systems

2/20/13

Software Engineering

Software Engineering is the science and art of

building significant software systems that are:


on time within budget with acceptable performance with correct operation.

2/20/13

Software Engineering ...

The economies of all developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for professional software development. Software engineering expenditure 2/20/13 represents a

Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software Computer science theories are currently insufficient to act as a complete foundation or basis for 2/20/13 software engineering

Difference between Software Engineering and Computer Science

System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural 2/20/13 design, integration of the finished

Difference between Software Engineering and System Engineering

CASE(Computer Aided Software Engineering)

Software systems which are intended to provide automated support for software process activities.

CASE systems are often used for method support

Upper-CASE

Tools to support the early process activities of requirements and design

Lower-CASE 2/20/13

Software Costs

Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain, than it does to develop. Software engineering is concerned with cost-effective software development.
2/20/13

Software Products

Generic products:

Stand-alone systems which are produced by a development organization and sold on the open market to any customer. Systems which are commissioned by a specific customer and developed specially by some contractor.

Customized products:

2/20/13

Software Product Attributes


Maintainability Dependability Efficiency Usability

2/20/13

Importance of Product Characteristics

The relative importance of these characteristics depends on the product and the environment in which it is to be used. In some cases, some attributes may dominate

In safety-critical real-time systems, key attributes may be dependability and efficiency.

2/20/13

Costs tend to rise exponentially if

Efficiency Costs
Cost

Ef ficiency
2/20/13

The Software Process

Structured set of activities required to develop a software system


Specification Design Validation Evolution

Activities vary depending on the organization 2/20/13

Image Source: http://www.google.com.pk/imgres?um=1&hl=en&client=firefox-a&tbo=d&rls=org.mozilla:enUS:official&biw=1366&bih=608&tbm=isch&tbnid=Nt1oCttEitAOQM:&imgrefurl=http://4hdwall.com/hd-funnycartoon-wallpapers/&docid=H_33skWw1797QM&imgurl=http://4hdwall.com/wpcontent/uploads/2012/08/Cartoons-Wallpapers-For2/20/13 Kids.jpg&w=1024&h=768&ei=dJwbUYrPD9OZhQfmxoGADA&zoom=1&ved=1t:3588,r:24,s:0,i:222&iact=rc&d

Engineering Process Model

Specification: Set out the requirements and constraints on the system. Design: Produce a model of the system. Manufacture: Build the system. Test: Check the system meets the required specifications.

2/20/13

Software Engineering and the Web

The Web is now a platform for running application and organizations are increasingly developing webbased systems rather than local systems. Web services allow application functionality to be accessed over the web. Cloud computing is an approach to 2/20/13 provision of computer services the

Web Software Engineering

Software reuse is the dominant approach for constructing web-based systems.

When building these systems, you think about how you can assemble them from existing software components and systems.

Web-based systems should be developed and delivered incrementally.


It 2/20/13

is now generally recognized that it is

Web-based Software Engineering

Web-based systems are complex distributed systems but the fundamental principles of software engineering discussed previously are as applicable to them as they are to any other type of system. The fundamental ideas of software engineering, discussed in the previous section, apply to web-based software in the same way that they 2/20/13

Software Engineering is Different

Normally, specifications are incomplete. Very blurred distinction between specification, design and manufacture. No physical realization of the system for testing. Software does not wear out maintenance 2/20/13 does not mean component

Challenges in Software Engineering

Coping with legacy systems ( old, valuable systems must be maintained and updated): coping with increasing diversity and coping with demands for reduced delivery times. Heterogeneity: systems are required to operate as distributed across 2/20/13 networks that include a different type

Systems engineering

Specifying, designing, implementing, validating, deploying and maintaining socio-technical systems. Concerned with the services provided by the system, constraints on its construction and operation and the ways in which it is used.
2/20/13

The system engineering process model because Usually follows a waterfall


of the need for parallel development of different parts of the system

Little scope for iteration between phases because hardware changes are very expensive. Software may have to compensate for hardware problems.

Inevitably involves engineers from different disciplines who must work together A lot of scope for misunderstanding 2/20/13 here. Different disciplines use a different

The systems engineering process


Re q u ir m e n ts e d e f in itio n S y ste m d e sig n S u b - sy ste m d eve lo p m e n t S y ste m in sta llaio n t S y ste m d e c o m m issio n in g S y ste m evo lu tio n

S y ste m in te g atio n r
2/20/13

Professional Responsibility

Software engineers should not just be concerned with technical considerations. They have wider ethical, social and professional responsibilities. No clear rights and wrongs about many of these issues:

Development of military systems Whistle blowing

2/20/13

Balancing Act!

Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface A software engineer is required to analyse these conflicting situations and strike a balance
2/20/13

Ethical Issues

Confidentiality Competence Intellectual property rights Computer misuse

2/20/13

ACM/IEEE Code of Ethics


The professional societies in the US have cooperated to produce a code of ethical practice. Members of these organisations sign up to the code of practice when they join. The Code contains eight Principles related to the behaviour of and decisions made by professional software engineers, including 2/20/13 practitioners, educators, managers,

Why the code of ethics?

Computers have a central and growing role

commerce, industry, government, medicine, education, entertainment and society at large.

Software engineers are those who contribute by

direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance and testing of software systems.

Because 2/20/13

of their roles in developing

Summary

Software Application Types Software Engineering

Challenges

Software Product Attributes Systems Engineering Code of Ethics


2/20/13

Sources:

http://www.google.com.pk/url? sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved =0CDcQFjAC&url=http%3A%2F%2Fcc.ee.ntu.edu.tw %2F~farn%2Fcourses%2FSE %2Fch2.ppt&ei=l3YbUZvXDYmyhAfn_oDADA&usg=AFQjCNE uIVNwL-wD-NxtpCP9hL2vuCSowA http://heavenofit.blogspot.com/2011/09/softwareengineeringian-sommerville7th.html http://www.google.com.pk/url? sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFj AA&url=http%3A%2F%2Fplg.uwaterloo.ca%2F~holt%2Fcs %2F446%2F08%2Fslides%2F3introduction.ppt&ei=7XcbUezSIMeKhQeMh4GQCA&usg=AF QjCNGhpOSwRRJrzCodM3Nzj6SUD8Kp4g&bvm=bv.4226180 2/20/13

Thank You
2/20/13

Anda mungkin juga menyukai