Title: Chapter 6 System Engineering
1Chapter 6System Engineering
Software Engineering A Practitioners Approach,
6th edition by Roger S. Pressman
2System Engineering
- Elements of a computer-based system
- Software
- Hardware
- People
- Database
- Documentation
- Procedures
- Systems
- A hierarchy of macro-elements
3The Hierarchy
4System Modeling
- define the processes that serve the needs of the
view under consideration. - represent the behavior of the processes and the
assumptions on which the behavior is based. - explicitly define both exogenous and endogenous
input to the model. - exogenous inputs link one constituent of a given
view with other constituents at the same level of
other levels endogenous input links individual
components of a constituent at a particular view. - represent all linkages (including output) that
will enable the engineer to better understand the
view.
5Business Process Engineering
- uses an integrated set of procedures, methods,
and tools to identify how information systems can
best meet the strategic goals of an enterprise - focuses first on the enterprise and then on the
business area - creates enterprise models, data models and
process models - creates a framework for better information
management distribution, and control
6System Architectures
- Three different architectures must be analyzed
and designed within the context of business
objectives and goals - data architecture
- applications architecture
- technology infrastructure
- data architecture provides a framework for the
information needs of a business or business
function - application architecture encompasses those
elements of a system that transform objects
within the data architecture for some business
purpose - technology infrastructure provides the foundation
for the data and application architectures
7The BPE Hierarchy
- Information strategy planning (ISP)
- strategic goals defined
- success factors/business rules identified
- enterprise model created
- Business area analysis (BAA)
- processes/services modeled
- interrelationships of processes and data
- Application Engineering
- a.k.a ... software engineering
- modeling applications/procedures that address
(BAA) and constraints of ISP - Construction and delivery
- using CASE and 4GTs, testing
8Information Strategy Planning
- Management issues
- define strategic business goals/objectives
- isolate critical success factors
- conduct analysis of technology impact
- perform analysis of strategic systems
- Technical issues
- create a top-level data model
- cluster by business/organizational area
- refine model and clustering
9Defining Objectives and Goals
- Objectivegeneral statement of direction
- Goaldefines measurable objective reduce
manufactured cost of our product - Subgoals
- decrease reject rate by 20 in first 6 months
- gain 10 price concessions from suppliers
- re-engineer 30 of components for ease of
manufacture during first year - Objectives tend to be strategic while goals tend
to be tactical
10Business Area Analysis
- define naturally cohesive groupings of business
functions and data (Martin) - perform many of the same activities as ISP, but
narrow scope to individual business area - identify existing (old) information systems /
determine compatibility with new ISP model - define systems that are problematic
- defining systems that are incompatible with new
information model - begin to establish re-engineering priorities
11The BAA Process
admin.
manufacturing
QC
distribution
sales
acct
engring
Process Decomposition Diagram
Matrices e.g., entity/process matrix
Process Flow Models
Data Model
12Product Engineering
13Product Architecture Template
14Architecture Flow Diagram
15System Modeling with UML
- Deployment diagrams
- Each 3-D box depicts a hardware element that is
part of the physical architecture of the system - Activity diagrams
- Represent procedural aspects of a system element
- Class diagrams
- Represent system level elements in terms of the
data that describe the element and the operations
that manipulate the data - These and other UML models will be discussed
later
16Deployment Diagram
17Activity Diagram
18Class Diagram
19System Engineering
- A system view of a product encompasses more than
just the software. - Elements of a computer-based system
- Software
- Hardware
- People
- Database
- Documentation
- Procedures
- Other computer-based systems
20Chapter 7Requirements Engineering
Software Engineering A Practitioners Approach,
6th edition by Roger S. Pressman
21Requirements Engineering
- InceptionEstablish a basic understanding of the
problem and the nature of the solution. - ElicitationDraw out the requirements from
stakeholders. - ElaborationCreate an analysis model that
represents information, functional, and
behavioral aspects of the requirements. - NegotiationAgree on a deliverable system that is
realistic for developers and customers. - SpecificationDescribe the requirements formally
or informally. - ValidationReview the requirement specification
for errors, ambiguities, omissions, and
conflicts. - Requirements managementManage changing
requirements.
22Inception
- Ask context-free questions
- Who is behind the request for this work?
- Who will use the solution (product/system)?
- What will be the economic benefits?
- How would you characterize good output from the
system? - What problems does this solution address?
- What environment will the product be used in?
- Are you the right person to answer these
questions? - Are these question relevant?
- Can anyone else provide additional information?
- Should I be asking you anything else?
23Getting Requirements Right
- The hardest single part of building a software
system is deciding what to build. No part of the
work so cripples the resulting system if done
wrong. No other part is more difficult to rectify
later. - Fred Brooks
- The seeds of major software disasters are
usually sown within the first three months of
commencing the software project. - Capers Jones
- We spend a lot of timethe majority of project
effortnot implementing or testing, but trying to
decide what to build. - Brian Lawrence
24Eliciting Requirements
- Why is it so difficult to clearly understand what
the customer wants? - Scope
- The boundary of the system is ill-defined.
- Customers/users specify unnecessary technical
detail that may confuse rather than clarify
objectives. - Understanding
- Customers are not completely sure of what is
needed. - Customers have a poor understanding of the
capabilities and limitations of the computing
environment. - Customers dont have a full understanding of
their problem domain. - Customers have trouble communicating needs to the
system engineer. - Customers omit detail that is believed to be
obvious. - Customers specify requirements that conflict with
other requirements. - Customers specify requirements that are ambiguous
or untestable. - Volatility
- Requirements change over time.
25Collaborative Requirements Gathering
- Meetings are attended by all interested
stakeholders. - Rules established for preparation and
participation. - Agenda should be formal enough to cover all
important points, but informal enough to
encourage the free flow of ideas. - A facilitator controls the meeting.
- A definition mechanism (blackboard, flip charts,
etc.) is used. - During the meeting
- The problem is identified.
- Elements of the solution are proposed.
- Different approaches are negotiated.
- A preliminary set of solution requirements are
obtained. - The atmosphere is collaborative and
non-threatening.
26Quality Function Deployment
- Function deployment determines the value (to
the customer) of each function required of the
system. - Information deployment identifies data objects
and events. - Task deployment examines the behavior of the
system. - Value analysis determines the priority of
requirements.
27Elicitation Work Products
- Statement of need and feasibility.
- Statement of scope.
- List of participants in requirements elicitation.
- Description of the systems technical
environment. - List of requirements and associated domain
constraints. - List of usage scenarios.
- Any prototypes developed to refine requirements.
28Use-Cases
- A use-case scenario is a story about how someone
or something external to the software (known as
an actor) interacts with the system. - Each scenario answers the following questions
- Who is the primary actor, the secondary actor(s)?
- What are the actors goals?
- What preconditions should exist before the story
begins? - What main tasks or functions are performed by the
actor? - What exceptions might be considered as the story
is described? - What variations in the actors interaction are
possible? - What system information will the actor acquire,
produce, or change? - Will the actor have to inform the system about
changes in the external environment? - What information does the actor desire from the
system? - Does the actor wish to be informed about
unexpected changes?
29Elements of the Analysis Model
- Scenario-based elements
- Use-caseHow external actors interact with the
system (use-case diagrams detailed templates) - FunctionalHow software functions are processed
in the system (flow charts activity diagrams) - Class-based elements
- The various system objects (obtained from
scenarios) including their attributes and
functions (class diagram) - Behavioral elements
- How the system behaves in response to different
events (state diagram) - Flow-oriented elements
- How information is transformed as if flows
through the system (data flow diagram)
30Use-Case Diagram
31Activity Diagram for RE
32Class Diagram
33State Diagram
34Analysis Patterns
- Pattern name Captures the essence of the
pattern. - Intent What the pattern accomplishes or
represents. - Motivation A scenario that illustrates how the
pattern solves a problem. - Forces and context External issues (forces)
that affect how the pattern is used, and external
issues resolved when the pattern is applied. - Solution How the pattern is applied to solve
the problem emphasizes structural and behavioral
issues. - Consequences What happens when the pattern is
applied what trade-offs exist during its
application. - Design How the pattern can be achieved via
known design patterns. - Known uses Examples of uses within actual
systems. - Related patterns Patterns related to the named
pattern because - they are commonly used with the named pattern
- they are structurally similar to the named
pattern - they are a variation of the named pattern.
35Negotiating Requirements
- Identify the key stakeholders
- These are the people who will be involved in the
negotiation - Determine each of the stakeholders win
conditions - Win conditions are not always obvious
- Negotiate
- Work toward a set of requirements that lead to
win-win
36Validating Requirements
- Is each requirement consistent with the objective
of the system? - Have all requirements been specified at the
proper level of abstraction? - Is the requirement really necessary?
- Is each requirement bounded and unambiguous?
- Does each requirement have attribution?
- Do any requirements conflict with other
requirements? - Is each requirement achievable in the systems
technical environment? - Is each requirement testable, once implemented?
- Does the model reflect the systems information,
function and behavior? - Has the model been appropriately partitioned?
- Have appropriate requirements patterns been used?
37Example CRG Meeting
- First CRG meeting of the SafeHome project.
- After QA session (inception meeting),
stakeholders write a two page product request,
which is delivered to those attending the first
CRG meeting. - Attendees are asked to make a rough list of
objects, services, constraints, and performance
criteria for the product. - At the meeting, a combined list is created in
each topic. - Subgroups write mini-specifications for each list
item. - Relevant features in mini-specifications are
added to the list.
38Example CRG Meeting
- Our research indicates that the market for home
management systems is growing at a rate of 40
percent per year. The first SafeHome function we
bring to market should be the home security
function. Most people are familiar with alarm
systems so this would be an easy sell. - The home security function would protect against
and/or recognize a variety of undesirable
situations such as illegal entry, fire,
flooding, carbon monoxide levels, and others.
Itll use our wireless sensors to detect each
situation, can be programmed by the homeowner,
and will automatically telephone a monitoring
agency when a situation is detected.
39Example CRG Meeting
- Objects control panel, smoke detectors, window
and door sensors, motion detectors, an alarm, an
event (sensor has been activated), a display, a
PC, telephone numbers, a telephone call, - Services configuring the system, setting the
alarm, monitoring the sensors, dialing the phone,
programming the control panel, reading the
display, - Constraints System must recognize when sensors
are not operating, must be user friendly, must
interface directly to a standard phone line, - Performance criteria Sensor event should be
recognized within one second, an event priority
scheme should be implemented,
40Example CRG Meeting
- Mini-specification for Control Panel
- The Control Panel is a wall-mounted unit that is
approximately 9 x 5 inches in size. The control
panel has wireless connectivity to sensors and a
PC. User interaction occurs through a keypad
containing 12 keys. A 2 x 2 inch LCD display
provides user feedback. Software provides
interactive prompts, echo, and similar functions.