lecture 2 ase
Post on 06-Apr-2018
217 Views
Preview:
TRANSCRIPT
-
8/3/2019 Lecture 2 ASE
1/21
-
8/3/2019 Lecture 2 ASE
2/21
What is Software Engineering?
An engineering discipline. Covers all aspects of software production
From system specification to maintenance.
Engineering: Selective selection of theories, tools and methods to
discover solutions to problems.
It is working under organizational and financialconstraints.
All aspects: Not only technical but also SW project management
and development of tools etc.
-
8/3/2019 Lecture 2 ASE
3/21
SE vs. CS
CS is concerned with theory and
fundamentals.
SE is concerned with the practicalities ofdeveloping and delivering useful software.
Ideally, all of SE should have a strong CS basis,
but this doesnt happen every time ad hoc
approaches
-
8/3/2019 Lecture 2 ASE
4/21
System engineering vs. SE
System engineering
Concerned with all aspects of the development
and evolution of complex systems where software
plays a major role.
Hardware development, policy and process
design, system deployment, SE.
E.g. air craft and chemical plants.
-
8/3/2019 Lecture 2 ASE
5/21
Software process
A set of activities and associated results thatproduce a software product.
Four fundamental process activities:
Software specification Requirements
Software development Design and program
Software validation Testing
Software evolution Maintenance
-
8/3/2019 Lecture 2 ASE
6/21
Software process model
A simplified description of a software process.
Three general software process models:
The waterfall approach
The four process activities are represented as separate processphases (reqt specification, sw design, implementation, testing ).
After each phase is defined, it is signed-off and development goesto the following phase.
Iterative development
Interleaving of the four process activities. Improvement in software in subsequent iterations.
Component-based software engineering
Integrating already developed parts of the system.
-
8/3/2019 Lecture 2 ASE
7/21
7
Nature of Software
System software
Application software
Engineering/scientific
software
Embedded software
Web applications
AI software
Operating systems
To solve specific need
To deal with calculations
Resides within the product
a set of linked hypertext files
to present information
Uses algorithms to solve
complex problems
Broad categories of computer software are:
-
8/3/2019 Lecture 2 ASE
8/21
8
System & Application Software
-
8/3/2019 Lecture 2 ASE
9/21
9
System Software
The software that is an essential part of thecomputer system
A collection of programs written to service other
programs
Compilers, editors, file management utilities
System software heavily interact with computer
hardware
Operating system
Resource sharing
-
8/3/2019 Lecture 2 ASE
10/21
10
Application Software
Consists of standalone programs to solvespecific need
Also called end-user programs includes
database programs, word processors, andspreadsheets
Applications software sits on top of systems
software because it is unable to run without
the operating system
-
8/3/2019 Lecture 2 ASE
11/21
11
Engineering/ Scientific Software
Deals with algorithms, Scientificnotations
Automotive stress analysis to space shuttle
orbital dynamics Molecular technology to automotive
manufacturing
-
8/3/2019 Lecture 2 ASE
12/21
12
Embedded Software
Resides with in a product or system and
used to implement and control the
feature and function of the system Can perform a limited functions
Microwave oven
Fuel control Temperature control
-
8/3/2019 Lecture 2 ASE
13/21
13
Web Applications
WebApp a wide variety of applications can be a set of linked hypertext files that
present information using text and graphics
As e-commerce integrate corporatedatabases and business application
-
8/3/2019 Lecture 2 ASE
14/21
14
Artificial Intelligence Software
Uses algorithms to solve complex problems
Applications in this area includes
Robotics
Expert system Pattern recognition
Neural networks
-
8/3/2019 Lecture 2 ASE
15/21
15
Legacy Software
Legacy software systems are programs that are oftencritical to the operation of companies
These programs were developed years ago and, use early
programming languages such as COBOL and FORTRAN
These programs have been maintained for many years
by various programmers
Because of the years of changes that have been made tothe software, supporting documentation may not be
current and the authors may no longer be available
Without either the full documentation, or the personnel whounderstand the code, changes to these programs can be hard
to accomplish, expensive, and should not be taken lightly
-
8/3/2019 Lecture 2 ASE
16/21
16
Legacy Software
software must be adapted to meet the needs
of new computing environments or
technology.
software must be enhanced to implementnew business requirements.
software must be extended to make it
interoperable with other more modern
systems or databases. software must be re-architected to make it
viable within a network environment.
Why must it change?
-
8/3/2019 Lecture 2 ASE
17/21
17
Software Myths
Rumors. Half-truths. Cautionary tales A significant number of "myths" surround software quality,
development and testing practices
Affect managers, customers and practitioners
Are believable because they often have elements oftruth,
but
Invariably lead to bad decisions,
therefore Insist on reality as you navigate your way through
software engineering
-
8/3/2019 Lecture 2 ASE
18/21
Software myths
Three types of myths:
Management myth
Customer myth Practitioner/Developer myth
-
8/3/2019 Lecture 2 ASE
19/21
Management myths
We have standards and procedures for building
software, so developers have everything they
need to know.
We have state-of-the-art software
development tools; after all, we buy the latest
computers.
If we're behind schedule, we can add moreprogrammers to catch up.
A good manger can manage any project.
-
8/3/2019 Lecture 2 ASE
20/21
Customer myths
A general statement of objectives is sufficient
to begin writing programs - we can fill in the
details later.
Requirement changes are easy toaccommodate because software is flexible.
I know what my problem is; therefore I know
how to solve it.
-
8/3/2019 Lecture 2 ASE
21/21
Practitioner/Developer myths
If I miss something now, I can fix it later.
Once the program is written and running, my job
is done.
Until a program is running, there's no way ofassessing its quality.
The only deliverable for a software project is a
working program.
top related