Introduction to software engineering

Post on 11-May-2015

6.603 views 1 download

Tags:

Transcript of Introduction to software engineering

SOFTWAREENGINEERING

If you don't understand it, you can't program it.If you didn't measure it, you didn't do it.

Zhella Anne V. Nisperos

+Computer Programs

Documentation

Software isintangiblecomplexflexible

Software types

GenericCustomized

Software types

Software types

Stand- AloneInteractive transaction-based

Applicationtypes

Embedded Control Systems

Software types

Entertainment Systems

Applicationtypes

Systems for modeling and simulation

Batch Processing Systems

Software types

System of systems

Applicationtypes

Data Collection Systems

Software types

Real –time software

Software Areas(Roger Pressman)

System Software

Business software

Software typesSoftware Areas(Roger Pressman)

Engineering & Scientific Software

Personal Computer software

Embedded software

Software typesSoftware Areas(Roger Pressman)

Artificial Intelligence software

Web-based software

Software types

MaintainabilityDependability & Security

Essential Attributes of Good Software

EfficiencyAcceptability

Software types

UsabilityReliability

Essential Attributes of Good Software

Reusability

What is the Role of Software ?

The role of software engineering is to capture the customer’s business needs and specify the “blueprints” for the system so that programmers can implement it

Software Engineering

“Software Engineering is the application of a systematic, disciplined, quantifiable

approach to the development, operation, and maintenance of software.”

- IEEE’90

“Software Engineering is an act of applying a collection of techniques, methodologies

and tools that help with the production of a high quality software system,

…with a given budget, before a given deadline,

while change occurs.”

Techniques (Methods)

Methodologies

Tools

Formal procedures for producing results using some well-defined notation

Collection of techniques applied across software development and unified by a philosophical approach

Instrument or automated systems to accomplish a technique

Software Engineering:

A Multi-Disciplinary Discipline

A blend of many older science &

engineering disciplinesand new ones

Software Engineering Body of Knowledge

Computing Fundamentals

Algorithms and Data Structures

Computer Architecture

Operating Systems

Programming Languages

Mathematical Foundations

Software Product Engineering

Requirements Engineering

Software Design

Software Coding

Software Testing

Software Operations & Maintenance

Software Management

Project Process Management

Risk Management

Quality Management

Configuration Management

Dev. Process Management

Acquisition Management

Software Domains

Artificial Intelligence

Database Systems

Human-Computer Interaction

Numerical & Symbolic Comp

Computer Simulations

Real-Time Systems

Why is Software Engineering Difficult?

Because you need to know about…

11

software domain and

problem domain

Real World is informal

22

Software is formalthere is a precise statement of what needs to be programmed

Software Engineering deals only with the software itself

there is NO precise statement of what needs to be programmedSoftware Engineering includes discovering a solution for a real-world problem

Software Engineers

Software Engineer

Programmer

creates the design

creates the code

Software Engineer

Computer Scientist

Works in multiple application domains

Proves theorems about algorithms, designs languages, defines knowledge representation schemes

Has infinite time…

Has only 3 months...

Daily Software

Engineering Jobs/ Roles

Systems Analyst

Software Architect

Software Network Specialist

Software Programmer

Software Systems Administrator

Software Database Administrator

1

2

3

4

5

6

Webmaster

Software Security Engineer

Software Tester

Software Project Manager

Software Configuration Manager

Software Quality Manager

7

8

910

11

12

How MUCHare Software Engineers

Paid?

Software Engineering Skills

Communication“There are only 10 types of people in this world.

Those who know binary, and those who don’t.”

Feedback

Motivation

Analytical

Project Management Skills

Planning

Risk Assessment

Estimation

Activity 1:

List down the qualifications of a Software Engineer

Software Engineering Ethics

ConfidentialityCompetenceIntellectual Property Rights

Computer Misuse

Online Activity 2:

*Post links on news related to the stated issues of professional responsibility

*Read about Software Engineering Ethics and post link on news/issues related to one of the SE ethical principles

Software Development

Software Development is phased

RequirementsDesign

Construction

Testing

Operation & Maintenance

Types of Software Development

Methodologies

SSADMOOSDExtreme Programming DSDMNCC Method

AUPIntegrated MethodologyRUPSCRUMRAD

Waterfall ModelConcurrent Dev’t ModelPrototyping ModelIncremental ModelSpiral Model

REVIEW

Thank you!