software system design sample

70
VETWorking Project NOTE: THIS FILE CONTAINS ARTIFACTS OF THE VETWORKING PROJECT. NORMAN K. MA, PH.D. COPYRIGHT © 2015 NORMAN K. MA

Upload: norman-k-ma

Post on 19-Aug-2015

10 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Software system design sample

VETWorking ProjectNOTE: THIS FILE CONTAINS ARTIFACTS OF THE VETWORKING PROJECT.

NORMAN K. MA, PH.D.

COPYRIGHT © 2015 NORMAN K. MA

Page 2: Software system design sample

project overview

Vetworking will be developed using the eXtreme programming methodology in which Norman has (1) taught as a graduate teaching assistant (software project laboratory), (2) followed the process as a software engineer at Nortel Networks, (3) followed the process as a software engineer at Raytheon, and (4) as a DOD Air Force proposal reviewer subject matter expert (SME) at the MITRE Corporation.

This is a de facto industry standard process with tailoring to specific domains. Norman will use the methodology to generate sufficient artifacts for the future of the project, which is implementation using specific programming language, middleware, in a specific platform.

Page 3: Software system design sample

design artifacts

The scope of this project is to create design artifacts for the purpose to hand off to a programming team. The design artifacts that will be produced are: User Stories (a prose description of the project)

Class Diagrams (data structures for object-oriented implementation)

Sequence Diagrams (description of interaction activities between system objects)

Option: State Diagrams if artificial intelligence or machine intelligence constructs are deemed of value.

In commercial industry, the above software artifacts will be sufficient for programmers to develop an initial prototype to begin the programming-level activities of the Agile system development methodology.

Page 4: Software system design sample

eXtreme Programming Processes that Connect Requirement and Programming Capabilities to Enable Result

RequirementActivities

ProgrammingActivities

eXtreme AgileProcesses

Enables

Page 5: Software system design sample

agile methodology

In 2001, 12 Agile software development principles were developed in Utah, think in context of Acquisition PMO (users), Contractor Managers, and Contractor Developers:

1. Availability of software to government for in-process evaluation

2. Flexibility in editing requirements

3. Software delivery frequency

4. Communication approaches between government and contractor

5. Quality of software developers and their development environment

6. Communication approach amongst software developers

7. Clear articulation of software development progress

8. Sustainability of software development tempo

9. Awareness and guidance with regard to technical excellence

10. Simplicity of development process

11. Software Developers' understanding of government requirements

12. Software development team self-evaluation approach

Norman’s tailored Agile

Norman’s tailored Agile

approach and guidance

approach and guidance

presented to an Air

presented to an Air

Force sponsor to

Force sponsor to

support evaluation

support evaluation

Page 6: Software system design sample

Graphical Description of the eXtreme Approach (optional)

<show rapid iteration of all project tasks>

Page 7: Software system design sample

Vetworking Level Of Effort Analysis

Page 8: Software system design sample

Vetworking Level Of Effort and Work Items

Approach to LOE Identified Level-0 and Level-1 design work items. Contacted MITRE for existing LOE of Vetworking project. Proceed to use historic project data for LOE estimate

Facts Evidence has shown that Cloud services can be efficient and resourceful (database, availability,

security, low development overhead, direction of existing application development approach). Collected 5-person, 100-day, web-based application projects used for hour estimation.

Software phase allocation Reconcile 11 software project measurement with software system development phases to derive

Design phase LOE estimate

Initial Consideration Cloud-based web services based on HHS/CMS Surge Team software team experience. Cloud

services are scalable, economical, secure, and resourceful. Work estimation based on

Estimation

Page 9: Software system design sample

Vetworking Level Of EffortSupport Raw Data

1 Software Project Manager1 Software Designer2 Software programmers1 Software TesterNon-silo activities, web-application with user interface and database persistence

•Graduate computer science/engineering students•2 to 6 years of commercial product development experience•Master degree programmers•Employers: Oracle, Google, Microsoft, etc.•5 to 6 teams per semester•9 semesters

Page 10: Software system design sample

Vetworking Level Of EffortSupport Data 2

1 Software Project Manager1 Software Designer2 Software programmers1 Software TesterNon-silo activities, web-application with user interface and database persistence

•Graduate computer science/engineering students•2 to 6 years of commercial product development experience•Master degree programmers•Employers: Oracle, Google, Microsoft, etc.•5 to 6 teams per semester•9 semesters

Page 11: Software system design sample

Vetworking Level Of EffortHistory project estimation approach

1 Software Project Manager1 Software Designer2 Software programmers1 Software TesterNon-silo activities, web-application with user interface and database persistence

•Graduate computer science/engineering students•2 to 6 years of commercial product development experience•Master degree programmers•Employers: Oracle, Google, Microsoft, etc.•5 to 6 teams per semester•9 semesters

A 5-member team work one-third time for 100 days to complete a web-application with user interface and database persistence.

eXtreme programming recommends work at most 8 hours per 24 hours to assure continuous performance and prevent burn-out.

7 days a week.Per person per day = 10 X (1/3) = 3 1/3Per team per day = 5 X 3 1/3 = 16 2/3Total project hours = 16 2/3 X 100 = 1666 2/3

Page 12: Software system design sample

Vetworking Level Of EffortHistory project estimation approach

1 Software Project Manager1 Software Designer2 Software programmers1 Software TesterNon-silo activities, web-application with user interface and database persistence

•Graduate computer science/engineering students•2 to 6 years of commercial product development experience•Master degree programmers•Employers: Oracle, Google, Microsoft, etc.•5 to 6 teams per semester•9 semesters

Allocation of 1,667 hours among work.

Level-0 phases: Management, Design, Code, Test

Project Artifacts: Requirement Count, Lines of Code, File Count, Issue Count, Design Objects, Test Cases, Unique Operator Count, Unique Operand Count, Operator Count, Operand Count, and Database Table Count WORKFACTS

Page 13: Software system design sample

Vetworking Level Of EffortApplication of work hours to Level-0 tasks based on project evidential facts

Allocation of 1,667 hours among work.

Level-0 phases: Management, Design, Code, Test

Project Artifacts: Requirement Count, Lines of Code, File Count, Issue Count, Design Objects, Test Cases, Unique Operator Count, Unique Operand Count, Operator Count, Operand Count, and Database Table Count

WORKFACTS

<Allocate 1,667 hours to Level-0 tasks to supportLOE for Vetworking design hours>

Page 14: Software system design sample

Vetworking LOE Estimation Support

1. Collected projectartifacts 2. Total hours worked to

produce product

3. Assigned artifacts accordingto project phases4. Computed proportion and hours

spent per project phase

5. Arrived via fact-based hour estimateper Vetworking phase products

Page 15: Software system design sample

Vetworking Deliverables and Hours Estimate

NecessaryActivitiesto build usable Vetworking product

Page 16: Software system design sample

Requirement Analysis

Page 17: Software system design sample

Program Performance MetricsWhile initially provided requirements are Kite-Level business requirements pertaining to technical activities, system engineering thinking indicates a need to frame the project for the purpose of meeting possible unspoken longer-term program needs.

Recommend considering the possibility of engaging with the Northern Virginia Technology Council (NVTC) to consider program accountability and performance metrics.

Suggested measurements for consideration:•Extended veteran employment status data•Financial and managerial accountability measurement•Feedback to role performance•Plan to improve role performance•Committee for business process and activity review and improvement

Page 18: Software system design sample

RolesVeteran: The focus of this program. The goal of the program is to place each veteran into permanent work.Career Coach/Facilitator: Qualified subject matter expert whom is effective in placing veteran-type clients into permanent work.Mentor: A veteran’s personal confidant who assist veteran in adjusting to civilian life.Donor: People who gives money to NVTC to administer for the purpose of help veteran to obtain permanent work.Facility Host: A facility manager that is able to provide a venue to host Boot Camp activities.Caterer: People who provide food and refreshment during Boot Camp.NVTC Administrator: Program management office that oversees and responsible to effectively provide veteran with permanent work.

Page 19: Software system design sample

Kite-Level Data Flow

Coach

Caterer

NVTC Administrator

and other Classes

Page 20: Software system design sample

Design Analysis and Artifacts

Page 21: Software system design sample

artifact count

User stories:11Test cases: 11State diagrams: 3Algorithms and rule sets: 5Classes: 39Class diagrams: 1Sequence diagrams: 1 (Initial Meet)PMO-level performance metrics: 5

Page 22: Software system design sample

High Level User Story

VETworking is a program operated by the Northern Virginia Technology Council (NVTC) designed to help veterans apply their skills in the workforce and be exposed to job opportunities. This computational solution will support continual administration of this program to coordinate all participants, majority volunteers, for the propose of matching veterans to permanent work.

Page 23: Software system design sample

Business Process Analysis for User Stories

Page 24: Software system design sample

Business Process Analysis for User Stories

Page 25: Software system design sample

User Story #1

Name: Provide portals for all users.

Each of the seven roles (Veteran, Mentor, Donor, Career Coach/Facilitator, Facilities Host, Caterer, and NVTC Administrator) will be able to log into the VETworking system from various computing devices for the first time to establish an account and re-login to the system to work their role’s activities.

Page 26: Software system design sample

User Story #2

Name: Entering role-specific information.

Each of the six roles (Veteran, Mentor, Donor, Career Coach, Facilities Host, and NVTC Administrator) will be able to enter role-specific information into the system. A minimum set of information is sufficient to establish an account to prevent repeated entering of same information. The system will prompt and help user to complete unfilled information or required role-specific activities.

Page 27: Software system design sample

User Story #3

Name: Donor functions

A donor visits the website and is directed to a link which enable the donor to give money to NVTC.

Page 28: Software system design sample

User Story #4

Name: Facilities Hosts Information

A Facilities Host (FH) logs onto the system and sees a display of Boot Camp dates. The FH selects date(s) to indicate the availability of the facility to host a Boot Camp. FH then continues to fill out tailoring information such as Need a Caterer (Y/N), Maximum Participants, Address, Preferred Contact, etc.) If FH has already filled out such information on previous visit, this question sheet will be pre-filled with the stored information.

Page 29: Software system design sample

User Story #5

Name: Facilitators functions

A Facilitator, aka qualified Career Coach, logs on to the system and enters choices for the Boot Camp date(s). A visual display will show the status of chosen dates and the next steps of the procedure. When a Boot Camp pre-conditions are met, notice will be sent to all participants to confirm the event.

Page 30: Software system design sample

User Story #6

Name: Caterers functions

A Caterer logs on to the system and enters choices for the Boot Camp date(s) for which to provide services. The Caterer can view number of participants, location, and other information to make a decision. A visual display will show the status of chosen dates and the next steps of the procedure. When a Boot Camp pre-conditions are met, notice will be sent to all participants to confirm the event.

Page 31: Software system design sample

User Story #7

Name: Event Business Process

The system checks the pre-conditions of each Boot Camp. After the venue has been selected, a facilitator has been identified, and other pre-conditions satisfied, the system will notify all participant of the successful arrangement of the date and move on to the pre-event preparation activities. If time is within 24 hours of the event date and event pre-conditions are still not satisfied, then a message will be send to participants and they are prompted to register for another event.

Page 32: Software system design sample

User Story #8

Name: Veteran and Mentor Match

The system will generate veteran and mentor matching report based on the likelihood of long-term (greater than 12 months) total benefit estimate for each veteran. The report will be provided to the NVTC administrator. The veteran report will have that veteran and also a top-five matching mentors list for that veteran. There will be reason(s) and an action list for veterans who has no matches. Similarly, the mentor report will have that mentor and a top-five matching veterans for that mentor. There will be reason(s) and an action list for mentors who has no matches. Each action item is added to a to-do list which is tracked. The NVTC administrator is responsible for the management of follow-up actions after receiving the reports.

Page 33: Software system design sample

User Story #9

Name: Event Selection

After an initial meeting and if the veteran and mentor decided to continue their relationship to work together to match the veteran a permanent work, the veteran and the mentor will register for a Boot Camp event. The mentor and veteran will complete all pre-event activities, including creating an on-line plan to find permanent work.

Page 34: Software system design sample

User Story #10

Name: Event Rules

The users of the system will receive alternative and other options during all activities including scheduling of event dates for each participants, matching mentors to veterans, and useful report and suggestions that can improve program performance metrics. This automation optimization capability shall be available for review and for tailoring by the NVTC administrator.

Page 35: Software system design sample

User Story #11

Name: Administrator Functions

The system has full range of control regarding information disclosure of all participants. The system administrator is responsible for setting the flexible privacy options. An designated NVTC administrator will work with a designated MITRE system administrator to configure all system functions for the purpose of conformance to U. S. Code and for the purpose of optimizing all resources for the purpose of placing veterans into permanent work.

Page 36: Software system design sample

classes

Page 37: Software system design sample

classes from user stories

Mentor-<attributes>-<methods>

Donor-<attributes>-<methods>

CCoach/Facil-<attributes>-<methods>

Facility Host-<attributes>-<methods>

Caterer-<attributes>-<methods>

Veteran-<attributes>-<methods>

NVTC Admin-<attributes>-<methods>

VETWorkingSystem-<attributes>-<methods>

-<attributes>-<methods>

Access Device-<attributes>-<methods>

Account-<attributes>-<methods>

Role Behavior-<attributes>-<methods>

Role Info.-<attributes>-<methods>

NVTC-<attributes>-<methods>

Money-Type-<methods>

Billing Sys.-<attributes>-<methods>

Facility-Address, Max Cap.,POC,-<methods>

Camp Event-<attributes>-<methods>

Schedule-<attributes>-<methods>

Camp Rules-Event_Pre_Condition-<methods>

Food and Drink-<attributes>-<methods>

Event Display-<attributes>-<methods>

EventConfirmation-<attributes>-<methods>

NVTC VETworkingProgram-<attributes>-<methods>

Roles-<attributes>-<methods>

1*

39 classes identified from User Stories

Page 38: Software system design sample

classes from user stories-<attributes>-<methods>

Pre-EventActivity-<attributes>-<methods>

Event Re-Register-<attributes>-<methods>

Veteran MatchList-Top Five MatchReasonsAction List-<methods>

Mentor MatchList-Top Five MatchReasonsAction List-<methods>

Match List Action-Top Five MatchReasonsAction List-<methods>

Initial Meeting-<attributes>-<methods>

Veteran InteractionEvent-<attributes>-<methods>

Job Opening-Filled-<methods>

Job Plan-Filled-<methods>

Event Report-Filled-<methods>

TrainingDocument-Filled-<methods>

ProgramPerformanceMetrics-Filled-<methods>

Sys. Admin.Document-<attributes>-<methods>

MITRE POC-<attributes>-<methods>

Job-Filled-<methods>

39 classes identified from User Stories

Page 39: Software system design sample

class diagram 1

Veteran-<attributes>-<methods>

Job Opening-<attributes>-<methods>

Job Plan-<attributes>-<methods>

Mentor-<attributes>-<methods>

1 *

NVTC VETworkingProgram-<attributes>-<methods>

Donor-<attributes>-<methods>

*

VETWorkingSystem-<attributes>-<methods>

“1” is the default Multiplicity valueConsider open UML tool

Billing Sys.-<attributes>-<methods>

Administer

*

Camp Event-<attributes>-<methods>

*

*

*CCoach/Facil-<attributes>-<methods>

Roles-<attributes>-<methods>

Register

ProgramPerformanceMetrics-<attributes>-<methods>

Applies

Caterer-<attributes>-<methods>

*

*

Job-<attributes>-<methods>

*

*

NVTC Admin-<attributes>-<methods>

Access Device-<attributes>-<methods>

*

Ma, Norman K.
The red-color circles highlights central classes.
Page 40: Software system design sample

class diagram 2

1 *“1” is the default Multiplicity value

Additional class diagrams as needed to describes the VETworking system at various detail levels and focusing on various project perspectives.

Page 41: Software system design sample

Sequence diagram 1, Complete Initial Meeting (1/3)

A-Veteran A-MentorThe-VETworkingSystem

An-InitialMeeting (IM)

Pre-condition:A Mentor has been matched to the Veterian.

This sequence diagram (a type of Interaction diagrams) describes the interaction between objects that results in the end result of a successful Initial Meeting between a Veteran and the Mentor.

Result:Successful completion of Initial Meeting and continue to Boot Camp activity.

Veteran initial login Matched Mentorinitial login

Create get veteran job()Create Initial Meeting()

Object creation

get IM assessment info()

Notify Mentor pre-IM tasks()Notify Veteran pre-IM tasks()

IM assessment info()

Process statusSuggest venue and time()

confirmation

Meeting reminder

To-do (on-line) Check Activities

On-line real-time facilitationIM facilitation rules

IM data exchange

IM exchange record

IM record

IM assessmentPost Event Actions

PersistenceRequirement

Consider Transactional Pattern

*Consider open UML tool

Page 42: Software system design sample

Sequence diagram 1, Complete Initial Meeting (2/3)Error Condition List

A-Veteran A-MentorThe-VETworkingSystem

An-InitialMeeting (IM)

Error and Fail Conditions:

The goal of this sequence diagram is to have both the Veteran and the Mentor prepared for the next VETworking step for the final goal of matching the veteran to a permanent work. As you are programming this user story, keep in mind of the following error/failing conditions and write code for the purpose of support the completing of the Initial Meeting. (note: verify specific numbers)

C1. The veteran did not respond to initial meeting invite within 36 hours C2. The mentor did not respond to initial meeting invite within 36 hoursC3. Initial Meeting object failed to updateC4. Initial Meeting object failed to createC5. Pre-meeting work not completed within 48 hours of initial meeting (this should not block Initial Meeting)C6. Veteran not in recordC7. Mentor not in recordC8. <TBD>

Page 43: Software system design sample

Sequence diagram 1, Complete Initial Meeting (3/3)Error Condition Remedy

A-Veteran A-MentorThe-VETworkingSystem

An-InitialMeeting (IM)

Pre-condition:Plan anomaly has been detected by system.

Result:Successful completion of Initial Meeting by the veteran with the Mentor and continue to Boot Camp activity.

NVTC Admin

Schedule ErrorC3, C4

To-do ItemAlternative Channels

Plan AnomalyPrompt

C1

To-do ItemAlternative Channels

Plan AnomalyPrompt

C2Inform

Plan AnomalyNotice

C5Inform

Plan Anomaly

Init Provide Portal user story

C6, C7

Provide Portal interaction

Page 44: Software system design sample

algorithms and rules

Page 45: Software system design sample

Veteran and Mentor Matching Algorithm

<Algorithm supports matching of a mentor to a veteran for the purpose of resultant team would have high likelihood of placing the veteran into permanent work > Algorithm 1: First Match

Algorithm 2: Maximum Commonality Match

Algorithm 3: Big Data Match

Algorithm 4: Human in the loop

Algorithm 5: Neural Net Learning

Note: Collect Performance Data

Page 46: Software system design sample

Veteran Assessment Algorithm

<Algorithm supports Coaches and mentors to build veterans’ resumes based on VETworking veteran record and following information>

Talent Sort

HBDI

Career Anchors

Strength Finder

Myers Briggs

Communication Style

Page 47: Software system design sample

Veteran and Job Matching Algorithm

<Algorithm supports Coaches and mentors to identify probable job matches to initiate the job application process>

Page 48: Software system design sample

Event Rules

Boot Camp event rules that are codified for automation.

Page 49: Software system design sample

VETworking Program Rules

VETWoring rules codified for automation.

Page 50: Software system design sample

state diagrams

Page 51: Software system design sample

Veteran Employment Status State Diagram

Page 52: Software system design sample

Boot Camp Event Status State Diagram

Page 53: Software system design sample

Architectural Analysis of Alternatives

Computational Resources

On-premise (Y/N)

IaaS (Y/N)

PaaS (Y/N)

SaaS (Y/N)

Page 54: Software system design sample

test casesvalidate to User Stories

Page 55: Software system design sample

test case #1

Name: Provide portals for all users.

Page 56: Software system design sample

test case #2

Name: Entering role-specific information.

Page 57: Software system design sample

test case #3

Name: Donor functions

Page 58: Software system design sample

test case #4

Name: Facilities Hosts Information

Page 59: Software system design sample

test case #5

Name: Facilitators functions

Page 60: Software system design sample

test case #6

Name: Caterers functions

Page 61: Software system design sample

test case #7

Name: Event Business Process

Page 62: Software system design sample

test case #8

Name: Veteran and Mentor Match

Page 63: Software system design sample

test case #9

Name: Event Selection

Page 64: Software system design sample

test case #10

Name: Event Rules

Page 65: Software system design sample

test case #11

Name: Administrator Functions

Page 66: Software system design sample

architecture consideration

Page 67: Software system design sample

architecture consideration

Analysis of alternatives amongst On-premise, IaaS, PaaS, or SaaS

Page 68: Software system design sample

backup

Page 69: Software system design sample
Page 70: Software system design sample