Figure 3-2. OO Systems Engineering Technical Activities

Applied Systems Analysis
Fall 2005
Class Notes 1
Douglas Low
(315) 474 – 2774 (cell) 1 min question
(315) 456-3372 (work) 2 min question
(315) 703-6297 (home) 5 min question
Scope of Class
• System/Software Development Process
– Requirements
– Analysis
– Design
• OO Analysis and Design using UML
– How to develop use cases and associated artifacts
– How and When to use What diagrams
– What is and When to use OO vs. Functional
• What is architecture? How to not abuse it.
• Trade studies and feasibility analysis
• Linkage of requirements to design and analysis classes
– Useful during system sell off.
You will analyze and design a practical system
that will improve a real world situation.
Who the Heck is this Guy?
• Douglas Low
– MS in Computer science from SU
– Been with GE/ Martin Marietta/ Lockheed Martin for 23 years.
• Half in Software half in Systems engineering
– Worked on OO extensively for DD-21
• From the beginning…Flailing… Formal courses… many Use cases
– Working with the OOSESWWG at the Corporate level
– Working with (not for) our local Process group to develop the
OO process
• Architecture Document
Who the Heck are You?
What do you want from me?
MIS 375
• Read Assigned Chapters
• Attendance required
– Attendance required at the beginning and end of class
• Project
– Requirements Doc group
– System Analysis Doc group
– Design Doc and presentation
• UML Homework Assignments
• UML In class Exercises
No Computer Usage During a Lecture
Self Motivated Students will Likely Receive an “A”
Development Process
• Identify the problem (SOW)
• Analyze the problem (System Requirements)
• Design
– Identify Alternate, candidate approaches to solve the problem
– Design the chosen solution
• Build
– ..the chosen architecture pieces
– Put the pieces together (integration)
• Test
– ..the parts
– ..the system
What is UML?
• Unified Modeling Language
– Graphical Language
• An attempt to combine notation from many
analysis and design notations
– Booch, Rumbaugh, Jacobson ……
– Now is controlled by Object Management Group of
which LM is a member.
• Moving to UML 2
– Includes Codes from diagrams
UML is a Language Not a Process
Objects – UML – Use cases
• Object Oriented Software was invented by Xerox Parc in the 80’s.
– Partitioned software into objects that owned its data and kept it private as much as
– Data hiding, data encapsulation were concepts that were fundamental to OO
• Use Cases were invented by Ivar Jacobson in 1986
Use case model describes the interaction of system with the outside world.
Describes the behavior or functionality of a system from the outside in.
“use case model is intended for communicating with customers and users”
“A special sequence of transactions performed by a user and a system in dialogue.”
• UML – Unified Modeling Language
– A visual language designed to construct, visualize and document artifacts of
software systems
– Incorporates several elements of three major diagramming notations into one
• Why OO?
Benefits of OO
Maintenance and evolution of a system cause changes,
but they are isolated to specific components, not the
entire system.
Object-oriented concepts provide a framework for
development according to effective systems and software
engineering principles
Application of reusable components is facilitated and
results in lower development costs across projects.
Object technology facilitates higher built-in quality, due
to improved understandability, usability, maintainability,
extensibility, modifiability, and reusability."
-reduced time to market
–greater product flexibility
–schedule predictability
–expressive power of OO
–encourages reuse
–resilience to change
–reduced risk
–appeals human cognition
Kåre Synnes
Direct expression
•Faster Development
•Increased Quality
•Easier Maintenance
•Enhances Modifiability
•Easier reuse
•System more resilient to change
•Reduced development risks for
complex systems due to integration
spread out
•Appeals to human cognition
Colorado University
Objects are natural metaphors for both physical objects and
abstract entities. Expressing computations in terms of objects
reduces the gap between concept and program.
Good programs evolve. Evolution is easiest when the
modifications are local. Objects combine data with functions to
manipulate that data (allowing localization) and access to objects'
data is restricted (enforcing localization).
Using inheritance, new objects and their behaviors can be defined
as incremental modifications and extensions of existing objects.
Faster Development
Increased quality
less re-work
More Re use
Easier maintenance
Better Human Cognition
Reduced Risk
Using polymorphism, similarities among objects can be expressed
in the program, allowing us to write code in terms of the similarities
without regard to the differences.
$ Savings $
Customer Satisfaction
Customer -> Systems Analysis. -> Software
What do I want?
• What will the system do?
How do I test the
•Define the Requirements (Analyze)
• How will the system do it?
•Decompose the system (Design)
• Assure the best solution (Analyze - Trade offs)
Use Cases
•Customer helps define system behavior with Use Cases
•Use cases become Test cases for all levels of
decomposition (System, Segment, CI)
•Define requirements in terms of objects and Use Cases
Software /
How do I
Implement the requirements?
In a Nutshell (modified from Rosenberg)
Use Case
Each Use case becomes
Multiple Scenarios
Which are detailed in
Requirements get mapped to logical and physical components
– just as they always did (Use cases & Classes)
Becomes more Detailed
And eventually
OO Process Steps
Define requirements
Allocate and Derive requirements
Map requirements to use cases
Map requirements to classes
Define use cases
Draw Diagrams
Write use case summary
Include requirements & External Interfaces
Define domain model class diagram
Add attributes when known
Review requirements
Define use case scenarios
Include a summary
Define first level decomposition class diagram
Take from domain class diagram
Include boundary objects, controllers and entities
Review Preliminary Design
Create a sequence diagram for each scenario
Use only objects in the class diagram
Update scenario documentation to include details
Update class diagram
Add methods to classes when known (Internal interfaces)
Update Documentation (interfaces etc.)
Review Design
Requirements Are…..
• Specific, demonstrate-able, statements that exactly
specify what the system will do as well as a set of
constraints that the system will operate under.
• A contract with the customer
• Usually have the word “shall” in it. For example:
– The students shall do their homework.
– If the students do not do their homework they shall be
• Penalization for missing homework assignments shall be a
zero entered for the homework assignment.
– If a student “instant messages” during class they shall
receive a zero for class attendance for that day.
High Level
are done first,
then we do
Manufacture H/W
Code S/W
and Test
If you believe this,
I have a bridge I’d like to sell you
#1 Problem with Requirements
Requirements are not glamorous
If you do a good job with
requirements you will get
NO credit
Because Requirements are
boring – However?
You Must Get Organized
in order to assure:
•Complete, Accurate,
Doable …
Effect of Requirements Definition on Program Costs –
Werner Gruhl NASA
If you have not done a good job
on requirements, you will
encounter a large # of changes
and the associated cost overruns
Poor Assumptions:
•Everyone knows how to write
•Requirements will take care of
•The Review process will fix all
Proper Assumptions:
Requirements cost
•Everyone does not know how
to write good requirements
•The requirements definition
process is not well understood
•The review process cannot fix
all problems
•Bad Requirements will be a
major cost driver over the life of
the program
Types of Requirements Errors
•Requirements drive:
•Provide contractual basis for
verification and acceptance
Having requirements
in a set of books will
not allow you to
assure and quickly
update requirements.
Database is needed.
Problems with Requirements
• Lack of
Management Interest
– Everyone knows how to write
• Lack of Know how
– A Requirement is:
• Necessary
• Attainable
• Testable
• Lack of Information leads to bad Assumptions
– Required to write good requirements
• Scope – needs, goals, constraints, budget, schedule
• Missions
• Operational Concept
Can be Circumvented in a Program Plan
The Requirements process is not well understood
• Requirements Process should be included in a well defined
program plan
• The owner of each requirement must Analyze:
– Is it Necessary - Not a wish list
• Prioritize & scrutinize
• Maintain its lineage
– Is it Verifiable - How will the requirement be tested?
– Is it Achievable – Technical and Cost
• If a question exists, place it on the risk plan
– Is it Clearly written
– Does the requirement apply to a single component?
– Is it at the proper level (system, subsystem, element, component)
Coordinated effort with all stakeholders included e.g. Customer,
Manufacturing, Specialty, Equipment eng, …
Document assumptions, lineage, verifiability
Raise issue to the program level – Cost Risk Assumptions…..
Is Each Requirement Necessary
• Examine (and Document?) each Requirement
Why it is necessary
What is the cost impact
Prioritize the requirement
Maintain the lineage
Is Each Requirement Achievable
• Technical, Schedule and Cost Considerations
• Get the facts right
• Place in a risk pool until fully analyzed
Remember 49% of requirement errors are due to
incorrect facts
Is each Requirement Verifiable
• Subjective requirements are not verifiable
– Look for words like: Maximize, minimize, support, adequate, but
not limited to, user friendly, easy, sufficient
• Determine how each requirements will be verified as it is
test, ‘shall be .3 seconds’
demonstrate, ‘shall be capable of simultaneous viewing’
analyze, ‘ MTBF shall be 1 day’
Inspect, ‘shall be green’
Subjective Requirements from the customer must be
converted into achievable and agreed to Requirements
Is Each Requirement Clearly Written
• Single Thought
• Concise
• Simple sentences
– One subject one verb one
• Stand-alone
• Unambiguous
• What not How
Forcing a design that is not needed
Forcing a design does not meet the needs
Example: ‘shall provide a Data base’
Ugly and clear is better than
Ask yourself - Why? Because:
beautiful and ambiguous
•I need traceability between requirement
Example: ‘ shall be stowed while underway’
•I need to add capability to add
•This is an operational requirement not a system
attributes to requirements
Should be: ‘shall provide a stowage environment’
•I need to be able to sort the
•I need to be able to filter the
The system shall provide …
The system shall be capable of …
The Data Base becomes a program
element which has requirements
associated with it.
The system shall weigh …
The xyz subsystem shall provide … use acronyms
What Kinds of Requirements Are There?
Design & Construction
Quality Assurance
Human Factors
Any particular requirement may be more than one type.
Requirement Database Types
All Requirements are defined in the requirements database as one
and only one of the following types:
Functional “… shall automatically track airborne targets…”
Performance “…shall discriminate targets within 3 minutes…”
Capacity “…shall maintain 300 tracks in the …”
Constraint including cost, specific equipment, legacy components
Reliability “ MTBF shall be 100 days”
Interface “ … shall use RS-232 interface to … “
Test “… the system test shall stress the system …”
Safety “ “in accordance with SPCL-610 and BI-431
Data “…shall depict target range in meters…”
We should do this but we don’t.
It helps place the requirement in the proper section.
Right and Wrong Terms
• WRONG: The system shall support a training coordinator
in defining scenarios
• RIGHT: The system shall provide input screens for
defining training scenarios.
Or The system should support a training coordinator in
defining scenarios
Beware of: Maximize, minimize, support,
adequate, but not limited to, user friendly, easy,
Requirements Shall
Facts Will
Goals Should
Requirements Beget Requirements
• Additional requirements are allocated or derived from
the original set.
• An allocated requirement is a system requirement that
is allocated in whole or in part to subsystems,
components, etc.
Example 1: “All software shall be written in Ada.”
 Direct Allocation: Allocated in whole to all software
Example 2: “System MTBF shall be 100 hours.”
 Apportioned: Subsystem MTBFs allocated via reliability
The top 10 Reasons for Not Doing Requirements
10. We don’t need requirements, we’re using objects/java/…
9. The users don’t know what they want
8.We already know what the users want
7.Who cares what the users want?
6. We don’t have time to do requirements
5. It’s too hard to do requirements
4. My boss frowns when I write requirements
3. The problem is too complex to write requirements
2. It’s easier to change the system later than to do
requirements up front.
1. We have already started writing code, an we don’t want
to spoil it.
Requirements are Linked
• To higher level requirements derived and allocated
– Flow down
• To use cases > Test cases
• To objects
• To analyses
Linkage Example
A derived requirement results from analysis of a higher
level requirement.
High level requirement: “Door when closed shall
prevent outside air from entering the room at a rate
greater than 10 cc per hour.”
Derived requirement: “Tolerance between door and door
frame shall be no greater than .1 inches.”
 Linked to the original requirement and an analysis of the
door leakage.
Summary – Make it Better
• Program Plan – Goals, Objectives, Constraints,
Missions, Operational Concept
– Don’t start until you have these
• Necessary, Verifiable, Achievable
– The process includes tests for each of these
– Treat each requirement as if it were a change
• Accountability – Each requirement should have
an owner
– Owner should be willing to defend the need for each
Each Requirement should be treated as if it were going to
affect the program
Because it does
Improving Requirements, Case 1
• Requirement: “The pilot and/or co-pilot shall also be able to
hear or see a visible or audible caution/warning signal in case
of emergency, hazard, etc.”
• Problems
Multiple requirements. (Pilot/co-pilot see/hear)
What emergency, hazard, etc. conditions?
Defining a solution with visible or audible warning?
What are pilot/co-pilot able to see/hear?
What do you verify?
• Better
– 1. The system shall provide a caution/warning signal to the pilot in case
of emergency or hazard conditions defined in Appendix A. 2. Similar
for co-pilot.
– If we insist on specifying the type of signal: The system shall provide an
X dB audible (Y micron visible) caution/warning signal to the pilot in
case of emergency or hazard conditions defined in Appendix A. Similar
for co-pilot. Signal duration?
Improving Requirements, Case 2
• Requirement: “The user shall be notified with a low battery
warning lamp light when the voltage drops below 3.6 volts and
the current workspace or input data shall be saved.”
• Problems
– Multiple requirements. (Notify and save)
– Defining a solution with warning lamp light?
– What do you verify?
• Better
– 1. The system shall provide a signal when the voltage drops below 3.6
– 2. The system shall save the current workspace data when the voltage
drops below 3.6 volts.
Improving Requirements, Case 3
• Requirement: “The crew shall always hear the
smoke detector alarm when smoke is detected unless
the alarm is being tested or suppressed.”
• Problems
– Subjective wishful thinking - “always hear”
– Loophole for escape - “unless”
– What do you verify?
• Better
– 1. The smoke detector shall provide an alarm to the crew
when smoke is detected.
– 2. The crew shall be able to suppress the smoke detector
alarm when the detector is in the “Test” mode.
Improving Requirements, Case 4
• Requirement: “Provided that the designated input
signals from the specified devices are received in the
correct order where the system is able to differentiate
the designators, the output signal shall comply with
the required framework of section 4.4.5 to indicate the
desired input state.”
• Problems
– Rambling long sentence
– What do you verify?
• Better
– 1. The output signal shall comply with section 4.4.5.
– 2. The output signal shall provide the input state.
Improving Requirements, Case 5
• Requirement: “The user shall be provided with a
user-friendly front end for operating the system.”
• Problems
– Vague terminology
– What do you verify?
• Better
– 1. The system shall provide menus and dialog boxes to aid
the user in operating the system. Or,
– 2. The system shall provide step-by-step instructions to
guide users in starting operations.
Student Requirement Statement Exercises
• Review, comment on, and improve the requirement
statements on the following charts
• Do these statements
– Have the attributes of a “good” requirement? (Clear,
complete, consistent, correct, feasible, objective,
problematic, singular, succinct, verifiable)
– Satisfy style tips for “good” requirements? (Simple
sentence, correct grammar and spelling, avoids excess
modifiers, avoids subjective language, required or desired,
avoids abbreviations and acronyms, unique identifier,
independent of outside text, free of loopholes)
Student Requirement Exercise 1
• Requirement: [AAA05520] It shall be possible to check that the
software contains no unauthorized features. This will be done by
manual means and by use of such automatic aids as may be
available at the time.
• Problems
• Better
Student Requirement Exercise 2
• Requirement: [AAA05350] The external markings shall be in
accordance with the customer's requirements.
• Problems
• Better
Student Requirement Exercise 3
• Requirement: [SAF00200] Specify interlocks, shielding, safety
guards, barriers, and warning markings where a personnel hazard
can exist.
• Problems
• Better
Student Requirement Exercise 4
• Requirement: [SAF00670] New equipment, modifications,
rearrangements, or new interfaces for existing equipment shall be
designed to ensure the level of safety of the present system is
maintained. New systems will be designed with an absolute minimum
of connections and terminations.
• Problems
• Better
Student Requirement Exercise 5
• Requirement: [SAF00330] All energized light indicators shall be
legible when reviewed under actual or simulated bright sunlight
conditions or under a blackout enclosure (including NVIS) and shall
be easily readable by the aircrew.
• Problems
• Better
Student Requirement Exercise 6
• Requirement: [SAF00760] Equipment which retain high potential
after it has been turned off shall be located where personnel cannot
touch it and discharge circuits shall be provided to dissipate the
charge in the shortest possible time after the equipment is turned off.
• Problems
• Better
Student Requirement Exercise 7
• Requirement: [SAF00870] Delicate equipment shall be located
where it will not be damaged during maintenance.
• Problems
• Better
Student Requirement Exercise 8
• Requirement: [SAF01060] New/modified air distribution and outlets
shall be designed to minimize noise levels.
• Problems
• Better
Student Requirement Exercise 9
• Requirement: [SAF01090] The cockpit sensing portion of the air
conditioning temperature control system shall be located in the
cockpit to provide optimum temperature for the greatest number of
crew members.
• Problems
• Better
Student Requirement Exercise 10
• Requirement: [RMS00660] As a goal, single error correct/double
error detect code shall be used in large bulk semiconductor
memories. It should be considered in any application involving large
amounts of semiconductor memory, but may impose unacceptable
speed and complexity penalties in some applications (e.g., CPU).
• Problems
• Better
Student Requirement Exercise 11
• Requirement: [AAA04760] Safety critical equipment shall comply
with the applicable performance standard when subjected to the
specified lightning requirements.
• Problems
• Better
Student Requirement Exercise 12
• Requirement: [AAAA1080] A suitable means shall be provided for
extraction and conversion of the recorded data to a format that, when
using existing equipment, will readily permit analysis by ground
• Problems
• Better
Student Requirement Exercise 13
• Requirement: [AAAA0630] Assuming the radar target is identifiable
to the operator and the position of the radar target is accurately
known, then the radar contribution to aircraft position accuracy shall
be less than 125 feet +/-10% plus the target position error (CEP) at 5
nm from 300 feet above ground level (AGL).
• Problems
• Better
Student Requirement Exercise 14
• Requirement: [AAAA0047] The Mission Computer shall issue an
ACAWS message if unsafe ramp and cargo door operation is
• Problems
• Better
Student Requirement Exercise 15
• Requirement: [RMS00940] This concept shall be such that minor
repair and check out of the modules may be accomplished at the
intermediate maintenance level with the more extensive repair and
check out accomplished at depot level maintenance.
• Problems
• Better
Student Requirement Exercise 16
• Requirement: [RMS00340] Module retention techniques shall be
carefully designed to integrate the insertion mechanism, required
connector insertion force, thermal contact area, and extraction
mechanism. Heretofore, conventional electronics have required the same
considerations, but to a lesser degree because of their more conventional
• Problems
• Better
Student Requirement Exercise 17
• Requirement: [AAA05510] It shall be possible to inspect the
hardware from time to time for unauthorized modifications. To this
end, hardware construction will be as simple and as standard as
• Problems
• Better
Student Requirement Exercise 18
• Requirement: [AAA05190] The C-130J Aircraft System shall be
designed and constructed to minimize electromagnetic interference
and propagation from the subsystems in accordance with Mil-Std
• Problems
• Better
Student Requirement Exercise 19
• Requirement: [SDA00020] Minimum utilization of strategic
materials shall be observed in development of the airplane. Specified
materials shall be given preference over proprietary items and shall
conform to applicable specifications.
• Problems
• Better
Student Requirement Exercise 20
• Requirement: [AAA05720] The equipment will be as small and as
light as is practical and shall be capable of being easily handled.
• Problems
• Better
Homework 1 (by next week)
• Read
– Whitten Chap 1 & 3
– Answer 5 questions per chapter (see following
– Come with questions
• Write requirements for your perfect spouse
– At least 20 requirements
– For each requirement, define the verification
type. (test, analyze, demonstrate, inspect)
– Keep it polite
Chap 1
Define information system and name seven types of information system applications.
Define stakeholder and Identify different types of stakeholders who use or develop
information systems, give examples of each.
Define the unique role of systems analysts in the development of information systems.
Identify those skills needed to successfully function as an information system analyst.
Describe current business drivers that influence information systems development.
Describe current technology drivers that influence information systems development.
Briefly describe a simple process for developing information systems.
Differentiate between the waterfall and the iterative/incremental approaches to systems
Chap 3
Describe the motivation for a system development process in terms of the Capability
Maturity Model (CMM) for quality management.
Differentiate between the system life cycle and a system development methodology.
Describe 10 basic principles of system development.
Define problems, opportunities, and directives—the triggers for systems development
Describe the PIECES framework for categorizing problems, opportunities, and directives.
Describe the essential phases of system development. For each phase, describe its purpose,
inputs, and outputs.
Describe cross life cycle activities that overlap multiple system development phases.
Describe typical alternative “routes” through the basic phases of system development.
Describe how routes may be combined or customized for different projects.
Describe various automated tools for system development.