Fall 2013 - PowerPoint PPT Presentation

Loading...

PPT – Fall 2013 PowerPoint presentation | free to download - id: 4e0176-YTUzN



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Fall 2013

Description:

Fall 2013 Introduction Dr. Chokchai Box Leangsuksun http://www.latech.edu/~box * * * * * * * * * * Finally, another capability of Rational Rose that your ... – PowerPoint PPT presentation

Number of Views:132
Avg rating:3.0/5.0
Slides: 79
Provided by: box7
Learn more at: http://www2.latech.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Fall 2013


1
Fall 2013
CSC 532 Adv Software Engineering
  • Introduction
  • Dr. Chokchai Box Leangsuksun
  • http//www.latech.edu/box

2
Boxs 1 minute Bio
  • PhD in CS (1995)
  • PhD Thesis Resource management/allocation in
    Heterogeneous Parallel Distributed Computing
  • 7 years in industry (Lucent)
  • Highly Reliable Software/system
  • Architect, PM, Tech lead (15-30 team size)
  • RD -gt 4 major network management products
  • Associate Professor in CS since 2002.
  • 12 graduate students (4 PhD)
  • Collaborations with national and industry labs
    ORNL, Intel, Ericsson, NCSA, Dell, etc
  • External funding from NSF, DOE, DOD, Intel
  • Research Interest
  • Cluster/cloud computing, Fault Tolerance,
    Resileince in HPC, cyber security
  • Teaching Interest
  • OS, Software Engineering, Compiler, HA and HPC
  • Services
  • Program committee IEEE Cluster computing, Grid
    computing education
  • Co-founder and chair High Availability and
    Performance Computing Workshop (2003, 2004)

3
Important Dates
  • Tues-Thur 8-950am class meetings
  • Midterm Oct 10, 2013
  • Final November 7, 2013
  • Extra class meetings (to sub out-of-town
    meetings)
  • Proposed ??

4
Some tickets to job markets
  • High Performance Computing
  • bigDATA business intelligence
  • Cloud Computing
  • (HPC) application (multicore, GPGPU)
  • Software engineer
  • Health care applications
  • Health Information System
  • IT-enabled diagnostic supporting tools/systems
  • Drug discovery
  • Genomic applications

5
Healthcare IT
  • In year 2014, there is a federal mandate that all
    healthcare providers must support EHR
  • Electronic Health Records exchange among
    healthcare providers hospitals
  • This year project is to develop a system that
    will frontend the EHR exchange supports
  • Healthcare IT shortage
  • http//www.himss.org/Content/Files/CSC_US_Healthca
    re_Workforce_Shortages_HIT.pdf?utm_sourcedelivra
    utm_mediumemailutm_campaignuniversity_of_illino
    is_chicago2008/19/201120163017

6
Another Graduate course in Winter
  • CSC 557 Special Topics High Availability
    (Enterprise Mission critical) and Performance
    Computing
  • Reliability issues in real world problem
  • Scalability (performance) aspects
  • Analysis Design
  • Parallel and Reliable software Programming
  • Research papers
  • High Availability and Performance Computing
    Workshop
  • A New course Distributed Cloud Computing

7
What is HPC?
  • High Performance Computing Parallel ,
    Supercomputing
  • Achieve the fastest possible computing outcome
  • Subdivide a very large job into many pieces
  • Enabled by multiple high speed CPUs, networking,
    software etc fastest possible solution
  • Technologies that help solving non-trivial tasks
    including scientific, engineering, medical,
    business entertainment and etc.
  • Time to insights, Time to discovery, Times to
    markets
  • BTW, HPC is not GRID!!!.

8
Parallel Programming Concepts
Parallel execution of a problem involves
partitioning of the problem into multiple
executable parts that are mutually exclusive and
collectively exhaustive represented as a
partially ordered set exhibiting concurrency.
Conventional serial execution where the problem
is represented as a series of instructions that
are executed by the CPU
Problem
Problem
Task
Task
Task
Task
CPU
  • Parallel computing takes advantage of concurrency
    to
  • Solve larger problems with less time
  • Save on Wall Clock Time
  • Overcoming memory constraints
  • Utilizing non-local resources

instructions
CPU
CPU
CPU
CPU
8
Source from Thomas Sterlings intro to HPC
9
HPC accelerates a product
  • FE analysis on 1 CPU
  • 1,000,000 elements
  • Numerical processing for 1 element .1 secs
  • One computer will take 100,000 secs 27.7 hrs
  • Says 100 CPUs
  • .27 hr 16 mins

10
HPC Applications and Major Industries
  • Finite Element Modeling
  • Auto/Aero
  • Fluid Dynamics
  • Auto/Aero, Consumer Packaged Goods Mfgs, Process
    Mfg, Disaster Preparedness (tsunami)
  • Imaging
  • Seismic Medical
  • Finance
  • Banks, Brokerage Houses (Regression Analysis,
    Risk, Options Pricing, What if, )
  • Molecular Modeling
  • Biotech and Pharmaceuticals

Complex Problems, Large Datasets, Long Runs
This slide is from Intel presentation
Technologies for Delivering Peak Performance on
HPC and Grid Applications
11
Life Science Problem an example of Protein
Folding
  • Take a computing year (in serial mode) to do
    molecular dynamics simulation for a protein
    folding problem
  • Excerpted from IBM David Klepackis The future of
    HPC
  • Petaflop a thousand trillion floating point
    operations per second

12
Significant indicators why HPC now?
  • Main stream computers with multi-cores (Intel or
    AMD)
  • In past 1-2 years, CPU speed was flatten at 3
    Ghz
  • More CPUs in one chip Dual core, multi-core
    chips
  • Traditional software wont take advantage of
    these new processors
  • Personal/Desktop Supercomputing.
  • Many real problems are highly computational
    intensive.
  • NSA uses supercomputing to do data mining
  • DOE fusion, plasma, energy related (including
    weaponry).
  • Help solving many other important areas
    (nanotech, life science etc.)
  • Product design, ERM/Inventory Management
  • Giants recently sneeze out HPC
  • Bushs state of union speech 3 main ST focus
    of which Supercomputing is one of them
  • Bill Gates keynote speech at SC05 MS goes
    after HPC
  • Google search engine - 100,000 nodes
  • Playstation 3 is a personal supercomputing
    platform
  • Hollywood (Entertainment) is HPC-bound (Pixar
    more than 3000 CPUs to render animation)

13
What is Cloud Computing?
  • - Every cloud vendor have their own definition of
    cloud.
  • In General, Cloud computing is a Internet based
    computing where hardware resources and software
    are exposed as a services.

14
What is Cloud Computing?
  • These Services are exposed in a scalable manner
    so that the user can use those services and pay
    for only those services that are used.
  • as on demand computing just like to get
    electricity we plug wire into socket.
  • According to the survey by IDC between 2008 and
    2010, the main reason to adopt a cloud computing
    for the organization is low cost option

15
Goal 1 Cost Control
  • Cost
  • Many systems have variable demands
  • Batch processing (e.g. New York Times)
  • Web sites with peaks (e.g. Forbes)
  • Startups with unknown demand (e.g. the farmville,
    instagram, Cash for Clunkers program)
  • Reduce risk
  • Don't need to buy hardware until you need it

16
Goal 2 - Business Agility
  • More than scalability - elasticity!
  • Ely Lilly in rapidly changing health care
    business
  • Used to take 3 - 4 months to give a department a
    server cluster, then they would hoard it!
  • Using EC2, about 5 minutes!
  • And they give it back when they are done!
  • Scaling back is as important as scaling up

17
Goal 3 - Stick to Our Business
  • Most companies don't WANT to do system
    administration
  • Forbes says
  • We are is a publishing company, not a software
    company
  • But beware
  • Do you really save much on sys admin?
  • You don't have the hardware, but you still need
    to manage the OS!

18
3 Cloud Service Models
  • Cloud Software as a Service (SaaS)
  • Use providers applications over a network
  • Cloud Platform as a Service (PaaS)
  • Deploy customer-created applications to a cloud
  • Cloud Infrastructure as a Service (IaaS)
  • Rent processing, storage, network capacity, and
    other fundamental computing resources
  • To be considered cloud they must be deployed on
    top of cloud infrastructure that has the key
    characteristics

19
Examples
  • Amazon EC2
  • Instagram
  • Farmville
  • Google docs
  • Google App Engine

20
Health Information System (HIS) project
  • WHO has the responsibility to collaborate with
    Member States in the generation and the use of
    appropriate health information to support
    decision making, health care delivery and
    management of health services, at the national
    and sub-national levels. from who website.
  • A system to support patient information for
    health care support, patient care management,
    finance etc.
  • Issues Data records, open standard, patient
    transfer
  • HL7 is a standard protocol to support HIS
  • This year project is to develop an HIS-supported
    data exchange system.

21
Seeing the Forest in the Midst of the Trees
Seeing the Forest in the Midst of the Trees
The material in this powerpoint is originally
from Rational company. It has been modified and
used as an introduction to RUP as educational
purpose only in Advanced Topics in software
engineering CSC532
22
The original presentation
  • By Dr. Curtis Hrischuk
  • Adjunct professor at University of Alberta, Canada

23
  • CSC 532 Adv Topics Software Engineering
  • Syllabus is on line www.latech.edu/box
  • box_at_latech.edu

24
Software industry experiences
  • Software Developer
  • Project Lead/Manager
  • Architect
  • System Engineer
  • Customer Trainers
  • Tester
  • Researcher

25
Syllabus
  • http//www2.latech.edu/box/aswengr.htm

26
Project/Class Management
  • Real World Experiences and Field Trip
  • IBM or NVDIA (tentative)
  • Computing Center (??)
  • Talk by industry and National Lab

27
Agenda (intro)
  • What is happening in the software world
  • What is most important to the developer
  • What is UML Unified Process
  • What is cool that UML is useful for

28
Whore and What re involved in software
development/engineering?
  • User/customer input/needs
  • Front Ends/System Engineer Requirements
  • System Architect Analyst/Engineer Architectures
  • Developers design, coding (modeling), unit test
  • Testers/SVV test plan, various testing
  • Technical Writers documentation
  • Current Engineers site survey,
    deployment/upgrade
  • Customer support support/ trouble tickets
  • Project Manager Plan, timeline
  • Configuration manager environment
  • Etc.

29
What is happening in the software world
30
The Good News
26 of software projects succeed. Standish
Group, CHAOS Report, 2000
31
The Bad News
That means 74 failed! Standish Group, CHAOS
Report, 2000
32
Software Development is Complex
  • Poorly designed project architectures require
    untimely changes
  • Requirements are undefined or change mid-project
  • Discovering defects late in project or flaws in
    architecture and design
  • Lack of communication between disparate team
    members
  • Artifacts are not accessible to all team members

Poor Management CHAOS
33
How To Make Sure Your Project will Fail
Chaos
  • Lack of user input
  • Unclear objectives
  • Incomplete requirements and specifications
  • Changing requirements and specifications
  • Lack of planning

Standish Group, CHAOS Report, 2000
34
Necessity of Communication
  • Think of a 100 man-person team
  • Analysts, developers, QE, documentation,
    contractors
  • Marketing, product management, VPs
  • Geographically dispersed
  • Different offices
  • Different countries
  • Different time zones
  • Requirements change or priorities are rearranged
  • Different sub-systems are developed at different
    times
  • Number of communication paths increases by the
    square of the team size

35
The Software Development Paradox
Internet time (Now do it with less
36
The Software Effort Breakdown
  • Over the life of a product, the distribution of
    effort is
  • 30 development
  • 70 maintenance
  • Development
  • 40 analysis design
  • 20 implementation
  • 40 validation
  • Maintenance
  • 20 adaptive
  • 60 perfective
  • 20 corrective

lt Requirements and modeling
lt IDE and compiler (fun?)
lt Testing
37
What is Most Important
38
How to Make a Better Car
  • The manufacturing of cars follows a process
    (assembly line)
  • An efficient assembly process means a good output
    rate
  • A quality assembly process means few defects
  • The process is tailored for the product
  • The process is improved and made more efficient
  • Software is no different
  • The software process is the competitive advantage
  • We are manufacturing software
  • Tools are one aspect of the process

39
Best Practices
  • Adopted by
  • IBM
  • Microsoft
  • Oracle
  • Sun
  • Cap Gemini Ernst Young
  • Deloitte Consulting
  • Rational Software!

Best Practices Unified Process Made Practical
Develop Iteratively Manage Requirements Use
Component Architectures Continuously Verify
Quality Manage Changes (UCM) Model Visually (UML)
Avoid the hubris that you can do without a process
40
Recent news in industry Academic
  • 90 or more university colleges teaches UML
  • IBM bought Rational for 2 Billion
  • Microsoft Embraces Modeling

41
Develop Iteratively
Requirements
Analysis Design
Planning
Implementation
Initial Planning
Management Environment
Test
Evaluation
Deployment
42
Product Life cycle (another view)
43
Benefits of Iterative Development
  • Resolves major risks before large investments
  • Improves quality through continuous testing
  • Target your testing where breaks are likely
  • Delivers frequent, objectively verifiable
    milestones
  • Keep moral up
  • Keep managers and customers happy
  • Provides early and continuous user feedback
  • Keeps customers even happier (they pay the bills)
  • Enables quick reaction to new requirements and
    change requests
  • Find out needed changes as soon as possible

44
More Process Plumbing
  • Defect tracking for those of us who arent
    perfect
  • Identify errors, enhancements, priorities,
  • Per product, release, development stream,
  • Leads to quality decisions ----gt Million
    decisions
  • Project management
  • Well leave it to Microsoft!
  • Requirements management
  • Configuration and change management

45
Product Life cycle
46
Manage Requirements
  • Are you building the system that the customer
    wants?
  • Find the impact when the customer changes their
    mind

47
Configuration and Change Management (next)
  • Control, track, and monitor changes to artifacts
  • Enable parallel iterative development
  • Multiple teams working in different streams
  • Establish secure workspaces for each developer
  • Automate integration and build management

Workspace Management
Parallel Development
Reports
Reports
Alert
!
!
Build Management
48
Continuously Verify Quality
Assess architecture for functionality defects
  • Verify critical functions early by focusing on
    key use-case scenarios
  • Drive architecture with key scenarios
  • Assign at risk scenarios to earliest
    iterations
  • Implement and assess each iteration

49
What is Missing
  • Need a common language that unifies the different
    stake holders
  • Different stake holders have different software
    abstractions (models) and artifacts
  • We need .

50
Communication Using the Unified Modeling Language
Requirements Modeling
Web Modeling
Application Modeling
Data Modeling
Business Modeling
One language One tool One team
51
Who Should Model?
RequirementsandBusiness Models
HTMLCGIXMLJavaScript
Web ContentDeveloper
BusinessAnalyst

CJavaSW Models
Data Models
SoftwareEngineer
DatabaseDesigner
52
The Developers View
Structure Diagram
Class Diagram
Behavior Diagram
The Model is The Application
Sequence Diagram
Component Diagram
Use Case Diagram
Deployment Diagram
Host or Target Application
53
The Unified Modeling Language
54
UML History
  • 1994 Grady Booch and Jim Rumbaugh began unifying
    their modeling techniques at Rational Software
  • 1995 Ivar Jacobson joins team at Rational
  • 1996 Consortium of 12 companies formed to
    oversee UML
  • Jan 1997 Version 1.0 published
  • Sept 1997 Revised Version 1.1
  • Nov 1997 Object Management Group standardized
  • Version 2.0

55
What is Abstraction?
  • A model that includes most important aspects of a
    given problem while ignoring less important
    details

Salesperson
Product
Customer
  • An example of an order processing abstraction

56
Why is the Word Model Important?
  • Developing software is about developing
    executable abstractions
  • An abstraction or view is a model
  • For example, a class is an abstraction of a
    real-world entity or concept
  • Different stake holders have different
    abstractions
  • Marketing has the feature sheet
  • Developers have the requirements
  • Testing have test cases and configurations
  • There are model types in building a system

57
UML Context
  • It enables and promotes a
  • use-case-driven
  • architecture-centric
  • iterative
  • incremental process that is
  • object oriented and component based
  • Justification is that
  • Use cases are used to manage and provide focus
    for a problem-solving effort.
  • Architecture is used to manage complexity and
    maintain integrity and focus as a solution to a
    problem evolves.
  • Iterations and increments are used to repeatedly
    apply a process to evolve a solution to a
    problem.

58
Why is UML So Great?
  • Combines best ideas from software engineering,
    database theory, and system design
  • Technology agnostic
  • Problem domain agnostic
  • Extensibility mechanisms allow tailoring to the
    domain
  • Scalable
  • Recursive, hierarchical decomposition
  • Bootstrapping principle
  • Language that can define itself
  • High information density
  • Visual
  • Packs a lot into a small space

59
UML Defines Itself (Principle of Bootstrapping)
60
UML Models
  • Models capture
  • the structural, or static, features of systems
  • the behavioral, or dynamic, features of systems.
  • Models have several independent dimensions
  • Each emphasize particular qualities of a model
  • Each dimension has a diagram type

61
UML Diagrams
  • Use case diagrams depict the functionality of a
    system.
  • Class and object diagrams for the static
    structure
  • Sequence (collaboration) diagrams for behavior in
    a scenario
  • State diagrams for execution
  • Activity diagrams for process descriptions
  • Component diagrams for dependencies between
    components
  • Deployment diagrams for configuration and
    environment

62
Other Elements of UML
  • There are many
  • Package, sub-system, class, classifier,
    interface,
  • We really dont have the time to discuss this
  • Talk to your professors
  • There are many good books around

63
Stop here Move to intro to OO
64
Newbie Difficulties
65
Fallacy of Identification
  • We think that our models are in fact reality
  • The model is an abstraction with assumptions
  • Our assumptions fit reality
  • Reality does not fit our assumptions

66
Analysis Paralysis
  • When developers only focus on the model
  • Need to make a decision but the model provides no
    guidance
  • Developers are stuck
  • Dont know what to do next
  • Leads to diminishing returns
  • More modeling effort does not greatly increase
    the quality of the design
  • Do something logical to break the cycle

67
Cool Things to do with UML
68
Unit Test Functionality
  • Generate test code directly from model
  • Provide test data and expected results

Test Generation
Model
69
System Test Functionality
  • Automatically generate code for component testing
    from a UML model
  • Enable scenario-based testing during component
    integration, before system is complete

70
Code Templates For Architecture Design
  • Ready made design and code solutions for common
    development tasks
  • COM, MFC, ATL
  • MTS, ADO
  • ASP, DHTML
  • Fully customizable
  • You can create your own code templates to
    automatecommon design and implementation tasks
    to ensure consistencyin both design and code

71
Frameworks For Architecture Definition
  • Frameworks Predefined model element sets for
    modeling specific systems
  • Used to
  • Define the architecture of specific types of
    systems
  • Provide a set of reusable components
  • Create templates for new models
  • Simplify development with commercial frameworks
  • Promote reuse and standards with custom user
    frameworks

72
Robust Development Using Proven Patterns
  • Develop your application using predefined
    industry recognized patterns
  • Apply patterns to existing model elements
  • Create new model elements automatically via
    patterns
  • Leverage proven designs

73
Keeping the Model and Code Synchronized
  • Manual model and code synchronization
  • On-demand synchronization
  • Complete control as updates occur
  • Auto synchronization
  • Source is updated when model is modified
  • Rational Rose model updated when source is
    modified

74
UML Model Debugging
Rational Rose RealTime
Model
Generate/Compile
Control/Observe
75
Distributed UML Designs
  • Enables deployment and visualization of
    distributed applications
  • Supports patterns for creating high-availability
    applications
  • Provides the distributed communication
    infrastructure





Shelf Controller
Call Server
Administration
H/W Control
76
Do all of this for Multiple Languages
  • UML models can be targeted for different
    languages
  • Java
  • Microsoft Visual C
  • Microsoft Visual Basic
  • ANSI C
  • Ada
  • IDL
  • XML-DTD
  • SQL

77
Thats all
78
Some Important Web Sites
  • The SEEDS program will let your college get Rose
  • http//www.rational.com/corpinfo/college_relations
    /seed/termscond.jsp
  • .NET development
  • http//rational.devx.com/index.htm/CONTENT_ID/5959
  • Java development
  • www.jroundup.com
  • Project management
  • www.ganthead.com

79
(No Transcript)
80
Rational Ongoing Leadership
No.1 in Visual Modeling, 4 years running1
Rational Rose
...the battle for dominance is over Rational
wins. Ed Yourdon
No.1 in SCM, 3 years running1 Rational ClearCase
ClearCase is the dominant SCM tool. Ovum
No.1 in Requirements Management2 Rational
RequisitePro
Easy-to-use...ideal for team based
development... InfoWorld
Real-time embedded leadership Rational Rose
RealTime
a major contender as the de facto standard for
real-time embedded ... IDC
Driving Standards in Best Practices UML, WebDAV
the company that put the unified in modeling
languages JavaPro
1 IDC, 2 Standish
About PowerShow.com