SlideShare uma empresa Scribd logo
1 de 60
In this Module, we look at
  • what we mean by software engineering
  • software engineering’s track record
  • what we mean by “good software”
  • why systems approach is important
  • how software engineering has changed since
    the 1970s
Typical formal definitions of software engineering are:
  •
   - "the application of a systematic, disciplined,
  •
     quantifiable approach to the development,
  •
     operation, and maintenance of software".
  •
   - "an engineering discipline that is concerned with
  •
     all aspects of software production”
  •
   - "the establishment and use of sound engineering
  •
        principles in order to economically obtain
  software
  •
     that is reliable and works efficiently on real
  •
     machines"
•
   - “ is a theory and practice that an individual or a
  •
      group of software developers or software
  •
        engineers having the knowledge of computer
  and
  •
      computing to help solve problems especially
  •
       problems with which are related to a computer
  or
Other meanings of software engineering:
  •
      an existing computer system".
•
        As Dijkstra pointed out, the terms software
engineering and software engineer have, at times,
also been misused in a much wider sense,
particularly in America. The term has been used less
formally:
•
 - as the informal contemporary term for the broad
•
   range of activities that was formerly called
•
   programming and systems analysis
•
 - as the broad term for all aspects of the practice
of
•
   computer programming, as opposed to the theory
•
   of computer programming, which is called
 - as the term science; the advocacy of a specific
   computer embodying
•
•

•
      approach to computer programming, one that urges that
it
•
     be treated as an engineering discipline rather than an art
•
     or a craft, and advocates the codification of recommended
•
     practices in the form of software engineering
     methodologies.
•
            The discipline of software engineering
encompasses knowledge, tools, and methods for
defining software requirements, and performing
software design, software construction, software
testing, and software maintenance tasks.
•
      Software engineering also draws on knowledge
from fields such as computer engineering, computer
science,    management,      mathematics,    project
management,      quality   management,     software
ergonomics, and systems engineering.
•
     As of 2004, the U. S. Bureau of Labor Statistics
counts 760,840 software engineers holding jobs in
the U.S.; for comparison, in the U.S. there are some
1.4 million practitioners employed in all other
engineering disciplines combined. The term software
engineer is used very liberally in the corporate world.
Very few of the practicing software engineers
actually hold engineering degrees from accredited
universities.

•
         There are estimated to be about 1.5 million
practitioners in the E.U., Asia, and elsewhere SE
pioneers include Barry Boehm, Fred Brooks, C. A. R.
Hoare, and David Parnas.
•
 David Parnas has said that software engineering is, in fact, a
form of engineering.

Steve McConnell has said that it is not, but that it should be.
•




Donald Knuth has said that programming is an art and a
•


science.

The U.S. Bureau of Labor Statistics classifies computer
•


software engineers as a subcategory of "computer
specialists", along with occupations such as computer
scientist, programmer, and network administrator. The BLS
classifies all other engineering disciplines, including computer
hardware engineers, as "engineers".
•
 The U.K. has seen the alignment of the Information
Technology Professional and the Engineering
Professionals. Software engineering in Canada has
seen some contests in the courts over the use of the
title "Software Engineer
•
          Software is often found in products and
situations where very high reliability is expected,
even under demanding conditions, such as
monitoring and controlling nuclear power plants, or
keeping a modern airliner aloft. Such applications
contain millions of lines of code, making them
comparable in complexity to the most complex
modern machines. For example, a modern airliner
has several million physical parts (and the space
shuttle about ten million parts), while the software
for such an airliner can run to 4 million lines of
code.
•
        Software engineers advocate many different
technologies      and     practices,    with    much
disagreement, which has originated a debate that
has gone on for over 60 years. Software engineers
use a wide variety of technologies: compilers, code
repositories, text editors. They also use a wide
variety of practices to carry out and coordinate their
efforts: pair programming, code reviews and daily
stand up meetings. In spite of the enormous
economic growth and productivity gains enabled by
software, persistent complaints about the quality of
software remain.
Most software engineers work as employees or
contractors. Software engineers work with
businesses, government agencies (civilian or
military), and non-profit organizations. Some
software engineers work for themselves as
freelancers. Some organizations have specialists to
perform each of the tasks in the software
development process. Other organizations required
software engineers to do many or all of them. In
large projects, people may specialize in only one
role. In small projects, people may fill several or all
roles at the same time.
Specializations include: in industry (analysts,
architects, developers, testers, technical support,
managers) and in academia (educators, researchers
).

      There is considerable debate over the future
employment prospects for Software Engineers and
other IT Professionals. For example, an online
futures          market          called         the
Future of IT Jobs in America attempts to answer
whether there will be more IT jobs, including
software engineers, in 2012 than there were in 2002
.
Certification of software engineers is a
contentious issue. Some see it as a tool to improve
professional practice.

Most successful certification programs in the
software industry are oriented toward specific
technologies, and are managed by the vendors of
these technologies. These certification programs are
tailored to the institutions that would employ people
who use these technologies.
The ACM had a professional certification
program in the early 1980s, which was discontinued
due to lack of interest. As of 2006, the IEEE had
certified over 575 software professionals.

       In                  Canada                 the
Canadian Information Processing Society           has
developed a legally recognized professional
certification called Information Systems Professional
(ISP).
Many students in the developed world have
avoided degrees related to software engineering
because of the fear of offshore outsourcing
(importing software products or services from other
countries)    and      of   being     displaced    by
foreign visa workers. Although government statistics
do not currently show a threat to software
engineering      itself;    a     related      career,
computer programming does appear to have been
affected. Often one is expected to start out as a
computer programmer before being promoted to
software engineer.
Thus, the career path to software engineering may
be rough, especially during recessions.

       Some career counselors suggest a student
also focus on "people skills" and business skills
rather than purely technical skills because such "soft
skills" are allegedly more difficult to offshore. It is
the quasi-management aspects of software
engineering that appear to be what has kept it from
being impacted by globalization.
Software engineering has evolved steadily from
its founding days in the 1940s until today in the
2000s. Applications have evolved continuously.
PIONEERING ERA
 - The ongoing goal to improve technologies and
   practices, seeks to improve the productivity of
   practitioners and the quality of applications to
   users.
 - Hardware vendors gave away systems software
   for free as hardware could not be sold without
   software. A few companies sold the service of
   building custom software but no software
   companies were selling packaged software.
1945 TO 1965: THE ORIGINS
- The term software engineering first appeared in
  the late 1950s and early 1960s.
- NATO Science Committee sponsored conferences
  in 1968 and 1969 that marked the official start of
  the profession of SE.
1965 TO 1985: THE SOFTWARE CRISIS
- The software crisis was originally defined in terms
  of productivity, but evolved to emphasize quality.
- Some used the term software crisis to refer to
  their inability to hire enough qualified
  programmers causing over budget and schedules,
  property damage and loss of life.
Cost and Budget Overruns:
      The OS/360 operating system was a classic
example. This decade-long] project from the 1960s
eventually produced one of the most complex
software systems at the time. OS/360 was one of
the first large (1000 programmers) software
projects.        Fred Brooks         claims      in
The Mythical Man Month that he made a multi-
million dollar mistake of not developing a coherent
architecture before starting development.
•
 Property Damage:
•
 Software defects can cause property damage. Poor
software security allows hackers to steal identities,
costing time, money, and reputations.
•
 Life and Death:
•
 Software defects can kill. Some embedded systems
used in radiotherapy machines failed so
catastrophically that they administered lethal doses
of radiation to patients.
1985 TO 1989: NO SILVER BULLET
- From 1970s to 1990s researchers and companies
  produced software tools as a “silver bullet” to
  solve the software crisis.
 Tools:
 Especially       emphasized         were         tools:
 Structured programming,
 object-oriented programming, CASE tools, Ada, Java
 ,        documentation,        standards,          and
 Unified Modeling Language were touted as silver
•
 Discipline:
•
 Some pundits argued that the software crisis was due
to the lack of discipline of programmers.
•
 Formal methods:
•
 Some      believed     that   if  formal  engineering
methodologies would be applied to software
development, then production of software would
become as predictable an industry as other branches
of engineering. They advocated proving all programs
correct.
•
 Process:
•
 Many advocated the use of defined processes and
methodologies like the Capability Maturity Model.
•
 Professionalism:
•
 This led to work on a code of ethics, licenses, and
professionalism.
1990 TO 1999: THE INFORMATION
                  SUPERHIGHWAY
- Rise of the Internet
- The growth of Browser usage running on the
  HTML Language
- Search engines system
- Human multi-language translation system
2000 TO PRESENT: LIGHTWEIGHT
                       METHODOLOGIES
- With the expanding demand for software in many
  smaller organizations, the need for inexpensive
  software solutions led to the growth of simpler,
  faster methodologies that developed running
  software, from requirements to deployment,
  quicker & easier.
- The use of rapid-prototyping evolved to entire
  lightweight methodologies, such as Extreme
  Programming (XP), which attempted to simplify
  many areas of software engineering, including
  requirements gathering and reliability testing for
  the growing, vast number of small software
  systems.
• Emergence as a Profession
• Role of Women
• Processes and Methodology
• Cost of Hardware
ASPECTS
        Aspects help software engineers deal with -
ilities by providing tools to add or remove boilerplate
code from many areas in the source code. Aspects
describe how all objects or functions should behave
in particular circumstances. For example, aspects
can add debugging, logging, or locking control into
all objects of particular types. Researchers are
currently working to understand how to use aspects
to design general-purpose code. Related concepts
include generative programming and templates.
AGILE
     Agile     software    development       guides
software development projects that evolve rapidly
with changing expectations and competitive
markets. Proponents of this method believe that
heavy, document-driven processes (like TickIT, CMM
and ISO 9000) are fading in importance. Some
people believe that companies and agencies export
many of the jobs that can be guided by heavy-
weight processes. Related concepts include
Extreme Programming                             and
Lean software development
EXPERIMENTAL
      Experimental software engineering is a branch
of software engineering interested in devising
experiments on software, in collecting data from the
experiments, and in devising laws and theories from
this data. Proponents of this method advocate that
the nature of software is such that we can advance
the knowledge on software through experiments
only.
MODEL-DRIVEN
     Model Driven Software Development uses
(both textual and graphical) models as primary
development       artifacts.   By    means      of
model transformation and code generation a part or
complete applications are generated.
SOFTWARE PRODUCT LINES
      Software Product Lines is a systematic way to
produce families of software systems, instead of
creating a succession of completely individual
products. This method emphasizes extensive,
systematic, formal code reuse, to try to industrialize
the software development process.
In 2006, Money Magazine and Salary.com
rated software engineering as the best job in
America in terms of growth, pay, stress levels,
flexibility in hours and working environment,
creativity, and how easy it is to enter and advance
in the field.
ICSE
     The biggest and oldest conference devoted to
software engineering is the International Conference
on Software Engineering. This conference meets
every year to discuss improvements in research,
education, and practice.

COMPSAC
     The Annual International Computer Software
and Applications Conference was first held in
Chicago in 1977 and is designated as the IEEE
Computer Society signature conference on software
technology and applications.
ESEC
The European Software Engineering Conference.

FSE
The             Foundations of Software Engineering
conference is held every year, alternating between
Europe and North America. It emphasizes
theoretical and foundational issues.

CUSEC
Conferences dedicated to inform undergraduate
students           like           the         annual
Canadian University Software Engineering Conference
 are also very promising for the future generation.
SEPG
The annual Software Engineering Process Group
conference, sponsored by the Carnegie Mellon
Software Engineering Institute (SEI), is a conference
and exhibit showcase for systems and software
engineering professionals. The four-day event
emphasizes systematic improvement of people,
processes, and technology.

INFORMATICS-INFORMATIQUE
The annual Canadian information technology, data
processing and software engineering symposium,
sponsored                  by                   the
Canadian Information Processing Society. First held
in 1958.
ICALEPS
International Conference on Accelerator and Large
Experimental Physics Control Systems Conference.
Biennial conference covering software engineering
for large scale scientific control systems. First held
in 1987.

APSEC
Asia Pacific Software Engineering Conference.

UYMS
National Software Engineering Symposium (in
Turkish: Ulusal Yazilim Muhendisligi Sempozyumu)
(not available in English). Biennial symposium first
held in İzmir, Turkey in 2003.
•   Association for Computing Machinery (ACM)
•   Australian Computer Society (ACS)
•   British Computer Society (BCS)
•   Canadian Information Processing Society (CIPS) -
    Information Systems Professional certification.
•   IEEE Computer Society
•   Lero, the Irish Software Engineering Research Centre
•   Russian Software Developers Association (RUSSOFT)
•   Software Engineering Institute (SEI)
•   Software Industry Professionals
•   The Safety and Reliability Society
(SHORT VERSION)

                  PREAMBLE

      Software     engineers     shall   commit
themselves to making the analysis, specification,
design, development, testing and maintenance
of software a beneficial and respected
profession. In accordance with their commitment
to the health, safety and welfare of the public,
software engineers shall adhere to the following
Eight Principles:
1. PUBLIC
   Software engineers shall act consistently with the
   public interest.
2. CLIENT AND EMPLOYER
   Software engineers shall act in a manner that is in
   the best interests of their client and employer
   consistent with the public interest.
3. PRODUCT
  Software engineers shall ensure that their
  products and related modifications meet the
  highest professional standards possible.
4. JUDGMENT
  Software engineers shall maintain integrity and
  independence in their professional judgment.
5. MANAGEMENT
  Software engineering managers and leaders shall
  subscribe to and promote an ethical approach to
  the management of software development and
  maintenance.
6. PROFESSION
  Software engineers shall advance the integrity
  and reputation of the profession consistent with
  the public interest.
7. COLLEAGUES
  Software engineers shall be fair to and supportive
  of their colleagues.
8. SELF
  Software engineers shall participate in lifelong
  learning regarding the practice of their profession
  and shall promote an ethical approach to the
  practice of the profession.
Problem solving technique must have two parts:

1. ANALYZING

      Solving problems must begin investigating it
by analyzing it, that it, by breaking the problem into
pieces to determine its nature
2. SYNTHESIZING

      Synthesis is putting together of a large
structure from small building blocks.
The process of analysis
The process of synthesis
To use efficient and productive approaches to
generate effective solutions to problems, SE may
employ the use of:

1. METHOD

     Method or technique is a formal procedure for
producing some result.

2. PARADIGM

      Paradigm represents a particular approach or
philosophy for building software.
3. TOOL

      Tool is the instrument or automated system
for accomplishing something in a better way. The
“BETTER WAY” can mean that the tool makes us
accurate, more efficient, or more productive or that
it enhances the quality of the resulting product.


4. PROCEDURE

     A combination of tools and techniques that, in
concert, produce a particular product.
QUALITY – degree of excellence; high standard
Five different perspectives of quality (Garvin 1984)

1. The Transcendental View

     Where the quality is something we can
recognize but not define

2. The User View

     Where the quality is fitness for purpose
3. The Manufacturing View

      Where the quality is conformance to the
specification

4. The Product View

     Where the quality is tied to inherent product
characteristics

5. The Value-Based View

     Where the quality depends on the amount the
customer is willing to pay for it
Software Quality must be consider in at least 3 ways

1. QUALITY OF THE PRODUCT
   - Users judge software to be of high quality if it is
     easy to use and easy to learn
   - number of failures and type of failures
   - must be judge according who are designing and
     writing the code and who maintain the program
     after they are written
McCall’s Quality Model
2. THE QUALITY OF THE PROCESS
    - One of the advantages of modeling the process is
      we can examine it and look for ways to improve
      it.
    - “Where and when are we likely to find a
      particular kind of fault?
    - “How can we find faults earlier in the
      development process?”
   - “How can we build in fault tolerance so that we
      minimize the like hood that a fault became a
      failure?”
   - “Are there alternative activities that can make
      our process more effective or efficient at
      assuring quality?”
3. THE QUALITY IN THE CONTEXT OF BUSINESS
   ENVIRONMENT
   - Quality is viewed in terms of the products and
     services being provided by the business in which
     the software is embedded.
   - Technical value of the product rather than the
     Business value.
   - Improving technical quality will automatically
     translate into business value.
   - Return of Investment (ROI) derived from financial
     community, describes the investment in terms of
     what is given up for other purposes. That is, the
     “investment must not only return the original
     capital but enough more to at least equal what the
     funds would have earn elsewhere, plus the
     allowance of risk.”
- ROI includes training, schedule, risk, quality,
  productivity, process, customer, cost and
  business

- ROI Business models such as
      “Payback Model”,
      “Accounting-Rate of Return Model”,
      “Discounted Cash Flow Model”
Terms included in industry definition of ROI
• Boundaries – what is included in the project and
  what is not.
• Elements of a System

     1. Activities are something that happens in the
        system
     2. Objects or entities are the element involve
        in the activities
     3. Relationships
     4. The System Boundary
• System is a collection of things, a set of entities, a
  set of activities, a description of relationships
  among entities and activity and a definition of a
  system boundary.

• Interrelated System


• Incremental Development Approach may
  incorporated a series of stages, each of which frees
  the previous system from another such constraint
• Two different ways to view the system

     1. Statically
           Static view tells us how the system is
        working today.

     2. Dynamically
            Dynamic view shows us how the system
        is changing into what it will eventually
        became.
• A popular collection of programming tools is called
  the Programmer’s Workbench

• Software projects progress in a way similar to the
  house-building
Building a House              Building a System
Determining & analyzing       Requirement analysis &
the requirements              definition
Producing & documenting       System Design
the overall design of the
house
Producing detailed            Program Design
specifications of the house

Identifying & designing       Writing the programs
the components                (Program implementation)
Building each component       Unit Testing / Module
of the House                  Testing
Building a House             Building a System
Testing each component       Integration Testing
of the house
Integrating the              System Testing
component
Making final modifications   System Delivery
after the residents have
moved in
Continuing maintenance       Maintenance
by the residents of the
house

Mais conteúdo relacionado

Mais procurados

Careers in ICT
Careers in ICTCareers in ICT
Careers in ICTOtto Akama
 
Careers in Information Technology
Careers in Information TechnologyCareers in Information Technology
Careers in Information TechnologyMyjobspace
 
Information Technology Careers
Information Technology CareersInformation Technology Careers
Information Technology CareersChad Warner
 
Computer Careers
Computer CareersComputer Careers
Computer Careerscfoster3541
 
MRR- Tomorrow's Engineer - Employability
MRR- Tomorrow's  Engineer - EmployabilityMRR- Tomorrow's  Engineer - Employability
MRR- Tomorrow's Engineer - EmployabilityRaja Reddy Mitta
 
SE and AI: a two-way street
SE and AI: a two-way streetSE and AI: a two-way street
SE and AI: a two-way streetCS, NcState
 
LIS3353 SP12 Week 2
LIS3353 SP12 Week 2LIS3353 SP12 Week 2
LIS3353 SP12 Week 2Amanda Case
 
Computers in orthodontics /certified fixed orthodontic courses by Indian dent...
Computers in orthodontics /certified fixed orthodontic courses by Indian dent...Computers in orthodontics /certified fixed orthodontic courses by Indian dent...
Computers in orthodontics /certified fixed orthodontic courses by Indian dent...Indian dental academy
 

Mais procurados (10)

Careers in ICT
Careers in ICTCareers in ICT
Careers in ICT
 
Careers in Information Technology
Careers in Information TechnologyCareers in Information Technology
Careers in Information Technology
 
Information Technology Careers
Information Technology CareersInformation Technology Careers
Information Technology Careers
 
Computer Careers
Computer CareersComputer Careers
Computer Careers
 
MRR- Tomorrow's Engineer - Employability
MRR- Tomorrow's  Engineer - EmployabilityMRR- Tomorrow's  Engineer - Employability
MRR- Tomorrow's Engineer - Employability
 
SE and AI: a two-way street
SE and AI: a two-way streetSE and AI: a two-way street
SE and AI: a two-way street
 
LIS3353 SP12 Week 2
LIS3353 SP12 Week 2LIS3353 SP12 Week 2
LIS3353 SP12 Week 2
 
If3514351438
If3514351438If3514351438
If3514351438
 
Lecture 10
Lecture 10Lecture 10
Lecture 10
 
Computers in orthodontics /certified fixed orthodontic courses by Indian dent...
Computers in orthodontics /certified fixed orthodontic courses by Indian dent...Computers in orthodontics /certified fixed orthodontic courses by Indian dent...
Computers in orthodontics /certified fixed orthodontic courses by Indian dent...
 

Destaque

How to choose an engineering branch ? - By NIT Surathkal Alumnus
How to choose an engineering branch ?  - By NIT Surathkal AlumnusHow to choose an engineering branch ?  - By NIT Surathkal Alumnus
How to choose an engineering branch ? - By NIT Surathkal AlumnusArun Gupta
 
Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)
 Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)
Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)Jean Bézivin
 

Destaque (6)

How to choose an engineering branch ? - By NIT Surathkal Alumnus
How to choose an engineering branch ?  - By NIT Surathkal AlumnusHow to choose an engineering branch ?  - By NIT Surathkal Alumnus
How to choose an engineering branch ? - By NIT Surathkal Alumnus
 
CAREERS MATTERS
CAREERS MATTERSCAREERS MATTERS
CAREERS MATTERS
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)
 Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)
Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)
 
Kpi kqi
Kpi kqiKpi kqi
Kpi kqi
 
Computer Science Engineering
Computer Science EngineeringComputer Science Engineering
Computer Science Engineering
 

Semelhante a 02 Why Software Engineering?

SWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptxSWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptxnohaaalrajhi
 
SE-MODULE-1-chap1.pptx
SE-MODULE-1-chap1.pptxSE-MODULE-1-chap1.pptx
SE-MODULE-1-chap1.pptxssuser9d6aac
 
software engineering documents.pptx
software engineering documents.pptxsoftware engineering documents.pptx
software engineering documents.pptxMakinde Akindeji
 
SE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharyaSE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharyaSharbani Bhattacharya
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 pptDr VISU P
 
OOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.pptOOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.pptitadmin33
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineeringtanni821216
 
1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docxjackiewalcutt
 
Introduction1ObjectivesThe objectives of this chapte.docx
Introduction1ObjectivesThe objectives of this chapte.docxIntroduction1ObjectivesThe objectives of this chapte.docx
Introduction1ObjectivesThe objectives of this chapte.docxmariuse18nolet
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.KelisKing
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptxnazimsattar
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SEAbhishekTripathi709328
 

Semelhante a 02 Why Software Engineering? (20)

SWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptxSWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptx
 
SE-MODULE-1-chap1.pptx
SE-MODULE-1-chap1.pptxSE-MODULE-1-chap1.pptx
SE-MODULE-1-chap1.pptx
 
software engineering documents.pptx
software engineering documents.pptxsoftware engineering documents.pptx
software engineering documents.pptx
 
SE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharyaSE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharya
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 ppt
 
OOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.pptOOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.ppt
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
The Product
The ProductThe Product
The Product
 
1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
 
Introduction1ObjectivesThe objectives of this chapte.docx
Introduction1ObjectivesThe objectives of this chapte.docxIntroduction1ObjectivesThe objectives of this chapte.docx
Introduction1ObjectivesThe objectives of this chapte.docx
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Unit1
Unit1Unit1
Unit1
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptx
 
software engineering
software engineeringsoftware engineering
software engineering
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 

Mais de Laguna State Polytechnic University

Formal Logic - Lesson 4 - Tautology, Contradiction and Contingency
Formal Logic - Lesson 4 - Tautology, Contradiction and ContingencyFormal Logic - Lesson 4 - Tautology, Contradiction and Contingency
Formal Logic - Lesson 4 - Tautology, Contradiction and ContingencyLaguna State Polytechnic University
 
Exploring the Difference Between Information Technology and Information System
Exploring the Difference Between Information Technology and Information SystemExploring the Difference Between Information Technology and Information System
Exploring the Difference Between Information Technology and Information SystemLaguna State Polytechnic University
 

Mais de Laguna State Polytechnic University (20)

Number Theory - Lesson 1 - Introduction to Number Theory
Number Theory - Lesson 1 - Introduction to Number TheoryNumber Theory - Lesson 1 - Introduction to Number Theory
Number Theory - Lesson 1 - Introduction to Number Theory
 
Formal Logic - Lesson 8 - Predicates and Quantifiers
Formal Logic - Lesson 8 - Predicates and QuantifiersFormal Logic - Lesson 8 - Predicates and Quantifiers
Formal Logic - Lesson 8 - Predicates and Quantifiers
 
Machine Learning Algorithms (Part 1)
Machine Learning Algorithms (Part 1)Machine Learning Algorithms (Part 1)
Machine Learning Algorithms (Part 1)
 
Artificial Intelligence Algorithms
Artificial Intelligence AlgorithmsArtificial Intelligence Algorithms
Artificial Intelligence Algorithms
 
Formal Logic - Lesson 7 - Rules of Inference
Formal Logic - Lesson 7 - Rules of InferenceFormal Logic - Lesson 7 - Rules of Inference
Formal Logic - Lesson 7 - Rules of Inference
 
Formal Logic - Lesson 6 - Switching Circuits
Formal Logic - Lesson 6 - Switching CircuitsFormal Logic - Lesson 6 - Switching Circuits
Formal Logic - Lesson 6 - Switching Circuits
 
Formal Logic - Lesson 5 - Logical Equivalence
Formal Logic - Lesson 5 - Logical EquivalenceFormal Logic - Lesson 5 - Logical Equivalence
Formal Logic - Lesson 5 - Logical Equivalence
 
Formal Logic - Lesson 4 - Tautology, Contradiction and Contingency
Formal Logic - Lesson 4 - Tautology, Contradiction and ContingencyFormal Logic - Lesson 4 - Tautology, Contradiction and Contingency
Formal Logic - Lesson 4 - Tautology, Contradiction and Contingency
 
Formal Logic - Lesson 3 - Truth Tables
Formal Logic - Lesson 3 - Truth TablesFormal Logic - Lesson 3 - Truth Tables
Formal Logic - Lesson 3 - Truth Tables
 
Formal Logic - Lesson 2 - Logical Connectives
Formal Logic - Lesson 2 - Logical ConnectivesFormal Logic - Lesson 2 - Logical Connectives
Formal Logic - Lesson 2 - Logical Connectives
 
Formal Logic - Lesson 1 - Introduction to Logic
Formal Logic - Lesson 1 - Introduction to LogicFormal Logic - Lesson 1 - Introduction to Logic
Formal Logic - Lesson 1 - Introduction to Logic
 
Ethical Issues and Relevant Laws on Computing
Ethical Issues and Relevant Laws on ComputingEthical Issues and Relevant Laws on Computing
Ethical Issues and Relevant Laws on Computing
 
Number Systems Basic Concepts
Number Systems Basic ConceptsNumber Systems Basic Concepts
Number Systems Basic Concepts
 
Number Systems Basic Concepts
Number Systems Basic ConceptsNumber Systems Basic Concepts
Number Systems Basic Concepts
 
Exploring the Difference Between Information Technology and Information System
Exploring the Difference Between Information Technology and Information SystemExploring the Difference Between Information Technology and Information System
Exploring the Difference Between Information Technology and Information System
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Introduction to Computers
Introduction to ComputersIntroduction to Computers
Introduction to Computers
 
Introduction to Computing Logic Formulation
Introduction to Computing Logic FormulationIntroduction to Computing Logic Formulation
Introduction to Computing Logic Formulation
 
Oasis of Sparkling and Refreshing Truisms
Oasis of Sparkling and Refreshing TruismsOasis of Sparkling and Refreshing Truisms
Oasis of Sparkling and Refreshing Truisms
 
My Teacher Got IT v2.0 - Software Installation Track
My Teacher Got IT v2.0 - Software Installation TrackMy Teacher Got IT v2.0 - Software Installation Track
My Teacher Got IT v2.0 - Software Installation Track
 

Último

Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 

Último (20)

Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 

02 Why Software Engineering?

  • 1. In this Module, we look at • what we mean by software engineering • software engineering’s track record • what we mean by “good software” • why systems approach is important • how software engineering has changed since the 1970s
  • 2. Typical formal definitions of software engineering are: • - "the application of a systematic, disciplined, • quantifiable approach to the development, • operation, and maintenance of software". • - "an engineering discipline that is concerned with • all aspects of software production” • - "the establishment and use of sound engineering • principles in order to economically obtain software • that is reliable and works efficiently on real • machines"
  • 3. - “ is a theory and practice that an individual or a • group of software developers or software • engineers having the knowledge of computer and • computing to help solve problems especially • problems with which are related to a computer or Other meanings of software engineering: • an existing computer system". • As Dijkstra pointed out, the terms software engineering and software engineer have, at times, also been misused in a much wider sense, particularly in America. The term has been used less formally:
  • 4. • - as the informal contemporary term for the broad • range of activities that was formerly called • programming and systems analysis • - as the broad term for all aspects of the practice of • computer programming, as opposed to the theory • of computer programming, which is called - as the term science; the advocacy of a specific computer embodying • • • approach to computer programming, one that urges that it • be treated as an engineering discipline rather than an art • or a craft, and advocates the codification of recommended • practices in the form of software engineering methodologies.
  • 5. The discipline of software engineering encompasses knowledge, tools, and methods for defining software requirements, and performing software design, software construction, software testing, and software maintenance tasks. • Software engineering also draws on knowledge from fields such as computer engineering, computer science, management, mathematics, project management, quality management, software ergonomics, and systems engineering.
  • 6. As of 2004, the U. S. Bureau of Labor Statistics counts 760,840 software engineers holding jobs in the U.S.; for comparison, in the U.S. there are some 1.4 million practitioners employed in all other engineering disciplines combined. The term software engineer is used very liberally in the corporate world. Very few of the practicing software engineers actually hold engineering degrees from accredited universities. • There are estimated to be about 1.5 million practitioners in the E.U., Asia, and elsewhere SE pioneers include Barry Boehm, Fred Brooks, C. A. R. Hoare, and David Parnas.
  • 7. • David Parnas has said that software engineering is, in fact, a form of engineering. Steve McConnell has said that it is not, but that it should be. • Donald Knuth has said that programming is an art and a • science. The U.S. Bureau of Labor Statistics classifies computer • software engineers as a subcategory of "computer specialists", along with occupations such as computer scientist, programmer, and network administrator. The BLS classifies all other engineering disciplines, including computer hardware engineers, as "engineers".
  • 8. • The U.K. has seen the alignment of the Information Technology Professional and the Engineering Professionals. Software engineering in Canada has seen some contests in the courts over the use of the title "Software Engineer
  • 9. Software is often found in products and situations where very high reliability is expected, even under demanding conditions, such as monitoring and controlling nuclear power plants, or keeping a modern airliner aloft. Such applications contain millions of lines of code, making them comparable in complexity to the most complex modern machines. For example, a modern airliner has several million physical parts (and the space shuttle about ten million parts), while the software for such an airliner can run to 4 million lines of code.
  • 10. Software engineers advocate many different technologies and practices, with much disagreement, which has originated a debate that has gone on for over 60 years. Software engineers use a wide variety of technologies: compilers, code repositories, text editors. They also use a wide variety of practices to carry out and coordinate their efforts: pair programming, code reviews and daily stand up meetings. In spite of the enormous economic growth and productivity gains enabled by software, persistent complaints about the quality of software remain.
  • 11. Most software engineers work as employees or contractors. Software engineers work with businesses, government agencies (civilian or military), and non-profit organizations. Some software engineers work for themselves as freelancers. Some organizations have specialists to perform each of the tasks in the software development process. Other organizations required software engineers to do many or all of them. In large projects, people may specialize in only one role. In small projects, people may fill several or all roles at the same time.
  • 12. Specializations include: in industry (analysts, architects, developers, testers, technical support, managers) and in academia (educators, researchers ). There is considerable debate over the future employment prospects for Software Engineers and other IT Professionals. For example, an online futures market called the Future of IT Jobs in America attempts to answer whether there will be more IT jobs, including software engineers, in 2012 than there were in 2002 .
  • 13. Certification of software engineers is a contentious issue. Some see it as a tool to improve professional practice. Most successful certification programs in the software industry are oriented toward specific technologies, and are managed by the vendors of these technologies. These certification programs are tailored to the institutions that would employ people who use these technologies.
  • 14. The ACM had a professional certification program in the early 1980s, which was discontinued due to lack of interest. As of 2006, the IEEE had certified over 575 software professionals. In Canada the Canadian Information Processing Society has developed a legally recognized professional certification called Information Systems Professional (ISP).
  • 15. Many students in the developed world have avoided degrees related to software engineering because of the fear of offshore outsourcing (importing software products or services from other countries) and of being displaced by foreign visa workers. Although government statistics do not currently show a threat to software engineering itself; a related career, computer programming does appear to have been affected. Often one is expected to start out as a computer programmer before being promoted to software engineer.
  • 16. Thus, the career path to software engineering may be rough, especially during recessions. Some career counselors suggest a student also focus on "people skills" and business skills rather than purely technical skills because such "soft skills" are allegedly more difficult to offshore. It is the quasi-management aspects of software engineering that appear to be what has kept it from being impacted by globalization.
  • 17. Software engineering has evolved steadily from its founding days in the 1940s until today in the 2000s. Applications have evolved continuously. PIONEERING ERA - The ongoing goal to improve technologies and practices, seeks to improve the productivity of practitioners and the quality of applications to users. - Hardware vendors gave away systems software for free as hardware could not be sold without software. A few companies sold the service of building custom software but no software companies were selling packaged software.
  • 18. 1945 TO 1965: THE ORIGINS - The term software engineering first appeared in the late 1950s and early 1960s. - NATO Science Committee sponsored conferences in 1968 and 1969 that marked the official start of the profession of SE. 1965 TO 1985: THE SOFTWARE CRISIS - The software crisis was originally defined in terms of productivity, but evolved to emphasize quality. - Some used the term software crisis to refer to their inability to hire enough qualified programmers causing over budget and schedules, property damage and loss of life.
  • 19. Cost and Budget Overruns: The OS/360 operating system was a classic example. This decade-long] project from the 1960s eventually produced one of the most complex software systems at the time. OS/360 was one of the first large (1000 programmers) software projects. Fred Brooks claims in The Mythical Man Month that he made a multi- million dollar mistake of not developing a coherent architecture before starting development. • Property Damage: • Software defects can cause property damage. Poor software security allows hackers to steal identities, costing time, money, and reputations.
  • 20. • Life and Death: • Software defects can kill. Some embedded systems used in radiotherapy machines failed so catastrophically that they administered lethal doses of radiation to patients. 1985 TO 1989: NO SILVER BULLET - From 1970s to 1990s researchers and companies produced software tools as a “silver bullet” to solve the software crisis. Tools: Especially emphasized were tools: Structured programming, object-oriented programming, CASE tools, Ada, Java , documentation, standards, and Unified Modeling Language were touted as silver
  • 21. • Discipline: • Some pundits argued that the software crisis was due to the lack of discipline of programmers. • Formal methods: • Some believed that if formal engineering methodologies would be applied to software development, then production of software would become as predictable an industry as other branches of engineering. They advocated proving all programs correct. • Process: • Many advocated the use of defined processes and methodologies like the Capability Maturity Model. • Professionalism: • This led to work on a code of ethics, licenses, and professionalism.
  • 22. 1990 TO 1999: THE INFORMATION SUPERHIGHWAY - Rise of the Internet - The growth of Browser usage running on the HTML Language - Search engines system - Human multi-language translation system 2000 TO PRESENT: LIGHTWEIGHT METHODOLOGIES - With the expanding demand for software in many smaller organizations, the need for inexpensive software solutions led to the growth of simpler, faster methodologies that developed running software, from requirements to deployment, quicker & easier.
  • 23. - The use of rapid-prototyping evolved to entire lightweight methodologies, such as Extreme Programming (XP), which attempted to simplify many areas of software engineering, including requirements gathering and reliability testing for the growing, vast number of small software systems.
  • 24. • Emergence as a Profession • Role of Women • Processes and Methodology • Cost of Hardware
  • 25. ASPECTS Aspects help software engineers deal with - ilities by providing tools to add or remove boilerplate code from many areas in the source code. Aspects describe how all objects or functions should behave in particular circumstances. For example, aspects can add debugging, logging, or locking control into all objects of particular types. Researchers are currently working to understand how to use aspects to design general-purpose code. Related concepts include generative programming and templates.
  • 26. AGILE Agile software development guides software development projects that evolve rapidly with changing expectations and competitive markets. Proponents of this method believe that heavy, document-driven processes (like TickIT, CMM and ISO 9000) are fading in importance. Some people believe that companies and agencies export many of the jobs that can be guided by heavy- weight processes. Related concepts include Extreme Programming and Lean software development
  • 27. EXPERIMENTAL Experimental software engineering is a branch of software engineering interested in devising experiments on software, in collecting data from the experiments, and in devising laws and theories from this data. Proponents of this method advocate that the nature of software is such that we can advance the knowledge on software through experiments only. MODEL-DRIVEN Model Driven Software Development uses (both textual and graphical) models as primary development artifacts. By means of model transformation and code generation a part or complete applications are generated.
  • 28. SOFTWARE PRODUCT LINES Software Product Lines is a systematic way to produce families of software systems, instead of creating a succession of completely individual products. This method emphasizes extensive, systematic, formal code reuse, to try to industrialize the software development process.
  • 29. In 2006, Money Magazine and Salary.com rated software engineering as the best job in America in terms of growth, pay, stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field.
  • 30. ICSE The biggest and oldest conference devoted to software engineering is the International Conference on Software Engineering. This conference meets every year to discuss improvements in research, education, and practice. COMPSAC The Annual International Computer Software and Applications Conference was first held in Chicago in 1977 and is designated as the IEEE Computer Society signature conference on software technology and applications.
  • 31. ESEC The European Software Engineering Conference. FSE The Foundations of Software Engineering conference is held every year, alternating between Europe and North America. It emphasizes theoretical and foundational issues. CUSEC Conferences dedicated to inform undergraduate students like the annual Canadian University Software Engineering Conference are also very promising for the future generation.
  • 32. SEPG The annual Software Engineering Process Group conference, sponsored by the Carnegie Mellon Software Engineering Institute (SEI), is a conference and exhibit showcase for systems and software engineering professionals. The four-day event emphasizes systematic improvement of people, processes, and technology. INFORMATICS-INFORMATIQUE The annual Canadian information technology, data processing and software engineering symposium, sponsored by the Canadian Information Processing Society. First held in 1958.
  • 33. ICALEPS International Conference on Accelerator and Large Experimental Physics Control Systems Conference. Biennial conference covering software engineering for large scale scientific control systems. First held in 1987. APSEC Asia Pacific Software Engineering Conference. UYMS National Software Engineering Symposium (in Turkish: Ulusal Yazilim Muhendisligi Sempozyumu) (not available in English). Biennial symposium first held in İzmir, Turkey in 2003.
  • 34. Association for Computing Machinery (ACM) • Australian Computer Society (ACS) • British Computer Society (BCS) • Canadian Information Processing Society (CIPS) - Information Systems Professional certification. • IEEE Computer Society • Lero, the Irish Software Engineering Research Centre • Russian Software Developers Association (RUSSOFT) • Software Engineering Institute (SEI) • Software Industry Professionals • The Safety and Reliability Society
  • 35. (SHORT VERSION) PREAMBLE Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
  • 36. 1. PUBLIC Software engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. 4. JUDGMENT Software engineers shall maintain integrity and independence in their professional judgment.
  • 37. 5. MANAGEMENT Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. 6. PROFESSION Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 7. COLLEAGUES Software engineers shall be fair to and supportive of their colleagues.
  • 38. 8. SELF Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
  • 39. Problem solving technique must have two parts: 1. ANALYZING Solving problems must begin investigating it by analyzing it, that it, by breaking the problem into pieces to determine its nature 2. SYNTHESIZING Synthesis is putting together of a large structure from small building blocks.
  • 40. The process of analysis
  • 41. The process of synthesis
  • 42. To use efficient and productive approaches to generate effective solutions to problems, SE may employ the use of: 1. METHOD Method or technique is a formal procedure for producing some result. 2. PARADIGM Paradigm represents a particular approach or philosophy for building software.
  • 43. 3. TOOL Tool is the instrument or automated system for accomplishing something in a better way. The “BETTER WAY” can mean that the tool makes us accurate, more efficient, or more productive or that it enhances the quality of the resulting product. 4. PROCEDURE A combination of tools and techniques that, in concert, produce a particular product.
  • 44.
  • 45. QUALITY – degree of excellence; high standard Five different perspectives of quality (Garvin 1984) 1. The Transcendental View Where the quality is something we can recognize but not define 2. The User View Where the quality is fitness for purpose
  • 46. 3. The Manufacturing View Where the quality is conformance to the specification 4. The Product View Where the quality is tied to inherent product characteristics 5. The Value-Based View Where the quality depends on the amount the customer is willing to pay for it
  • 47. Software Quality must be consider in at least 3 ways 1. QUALITY OF THE PRODUCT - Users judge software to be of high quality if it is easy to use and easy to learn - number of failures and type of failures - must be judge according who are designing and writing the code and who maintain the program after they are written
  • 49. 2. THE QUALITY OF THE PROCESS - One of the advantages of modeling the process is we can examine it and look for ways to improve it. - “Where and when are we likely to find a particular kind of fault? - “How can we find faults earlier in the development process?” - “How can we build in fault tolerance so that we minimize the like hood that a fault became a failure?” - “Are there alternative activities that can make our process more effective or efficient at assuring quality?”
  • 50. 3. THE QUALITY IN THE CONTEXT OF BUSINESS ENVIRONMENT - Quality is viewed in terms of the products and services being provided by the business in which the software is embedded. - Technical value of the product rather than the Business value. - Improving technical quality will automatically translate into business value. - Return of Investment (ROI) derived from financial community, describes the investment in terms of what is given up for other purposes. That is, the “investment must not only return the original capital but enough more to at least equal what the funds would have earn elsewhere, plus the allowance of risk.”
  • 51. - ROI includes training, schedule, risk, quality, productivity, process, customer, cost and business - ROI Business models such as “Payback Model”, “Accounting-Rate of Return Model”, “Discounted Cash Flow Model”
  • 52. Terms included in industry definition of ROI
  • 53.
  • 54.
  • 55. • Boundaries – what is included in the project and what is not. • Elements of a System 1. Activities are something that happens in the system 2. Objects or entities are the element involve in the activities 3. Relationships 4. The System Boundary
  • 56. • System is a collection of things, a set of entities, a set of activities, a description of relationships among entities and activity and a definition of a system boundary. • Interrelated System • Incremental Development Approach may incorporated a series of stages, each of which frees the previous system from another such constraint
  • 57. • Two different ways to view the system 1. Statically Static view tells us how the system is working today. 2. Dynamically Dynamic view shows us how the system is changing into what it will eventually became.
  • 58. • A popular collection of programming tools is called the Programmer’s Workbench • Software projects progress in a way similar to the house-building
  • 59. Building a House Building a System Determining & analyzing Requirement analysis & the requirements definition Producing & documenting System Design the overall design of the house Producing detailed Program Design specifications of the house Identifying & designing Writing the programs the components (Program implementation) Building each component Unit Testing / Module of the House Testing
  • 60. Building a House Building a System Testing each component Integration Testing of the house Integrating the System Testing component Making final modifications System Delivery after the residents have moved in Continuing maintenance Maintenance by the residents of the house