CIS 375 SOFTWARE ENGINEERING

UNIVERSITY OF MICHIGAN-DEARBORN

DR. BRUCE MAXIM, INSTRUCTOR

Date: 10/6/97

Week 5

SYSTEM ANALYSIS OBJECTIVES:

  1. Identify customer's needs.
  2. Evaluate system for feasibility.
  3. Perform economic and technical analysis.
  4. Allocate functions to system elements.
  5. Establish schedule and constraints.
  6. Create system definitions.

MANAGEMENT QUESTIONS:

  1. How much effort put towards analysis?
  2. Who does the analysis?
  3. Why is it so difficult? (Bottom line - who pays for it?)

FEASIBILITY STUDY:

  1. Economic feasibility. (cost/benefit analysis)
  2. Technical feasibility. (hw/sw/people, etc.)
  3. Legal feasibility.
  4. Alternatives.

MODELING SYSTEM ARCHITECTURE:

  1. Architecture template.
User Interface Processing

Input Processes
Process & Control Functions

Output Processes
Maintenance &

Self-Test

  1. Architecture context diagram.

  1. Architecture flow diagram:
  2. Architecture diagram specification:

SYSTEM SPECIFICATIONS:

  1. Introduction.
  2. Functional data description.
  3. Subsystem description.
  4. System modeling and simulation results.
  5. Projects.
  6. Appendices.

REQUIREMENTS ANALYSIS:

TYPES OF REQUIREMENTS:

  1. Functional requirements:
  2. Non-functional requirements:
    1. Physical environment (equipment locations, multiple sites, etc.).
    2. Interfaces (data medium etc.).
    3. User & human factors (who are the users, their skill level etc.).
    4. Functionality (how well is system functioning).
    5. Documentation.
    6. Data (qualitative stuff).
    7. Resources (finding, physical space).
    8. Security (backup, firewall).
    9. Quality assurance (max. down time, MTBF, etc.).

VALIDATION OF REQUIREMENTS (HOW TO CHECK TO SEE WHAT'S THERE):

  1. Correct?
  2. Consistent?
  3. Complete?
  4. Each requirement describes something actually needed by the customer.
  5. Requirements are verifiable (testable)?
  6. Requirements are traceable.

REQUIREMENTS DEFINITION DOCUMENT:

  1. General purpose of document.
  2. System background and objectives.
  3. Description of approach.
  4. Detailed characteristics of proposed system (data & functionality).
  5. Description of operating environment.
  • (These should be technically correct documents, pretend customer's not there)
  • F.A.S.T. - FACILITATED APPLICATION SPECIFICATION TECHNIQUE (YOU & CUSTOMER GET TOGETHER EARLY TO GET EVERYTHING "HAMMERED" OUT. FOCUS ON PROBLEM DEFINITION):

    1. Meeting between customers and developers at a neutral site (no home advantage).
    2. Rules for participation and preparation established ahead of time.
    3. Agenda suggested (brain storming).
    4. Facilitator appointed.
    5. Definition mechanism (sheets, flipcharts, wallboards, stickers, etc.).
    6. Goal - identify the problem, propose elements of solution, negotiate different approaches, specify preliminary set of requirements.

    QFP - QUALITY FUNCTION DEPLOYMENT (CUSTOMER'S NEEDS -> TECHNICAL REQUIREMENTS):

    1. Normal requirements (minimal functional & performance).
    2. Expected requirements (important implicit requirements, i.e. ease of use).
    3. Exciting requirements (will become normal req. next time, highly prized & valued).

    FUNCTION DEPLOYMENT:

  • Determines value of required function.
  • INFORMATION DEPLOYMENT:

  • Focuses on data objects and events produced or consumed by the system.
  • TASK DEPLOYMENT:

  • product behavior -> operating environment.
  • VALUE ANALYSIS:

    MAKES USE OF:

  • to create a Customer Voice Table (extract expected requirements, derive exciting req.)
  • ANALYSIS PRINCIPLES:

    1. Information domain of problem must be presented & understood.
    2. Models depicting system information, functions, and behavior should be developed.
    3. Models and problems must be partitioned in a manner that uncovers detail in layers.
    4. Analysis proceeds from essential information toward implementation detail (must be traceable).

    SPECIFICATION PRINCIPLES:

    1. Separate functionality from implementation.
    2. A processor - oriented specification language is needed.
    3. Specification must encompass the system containing the software component.
    4. Specification must encompass the environment.
    5. System specification = cognitive model.
    6. Specification must be operational (talk about how it works).
    7. Must be tolerant of incompleteness and easy to add to.
    8. Specification must be localized and loosely coupled (pieces of things are independent of each other).

    Date: 10/8/97

    Week 5

    REQUIREMENTS REVIEW:

    1. Goals & objectives review.
    2. Compare requirements to goals & objectives.
    3. Consider system operating environment.
    4. Assess and document all risks in system developmental operation.
    5. Discuss testing procedure.

    EVALUATING SPECIFICATION TECHNIQUES:

    1. Requirements are understandable to naïve user.
    2. Requirements form basis for design and testing.
    3. Automated requirements checking?
    4. Requirements form external view of system.
    5. Technique aid in organizing and structuring requirements.
    6. Technique for prototyping.
    7. Automatic test case generation from requirements.
    8. Appropriate for application.

    ERPP:

  • Evolutionary rapid prototyping process.
  • (Write less throwaway code than in spiral model)
  • Start with Product Plan:
  • Risks/unknowns inspiring use:
  • Customer requirements.
  • Technology.
  • Interfaces.
  • RISKS USING ERPP:

    1. Premature delivery.
    2. Premature design selection.
    3. Features in prototype can get lost in final product.
    4. There is a tendency to choose efficiency over modifiability

    REQUIREMENTS ANALYSIS FOR ERPP:

  • What.
  • When.
  • Cost.
  • Completion.
  • Re-use.
  • Contingencies.
  • Rewards.
  • DESIGN:

  • (Always has one process, even in ERRP model)
  • Conversion at requirements into algorithms and data structures.
  • Need to work on "this part of system" , need to get this working.
  • IMPLEMENTATION & TESTING:

    1. Code.
    2. Test.
    3. Debug.
    4. Goto 1 (repeat).

    FINAL SPIN CYCLE:

  • Each module is evaluated:
    1. Leave as is.
    2. Rewritten.
    3. Replace with existing code.
    4. Discard, as no longer needed.
  • Reimplementation symptoms:
  • 1) Prototype -> spaghetti code.
    1. Prototype -> cannot be extended to meet full user requirements.
    2. Work to fix -> work to start again.
  • REQUIREMENTS SPECIFICATION METHODS:

    1. HIPO Chart:

    (Hierarchy Input - Output Chart)

    Strengths Weaknesses

    - Shows function - No mechanism for

    relationship. Non-functional requirements.

    - No checking mechanism.

    1. Hierarchical Data Structures:

    How is it different from object hierarchy:

    1. Data Flow Diagrams:

    {square} = producer or consumer of information.

    {circle} = software client capable of transforming information.

    {arrow} = data item.

    {thing} = database.

    Key: this is data flow.

    PSPEC - process specification.
    1. CFD:

    Control flow diagram.

    CSPEC - control specification.

    1. General Data Model: (Focus on data)

    Data object tables are determined.

    Object = record.

    Attribute = fields.

    NORMALIZATION RULES:

    1. Given instance of an object has one value for an attribute.
    2. Attributes represent elementary items.
    3. When more than one attribute is used to identify an object, make sure they describe the same "key".
    4. All non-ID attributes represent the same characteristics of instance named by key.

    E-R DIAGRAM:

  • (Entity relationship)
  • {squares} = data object.
  • {diamonds} = relationship between objects.
    1. Decision Table:
    Rules
    Condition
    1
    2
    Rules
    Actions
    1
    2

    1. Finite state machines:

    1. Event table:

    (Like decision table)

    Mode
    Event1
    Event2
    Event3
    Event4
    Presentation Graphics

    Action1

    Action8

    O

    X
    Architecture

    Drawing

    X

    A2 then A3

    A5 & A6

    O
    Programming
    O
    A4
    A1, A2 & A3
    A7

    O = no action / no state change.

    X = no action defined.

    1. Petri Net:
      1. Sequential processes.

    f(state A, event) -> state S.

    f(state A, event1, event2, event3) -> state S.

    f(state A, event1, event2, event3) -> (state S1, state S2).