0% found this document useful (0 votes)
41 views15 pages

Overview of Software Engineering

This document provides an overview of software engineering. It discusses that software engineering involves managing complexity through organized processes, tools, and techniques to develop large software systems by teams of engineers. The key differences between software engineering and computer science or programming are that software engineering focuses on the practical development and delivery of useful software systems, while computer science is more theoretical and programming typically involves individual developers on smaller projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views15 pages

Overview of Software Engineering

This document provides an overview of software engineering. It discusses that software engineering involves managing complexity through organized processes, tools, and techniques to develop large software systems by teams of engineers. The key differences between software engineering and computer science or programming are that software engineering focuses on the practical development and delivery of useful software systems, while computer science is more theoretical and programming typically involves individual developers on smaller projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Overview of Software

Engineering

Dexter F. Macalong
Key Ingredients in successful
organizations

People Process

Technology
A better view
Process and Technology supporting people

People

Processes Technology

Pyramids are stable.

Wedges are not!


Engineering
• Engineering is …
 The application of scientific principles and methods
to the construction of useful structures & machines

• Examples
 Mechanical engineering
 Computer engineering
 Civil engineering
 Chemical engineering
 Electrical engineering
 Nuclear engineering
 Aeronautical engineering
Software Engineering

• The term is 46 years old: NATO Conferences


• Garmisch, Germany, October 7-11, 1968
• Rome, Italy, October 27-31, 1969

• Computer science one the scientific basis


• Years of studies/experience/statistics provide basis too
• Many aspects have been made systematic
• Methods/methodologies/techniques
• Languages
• Tools
• Processes
Why Engineer Software ?
• The problem is complexity
• Many sources, but size is a key:
• Mozilla contains 3 Million lines of code
• UNIX contains 4 million lines of code
• Windows 2000 contains 108 lines of code
• Second is role and combinatorics of “state”
• Third is uncertainty of “inputs” and their timing
• Fourth is the continuing changing “environment” and
demands.
Software engineering is about managing
all the sources of complexity to
produce effective software.
Software Engineering in a
Nutshell
• Development of software systems whose size/
complexity warrants team(s) of engineers
• multi-person construction of multi-version software

• Scope
• study of software process, development/management
principles, techniques, tools and notations

• Goal
• production of quality software, delivered on time,
within budget, satisfying customers’ requirements and
users’ needs
What does a software engineer do?

Software engineers should


• adopt a systematic and organised approach to all
aspects of software development.
• use appropriate tools and techniques depending on
• the problem to be solved,
• the development constraints and
• the resources available
• Understand and communicate processes for improved soft-
ware development within their organization
• Be effective team members and/or leaders.
• Can be very technical or more managerial depending on or-
ganizational need.
What is the difference between software
engineering and computer science?

Computer Sci- Software Engineer-


ence ingwith
is concerned
 theory  the practicalities of developing
 fundamentals  delivering useful software

Computer science theories


are currently insufficient to act as a complete
underpinning for software engineering, BUT it is a
foundation for practical aspects of software
engineering
What is the difference between software
engineering and system engineering?
• Software engineering
 is part of System engineering
• System engineering
 is concerned with all aspects of computer-based
systems development including
• hardware,
• software and
• process engineering

• System engineers are involved in


system specification,
architectural design,
integration and deployment
Difficulties?

• SE is a unique brand of engineering


• Software is malleable
• Software construction is human-intensive
• Software is intangible and generally invisible
• Software problems are unprecedentedly complex
• Software directly depends upon the hardware
• It is at the top of the system engineering “food chain”
• Software solutions require unusual rigor
• Software “state” means behaviors can depend on history.
• Software has discontinuous operational nature
Software Engineering ≠
Software Programming

• Software programming
• Single developer
• “Toy” applications
• Short lifespan
• Single or few stakeholders
• Architect = Developer = Manager = Tester = Customer = User
• One-of-a-kind systems
• Built from scratch
• Minimal maintenance
Software Engineering ≠
Software Programming

• Software engineering
• Teams of developers with multiple roles
• Complex systems
• Indefinite lifespan
• Numerous stakeholders
• Architect ≠ Developer ≠ Manager ≠ Tester ≠ Customer ≠ User
• System families
• Reuse to amortize costs
• Maintenance accounts for 60%-80% of overall development costs
Thank You

Kingsoft Office
ake Presentation much more fun @Kingsoft_Office

kingsoftstore

You might also like