Академический Документы
Профессиональный Документы
Культура Документы
Introduction
System & System engineering
Ø System are designed to solve specific
problem(s). A system consist of a set of
inter-related components which are
organized with a purpose. System always
operates within a larger environment
framework.
Ø System engineering involves analysis,
designing and organizing various elements
of a system.
Ø System engineering is a inter disciplinary
activity.
E.g. Software, Hardware, People, Database,
vSystem Software
vEmbedded Software
vApplication Software
vOpen source software
Who’s who
CUSTOMER Sponsors system
development
$$$, DEVELOPER
needs
USER Contractual
obligation
Uses Builds
system system
Needs
Software system
What is Software Engineering
What is Software Engineering (SE)?
The process of building a software product.
Design aids
Compilers
Requirements analysis
Development
Software design
vCoding
vTesting
vMigration
vMaintenance
Maintenance
Correction -- bugs will appear
planning
organising, and
running
a new development project.
designers
programmers managers
money staff
Project constraints
Computing
resources time
Examples of Project Constraints
Project planning is the art of scheduling the
necessary activities, in time, space and
across
staff in order to optimise:
A (software/system) lifecycle
model is a description of the
sequence of activities carried
out in an SE project, and the
relative order of these
activities.
It provides a fixed generic framework that
can be tailored to a specific project.
Size, (person-years)
Budget,
Duration.
project plan =
lifecycle model + project
parameters
The Incremental Model
CODING
SYSTEM
TESTING
ACCEPTANCE
TESTING
OPERATION
& MAINTENANCE
Phases
Requirement Analysis: Determine whether
developing the software is FINANCIALLY,
TECHNICALLY and BEHAVIORALLY feasible.
System Design: System must design for last long
Program Design: It collects Input of the system,
Output of the system, constraints, Processing
Coding: Any level programming language
Translate program specification into source code.
Unit and Integrating Testing: To confirm that each
module works correctly by itself.
Maintenance: After successful implementation
according to software errors and work
environment changes some changes are
required.
Advantages & Disadvantages
1. Easy to understand and implement.
2. Widely used and known (in theory!)
3. Reinforces good habits: define-before- design,
design-before-code
4. Identifies deliverables and milestones
5. Document driven, URD, SRD, … etc. Published
documentation standards, e.g. PSS-05.
6. Works well on mature products and weak teams.
Waterfall with Prototyping
REQUIREMENTS
ANALYSIS Validate
SYSTEM
DESIGN Verify
PROGRAM
DESIGN
CODING
SYSTEM
TESTING
ACCEPTANCE
TESTING
OPERATION
& MAINTENANCE
“Interactive” (Chaotic) Model
REQUIREMENTS
ANALYSIS
MAINTENANCE
SYSTEM
DESIGN
DELIVERY
PROGRAM
DESIGN
SYSTEM
TESTING
PROGRAM
IMPLEMENTATION
INTEGRATION
TESTING UNIT
TESTING
Prototyping Cycles
LIST OF LIST OF LIST OF
REVISIONS REVISIONS REVISIONS
revise user/
prototype customer
review
DELIVERED
SYSTEM
SYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
Multiple Builds
Development systems
DEVELOPERS
Time
Production systems
Spiral Model
Since enduser requirements are hard
to obtain/define, it is natural to
develop software in an experimental
way: e.g.
1.Build some software
2.See if it meets customer requirements
3.If no goto 1 else stop.
This loop approach gives rise to structured
iterative lifecycle models.
Key idea: on each iteration identify and
solve the subproblems with the highest
risk.
Spiral Model
Planning
Customer Risk
Communication Analysis
Start Axis
Customer
Development
Evaluation
Integration
Each cycle follows a waterfall model
Customer communication—tasks required to
establish effective communication between
developer and customer.
Planning—tasks required to define resources,
timelines, and other project related information.
Risk analysis—tasks required to assess both
technical and management risks.
Engineering—tasks required to build one or more
representations of the application.
Construction and release—tasks required to
construct, test, install, and provide user support
(e.g., documentation and training).
Customer evaluation—tasks required to obtain
customer feedback based on evaluation of the
software representations created during the
Software Project Management
Understand the four P’s—
People,
Product
Process, and
Project.
People must be organized to perform
software work effectively.