Title: Software System Engineering: A Tutorial
1Software System Engineering A Tutorial
- Richard H. Thayer, Ph.D.
- Life Fellow, IEEE
- California State University, Sacramento
2What is a System?
- A system is a collection of elements related in a
way that allows the accomplishment of a common
object - A man-made system is a collection of hardware,
software, people, facilities, procedures, and
other factors organized to accomplish a common
objective.
3Software System
- A man-made system consisting of a collection of
programs and documents that work together,
creating a set of requirements with the specified
software
4What is System Engineering?
- Definition
- Practical application of scientific, engineering,
and management skills necessary to transform a
users need into a system configuration
description that most effectively and efficiently
satisfies the need. SE produces documents, not
artifacts
5System Engineering (SE)
- Overall technical management of a
system-development project - Problem solving process that provides mechanisms
for identifying and evolving the product and
process definitions of a system - Establishes a technical development management
plan for the project - Provides the baseline for all software and
hardware development
6Functions of SE
- Problem Definition
- Determines the needs and constraints through
analysis of requirements and interfacing with the
acquirer - Solution Analysis
- Determines the set of possible ways to satisfy
requirements and constraints, studies and
analyzes possible solutions, and selects the
optimum one - Process Planning
- Determines the tasks to be done, project size and
effort required to develop the product,
precedence among tasks, and potential risks to
the project - Process Control
- Determines the methods for controlling the
project and the process, measures progress,
reviews intermediate products, and takes
corrective action when necessary - Product Evaluation
- Determines the quality and quantity of the
delivered product through evaluation planning,
testing, demonstration, analysis, examination,
and inspection
7What is Software System Engineering (SwSE)?
- Both a
- Technical Process
- Management Process
- Performed by
- System engineers
- Managers
- Software engineers
- Programmers
- Acquirers
- Users
8Why software requires system engineering
- System engineering defines a solution space
- Solution space defines system boundaries and its
interfaces with outside systems - SE defines the product solution of the highest
level
9Why is SwSE necessary?
- Responsible for the overall technical management
of the system and the verification of the final
system products
10Software Engr. w/o SE
- Complex software systems become unmanageable
- Costs are overrun and deadlines are missed
- Unacceptable risks are sometimes taken, leading
to greater risk exposure - Erroneous decisions are made early in the life
cycle and prove very costly in the end - Independently developed subsystems and components
do not integrate properly - Parts and components are not built or
requirements are not met - The delivered system fails to work properly
- Parts of the system must be reworked after
delivery
11What is software engineering?
- The practical application of computer science,
management, and other sciences to the analysis,
design, construction, and maintenance of software
and its associated documentation - An engineering science that applies the concepts
of analysis, design, coding, testing,
documentation, and management to be successful
completion of large, custom-built computer
programs under time and budget constraints - The systematic application of methods, tools, and
techniques to achieve a stated requirement or
objective for an effective and efficient software
system
12(No Transcript)
13What is project management?
- Involves assessing the software systems risks
and costs, establishing a master schedule,
integrating the various engineering specialties
and design groups, maintaining configuration
control, and continuously auditing the effort to
ensure that cost and schedule are met and
technical requirements objectives are satisfied
14Functions of SwSE
- Requirements Analysis
- Determines the needs and constraints of the
software system by analyzing the system
requirements that have been allocated to software - Software Design
- Determines the set of possible ways to satisfy
the software requirements and constraints,
studies and analyzes the possible solutions, and
selects, and selects the optimum one - Process Planning
- Determines the tasks to be done, the project
size, the effort necessary to develop the
product, the precedence between tasks, and the
potential risks to the project - Process Control
- Determines the methods for controlling the
project and the process, measures progress,
reviews intermediate products, and takes
corrective action when necessary - Verification, Validation, Testing
- Evaluates the final product and documentation
through testing, demonstrations, analysis, and
inspections
15Recall SE vs. SwSE
- SE
- Problem Definition
- Solution Analysis
- Process Planning
- Process Control
- Product Evaluation
- SwSE
- Requirements Analysis
- Software Design
- Process Planning
- Process Control
- Verification, Validation, Testing
16SwSE Requirements Analysis
- Definition
- A software capability needed by a user to solve a
problem or achieve an objective - A system capability that must be met or possessed
by a software system of software system component
to satisfy a contract, standard, specification,
or other formally imposed document
17SwSE Requirements Analysis
- Establishes
- Functional Requirements
- Specifies functions that a system of system
component must be able to perform - Performance Requirements
- Specifies performance characteristics that a
system or system component must possess - External Interface Requirements
- Specifies hardware, software, or database
elements with which a system or system component
must interface, or setting forth constraints on
formats, timing, or other factors caused by such
an interface - Design constraint Requirements
- Affects of constrains the design of a software
system or software system component - Quality Attribute Requirements
- Specifies the degree to which software possesses
attributes that affect quality, such as
correctness, reliability, maintainability, and
portability
18SwSE Requirements Analysis (contd)
- Initiated
- Acquirer and user system requirements have been
properly identified - A top-level system design is complete
- A set of software subsystems is identified
- All user requirements have been properly
allocated to one of more of these subsystems - Complete
- A ConOps document is complete
- All of the software system requirements is
identified - An SRS that identifies what the system must do
is written - SRS is verified
- A requirements tracing is complete
- A preliminary user manual is written
- A test compliance matrix is finished
- A preliminary test specification is finished
- The software specification review is complete
- A requirements baseline is established
19SwSE Software Design
- Definition
- Process of selecting and documenting the most
effective and efficient system elements that
together will implement the software system
requirements - Two types
- Architectural
- Detail
20SwSE Architectural Design
- Establishes
- Top-level system design
- General system structure
- System components that populate the architecture
- General description of each subsystem
- Source of each subsystem
- Internal interfaces between subsystems
- External interfaces with outside systems
- Allocation of the functional requirements to the
subsystems - Allocation of nonfunctional requirements to each
subsystem - Verification that the architectural subsystem
implements the requirements specifications
21SwSE Software Design (contd)
- Initiated
- The software requirements have been properly
identified and documented - The draft users manual and draft test documents
have been developed - Completed
- The how question is answered
- The architectural description is complete
- An architectural design review is complete, and
the stakeholders have accepted the design
description - The preliminary operators and maintenance
manuals are written - The design tracing is complete
- The architectural design is reviewed
- The architectural design is verified
- The product baseline is established
22SwSE Process Planning
- Planning the engineering workload
- Work done by PM
- Work done by SW Engr.
- Determine tasks to be done
- Work breakdown structure (WBS) represents
hierarchically the parts of a process or product - Determine project effort and schedule
- Determine technical and managerial risks
- Schedule overrun
- Exceeding budget
- Delivering an unsuitable product
23SwSE Process Control
- Control
- collection of management activities used to
ensure that the project goes according to plan - Process Control
- feedback system that provides information on how
well the project is going. - Asks questions
- Are there potential problems that will impact the
budget/schedule? - Have any of the risks turned to problems?
- Is the design approach still doable?
24SwSE Process Control (contd)
- Control the engineering workload
- Control done by the PM
- Control done by the SW Engr.
- Develop standards of performance
- Set of procedures that define the process for
developing a software product and/or specify the
quality of a software product - Establish monitoring and reporting systems
- SQA Planned pattern of actions that provide
confidence that the product conforms to
established technical requirements - SCM Method of controlling reporting software
status - Measure results
- Walkthroughs
- Independent Auditing
- Take corrective action if process fails to meet
plan standard
25SwSE Verification, Validation, Testing
- Definition
- Determine that the engineering process is correct
and the products are in compliance with their
requirements
26SwSE VV T
- Verification
- Am I building the product right
- Validation
- Am I building the right product
- Testing
- Usual considered part of validation
27SwSE VV T (contd)
- Initiated
- The software is complete
- Unit tests are complete
- Completed
- Software integration testing is complete
- Software system testing is complete
28SwSE Software Integration Testing
- Incremental
- Top-down
- Use of stubs
- Bottom-up
- Use of drivers
- Non-incremental
29Conclusion
- SE SwSE are disciplines used in the front end
of the system life cycle for technical planning
and at the latter part of the life cycle to
verify whether the plans have been met
30Questions??